Mario(s)Kart

25.9.2020

Mario(s) Kart

Nach der Seifenkiste mit Akkuschrauber als Antrieb gehe ich nun einen Schritt weiter und baue mal was richtiges. Ein Kart mit zwei BLDC-Motoren aus einem Hoverboard als Antrieb und gehackter Hoverboard Firmware auf der originalen Steuerplatine. 

Vorgaben:

  • Größe passend für meine Kinder und für Erwachsene ebenso, also ein verstellbarer Sitz,
  • Orientierung an der eFKV (Elektrokleinstfahrzeuge Verordnung),
  • d.h. zwei unabhängige Bremsen,
  • maximale Breite 700mm,
  • Beleuchtung vorn und hinten,
  • zulässige maximale Geschwindigkeit 20km/h,
Werbeanzeigen

Die Motoren

Als Antrieb habe ich mich für zwei Hoverboard Räder entschieden. Die Räder haben 8,5″ Durchmesser und je 350W. Die Räder haben je drei Phasenwicklungen und integrierte Hall Sensoren zur Positionserkennung.

Auf dem Bild sieht man im Vordergrund die beiden Antriebsräder und im Hintergrund die beiden Vorderräder mit Bremsscheiben.

Die Antriebsräder im Vordergrund
Hoverboard Wheel
geöffnetes Rad mit integriertem BLDC-Motor

Die Befestigung der Räder habe ich prinzipiell übernommen und mir die Kontur zur Aufnahme der Achsen in je zwei Halbschalen fräsen lassen. Diese werden dann jeweils in das Kastenprofil der Hinterachse gesteckt und mit je vier Schrauben M8 verschraubt.

Hinterachse mit Bohrungen für Radbefestigung
Werbeanzeigen

Der Akku

Das Akkupack habe ich auf E-Bay bestellt. Das war das reine Akkupack ohne BMS. Ein passendes BMS konnte ich auch gut gebraucht auf E-Bay erwerben.

Akkupack (Quelle: Ebay)

Der Akkupack besteht aus 30 Stück Panasonic NCR18650PF Zellen, zehn in Reihe und drei parallel. Die Kapazität beträgt 8,7Ah, der maximale Entladestrom beträgt 32 Ampere und die Spannung 36V.

Das BMS sowie die Anschlusskabel musste ich nachträglich selber anlöten.

BMS
BMS Platine
Akkupack
Mit BMS und Kunststoffhülle sowie etwas Klebeband sieht das dann so aus.
Werbeanzeigen

Die Hauptplatine

Die Hauptplatine ist eine Ersatzplatine für ein Hoverboard. Diese kann man recht günstig bei Ebay oder bei AliExpress erwerben. Wenn man kein Hoverboard zum Schlachten hat.

Hoverboard Platine Mainboard
Hauptplatine aus Hoverboard

Die Platine lässt sich nicht 1 zu 1 verwenden. Hier haben sich einige schlaue Leute viele Gedanken gemacht und eine neue Firmware für die Platine geschrieben. Somit lässt sich die Platine für verschieden Anwendungsfälle verwenden:

  • Hovercar
  • Transpotter
  • Bobbycar
  • uvm.

Die verschiedenen Softwarepakete kann man sich hier herunterladen:

https://github.com/NiklasFauth/hoverboard-firmware-hack

https://github.com/EmanuelFeru/hoverboard-firmware-hack-FOC

https://github.com/larsmm/hoverboard-firmware-hack-bbcar

Meine Entscheidung fiel auf die FOC-Variante von Emanuel Feru. Die Laufkultur der Motoren ist einfach besser. Hier mal zwei Videos zum Vergleich:

Video-1

Video-2

Was die PC-Software zur Programmierung angeht, habe ich mich einmal für ST-Link direkt von ST und parallel für Microsoft Visual Studio Code mit der Erweiterung Platform IO entschieden. Die Firmwareversionen stellen eine Datei für Platform IO bereit. Das macht die Auswahl der zu flashenden Version (Hovercar, Bobbycar …) sehr komfortabel.

Normalerweise klappt die Programmierung mit Visual Studio Code sehr gut. ST-Link wird benötigt, um den Chip zu entsperren, welcher im Lieferzustand der Platine gelockt ist, und eventuell um den Flash der Hauptplatine komplett zu löschen. Das kann notwendig sein, wenn man Daten der Auto-Kalibrierung der ADC-Eingänge wieder löschen will, aber dazu später mehr.

Zum Programmieren des ST32 Chips auf der Hauptplatine benötigt man einen Programmieradapter. Der kostet ca 8€ auf Ebay oder Amazon.

Quelle: Ebay

Ich möchte Niklas Faut und Emanuel Feru für die geleistete Arbeit danken. Wenn man sich vorstellt, dass hier ohne jegliche Informationen mittels Reverse Engineering das komplette Platinenlayout erarbeitet wurde, ziehe ich einfach nur den Hut. Von der neuen Firmware ganz zu schweigen.

Werbeanzeigen

Hauptplatine vorbereiten

Programmierschnittstelle

Auf der Hauptplatine befindet sich neben dem Hauptprozessor die Programmierschnittstelle. Hier ist es ratsam sich eine vierer Stiftleiste einzulöten damit man einfacheren Zugang zum Programmieren hat. Das sieht dann so aus wie auf dem unteren Bild.

eingelötete Stiftleiste

Manche Boards haben auf der Unterseite einen geschlossenen Kühlkörper. Da kommt man von unten nicht an die Kontakte. Hier muss man etwas improvisieren und die Stiftleiste von oben anlöten. Das geht wenn man den Plastikhalter auf der Stiftleiste etwas nach oben schiebt.

Die Programmierschnittstelle ist folgendermaßen beschaltet (klick ins Bild):

Pinout der Hauptplatine

Zum Programmieren habe ich mich für Visual Studio Code mit Platform IO entschieden. Die Software kann man kostenlos bei Microsoft herunterladen.

Hat man die Software installiert, muss man noch die Platform IO Erweiterung hinzufügen. Hierzu klickt man in der linken Leiste auf das Symbol mit den vier Kästchen und gibt im Suchfeld Platform IO ein. Danach kann man die Erweiterung auswählen und hinzufügen.

Hat man das erledigt, fügt man über Datei / Ordner öffnen den Ordner mit der gewünschten Firmware hinzu.

Darin befindet sich eine Datei für Platform IO welche in der linken Übersicht auswählbar ist. Wählt man diese aus, dann sieht das so aus.

Im rechten Fenster kann man dann die Firmwarekonfiguration wählen. Dann klickt man unten links auf Build (das Häkchen) und die Firmware wir kompiliert.

Nun kann man den Programmieradapter an das Mainboard anschließen und die Firmware flashen.

Programmieradapter mit Kabel
Kabel vom Programmieradapter mit Mainboard verbunden

Hat man alles verbunden, kann man auf Upload (Pfeil nach rechts) drücken und die Firmware in den Prozessor schreiben. Folgendes ist dabei noch sehr wichtig:

  1. Die 3,3V Verbindung vom Programmieradapter nur benutzen, wenn das Mainboard nicht mit dem Akku verbunden ist!
  2. Ist das Mainboard mit dem Akku verbunden, würde es sich u.U. einschalten und die 3,3V selbst zur Verfügung stellen. Gleichzeitig 3,3V vom Programmieradapter und vom mainboard selbst kann zur Zerstörung des Prozessors führen. Weiterhin muss man den Einschalter des Mainboards gedrückt halten solange der Upload stattfindet. Besser man nutz statt dem Taster einen Jumper. Damit bleibt das Mainboard immer an. Der Hintergrund ist folgender. Das Mainboard wird nach dem Einschalten vom Prozessor am Leben erhalten. Beim Programmieren wird die Software auf dem Prozessor gelöscht und dadurch würde das Mainboard ausgehen. Der Upload würde fehlschlagen und wenn es ganz dumm läuft der Prozessor sterben.

Sollte die Programmierung fehlschlagen, kann es daran liegen, dass der Speicher schreibgeschützt ist. Hierzu muss erst der Schreibschutz aufgehoben werden. Wie das geht findet man hier:

https://github.com/EmanuelFeru/hoverboard-firmware-hack-FOC/wiki/How-to-Unlock-MCU-flash

Rahmen und Räder

Werbeanzeigen

E-Kart Rahmen / e-kart frame
Rahmen im CAD

Für den Rahmen habe ich mich aus einer Konstruktion aus Aluminiumprofilen entschieden. Diese sollten die nötige Stabilität haben, damit auch ich damit unbeschadet fahren kann.

