Arduino Projekte mit Tinkerbots - Powerbrain Bibliothek

Powerbrain

Das Powerbrain ist das Herz eines jeden Tinkerbots-Roboters. Bewegungen und Messungen werden von den Modulen übernommen, aber das Powerbrain muss die zeitliche Abfolge koordinieren und alle Module parallel ansteuern. Nichtsdestotrotz hat das Powerbrain noch ein paar spezielle Tricks auf Lager.

TBPowerbrain

Instanziiert ein Modul des Typs TBPowerbrain. Es wird ein Header-File („TBPowerbrain.h“) benötigt, um auf die Funktionen von TBPowerbrain zuzugreifen. Das Powerbrain muss nur deklariert werden, wenn du eine der speziellen Powerbrain-Funktionen nutzen willst.

Syntax

#include "TBPowerbrain.h"
TBPowerbrain myPowerbrain;

isPlusPressed()

Prüft, ob der Plus-Button des Powerbrains gedrückt wird.

Syntax

myPowerbrain.isPlusPressed();
Datentyp des Rückgabewerts Mögliche Werte
boolean true, false

Beispiel

#include "TBPowerbrain.h"
TBPowerbrain myPowerbrain;

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

void loop() {
//check if Plus button is pressed
if (myPowerbrain.isPlusPressed()) {
//if Plus button is pressed, print output
Serial.println("Plus pressed!");
}
}

 

isMinusPressed()

Prüft, ob der Minus-Button des Powerbrains gedrückt wird.

Syntax

myPowerbrain.isMinusPressed();
Datentyp des Rückgabewerts Mögliche Werte
boolean true, false

Beispiel

#include "TBPowerbrain.h"
TBPowerbrain myPowerbrain;

void setup() {
Serial.begin(9600);
}
void loop() {
//check if Minus button is pressed
if (myPowerbrain.isMinusPressed()) {
//if Minus button is pressed, print output
Serial.println("Minus pressed!");
}
}

 

isPlayPressed()

Prüft, ob der Play-Button des Powerbrains gedrückt wird.

Syntax

myPowerbrain.isPlayPressed();
Datentyp des Rückgabewerts Mögliche Werte
boolean true, false

Beispiel

#include "TBPowerbrain.h"
TBPowerbrain myPowerbrain;

void setup() {
  Serial.begin(9600);
}
void loop() {
  //check if Play button is pressed
  if (myPowerbrain.isPlayPressed()) {
    //if Play button is pressed, print output
    Serial.println("Play pressed!");
  }
}

 

isRecordPressed()

Prüft, ob der Record-Button des Powerbrains gedrückt wird.

Syntax

myPowerbrain.isRecordPressed();
Datentyp des Rückgabewerts Mögliche Werte
boolean true, false

Beispiel

#include "TBPowerbrain.h"
TBPowerbrain myPowerbrain;

void setup() {
  Serial.begin(9600);
}
void loop() {
  //check if Record button is pressed
  if (myPowerbrain.isRecordPressed()) {
    //if Record button is pressed, print output
    Serial.println("Record pressed!");
  }
}

showModuleColors()

Aktiviert die LEDs an allen angeschlossenen Modulen. Die LEDs werden in den den Modulen zugewiesenen Farben leuchten. So kannst du beispielsweise herausfinden, welche Farbe du in deinem Code verwenden musst, um das richtige Modul anzusprechen. Diese Funktion wird auch ausgeführt, wenn du dein Powerbrain mit dem USB-Kabel an deinen Computer anschließt.

Syntax

myPowerbrain.showModuleColors();

Beispiel

#include "TBPowerbrain.h"
TBPowerbrain myPowerbrain;

void setup() {
myPowerbrain.showModuleColors();
}

void loop() {
}

hideModuleColors()

Deaktiviert die LEDs an allen angeschlossenen Modulen. Die Funktion macht den Effekt von showModuleColors() rückgängig. Diese Funktion wird auch ausgeführt, wenn du dein Powerbrain von deinem Computer trennst.

