Tag Archives: Arduino

Reversibles Hacken

Wie kommt man schnell zu neuen Ideen und wie prüft man diese frühzeitig auf deren Nutzen und Umsetzbarkeit? Gerade im Rahmen des digitalen Wandels (Digitale Transformation) im Zusammenhang mit dem Internet der Dinge ist dies eine essentielle Frage.

Bei vielen Projekten hat es sich bewährt, für erste Prototypen auf vorhandene Produkte zurückzugreifen und diese „nur“ anzupassen. Das ist gerade in frühen Projektphasen effizienter und günstiger, als etwas ganz von vorne zu bauen. Es geht darum, die Funktionsweise zu verstehen und für eigene Vorstellungen zu verändern. Oder wie es CCC-Gründer Wau Holland formulierte: „Ein Hacker ist jemand, der versucht einen Weg zu finden, wie man mit einer Kaffeemaschine Toast zubereiten kann“.

disassembling

Meist die größte Herausforderung und ein Garantiekiller: Das eigentliche Auseinandernehmen (hier am Beispiel einer Nespresso Pixie). Und nicht vergessen, Strom ist lebensgefährlich und ein Personenschutz-Adapter die mindeste Investition, ist einem sein Leben lieb.

Angenommen die Aufgabe besteht darin, dass eine Kaffeemaschine zum Beispiel intelligent und vernetzt sein soll (Stichwort Smart Home). Dann gibt es verschieden Wege, Ideen zu entwickleln und erlebbar zu machen. Diese unterscheiden sich jedoch ganz erheblich in den dafür notwendigen Fähigkeiten und Kosten. Zum Beispiel könnte ein Roboter die Maschine stellvertretend steuern. Es gibt zahlreiche Beispiele, wo dies erfolgreich jedoch meist nicht ganz günstig praktiziert wird. Es wäre auch einen Versuch wert, direkt in die Steuerung der Maschine über deren Programmierung einzugreifen. Einige Hersteller wie z. B. der Staubsaugerroboterhersteller iRobot oder der Dronenhersteller Parrot bieten dafür extra Programmierschnittstellen. Doch sollten diese fehlen, dann muss viel Aufwand betrieben werden wie z. B. Reverse Engineering. Oder man könnte auch die Hardware des Gerätes mit eigenen Komponenten zur Steuerung modifizieren, doch dies ist meist mit erheblichen Kosten und Risiken verbunden.

electronic_contacts

Ob man nun die Sensoren und Schalter direkt am Bauteil oder an der Platine abgreift, ist eher eine praktische Frage. Bei der Nespresso Pixie lässt sich das glücklicherweise alles schön zentral machen. A und B sind die Tasten, C ist ist die Status LED und D für die Erdung.

Eine effiziente und kostengünstige Vorgehensweise ist das „Reversible Hacken“. Diese einfache Form des „Hacken“ nutze ich erfolgreich im Rahmen von Value Innovation Workshops bei denen neben der Ideenfindung auch Geschäftsmodelle entwickelt und mögliche Innovationen und deren technische Umsetzbarkeit überprüft werden (ein Artikel ist geplant).

Beim Reversible Hacken hier wird zwar auch in die Hardware des Gerätes eingegriffen, doch dies beschränkt sich auf das Abgreifen der vorhandenen Sensoren und Überbrücken der Aktoren wie Schalter. Die Funktionsweise der Sensoren und Schalter lässt sich in der Regel einfach ermitteln und die meist kostengünstigen Bauteile wie Optokoppler und Relais lassen sich normalerweise leicht wieder entfernen – zumal die grundsätzliche Funktionsweise des Gerätes ja eh weiterhin erhalten bleibt und zusätzliche Möglichkeiten nur drangeflanscht werden.

arduino

Sieht schlimmer aus, als es ist: Die hinzugefügten Bauteile müssen nur noch mit einem Rechner verbunden und programmiert werden. Hier kommt das Arduino kompatible „Platinchen“ von blueIOT auf einem Steckbrett zur fliegenden Verdrahtung zum Einsatz.

Die zusätzlichen Bauteile müssen nun nur noch mit einem Einplatinenrechner wie Raspberry Pi und/oder Arduino verbunden werden. Schon stehen einem alle Möglichkeiten in Software zur Verfügung. Das geht in der Regel zügig von der Hand, wenn man einen Baukasten aus den notwendigen Bibliotheken und Codemustern parat hat. Meist ist es ja nicht mehr als ein paar REST-Aufrufe kombiniert mit Sensorwert/Ereignis lesen, Bedingung prüfen und Wert setzen. Zumindest für einen Prototypen reicht das häufig.

Falls Sie nun selber loslegen und eigene Ideen probieren möchten, dann sind Spielzeuge ein guter Startpunkt für eigene Experimente. Selbst vermeintlich defekte Geräte können so zu neuem Leben erweckt werden.

Texting a Bubble Gun (SMS with Arduino)

I wanted to demonstrate the usage of texting (SMS) for IoT (Internet of Things) and M2M (Machine to Machine communication). Therefore I disassembled a cheap bubble gun (usually less than 5 euros).

bubble_gun_step1
These are the places where soldering is needed.