Die einzelnen Profile hat mir mein Sandkastenfreund geschweißt. Er kann das und zwar gut.

Die Vorderachse sollte auf alle Fälle schwenkbar sein, damit nicht immer ein Rad in der Luft hängt wenn der Untergrund uneben ist. Hierfür verwende ich zwei 15 mm Flanschlager K002. Der Rahmen hat eine 8mm dicke Frontplatte, an welcher die Achse für die beiden Flanschlager befestigt wird.

Hier mit den Vorderrädern

Vorderrad mit Bremssattel und Lenkachse

Die Vorderradaufhängung besteht aus einem Aluminiumprofil 20x20mm welches die Radachse, den Lenkhebel und das Halteblech für den Bremssattel trägt. Die Lenkachse wir durch je zwei 10 mm Stehlager realisiert. Die Vorderräder sind für einen Elektroroller gedacht und mussten leicht modifiziert werden, da sie ursprünglich eine durchgehende Achse hatten und beidseitig befestigt wurden. Hierfür habe ich die originale Achse entfernt und jeweils eine neue Distanzhülse, welche zwischen die beiden Radlager kommt, gedreht.

die originale Achse hier wurde durch besagte Hülse ersetzt

Gas- und Bremspedal

Die Firmwareversion „Hoverkart“ erlaubt die Steuerung über zwei Analogeingänge. Ein Eingang für Gas und der andere für Bremse. Ich habe mir über Ebay zwei Pedale mit analog Hallsensoren bestellt. Diese funktionieren kontaktlos und scheinen recht robust zu sein. Die Pedale können mit 3,3V betrieben werden.

Ein Datenblatt des Hallsensors findet man hier.

Die Pedale gibt es z.B. hier.

Die ausgegebene Spannung geht nicht ganz von 0V bis 3,3V aber das lässt sich in der Firmware sehr gut einstellen, damit min./ max. oder besser kein Gas und Vollgas richtig ausgewertet werden.

Die Einstellungen für die Analogeingänge befinden sich in der config.h Datei. Die Änderungen lassen sich schnell in Visual Studio erledigen.

Werbeanzeigen

Das Bremspedal dient einmal natürlich zum Bremsen und zweitens mittels „Doppelklick“ zur Aktivierung der Rückwärtsfahrt. Das Mainboard piept sogar beim Rückwärtsfahren. Das finden die Kinder ziemlich cool.

Ansicht von unten, Hallsensor und gewölbter Magnet

Werbeanzeigen

Fahrwerksgeometrie

Für die Auslegung der Fahrwerksgeometrie habe ich mich an allgemein gültigen Prinzipien orientiert. Das äußere Rad beschreibt dabei einen größeren Radius als das innere. Hierfür gibt es ein geometrisches Modell. Das muss bei der Auslegung der Lenkung berücksichtigt werden. Normalerweise wird dies über das sogenannte Lenktrapez gewährleistet. Leider hatte ich nicht den nötigen Platz für eine zusätzliche Verbindungsstange zwischen den beiden Vorderrädern. Ich konnte mir aber mit CAD helfen und bin somit bis auf 1° Abweichung an der idealen Auslegung. Auf Sturz habe ich bei der Konstruktion verzichtet um es einfach zu halten. Das Kart geht trotzdem um die Kurve als wäre der Teufel hinter ihm her.

Fortsetzung folgt!

Ein Video zum Schluss

unendliches Getriebe

Das ewige Getriebe

Das ewige Getriebe

Das ewige Getriebe oder auch die Unendlichkeitsmaschine beschreibt eine mechanische Anordnung mit der eine hohe Eingangsdrehzahl durch Getriebeuntersetzung soweit verringert wird, dass die Abtriebsdrehzahl gegen null tendiert.

Das ist ein Projekt nach meinem Geschmack. Lange hat es von der ersten Idee über die Entwicklung bis hin zur Realisierung gedauert. Und, es ist immer noch nicht fertig. Das letzte Rad muß noch befestigt werden. Wahrscheinlich dauert das nochmal so lange 😉

ZSB_ewiges-Getriebe

ewiges Getriebe Ausschnitt aus ZSB Zeichnung

Das ewige Getriebe in einer weißen Box

Unendlichkeitsmaschine

unendliches Getriebe

Beschreibung der Übersetzung