Rückblick
Das gesetzte Ziel meines Sohnes und mir war einen Roboter aus Kartons zu bauen, welcher per Fernbedienung steuerbar ist. Dass der Roboter am Ende sogar per Smartphone / Browser steuerbar sein wird, war zu Beginn noch nicht absehbar 😁
Körper
Kartons hatten wir genug rumfliegen und so war der Körper des Roboters nach etwas Schnibbelei und Malerei schnell fertig.
Motorisierung
Zur Motorisierung waren Servos geplant. Da wir bisher noch nie mit Servos gearbeitet haben, entschieden wir uns nach kurzer Internetrecherche für MG90S: Das Modell schien günstig und wird häufig angeboten. Beim Auspacken der Lieferung waren wir dann doch etwas überrascht, wie klein dieser Servo ist. Auf einer Modellbauaustellung mit Flohmarkt haben wir dann unseren Vorrat durch etwas größere und kräftigere Modelle erweitert. Außerdem gab es dort noch günstig Servo-Kabel als Verlängerung.
Fernbedienung
Der ursprüngliche Plan war, eine günstige Fernbedienung mit mehreren Kanälen inklusive Receiver zu besorgen, welcher die Servos ansteuert. Bei der Shopping-Recherche stellte sich jedoch schnell heraus, dass “günstig” und “mehrere Kanäle” leider im Widerspruch stehen. Zumindest, wenn “mehrere Känale” größer zwei bedeutet und der Anspruch ist, dass die zusätzlichen Kanäle (>2) auch kontinuierlich steuerbar sind und nicht nur On/Off.
Plan B: Fernbedienung selber bauen
Da ich mit dem Entwicklungsboard D1 Mini bereits meine Erfahrungen gemacht habe, und eines noch in der Bastelkiste verstaubte, war schnell die Entscheidung getroffen, diesen als Basis für die Fernbedienung zu nutzen. Der verbaute Microcontroller hat WLAN was ganz neue Möglichkeiten in der Fernbedienbarkeit eröffnet…
Die Servos per PWM direkt vom D1 Mini anzusteuern schien nicht die beste Lösung zu sein. Aber auch hier hatte das Internet schnell eine Antwort parat: PCA9685
Obwohl der Chip PCA9685 ursprünglich als PWM LED-Treiber entwickelt wurde, gibt es Entwicklungsboards mit diesem Chip, die explizit zur Servoansteuerung beworben werden. Angesteuert wird der Chip per I2C und mit 16 Kanälen kann unser Roboter noch einige Gelenke bekommen 🤖
Technik
Teileliste
- Servos (da kann man nicht so viel falsch machen)
- D1 Mini (oder ein anderes ESPHome kompatibles Entwicklungsboard)
- PCA9685 (16 Kanal PWM Treiber)
- USB-Steckernetzteil
- Kabel
Hardware verkabeln
Die beiden Module werden über einen USB-Steckernetzteil versorgt. Das PCA9685-Board wird dabei indirekt über dn D1 Mini versorgt. Wenn mehrere Servos zum Einsatz kommen, sollte abgesichert werden, dass das Netzteil ausreichend Strom bereitstellen kann.
D1 Mini | PCA9685 |
---|---|
5V | V+ |
3V3 | VCC |
G | GND |
D1 | SCL |
D2 | SDA |
Im folgenden ein Bild wie die Verkabelung in einem professionellem Gehäuse aussehen kann:
Software erstellen
Die Software für den D1 Mini habe ich mit Hilfe von ESPHome erstellt. Von programmieren kann man hier nicht mehr sprechen. 😃 ESPHome bringt mit der PCA9685 Komponente, der Servo Komponente und der Webserver Komponente alles mit und muss nur noch richtig konfiguriert werden: roboter.yaml
Durch die Konfiguration des Webservers lässt sich der Roboter nun komfortabel im Browser steuern:
Fazit
Im Nachgang bin ich überrascht, wie einfach die Ansteuerung von Servos geht. Das macht Lust auf mehr …