News & Trends

Bau dir eine automatische Rauchmaschine an der Tür

Wir erlauben uns einen Scherz. Wann immer sich eine Tür öffnet, soll die ein- oder austretende Person von einer Rauchmaschine eingenebelt werden. Du willst das auch können? Oder willst du jedes Mal einen filmreifen Auftritt hinlegen, wenn du nach Hause kommst? Wir zeigen dir, wie es geht.

Das Touch Board von Bare Conductive ist eigentlich recht cool. Vor allem, weil es viel recht spezifisches Zubehör mitliefert. Unter anderem ist da die elektrizitätsleitende Farbe, von der wir sonst grad nicht wissen, wo wir sie herbekommen sollten. Ist wahrscheinlich nicht so schwierig, die zu finden, aber wenn wir sie grade mitgeliefert bekommen, dann ist das praktisch.

Was kannst du damit machen? Allerlei. Hersteller Bare Conductive liefert zwar keine Betriebsanleitung mit, hat aber auf seiner Website einige erste Bauprojekte veröffentlicht, die nachgebaut werden können. Mit Kindern.

Tja…

Das können wir besser.

«Yo, ich hab hier eine Rauchmaschine», sagt mir Produktmanager Quentin Aellen, in seiner Freizeit leidenschaftlicher Bastler.

Besser.

Der Plan:

  • Wir bauen uns eine automatisierte Rauchmaschine
  • Wir montieren das ganze Setup an einer Tür im Büro
  • Unsere Mitarbeiter werden eingenebelt
  • ???
  • Profit

Das Setup

Für dieses Bauprojekt verwenden wir nebst dem Touch Board folgende Bauteile.

Hyperion 5V Relay (Stromkomponente, Diverse, Erweiterung, Mikroprozessorerweiterung)
Elektronikmodul

Hyperion 5V Relay

Stromkomponente, Diverse, Erweiterung, Mikroprozessorerweiterung

Vorausschicken möchte ich auch, dass weder Quentin noch ich Experten der Elektrotechnik sind. Wir sind Bastler. Wenn dir also wichtige Sicherheitshinweise einfallen, oder grobe Patzer auffallen, dann lass es uns doch in einem Kommentar wissen. Auch technisches Hintergrundwissen ist eher Mangelware in unserem Labor, das eigentlich ein Sofa ist, wo andere manchmal zu Mittag essen.

Die Nebelmaschine

Aus der Box wird die Nebelmaschine per Druckknopf aktiviert. Das ist ein ganz normaler Schalter, vergleichbar mit einem Lichtschalter oder sonst einem Knopf. Du drückst, der Kontakt zwischen Strom und Maschine wird hergestellt, Rauch kommt aus der Maschine.

Ein Kabel ist hier die Erdung, die wir vorsichtshalber abkleben, damit keine offene Kontakte da sind

Da der Knopf aber zu altmodisch ist, schrauben wir den ab und stecken die Kabel in ein Relais. Dieses Relais wird, einfach gesagt, den Knopf drücken sobald es mit Strom versorgt wird. Die Logik sieht so aus.

Tür öffnet sich → Strom fliesst aus Touch Board → Relais wird aktiviert → Rauch

Dazu müssen wir den ganzen Mechanismus der Rauchmaschine verändern. Also Knopf weg, Relais rein.

Der Druckknopf wird durch ein Relais ersetzt

Dazu stellen wir sicher, dass die Rauchmaschine nicht an den Strom angeschlossen ist und schrauben dann den Druckknopf auf. Die Kabel, die mit dem Drückmechanismus verbunden sind, entfernen wir. Das geht alles ganz leicht.

Da im Relais nur zwei Kabel verbaut werden können, der Knopf aber drei hat, müssen wir herausfinden, welches Kabel die Erdung ist. Denn dieses wird nicht gebraucht, um den Stromkreis zu schliessen. Die Erdung haben wir mit Panzertape abgeklebt. Scheint uns sicher genug.

Damit sind die Modifikationen an der Nebelmaschine abgeschlossen. Wenn du vorsichtig mit dem Knopf warst, kannst du die Nebelmaschine easy wieder in ihren Ursprungszustand versetzen.

