Jahresendflugkörperabschussvorrichtung
Überblick
Silvesterraketen per Smartphone starten - das war unser Ziel. Das Ergebnis: Unsere Jahresendflugkörperabschussvorrichtung.
Dabei sollte alles auch noch relativ günstig sein, im Idealfall größtenteils aus bereits angeschafften oder herumliegendem Material gebaut werden. Außerdem muss die Rampe natürlich auch bei schlechten Witterungsbedingungen wie Regen oder Schneefall funktionieren.
Die Entscheidung fiel auf einen Raspberry Pi, der aus Interesse bereits vorhanden war. Für die Zündung wurden Zigarettenanzünder beim Autofriedhof beschafft - Kostenpunkt 2€ pro Stück, für Schrott eigentlich viel Geld.
Der Rahmen besteht aus Bretter- und Lattenresten, die im Keller gelagert waren. Die Elektronik ist dann zusätzlich in einer Plastikdose aus dem 1€-Shop verbaut.
Aufbau
Die Zündung der Raketen erfolgt über Zigarettenanzünder, die an einer Autobatterie angeschlossen sind. Bei einem Widerstand zwischen Mitte und Rand der Anzünder von 1,5 – 2Ω glühen diese innerhalb von 2s, wenn sie über kurze Leitungen direkt an den Bleiakku angeschlossen werden.
Trotz Verwendung von dicken Drähten hat sich der Widerstand des gesamten Stromkreises stark erhöht. In der endgültigen Version dauerte es 5s, bis die Anzünder zu Glühen begonnen haben. Für die nächste Version soll auf jeden Fall der restliche Widerstand verringert werden.
Die Anzünder wurden in herausgefräste Aussparungen in einer Latte gesteckt, wobei sie jeweils auf eine Schraube gestellt wurden, die mit dem Plus-Pol eines geschalteten Drahtes verbunden sind. Die Erdung wurde mit einem Blech hergestellt, in das Löcher gebohrt wurden. Eingespannt wurde das Ganze dann noch von zwei weiteren Latten.
Dabei ist zu beachten, dass die Anzünder nahe an der Halterung für die Raketen stehen, weil sonst die Zündschnüre zu kurz sind, um die glühenden Anzünder zu berühren. Als Halterung wurde ein Plastikrohr gekauft und zugesägt.
Elektronik
Die Schaltung der Zigarettenanzünder erfolgt über Kontaktstifte (GPIO) am Raspberry Pi. Da für das Glühen der Zigarettenanzünder eine hohe Leistung erforderlich ist, muss auch ein hoher Strom geschaltet werden.
Die GPIO des RPi haben im eingeschalteten Zustand eine Spannung von 3,3V und einem maximalen Strom von 50mA. Mit dieser Leistung kann allerdings nicht direkt ein günstiges (!) Relais geschaltet werden, das die benötigten hohen Ströme aushält - entweder wären Halbleiterrelais notwendig gewesen (ca. 10€ pro Stück), oder eine andere Schaltung muss gefunden werden.
Wir entschieden uns für letzere Variante, die sehr gut dokumentiert ist. Wir konnten günstige gebrauchte Relais für ca. 1€ pro Stück bekommen.
Beim Schaltplan ist zu beachten, dass der rechte Teil für jeden Zigarettenanzünder notwendig ist. Die Anzünder sind als Glühlampe eingezeichnet.
Zusätzlich wurde noch ein Festspannungsregler für 5V und 2A verbaut (im Schaltplan links). Dieser wird gemäß Datenblatt verdrahtet und an ein Mikro-USB-B-Kabel gelötet - Plus auf rot, Minus auf schwarz.
Der Raspberry Pi verfügt über eine Reihe von Ein- und Ausgang-Pins, wobei nicht alle frei belegt werden können. An die Pins 7, 11, 13, 15, 19 wurde jeweils ein Schaltelement für einen Anzünder montiert. Die Masse muss glücklicherweise nicht wieder in einen Pin zurückgeführt werden.
Die auf dem Schaltplan markierten Bauteile im einzelnen:
- R1, R2, R3: 10Ω
- R4: 270Ω
- D1: 1N4448
- Q1: BC337
- B1: Autobatterie
- C1: 0,33µF
- C2: 0,1µF
- U1: L78S05CV
- U2: Relais 12V/12A
Logik
Für das Ansprechen der GPIO-Pins auf dem Raspberry Pi gibt es mehrere Möglichkeiten. Wir haben uns für Python entschieden, da es wohl die einfachste Möglichkeit ist, insbesondere wenn man am Ende ein Web-Interface dazu basteln möchte.
Das Betriebsystem auf dem Raspberry Pi war ein Standard-Raspbian, eine Debian-Variante für den Pi. Vermutlich wäre es auch mit Occidentalis von Adafruit oder jedem anderen Linux-System möglich gewesen, das Ganze umzusetzen.
Man muss noch beachten, dass die GPIO-Pins nur von einem Benutzer mit root-Rechten angesprochen werden können, die Skripte müssen also mit sudo gestartet werden.
Das Webinterface wurde mit WebPy umgesetzt, das bereits einen simplen Webserver integriert hat. Somit benötigten wir keinen eigenen Webserver wie Apache oder Nginx, der noch eigens hätte konfiguriert werden müssen. Über einen Eintrag in der Datei /etc/rc.local wurde die Website inklusive Server automatisch gestartet.
Beim Klick auf eine Bombe im Interface wurde ein Ajax-Request gesendet, der dann auf dem Pi einen der fünf Pins einschaltete. Nach Ablauf der eingestellten Zeit liefert der Request ein OK zurück, auf der Website wird dann die Bombe wieder aktiv geschaltet.
Der gesamte Quellcode ist in einem Github-Repository dokumentiert.
Unerwartet kompliziert war die Verwendung von WIFI. Da wir etwas abseits von unserer Wohnung standen, konnten wir nicht auf den WIFI-Access-Point in der Wohnung zugreifen. Ein Ad-Hoc-Netzwerk hat leider auch nicht funktioniert, da die meisten Android-Geräte (oder wir) nicht dazu fähig sind, ein solches aufzubauen.
Auch die Verwendung des Pi als Access-Point, an dem sich dann die Geräte anmelden sollten, funktioniert nicht mit dem verwendeten USB-WIFI-Dongle (kann auch an uns liegen). Glücklicherweise ließ sich eines der vorhandenen Android-Geräte als WIFI-Access-Point für bis zu vier Geräte konfigurieren, alle anderen Geräte inklusive des Raspberry Pi konnten sich damit verbinden, und die Silvester-Party war gerettet.
Version 2 (Silvester 2013)
Wie bei jeder ersten Version gab es eine Reihe von Bugs und fehlenden Features, die in der nächsten Version behoben wurden:
- Die Zündschnüre von Silvesterraketen sind kürzer als gedacht. Der Abstand zwischen den Rohren und den Anzündern musste verringert werden.
-
Silvesterraketen machen unglaublich viel Schmutz, der noch vor dem Start nach unten geblasen wird. Dieser legt sich auf die Zigarettenanzünder, was spätere Starts erschwert. Wir müssen also eine Möglichkeit finden, die Zünder vor Ort reinigen zu können.
Behoben wurde dies durch eine neue Konstruktion, bei die Anzünder direkt auf ein dickeres Blech gesetzt wurden. -
Plastikrohre halten die Hitze beim Start nicht wirklich aus. Eventuell müssen wir auf Metallrohre zurückgreifen, alte Wasserleitungen bieten sich an.
- Zeroconf funktioniert bei Android nicht. Somit war der Aufruf der zu Website für die Zündung nicht über die einfache Webadresse http://raspi/ möglich, sondern nur über IP-Adresse.
- Die Latenz zwischen Anschalten eines Pins und dem Glühen des Zigarettenanzünders ist relativ lang. Eventuell müssen dickere Drähte verwendet werden bzw. die Stelle mit dem größten Übergangswiderstand muss gefunden werden. Da die Anzünder selbst nur einen Widerstand von unter 2Ω verfügen, erhöht sich der Gesamtwiderstand sehr schnell.
- Ab und zu gibt es einen Javascript-Fehler, so dass die Raketen mit dem Webinterface nicht gestartet werden konnten, ein Neuladen der Website war notwendig.
- In Header der HTML-Datei muss eingebaut werden, dass die Website mobile optimiert ist, damit der Handy-Browser die Website nicht kleiner skaliert. Dies ist im Github-Repository bereits geändert.
- Es sollte noch ein Weg gefunden werden, wie mehrere Geräte auf das Webinterface zugreifen können, wobei andauernd aktualisiert wird, welche Pins gerade eingeschaltet sind.