EM2017SSP13: Unterschied zwischen den Versionen

Aus Verteilte Systeme - Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „== Projektbeschreibung == In diesem Projekt soll die Programmiersprache Ada erlernt werden und eine beispielhafte Firmware für einen Lego Mindstorms Roboter i…“)
 
Zeile 5: Zeile 5:
 
Lego Mindstorms ist ein Programmierbarer Legostein der Firma Lego welcher Sensoren und Motoren ansprechen kann um Roboter oder andere autonome Systeme zu entwickeln bzw. zu programmieren.
 
Lego Mindstorms ist ein Programmierbarer Legostein der Firma Lego welcher Sensoren und Motoren ansprechen kann um Roboter oder andere autonome Systeme zu entwickeln bzw. zu programmieren.
 
In meinem Projekt habe ich mich auf die Bauteile Ultraschallsensor und 2 Motoren konzentriert.
 
In meinem Projekt habe ich mich auf die Bauteile Ultraschallsensor und 2 Motoren konzentriert.
  +
  +
'''NXT:'''' [[Datei:9841.png]]
  +
  +
  +
'''Ultraschall-Sensor:''' [[Datei:9842.png]]
  +
  +
  +
'''Motor:''' [[Datei: 9843.jpg]]
   
 
== Vorbereitung ==
 
== Vorbereitung ==

Version vom 18. August 2017, 19:46 Uhr

Projektbeschreibung

In diesem Projekt soll die Programmiersprache Ada erlernt werden und eine beispielhafte Firmware für einen Lego Mindstorms Roboter implementiert werden, welcher autonom (zB. durch einen Raum) fahren kann und mit Hilfe von Abstandsmessung durch einen Ultraschallsensor Hindernissen erkennt. Wenn ein mögliches Hindernis erkannt wird, soll der Roboter seine Fahrtrichtung ändern und somit dem Hindernis ausweichen.

Lego Mindstorms

Lego Mindstorms ist ein Programmierbarer Legostein der Firma Lego welcher Sensoren und Motoren ansprechen kann um Roboter oder andere autonome Systeme zu entwickeln bzw. zu programmieren. In meinem Projekt habe ich mich auf die Bauteile Ultraschallsensor und 2 Motoren konzentriert.

NXT:' 9841.png


Ultraschall-Sensor: 9842.png


Motor: 9843.jpg

Vorbereitung

Zu aller Erst muss das richtige Umfeld für die Entwicklung geschaffen werden, hierzu müssen ein paar Programme, Tools und Dateien heruntergeladen und installiert werden:


Unter folgendem Link kann man sich den Ada für Lego Mindstorms compiler für Linux herunterladen: http://www.dit.upm.es/%7Estr/proyectos/mindstorms/2011/index.html


Adaformindstorms-linux-2011-x86-gdb-bin.tar.gz ← downloaden, in diesem Verzeichnis liegt das makefile um ein Ada Programm für einen nxt Brick zu kompilieren


Die Firmware für den NXT Brick kann auf: https://lc-www-live-s.legocdn.com/r/www/r/mindstorms/-/media/franchises/mindstorms%202014/downloads/firmware%20and%20software/nxt%20software/firmware131_download1.zip?l.r2=798380141 heruntergeladen werden.


Als nächstes müssen einige Pakete und Treiber unter Linux installiert werden, damit man im folgenden die USB-Schnittstelle verwenden kann und der NXT Brick erkannt wird.


  • sudo apt-get install gnat → ist der normale gnatcompiler für ada
  • sudo apt-get install libusb-dev
  • sudo apt-get install git → wird benötigt um libnxt zu bekommen, git ist eine art Repository verwaltung
  • git clone https://github.com/xerpi/libnxt.git → hier liegt libnxt, es wird ins aktuelle Verzeichnus kopiert
  • sudo apt install scons → ähnlich wie make
  • scons


Um das programm kompilieren zu können, muss das beiliegende Makefile abgeändert werden. Der Kernel Path muss auf den Pfad geändert werden, in dem das makefile für das Ada programm liegt. In meinem Fall: /home/danielring/gnatmindstorms2011/lib/gcc/arm-eabi/4.5.3/rts-ravenscar-sfp/ravenscar


Damit man jetzt mit dem Brick per USB (als serielle schnittstelle) kommunizieren kann muss man noch dem user die Gruppe “dialout” geben. Hierzu muss man “sudo adduser username dialout” eingeben. Hier nach muss man sich dann einmal aus- und wieder einloggen, damit die Einstellung wirksam wird.


Wenn man jetzt den befehl Group in die Komandozeile eingibt kann man testen ob die Gruppe hinzugefügt wurde oder nicht. Mit “lsusb” kann man sehen ob das NXT Brick angeschlossen bzw. erkannt wurde.


Firmware neu aufspielen: cd ~/libnxt sudo ./fwflash /home/danielring/Downloads/LEGO\ MINDSTORMS\ NXT\ Firmware\ V1.31.rfw


Programm auf das Brick laden: cd ~/libnxt sudo ./fwexec /home/danielring/Downloads/vehicle_v12/vehicle_v12.bin

Fortschritt

Implementierung

Quellen