In diesem Beitrag möchte ich dir zeigen, wie du einen 360° Servomotor am Calliope Mini 3 mit MakeCode programmieren kannst. Das Onlinetool MakeCode macht es gerade Anfänger leicht in die Programmierung zu starten und schnell Ziele zu erreichen.
Inhaltsverzeichnis
- Bezug eines 360° Servomotors
- Anschluss des Servomotors an den Calliope Mini 3
- Programmieren des 360° Servomotors am Calliope Mini 3 mit MakeCode
- Erweitern der Schaltung zum Regeln der Geschwindigkeit
Bezug eines 360° Servomotors
Auf der Plattform ebay.de bekommst du recht günstig die Servomotoren mit 360° Drehung in unterschiedlichen Leistungsstärken.
Ich habe mich für einen einfachen, kleinen Servomotor entschieden, welcher lediglich 8 € inkl. Versand* gekostet hat. Wenn du mehr sparen möchtest, dann empfehle ich dir die Plattform aliexpress.com
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Anschluss des Servomotors an den Calliope Mini 3
Der Servomotor benötigt eine Spannung von 4,8V bis maximal 6V. Jedoch liefert der Calliope Mini 3 lediglich 3,3V über die Pins, d.h. wir benötigen eine externe Stromversorgung, welche uns die Spannung für den Servomotor liefert.
In meinem Fall nutze ich ein Expansionsboard mit einem LiPo-Akku vom Typ 18650. Dieses kleine Board liefert wie eine Powerbank 5V und kann über einen extra Mikro-USB Anschluss geladen werden.
Der Calliope Mini 3 verfügt über zwei Taster (A & B) und ein Touch-Feld (das Logo auf der Rückseite) diese drei Sensoren möchte ich nutzen um den Servomotor vorwärts, rückwärts und auch zu stoppen.
Hier das Pinout der Pinleiste des Calliope Mini 3.
Nachfolgend findest du eine kleine Tabelle, wie die Schaltung aufgebaut wird.
Bauteil | Calliope Mini 3 | ext. Spannungsversorgung |
---|---|---|
ext. Spannungsversorgung | ||
GND | GND | |
360° Servomotor | ||
DATA | P0 | |
VCC | 5V | |
GND | GND |
Programmieren des 360° Servomotors am Calliope Mini 3 mit MakeCode
Kommen wir nun dazu und erstellen das kleine Programm zum steuern des 360° Servomotors in MakeCode. Der Vorteil von MakeCode ist wie bereits erwähnt, dass du den Code mit Blöcken erstellst und so keine Zeile umständlichen Code schreiben musst.
Zum steuern des Servomotors benötigen wir eine Erweiterung, diese heißt „ContinuousServo“ und diese kannst du dir recht einfach über den Menüpunkt Erweiterungen (1) laden. Danach suchst du nach „servo“ (2) und wählst aus den Suchergebnissen „continuous-servo“ (3) aus.


Diese Bibliothek liefert dir alle Bausteine zum steuern des Servomotors.
Du kannst bestimmten, in welche Richtung der Servo sich drehen soll (spin one way, spin other way) und an welchem Pin dieser angeschlossen ist.
Zum stoppen des Servomotors nutzt du den Block „tun off motor“.
Zusätzlich kannst du auch bestimmen, mit welcher Geschwindigkeit dieser Motor sich drehen soll.
Wie erwähnt möchte ich die beiden Taster A & B nutzen, um den Servo vorwärts bzw. rückwärts laufen zu lassen. Das Logo auf der Rückseite des Calliope Mini ist ein kapazitiver Touch Sensor und kann ebenso als Taster verwendet werden und dient in meinem Code zum Stoppen des Sensors.
Nachfolgend den Code zum Importieren in MakeCode.
Erweitern der Schaltung zum Regeln der Geschwindigkeit
Die verwendete Bibliothek erlaubt es auch, die Geschwindigkeit des Servomotors zu regeln. Der Calliope Mini 3 hat mehrere analoge Pins (P0, P1, P2, C4, C10, C16, C18), an welche wir jeweils einen Drehpoti anschließen können, somit können wir theoretisch die Vorwärts-Rückwärtsbewegung separat steuern.
Exkurs – Drehpotentiometer auslesen
Zunächst möchte ich dir kurz erläutern, wie du einen Drehpotentiometer am Calliope Mini 3 auslesen kannst. Ein Drehpotentiometer ist ein Bauteil mit variablem Widerstand, diesen Widerstand veränderst du durch das Drehen eines kleinen Rades.
Es gibt diese Bauteile in unterschiedliche Arten und Ausführen und auch Größen. Ich empfehle dir ein Drehpotentiometer mit Grove Schnittstelle. Es gibt aber auch Drehpotis für welche du zusätzlich ein kleines Breadboard benötigst.
Ein Drehpotentiometer wird an einen analogen Pin angeschlossen und liefert einen Wert zwischen 0 und 1023 bzw. es wird ein Wert abgelesen. Mit diesem Bauteil können wir nun zum Beispiel die Helligkeit einer LED regeln oder auch wie hier die Geschwindigkeit eines Motors.
In den meisten Fällen müssen wir jedoch den gelesenen Wert auf eine andere Range von Werten mappen. Das bedeutet, dass wir im Fall der Helligkeit einer LED die Range des Drehpotis von 0 bis 1023 auf 0 bis 255 und im Fall unseres Servomotors auf 0 bis 100 mappen müssen. Das geht in MakeCode mit dem Baustein „verteile“ aus dem Eintrag „Mathematik“.
Ein Drehpotentiometer zum Regeln der Geschwindigkeit für Vorwärts- / Rückwärtsdrehung
Der Calliope Mini 3 hat am Anschluss A1 und Pin C16 einen analogen Eingang, an diese Schnittstelle können wir einen Grove Drehpotentiometer anschließen.
Das Programm habe ich etwas anders aufgebaut als zuvor, denn wir möchten ja den Drehpotentiometer auch nutzen, wenn sich der Servo gerade dreht.
Hier der Code zum Download und importieren in MakeCode.