Neuigkeiten Das Projekt Technik RoboSpatium Unterstützung Stichwortverzeichnis Download Reaktionen Spiele Gadgets Kontakt <<< Digitaler Zollstock Xylophon >>> Raspberry PICO ServoDas Video zum PICO ServoÜber das Pico ServoAbbildung 1:Stellmotoren sind sehr nützliche Bauteile in vielen elektromechanischen Projekten und daher existieren auf meinen Seiten schon einige Kapitel zum Thema Servos:
TeilelisteDurch den Kauf von Bauteilen über die von mir angegebenen Affiliate-Partnerlinks in der Tabelle (oder in den Bannern auf meinen Seiten) unterstützt ihr meine Projekte ohne dass euch dadurch Zusatzkosten entstehen - vielen Dank!Die Links anzuklicken bedeutet allerdings keinen Kaufzwang - völlig ungezwungenes Stöbern ist möglich ;-) Meine frei zugängliche Bildungsplattform ohne einzukaufen mit Hilfe einer Spende oder als Patreon zu unterstützen geht natürlich auch. Vielen Dank an alle, die mir bereits einen Obolus haben zukommen lassen!
MechanikAbbildung 2:Fast alle mechanischen Komponenten sind aus PLA mit einem 3D-Drucker erstellt worden. Abbildung 3: Benötigt werden ferner Schrauben, Unterlegscheiben, Gewindestangen, zwei Kugellager und sonstige Kleinteile. Die Achsen für das Getriebe besitzen einen Durchmesser con 6mm. Ich habe Aluröhrchen verwendet, weil ich diese in meinem Vorrat hatte. Abbildung 4: Von den Zahnrädern des Getriebes habe ich zwei Varianten erstellt: Die erste Version hatte eine Untersetzung von 355:1 mit sehr hohem Drehmoment, war allerdings deutlich zu langsam, daher habe ich zwei der Zahnräder geändert, womit sich eine Gesamtuntersetzung von 177:1 ergibt, bei welcher sich der Hebel am Getriebeausgang mit etwa der dreifachen Geschwindigkeit dreht. Abbildung 5: Im uneren Bereich befinden sich die elektronischen Komponenten. ElektronikAbbildung 6:Den Motor hatte ich vor Jahren von RS-Components geschenkt bekommen, aber bislang nicht eingesetzt - manchmal braucht ein Projekt einfach etwas länger zum Reifen. Die elektrische Eingangsleistung wird über eine H-Brücke Typ BTS7960 zugeführt. Die Steuerung übernimmt der bereits angesprochene Raspberry Pico Mikrocontroller. Der 12V Antrieb liefert bis zu 36W Leistung. Für ein wenig mehr Bedienkomfort habe ich ein 0.96 Zoll OLED Display angeschlossen. Abbildung 7: Damit der Pico seine Umgebung wahrnehmen kann, kommen 3 Hallsensoren Typ AH3503 zum Einsatz. Diese Sensoren liefern ein Ausgangssignal, das analog zur Stärke und Richtung der sie durchdringenden magnetischen Flussdichte ist. Abbildung 8: Direkt an der Motorwelle ist eine Sensorscheibe mit 3 Magneten angebracht. Diese Scheibe wird von 2 Hallsensoren abgetastet - warum 2 Sensoren benötigt werden, um die Drehung zu erfassen, habe ich in einem vorangegangenen Kapitel ausführlich beschrieben. Abbildung 9: Der Raspberry Pico arbeitet mit einer logischen Spannung von maximal 3.3V. Ein Spannungsteiler aus einem 3 Kiloohm Widerstand und einer 3V Zenerdiode verhindert, dass die Logikspannung am Pin des Pico überschritten wird. Ohne Magnet gibt der entsprechende Pin eine logische "1" zurück, in Anwesenheit eines Magneten mit dem Südpol in Richtung des Hallsensors wird eine logische "0" zurückgegeben. Abbildung 10: Schaltplan Scheibenwischermotor als ServoAbbildung 11:Und wer keinen 3D-Drucker besitzt, kann auch einen Scheibenwischermotor entsprechend modifizieren. Zusammen mit dem OLED Bildschirm werden die selben Pins am Pico verwendet, lediglich ein paar Parameter in der Software müssen angepasst werden. Abbildung 12: Bei dem hier genutzten Exemplar von Mercedes (Typ SWF 4195B) ragt die Motorwelle am hinteren Ende so weit heraus, dass ich die Kappe am Gehäuse abschneiden und daran eine Sensorscheibe aus Blech ankleben konnte. Diese Scheibe wird über Lichtschranken abgetastet. Abbildung 13: Die Untersetzung des Schneckengetriebes beträgt 72:1. Der Endschalter für den Servohebel besteht ebenfalls aus einer Lichtschranke. SoftwareEine Besonderheit des Raspberry Pico ist die Möglichkeit, kleine Programme in einer Extra-Hardware des Chips völlig unabhängig vom Hauptprogramm laufen zu lassen. Somit kommt es zu keinen Unterbrechungen durch die Hauptroutine und die Verarbeitung der Signale an den Pins erfolgt extrem schnell. Diese Eigenschaft nutze ich zum schnellen Abarbeiten der Eingangssignale, sowohl an der Sensorscheibe, als auch zum Einlesen des PWM-Signals an einem weiteren Pin. Der Befehlssatz dieser Mini-Programme ist allerdings sehr begrentzt und die Anzahl der Befehle pro Programm auf 32 begrenzt (Sprungmarken zählen nicht als Befehlszeile).Das Auslesen der Sensorscheibe am Motor erfolgt mit Hilfe der ersten, sogenannten State Machine:
Mit diesem Programm werden pro Zahn (Magnet) an der Sensorscheibe lediglich 2 der 4 möglichen Zustände erfasst, was den begrenzten Möglichkeiten der State Machines geschuldet ist - ich habe es nicht geschafft, alle 4 Zustände in 32 Befehlszeilen unterzubringen. Im Hauptprogramm wird die hier ermittelte Pulszahl mit 2 multipliziert. Ferner wird der Ist-Zustand der beiden Sensoren eingelesen, so dass auch die Zwischenstände errechnet werden können (allerdings nicht mit der hohen Geschwindigkeit einer State Machine). Das Einlesen des Pulsweitensignals zum Ansteuern des Servos erfolgt mit der zweiten State Machine:
Den kompletten Quellcode in Micropython gibt's im Download-Paket (siehe unten). DownloadDas Download-Paket (7.2MB) umfasst die Software, den Schaltplan, sowie die 3D-Dateien zum Druck der Bauteile.<<< Digitaler Zollstock Xylophon >>> Neuigkeiten Das Projekt Technik RoboSpatium Unterstützung Stichwortverzeichnis Archiv Download Reaktionen Spiele Verweise Gadgets Kontakt Impressum |