Python GPIO Lasermaze Nachbau

besttuned

Cadet 2nd Year
Registriert
Mai 2010
Beiträge
31
Hallo Leute,

ich beschäftige mich in meinem Urlaub etwas mehr mit meinem Raspberry Pi und dessen GPIO Schnittstelle. Ich möchte dabei ein Lasermaze von dieser Seite nachbauen -> https://www.raspberrypi.org/learning/laser-tripwire/worksheet/

Dabei werde ich aber keine besonderen Light Sensors, die einen Wert ausgeben, sondern einfache Photozellen, die den Stromkreis schließen oder öffnen. Nachdem ich mir nun den "sehr" einfachen Code angeschaut habe interessiert mich eine Frage auf die ich auf der schnelle keine Antwort finden konnte.

In dem Beispiel wird ein Buzzer angeschlossen, der akustisch ein Signal ausgiebt. Ich möchte bei meinem Lasermaze aber gerne die Laser bei Unterbrechung des Kontakts kurz und schnell aufblicken lassen. Dazu müsste Python aber die allgemeine Programmroutine verlassen, da das aufblicken ja wieder den Light Sensor triggert. Es müsste also die main Funktion verlassen werden, in sehr simplen anderen Maschinensprachen geht das mit Goto's, welche aber Python nicht bietet. Frage mich ob es eine andere einfache und simple Lösung gibt...

Code:
  from gpiozero import LightSensor, Buzzer

  ldr = LightSensor(4)  # alter if using a different pin
  buzzer = Buzzer(17)  # alter if using a different pin

  while True:
      if ldr.value < 0.5:  # adjust this to make the circuit more or less sensitive
          buzzer.on()
      else:
          buzzer.off()

Vielen Dank
Ergänzung ()

Ahhh vielleicht hab ich die Lösung schon gefunden, helfen könnte ein Event Handler

GPIO.add_event_detect(channel, GPIO.RISING, callback=my_callback, bouncetime=200)

Über die Callback Funktion kann dann das Blinken realisieren und die Bouncetime sorgt dafür, dass die Callback Funktion nicht immer erneut aufgerufen wird. Könnte eine Lösung sein!
 
Ich hätte zwar keine Antwort für dich, aber selbst auch einen Raspberry Pi und ebenfalls bald Urlaub und das Projekt sieht echt ganz interessant aus. Danke also für den Hinweis darauf. ;)
 
Das Projekt klingt ja interessant. Würdest du irgendwann den Quellcode dazu veröffentlichen z.B. auf gist.github.com ?
 
Zurück
Oben