
Vernetzter Personenscanner
Im Rahmen des diesjährigen, sehr technisch und futuristisch geprägten Theaterstückes unserer schuleigenen Theatergruppe „EigenSinn“, wurden zwei andere Schüler und ich beauftragt einige Requisiten anzufertigen. Unter anderem ein Scan-System, das das Publikum beim Eintreten in den Theatersaal scannt und so direkt in eine futuristische Stimmung versetzt.
Funktion:
Die Zuschauer sollten einzeln in eine große rechteckige Box treten. Dort wurden sie von einem Techniker mit einer Fernbedienung gescannt. Entweder ertönte ein „bling“ Sound und die in der Box und Fernbedienung verbauten LED-Streifen signalisierten durch ein grünes Aufleuchten, dass keine Fehler festgestellt wurden und die Person eintreten darf. Bei ungefähr jeder fünften Person jedoch signalisiert ein Fehlergeräusch und ein rotes Aufleuchten einer Warnlampe einen Error. Diese Person durfte nun nicht eintreten und musste die Box verlassen und erneut gescannt werden.
Vorüberlegungen:
Bei der Konzipierung dieses Projektes entschieden wir, dass wir in der Box einen Raspberry Pi verwenden, da dieser das Wiedergeben von Audiodateien relativ einfach macht. Zudem ist er WiFi fähig, was es ermöglicht, ihn per Fernbedienung umzuprogrammieren.
Scanner:
Bauteile:
- NodeMCU (esp8266)
- 5 Neopixel LEDs
- Levelshifter
- Pushbutton
- 9V Block und Stecker
- DC-DC Step-down converter
- 3D gedrucktes Gehäuse
Wir entschieden uns für den NodeMCU, da dieser sehr günstig ist und sowohl WiFi fähig ist, als auch die verwendeten Neopixel ansprechen kann.
Aufbau:
Der NodeMCU wurde über den Stepdown Konverter mit dem Stecker für den 9V Block verbunden. Der Spannungsregulierer wurde auf 5V eingestellt. Die Stromversorgung der Neopixel sowie die des Levelshifters wurden ebenfalls mit dem Stepdown Konverter verbunden. Dann wurde das Datenkabel der Neopixel über den Levelshifter mit dem NodeMCU verbunden. An diesen wurde dann noch ein Pushbutton angeschlossen.
Box:
Bauteile:
- Raspberry Pi 3B
- 2 DC-DC Step-down Converter
- LED-Streifen und dazugehörige Stecker
- 12V Buchse
- 3 IRLB MOSFets
- Jogurt Eimer als Gehäuse
Aufbau:
Da die LEDs eine Spannung von 12V benötigen, wird als Stromversorgung ein 12V Netzteil verwendet, welches mindestens 4A bereiststellen kann. Da der Raspberry Pi nur 5V benötigt, werden zwei parallel geschaltete Step-Down Konverter verwendet, um die 12V des Netzteils auf die 5V des Raspberrys zu transformieren. Die Parallelschaltung der 2 Converter wird verwendet, um die Hitzeentwicklung möglichst gering zu halten, da sich die Konstruktion in einem geschlossenen Gehäuse befindet.
Für die Ansteuerung des analogen LED-Streifens werden 3 IRLB MOSFETs genutzt. Diese dienen als Amplifier und verstärken das vom Pi ausgegebene PWM-Signal. Hierdurch können im nächsten Schritt die einzelnen Farben angesteuert werden.
Funktionsweise:
Der Raspberry Pi öffnet ein WiFi Netzwerk (Tutorial) und startet das Python Programm, sobald er Strom bekommt: Der ESP8266, welcher in der Fernbedienung verbaut ist, verbindet sich anschließend mit dem Pi durch das aufgespannte adhoc Netzwerk.
Das auf dem Pi laufende Programm verwendet das Python-Framework bottle um einen Webserver zu starten. Dieser eröffnet zwei (bzw. drei) verschiedene Routen, die bei einer GET-Anfrage an diese die jeweils richtige Audio-Datei abspielen und die Farbe der LEDs ändern.
Die LEDs werden via PWM angesteuert. Hierfür wird pigpiod verwendet, welches PiGPIO als Daemon im Hintergrund startet. Mit PiGPIO kann man die einzelnen Pins des Pi steuern. Es kann wie folgt installiert werden:
sudo apt-get install build-essential unzip wget
wget http://abyz.me.uk/rpi/pigpio/pigpio.zip unzip pigpio.zip cd PIGPIO sudo make install
Nachdem man PiGPIO mit dem Befehl
sudo pigpiod
gestartet hat, kann man nun mit dem Befehl
pigs p <PIN> <HELLIGKEIT>
die einzelnen Farben der LEDs ansteuern.
Code für Server auf RaspberryPi
Code für ESP8266
- Punktschweißgerät - 17. Oktober 2019
- Poisson-Fleck oder Quantenphysik für Zuhause - 19. Mai 2019
- Vernetzter Personenscanner - 19. Mai 2019