Mit Bitbloq könnt ihr direkt Servomotoren ansteuern und Potentiometer auslesen – in diesem Video kombinieren wir beide zu einer einfachen Motorsteuerung!

Probiert es hier aus bitbloq.bq.com

Bitbloq 2 ist eine Programmiersprache, mit der ihr aus Blöcken einfache oder komplexe Programme für Arduino-kompatible Plattformen, wie den BQ ZUM erstellen könnt! Damit könnt ihr alle Fähigkeiten der C++ Sprache umsetzen, auf der Arduino basiert, ohne die komplizierte Syntax, Komma- und Klammerregeln der Sprache auswendig lernen zu müssen.

Mit Bitbloq 2 kann jeder ab 8 Jahren die Grundlagen der Programmierung und Robotik lernen!


potentiometer_sensorHeute wollen wir zwei neue Komponenten einführen – das Potentiometer, um Drehungen zu messen und den Servo mit kontinuierlicher Rotation, um selber Sachen zum Drehen zu bringen. Ein Potentiometer habt ihr sicherlich schon einmal hergenommen – zum Beispiel an einem Radio, um die Lautstärke zu verstellen. Das Potentiometer besteht eigentlich nur aus einem Widerstand, der, je nachdem in welche Position ihr das Potentiometer dreht, in zwei Teile aufgeteilt wird. Dadurch wird auch die Versorgungsspannung aufgeteilt – je weiter das Potentiometer gedreht wird, desto höher ist die Spannung am Ausgang und genau das kann unser Microcontroller einlesen, genau wie beim Lichtsensor.


continuousservoVon den Servos gibt es zwei Arten: Einmal welche, die wir an eine bestimmte Drehposition schicken können, die heißen einfach nur Servos, der kleine Servo aus dem Zum Kit oder die Beine vom Zowi sind zum Beispiel Solche. Der andere Typ sind Servomotoren mit kontinuierlicher Rotation, denen geben wir eine Drehrichtung und Geschwindigkeit vor und sie drehen sich einfach ewig in die Richtung weiter. Solche Servos werden meistens für Radantriebe verwendet, wie im Printbot.

Was wir mit dem Potentiometer und dem Servo heute machen wollen, ist recht einfach, und zwar steuern wir die Drehrichtung vom Servo abhängig von der Position vom Potentiometer. Mit den gleichen Elementen könnt ihr dann natürlich auch eure eigenen Apparate bauen!

Als erstes wollen wir einfach mal das Potentiometer auslesen und die Werte an den Computer schicken. Dazu schließen wir das Potentiometer an einen der analogen Pins an und fügen in Bitbloq noch den seriellen Port hinzu. Als Software brauchen wir jetzt eigentlich nur eine Zeile Code, und zwar den “Senden” Block, zusammen mit dem “Lesen” Block für das Potentiometer. Damit die serielle Konsole aber nicht komplett überflutet wird, bauen wir noch einen “Warten” Block mit 500ms mit ein, damit schickt der Zum höchstens zwei Werte pro Sekunde. Wenn wir das Programm hochladen, sehen wir, welche Werte der Microcontroller vom Potentiometer ausliest – am einen Ende lesen wir 0, am anderen Ende 1023 und für die Positionen dazwischen eben auch alle Werte dazwischen. Das wollen wir jetzt nutzen, damit wir den Servo in einem bestimmten Wertebereich Vorwärts- und Zurückdrehen lassen und in der Mitte anhalten.

Bitbloq 2 Software Potentiometer + Serial

Dafür schreiben wir im Loop zuerst den aktuellen Wert vom Potentiometer in eine Variable, damit wir den Wert später nicht jedes Mal neu auslesen müssen. Die eigentliche Logik können wir jetzt mit Wenn-Bedingungen bauen, als erstes den Bereich, wenn wir vom Potentiometer weniger als 400 lesen. Dort soll der Servo links herum drehen. Wenn wir jetzt nur einen einfachen, zweiten Zustand hätten, bei dem der Servo Rechts herum dreht, könnten wir für den zweiten Teil jetzt einfach nur den “im gegenteiligen Fall” Block hernehmen, aber weil wir insgesamt drei Zustände haben, brauchen wir den “ansonsten, wenn” Block – der wird nur dann ausgeführt, wenn der erste “Wenn” Block nicht ausgeführt wurde und gleichzeitig die zweite Bedingung stimmt, die wir dem “ansonsten, wenn” Block mitgeben. In dem Fall also ansonsten, wenn pot noch kleiner ist als 600, halte den Servo an.

Und wenn beide Bereiche nicht ausgeführt wurden, also der Wert weder kleiner als 400 noch kleiner als 600 war, wissen wir, dass der Wert sicher größer oder genauso groß wie 600 war, und in dem Fall soll der Servo rechtsrum drehen. Dazu brauchen wir nur den “im gegenteiligen Fall, ausführen” Block und die Anweisung für den Servo.

Bitbloq 2 Software Potentiometer + Servo

So sieht es jetzt aus, wenn wir das Programm auf den Zum hochladen: Wenn wir das Potentiometer in die eine Richtung drehen, dreht der Servo ständig im Uhrzeigersinn; im mittleren Bereich, in dem wir vom Potentiometer Werte zwischen 400 und 600 lesen, bleibt der Servo komplett stehen, und wenn wir das Potentiometer in die andere Richtung drehen, dreht sich der Servo gegen den Uhrzeigersinn. In einem späteren Tutorial sehen wir uns noch an, wie ihr den Servo noch feiner steuern könnt – der kann nämlich viel mehr als nur an und aus. Bis dann!