home

Dokumentation RaspiBrick Robotik

Module imports:

from raspisim import *
from raspibrick import *

Methode Aktion
Robot() erzeugt Roboter-Instanz (ohne Motoren) und stellt die Verbindung zum Roboter her
Robot(ip) dasselbe, aber verbindet ohne Abfragedialog mit geg. IP-Adresse/Alias (String)
exit() stoppt den Roboter, gibt alle Ressourcen frei und beendet die Verbindung
getIPAdresses()() gibt die IP-Adressen des Roboters zurück
isEscapeHit() True, falls Push-Button (autonom) bzw. Tastaturtaste Esc (Remote-Modus) gedrückt wurde
isLeftHit() True, falls Tastaturtaste Cursor-Left gedrückt (nur Remote-Modus)
isRightHit() True, falls Tastaturtaste Cursor-Right gedrückt (nur Remote-Modus)
isUpHit() True, falls Tastaturtaste Cursor-Up gedrückt (nur Remote-Modus)
isDownHit() True, falls Tastaturtaste Cursor-Down gedrückt (nur Remote-Modus)
playTone(frequency, duration) spielt einen Ton mit geg, Frequenz (in Hz) in Länge (ms)
setSoundVolume(volume) setzt die Lautstärke für alle Tonausgaben (0..100)
initSound(soundFile, volume) bereitet die gegebene Sounddatei (wav, mp3) zum Abspielen vor
playSound() beginnt das Abspielen
stopSound() beendet das Abspielen
fadeoutSound(time) lässt das Abspielen mit der Ausklingzeit (ms) ausklingen
pauseSound() hält das Abspielen an
resumeSound() fährt mit dem Abspielen weiter
rewindSound() beginnt von Anfang an
isSoundPlaying() True, falls das Abspielen nach im Gang ist


Gear:

Gear() erzeugt ein Fahrwerk mit 2 synchronisierten Motoren
backward() fährt rückwärts (nicht-blockierende Methode)
backward(ms) fährt während gegebener Zeit (in ms) rückwärts und stoppt (blockierende Methode)
forward() fährt vorwärts (nicht blockierende Methode)
forward(ms) fährt während gegebener Zeit (in ms) vorwärts und stoppt (blockierende Methode)
left() dreht links (nicht blockierende Methode)
left(ms) dreht während gegebener Zeit (in ms) links und stoppt (blockierende Methode)
leftArc(radius) fährt auf einem Linksbogen mit geg. Radius (in m) (nicht- blockierende Methode)
leftArc(radius, ms) fährt während geg. Zeit (in ms) auf einem Linksbogen und stoppt (blockierende Methode)
right() dreht rechts (nicht-blockierende Methode)
right(ms) dreht während gegebener Zeit (in ms) rechts und stoppt (blockierende Methode)
rightArc(radius) fährt auf einem Rechtsbogen mit geg. Radius (in m) (nicht blockierende Methode)
rightArc(radius, ms) fährt während geg. Zeit (in ms) auf einem Rechtsbogen und stoppt(blockierende Methode)
setSpeed(speed) setzt die Geschwindigkeit (0..100) (erst beim nächsten Bewegungsbefehl übernommen)
stop() stoppt das Fahrwerk


Motor:

Motor(MOTOR_LEFT) erzeugt eine Instanz des den linken Motor
Motor(MOTOR_RIGHT) erzeugt eine Instanz des rechten Motor
backward() startet die Rückwärtsdrehung
forward() startet die Vorwärtsdrehung
setSpeed(speed) setzt die Geschwindigkeit (0..100) (erst beim nächsten Bewegungsbefehl übernommen)
stop() stoppt den Motor


LightSensor:

LightSensor(id) erzeugt eine Instanz eines Lichtsensors mit geg. id (LS_FRONT_LEFT=0, LS_FRONT_RIGHT=1, LS_REAR_LEFT=2, LS_REAR_RIGHT=3)
LightSensor(id, bright = onBright, dark = onDark) dasselbe mit registrierten Event-Callbacks onBright(id, value), onDark(id, value) beim Überqueren des Triggerlevels (default: 500)
LightSensor(id, True) (nur Simulationsmodus) erzeugt eine Instanz eines aufwärts gerichteten Lichtsensors mit geg. id (LS_FRONT_LEFT=0, LS_FRONT_RIGHT=1, LS_REAR_LEFT=2, LS_REAR_RIGHT=3)
LightSensor(id, True, bright = onBright, dark = onDark) dasselbe mit registrierten Event-Callbacks onBright(id, value), onDark(id, value) beim Überqueren des Triggerlevels
getValue() gibt den gemessenen Wert des Lichtsensors zurück (0..1000)
setTriggerLevel(level) setzt neuen Triggerlevel


UltrasonicSensor:

UltrasonicSensor() erzeugt eine Instanz eines Ultraschallsensors

UltrasonicSensor(far = onFar, near = onNear)

dasselbe mit registrierten Event-Callbacks onFar(value), onNear(value) beim Überqueren des Triggerlevels
getValue() gibt die Entfernung zurück (in cm, -1 für Fehler)
setTriggerLevel(level) setzt neuen Triggerlevel


InfraredSensor:

InfraredSensor(id) erzeugt eine Instanz eines Infrarot Sensors mit geg. id (IR_CENTER = 0, IR_LEFT = 1, IR_RIGHT = 2, IR_LINE_LEFT = 3, IR_LINE_RIGHT = 4)
InfraredSensor(id, activated = onActivated, passivated = onPassivated) dasselbe mit registrieren Event-Callbacks onActivated(id), onPassivated(id)
getValue() gibt 1 zurück, wenn der Sensor reflektiertes Licht registriert, sonst 0
setTriggerLevel(level) setzt neuen Triggerlevel


Camera:

Camera() erzeugt eine Instanz einer Raspberry Pi Kamera
captureJPEG(width, height) nimmt ein Bild mit der geg. Pixelaufösung auf und gibt es als String im JPEG Format zurück
saveData(data, filename) schreibt den Inhalt von data byteweise in eine binäre Datei (z.B. ein Bild im JPEG Format)
captureAndSave(width, height, filename) nimmt ein Bild mit der geg. Pixelaufösung auf und speichert es im JPEG Format im Linux-Dateisystem des Raspi
captureAndTransfer(width, height) (nur remote mode) nimmt ein Bild mit der geg. Pixelaufösung auf, transferiert es auf den remote Device und gibt es als String im JPEG Format zurück
readImage(jpeg) Wandelt ein Bild als JPEG String in eine in GPanel verwendbare Bitmap um
(from gpanel import *)


ServoMotor:

ServoMotor(id, home, inc) erzeugt eine Instanz eines Servomotors mit geg. id. (Stecker S12:id=0, S13:id=1, S14:id =2; S15:id=3). home: PWM duty cycle für Homeposition (0..4095), inc: duty/position-Faktor. Setzt Motor auf Homeposition
setPos(pos) setzt relative Position des Motors (pos <> 0 von Homeposition aus)
setPosAbs(pos) setzt absolute Position des Motors (PWM duty cycle 0..4095)
setHome() setzt Motor auf Homeposition


Beeper:

Beeper() erzeugt eine Instanz eines Beepers (aktiver Buzzers zwischen GPIO-Port 40 und Ground angeschlossen, Polarität beachten!)
Beeper(pin = 40) dasselbe, aber am angegebenen GPIO-Port angeschlossen
turnOn() schaltet den Beeper an
turnOff() schaltet den Beeper ab
start(onTime, offTime, count = 0, blocking = False) startet Ein-Ausschaltzyklus mit der Einschaltzeit onTime (ms), Ausschaltzeit offTime (ms), Anzahl Perioden count (default: 0: endlos). Mit blocking = True blockiert der Aufruf, bis alle Zyklen gespielt sind, sonst kehrt der Aufruf nach Start des Zyklus zurück (default: False)
stop() beendet den Spielzyklus
setOnTime(onTime) setzt die Einschaltzeit (auch während des Spielens) (in ms)
setOffTime(offTime) setzt die Ausschaltzeit (auch während des Spielens) (in ms)
setOnOffTime(onTime, offTime) setzt Ein- und Ausschaltzeit (auch während des Spielens) (in ms)
isBeeping() liefert True, falls der Spielzyklus noch im Gang ist
beep(count = 1) kurzes Piepen mit count Perioden (default: 1)


