4 ⌨️ Konfiguration
"Wer liebt Fritten?" 🍟
4.1. NyBoard
4.1.1. Lese das Handbuch
Finde die Versions Info auf dem NyBoard. Lese das entsprechende Handbuch für NyBoard V0_1 oder NyBoard V0_2.
Falsche Handhabung kann das NyBoard beschädigen!
4.1.2. Drehe das Potentiometer im Uhrzeigersinn um mit niedriger Spannung zu beginnen
Ab NyBoard V0_2 bieten wir einen Jumper Selektor zur Umgehung des Potentiometers an. Wenn Metallservos in einem Standard Nybble Bausatz verwendet werden, kann dieser Schritt übersprungen werden.
Höhere Spannung erhöht das Drehmoment der Servos und lässt Nybble schneller laufen. Der Nachteil ist, dass die Stromaufnahme erhöht wird, was wiederrum die Akkulaufzeit verkürzt. Ebenso wird die Stabilität der Schaltung beeinflusst und der Servo Verschleis beschleunigt. Nach meinem Tests scheinen 5.5V eine ausgewogene Leistung zu ergeben.
Bei der Erstinstallation sollte das NyBoard nicht mit Schrauben befestigt werden, da es möglicherweise zum einstellen mit einem Potentiometer harausgenommern werden muss. Vergewissere dich, dass die Servos im normalen Betriebszustand gut drehen bevor die Feineinstellung vorgenommen wird.
4.1.3. Stelle den I2C Schalter (SW2) auf Ar
Der I2C Schalter ändert den Master von I2C-Bausteinen (Gyro/Beschleunigungsmesser, Servotreiber, externer EEPROM). Bei der Voreinstellung “Ar”, verwendet das NyBoard den integrierten ATmega328P als Master-Chip. Bei "Pi" verwendet NYBoard externe Chips, die über die I2CPorts (SDA, SCL) angeschlossen sind als Master Chip.
Manchmal, wenn der Bootvorgang nicht durchläuft, wurde vielleicht versehentlich der Schalter auf "Pi" gestellt.
4.1.4. Das MyBoard für optimale Leistung anpassen
Das NyBoard ist für zwei Anwendungsfälle konzipiert. Einer ist für Nybble und Metallgetriebeservos, der zweite ist für DIY Roboter die Kunststoffgetriebe Servos verwenden. Kunststoffgetriebe Servos können nur 6V aushalten, daher gibt es einen Step Down Chip auf dem NyBoard. Der Chip ist für 5A maximale Leistung ausgelegt, kann aber nur mit mehreren richtigen Einstellungen und sorgfältiger Abstimmung erreicht werden.
Bei der Verwendung von NyBoard und den Metallgetriebe Servos von Nybble, kann durch einige Anpassungen eine optimierte Leistung erreicht werden. Für NyBoard_V0_1 müssen einige Lötarbeiten durchgeführt werden. Dies kann man sich im Forum anschauen. Für NyBoard_V0_2 können Sie den Jumper SW3 zwischen BATT und V_S anschließen. (Im Hinblick auf die Sicherheit von Kunststoffgetriebe-Servos wird das NyBoard standartmäßig mit der Jumperstellung SW3 geliefert, die V_S und V+ verbindet).
V_S bedeutet Leistung für Servo. Der Jumper wählt, ob die Servos (V_S) uber den Step-Down-Chip (V+) oder direkt über die Akkus (BATT) versorgt werden sollen. (BATT) und (V+) sollten also niemals direkt verbunden werden.
Wie sich zeigt, arbeitet das NyBoard stabiler, wenn die Metallgetriebe Servos direkt mit BATT statt mit V+ betrieben werden. Wenn Sie das NyBoard verwenden um Ihre eigenen Kunstoffgetriebe Servos anzutreiben, müssen Sie die Step-Down-Schaltung verwenden.
4.2. Downloads and Installationen
Es wird die aktuellste Arduino IDE benötigt um die Umgebung einzurichten. Ältere Versionen neigen dazu, größere Hex-Dateien zu kompilieren, die die Speichergrenze überschreiten können.
Wenn zuvor andere Bibliotheken hinzugefügt wurden und die Fehlermeldung "XXX library is already installed" zu sehen ist, empfiehlt es sich, diese zuerst zu löschen. (Anleitung: https://stackoverflow.com/questions/16752806/how-do-i-remove-a-library-from-the-arduino-environment). Wenn es aufgrund unterschiedlicher Konfigurationen der Arduino-IDE-Installation bei der Kompilierung Fehlermeldungen bezüglich fehlender Bibliotheken gibt, google danach und Installiere diese in der Ardunio IDE.
4.2.1. Install durch Bibliotheksmanager
Gehe zur Bibliotheksverwaltung (Anleitung: https://www.arduino.cc/en/Guide/Libraries), dann suche und installiere:
Adafruit PWM Servo Driver
IRremote
QList
4.2.2. Install durch hinzufügen einer .ZIP Bibliothek
Gehe zu jrowberg/i2cdevlib: I2C device library collection for AVR/Arduino or other C++-based MCUs, lade die Zip-Datei herunter und entpacke diese. Alternativ kann auch das komplette repository geklont werden.
Im Arduino IDE bei Sketch auf Add .ZIP Library und dann Arduino/MPU6050/ zusätzlich noch Arduino/I2Cdev/. Auf die Ordner klicken und diese nacheinander hinzufügen. Es müssen keine .ZIP Dateien sein.
4.2.3. NyBoard Unterstüzung für Arduino IDE hinzufügen (Danke an A-Ron!)
Öffne die Einstellungen...
Im Feld Weitere Boards Manager URLs https://raw.githubusercontent.com/PetoiCamp/OpenCat/master/Resources/NyBoard/boardManager/package_petoi_nyboard_index.json einfügen. Wenn in diesem Feld bereits URLs aufgelistet sind, tenne diese mit Kommas oder klicke auf das Symbol neben dem Feld um einen Editor zu öffnen und die obere URL in eine neue Zeile einzufügen.
Klicke auf OK um das Einstellungsfenster zu schliessen (Zuvor geöffnete Fenster müssen geschlossen werden um das Einstellungsfenster zu schließen.)
Öffne den Boards Manager... unter Tools -> Board: XXXX -> Boards Manager...
In Filter your search... schreibe NyBoard
Wähle den Eintrag aus und klicke auf Installieren
Klicke auf Schliessen
Wähle ATmega328P (5V, 20 MHz) NyBoard aus dem Tools -> Board: XXXX Menü (NyBoardV0_1 und NyBoardV0_2 benutzen die gleichen Einstellungen).
4.2.4. Manuelle Board Installations Methode
Nur wenn die obere Methode fehlschlägt
● Finde die Datei boards.txt
Mac Ort:
/Users/UserName/Library/Arduino15/packages/arduino/hardware/avr/version#/
Oder:
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr
Zum Zugriff , Rechtsklick auf Arduino.app und wähle Show Package Contents
Windows Ort:
C:\Program Files(x86)\Arduino\hardware\arduino\avr\
WICHTIG! Wenn die Arduino IDE über den Microsoft Store installiert wurde, gibt es warscheinlich keinen Zugriff auf den Ordner, da dort kritische Konfigurationsdateien gepeichert sind. Die einfachste Lösung ist, Arduino wieder zu deinstallieren und diese direkt von https://www.arduino.cc neu zu installieren.
Linux
Beim Herunterladen über das Terminal oder den Packetverwalter erhält man möglicherweise nicht die neueste Version, was ein Problem werden kann. Bitte die neuste Version von der Arduino Webseite herunterladen: https://www.arduino.cc/en/Main/Software
Entpacke das Packet und sudo install.sh
Der Speicherort der boards.txt files ist:
Fedora: boards.txt is verlinkt unter:
/etc
Arch: boards.txt ist unter:
/usr/share/arduino/hardware/archlinix-arduino/avr/
Mint:
location_of_installation/arduino/hardware/arduino/avr
Ubuntu (on 18.04 installieren mit apt-get install arduino
):
/usr/share/arduino/hardware/arduino/boards.txt
nach auffinden von boards.txt:
● Mache eine Kopie von boards.txt falls etwas rückgängig gemacht werden soll.
● Erstelle eine neue boards.txt.
Du kannst meine boards.txt Datei herunterladen, oder:
Editiere deine boards.txt mit Admin Rechten. Finde den folgenden Abschnitt
pro.name=Arduino Pro or Pro Mini
füge folgendes ein:
Code-Block in der Arduino Pro oder Pro Mini Sektion wie unten beschrieben. Speichere und schliesse den Editor.
● Lade ATmega328_20MHz.hex herunter. Lege diese in deinem Arduino Ordner ab unter: ./bootloaders/atmega/. Es sollten auch andere Bootloader mit .hex Endung in diesem Ordner sein.
Arduino IDE neustarten. Unter Tools->Boards, wähle Arduino Pro oder Pro Mini. Dort sollte ATmega328P (5V, 20 MHz) im Prozessor menü sein.
Wenn das Board dort nicht zu finden ist, verwendet die Arduino IDE möglicherweise die boards.txt von einem anderen Pfad. Suche die boards.txt in allen Ordnern auf deinem Computer. Finde die Datei, die genutzt wird.
4.2.5. Brenne den Bootloader
Nur wenn der Bootloader von NyBoard nicht mehr funktioniert.
Jedes NyBoard durchläuft vor der Auslieferung eine Funktionsprüfung, daher sollte bereits ein kompatibler Bootloader installiert sein. In seltenen Fällen kann es jedoch vorkommen, dass der Bootloader zusammenbricht und man dann keine Sketche über die Arduino-IDE hochladen kann.
Nun, es liegt nicht immer am Bootloader, wenn Sie Ihren Sketch nicht hochladen können:
Manchmal erkennt der USB-Anschluss eine zu hohe Stromaufnahme von einem Gerät und deaktiviert den gesamten USB-Dienst. Dann muss der USB-Dienst oder Pc neu gestartet werden;
Der Treiber für den Uploader FTDI USB 2.0 to UART muss installiert sein;
Es wurde ein falscher Port ausgewählt;
Schlechter oder keinen Kontakt;
Kein Glück. Morgen ist ein neuer Tag!
Wenn man sich wirklich entscheidet, den Bootloader neu zu brennen:
Wähle das ATmega328P (5V, 20 MHz) Board aus dem Tools Menü der Arduino IDE.
Wähle deinen ISP (In-System Programmer). Der obige Screenshot zeigt zwei beliebte Programmer: Der hervorgehobene USBtinyISP ist ein günstiger Bootloader, den man sich kaufen kann, während der ausgewählte Arduino als ISP einen normalen Arduino as ISP verwenden kann.
Verbinde den Programmer mit dem SPI-Port auf dem NyBoard. Achte beim Anschließen auf die Richtung. Stelle sicher, dass es eine gute Verbindung ist.
Brenne den Bootloader. Wenn das zum ersten Mal gemacht wird, warte geduldig, bis mehrere Prozentbalken 100% erreichen und eine Minute lang keine weiteren Meldungen mehr erscheinen.
4.2.6. FTDI-Uploader anschließen
Das folgende Bild zeigt zwei gängige FTDI-Boards.
Auf dem roten Board muss der Jumper auf 5V (nicht 3,3V) gesetzt sein. Der GND des Uploaders und die 6-polige Buchse auf dem NyBoard müssen übereinstimmen.
Verbinde den Computer über ein USB-mini zu USB-Kabel mit dem FTDI-Uploader (der rote Chip mit 6 männlichen Pins). Der Uploader hat drei LEDs, Power, Tx und Rx. Direkt nach dem Anschluss sollten Tx und Rx eine Sekunde lang blinken, was die erste Kommunikation anzeigt, dann dimmen. Nur die Power-LED sollte weiter leuchten. Ein neuer Port ist unter Tool->Port als "/dev/cu.usbserial-xxxxxxxxxx" zu finden. (Mac) oder "COM#" (Windows).
Unter Linux sieht man, sobald der Uploader am Computer angeschlossen ist, eine "ttyUSB#" in der Liste der seriellen Ports. Es kann aber immer noch ein Fehler der seriellen Schnittstelle beim Hochladen auftreten. Man muss der seriellen Schnittstelle den Zugriff erlauben. Bitte gehe zu diesem Link und folge den Anweisungen: https://playground.arduino.cc/Linux/All/#Permission
Wenn Tx und Rx weiterhin aufleuchten, stimmt etwas mit der USB-Kommunikation nicht. Der neue Anschluss ist dann nicht zu sehen. Normalerweise wird dies durch den Überlastschutz Ihres Computers verursacht, wenn das NyBoard nicht mit einer externen Stromversorgung verbunden ist und sich alle Servos auf einmal bewegen.
In späteren Versionen könnte es eine andere Variante des FTDI-Uploaders geben. Überprüfe einfach die Markierungen auf dem Chip und Verbinde diesen korrekt mit dem NyBoard.
4.2.7. Bluetooth uploader anschließen (optional)
Es ist möglich Nybble drahtlos zu programmieren und zu kommunizieren. Schaut euch dazu die Bluetooth Anleitung im OpenCat Forum an. Nybble kann dann mit einer Smartphone APP oder Web API gesteuert werden!
4.2.8. OpenCat Packet herunterladen
Lade ein neues OpenCat repository von GitHub herunter: https://github.com/PetoiCamp/OpenCat. Es ist besser, wenn die Versionskontrollfunktion von GitHub verwendet wird. Andernfalls stelle sicher, dass immer der GANZE Nybble ORDNER Heruntergeladen wird. Alle Programme müssen die gleiche Version sein damit sie funktionieren.
Es gibt mehrere testX.ino-Codes im Ordner ModuleTests. Man kann diese hochladen, um bestimmte Module separat zu testen. Öffne einen beliebigen testX.ino-Sketch mit dem Präfix "test". (Ich empfehle die Verwendung von testBuzzer.ino als ersten Sketch).
Wählt als Board Arduino Pro oder Pro Mini und kompiliert. Es sollte keine Fehlermeldungen geben. Lade den Sketch auf das Board hoch. Die LEDs Tx und Rx sollten schnell blinken. Sobald sie aufhören zu blinken, sollten Meldungen auf dem seriellen Monitor erscheinen. Vergewissere dich, dass die Einstellung der Baudrate (57600) und die Boardfrequenz (16MHz oder 20MHz) mit der Konfiguration übereinstimmt.
Wenn eine Eingabeaufforderung angezeigt wird, stelle sicher das "Kein Zeilenende" gewählt wurde. Andernfalls verwirren die unsichtbaren Zeichen '\n' oder '\r' die Parsen-Funktionen.
Bei Linux-Systemen kann die folgende Fehlermeldung angezeigt werden:
Um den Sketch von Arduino zu kompilieren, muss man das Ausführungs Privileg zum avr-gcc hinzufügen:sudo chmod +x filePathToTheBinFolder/bin/avr-gcc
Zusätzlich muß die Ausführungsberechtigung für alle Dateien innerhalb von /bin hinzugefügt werden, der Befehl ist: sudo chmod -R +x /filePathToTheBinFolder/bin
4.3. Arduino IDE as interface
Mit dem FTDI-zu-USB-Konverter, der das NyBoard und die Arduino-IDE verbindet, haben Sie die ultimative Schnittstelle um mit dem NyBoard zu kommunizieren und jedes Byte darauf zu ändern.
Ich habe eine Reihe von seriellen Kommunikationsprotokollen für NyBoard definiert:
Alle Kürzel beginnen mit einem einzelnen Ascii-codierten Zeichen, um das Parsing-Format festzulegen. Sie unterscheiden zwischen Groß- und Kleinschreibung und sind gewöhnlich klein geschrieben.
Einige Zeichen wurden nicht implementiert, wie z.B. "h". Das Kürzel 'i' und 'l' haben noch einige Bugs.
4.4. Raspberry Pi's serieller Anschluss als Schnittstelle
Nur bei Verwendung von Pi als Master-Controller. Nybble braucht keinen Pi, um sich zu bewegen.
Wie im seriellen Protokoll gezeigt, sind die Kürzel, die vom seriellen Monitor der Arduino-IDE unterstützt werden, alle als Ascii-Zeichenketten für die menschliche Lesbarkeit kodiert. Während ein Master-Computer (z.B. RasPi) zusätzliche Befehle unterstützt, die für eine effiziente Kodierung meist als binäre Zeichenketten kodiert sind. Zum Beispiel bei der Kodierung des Winkels 65 Grad:
Ascii: benötigt 2 bytes um Ascii Zeichen zu speichern, Zeichen '6' und '5'
Binär: benötigt 1 byte um den Wert 65 zu speichern, was dem Ascii Zeichen 'A' entspricht
Was ist mit dem Wert -113? Er benötigt vier Bytes als Ascii-Zeichenkette, aber immer noch nur ein Byte in binärer Kodierung, wobei der Inhalt nicht mehr als Zeichen angezeigt werden kann.
Offensichtlich ist die binäre Kodierung viel effizienter als die Ascii-Zeichenkette. Die übertragene Nachricht ist jedoch nicht direkt für den Menschen lesbar. Ich habe im OpenCat-Repository ein einfaches Python-Skript ardSerial.py, das die serielle Kommunikation zwischen NyBoard und Pi verarbeiten kann.
4.4.1. Raspberry Pi's seriellen Port konfigurieren
In Pi's Terminal, gebt ein: sudo raspi-config
Unter Interface findet man die Option Serial. Deaktiviert die serielle Anmeldeshell und aktiviert die serielle Schnittstelle.
Wenn man den Pi an die 2x5-Buchse des NyBoards anschließt, sollten deren serielle Anschlüsse automatisch mit 3,3V verbunden werden. Andernfalls achte auf die Rx- und Tx-Pins auf Ihrem eigenen AI-Chip und dessen Spannungswert. Der Rx auf dem Chip sollte mit dem Tx des NyBoards verbunden werden, und der Tx sollte mit dem Rx verbunden werden.
4.4.2. Ändere die Berechtigung von ardSerial.py
Wenn man ihn als Bash-Befehl ausführen will, muss man diesen ausführbar machen:
chmod +x ardSerial.py
Möglicherweise muss der richtige Pfad Ihrer Python-Binary in der ersten Zeile geändert werden:
#!/user/bin/python
4.4.3. Nutze ardSerial.py als Kommander von Nybble
Das NyBoard hat nur einen seriellen Anschluss. Man muß den FTDI-Konverter AUSSTECKEN, wenn man Nybble mit der seriellen Schnittstelle von Pi steuern möchte.
Die Eingabe von ./ardSerial.py <args>
ist fast gleichbedeutend mit der Eingabe von <args> in Arduino's seriellem Monitor. Beispielweise ./ardSerial.py kcr
bedeutet "Fähigkeit-Kriechen durchführen".
Beide, also ardSerial.py und der Parsing-Abschnitt in Nybble.ino, benötigen weitere Implementierungen, um alle seriellen Befehle im Protokoll zu unterstützen.
Bei der Verbindung mit Pi kann es zu einer reduzierten Bewegungsfähigkeit kommen. Eine stärkere Batterie ist erforderlich.
Mit dem zusätzlichen Stromverbrauch durch den Pi wird Nybble weniger in der Lage sein, intensive Bewegungen, wie z.B. Trab, auszuführen (das Zeichen istktr
). Das System wird derzeit von zwei 14500 Akkus in Reihe betrieben. Sie finden möglicherweise bessere Lösungen für die Stromversorgung, wie z.B. die Verwendung von 7,4 Lipo-Akkus mit hoher Kapazität oder 2 S-18650. Es gibt eine Reihe von Überlegungen zur Zusammenarbeit von Software und Hardware für eine ausgewogene Leistung. Mit Nybbles winzigem Körper ist es besser, die Initiierung des Kommunikationsrahmens und des Verhaltensablaufs zu bedienen, als ein rennendes Biest zu haben.
4.5. Akkus
Obwohl Sie das NyBoard direkt mit dem FTDI-Uploader programmieren können, ist für den Antrieb der Servos eine externe Stromversorgung erforderlich.
4.5.1. Spannung
Das NyBoard benötigt eine externe Spannung von 7,4~9V, um die Servos anzutreiben. Bei Nybble verwenden wir den 8V-Standard, um alle Parameter als gesamtes zu konfigurieren. Das sind normalerweise zwei in Reihe geschaltete Li-Ionen- oder Li-Poly-Akkus. Ein einziger Akku hat eine Spannung von 4,2V, wenn er voll aufgeladen ist, und kann normal arbeiten, bis die Spannung auf 3,6V abfällt. Das sind etwa 7,2V bei zwei, in Reihe geschalteten Akkus. Vor der Installation dreht man das Potentiometer auf dem NyBoard im Uhrzeigersinn, um zunächst die minimale Ausgangsspannung (etwa 4,5V) zu testen. Dann dreht man das Potentiometer solange hoch, bis der Roboter richtig funktioniert. Bei unseren Bausatz-Servos funktioniert es eigentlich besser, SW3 zwischen BATT mit V_S zu verbinden und den Step-down-Chip zu umgehen (so muss nicht mit dem Potentiometer eingestellt werden).
Wenn man nach Akkus sucht, sucht man mit den Schlüsselwörtern "14500 3,7V Li-Ion-Batterie ungeschützt". Mir ist aufgefallen, dass der Überstromschutz einiger Akkus durch die Spitzenstromaufnahme (normalerweise >2,5A) ausgelöst werden kann, wodurch das NyBoard zurückgesetzt wird oder nicht mehr funktioniert. Versuche Akkus mit höherer Entladungsleistung zu finden.
Lies diesen Forumsbeitrag um Akkus zu finden, die gut mit Nybble funktionieren.
4.5.2. Dimensionen
Der mitgelieferte Batteriehalter ist für 14500 Akkus ausgelegt, das sind 14 mm Durchmesser und 50 mm Länge. 50 ± 1 mm sollten auch passen. Diese haben die gleiche größe wie AA-Batterien, sind aber wesentlich Leistungsstärker. Verwenden Sie diesearauf, nicht in normalen AA-Geräten!. Wenn Sie in den USA leben, wir haben mit EBL 14500 Li-Ionen-Akkus getestet.
Es können auch andere Akkuhalterungen entworfen werden, um größere Akkus für eine bessere Leistung zu transportieren. Das ist vor allem dann notwendig, wenn ein Raspberry Pi genutzt wird oder Nybble schneller laufen soll.
4.5.3. Verbindung
Vorsicht mit der Polarität beim Anschluss der Stromversorgung. Achtet darauf, dass das positive (+) und das negative (-) Zeichen sowohl an der Stromklemme des NyBoards als auch an der Stromversorgung zu sehen ist.
Eine falsche Polung kann Ihr NyBoard beschädigen!
Löst die Schrauben des Stromblocks. Führe die Drähte des Akkuhalters ein und ziehe die Schrauben an. Beim Einschalten sollte sowohl die blaue (für Chip) als auch die gelbe LED (für Servos) aufleuchten.
4.5.4. Die Lebensdauer des Akkus variiert nach Verwendung
Sie kann Stunden betragen wenn Sie hauptsächlich programmieren und Körperhaltungen testen. Oder weniger als 30 Minuten, wenn man Nybble laufen lässt.
Wenn der Akku schwach ist, blinkt die gelbe LED langsam. Obwohl das NyBoard immer noch ein oder zwei Servos antreiben kann, wird es sehr instabil sein wenn mehrere Servos gleichzeitig angetrieben werden. Das führt zu wiederholten Neustarts oder ungünstigen Gelenkdrehungen. In seltenen Fällen kann es sogar die Bits im EEPROM verändern. Zum wiederherstellen muss man dann die Programmcodes neu hochladen und die Konstanten neu speichern.
4.5.5. Laden
Sie benötigen kompatible intelligente Ladegeräte für die Akkus. Die Akkus sollten beim Aufladen immer beaufsichtigt werden.
4.5.6. Nach Gebrauch
Nach dem Spielen die Akkus aus dem Batteriehalter entfernen, um eine Tiefentladung zu vermeiden.
4.5.7. Signalstörungen
Es ist in Ordnung, FTDI und Akku zur gleichen Zeit anzuschließen. Man kann serielle Befehle eingeben, während das Akku angeschlossen ist. Mir ist aufgefallen, dass der serielle USB-Anschluss zufällig deaktiviert wird. Ich denke, das liegt an der plötzlichen Stromaufnahme durch die Servos. Dadurch wird der Überstromschutz des Computers ausgelöst und der USB-Anschluss deaktiviert. In diesem Fall, den USB-Bus zurücksetzen oder den Computer neu starten. Es ist also eigentlich besser, das Board mit einer Batterie zu versorgen, bevor Sie den FTDI Uploader einstecken.
Last updated