In the next step I bypassed the batteries and the trigger with soldering two cables directly to the gun’s electronic circuit. That’s the fiddly part.

bubble_gun_step2
The relay on the left acts like a switch for the toy, on the right are the cables to the toy’s electric circuit.

The rest is just using an Arduino with a GSM shield, connecting it to a relay and plugging in the cables from the bubble gun.

Still one issue: The mechanism needs initial a mechanical created film for the bubbles. This would be possible with little effort, but the costs for the extra parts would exceed the gun’s price. Therefore I skipped this and did it manually. A different mechanic as used by the Gazillion Bubble Machine might solve this. By the way, the liquid seems to be very special, because the gun does not work with the standard bubble liquid from my kids.

Controlling this via phone is only one option. You also can use an API with any of your applications like Global SMS API or combine it with voice via Telekom Tropo.

But one tricky thing is still missing: The code for receiving the message. In this case the Arduino frequently checks only for patterns in all received messages.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void loop() {
   checkForInboundMessages();	
}
 
void checkForInboundMessages() {
   char inchar; // Will hold incoming character from the Serial Port  
   String pattern = "+CMT"; 
   String result;
 
   while(mySerial.available()!=0) {
      inchar = gsm.read();
      result = result + inchar;
   }
 
   result.toUpperCase();
   if (result.indexOf(pattern)>-1) {
 
      gsm.print("AT+CMGD=1,0\r");
 
      if (result.indexOf("ON")>-1) {
         digitalWrite(RELAY, HIGH);
      } else if (result.indexOf("OFF")>-1) {
         digitalWrite(RELAY, LOW);
      }
   }
 
}

Once you have built something like this, you are basically able to control every toy with an on-off switch – and not only toys. You only need to bypass the switch with a relay connected to a computer (e.g. Arduino or Raspberry Pi). I am looking forward to your ideas…

Buchtipp: Durchstarten mit Raspberry Pi

Eine große Stärke des Einplatinen-Computers Raspberry Pi sind die vielfältigen Einsatz- und Erweiterungs-Möglichkeiten. Doch wie legt man eigentlich los? Erik Bartmann beantwortet diese Frage und hilft beim „Durchstarten mit Raspberry Pi“.

Unterstützt durch ein ansprechendes und mehrfarbiges Layout liest sich das Buch gut – sofern man die eher flapsige Art des Autors mag. Klasse sind die zahlreichen Hinweise, die typische Fragen und Stolperfalle hervorheben und anschaulich erklären. Verwirrend ist jedoch der Wechsel zwischen virtualisierten Linux-Umgebungen und dem echten Raspberry Pi. Zumal auch mehrere Betriebssystem-Versionen wie Debian Squeeze und das neuere Debian Wheeze im Buch vorkommen. In Anbetracht des frühen Erscheinungstermins des Buches ist klar, dass die neueste Hardware-Revision fehlt: Hier ist unbedingt Vorsicht geboten, wenn man sich mit den Hardware-nahen Beispielen im Buch befasst. Aber der Autor hat darauf reagiert und bereits einen entsprechenden Artikel (PDF) verfasst. Gut gefällt der Rundumschlag zu Linux, inklusive Kommandozeile und der grafischen Benutzungsoberfläche. Das nötigste wird bereits im Buch vermittelt und am Ende gibt es noch einmal ein hilfreiches Zusatzkapitel mit Linux-Grundlagen.

Der umfangreiche Einstieg in die Raspberry Pi Welt umfasst neben Installation und Konfiguration auch die Paketverwaltung. Darauf folgt ein Schnelleinstieg in die Programmierung mit Python und C. Dass diese rund 40 Seiten Programmierkurs einem Einsteiger viel nützen, bezweifle ich. Dennoch ist es ein schöner Überblick, um mit Hilfe von Zusatzliteratur oder Vorkenntnissen schnell zu einem Raspberry-Pi-Programmierer zu werden.

Eine Stärke des Buches sind die Themen, bei denen es um die Erweiterungsfähigkeiten des Raspberry Pis geht. Sowohl das Zusammenspiel mit Arduino als auch die GPIO-Pins und Erweiterungsplatinen wie Gertboard und PiFace werden behandelt. Schade ist, dass dem Leser hier wenig Entscheidungshilfe gegeben wird, welcher Weg sich für was eignet. Drum herum werden noch elektrotechnische Grundlagen vermittelt und das so anschaulich und gut, so dass man sich davon mehr wünschen würde – gerade wenn man eher von der Code-Seite kommt.

Wer einen ansprechenden Einstieg in die Erweiterungsmöglichkeiten des Raspberry Pi sucht, erhält mit diesem Buch einen umfassenden Überblick. Die Breite der behandelten Themen ist groß. Darunter leidet zwar ab und zu der Tiefgang, doch entsprechende Vorkenntnisse oder Zusatzliteratur vorausgesetzt, kann das auch ein Vorteil sein. Das Buch ist durchaus für den ambitionierten Einsteiger geeignet ohne den Fortgeschrittenen zu langweilen.

„Durchstarten mit Raspberry Pi“
Autor: Erik Bartmann
Preis: ca. Euro 25,-
ISBN: 3868994106
Erscheinungsdatum: O’Reilly, 28. Oktober 2012
Link: Amazon