Led:

Led(id) erzeugt eine Instanz eines LED-Paars mit der geg. id (LED_FRONT = 0, LED_LEFT = 1, LED_REAR = 2, LED_RIGHT = 3)
setColor(red, green, blue) schaltet ein LED-Paar in der gegebenen RGB-Farbe ein (Farbkomponenten 0 ...255)
setColor(colorStr) dasselbe, aber mit X11-Color-String
startBlinker(onColorStr, offColorStr, onTime,offTime, count, blocking = False) startet Blinker mit onColorStr, offColorStr (X11-Color-String) und den Zeiten onTime, offTime (in ms). count: Anzahl Einschaltungen (0: endlos). Kehrt sofort zurück, falls blocking = False, sonst blockierend, bis Blinken fertig
stopBlinker() stoppt Blinker und schaltet Led ab
isBlinkerAlive() True, falls Blinker noch aktiv
Led.setColorAll(red, green, blue) schaltet alle 8 LEDs in der gegebenen RGB-Farbe (statische Methode)
Led.setColorAll(colorStr) dasselbe, aber mit X11-Color-String
Led.clearAll() schaltet alle LEDs aus (statische Methode)


Display:

Display() erzeugt eine Instanz eines 7-Segment-Displays
clear() löscht das Display (und stoppt den Display-Multiplexer)
isAvailable() gibt True zurück, falls das Display angeschlossen ist, andernfalls False
isBlinkerAlive()() gibt True zurück, falls der Blinker angezeigt wird, sonst False
isTickerAlive()() gibt True zurück, falls der Ticker angezeigt wird, sonst False
scrollToLeft() scrollt den Text um einen Schritt nach links
scrollToRight() scrollt den Text um einen Schritt nach rechts
setToStart() setzt den Text an die Startposition
showText(text, pos=0, dp=[0, 0, 0, 0]] zeigt den gegebenen Text an. Optional Position pos und Dezimalpunkte dp als Liste mit 0 oder 1
showBlinker(text, dp=[0, 0, 0, 0], count=3, speed=1, blocking=False)

zeigt einen blinkenden Text. Optional Dezimalpunkte dp als Liste mit 0 oder 1,
count: Anzahl Wiederholungen; speed: Blinkgeschwindigkeit; blocking: blockierend, bis Blinker beendet ist

showTicker(text, count=1, speed=2, blocking=False)

zeigt den Tickertext scrollend nach links, bis die letzten 4 Zeichen angezeigt sind.
count: Anzahl Wiederholungen; speed: Scrollgeschwindigkeit; blocking: blockierend, bis Ticker beendet ist

stopBlinker() stoppt den laufenden Blinker
stopTicker() stoppt den laufenden Ticker


OLED1306:

OLED1306() erzeugt eine Instanz eines alphanumerischen OLED-Displays mit 128x64 pixels (mit SSD1306 Chip), der an I2C angeschlossen ist (Adresse 0x3C)
OLED1306(filename) dasselbe, aber mit angegebenen Hintergrundbild (ppm-Format 128x64 B/W). (Nur autonomer Modus)
setBkImage(filename) wählt das Hintergrundbild (ppm-Format 128x64 B/W). None: ein bestehendes Bild wird entfernt (nur autonomer Modus)
setFont(ttfFile, fontSize) entnimmt das Font der angegenenen TTF-Fontdatei (nur autonomer Mode)
setFontSize(fontSize) setzt die Schriftgrösse (in pixel)
setText(text, lineNum, fontSize = None, indent = 0) schreibt den Text text auf die Zeilennummer lineNum (0, 1,...) mit der gewählten Schriftgrösse in pixel (default: None: aktueller Wert). Der Text wird um indent pixels eingerückt (default: 0)
println(text) fügt den Text mit einem Zeilenumbruch in den Textbuffer und zeigt diesen an. Der Text wird im Fenster bei Bedarf nach oben gescrollt, damit die letzte Zeile sichtbar bleibt
clear() löscht den Display und den Textbuffer
setInverse(inverse = True) wählt schwarze Pixel auf weissem Hintergrund
startBlinker(count = 3, offTime = 1000, onTime = 1000, blocking = False) startet einen Blinkzyklus mit count Perioden, der Ausschaltzeit offTime (ms) und der Einschaltzeit onTime (ms). Falls blocking = True blockierend, bis Zyklus beendet
stopBlinker() beendet einen laufenden Blinkzyklus
isBlinking() liefert True, falls Blinkzyklus läuft


