06_04_Servos

Calliope-Kurs, Sommer/Herbst 2018

Jogi Künstner, Turbine Brunen

Servo-Motoren

Nochmals: Servo-Motor

Servo-Motoren haben eine ganz andere Funktion:

Prinzip: Servo-Motor

Prinzip Servo
Prinzip Servo

Servo-Motoren-Anschluss

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.

Servo-Motoren-Anschluss

Servo-Motoren-Anschluss

Das heisst vom Calliope zum Servo:

Servo-Motoren-Anschluss

Unser Anschluss sieht nun also so aus:

Servo-Funktion

Servos können - wie vorher geschrieben - üblicherweise um 180 Grad gedreht werden:

Servo-Motoren Ansteuerung

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

Simples Servo-Programm

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.

Erstes Simples Servo-Programm

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 mit Knopf-Druck

Nun wollen wir unseren Servo mittels unseren Knöpfen ansteuern:

Nun mit Knopf-Druck

Dazu holen wir uns aus dem Menu Eingabe dreimal eine Reaktion auf einen Knopf-Druck:

Nun mit Knopf-Druck

Dieses Programm-Gerüst füllen wir nun sinnvoll:

Nun mit Knopf-Druck

Auch dieses Programm bitte auf den Calliope runterladen, am Simulator geht das leider nicht.

JavaScript-Code Servo 1

Versuch 1, einen Servo anzusteuern.

Java-Script-Code



input.onButtonPressed(Button.A, () => {
    pins.servoWritePin(AnalogPin.P1, 0)
})
input.onButtonPressed(Button.B, () => {
    pins.servoWritePin(AnalogPin.P1, 180)
})
input.onButtonPressed(Button.AB, () => {
    pins.servoWritePin(AnalogPin.P1, 90)
})
pins.servoWritePin(AnalogPin.P1, 90)

HEX-Code Servo 1

Hex-code

Nun mit Zwischen-Schritten

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.

Variablen verwenden

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!

Demo-Programm

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.

JavaScript-Code Servo 2

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

Hex-code

Lizenz/Copyright-Info

Für alle Bilder auf dieser Seite gilt:

Download Folien

Download Kursteil: 06_04_Servos als PDF-Folien