====== 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 ===== {{:arduino:balancingrobot:img_0347.jpg?100 |}}Das Chassis wird mit meinem [[3d-druck:hexagon_v2|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 https://www.pjrc.com/teensy/td_libs_AccelStepper.html ==== 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 [[https://www.youtube.com/watch?v=89BHS9hfSUk|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 ==== https://youtu.be/0qwrnUeSpYQ http://axelsdiy.brinkeby.se/?page_id=1141 ==== Infrarot Distanzsensor ==== Sharp Distanz-Sensor 1 St. GP2Y0A21YK0F ([[https://www.watterott.com/media/files_public/risnsuqpo/GP2Y0A21YK0F.pdf|Datasheet]])) ==== HC-SR04P Ultraschall-Entfernungssensor ==== Sehr gutes Video zum Sensor: https://www.youtube.com/watch?v=6F1B_N6LuKw ===== Stepper ===== ===== Bewegungssensor ===== https://learn.adafruit.com/adafruit-lsm9ds0-accelerometer-gyro-magnetometer-9-dof-breakouts ===== 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. {{tag>Arduino Roboter Teensy}}