RoboterCC - Robotic Code Compiler
Forum Robot Kits NIBO burger NiboBurger unter Linux und Arduino

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Banner

Letzte Themen

  • Keine Beiträge vorhanden

Site-Statistic

  • 7432 private projects
  • 378 public projects
  • 16179195 lines compiled
  • 58194 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1

THEMA: NiboBurger unter Linux und Arduino

NiboBurger unter Linux und Arduino 5 Jahre 11 Monate her #4261

  • thielsn
  • thielsns Avatar
  • OFFLINE
  • Fresh Boarder
  • Beiträge: 3
Nachdem ich die letzten Abende damit verbracht habe, den NiboBurger unter Linux und Arduino zum Laufen zu bringen, hier eine Zusammenfassung der Erfahrungen und Ergebnisse, auf dass sie anderen Suchenden helfen mögen. Insgesamt muss man sich die Informationshäppchen recht aufwändig zusammentragen, daher hier mal der Versuch einer zusammenhängenden Dokumentation für einen speziellen Fall:

== 1. Installieren von Arduino und avrdude ==

Bei mir unter Manjaro sind das vor allem die folgenden Pakete:

community/arduino-avr-core 1.6.20-1
community/avr-binutils 2.30-1
community/avr-gcc 7.3.0-1
community/avr-libc 2.0.0-1
community/avrdude 1:6.3-3


== 2. Aktuelle Version der NiboRoboLib herunterladen und compilieren ==

Da auschecken über svn (bei mir) nicht funktioniert, lädt man sich auf sourceforge.net/p/nibo/code/HEAD/tree/ den Snapshot herunter und entpackt das Archiv in ein Verzeichnis. (Bei mir: Revision 324)

Im nibo_robo_lib Verzeichnis:

> make clean
> make

make führt zu einigen kleinen Problemen mit fehlenden const Feldern (vor allem in nibo2 und nibobee code), die sind aber leicht zu fixen, oder man deaktiviert die Sub-Targets im Makefile. (Einen Patch könnte ich eventuell auch anbieten...)

Nach einem erfolgreichen make findet man die NiboBurger spezifischen hex-Dateien unter "hex/niboburger-m16-15/"


== 3. Flashen des Roboters mit avrdude und eigene C-Programme ==

Das geht von der Kommandozeile mit avrdude. Zum Beispiel für das Test-Programm:

> avrdude -c usbasp -p m16 -U hex/niboburger-m16-15/first.hex

Das first.hex behebt bei mir übrigens auch den bekannten Fehler mit LED 3, der mehrfach im Forum beschrieben ist. Klappt aber nur mit der aktuellen svn Revision und nicht mit der Release-Library.

Wird nun ein "Permission Denied" Fehler angezeigt, dann hilft temporär "sudo".

Um USB-Mikrocontroller automatisch für User zugänglich zu machen legt man eine Regel in "/etc/udev/rules.d/" an. Bei mir ist es die folgende:
> cat /etc/udev/rules.d/99-avr.rules 
# AVR controllers

SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0479", GROUP="users", MODE="0660"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c9f", GROUP="uucp", MODE="0660"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", GROUP="uucp", MODE="0660"

Die Regel, die usbasp.2011-05-28.tar.gz von www.fischl.de enthält funktioniert zumindest bei mir nicht.

Einfache eigene C-Programme erstellt man z.B. in dem man in code/niboburger/test/ eines der Beispielprogrammverzeichnisse kopiert und anpasst. Entsprechend zu den Änderungen in Pfad und Dateinamen muss das Makefile im Verzeichnis und code/niboburger/Makefile ergänzt werden, wenn man das globale make verwenden möchte.


== 4. NIBOBBurger Library in aktueller Arduino-UI (1.8.5) / (Arduino 1.6.19) einbinden ==

Die Sourcen für Arduino befinden sich (u.a.) im Verzeichnis arduino16, müssen aber auch zum Teil noch dort hin kopiert werden. Das sollte eigentlich das dortige Makefile erledigen, aber das "all" Target ist kaputt. Daher müssen die entsprechenden Subtargets aufgerufen werden:

> cd arduino16/
> make update-burger

Danach wird der Inhalt der Verzeichnisse libraries und hardware in die passenden Verzeichnisse der Arduino-Installation kopiert. (Bei mir ~/Arduino):

