Homepage Wiki Forum Buy

Tutorial API GNUBLIN

Aus GNUBLIN

Inhaltsverzeichnis

In diesem Artikel wird erklärt, wie man die Gnublin API in einem Projekt mit Makefile einbindet.


Demo Projekt

Bevor man beginnt, muss die Cross-Compile Toolchain installiert sein wie in C/C++ Entwicklungsumgebung installieren beschrieben.

Danach braucht man natürlich noch die folgenden beiden API Dateien:

Legen wir zunächst einen Ordner für das Demo-Projekt an.

user@dev-pc:~$ mkdir ledblink

Wechseln in den Ordner

user@dev-pc:~$ cd ledblink

Herunterladen der gnublin.cpp und gnublin.h Datei

user@dev-pc:~$ wget https://raw.github.com/embeddedprojects/gnublin-api/master/gnublin.h
user@dev-pc:~$ wget https://raw.github.com/embeddedprojects/gnublin-api/master/gnublin.cpp

Ist das erledigt, legt man jetzt eine Datei in dem Ordner mit dem Namen ledblink.cpp an und kopiert sich den folgenden Quelltext hinein, oder lädt die Datei über die Konsole aus dem Internet:

user@dev-pc:~$ wget http://www.gnublin.org/downloads/ledblink.cpp

Inhalt der Datei ledblink.cpp:

#include "gnublin.h"
 
int main(){
  gnublin_gpio gpio;
  gpio.pinMode(3, OUTPUT);    //GPIO3 als Ausgang festlegen
 
  while(1) {
    gpio.digitalWrite(3, HIGH);  //LED an
    sleep(1);                    // 1 Sekunde warten
    gpio.digitalWrite(3, LOW);   // LED aus
    sleep(1);                    // wieder 1 Sekunde warten
  }
}

Tip: Unter Linux braucht man den Quelltext nur mit der Maus zu markieren. Dann ist er automatisch kopiert. Wenn man jetzt mit der Maus über den geöffneten Nano oder vi geht und die mittlere Maustaste drückt, fügt man den Quelltext ganz bequem in die Textdatei ein.


Nun braucht man noch das Makefile. Wir erstellen dieses ebenfalls im gleichen Ordner oder laden es direkt aus dem Internet:

user@dev-pc:~$ wget http://www.gnublin.org/downloads/Makefile

Inhalt der Datei Makefile:

objects = ledblink
 
all: gnublin.o $(objects)
 
gnublin.o: gnublin.cpp gnublin.h
	arm-linux-gnueabi-g++ -c gnublin.cpp 
 
$(objects): $(objects).cpp gnublin.o
	arm-linux-gnueabi-g++ -o $(objects) $(objects).cpp gnublin.o
 
clean: 
	rm -Rf *.o $(objects)

Möchte man nun das Programm übersetzen muss man einfach in dem Ordner in dem die Dateien und das Makefile liegen in der Konsole den folgenden Befehl tippen:

user@dev-pc:~$ make

Und schon wird das ledblink Programm kompiliert. Als Ausgabe erhält man:

arm-linux-gnueabi-g++ -c gnublin.cpp
arm-linux-gnueabi-g++ -o ledblink ledblink.cpp gnublin.o

Als Ergebnis existiert jetzt eine Datei mit dem Namen: ledblink.

Wenn man, z.B. wie in Pseudo Netzwerk mit USB beschrieben, schon eine Netzwerkverbindung zum Gnublin hat, kann man die Datei direkt mit

user@dev-pc:~$ scp ledblink root@192.168.0.123:

in das home-Verzeichnis auf dem Gnublin kopieren (damit das klappt muss man sich zuvor per Terminal verbinden und ein Passwort für den Benutzer root anlegen) und direkt aus der Konsole starten:

user@dev-pc:~$ ssh root@192.168.0.123

Jetzt kann man das Programm starten:

root@gnublin:~# ./ledblink

Nun sollte die LED blinken. Wenn man das ledblink Programm wieder beenden möchte, einfach folgende Tastenkombination benutzen:

strg + c 


Aktuelle GNUBLIN-Tools installieren

Für Gnublin gibt es ein fertiges Debian Paket, um die Tools für die Module bzw. Erweiterungsplatinen einfach installieren zu können. Das Paket gibt es aus dem Grund, da das kompillieren der Tools auf dem Gnublin gut und gerne 5min oder mehr dauert.

Sicherheitshalber sollte man alle alten Pakete entfernen:

apt-get remove gnublin-adcint gnublin-adcmod gnublin-dogm gnublin-relais gnublin-step gnublin-gpio gnublin-pca9555 gnublin-lm75


Zuerst muss man sich das debianpaket herunterladen:

wget https://github.com/embeddedprojects/gnublin-api/raw/master/gnublin-tools.deb --no-check-certificate


Dann überträgt man das Paket noch aufs Gnublin und kann es mit

root@gnublin:~# dpkg -i gnublin-tools.deb

installieren.

Will man das Paket wieder entfernen geschieht dies mit:

root@gnublin:~# dpkg -r gnublin-tools


Entwicklungsumgebungen mit der API

Hier findet man die Dokus wie man eigene Programme entwickeln kann:

In anderen Sprachen