Schule und ICT Tipps und Trends aus dem ICT-Bereich

28Aug/150

Roboter steigen in den Ring

Das war vielleicht ein abgefahrener Abend! Im FabLab Zürich, einer gemeinnützigen Institution, die sich die Förderung des digitalen Knowhows auf die Fahnen geschrieben hat, bauten wir einen Roboter zusammen, programmierten ihn
und liessen sie als Schlussbouquet gegeneinander antreten.
sumorobot02

Roboter basteln im FabLab Zürich

Die Bauteile werden mit einem Lasercutter aus Pappelsperrholz herausgelöst, die Baupläne kann man im Netz herunterladen und mit einem beliebigen Vektorzeichnungsprogramm (Illustrator, Inkscape) an die eigenen Vorstellungen anpassen. Die Halterung für die Steuerungskugel wurde mit einem 3D-Drucker produziert. Das FabLab ist eine offene Werkstatt in der man nach einer entsprechenden Einführung all diese digitalen Produktionsmittel für eigene Projekte frei nutzen kann. Digitale Fertigungsprozesse wären im Werken ja wirklich ein überaus attraktives Thema. Schulklassen wären sehr willkommen!
sumorobot01

Andi beim Zusammenbau

Nachdem wir die Einzelteile zusammengebaut und einzelne elektronische Elemente gelötet sind, geht's an die Dekoration der Kämpfer – der Kreativität sind keine Grenzen gesetzt!
Das Herzstück des Roboters ist das Arduino-Board das über das USB-Kabel vom Computer gesteuert wird. Damit die Servos die richtigen elektrischen Impulse erhalten, müssen entsprechende Verbindungen gesteckt werden.
Nun wird’s nerdig: Auf dem Computer muss das Node-Plattform installiert werden und darin das Johnny-Five-Framework geladen werden. Nun kann der Roboter über das Terminal mit Javascript-Befehlen gesteuert werden. Ausgehend von einem fertigen Script kontrolliert man die Funktionen, anschliessend passt man das Script laufend an. Um beispielsweise eine Rechtskurve zu fahren wird das linke Rad vorwärts und das rechte Rad rückwärts angetrieben.

Codebeispiel für Vor- und Rückwärtsbewegungen:

var five = require("johnny-five");
var keypress = require("keypress");

keypress(process.stdin);

var board = new five.Board();

board.on("ready", function() {

  console.log("Use Up and Down arrows for CW and CCW respectively. Space to stop.");

  var servo = new five.Servo.Continuous(10).stop();

  process.stdin.resume();
  process.stdin.setEncoding("utf8");
  process.stdin.setRawMode(true);

  process.stdin.on("keypress", function(ch, key) {

    if (!key) {
      return;
    }

    if (key.name === "q") {
      console.log("Quitting");
      process.exit();
    } else if (key.name === "up") {
      console.log("CW");
      servo.cw();
    } else if (key.name === "down") {
      console.log("CCW");
      servo.ccw();
    } else if (key.name === "space") {
      console.log("Stopping");
      servo.stop();
    }
  });
});

Tja, und dann geht’s ans Eingemachte: Nach einer Trainingsphase treten die Roboter im Ring gegeneinander an. Wer über die Linie geschoben wird hat verloren. Ein Riesengaudi!
Für Andi und mich stand fest: Das wäre ein grandioses Projekt für eine Kurswoche. Die Jugendlichen würden an verschiedene digitale Fertigungsprozesse herangeführt, könnten sich kreative ausbauen, machten erste handfeste Erfahrungen mit Elektronik und Informatik und hätten anschliessend Grundfertigkeiten, die sich beliebig ausbauen liessen, denn mit einem Arduino lässt sich fast alles steuern. Ein Kursteilnehmer hat damit sein ganzes Haus automatisiert…
sumorobot03

Gruppenbild der Kämpfer

veröffentlicht unter: Allgemein keine Kommentare