Das Touch Board

Klein, aber fein. Das Bare Conductive Touch Board

Das Touch Board selbst ist recht simpel gestaltet. Such dir einen Pin aus, an dem du die Klammer befestigst, die das Relais aktivieren wird und merk dir die Zahl. Mehr gibt es hier nicht zu tun.

Den Code laden wir dann via USB-Connector direkt auf das Touch Board und fertig. Wir haben uns Pin 10 ausgesucht. Jeder Pin tut es, aber im Code wird Pin 10 vorgegeben, weshalb wir uns gedacht haben «Ja, passt schon».

Unser fertiges Setup sieht so aus

Dazu haben wir auf eine Rolle Malerband die schwarze Elektroleitfarbe aufgetragen. Pinsel sind im Starterset glücklicherweise mitgeliefert, das Malerband mussten wir uns separat besorgen. Dann eine Klammer ans Tape und die Sache ist Betriebsbereit.

Bis hierhin war alles vergleichsweise einfach. Der schwierige Part war die Sache mit dem Code. Denn beim Bau der Hardware mussten wir einfach den Lautsprecher am Setup mit der Relais-Konstruktion ersetzen und fertig.

Der Code

Weder Quentin noch ich sind grosse Coder, aber wir haben das in einem Nachmittag hingekriegt

Da wir nicht nur Bastler sondern auch faul sind, gehen wir die Bauanleitungen auf Bare Conductives Website durch. Gibt es da was, das wir einfach anpassen können? Weil klar, mit genug Zeit und Arbeit könnten wir easy den Code selber schreiben, aber wenn da schon etwas ist, das wir nur anpassen müssen, dann ist das doch besser.

Gesucht? Gefunden!

Das Originaltutorial spielt eine MP3-Datei auf einem Speaker ab, wenn der Code die Nähe eines Objekts feststellt. Im Video ist das eine Hand. Bei uns wird das die Tür.

Ein Blick in den Code zeigt: Das geht.

Die Touch Boards von Bare Conductive sind im wesentlichen Arduino Minicomputer. Daher akzeptieren sie Code in den Sprachen C und C++. Den Code, den wir verwenden, ist in C++ geschrieben, was aber nicht heisst, dass du der grösste Coder aller Zeiten sein musst. Quentin und ich haben das in einem Nachmittag hingekriegt, sind dann ambitioniert geworden und haben noch einen Nachmittag investiert, was aber nur wenig gebracht hat. Nichts, um ehrlich zu sein.

Ursprünglich haben wir uns einen Code ausgesucht, der auf Berührung reagiert. Das war aber ein Denkfehler, denn die Tür berührt die Türschwelle nicht. Aber weil wir schon dabei waren, haben wir weiter mit dem Codeschnipsel gearbeitet. Unser grosses Problem war, dass wir einen Loop erstellen wollten, der folgende Funktion hat: Türe auf → Zwei Sekunden Rauch → Aus. Der Grund dafür ist, dass die Türe etwa zehn Sekunden offen steht, wenn immer jemand das Büro betritt. Das wäre etwas zu viel Rauch. Wir fürchten uns davor, den Rauchmelder im Gang auszulösen. Dann müsste das Büro evakuiert werden und wir würden vom Chef zusammengestaucht werden.

Um das zu erreichen, wollten wir einen Loop erstellen. Im Programmieren ist ein Loop ein Befehl, der mehrfach hintereinander ausgeführt wird. Und das kann so aussehen:

int test () {
   // Deklarieren der Variable. Sie zählt für uns, bis Variable i den Wert 20 erreicht:
   int i = 10;

// Während der Loop arbeitet while( i < 20 ) {

  cout << "i liegt aktuell bei: " << i << endl;
  i++;

}

return 0; }


Der Code oben würde zehn Zeilen Text ausgeben: «i liegt aktuell bei: » gefolgt von 10, 11, 12 und so weiter, da i++ nach jeder Zeile Text den Wert von i um 1 erhöht. Das geht dann so lange weiter, bis i = 20 ist. Dann beendet sich der Loop und fertig.

