Arduino Projekte mit Tinkerbots bauen - Twister Bibliothek

Twister

Wenn du bestimmte Teile deines Roboters drehen willst, brauchst du den Twister. Das Modul kann sich in einem Bereich von 0° – 180° drehen. Desweiteren kannst du mit der entsprechenden Funktion den derzeitigen Winkel des Twisters auslesen. So kannst du zum Beispiel ein Potentiometer bauen. Manchmal, wenn du deinen Twister bewegen willst, wirst du feststellen, dass er versucht eine bestimmte Position zu halten. Um dieses Verhalten auszuschalten, wirf einen Blick auf die „stop“-Funktion. Eine automatische Stromabschaltung beschützt den Motor des Twisters vor zu hohen Belastungen.

TBTwister()

Instanziiert ein Modul des Typs TBTwister. Es wird ein Header-File („TBTwister.h“) benötigt, um auf die Funktionen von TBTwister zuzugreifen.

Syntax

#include "TBTwister.h"
TBTwister myTwister(BLUE);
TBTwister myTwisterInverted(GREEN);
Parameter Werte Beschreibung
color RED, GREEN, BLUE, MINT, PURPLE, YELLOW, WHITE LED-Farbe des Moduls
invert true, false Flag zum Invertieren der Drehrichtung

setPosition()

Bewegt den Twister zu einer bestimmten Position und lässt ihn diese halten.

Syntax

myTwister.setPosition(angle);
myTwister.setPosition(angle, speed);
Parameter Werte Beschreibung
angle 0 – 180 Position in Grad, die der Twister einnehmen soll (links = 0°, rechts = 180°) (Blick auf die LED-Seite)
speed 0 – 100 Geschwindigkeit der Bewegung

Beispiel

#include "TBTwister.h"
TBTwister myTwister(BLUE);

void setup() {
  //center the Twister and hold
  myTwister.setPosition(90);
}

void loop() {
  //turn left at 50% speed
  myTwister.setPosition(0, 50);
  delay(500);
  //turn right at 75% speed
  myTwister.setPosition(180, 75);
  delay(500);
}

getPosition()

Ruft die derzeitige Position des Twisters ab.

Syntax

myTwister.getPosition();
Datentyp des Rückgabewerts Werte Beschreibung
byte 0 – 180 Position in Grad bei Blick auf die LED-Seite (links = 0°, rechts = 180°)

Beispiel

#include "TBTwister.h"
TBTwister myTwister(BLUE);

byte data;

void setup() {
  Serial.begin(9600);
}

void loop() {
  //turn left at 50% speed
  myTwister.setPosition(0, 50);
  delay(500);
  //get position
  data = myTwister.getPosition();
  Serial.println(data);
}

stop()

Stoppt die Bewegung und stoppt das Halten einer Position. Dies ist nützlich, wenn du den Twister per Hand bewegen willst.

Syntax

myTwister.stop();

Beispiel

#include "TBTwister.h"
TBTwister myTwister(BLUE);

void setup() {
}

void loop() {
  //turn left at 50% speed
  myTwister.setPosition(0, 50);
  delay(500);
  //disable hold
  myTwister.stop();
}

disablePowerCut(), enablePowerCut()

Schaltet die Stromabschaltungstechnologie des Moduls ein, bzw. aus. Die Stromabschaltung beschützt den Motor vor zu hohen Belastungen. In manchen Fällen schränkt dies die Benutzbarkeit des Moduls ein. Wenn du dir sicher bist, was du tust, kannst du dieses Feature deaktivieren (disablePowerCut) um etwas mehr Leistung aus deinem Twister herauszuholen. Bitte vergiss nicht, die Stromabschaltung wieder zu reaktivieren (enablePowerCut), wenn du sie nicht mehr benötigst!

Achtung: Das Betreiben des Twisters mit ausgeschalteter Stromabschaltung kann die Lebensdauer reduzieren!

Syntax

myTwister.disablePowerCut();
myTwister.enablePowerCut();

Beispiel

#include "TBTwister.h"
TBTwister myTwister(BLUE);

void setup() {
}

void loop() {
  //Try to turn Twister with heavy load
  myTwister.setPosition(180);
  delay(500);

  /*
    Observation: Twister deavtivates (LED blinks purple)
    Solution: Deactivate current limiter (disablePowerCut)
  */

  //deavtivate current limiter
  myTwister.disablePowerCut();
  //try to start motor again
  myTwister.setPosition(180);
  delay(500);
  //reactivate current limiter if desired
  myTwister.enablePowerCut();
}