Wir wollen Kens Arm an einem Motor befestigen, den wir per Maus fernsteuern können. Um Ken so in einen Cyborg zu verwandeln, braucht es nicht viel. In vier Schritten ist die Metamorphose von Ken komplett, wie auch das Video am Ende des Artikels zeigt:
- Motor an LittleBits Arduino anschliessen.
- LittleBits Arduino mit Computer verbinden.
- Kens Arm absägen und Servo-Motor zwischen Schulter und Arm montieren.
- Programme für Arduino und Processing schreiben
Basteln ohne Lötkolben und Steckbrett
Ein Servomotor bewegt Kens Arm, gesteuert von einem LittleBits-Baustein. Dank LittleBits sind komplexe Elektronik-Basteleien möglich – und das ganz ohne Löten. Entwickelt hat den Baukasten die Kanadierin Ayah Bdeir. Ihr Trick: Sie verbindet die einzelnen Bauteile über einen Magnetanschluss, ähnlich wie der Stromstecker an einigen Laptops. Die Bauteile gibt es in Sets oder auch einzeln zu kaufen (siehe Kasten).
Bei unserem Set ist bereits ein Servo-Motor dabei, sowie ein Baustein mit einem Arduino-Chip zur Steuerung des Servo-Motors. Die Schnittstelle zwischen Maus und dem Arduino-Baustein übernimmt Processing, eine einfache Programmiersprache und ein Editor, in dem man die Programme schreibt.
Die Schaltzentrale Processing
Processing auf dem Computer empfängt das Signal von der Maus und leitet es per USB an den Arduino-Baustein weiter. Dieser übermittelt es wiederum an den Servo-Motor.
Wir können also die Maus hin und her und damit den Arm von Ken auf und ab bewegen.
Processing ist frei erhältlich für Windows, Linux und Mac OS X. Unser Processing-Programm sieht so aus:
import processing.serial.*;
// Global variables
int new_sX, old_sX;
int nX, nY;
Serial myPort;
// Setup the Processing Canvas
void setup(){
size(800, 100);
strokeWeight(2);
// Open the serial port for communication with the Arduino
// Make sure the COM port is correct (can be different on machines)
String portName = "/dev/tty.Bluetooth-Incoming-Port";
println(Serial.list());
myPort = new Serial(this, portName, 9600); }
// Draw the Window on the computer screen void draw(){
// Fill canvas grey
background(100);
// Set the stroke colour to white
stroke(255);
// Draw a circle at the mouse location
ellipse( nX, nY, 10, 10);
// Draw Line from the top of the page to the bottom of the page
// in line with the mouse.
line(nX,0,nX,height);
}
// Get the new mouse location and send it to the arduino void mouseMoved(){
nX = mouseX;
nY = mouseY;
// map the mouse x coordinates to value on the Arduino.
new_sX=(int)map(nX,0,800,0,240);
if(new_sX==old_sX){
// do nothing
} else {
// only send values to the Arduino when the new X coordinates are different.
old_sX = new_sX;
println(new_sX);
myPort.write(new_sX);
}
}
Und übrigens: Processing kann noch viel mehr als bloss Daten umformatieren. Es ist ein faszinierendes Werkzeug zur Generierung von Grafiken, das am renommierten Media Lab des Massachusetts Institute of Technology für Medien- Künstler entwickelt wurde. Dazu gibt es zahlreiche Anleitungen , die Anfängern den Einstieg in die Programmierung erleichtert.
Auch der Arduino-Baustein braucht noch etwas Code. Dafür müssen wir den Arduino-Editor installieren (ebenfalls frei für Windows, Mac und Linux erhältlich) und folgendes Arduino-Programm auf den Chip schreiben:
void setup() {
Serial.begin(9600); // establish rate of Serial communication }
void loop() {
byte valueRead;
if (Serial.available() > 0) { // if we've heard from Processing do the following
valueRead = Serial.read(); // read int from Processing
Serial.println(valueRead); // write to console
analogWrite(9, valueRead); // write number to output 9
analogWrite(5, valueRead); // write value to servo on output 5
delay(20); // short delay so servo doesn't flutter
}
}
Prototyp von der ETH: «Tangible and Modular Input Device for Character Articulation»
In der dritten Folge von « SRF Gadgets » gehen wir sogar noch einen Schritt weiter: Statt mit der Maus steuern wir den Motor an Kens Arm über den der Gelenk-Joystick «Tangible and Modular Input Device for Character Articulation». Mit diesem Gerät der ETH können wir direkt ohne Maus Figuren in einer Software animieren. Mehr zum Gelenk-Joystick gibt es hier .
Und so sieht das dann in Aktion aus: