Alpha-Motor ist eine Platine zur Ansteuerung von zwei Antriebsmotoren. Die neue Version 2 soll vor allem eine präzisere Strombegrenzung und die Nutzung von Encodern mit differenziellen Ausgangssignalen ermöglichen
Zusammenfassung
Eines der wichtigsten Elemente in unserem Roboter nennen wir ganz bescheiden den Alpha-Motor. Der Alpha-Motor ist eine Platine die in erster Linie zwei Funktionen erfüllt: Ansteuerung und Regelung von ein bis zwei Motoren und das Auslesen von Encodern für die Odometrie. Bisher hat uns die Platine gute Dienste geleistet und ist auch in Zukunft vor allem für Antriebsräder interessant, da zwei Motoren zu koordinieren auf einer Platine einfacher ist als auf zwei.
Jede Platine verfügt dazu über ein Setup, das sowohl DC-Motoren als auch dreiphasige Brushless-DC Motoren oder einen Mix der beiden unterstützt. Verbaut sind dementsprechend sechs Halb-Brücken aus jeweils zwei Leistungstransistoren, die von drei Brückentreibern kontrolliert werden. Das Herzstück ist dann der Mikrocontroller. Dieser steuert nicht nur die genannten Brückentreiber, sondern liest auch die Motorencoder aus und kommuniziert über verschiedene Schnittstellen (vor allem CAN) mit dem Rest des Roboters, wobei ein paar GPIOs und Debug-LEDs natürlich auch nicht fehlen dürfen. Zusätzlich wird durch den Mikrocontroller der Strom in den Motoren überwacht, was allerdings in Version 1 nur für sehr große Ströme funktionierte. Um in Zukunft auch kleine Ströme einstellen zu können, wie es zum Beispiel für eine akkurate Kraftregelung notwendig wäre, wurde für diese Version die Strommessung von Hall-Sensoren auf Instrumentenverstärker umgestellt. Das Problem war, dass die Gleichtaktunterdrückung nicht ausreichte, um schnell genug auf Änderungen im Spannungslevel zu regieren.
Aufgabenstellung
Der Schaltplan für den Alpha-Motor V2 ist bereits fast abgeschlossen, es fehlt allerdings noch alles, was aus diesem Plan eine echte Platine macht. Konkret sind folgende Aufgaben zu erledigen:
- Anpassung des Designs an die aktuelle Verfügbarkeit von Bauteilen
- Layout einer 4-Layer Platine in KiCAD, Herausforderungen dabei sind die Anforderungen an Größe, Stromfestigkeit, Signalintegrität und EM-Verträglichkeit
- Aufbau der gefertigten Platine, das heißt bestücken und anschließendes Reflow-Löten in unserem Ofen
- Anpassen der bestehenden Software (C++) an den neuen Microcontroller, vor allem Änderungen in der Peripherie des verwendeten STM32
- Und selbstverständlich testen, testen, testen
Vorkenntnisse im PCB-Design oder Löten von Platinen sind natürlich von großem Vorteil, unbedingt erforderlich um diese Aufgaben zu erfüllen sind aber nur Grundkenntnisse in der Programmierung mit C++ und Grundkenntnisse der Schaltungstechnik.
Technische Daten Alpha-Motor V2
- 3 Phasen (DC und Brushless-DC Motoren)
- ca. 20A pro Phase in der Spitze
- 20V Betriebsspannung (Akku) -> 40V Auslegung
- Mikrocontroller STM32G474 (vorher: STM32F407)
- 2x CAN-Bus mit 4 Steckern, 1 UART, (vorher: zusätzlich 1 SPI/I2C)
- Anschlüsse für vier AB-Encoder (vorher: inklusive UART 1-Wire)
- Anschlüsse für 2 Hall-Sensoren
- Strommessung und Strombegrenzung
- LEDs für Software-Status & Encoderstatus
- Einfach lötbar und aufbaubar
- Abmessungen: ca 50 x 80 mm²