Tools:

delay(time) hält das Programm während der Zeit time (in Millisekunden) an


RobotContext (nur Simulation)

setStartDirection(angle) setzt die Startrichtung des Roboters (0 gegen Osten, positiv im Uhrzeigersinn)
setStartPosition(x, y) setzt die Startposition des Roboters (Pixelkoordinaten, Nullpunkt oben links
showStatusBar(height) fügt eine Statusbar mit gegebener Höhe unten am Fenster an
setStatusText(text) setzt den Statustext (alter Text wird gelöscht)
useBackground(filename) fügt ein Hintergrundbild für den Lichtsensor ein
useObstacle(filename, x, y) fügt ein Hindernis für den Infrarotsensor an der Position (x, y) ein
useTarget(filename, mesh, x, y) fügt ein Target für den Ultraschallsensor an der Position (x, y) ein
useTorch(power, x, y, z) fügt eine mausverschiebbare Lampe (Punktlichtquelle) mit gegebener Leistung an gegebener Position ein (z: Höhe) (wird für aufwärts gerichtete Lichtsensoren verwendet)
useShadow(ulx, uly, lrx, lry) fügt einen rechteckigen Schatten mit gegebenen oberen linken/unteren rechten Ecken ein (absorbiert das Licht von Lampen)

 

Vollständige Dokumentation : RaspiPyLib (Python Doc)
  RaspiJLib (JavaDoc)
  RaspiSim (JavaDoc, simulation mode)
   

Zustandsauswahl mit Drucktaste und LED/Display-Anzeigen der RaspiBrick Firmware

Zustand

Einschalten

Suche Access Point (AP)

AP gefunden

AP nicht gefunden
 

Bereit  

BrickGate-Server läuft und wartet auf einen Client

BrickGate-Server hat Verbindung mit einem Client

Anzeige
(falls vorhanden)

leer

AP--

Ticker:
IP-Adresse

Ticker:
#0-0-0-0

m-n
m: Prog.ID des ausgewählten Programms
n: Anzahl gespeicherter Programme

HOLd

kurze Anzeige von  Conn, dann leer (frei für User-Programm)

LEDs
(neben Taste)

dunkel

weiss

grün

gelb

blau, blink die Zahl der Prog.ID

grün blinkend

dunkel (frei  für User- Programm)

Mögliche Aktionen

Warten

Abbrechen mit Klick

Abbrechen mit Klick

Abbrechen mit Klick

Klick startet gewähltes Python-Programm, Doppelklick wählt Prog.ID aus,
langes Halten startet BrickGate-Server,
langes Halten mit vorderem IR-Sensor aktiviert beginnt Shutdown,
Klick mit vorderen IR-Sensor aktiviert zeigt IP-Adresse, Doppelklick mit vorderem IR-Sensor aktiviert löscht alle Programme

Klick startet autonomes Java-Programm, langes Halten stoppt BrickGate-Server

frei für User-Programm

 

Herunterfahren

Zustand

IdLE

Shutdown "Are you sure?"

Shutdown bestätigt

Shutdown abgebrochen

Anzeige

m-n

oooo

BYE.

IdLE

LEDs

blau

rot

dunkel und dann schwach rot

blau

Mögliche Aktionen

Langes Tastenhalten und vorderem IR-Sensor gleichzeitig aktiviert

Bestätigen: Klick mit aktiviertem vorderen IR-Sensor. Abbrechen: Klick ohne IR- Sensor

Warten, bis grüne LED des Raspberry Pi nicht mehr blinkt. Dann ausschalten

Normal weiterverwenden

 

Übersicht RaspiBrick

home