GPIO-Test

Heute habe ich im Elektronikladen um die Ecke ein paar Elektronikbauteile gekauft, um die Auslösung des Fotos mit einem Hardwaretaster zu testen.

Ich habe jetzt erstmal ein Script geschrieben, mit dem ich einen Eingang abfragen kann und das mich bei Änderungen auf der Konsole benachrichtigt. Hier erstmal das Script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/python
 
import RPi.GPIO as GPIO
import time
 
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
 
input_old = ""
cnt = 0
while 1:
    input_new = GPIO.input(17)
    if input_new == input_old:
        cnt += 1
    else:
        cnt += 1
        print str(input_new) + "  #" + str(cnt)
    input_old = input_new
    time.sleep(0.1)

Ich hatte zuerst in Zeile 17 diesen Eintrag

17
GPIO.setup(17, GPIO.IN)

Das Problem war, dass sich der Status dann ca. alle 10 Sekunden von True auf False bzw. False auf True geändert hat. Durch die Option pull_up_down=GPIO.PUD_DOWN wird der Pin mit False belegt und zeigt bei einem Tasterdruck True an.

Die Ausgabe sieht dann so aus, bei jeder Änderung des Wertes wird eine Ausgabe erzeugt:

pi@srv-cacti /var/www/raspbooth/python $ sudo ./gpio-test-2.py
False  #1
True  #58
False  #60
True  #9708
False  #9710
True  #9773
False  #9781

resetusb auf dem Raspberry Pi compilieren

Wie ich in dem vorherigen Artikel geschrieben habe, habe ich für die Ansteuerung meiner Kamera auf dem Raspberry Pi eine Möglichkeit gesucht die USB-Ports zurückzusetzen. Über Google bin ich dann auf einen Post von Benjamin Close gestoßen der eine Umsetzung in C beschrieben hat.

Um den Quelltext auf dem Raspberry zu compilieren müsst ihr so vorgehen:

Eine Datei resetusb.c erstellen und den Quelltext von der Seite einfügen.

Danach könnt ihr den Compiler starten

gcc -o resetusb resetusb.c -lusb

Falls eine Fehlermeldung auftritt, dass die Datei usb.h nicht gefunden wurde, dann muss erst noch libusb-dev installiert werden:

sudo apt-get install libusb-dev

Wenn die Datei fertig ist, kann sie mit ./resetusb aufgerufen werden.

pi@srv-cacti /var/www/raspbooth/python $ ./resetusb
reset 0xeac048 -1 ()
reset 0xead140 -1 ()
reset 0xeae230 -1 ()

Raspberry Pi als Fotobooth

Nachdem ich mir vor zwei Wochen einen Raspberry Pi zugelegt habe und ihn momentan als kleinen Webserver mit Cacti bei mir im Netz laufen habe, habe ich jetzt nach einer weiteren Verwendung gesucht. Ich habe schon seit längerem überlegt, mir eine Fotobooth zu bauen.

Am Ende soll das so aussehen:

  • Steuerung der Kamera (Canon EOS 450D) mit dem Raspberry
  • Anzeige der Fotos auf einem Monitor in der Fotobooth
  • Auslösung der Kamera am liebsten über einen Knopf an der Vorderseite der Box

Als Addon habe ich mir noch überlegt, dass ich am Raspberry vielleicht einen Fotodrucker zum laufen bekomme, dann könnten die Fotos direkt ausgedruckt werden.

Momentan bastele ich an den Scripten für die Steuerung. Ich hatte das schon in Perl laufen, habe mir jetzt aber überlegt es in Python zu schreiben.