aldebaran_a
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
aldebaran_a [2023/01/30 10:01] – [Grafische Oberfläche zum debuggen] torsten.roehl | aldebaran_a [2023/04/26 11:14] (aktuell) – torsten.roehl | ||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
|{{: | |{{: | ||
|BH3-R Hexapode von Lynxmotion mit SSC-32 Controller. | | |BH3-R Hexapode von Lynxmotion mit SSC-32 Controller. | | ||
- | |||
=====Übersicht===== | =====Übersicht===== | ||
Zeile 62: | Zeile 61: | ||
====Setup==== | ====Setup==== | ||
===Auf Raspberry Pi einloggen=== | ===Auf Raspberry Pi einloggen=== | ||
+ | Hiernach können sie sich mit Hilfe von SSH auf dem Raspberry Pi einloggen: | ||
+ | |||
+ | < | ||
+ | |||
+ | Oder sie benutzen ein Remote Desktop programm wie z.B. VNC Viewer. Diese haben den Vorteil, dass es ihnen eine Benutzeroberfläche bietet. | ||
===Serielle Schnittstelle aktivieren=== | ===Serielle Schnittstelle aktivieren=== | ||
+ | |||
+ | Um mit Java auf die serielle Schnittstelle zugreifen zu können, muss diese zuerst aktiviert werden, denn standardmäßig wird sie vom Kernel für Systemnachrichten benutzt. | ||
+ | |||
+ | Folgende Punkte sind dabei zu beachten. Diese Punkte werden anschließend ausführlich besprochen. | ||
+ | |||
+ | * Der Benutzer muss der Gruppe dialout angehören. | ||
+ | * Die serielle Schnittstelle muss mit raspi-config freigeschaltet werden. | ||
+ | * In der Datei / | ||
+ | |||
+ | **Gruppenzugehörigkeit dialout überprüfen** | ||
+ | |||
+ | Der //user// (in der Regel pi) der //ttyAMA0// benutzen will, muss der Gruppe //dialout// angehören. | ||
+ | |||
+ | Auf der Konsole kann mit //id// (zeigt alle Gruppen des aktiven Benutzers an) geprüft werden, ob der Benutzer bereits der Gruppe //dialout// angehört. | ||
+ | |||
+ | Wenn nicht, wird durch die folgende Zeile die Gruppe //dialout// dem Benutzer //pi// hinzugefügt. | ||
+ | < | ||
+ | Jetzt sind noch zwei Schritte abzuarbeiten: | ||
+ | |||
+ | **Step 1: Schnittstelle in raspi-config aktivieren** | ||
+ | |||
+ | * sudo raspi-config | ||
+ | * Select Interfacing Options | ||
+ | * Select Serial | ||
+ | * "Would you like a login shell to be accessible over serial?" | ||
+ | * "Would you like the serial port hardware to be enabled?" | ||
+ | * "The serial login shell is disabled The serial interface is enabled" | ||
+ | * Select < | ||
+ | |||
+ | **Step 2: / | ||
+ | |||
+ | Nach dem Neustart muss noch die Datei / | ||
+ | |||
+ | Hier ist die Zeile enable_uart = 0 auf | ||
+ | < | ||
+ | abzuändern. | ||
+ | |||
+ | Nach einem Neustart sollte dann das Gerät (die serielle Schnittstelle) unter / | ||
+ | |||
===Pi4J=== | ===Pi4J=== | ||
+ | Die Pi4J-Bibliothek muss installiert werden. Anschließend werden zwei Programme übersetzt (kompiliert), | ||
+ | |||
+ | Mit der folgenden Zeile wird Pi4J auf dem RaspberryPi installiert. | ||
+ | |||
+ | < | ||
+ | |||
+ | Nach der Installation können auch gleich die mitgelieferten Beispiele übersetzt werden. Hierfür lautet der Befehl | ||
+ | |||
+ | < | ||
+ | |||
==Pi4J Testen== | ==Pi4J Testen== | ||
+ | Pi4J liefert eine Reihe von Beispielprogrammen mit. Zwei dieser Programme probieren wir aus. | ||
+ | |||
+ | |||
+ | Die mitgelieferten Beispiele befinden sich alle im Verzeichnis | ||
+ | |||
+ | < | ||
+ | |||
+ | In dieses Verzeichnis ist zu wechseln. | ||
+ | |||
+ | **Wichtig: | ||
==TEST: SystemInfoExample== | ==TEST: SystemInfoExample== | ||
+ | TEST: SystemInfoExample | ||
+ | |||
+ | Wir übersetzen das SystemInfoExample | ||
+ | |||
+ | < | ||
+ | |||
+ | Mit der folgenden Zeile wird das Programm ausgeführt | ||
+ | |||
+ | < | ||
+ | |||
+ | Die Ausgabe (kleiner Auszug) sollte in etwa so aussehen: | ||
+ | < | ||
+ | ---------------------------------------------------- | ||
+ | PLATFORM INFO | ||
+ | ---------------------------------------------------- | ||
+ | Platform Name : | ||
+ | Platform ID : | ||
+ | ---------------------------------------------------- | ||
+ | HARDWARE INFO | ||
+ | ---------------------------------------------------- | ||
+ | Serial Number | ||
+ | CPU Revision | ||
+ | CPU Architecture | ||
+ | CPU Part : 0xb76 | ||
+ | CPU Temperature | ||
+ | CPU Core Voltage | ||
+ | CPU Model Name : ARMv6-compatible processor rev 7 (v6l) | ||
+ | Processor | ||
+ | </ | ||
==TEST: SerialExample== | ==TEST: SerialExample== | ||
- | ==Java API für den Hexapoden | + | Wir übersetzen das SerialExample |
- | ==Java API== | + | |
- | ==Tutorial== | + | < |
- | ==Quellen== | + | |
+ | Wir testen, ob das Beispiel SerialExample gestartet werden kann (da wir nichts angeschlossen haben, sollte das Programm nach dem Start wieder beendet werden). | ||
+ | |||
+ | < | ||
+ | |||
+ | ==Java API für den Hexapoden == | ||
+ | |||
+ | < | ||
+ | // NFO Java Carriage Return java = \r | ||
+ | Serial gui = cutecom (sudo apt-get install cutecom) //INFO | ||
+ | </ | ||
+ | |||
+ | Tutorial | ||
+ | Quellen | ||
+ | |||
+ | Source code : https:// | ||
+ | |||
+ | JavaDoc : https:// | ||
+ | |||
+ | (Api by Lukas.D und Denis.S) | ||
====Ansprechen des Hexapoden ohne API==== | ====Ansprechen des Hexapoden ohne API==== | ||
+ | Es ist natürlich auch möglich den Hexapoden ohne die kleine Java API anzusprechen. Hierbei ist es aber wichtig die Funktionsweise des Lynxmotion SSC32U Servo Controllers zu verstehen. Hierzu können sie sich den [[https:// | ||
+ | |||
+ | < | ||
+ | |||
+ | * <ch> Pin/Kanal von 1 bis 31 | ||
+ | * <pos> Position zu der der Servo sich bewegen soll | ||
+ | * <sg> Servo geschwindigkeit in Microsekunden pro Sekunde (1000≈90°/ | ||
+ | * < | ||
+ | * <cr> carriage return (ASCII 13) | ||
+ | |||
+ | |||
+ | Ein Beispiel für einen Befehl wäre zum Beispiel: | ||
+ | |||
+ | < | ||
+ | |||
+ | Hier wird der Servo 3 in einer Sekunde zur Position 1600 bewegt. Es ist aber auch möglich mehrere Motoren gleichzeitig zu bewegen: | ||
+ | |||
+ | < | ||
+ | |||
+ | Hier wird der Servo 5 zu Position 1600 bewegt und der Servo 10 zu Position 750. Beide haben für diese Bewegung 2,5 sekunden zeit. | ||
+ | |||
+ | |||
+ | Um dies in PI4J umzusetzten muss erst einmal die Serielle Schnittstelle wie im Serial Example eröffnet werden. Danach können die Befehle einfach per | ||
+ | |||
+ | < | ||
+ | |||
+ | gesendet werden. | ||
+ | |||
====Programm ausführen==== | ====Programm ausführen==== | ||
+ | Wenn sie ein Programm geschreiben haben, dass entweder die Java APi benutzt oder welches sie händisch programmiert haben, dann müssen sie dieses erst einmal auf den Raspberrypi verschieben. | ||
===Dateien mit SCP verschieben=== | ===Dateien mit SCP verschieben=== | ||
+ | Datein können sie mit SCP verschieben. Hierzu gehen sie in das Verzeichniss in dem Ihr Projekt liegt und führen sie folgenden Befehl aus: | ||
+ | |||
+ | < | ||
+ | |||
===Projekte mit Git kopieren=== | ===Projekte mit Git kopieren=== | ||
+ | Wenn sie Git benutzen stellen sie sicher,dass Git auf ihrem Raspberry Pi installiert ist. Wenn nicht, dann installieren sie es mit: | ||
+ | |||
+ | < | ||
+ | |||
+ | Programme mit den Befehlen auf den Raspberry Pi laden: | ||
+ | |||
+ | Kopiert die Git Reposetory ins momentane Verzeichnis: | ||
+ | |||
+ | < | ||
+ | |||
+ | Aktualisiert (lädt Änderungen) die Git Reposetory im momentane Verzeichnis: | ||
+ | |||
+ | < | ||
+ | |||
===Programm starten=== | ===Programm starten=== | ||
+ | Nun müssen sie folgenden Befehl auf der Konsole ausführen um das Programm zu compilieren: | ||
+ | |||
+ | < | ||
+ | |||
+ | Und im Anschluss das kompilierte Programm starten: | ||
+ | |||
+ | < | ||
+ | |||
+ | Nun sollte das Programm laufen. Wenn dies nicht der Fall ist, testen sie die Beispiele der Pi4j Library. | ||
+ | |||
===Quellen=== | ===Quellen=== | ||
+ | Die wichtigste Quelle für dieses Projekt ist der SSC-32U User Guide. Er enthält u.a. das Protokoll für die serielle Kommunikation. | ||
+ | * [[https:// | ||
+ | |||
+ | Weitere Quellen zum SCC-32 Servo-Controller: | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | |||
+ | Die Pi4J Bibliothek wird benötigt, um mit Java die serielle Schnittstelle des Raspberry ansprechen zu können. | ||
+ | * http:// | ||
+ | |||
+ | Api | ||
+ | * https:// | ||
+ | |||
===History=== | ===History=== | ||
+ | * bis Juni 2019 Hannes. H | ||
+ | * ab Juni 2019 bis Februar 2021 Denis. S & Lukas. D | ||
aldebaran_a.1675072894.txt.gz · Zuletzt geändert: 2023/01/30 10:01 von torsten.roehl