cp -R libraries/NIBOburger/ ~/Arduino/libraries/
cp -R hardware/* ~/Arduino/hardware/
cp ~/Arduino/hardware/nicai/avr/platform_1619.txt ~/Arduino/hardware/nicai/avr/platform.txt
rm ~/Arduino/hardware/nicai/avr/platform_16*


Damit es wirklich mit der aktuellen Arduino-Version funktioniert muss allerdings noch die platform.txt angepasst werden. Dazu habe ich basierend auf arduino16/hardware/nicai/avr/platform_167.txt und der aktuellen Spezifikation von Arduino auf github (github.com/arduino/Arduino/blob/master/hardware/arduino/avr/platform.txt) eine Datei platform_1619.txt erzeugt. (Ganz aktuell wäre wohl inzwischen 1.6.21). Die platform-Datei muss schließlich noch in platform.txt umbenannt werden.

Nun sollte Arduino verwendet werden können. Vorhandene Funktionen kann man recht bequem in der Header-Datei der Bibliothek finden. Aber Vorsicht, nicht alle Funktionen sind wirklich implementiert. (Z.B. SensorClass::activate).
void SensorClass::activate(unsigned char mode) {
  switch(mode) {
    case SENSOR_DISABLED: // digital bit disconnected
    case SENSOR_PULSE:    // toggle digital bit
    case SENSOR_LOW:      // digital bit output low (0 V)
    case SENSOR_HIGH:     // digital bit output high (5 V)
      break;
  }
}
Der Administrator hat öffentliche Schreibrechte deaktiviert.

NiboBurger unter Linux und Arduino 5 Jahre 11 Monate her #4263

  • JtheB
  • JtheBs Avatar
  • OFFLINE
  • Fresh Boarder
  • Beiträge: 1
Hi thielsn!

Danke für deine ausführliche Doku. Ich hab nach nem Jahrzehnt mal meinen alten Nibo V1 ausgemottet und bin am Versuchen ihn auf Linux programmieren zu können. Und dieser Post is das einzige, was ansatzweise dazu passt.

thielsn schrieb:
make führt zu einigen kleinen Problemen mit fehlenden const Feldern (vor allem in nibo2 und nibobee code), die sind aber leicht zu fixen, oder man deaktiviert die Sub-Targets im Makefile. (Einen Patch könnte ich eventuell auch anbieten...)

Kannst du die Fixes vielleicht irgendwo hochladen? Am besten wäre natürlich ein Git oder ähnliches. Vielleicht können wir das svn darauf konvertieren.

Ansonsten habe ich zum Programmieren nur den alten UCOM-IR V2.03, der wird zwar von Linux erkannt, aber in die Arduino Oberfläche bekomme ich die Programmierschnittstelle nicht.
Dazu schaffe ich es nicht mit deiner Anleitung das Board noch zur Arduino Oberfläche hinzuzufügen. (Damit habe ich quasi Null Erfahrungen bisher.)

Wenn wir einen allgemeinen Weg finden, kann ich auch versuchen ein Package dafür im AUR erstellen.
Viele Grüße!
Der Administrator hat öffentliche Schreibrechte deaktiviert.

NiboBurger unter Linux und Arduino 5 Jahre 11 Monate her #4264

  • thielsn
  • thielsns Avatar
  • OFFLINE
  • Fresh Boarder
  • Beiträge: 3
Moin JtheB,

wusste gar nicht, dass der Nibo schon so alt ist :-)

Am einfachsten wäre es wohl das ganze Archiv auf GitHub hochzuladen. Bin aber nicht sicher, ob das erlaubt ist; bzw. ich habe noch nicht überprüft, ob alles unter einer freien Lizenz veröffentlicht wurde. Für mich habe ich meine Änderungen natürlich mit git versioniert, halt ohne die History, da ich das SVN nur als Snapshot herunterladen konnte. Die Motivation meinen alten Sourceforge-Account zu reaktivieren ist nicht besonders groß. Daher habe ich mal einen Patch der Veränderungen zusammen gepackt und versuche das hier als schnelle Lösung an den Post anzuhängen.

Dateianhang:

Dateiname: changed_files_nibo_lib_patch.zip
Dateigröße: 20 KB



Die Änderungen in "code" sollten generell OK sein, denke ich. Die in "arduino16" sind eher gehacked und sollten so nicht in den allgemeinen Source übernommen werden.

JtheB schrieb:

Ansonsten habe ich zum Programmieren nur den alten UCOM-IR V2.03, der wird zwar von Linux erkannt, aber in die Arduino Oberfläche bekomme ich die Programmierschnittstelle nicht.
Dazu schaffe ich es nicht mit deiner Anleitung das Board noch zur Arduino Oberfläche hinzuzufügen. (Damit habe ich quasi Null Erfahrungen bisher.)

Wenn wir einen allgemeinen Weg finden, kann ich auch versuchen ein Package dafür im AUR erstellen.
Viele Grüße!

Ich habe das Hinzufügen von platform_1619.txt und der Arduino-Lib in dem Makefile in arduino16 aus Faulheitsgründen hard-coded. Da müssen zumindest noch die Pfade angepasst werden. Ansonsten bin ich auch Arduino Newbie aber mit etwas trial-and-error habe ich es für den Nibo-Burger schließlich doch hinbekommen.

Viele Grüße
Simon
Der Administrator hat öffentliche Schreibrechte deaktiviert.
  • Seite:
  • 1
Ladezeit der Seite: 0.115 Sekunden

Werbung