Jogi Künstner, Turbine Brunen
Servo-Motoren haben eine ganz andere Funktion:
Da Servo-Motoren eine andere Funktionalität als normale Motoren haben, werden sie auch anders angeschlossen.
Ein Servo-Motor hat 3 Anschlüsse:
Plus und Minus können wir “ganz normal” von den oberen beiden Anschlüssen mit “+” und “-” holen, für den Steuerungs-Pin können wir den Pin 1 nehmen.
Das heisst vom Calliope zum Servo:
Unser Anschluss sieht nun also so aus:
Servos können - wie vorher geschrieben - üblicherweise um 180 Grad gedreht werden:
und 180 Grad ist ganz nach rechts ausschlagen.
Ohne Strom sind Servos normalerweise in der Mittenstellung.
Die Ansteuerung von Servo-Motoren befindet sich NICHT im Menu Motoren sondern im Menu Pins.
Dieses widerum befindet sich weiter unten, bei Fortgeschritten
Hier befindet sich das Menu Pins:
Im Menu Pins wiederum befindet sich das, was wir brauchen:
Ansteuerung eines Servos an Pin 1 (oder auch , siehe Dreieck…) an Pin 0 -4
Nun können wir ein sehr sehr sehr einfaches Programm schreiben, welches beim Starten den Servo auf Mittenstellung bringt.
Da die meisten Servos OHNE Spannung und Ansteuerung auf der Mittenstellung - also 90 Grad - sind, ist das nicht sehr spannend.
Darum solltet Ihr bei Eurem ersten Programm lieber auf 0 Grad oder 180 Grad einschalten, dann seht Ihr eine kurze Bewegung.
Dieses Programm bitte auf den Calliope runterladen, am Simulator geht das leider nicht.
ACHTUNG : der Servo-Motor dreht sich bei diesem Programm nur ein einziges Mal in die Position, die Ihr eingetragen habt, danach passiert nichts mehr!
Je nach Servo könnt Ihr vielleicht noch ein Vibrieren spüren, das zeigt nur an, dass der Servo aktiv etwas tut, um die Achse in genau dieser Stellung zu halten, aber drehen tut sich der Servo-Motor nicht mehr, denn Ihr habt Ihm gesagt, er soll auf xxx Grad einstellen. Das macht er.
Nun wollen wir unseren Servo mittels unseren Knöpfen ansteuern:
Dazu holen wir uns aus dem Menu Eingabe dreimal eine Reaktion auf einen Knopf-Druck:
Dieses Programm-Gerüst füllen wir nun sinnvoll:
Auch dieses Programm bitte auf den Calliope runterladen, am Simulator geht das leider nicht.
Versuch 1, einen Servo anzusteuern.
Java-Script-Code
HEX-Code Servo 1
Nun wollen wir anstatt ganz auf die Endposition zu fahren, den Servo in Schritten kontrollieren.
Dazu müssen wir eine Variable, die den aktuellen Servo-Stand repräsentiert , jeweils bei einem Knopfdruck erhöhen oder verringern und dann diesen Wert an den Servo schreiben.
Dazu müssen wir nun also Variablen verwenden, hier eignet sich wieder besonders der Befehl um Variablen zu verändern, nicht der um Variablen zu setzen!
Wenn wir das nun sinnvoll einsetzen dann kommen wir zu folgendem oder ähnlichem Programm:
Auch dieses Programm bitte auf den Calliope runterladen, am Simulator geht das leider nicht.
Versuch 2, einen Servo anzusteuern.
Java-Script-Code
let Platzhalter = 0
input.onButtonPressed(Button.A, () => {
Platzhalter += -10
pins.servoWritePin(AnalogPin.P1, Platzhalter)
})
input.onButtonPressed(Button.B, () => {
Platzhalter += 10
pins.servoWritePin(AnalogPin.P1, Platzhalter)
})
input.onButtonPressed(Button.AB, () => {
Platzhalter = 90
pins.servoWritePin(AnalogPin.P1, Platzhalter)
})
Platzhalter = 90
pins.servoWritePin(AnalogPin.P1, Platzhalter)
HEX-Code Servo 2
Für alle Bilder auf dieser Seite gilt: