Hallo zusammen,
da der Winter vor der Türe steht und mein Axial Wraith für indoor FPV manchmal einfach zu groß ist wollte ich etwas kleines und wendiges. Am besten etwas, das sich auf der Stelle drehen kann. Fertig war die Idee für einen selbst balancierenden Roboter, wie es ihn schon recht häufig im Netz gibt.
3D-Daten gibt's jetzt bei Thingiverse BaRo - Balancing Robot for FPV by Knuspel
Quelldateien / Programmcode gibt's als Anhang zu diesem Post. Bitte Bemerkungen weiter unten lesen.
Eckdaten:
2x Nema 17 (1,8 Grad pro Schritt nativ) und A4988 Treiber
1x Arduino Nano Klon
1x MPU6050
1x Foxeer Mini Monster Pro
1x GTX226 FPV Sender mit Aomway Antenne
1x 3S 850mah Akku und LiPo Warner
1x HC06 für die Steuerung und Telemetrie
Zur Zeit sind 3 Regelstrategien implementiert:
- reines Balancieren
- Vorgabe der Geschwindigkeit (Modus für freies Fahren per Fernsteuerung)
- Vorgabe der Position (wenn Null, dann ist das sozusagen Position Hold)
Die Schrittmotoren werden je nach benötigter Geschwindigkeit der Räder im 1:1, 1:4, 1:8 oder 1:16 Modus betrieben. Damit lässt sich der Roboter auch bei geringen Geschwindigkeiten gut regeln. Kostet allerdings 6 digitale Pins am Arduino, weshalb zur Zeit keine Pins mehr frei sind.
Leider habe ich keine Fotos von den Anfängen, aber das Projekt ist ja noch ausbaufähig ;-) Daher hier ein paar Bilder von dem aktuellen Status. Als nächstes kommen weichere Räder an den Roboter, da er noch recht häufig umfällt, wenn er auf eine Kante trifft. Die aktuellen Räder sind gedruckt und haben ein Stück Fahrradschlauch übergezogen bekommen.
Grüße
Knuspel
------------------------------------------------------------------------------------------
Anmerkungen zum Quellcode:
1) Es handelt sich um ein DIY Projekt, das ich je nach Zeit und Lust fortführe.
2) Der Quellcode kann von jedem frei verwendet und erweitert werden um das Projekt nachzubauen oder zu modifizieren.
3) Es gibt keine ausführliche Doku / Bauanleitung. Die Belegung aller Pins geht aus der Datei "pins.h" hervor. Damit das Projekt funktioniert müssen natürlich alle Pins genauso angeschlossen werden, wie in dieser Datei vorgegeben. Einen schönen Schaltplan gibt es allerdings in diesem Thread!
4) Die Kanalbelegung über sBus ist wie folgt:
Kanal 1: Vorwärts/Rückwärts
Kanal 2: Links/Rechts
Kanal 3: Modus
-> 1000us: mit Kanal 1 gibt den Winkel vor
-> 1500us: mit Kanal 1 gibt die Geschwindigkeit vor, primärer Fahrmodus
-> 2000us: mit Kanal 1 gibt die Position der Räder vor. Funktioniert noch nicht richtig, ist sowas wie Position Hold.
Der Roboter erwartet Signale von 1000us-2000us, Funke am besten so einstellen.
5) In der Datei defines.h finden sich Kalibrierwerte für den MPU6050. Diese entsprechen meinem Roboter und sind bei anderen Robotern vermutlich anders. Evtl die folgenden Einträge zu Null setzen:
#define MPU6050_WX_OFFSET 527.0
#define MPU6050_WY_OFFSET 77.0
#define MPU6050_WZ_OFFSET 43.0
#define MPU6050_AX_OFFSET -458.0
#define MPU6050_AY_OFFSET 0.0
#define MPU6050_AZ_OFFSET 0.0
da der Winter vor der Türe steht und mein Axial Wraith für indoor FPV manchmal einfach zu groß ist wollte ich etwas kleines und wendiges. Am besten etwas, das sich auf der Stelle drehen kann. Fertig war die Idee für einen selbst balancierenden Roboter, wie es ihn schon recht häufig im Netz gibt.
3D-Daten gibt's jetzt bei Thingiverse BaRo - Balancing Robot for FPV by Knuspel
Quelldateien / Programmcode gibt's als Anhang zu diesem Post. Bitte Bemerkungen weiter unten lesen.
Eckdaten:
2x Nema 17 (1,8 Grad pro Schritt nativ) und A4988 Treiber
1x Arduino Nano Klon
1x MPU6050
1x Foxeer Mini Monster Pro
1x GTX226 FPV Sender mit Aomway Antenne
1x 3S 850mah Akku und LiPo Warner
1x HC06 für die Steuerung und Telemetrie
Zur Zeit sind 3 Regelstrategien implementiert:
- reines Balancieren
- Vorgabe der Geschwindigkeit (Modus für freies Fahren per Fernsteuerung)
- Vorgabe der Position (wenn Null, dann ist das sozusagen Position Hold)
Die Schrittmotoren werden je nach benötigter Geschwindigkeit der Räder im 1:1, 1:4, 1:8 oder 1:16 Modus betrieben. Damit lässt sich der Roboter auch bei geringen Geschwindigkeiten gut regeln. Kostet allerdings 6 digitale Pins am Arduino, weshalb zur Zeit keine Pins mehr frei sind.
Leider habe ich keine Fotos von den Anfängen, aber das Projekt ist ja noch ausbaufähig ;-) Daher hier ein paar Bilder von dem aktuellen Status. Als nächstes kommen weichere Räder an den Roboter, da er noch recht häufig umfällt, wenn er auf eine Kante trifft. Die aktuellen Räder sind gedruckt und haben ein Stück Fahrradschlauch übergezogen bekommen.
Grüße
Knuspel
------------------------------------------------------------------------------------------
Anmerkungen zum Quellcode:
1) Es handelt sich um ein DIY Projekt, das ich je nach Zeit und Lust fortführe.
2) Der Quellcode kann von jedem frei verwendet und erweitert werden um das Projekt nachzubauen oder zu modifizieren.
3) Es gibt keine ausführliche Doku / Bauanleitung. Die Belegung aller Pins geht aus der Datei "pins.h" hervor. Damit das Projekt funktioniert müssen natürlich alle Pins genauso angeschlossen werden, wie in dieser Datei vorgegeben. Einen schönen Schaltplan gibt es allerdings in diesem Thread!
4) Die Kanalbelegung über sBus ist wie folgt:
Kanal 1: Vorwärts/Rückwärts
Kanal 2: Links/Rechts
Kanal 3: Modus
-> 1000us: mit Kanal 1 gibt den Winkel vor
-> 1500us: mit Kanal 1 gibt die Geschwindigkeit vor, primärer Fahrmodus
-> 2000us: mit Kanal 1 gibt die Position der Räder vor. Funktioniert noch nicht richtig, ist sowas wie Position Hold.
Der Roboter erwartet Signale von 1000us-2000us, Funke am besten so einstellen.
5) In der Datei defines.h finden sich Kalibrierwerte für den MPU6050. Diese entsprechen meinem Roboter und sind bei anderen Robotern vermutlich anders. Evtl die folgenden Einträge zu Null setzen:
#define MPU6050_WX_OFFSET 527.0
#define MPU6050_WY_OFFSET 77.0
#define MPU6050_WZ_OFFSET 43.0
#define MPU6050_AX_OFFSET -458.0
#define MPU6050_AY_OFFSET 0.0
#define MPU6050_AZ_OFFSET 0.0
Anhänge
-
1,1 MB Aufrufe: 119
-
1,2 MB Aufrufe: 106
-
1,1 MB Aufrufe: 115
-
1,2 MB Aufrufe: 110
-
1,9 MB Aufrufe: 30
Zuletzt bearbeitet: