Inhaltsverzeichnis
Self-Balancing Robot
Mein Balancing Robot wird vermutlich nicht besonders geländegängig sein, aber das heißt ja nicht, dass er nicht wenigstens so aussehen kann. Der folgende Text ist noch reichlich unstrukturiert, weil sich der Robot noch in einem sehr frühen Stadium der Entwicklung befindet.
Chassis
Das Chassis wird mit meinem Delta Printer Hexagon V2 in mehreren Teilen gedruckt. Das größte Teil beherbergt die beiden Steppermotore, den Bewegungssensor und mindestens die beiden Stepper-Treiber. Ob auch für den Teensy Platz ist, muss sich noch herausstellen.
Antrieb
Stepper
Als Motore kommen zwei Nema 17 Schrittmotore mit einem Drehmoment von bis zu 65 Ncm zum Einsatz.
Stepper Driver
Stepper: DRV8825 Stepper Motor Driver Carrier, High Current https://www.pololu.com/product/2133
Einmessen des Steppermotor-Treibers
Der DRV8825 hat ein winziges Poti, mit dem die Strombegrenzung eingestellt wird. Der verwendete Steppermotor ist für einen maximalen Strom von 2,1 Ampere pro Phase ausgelegt. Wie die Strombegrenzung eingestellt wird, wird sehr gut in diesem Video erklärt. Im meinem konkreten Fall muss die Referenzspannung auf 1.05 Volt eingestellt werden.
Räder
Damit der Balancing Robot möglichst cool aussieht, steht er auf zwei Gmade MT2201 Offroad Reifen 2.2 mit 2.2„ GT Beadlock Felgen. Die Verbindung mit den Achsen der Stepper-Motore erfolgt über zwei Sechskantverbinder, die ich bei Aliexpress gekauft habe.
Motorschaft für 5mm-Achse: https://www.pololu.com/product/2673
Elektronik
Microcontroller
Bewegungssensor
Infrarot Distanzsensor
Sharp Distanz-Sensor 1 St. GP2Y0A21YK0F (Datasheet))
HC-SR04P Ultraschall-Entfernungssensor
Sehr gutes Video zum Sensor: https://www.youtube.com/watch?v=6F1B_N6LuKw
Stepper
Bewegungssensor
Fernsteuerung
Der Balancing Robot soll nicht nur autonom patrouillieren können, sondern auch mit einer Fernsteuerung gesteuert werden können. Eine verhältnismäßig einfache Möglichkeit wäre, den Robot via Bluetooth fernzusteuern. Eine andere Option wäre, meine Jeti DS-16 zu verwenden. Eine Möglichkeit wäre, das PPM-Signal auszulesen. Das wäre relativ einfach zu programmieren, aber es gibt dafür aber sogar verschiedene Bibliotheken (z.B. https://github.com/xkam1x/Arduino-PPM-Library, https://playground.arduino.cc/Code/ReadReceiver). Aber am besten dürfte wohl die Teensy-Bibliotek sein: https://www.pjrc.com/teensy/td_libs_PulsePosition.html
Eleganter wäre es allerdings, den EX-Bus zu nutzen. Damit wäre es sogar möglich, Telemetriedaten zurück an den Sender zu senden. Es gibt dafür eine Bibliothek, die ich aber bisher nicht dazu bewegen konnte, die Geberdaten im seriellen Monitor anzuzeigen.
Empfangen von Geberdaten und senden von Telemetriedaten:
- Bibliothek: https://github.com/Sepp62/JetiExBus
- Diskussion im Jeti-Forum: http://www.jetiforum.de/index.php/do-it-yourself/9037-arduino-library-fuer-jeti-ex-bus
Programmierung
Hier werden - wie bei allen meinen DIY-Basteleien mit Microcontroller - wesentliche Fortschritte des Programms dokumentiert.