Syntax

myPowerbrain.hideModuleColors();

Beispiel

#include "TBPowerbrain.h"
TBPowerbrain myPowerbrain;

void setup() {
myPowerbrain.hideModuleColors();
}

void loop() {
}

setLEDColor()

Lässt die LED des Powerbrains in einer bestimmten Farbe leuchten.

Syntax

myPowerbrain.setLEDColor(color);
Parameter Werte Beschreibung
color RED, GREEN, BLUE, MINT, PURPLE, YELLOW, WHITE gewünschte LED-Farbe

Beispiel

#include "TBPowerbrain.h"
TBPowerbrain myPowerbrain;

void setup() {
  myPowerbrain.setLEDColor(BLUE);
}

void loop() {
}

blinkLED()

Manchmal willst du erkennbar machen, dass dein Roboter in einem bestimmten Zustand erreicht hat.
Für diesen Fall kannst du die LED des Powerbrains in verschiednenen Farben und Sequenzen blinken lassen.

Syntax

myPowerbrain.blinkLED(color, period, cycles);
Parameter Werte Beschreibung
color RED, GREEN, BLUE, MINT, PURPLE, YELLOW, WHITE gewünschte LED-Farbe
period 0 – 65535 Zeit in Millisekunden, in der die LED eingeschaltet sein soll (Bsp.: zwei Mal blinken je Sekunde = 250ms period)
cycles

1-65535

0 (unendliches Blinken)

Anzahl der Zyklen, in denen die LED blinken soll

Beispiel

#include "TBPowerbrain.h"
TBPowerbrain myPowerbrain;

void setup() {
}

void loop() {
  myPowerbrain.blinkLED(RED, 300, 3);
  delay(3000);
  myPowerbrain.blinkLED(MINT, 150, 6);
  delay(3000);
  myPowerbrain.blinkLED(BLUE, 450, 2);
  delay(3000);
}

playSound()

Du hast bestimmt schon gemerkt, dass dein Powerbrain auch Geräusche machen kann. Mit dieser Funktion kannst du zum Beispiel selbst Melodien erstellen, oder sogar ein eigenes Instrument bauen.

Syntax

myPowerbrain.playSound(frequency, timeout);
Parameter Werte Beschreibung
frequency 0 – 1500 Tonhöhe des apzuspielenden Sounds in Hertz
timeout 0 – 65535 Länge, bzw. Dauer, des Tons in Millisekunden

Beispiel

#include "TBPowerbrain.h"
TBPowerbrain myPowerbrain;

void setup() {
}

void loop() {
  //play tone at 300Hz for 500ms
  myPowerbrain.playSound(300, 500);
  delay(500);
  //play tone at 1200Hz for 1s
  myPowerbrain.playSound(1200, 1000);
  delay(500);
}

setRefreshTime()

Definiert das Aktualisierungsintervall für Befehle die an Module gesendet werden neu. Aktor-Positionswerte und Sensor-Messwerte werden dann im angegebenen Intervall aktualisiert.

Syntax

myPowerbrain.setRefreshTime(refreshTime);
Parameter Werte Beschreibung

refreshTime

REFRESH_TIME_25_MS, REFRESH_TIME_50_MS, REFRESH_TIME_100_MS, … (siehe „Tinkerbots.h“ für alle Werte) vordefinierte Aktualisierungszeiten für Sensoren und Aktoren

Beispiel

#include "TBPowerbrain.h"
TBPowerbrain myPowerbrain;

void setup() {
  myPowerbrain.setRefreshTime(REFRESH_TIME_50_MS);
}

void loop() {
}

switchOff()

Schaltet das Powerbrain ab. Ein Neustart kann nur durchgeführt werden, wenn das Powerbrain nicht mehr mit einem USB-Kabel verbunden ist.

Syntax

myPowerbrain.switchOff();

Beispiel

#include "TBPowerbrain.h"
TBPowerbrain myPowerbrain;

void setup() {
  delay(5000);
  myPowerbrain.switchOff();
}

void loop() {
}