Benutzer-Werkzeuge

Webseiten-Werkzeuge


arduino:balancing_robot

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

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 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:

Programmierung

Hier werden - wie bei allen meinen DIY-Basteleien mit Microcontroller - wesentliche Fortschritte des Programms dokumentiert.

arduino/balancing_robot.txt · Zuletzt geändert: 18.05.2023 12:15 von 127.0.0.1