Ken wird zum Cyborg: die Bastelanleitung

In der Gadget-WG wird auch eifrig gebastelt: Wir verwandeln die Puppe Ken in einen Cyborg - ein Mischwesen, halb Puppe, halb Maschine. Winken mit dem Arm – dank den Elektronik-Bausteinen LittleBits geht das ganz leicht.

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:

  1. Motor an LittleBits Arduino anschliessen.
  2. LittleBits Arduino mit Computer verbinden.
  3. Kens Arm absägen und Servo-Motor zwischen Schulter und Arm montieren.
  4. Programme für Arduino und Processing schreiben

Basteln ohne Lötkolben und Steckbrett

Ein Ardunio-Element von LittleBit.

Bildlegende: Hier werkelt ein Arduino: LittleBits Arduino. SRF

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

Codezeilen aus der Arduino-Oberfläche.

Bildlegende: Mit der Programmier-Oberfläche Processing programmieren wir den Arduino-Chip. SRF

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:

Video «SRF Gadgets, Folge 3 – «Winke, winke»» abspielen

SRF Gadgets, Folge 3 – «Winke, winke»

4:27 min, aus SRF Gadgets vom 17.11.2014

Was wir brauchen