Google Kalender mit Touch Screen und Bewegungserkennung
Ich habe einen interaktiven Google Kalender mit Bewegungserkennung und Touch Screen aus dem Raspberry Pi gebaut.Die größte Herausforderung war die Installation un Einrichtung des 19“ Touch Screens am Raspberry, problematisch ist vorallem die Konfiguration der Software bzw. des Kernels.
Hardware:
- RPi Rev. B
- RPi Camera
- Altes 5V Ladegerät (USB)
- Alter 19“ Belinea Monitor mit DVI (Gehäuse entfernt)
- Alter HDMI zu DVI Konverter und DCI Kabel
- 19“ Touch Glas Kit mit 5 Wire Touch USB Controler, die Egalax Controler funktionieren ohne Probleme
- RPi Wireless USB (RT5370 Chipset)
- 8 GB SD
- Wandhalterung VESA 100 für den Monitor
- Kaltegerätekabel & Lüsterklemmen der Monitor und der RPi werden über ein Kabel mit Strom versorgt
Downloads
Kosten / Zeit
- Kosten ~180€ (Teurer Versand für das Touch Panel)
- Zeit ~30h
Installation des Raspberri Pi Touch Screen
Falls ihr den Kernel für den Touch Support nicht selber kompilieren wollt, ich habe die Files hochgeladen; das kernel.img und die modules_und_firmware.tar
0. Anbringen des 19 Zoll Touch Kits an den Monitor mit transparentem doppelseitigem Montageband
– Bitte das Touch vorher testen, es muss richtig herum montiert werden
1. Herunterladen des aktuellen Wheezy Images und brennen auf SD Karte via win32diskimage
2. Starten des RPi, Erweitern des Speichers der SD card, ssh aktivieren und rebooten
3. Für die Installation des WLAN Adapters habe ich diesen Guide verwendet
4. Installation der aktuellen Firmware mit den hexx skripten von hier
5. Installtion von Ubuntu 14 auf einer virtual box VM zum erstellen des Kernels
– Ich habe „git-core gcc-4.7-arm-linux-gnueabi“ verwendet, die Pfade müssen in der folgenden Anleitung entsprechend angepasst werden
– Kernel erstellt wie hier beschrieben
– Kopieren des Kernels von der Ubuntu VM auf den RPI (/boot/kernel.img überschreiben)
– Packen des „modules“ und „firmware“ Ordners aus der VM in ein tar archiv und übertragung via SCP an den RPI (Beim Packen die symlinks ignorieren)
– Enternen von /lib/firmware/ und /lib/modules/ auf dem RPI
– Kopieren der Verzeichnisse aus der tar nach /lib/firmware/ und /lib/modules/ (sudo cp -a)
– Reboot des RPi
– Die WLAN Firmware muss erneut installiert werden: „sudo apt-get install –reinstall firmware-ralink“
6. USB Touch Controller mit dem RPi verbinden
7. Das Touch Screen via xinput_calibrator kalibrieren, ich haben den letzten Teil von diesem Guide verwendet
Bewegungserkennung und Kamera
1. Kamera verbinden und via raspi-config aktivieren
2. motion via „sudo apt-get install motion“ installieren (diese Version wird nicht verwendet wir benötigen aber teile aus dem setup)
3. motion-mmal installieren (verbesserte motion version)
– Hier gibt es eine Installationsanleitung
– Startscript für motion im pi home erstellen (motion-start.sh), chmod +X setzen
– Autostart von motion via „sh /home/pi/motion-start.sh &“ in /etc/rc.local
– Erstellen des Script für die Bewegungserkennung und das an / ausschalten des monitors im home des Benutzers motion (screen.sh), chmod +X und owner auf den user motion setzen
– Für das Script sudo chmod u+s /bin/chvt setzen um dem Benutzer zu erlauben die Anzeige beim Anschalten des Monitors zu aktualisieren
– Anpassen der Konfiguration (motion-mmalcam.conf) für die Bewegungserkennung
Setup Iceaweasel und G Kalender
1. Installation des Browsers und Autostart (in raspi-config start der grafischen oberfläche + auto login auswählen)
– Anleitung zur Installation und Konfiguration
2. Für ein On Screen Keyboard habe ich folgendes addOn verwendet VKeyBoard
Skripte
Aktualisiertes Script um dem Monitor am Respberry Pi mit der Bewegungserkennung an und abzuschalten. Das enthaltene Script hat einen Bug.
Achtung! Da das Script unter dem Benutzer Motion ausgeführt wird müssen die Rechte auf „chvt“ geändert werden: „sudo chmod u+s /bin/chvt“
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash if [ "$1" == 'on' ]; then /opt/vc/bin/tvservice -p ; chvt 6; chvt 7 /usr/bin/xrefresh -d :0 sudo su pi -c "echo 'Switched Screen ON!' | wall" fi if [ "$1" == 'off' ]; then /opt/vc/bin/tvservice -o echo 'Switched Screen OFF!' | wall fi |
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 28 29 30 |
# Threshold for number of changed pixels in an image that # triggers motion detection (default: 1500) #i used higher value because i have a lot of mirrors an reflections in this room and dont want to detect every single reflection threshold 7000 # Automatically tune the threshold down if possible (default: off) # i dont want to tune it as mentioned before threshold_tune off # Noise threshold for the motion detection (default: 32) noise_level 32 # Automatically tune the noise threshold (default: on) noise_tune on # Ignore sudden massive light intensity changes given as a percentage of the picture # area that changed intensity. Valid range: 0 - 100 , default: 0 = disabled # set to 40 to avoid to turn on the screen by putting on the light in another room lightswitch 40 # Event Gap is the seconds of no motion detection that triggers the end of an event. # An event is defined as a series of motion images taken within a short timeframe. # Recommended value is 60 seconds (Default). The value -1 is allowed and disables # events causing all Motion to be written to one single movie file and no pre_capture. # If set to 0, motion is running in gapless mode. Movies don't have gaps anymore. An # event ends right after no more motion is detected and post_capture is over. # -> Screen stays on for 300 seconds event_gap 300 |
To Do
- Verkabelung anpassen
- Ein schönes Gehäuse für den Monitor basteln
- 433MHz Home Automation Funktionen hinzufügen