Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Übersetzung: Christopher Spitzner / Misterfloppy@gmx.de
Damit diese Anleitung einfach zu handhaben ist konzentriere ich mich auf die Montage und nicht auf eine ausführliche Erklärung.
Wer spezifische Fragen zum "Warum" anstatt "Wie" hat, meldet sich bitte in unserem Forum unter https://www.petoi.com/forum oder schreibt an info@petoi.com.
Die Crowdfunding Kampange ist auf Indiegogo aktiv: igg.me/at/nybble. Unsere Konten für soziale Medien (Instagram/Twitter/Facebook/GitHub) sind @PetoiCamp. Teilen Sie Ihren Nybble mit uns, unter #nybble #petoi #opencat damit wir für Sie reposten können!
Last Updated: 18/02/2020
"Alles ist verbunden." 🤝
Nybbles Servos sind symmetrisch mit den PWM-Pins des NyBoards verbunden und ähneln den Nerven entlang des Rückenmarks. Obwohl Nybble nicht über Schulter-Roll-DoF verfügt, sind diese Indexe (4~7) für das gesamte OpenCat-Framework reserviert.
NyBoard V0_1 und V0_2 haben unterschiedliche PWM-Pin-Belegungen, die Position vom Servoanschluss bleiben gleich. Alle Anpassungen werden in der Software vorgenommen.
Verwende h für Kopf, t für Schwanz, r für Schulter-Rollgelenk, s für Schulter-Nickgelenk, k für Kniegelenk, F für vorne, H für hinten, L für links, R für rechts, die vollständige Gelenkkarte von OpenCat ist:
Beachte das Schaltschema zum Anschluss der Servos mit den PWM-Pins. Vorsicht mit der Richtung der Drähte. Der braune Draht des Servos ist GND, während GND auf dem NyBoard V0_1 entlang der Mittellinie liegen. Auf dem NyBoard V0_2 liegen sie gegenüber.
Eine schnelle Überprüfung ist, dass alle braunen Drähte auf NyBoard V0_1 von der Platinenoberfläche weg zeigen. Auf NyBoard V0_2 sollten die braunen Drähte an der Plattenoberfläche sein.
Bei NyBoard V0_2 ist die Position der Servodrähte immer noch die gleiche, aber die Richtung der Farben ist entgegengesetzt.
Nach der Kalibrierung, der Fehlersuche und der endgültigen Montage ist es an der Zeit, über die Verkabelung nachzudenken damit Nybble ordentlich aussieht. Es gibt mehrere Steckplätze auf dem Rahmen, die als Kabelverteiler konzipiert sind. Es kann auch ein eigener Stil für den Anschluss von zukünftigem Zubehör entwickelt werden. Achte darauf, dass die Kabel die Bewegung der Servos nicht behindern.
Unten ist meine Verkabelung:
Falls noch nicht geschehen, stecke das 4-polige Kabel ein, notiere, welche Kabelfarben an welche Signale angeschlossen sind. Beim Blick in Nybbles Augen sind die Verbindungen von links nach rechts:
VCC
Trigger
Echo
Ground
Schließe das andere Ende des Kabels an den Stecker an, der zuvor bei der Montage eingelötet wurde. Verwende dazu die folgende Abbildung:
Sensor Seite
NyBoard Seite
Vcc
D8
Trigger
D9
Echo
D10
GND
GND
"Ein Verfehlen ist so gut wie eine Meile." 🎯
Die Kalibrierung ist für die einwandfreie Funktion von Nybble unerlässlich.
In den vorangegangenen Abschnitten haben wir die Körperteile vorbereitet, sie aber nicht auf die Servos geschraubt. Wenn wir die Servos nicht vor dem Anbringen kalibrieren, können sie sich in jede Richtung drehen, stecken bleiben und die Servos oder Körperteile beschädigen.
Die Kalibrierung erfolgt in vier Schritten:
Schreib Konstante an das Board
Einschalten, Servos frei bis zum Nullwinkel/Kalibrierungszustand drehen lassen
Körperteile an den Servos befestigen
Feinabstimmung der Abweichungen (Offsets) in der Software
Die Logik hinter der Kalibrierung kann im OpenCat Forum gefunden werden.
Montagebezogene Definitionen, wie Gelenkabbildung, Drehrichtung, Sensorpins. Sie sind weitgehend festgelegt und werden in OpenCat.h definiert. Sie werden auch für meine zukünftigen Roboter einheitlich gehalten;
Kalibrierungsbezogene Parameter, wie MPU6050-Verschiebungen und Gelenkkorrekturen. Sie werden in Echtzeit gemessen und im integrierten EEPROM gespeichert. Diese müssen nur einmal gemessen werden;
Geschicklichkeitsdaten, wie Haltungen, Gangarten und vorprogrammierte Verhaltensweisen. Sie werden in Instinct.h definiert. Es können auch weitere Fähigkeiten hinzugefügt werden.
Die Rolle von WriteInstinct.ino besteht darin, Konstanten entweder in das Onboard oder in das I2C-EEPROM zu schreiben und die Kalibrierungswerte zu speichern. Diese werden danach mit dem Sketch Nybble.ino überschrieben.
Sie müssen den * von #define NyBoard_V*_*
in Instinct.h ändern, damit er mit der Version des NyBoards übereinstimmt. Die Versionsnummer ist links neben dem grünen Akkuanschluss.
Nachdem das Hochladen von WriteInstinct.ino abgeschlossen ist, öffne den seriellen Monitor. Es erscheinen mehrere Fragen:
Reset all joint calibration? (Y/n)
Wenn die Gelenke noch nie kalibriert wurden oder neu kalibriert werden müssen, gebe bei der Frage 'Y' ein. Beachte GROß- KLEINSCHREIBUNG!
Do you need to update Instincts? (Y/n)
Wenn die Instinct.h in irgendeiner Weise verändert wurde, sollte 'Y' eingegeben werden. Dies ist nicht immer notwendig ist, erfordert aber ein tieferes Verständnis der Speicherverwaltung.
Calibrate MPU? (Y/n)
Wenn der MPU6050, d.h. also Kreisel-/Beschleunigungssensor noch nie kalibriert wurde, 'Y' eingeben.
Manchmal kann das Programm in der Verbindungsphase hängen bleiben. Durch Schließen und erneutes Öffnen des seriellen Monitors oder durch Drücken der Reset-Taste auf dem NyBoard kann man das Programm neu starten.
Der Kalibrierungszustand ist als der mittlere Punkt des zulässigen Servobereichs definiert. Die Kalibrierung für Servos kann entweder in WriteInstinct.ino oder Nybble.ino durchgeführt werden. Ich empfehle, dies mit WriteInstinct.ino zu tun falls etwas mit den Konstanten nicht stimmt.
Es MÜSSEN alle Servos und der Akku für eine ordnungsgemäße Kalibrierung eingesteckt sein. Gebe dann auf dem seriellen Monitor 'c' ein, um in den Kalibrierungsmodus zu gelangen. Die Servos sollten sich in unmerklichen Zeitabständen nacheinander drehen und dann anhalten. Abhängig von ihrer anfänglichen Ausrichtung können einige Servos größere Winkel zurücklegen, bis sie in der Mitte zum Stillstand kommen. Man hört auch ein Geräusch vom Getriebe der Servos. Hier sieht man die Kalibrierungstabelle:
Die erste Reihe ist der Gelenk-Index, die zweite Reihe der Kalibrierungs-Offset:
Index
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Offset
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
Die Anfangswerte sind "-1" oder "0" und sollten durch die Kalibrierung verändert werden.
Die Servos verwenden Potentiometer in Rückkopplungsschleife zur Positionsregelung. Wenn sie in statischer Position gehalten werden, neigen sie dazu, um den Zielwinkel zu schwingen. Nach einiger Zeit ensteht eine Parkinson ähnliche Schwingung. Bei kontinuierlicher Bewegung wird sie sich kaum auswirken. Bessere Servos ohne diese Probleme könnten das 10-fache kosten, so dass der Austausch eines ausgefallenen Servos die kostengünstigere Lösung ist.
Nach der Eingabe von 'c', bei der alle Servos auf ihren Nullwinkel gedreht sind, werden nun Kopf, Schwanz und Beine, die im vorherigen Abschnitt vorbereitet wurden, am Körper befestigt. Diese stehen in der Regel senkrecht zum verbundenen Körperrahmen. Vermeide es, die Servowelle während des Vorgangs zu drehen.
Die drehung der Gliedmaßen gegen den Uhrzeigersinn aus ihrem Nullzustand heraus ist positiv (wie bei den Polarkoordinaten). Die einzige Ausnahme ist der Neigungswinkel des Kopfes. Es ist einfacher zu sagen: Kopf nach oben, während er sich aus der Drehung im Uhrzeigersinn ergibt.
Wenn wir uns die Servowelle genauer ansehen, sehen wir, dass diese eine bestimmte Anzahl von Zähnen hat. Das ist für die Befestigung der Servoarme und um ein gleiten in Drehrichtung zu vermeiden. In unserer Beispiel Servo sind die Zahnräder um 360 Grad in 20 Sektoren unterteilt, von denen jeder 18 Grad einnimmt. Das bedeutet, dass wir nicht immer eine exakt senkrechte Installation erhalten können. Versuche, sie möglichst nahe an ihren Nullzustand zu bringen. Benutze Schraube A, um die Glieder an die Servos zu schrauben.
Der Befehl für die Kalibrierung (siehe Serielles kommunikations Protokoll für NyBoard) ist als cIndex Offset
formatiert. Beachte, dass zwischen Index und Offset ein Leerzeichen ist.
Zum Beispiel bedeutet c8 6
, dem 8. Servo einen Versatz von 6 Grad zu geben. Finde den besten Offset, der die Gliedmaße in den Nullzustand bringt.
Ist der absolute Wert des Offsets größer als 9, wurde das Körperteil nicht perfekt am Nullpunkt angebracht. Dies führt zu einer verringerung des zulässigen Bereichs eines Servos auf beiden Seiten. Nehme das Körperteil ab und drehe es um einen Zahn. Dies führt zu einem entgegengesetzten, aber kleineren Versatz.
Wenn z.B. -13 als Kalibrierwert verwendet wurde, nehme das Gliedmaß ab, drehe dieses entgegengesetzt um einen Zahn und setze sie wieder ein. Der neue Kalibrierwert sollte dann etwa 5 betragen, d.h. sie summieren sich auf 18. Vermeide es, das Servo während dieser justierung zu drehen.
Denke nach der Kalibrierung daran, 's' einzugeben, um die Offsets zu speichern. Andernfalls werde diese beim Verlassen des Kalibrierungszustandes nicht gespeichert. Man sollte jedes Mal speichern, wenn ein Servo kalibriert ist.
Wenn man etwas beobachtet, ändert sich dies aus verschiedenen Perspektiven. Deshalb sollten wir bei der Längenmessung immer direkt über dem Lineal nachsehen.
Es ist besonders wichtig, dass bei der Kalibrierung von Nybble eine parallele Perspektive beibehalten wird. Verwende den 'L'-förmigen Gelenksteller als Parallelreferenz, um Ablesefehler zu vermeiden. Richte die Spitzen des Abstimmgerätes auf die Mitte der Schrauben in den Schulter- und Kniegelenken und auf das kleine Loch an der Fußspitze aus. Schaue entlang der Koaxialachse der Zentren. Kalibriere diese für jedes Bein. Zuerst die Schulterservos (8-11) und dann die Knieservos (12-15). Verwende bei der Kalibrierung des Knies die passenden Dreiecksfenster sowohl am Abstimmgerät als auch am Schaft, um eine parallele Ausrichtung zu gewährleisten.
Gebe nach der Kalibrierung 'd' oder 'kbalance' ein, um die Kalibrierung zu validieren. Dies führt dazu, dass Nybble seine Gliedmaßen zwischen Ruhe und Stehen Zustand symmetrisch bewegt.
Versuche zu verstehen, wie Nybble auch beim gehen das Gleichgewicht hält. Wenn Nybble mit neuen Komponenten ausgestattet wird, versuche das Gewicht symmetrisch auf die Wirbelsäule zu verteilen. Möglicherweise muss der Akkuhalter auch hin- und her geschoben werden, um die beste Stelle für das Gleichgewicht zu finden.
"Wer liebt Fritten?" 🍟
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!
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.
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.
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.
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.
Gehe zur Bibliotheksverwaltung (Anleitung: https://www.arduino.cc/en/Guide/Libraries), dann suche und installiere:
Adafruit PWM Servo Driver
IRremote
QList
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.
Ö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).
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.
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.
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