Inspiriert durch Fisch habe ich ein Allrad getriebenes Elektro-Bobby-Car gebaut.
Die ursprüngliche Firmware wurde von Rene, Nico und Niklas auf Basis von STMBL programmiert (hoverboard-firmware-hack). Ich habe Fahrtmodi, sanftes Anfahren und Bremsen und mehr Sicherheit ergänzt: hoverboard-firmware-hack-bbcar.
Eine deutliche Weiterentwicklung des ursprünglichen hoverboard-firmware-hack ist hoverboard-firmware-hack-FOC. Auf dessen Basis entstand —> hoverboard-firmware-hack-FOC-bbcar <—. Das Bobbycar fährt nun fast geräuschlos und effizienter. Fehler, wie lose Motorkabel oder defekte Sensoren werden nun von der Firmware erkannt.
Bemerkenswert ist auch die Firmware der österreicher Bobby Car Community. Sie basiert, wie meine Firmeware auf hoverboard-firmware-hack-FOC. Sie beinhaltet alledings unfassbar viel mehr Funktionen, wie ein Farbdisplay, zahlreiche Statistikfunktionen, WLAN, OTA Updates direkt aus dem Git, Wegfahrsperre, Blinkersynchronisation mit den Nebenfahrzeugen, …. Was meiner Meinung nach zu kurz gekommen ist, ist aber das ganz normale Fahren. Es gibt dort z. B. keinen Kindermodus, es geht nur schnell. Was mir alledings gefällt, ist der Torque Modus mit Freilauf. Den werde ich evtl. auch mal einbauen.
Gesteuert wird es über 2 Potis am Lenkrad. Wenn man beide los lässt bremst es. Gegenschub verstärkt das Bremsen.
Rechts = vorwärts
Links = bremsen oder rückwärts
Fahrtmodi
Es gibt 4 Modi die man beim einschalten wählen kann (km/h bezogen auf volle, gute 12s):
- Modus 1 – Kinder: linker Poti, max Speed ~3 km/h, sehr langsamer Rückwärtsgang, ohne Turbo
- Modus 2 – STVO: einfach nur einschalten, max Speed ~<6 km/h (kontrollieren!), etwas langsamerer Rückwärtsgang, ohne Turbo
- Modus 3 – Fun: rechter Poti, max Speed ~12 km/h, ohne Turbo
- Modus 4 – Power: beide Potis, max Speed ~22 km/h, mit Turbo ~29 km/h
Beim Einschalten wird nach dem düdelit der Modus gepiept. Je mehr Piepse, desto schneller. Der default Modus ist der STVO-konforme Modus 2. Die anderen wählt man indem man Potis beim einschalten gedrückt hält.
Turbo
Feldschwächung wird nur aktiviert wenn man schon sehr schnell und in Modus 4 ist. So gehts: Rechts voll drücken und warten bis man schnell ist, dann zusätzlich links schnell voll drücken. Achtung, das ist schon gefährlich schnell! Auf eigene Gefahr! Ich rate zu Schutzkleidung! Lenken sollte man im Turbo besser garnicht.
Technischer Hintergrund
Die Poti-Eingaben werden stark bedämpft, dadurch entsteht eine Art Anfahr- und Bremsrampe. Bei jedem Durchlauf der Main-Schleife in main.c wird der Ausgangswert neu berechnet:
PWM_Ausgang = PWM_Ausgang * 0.99 // bremst wenn man keinen Poti drückt
PWM_Ausgang -= Rückwärts_Poti * R_Faktor
PWM_Ausgang += Vorwärts_Poti * V_Faktor
PWM_Ausgang geht von -1000 bis 1000.
Wenn PWM_Ausgang >800 kann Feldschwächung (Turbo) dazugeschaltet werden. Mehr als 400 habe ich nicht getestet, man sollte hier vorsichtig sein. Der Modus verheizt viel Energie und sollte nicht dauerhaft genutzt werden. Ich hatte aber bisher keine Hitzeprobleme.
Leistung
Die Batteriestrombegrenzung steht auf insgesamt 60A (config.h: DC_CUR_LIMIT 15). Bei 12s macht das rechnerisch 3,8V*12s*15A*4Motoren = 2736W. Gemessen wurden 1800W Spitze beim beschleunigen. Auch mit geschlossener Bodenklappe (Aluplatte) ist die Kühlung des Innenlebens und der Motoren ausreichend. Möglicherweise lässt sich die Turbo-Geschwindigkeit durch eine Erhöhung der Strombegrenzung weiter steigern.
Radaufhängung vorne
Eine gedruckte Vorderradaufhängung ist eine gute Zwischenlösung bis man sie aus Metall baut. Früher oder später wird sie aber brechen. Die Teile müssen vor dem Zusammenbau so gefeilt werden, dass die Vorspannung nicht so groß und nicht zu klein ist. Das Rad muss wackelfrei geklemmt sein. Bei zu viel Vorspannung bricht es aber schnell.
Man kann es besser aus Alu, Stahl oder POM bauen. Zur Lagerung hat sich 1mm dicke Igus iglidur® Gleitfolie auf sich selbst bewährt. Öle und Fette würde ich nicht empfehlen. Das bindet Dreck und läuft sehr schnell nicht mehr gut. Auch Alu auf Bobby Car funktioniert nicht.
Druckeinstellungen
PETG, evtl. mal ABS testen? Perimeter, Top, Bottom: ~7mm; Infill: 30% Full Honeycomb; Multiplier und Temperatur so einstellen, dass es wenig Lücken und einen guten Layerhalt gibt. Das große Teil sollte etwa 190g wiegen. Es wird durch Schrauben verstärkt. Hier mit 0,8mm Nozzle: Download
Radaufhängung hinten
20*10*1 cm Aluplatte mit gefrästen Nuten und Löchern mit Gewinden. Im Inneren stecken ~4*5 cm Holzbalken von der Aluplatte bis in die Höcker. Oben rund gefeilt und unten angeschrägt. Alternativ kann man das Bobby Car auch nicht aufschneiden und die Aluplatte durchs Plastik in den Balken spaxen. Dann ist es hinten aber recht hoch, was den Fahrkomfort stark mindert.
Lenkstab
10mm Baumarkt-Stahl ist robust genug, 10mm Gewindestange nicht. Edelstahl ist zu bevorzugen, sonst rostet es irgendwann. Biegen mit stabilem Schraubstock und Rohr als Hebel. Das Lenkrad mit Schraube oder Passfeder zu befestigen reicht nicht, das leiert mit der Zeit aus. Wirklich stabil ist es mit der 3D-Druckmanschette. Da wo die Stange das Chassis durchstößt, sollte eine dauerhaft spielfreie Lagerung angebracht werden. Stahl reibt Kunststoff auf Dauer ab. Als überraschend abriebfest hat sich Ikea LEGITIM Küchenbrett erwiesen. Die Premiumvariante sind wasserfeste Kugellager.
Gashebel mit Potis
Rein kommen 2 Hoverboardplatinen. Die Potis werden direkt an beide Platien angeschlossen. R1, R2, R3, R4 dienen mit den Potis zusammen als Spannungsteiler. Die ADCs haben eine Gesamtrange von 0-4095 was 0-3,3V entspricht. In der oben gezeigten Schaltung ergibt sich eine Range mit den Potis aus den Schultertasten eines XBox 360 Controllers von ca. 350-1100. Das sind die ersten beiden Werte die im Serial-Debug-Output angezeigt werden. C1, C2, C3, C4 sollen Störungen wegfiltern und als primitiver EMV-Schutz dienen. Da per Software aber schon sehr stark gefiltert wird, kann man die evtl. auch weg lassen. Die Rs und Cs sollten direkt auf die Platine gelötet werden. Die Cs, weil sie weiter weg keine Wirkung mehr haben und die Rs, weil sie sehr sicherheitsrelevant sind. Damit das Masse-Potential auf beiden Platinen nöglicht gleich ist, werden sie mit einem dicken 4mm² Kabel zusätzlich zur Stromversorgung miteinander verbunden. Hier wird zwar eine Masseschleife gebaut, ich konnte aber keine negativen Auswirkungen beobachten. Diese Art Scheltung hat folgende Vorteile gegenüber der Version, wo alle 3 Beine der Potis angeschlossen werden:
- Nach der Auto-Kalibrierung der Potis kennt die Software den maximalen und minimalen ADC-Wert. Liegt der Wert deutlich ausserhalb dessen, bremst das Bobby Car kontrolliert und geht in die Poti-out-of-Range-Notabschaltung. Löst sich eines oder alle Kabel zum Lenkrad, wirken nur noch R1, R2, R3, R4 und ziehen die ADCs auf GND. Es ergibt sich ein ADC-Wert von ca. 0. Das liegt ausserhalb der Range und die Notschaltung greift.
- Wenn eine Platine an ist und die andere nicht (was eig. nicht passieren sollte), dann führt das auch zu einem ungültigen ADC-Wert und die andere Platine schaltet ab.
Um ein möglichst gleiches GND-Potential auf beiden Platinen zu haben, sollten GND der Platinen mit einem kurzen dicken Kabel verbunden werden.
Gut geeignet sind die Schultertasten vom xbox 360 Gamepad (siehe Absatz „EMV-Schutz“). Die orgiginal Microsoft Gamepads haben sehr gute Potis. Es ist etwas fummelig sie ins Lenkrad einzubauen, man muss etwas schnitzen damit sich nichts verkeilt. Dann vorsichtig mit Heißkleber fixieren und eine gedruckte Schutzhaube darüberkleben.
Der Einschalter wird direkt an beide Platinen angeschlossen. Beim Flashen (sonst nicht) kommt es manchmal dazu, dass eine Platine an und eine Platine aus ist. Im Idealfall führt das zu einem ungültigen ADC-Wert und die andere Platine geht in die Notabschaltung. Sollte das nicht passieren kann man den Akku abziehen, um das zu beheben.
Gashebel mit Hall-Sensoren
Hall-Sensoren statt Potis zu verwenden ist zuverlässiger, aber auch deutlich mehr Aufwand. Hier ist man prinzipbedingt gezwungen GND und 3,3V zum Sensor zu führen. Der Schaltplan oben wird also um eine GND-Leitung ergänzt. Es ist leider nicht ganz klar, welche Auswirkungen das auf die Sicherheit hat. Wenn die GND-Leitung zum Lenkrad getrennt wird, bilden Hall-Sensor und R1, R2, R3, R4 einen Spannungsteiler. Ziel ist, dass dann der ADC-Wert dann ausserhalb des gültigen, bei der Auto-Kalibrierung gemessenen, Bereiches liegt und die Platinen in die Notabschaltung gehen. Das gilt es zu testen und ggf. R1, R2, R3, R4 entsprechend anzupassen. Direkt am Hall-Sensor ist ein 100n Kondensator zwischen VCC und GND gelötet. Dieser dient zur Siebung und als EMV-Schutz.
Ein kleiner Neodym-Magnet wird seitlich in den Hebel eingeschmolzen:
Bedienelemente
An-Aus-Taster, Ladeanschluss, Akkuanzeige und andere Bedienelemente lassen sich gut im Tacholoch unterbringen. Man sollte eine gute Zugetlastung für die Kabel bauen, damit sich die Lötstellen nicht ab-wackeln.
EMV-Schutz
Auf dem 36c3 waren wir mit 5 Bobbycars unterwegs. Als es draussen plötzlich frohr, sank die Luftfeuchtigkeit drinnen stark. Ständig blitzte es, wenn man etwas angefasst hat. Die Blitze sind durch die XBox Potis geschlagen und haben die Schleifbahnen beschädigt. An dem Abend wurden fast alle Potis beschädigt. Auch ist einiges an weiterer Elektronik ausgefallen: ESPs, Displays, Hall-Sensoren und möglicherweise auch ein Mainboard. Hier ein Paar Lösungsansätze:
- Potis durch Hall-Sensoren ersetzen.
- TVS-Dioden an allen wichtigen Stellen verbauen. Ich kenne mich da aber nicht so gut aus.
- In den Motoren sitzt eine Platine, wo die Hall-Sensoren verlötet sind. Dort kann man zwischen die 3 Pins jedes Sensors einen 100nF Kondensator löten. Das ist nur ein rudimentärer Schutz, aber auch nicht viel Aufwand. Zwischen VCC und GND kann man zusätzlich noch etwas mehr Kapazität (~10µF) löten. (Bild folgt)
Mainboards
Ein Mainboard ist hinten, hinter dem Akku an die Holzbalken geschraubt. Die andere Platine ist vor dem Akku an 2 Holzstäben befestigt, die von unten mit 2 Spax-Schrauben fixiert sind. Alle höheren Bauteile auf den Platinen sind mit Chinaschlonz vor Vibrationen geschützt.
Akku
12s hat sich bei allen mir bekannten Bobby Cars als Standard durchgesetzt. 10s gehen auch, 12s machen aber mehr Spass. Die Platinen können bis 13s ohne Modifikation. Die Abschaltspannungen müssen in config.h passend eingestellt werden. Wenn man Modellbau-LiPos nutzt, muss ein Protection-Board vor den Akku! Im Hoverboardakku ist das bereits eingebaut. Das sorgt für Überlade-, Tiefentlade-, Überstromschutz und Balancing der Zellen. Ich empfehle ein gutes BMS zu nehmen (aliexpress: „Smart BMS“) mit Bluetooth und App. Ein Smart BMS MUSS allerdings vor dem Einsatz richtig konfiguriert werden! Dazu sollte man wissen was man tut! Zum laden von 10s kann ein Hoverboardladegerät genommen werden, für 12s gibt es Ladegeräte bei aliexpress.
Es ist äußerst wichtig, den Akku sehr gut geschützt und umhaust zu montieren! Ein Akku dieses Kalibers kann bei Beschädigung viel Schaden anrichten! Die folgenden Bilder zeigen erst den alten Akku, in Holz halb eingehaust und mit Spanngurt befestigt. Das war unzureichend, der Akku hatte sich an einer Stelle schon durchgescheuert. Zum Glück ist nichts passiert.
Der neue Akkuträger ist viel robster gebaut und umschließt den Akku. Das BMS ist am Akkuträger befestigt. Akku und BMS können als Einheit aus dem Bobby Car genommen werden. Ich verwende 2*10Ah 6s Akkus in Reihe geschaltet, da sie deutlich besser verfügbar sind als einzelne 12s Akkus.
Der untere Alurahmen ist mit doppelseitigem 3M VHB GPH-110GF Klebeband an das Bobby Car geklebt und zusätzlich verschraubt. Das GPH-110GF ist offiziell nicht für niederenergetische Oberflächen geeignet, klebt aber trotzdem recht gut auf PE.
Alle Ritzen wurden sind mit Sikaflex verschlossen. An den Rädern sind Dichtringe vor den Lagern montiert. Bei wirklich nasser Strasse sollte man trotzdem nicht fahren. Dazu müssten die Motoren und Bedienelemente besser abgedichtet werden.
Ladegerät
Bei aliexpress gibt es schöne 12s Ladegeräte. Hier muss auf die Ladeschlussspannung geachtet werden! Es gibt verschiedene Zellen-Typen! Ich nutze ein Ladegerät für Standard LiPos mit 50,4V Ladeschlusspannung und 6A Ladestrom. 6A sind bei einem 10Ah Akku ein guter Kompromiss zwischen Ladegeschwindigkeit und Akkuschonung.
Eine Temperaturregelung für den Lüfter, Wärmekopplung vom Trafo gegen den Deckel und die Anzeige wurden nachträglich ergänzt.
Unterwegs nutze ich den auf dem Servernetzteil stehenden strom- und spannungsgeregelten Step-Up-Wandler. Damit kann man z. B. von einer Automatterie oder einem 10s Akku aus laden.
Licht
Für die Lichtsteuerung ist ein DC-DC Step-Down Wandler mit einem ESP 32 und ein Paar FETs verbaut. Im Inneren des Bobby Cars sind 3 weisse LED-Streifen von vorne nach hinten verlegt. So können links, Mitte und rechts unabhängig leuchten. Das ist praktisch als Blinker. Vorne ist ein SK9822 LED-Streifen verbaut, dessen LEDs einzeln bunt ansteuerbar sind. Man kann Farben durchschalten und es gibt ein paar Effekte: Pozilei, Cyber Pozilei, Knight Rider. Eine wirklich gute Position für Scheinwerfer gibt es nicht. Der Streifen vorne reicht nicht wirklich zum Fahren im dunkelen. Eine Stirnlampe ist hier sehr hilfreich.
Komfort-Sitz
Bei längeren Fahrten bohren sich die Höcker schmerzhaft in den Rücken. Dieser improvisierte Komfort-Sitz macht es schon viel angenehmer. Geklebt mit 3M VHB GPH-110GF.
Anhänger
Ich empfehle die Räder im hinteren Drittel zu montieren. Wenn man die Räder mittig setzt, besteht Kippgefahr bei Personenbeförderung. Hier ist noch die alte Anhängerkupplung zu sehen. Fahrradanhänger-Kupplungen sind gut geeignet.