Etwas in dieser Richtung wollten wir für die Rauchmaschine. Also sowas in der Art:

int test () {
   // Deklarieren der Variable. Sie zählt für uns, bis Variable i den Wert 20 erreicht:
   int i = 10;

// Während der Loop arbeitet while( i < 11 ) {

  digitalWrite(CH10, LOW);
  delay(2000);
  i++;

}

return 0; }


Wir wissen bis jetzt nicht genau, warum unser Loop-Projekt nicht funktioniert hat. Der obige Schnipsel stammt nicht aus dem Code, den wir versucht haben, also ist es gut möglich, dass ich das Problem grade gelöst habe. Wahrscheinlich aber nicht, denn mir scheint, als ob ich irgendwo i wieder auf 10 setzen müsste. Das würde den Loop aber erneut auslösen und wir wären endlos im Loop gefangen.

Wenn du das hinkriegst, dass wir via Loop zwei Sekunden Rauch machen können, dann schreib uns den Code doch bitte in einen Kommentar unten.

Unsere Lösung ist etwas simpler. Sie funktioniert zwar codeseitig, aber die Umsetzung hat doch einige Macken.

// reading liest die Distanz zwischen Objekt und Elektrofarbe aus
int reading = MPR121.getBaselineData(ELECTRODE)-MPR121.getFilteredData(ELECTRODE);

if (reading < 20) {

digitalWrite(CH10, LOW); // LOW = Maschine an
delay(2000);

}

if (reading > 20) {

digitalWrite(CH10, HIGH); // HIGH = Rauchmaschine aus

} }


Den gesamten Code kannst du in unserem GitHub Repository nachlesen.

Die Tücken der Praxis

Das Setup funktioniert. Eventuell ist es nicht das sicherste Setup aller Zeiten und der Code scheint uns etwas wacklig. Er funktioniert zwar, aber wir sind uns abschliessend sicher, dass das besser gelöst werden könnte. Womit mir aber nicht gerechnet haben, ist die Realität.

Die Installation an der Tür war einfach, die Verkabelung mit Kabelrolle ebenfalls. Dann kommen die Lichtverhältnisse ins Spiel. Jede Wolke, jedes eingeschaltete oder ausgeschaltete Licht, jede Person, die an der Tür vorbeigeht, verändert das Licht und somit den Messwert unseres Setups. Das Resultat: Zufälliger Rauch dann und wann wieder. Dafür aber, so als Ausgleich: Kein Rauch, wenn da Rauch sein sollte.

Angepasst werden könnte das locker im Code. Im obigen Schnipsel ist das die Zahl 20. Wenn du das Projekt also an deiner Tür umsetzen möchtest, dann ist das der Wert, mit dem du rumspielen solltest, um das bestmögliche Resultat zu finden.

Kleine Randbemerkung: Die meisten Rauchmelder sollten vom Rauch der Rauchmaschine unbeeindruckt bleiben. Sollten.

Ferner kenn ich dich, lieber Leser, doch schon ein wenig. Du fragst dich bestimmt «Und wo ist jetzt der Sinn der Sache?» Einfach.

Wir haben das gemacht, weil wir können.

Am Ende haben wir unsere Mitarbeiter eingenebelt, herzlich gelacht und ich habe einen Text geschrieben. Wir haben mit dieser Bastelei nicht nur unsere C++-Kenntnisse aufgefrischt, sondern den Alltag unserer Mitarbeiter – und hoffentlich deiner – etwas lustiger gestaltet.

Jetzt bist du dran: Mach was! Viel Spass!

Das könnte dich auch interessieren

  • News & Trends

    Arduino for dummies – mein erstes (vorprogrammiertes) Mal

    von Raphael Knecht

24 Personen gefällt dieser Artikel


User Avatar
User Avatar

Journalist. Autor. Hacker. Ich bin Geschichtenerzähler und suche Grenzen, Geheimnisse und Tabus. Ich dokumentiere die Welt, schwarz auf weiss. Nicht, weil ich kann, sondern weil ich nicht anders kann.

13 Kommentare

Avatar
later