In diesem Tutorial möchte ich den Aufbau und die Benutzung einer kleinen Infrarot Lichtschranke zeigen, welche ein Signal gibt, sobald die Lichtschranke unterbrochen wird. Dadurch, dass beide Lichtschranken hintereinander durchfahren werden, kann die Geschwindigkeit gemessen werden.
Zubehör
- IR Sender & Empfänger (ich benutze diese)
- Jumper Kabel
- Widerstände (470Ω und 10kΩ)
Aufbau
Sobald die Lichtschranke unterbrochen wird, soll ein positives Signal gesendet werden, ansonsten ein negatives (0). Dazu verwende ich einen Pull-Up Widerstand, wobei anstelle des Schalters der IR Empfänger (schwarz) ist.
Sobald du die Schaltung aufgebaut hast, sollte die LED bereits aufleuchten, sobald die Lichtschranke geschlossen wird (z.B. Finger dazwischen).
Geschwindigkeit messen
Damit die Geschwindigkeit nun auch gemessen werden kann, wird die Zeit gemessen, die vergeht, bis beide Lichtschranken durchlaufen werden. Sollte der Abstand nicht genau 10cm sein, solltest du dies anpassen.
sudo nano distance_test.py
Und füge folgenden Code ein
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 31 32 33 34 |
#!/usr/bin/python import time import RPi.GPIO as GPIO GPIO_BEGIN_PIN = 4 GPIO_END_PIN = 17 DISTANCE = 10.0 # (in cm) Anpassen, falls notwendig TIMEOUT = 5 # sek GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) if __name__ == '__main__': GPIO.setup(GPIO_BEGIN_PIN, GPIO.IN) GPIO.setup(GPIO_END_PIN, GPIO.IN) start_time, end_time = 0, 0 while GPIO.input(GPIO_BEGIN_PIN) == GPIO.LOW: time.sleep(0.001) start_time = time.time() end_time = 0 while GPIO.input(GPIO_END_PIN) == GPIO.LOW and time.time()-start_time < TIMEOUT: time.sleep(0.001) else: if time.time()-start_time >= TIMEOUT: print "Timeout" exit() else: end_time = time.time() speed = DISTANCE / (end_time - start_time) print "Geschwindigkeit: %.2f cm/s" % speed |
Mit STRG+O und STRG+X speichern und beenden. Nun können wir es starten.
sudo python distance_test.py
Funktioniert das Skript nicht richtig, liegt dies höchstwahrscheinlich daran, dass die Lichtschranken nicht genau genug aufeinander zeigen und so etwas Strom fließen kann, dieser aber im nicht im akzeptierten Bereich liegt und es nicht bestimmt ist, ob 0 oder 1.
Abschießend noch ein Bild meines Aufbaus:
193 Kommentare
wie müsste man das Script verändern damit es nicht die Geschwindigkeit misst sondern einfach die Unterbrechung mitsamt datum und Uhrzeit anzeigt(eine kleine Alarmanlage?)?
Anstelle des Codes ab Zeile 16:
Ist natürlich nur ein Beispiel, du kannst es nutzen wie du magst. Du brauchst eigentlich auch die zweite Lichtschranke nicht, wenn du keine Geschwindigkeit messen willst, sondern nur einen Auslöser (
GPIO_END_PIN
kannst du also weg lassen).Hallo Felix,
erstmal danke für das tolle Tutorial. Ich bin in sachen Linux und Raspberry Pi noch Anfänger.
Auf der Suche nach einer Lichtschrankensteuerung bin ich auf deine Seite gestossen.
Gleich hab ich die elektronische Schaltung nachgebaut und sie funktioniert auch so weit.
Jedoch hab ich mit deinem Skript ein paar kleine Probleme:
1. ist in deinem Skript „end_time“ nicht definiert. Diesen Fehler zu finden war noch relativ einfach. Hab einfach Zeile 16 bis 19 kopiert und mit „end_time“ und „GPIO_END_PIN“ modifiziert.
2. Jedoch hab ich noch einen SytaxError in Zeile 21 und da komm ich nicht weiter. Bin ich zu blöd oder hast du da wirklich einen Fehler beim „=“ Zeichen.
Danke und viele Grüsse
Olli
Hallo Olli,
da ist beim editieren vorhin wohl etwas schief gegangen. Ich habe den Code jetzt nochmal eingefügt und verbessert.
LG Felix
Für was ist Zeile 14?
Wenn ich dann diese Zeile weg lasse, kommt sofort nach einer Aktivierung der Lichtschschranke (egal welche zuerst) ein „Timeout“. Vieleicht mein Fehler beim Abtippen?
Die Zeile
if __name__ == '__main__':
sagt, dass der folgende Code nur ausgeführt werden soll, wenn das Skript direkt gestartet wird (sudo python skript.py
) und nicht, wenn es z.B. in anderen Skripten eingebunden wurde.Ohne diese Zeile sollte es dennoch funktionieren (aber die Tabs müssen angepasst werden, da Python ja ohne Klammern auskommt, daher die Whitespaces/Tabs nimmt).
Vielen Dank!!!!!!!!!!!!!!
Jetzt gehts. :-))
Das mit den Tabs hab ich nicht gewusst. Mit Halbwissen sollte man halt nicht an sowas gehen. 😉
Jetzt bin ich wieder um einen grossen Schritt weiter.
Darf ich dich in den nächsten Tagen nochmal belästigen, falls ich mit meinem Prog noch fragen habe?
Vielen Dank schon mal und viele Grüsse
Olli
Hi Olli,
schön dass es nun klappt. Klar, du kannst jederzeit fragen, wenn etwas unklar ist 🙂
LG Felix
ok vielen dank auch für den anderen artikel!
könntest du ein beitrag machen wo es um die ansteuerung eines servos geht?
Gerne doch. Wenn Interesse besteht und ich ein wenig mehr Zeit finde, kann ich auch ein Tutorial zu Servos machen, muss aber erst einmal welche bestellen.
ok sehr gut kannst du mir dann eine E-mail schicken wenn es online ist?
Ich versuche dran zu denken 🙂
Bei mir funktioniert das ganze nur, wenn ich den raum abdunkle und dann z.b. eine Glühlampe anschalte. Bei Tageslicht löst der Empfänger immer sofort aus. Ist das bei dir auch so? Den eigentlich sollte die maximale Wellenlänge bei Tageslicht bei ca 550 nm liegen (laut Wikipedia).
Hast du mal einen größeren Widerstand ausprobiert?
Bei mir funktioniert das ganze nur, wenn ich den raum abdunkle und dann z.b. eine Glühlampe anschalte. Bei Tageslicht löst der Empfänger immer sofort aus. Ist das bei dir auch so? Den eigentlich sollte die maximale Wellenlänge bei Tageslicht bei ca 550 nm liegen (laut Wikipedia).
Hast du mal einen größeren Widerstand ausprobiert?
Hi und vielen Dank vorab für den tollen Beitrag.
Leider bekomme ich es mit meinem Rasberry nicht hin die Lichtschranke nachzubauen. Der GPIO zeigt immer den gleichen Status an. Allerdings kommen bei mir auch nur 3,2 V am GPIO an, ist das evtl. zu wenig?
Freue mich schon auf deine Antwort, da wir endlich unsere Kicker Turnament Anlage in betrieb nehmen wollen 😉
Danke schonmal vorab
Frank
Hey, erstmal vielen Dank für das Lob 🙂
3.2V sollten eigentlich kein Problem sein, der Schwellwert liegt deutlich drunter. Wie weit sind die Lichtschranken voneinander entfernt (Sender zu Empfänger)? Und hast du sie mal auf Funktionalität überprüft (am besten ohne Pi mittels einer kleinen Testschaltung)?
Hallo Felix,
Erst mal danke für das Tutorial super Arbeit da ich nicht mehr der Jüngste bin und auch Anfänger freue ich mich natürlich das ich was zum Nachbauen finde und dazu lerne.
Nun versuche ich schon seit Tagen mir auch die Zeit anzeigen zu lassen Zeit = time.time()
print time.strftime(‚%Y-%m-%d %H:%M:%S‘, time.localtime(zeit))es kommen nur Fehlermeldung .
Ich würde gerne noch eine 2 Lichtschranke einbauen so das 2 zeiten gemessen werden mit der 1 Lichtschranke die zeit starten
Und dan mit den 2 hintern einzel die zeit messen .
Bedanke mich schon mal ich würde dir auch eine kleine spende für deine Projekte hinterlassen .
Hallo Uwe,
ich weiß nicht, ob es ein Tippfehler ist, aber du schreibst die Variable Zeit einmal groß und einmal klein. Die müssten gleich sein (Python unterscheidet zwischen Groß/Kleinschreibung). Ansonsten sollte der Aufruf stimmen.
eine Alternative wäre
datetime
:LG Felix
Hallo
ich bin gerade an der Zeile „print(time.strftime(‘%Y-%m-%d %H:%M:%S’, time.localtime(zeit)))“ zerschellt! Nach einiger ist mir aufgefallen, dass Windows die einfachen Anführungszeichen anders darstellt (links geneigt, rechts geneigt, oben und unten). Durch copy&paste ergibt das Probleme! Anführungszeichen im Editor tippen und alles ist OK
Hi und vielen Dank vorab für den tollen Beitrag.
Leider bekomme ich es mit meinem Rasberry nicht hin die Lichtschranke nachzubauen. Der GPIO zeigt immer den gleichen Status an. Allerdings kommen bei mir auch nur 3,2 V am GPIO an, ist das evtl. zu wenig?
Freue mich schon auf deine Antwort, da wir endlich unsere Kicker Turnament Anlage in betrieb nehmen wollen 😉
Danke schonmal vorab
Frank
Hey, erstmal vielen Dank für das Lob 🙂
3.2V sollten eigentlich kein Problem sein, der Schwellwert liegt deutlich drunter. Wie weit sind die Lichtschranken voneinander entfernt (Sender zu Empfänger)? Und hast du sie mal auf Funktionalität überprüft (am besten ohne Pi mittels einer kleinen Testschaltung)?
Hallo Felix,
Erst mal danke für das Tutorial super Arbeit da ich nicht mehr der Jüngste bin und auch Anfänger freue ich mich natürlich das ich was zum Nachbauen finde und dazu lerne.
Nun versuche ich schon seit Tagen mir auch die Zeit anzeigen zu lassen Zeit = time.time()
print time.strftime(‚%Y-%m-%d %H:%M:%S‘, time.localtime(zeit))es kommen nur Fehlermeldung .
Ich würde gerne noch eine 2 Lichtschranke einbauen so das 2 zeiten gemessen werden mit der 1 Lichtschranke die zeit starten
Und dan mit den 2 hintern einzel die zeit messen .
Bedanke mich schon mal ich würde dir auch eine kleine spende für deine Projekte hinterlassen .
Hallo Uwe,
ich weiß nicht, ob es ein Tippfehler ist, aber du schreibst die Variable Zeit einmal groß und einmal klein. Die müssten gleich sein (Python unterscheidet zwischen Groß/Kleinschreibung). Ansonsten sollte der Aufruf stimmen.
eine Alternative wäre
datetime
:LG Felix
Hallo
ich bin gerade an der Zeile „print(time.strftime(‘%Y-%m-%d %H:%M:%S’, time.localtime(zeit)))“ zerschellt! Nach einiger ist mir aufgefallen, dass Windows die einfachen Anführungszeichen anders darstellt (links geneigt, rechts geneigt, oben und unten). Durch copy&paste ergibt das Probleme! Anführungszeichen im Editor tippen und alles ist OK
Testschaltung habe ich probiert funktioniert auch. Ich habe es jetzt ein wenig abgeändert und den Spanungsteiler geändert. 5 V sind jetzt die Spannungsversorgung und mit 24,7 kOhm als Vorwiederstand bekomme ich dann 3,4 V geliefert. Jetzt gehts auch mit dem GPIO.
Trotzdem Danke
Testschaltung habe ich probiert funktioniert auch. Ich habe es jetzt ein wenig abgeändert und den Spanungsteiler geändert. 5 V sind jetzt die Spannungsversorgung und mit 24,7 kOhm als Vorwiederstand bekomme ich dann 3,4 V geliefert. Jetzt gehts auch mit dem GPIO.
Trotzdem Danke
das hab ich nicht gesehen wen du es sagt ja das ist richtig
ich hatte den obrigen txt genommen
da ist es schon groß drin ich danke die für die schnelle anwort
das hab ich nicht gesehen wen du es sagt ja das ist richtig
ich hatte den obrigen txt genommen
da ist es schon groß drin ich danke die für die schnelle anwort
Hi,
super Tutorials auf der Seite.
Ich würde auch gerne nur eine Lichtschranke (so wie oben im Quelltext in den Kommentaren) bauen. Jedoch habe ich keine LEDS. Wie muss ich umstecken, sodass es trotzdem funktioniert? Bin nicht bewandert in Sachen Schaltungen. 🙁
Einfach die Widerstände und alle Kabel, die zu den LEDs führen (und nicht von den IR Dioden genutzt werden) nicht verbinden. Den Code solltest du dann auch ggf. so anpassen, wie du ihn möchtest.
Hi,
super Tutorials auf der Seite.
Ich würde auch gerne nur eine Lichtschranke (so wie oben im Quelltext in den Kommentaren) bauen. Jedoch habe ich keine LEDS. Wie muss ich umstecken, sodass es trotzdem funktioniert? Bin nicht bewandert in Sachen Schaltungen. 🙁
Einfach die Widerstände und alle Kabel, die zu den LEDs führen (und nicht von den IR Dioden genutzt werden) nicht verbinden. Den Code solltest du dann auch ggf. so anpassen, wie du ihn möchtest.
Hallo,
ich bin auf der Suche nach genau diesem Aufbau nur in etwas größer. Ich soll für ein Projekt auf der Arbeit eine Geschwindigkeitsanzeige installieren. Jetzt meine Frage:
Kann man das alles auch in größer realisieren, so wie oben?
Mit größeren Lichtschranken (Reflexions-Lichttaster von Pepperl & Fuchs) und einer LED-Großanzeige?
Grüße
Hey,
je nachdem wie genau die Messung sein muss, sollte es mit entsprechenden Lichtschranken möglich sein. Ich würde dann aber auf eine Hardware nahe Sprache wie C oder C++ zurückgreifen und auch möglichst kurze Verbindungen nehmen, damit die Genauigkeit erhöht wird. Die Ansteuerung der LED Anzeigen (dazu gibt es hier auch ein paar Tutorials) sollte mit Python etwas einfacher sein und ein paar Millisekunden Verzögerung sollten dabei akzeptabel sein.
LG Felix
Hallo,
ich bin auf der Suche nach genau diesem Aufbau nur in etwas größer. Ich soll für ein Projekt auf der Arbeit eine Geschwindigkeitsanzeige installieren. Jetzt meine Frage:
Kann man das alles auch in größer realisieren, so wie oben?
Mit größeren Lichtschranken (Reflexions-Lichttaster von Pepperl & Fuchs) und einer LED-Großanzeige?
Grüße
Hey,
je nachdem wie genau die Messung sein muss, sollte es mit entsprechenden Lichtschranken möglich sein. Ich würde dann aber auf eine Hardware nahe Sprache wie C oder C++ zurückgreifen und auch möglichst kurze Verbindungen nehmen, damit die Genauigkeit erhöht wird. Die Ansteuerung der LED Anzeigen (dazu gibt es hier auch ein paar Tutorials) sollte mit Python etwas einfacher sein und ein paar Millisekunden Verzögerung sollten dabei akzeptabel sein.
LG Felix
Hallo Felix,
zuerst einmal Danke für das Tutorial.
Ich muss im Zuge einer Berufschulprojektarbeit eine derartige Konstruktion aufbauen und wollte mich erkundigen, ob ich dich im Zweifelsfall per Email um Rat fragen könnte. Falls ja, einfach schreiben =)
Grüße
Hey LeoZ,
Klar kannst du gerne machen 🙂
LG Felix
Hallo Felix,
zuerst einmal Danke für das Tutorial.
Ich muss im Zuge einer Berufschulprojektarbeit eine derartige Konstruktion aufbauen und wollte mich erkundigen, ob ich dich im Zweifelsfall per Email um Rat fragen könnte. Falls ja, einfach schreiben =)
Grüße
Hey LeoZ,
Klar kannst du gerne machen 🙂
LG Felix
Hallo Felix,
die Konsole gibt beim ausführen deines Scripts die Fehlermeldung
File „distance_test.üy“, line 23
(…)
SyntaxError: invalid syntax
aus.
Irgendeine Idee woran das liegen könnte?
Grüße 🙂
Hey,
folgendes: Zum einen hast du die Datei falsch benannt („.üy“) und zum zweiten habe ich den Code aktualisiert, da WordPress jedes mal die Leerzeichen entfernt (und Leerzeichen sind in Python wichtig).
LG Felix
Hallo Felix,
die Konsole gibt beim ausführen deines Scripts die Fehlermeldung
File „distance_test.üy“, line 23
(…)
SyntaxError: invalid syntax
aus.
Irgendeine Idee woran das liegen könnte?
Grüße 🙂
Hey,
folgendes: Zum einen hast du die Datei falsch benannt („.üy“) und zum zweiten habe ich den Code aktualisiert, da WordPress jedes mal die Leerzeichen entfernt (und Leerzeichen sind in Python wichtig).
LG Felix
Hey,
den Dateinamen habe ich nur hier falsch eingetippt 🙂
ist der code oben jetzt aktualisiert oder wie darf ich das verstehen. Ich übernehme den Code in ein Textdokument, nenne es in .py um und führe es aus.
Sollte das funktionieren?
PS: in der Codierung für eine Alarmanlage meint „ab zeile 16“ alles unter Zeile 16 wird ersetzt oder AUCH zeile 16?
LG Leo
Genau, grad den jetzigen Code (mit Einrückungen) mit dem davor ersetzen. Der Code war zwar schon davor richtig, aber WordPress ersetzt gerne mal mehrere Leerzeichen hintereinander, daher waren die Einrückungen falsch. Vor Zeile 14 waren aber keine nöig, daher erst ab:
if __name__ == '__main__':
Hey,
den Dateinamen habe ich nur hier falsch eingetippt 🙂
ist der code oben jetzt aktualisiert oder wie darf ich das verstehen. Ich übernehme den Code in ein Textdokument, nenne es in .py um und führe es aus.
Sollte das funktionieren?
PS: in der Codierung für eine Alarmanlage meint „ab zeile 16“ alles unter Zeile 16 wird ersetzt oder AUCH zeile 16?
LG Leo
Genau, grad den jetzigen Code (mit Einrückungen) mit dem davor ersetzen. Der Code war zwar schon davor richtig, aber WordPress ersetzt gerne mal mehrere Leerzeichen hintereinander, daher waren die Einrückungen falsch. Vor Zeile 14 waren aber keine nöig, daher erst ab:
if __name__ == '__main__':
das ist jetzt der Code den ich verwende, wenn ich ihn ausführe passiert eigentlich garnichts, auch wenn ich beide lichtschranken unterbreche. Ich will an der Stelle nur Datum und Uhrzeit einer Unterbrechung, nicht die Geschwindigkeit mitbekommen und habe deshalb den Code aus einem deiner Kommentare ergänzt. Der Schaltkreis ist identlich mit deinem.
Frage: brauche ich einen AD-wandler wenn ich ein digitales Signal an beispielsweise eine Alarmanlage weiterleiten will?
beste Grüße,
Leo
Bei dir fehlen die Einrückungen nach
if __name__ == '__main__':
vor der while Schleife, so hat die If Abfrage keine wirkliche Auswirkung und du kannst sie auch weglassen (oder eben einrücken).Wie weit sind die IR Dioden voneinander entfernt? Evtl. liegt es daran, dass kein Signal ankommt. Wenn du nur eine Schranke hast, brauchst du
GPIO_END_PIN
nicht.bzgl Alarmanlage lässt sich das nicht so einfach sagen: Je nachdem, ob sie ein digitales/analoges Signal erwartet bzw wie hoch die Spannung ist. Ggf. könntest du ein Relais benutzen.
PS: Überprüfe deine Einrückungen alle mal. Ich bin mir nicht sicher ob es an WordPress liegt oder du gekürzt hast, aber z.B. die letzte while Schleife ist anders eingerückt, als das print davor.
LG Felix
das ist jetzt der Code den ich verwende, wenn ich ihn ausführe passiert eigentlich garnichts, auch wenn ich beide lichtschranken unterbreche. Ich will an der Stelle nur Datum und Uhrzeit einer Unterbrechung, nicht die Geschwindigkeit mitbekommen und habe deshalb den Code aus einem deiner Kommentare ergänzt. Der Schaltkreis ist identlich mit deinem.
Frage: brauche ich einen AD-wandler wenn ich ein digitales Signal an beispielsweise eine Alarmanlage weiterleiten will?
beste Grüße,
Leo
Bei dir fehlen die Einrückungen nach
if __name__ == '__main__':
vor der while Schleife, so hat die If Abfrage keine wirkliche Auswirkung und du kannst sie auch weglassen (oder eben einrücken).Wie weit sind die IR Dioden voneinander entfernt? Evtl. liegt es daran, dass kein Signal ankommt. Wenn du nur eine Schranke hast, brauchst du
GPIO_END_PIN
nicht.bzgl Alarmanlage lässt sich das nicht so einfach sagen: Je nachdem, ob sie ein digitales/analoges Signal erwartet bzw wie hoch die Spannung ist. Ggf. könntest du ein Relais benutzen.
PS: Überprüfe deine Einrückungen alle mal. Ich bin mir nicht sicher ob es an WordPress liegt oder du gekürzt hast, aber z.B. die letzte while Schleife ist anders eingerückt, als das print davor.
LG Felix
Reicht es, nach
if __name__== '__main__':
alles mit einem Tab weiter einzurücken – bzw wie weit reicht die if-verzweigung also bis zu welchem Befehl muss ich per Tab einrücken?Die Dioden sind ca 1.5-2cm außeinander. Davon habe ich zwei paare mit Quelle und Empfänger wie in deinem Beispiel.
Ohne AD-Wandler müsste die Konsole auf dem Pi trotzdem eine Unterbrechung anzeigen, wenn ich das script ausführe und BEIDE Lichtschranken unterbreche, richtig?
Reicht es, nach
if __name__== '__main__':
alles mit einem Tab weiter einzurücken – bzw wie weit reicht die if-verzweigung also bis zu welchem Befehl muss ich per Tab einrücken?Die Dioden sind ca 1.5-2cm außeinander. Davon habe ich zwei paare mit Quelle und Empfänger wie in deinem Beispiel.
Ohne AD-Wandler müsste die Konsole auf dem Pi trotzdem eine Unterbrechung anzeigen, wenn ich das script ausführe und BEIDE Lichtschranken unterbreche, richtig?
Hallo Felix,
status ist wie folgt, das Skript funktioniert, gibt aber eine permanente Unterbrechung also geschlossenen Stromkreis an. Die Lichtschranken sind allerdings ununterbrochen und auf den LEDs kein Strom. Die Konsole gibt im Millisekundentakt die Zeit und das Datum aus. Habe ich einen Steck-Fehler am Schaltkreis so dass auf den PINs permanent Strom anliegt, oder reagieren die PINS laut dem Script einfach falsch herum, sprich Datum/Zeit werden bei KEINEM Strom an den PINS ausgegeben?
Sry für die vielen Posts,
Grüße, Leo
Hey Leo,
bzgl. Python und den Einrückungen solltest du dir evtl. die Syntax von Python ansehen: Statt Klammern wird in Python der Code, der z.B. nach einem if ausgeführt werden soll, eine Ebene (sei es ein Tab, ein/zwei/beliebig viele Leerzeichen) eingerückt.
Wenn das Skript sonst soweit funktioniert, ist das ja schon mal gut. Da ich deinen Schaltplan nicht kenne, kann ich dir nicht sagen, ob du evtl. etwas falsch verbunden hast, aber das hört sich sehr danach an, dass „zu viel“ Strom durch gelangt und dadurch dauerhaft ein Signal ankommt. Du könntest einen größeren Widerstand ausprobieren (oder Poti zum drehen) und schauen, ob das hilft. Wenn nicht sehen wir weiter.
LG Felix
Hallo Felix,
status ist wie folgt, das Skript funktioniert, gibt aber eine permanente Unterbrechung also geschlossenen Stromkreis an. Die Lichtschranken sind allerdings ununterbrochen und auf den LEDs kein Strom. Die Konsole gibt im Millisekundentakt die Zeit und das Datum aus. Habe ich einen Steck-Fehler am Schaltkreis so dass auf den PINs permanent Strom anliegt, oder reagieren die PINS laut dem Script einfach falsch herum, sprich Datum/Zeit werden bei KEINEM Strom an den PINS ausgegeben?
Sry für die vielen Posts,
Grüße, Leo
Hey Leo,
bzgl. Python und den Einrückungen solltest du dir evtl. die Syntax von Python ansehen: Statt Klammern wird in Python der Code, der z.B. nach einem if ausgeführt werden soll, eine Ebene (sei es ein Tab, ein/zwei/beliebig viele Leerzeichen) eingerückt.
Wenn das Skript sonst soweit funktioniert, ist das ja schon mal gut. Da ich deinen Schaltplan nicht kenne, kann ich dir nicht sagen, ob du evtl. etwas falsch verbunden hast, aber das hört sich sehr danach an, dass „zu viel“ Strom durch gelangt und dadurch dauerhaft ein Signal ankommt. Du könntest einen größeren Widerstand ausprobieren (oder Poti zum drehen) und schauen, ob das hilft. Wenn nicht sehen wir weiter.
LG Felix
betrieben wird das ganze ja vom 3.3V PIN am RasPi, ansonsten habe ich dieselben Wiederstände wie du verwendet (470Ohm, 10KOhm). Woher sollte der Unterschied zu deinem Beispiel kommen? Welche soll ich versuchen zu ersetzen und durch einen wie großen?
LG Leo 🙂
Benutzt du auch die selben IR Dioden (meine waren von Pollin)? Sollte zwar auch mit anderen IR Lichtschranken funktionieren, aber evtl. haben diese andere Eigenwiederstände. Falls du einen Poti kannst du den mal statt dem Widerstand einsetzen und schauen, ob sich bei Verändern des Wertes etwas tut.
LG Felix
betrieben wird das ganze ja vom 3.3V PIN am RasPi, ansonsten habe ich dieselben Wiederstände wie du verwendet (470Ohm, 10KOhm). Woher sollte der Unterschied zu deinem Beispiel kommen? Welche soll ich versuchen zu ersetzen und durch einen wie großen?
LG Leo 🙂
Benutzt du auch die selben IR Dioden (meine waren von Pollin)? Sollte zwar auch mit anderen IR Lichtschranken funktionieren, aber evtl. haben diese andere Eigenwiederstände. Falls du einen Poti kannst du den mal statt dem Widerstand einsetzen und schauen, ob sich bei Verändern des Wertes etwas tut.
LG Felix
Hallo Felix,
ich habe einen ähnlichen Aufbau wie du und habe daher versucht deinen Code für mich anzupassen. Ich bekomme aber selbst ohne Anpassung berereits einen „Invalid Syntax“-Error bei der ersten while-Bedingung. Leider kenne ich mich mit Python und GPIOs kaum aus. Dürfte ich dich bitten einen kurzen Blick darauf zu werfen? Vielleicht ist der Fehler ja total simpel und ich sehe ihn einfach nicht.
Vielen Dank für deine Mühe!
Torsten
na das mit dem Code hat ja super geklappt 😀 wie macht ihr das mit den grauen Kästchen? Auf jeden Fall sind die Einrückungen richtig, die habe ich oft genug überprüft
Einfach mit
<pre>Text</pre>
😉Zwei Fehler:
while GPIO.input(LSein) == GPIO.LOW
da fehlt der Doppelpunkt am Ende.and time()-start_time = TOUT:
da müssen zwei GLeichheitsszeichen hin:and time()-start_time == TOUT:
Außerdem ist in der zweiten While Schleife ein
else
, aber entweder fehlt einif
oder die Einrückung ist falsch.LG Felix
Oh danke, auf den Doppelpunkt wäre ich nie gekommen.
Bei der zweiten while sind beim Kopieren anscheinen ein paar Zeilen verloren gegangen, eigentlich sieht das so bei mir aus:
Ja, liegt am Kopieren, war wieder weg. Habe es jetzt hoffentlich richtig von Hand eingefügt.
Werde deine Korrektur gleich morgen früh mal probieren. Vielen Dank schonmal!
Hallo Felix,
ich habe einen ähnlichen Aufbau wie du und habe daher versucht deinen Code für mich anzupassen. Ich bekomme aber selbst ohne Anpassung berereits einen „Invalid Syntax“-Error bei der ersten while-Bedingung. Leider kenne ich mich mit Python und GPIOs kaum aus. Dürfte ich dich bitten einen kurzen Blick darauf zu werfen? Vielleicht ist der Fehler ja total simpel und ich sehe ihn einfach nicht.
Vielen Dank für deine Mühe!
Torsten
na das mit dem Code hat ja super geklappt 😀 wie macht ihr das mit den grauen Kästchen? Auf jeden Fall sind die Einrückungen richtig, die habe ich oft genug überprüft
Einfach mit
<pre>Text</pre>
😉Zwei Fehler:
while GPIO.input(LSein) == GPIO.LOW
da fehlt der Doppelpunkt am Ende.and time()-start_time = TOUT:
da müssen zwei GLeichheitsszeichen hin:and time()-start_time == TOUT:
Außerdem ist in der zweiten While Schleife ein
else
, aber entweder fehlt einif
oder die Einrückung ist falsch.LG Felix
Oh danke, auf den Doppelpunkt wäre ich nie gekommen.
Bei der zweiten while sind beim Kopieren anscheinen ein paar Zeilen verloren gegangen, eigentlich sieht das so bei mir aus:
Ja, liegt am Kopieren, war wieder weg. Habe es jetzt hoffentlich richtig von Hand eingefügt.
Werde deine Korrektur gleich morgen früh mal probieren. Vielen Dank schonmal!
Also irgendwie wollen die Zeilen nicht, sind schon wieder verschwunden 😀 Ich habe es aber praktisch oben abgeschrieben, da ist noch das erste else und if mit print(„Timeout“) vor
Poste es mal auf http://pastebin.com und verlink es hier.
Ich habe mal mein gesamtes Programm reinkopiert: http://pastebin.com/Y7N6cfFx
Ich konnte es leider noch nicht austesten, da das kleinste Zeitintervall bei mir nur 0,01s ist. Kann man das ändern? Sonst ist man bei der Messung mit 0,5m Abstand zwischen den Lichtschranken (leider gegeben, den Abstand kann ich nicht ändern) ja auf 50m/s begrenzt. Ich bräuchte da eher so 1000m/s. Kann ich das kleinste Zeitintervall auf 0.00001s ändern?
Ich muss nicht lange messen, d.h. vor dem Komma reichen ein paar Stellen.
Also irgendwie wollen die Zeilen nicht, sind schon wieder verschwunden 😀 Ich habe es aber praktisch oben abgeschrieben, da ist noch das erste else und if mit print(„Timeout“) vor
Poste es mal auf http://pastebin.com und verlink es hier.
Ich habe mal mein gesamtes Programm reinkopiert: http://pastebin.com/Y7N6cfFx
Ich konnte es leider noch nicht austesten, da das kleinste Zeitintervall bei mir nur 0,01s ist. Kann man das ändern? Sonst ist man bei der Messung mit 0,5m Abstand zwischen den Lichtschranken (leider gegeben, den Abstand kann ich nicht ändern) ja auf 50m/s begrenzt. Ich bräuchte da eher so 1000m/s. Kann ich das kleinste Zeitintervall auf 0.00001s ändern?
Ich muss nicht lange messen, d.h. vor dem Komma reichen ein paar Stellen.
hey ich hab mal eine frage,
für ein projekt hab ich vor die geschwindigkeit beim kickern zu messen (1. lichtscranke beim angreifer und 2. im tor),
wie weit dürfen der sender und der empfänger auseinander sein?
Kommt auf die verwendeten Module an. Bei den hier verwendeten hatte ich bei ca. 5-7cm gute Ergebnisse.
hey ich hab mal eine frage,
für ein projekt hab ich vor die geschwindigkeit beim kickern zu messen (1. lichtscranke beim angreifer und 2. im tor),
wie weit dürfen der sender und der empfänger auseinander sein?
Kommt auf die verwendeten Module an. Bei den hier verwendeten hatte ich bei ca. 5-7cm gute Ergebnisse.
bis jetzt ist der plan die von dir als alternative vorgeschlagenen zu verwenden
http://www.amazon.de/gp/product/B00EFOTJZE?ie=UTF8&linkCode=as2&camp=1634&creative=6738&tag=754-21&creativeASIN=B00EFOTJZE
der abstand währe allerdings deutlich größer(~74cm)
ist das machbar? oder gibts da ein besseren vorschlag deinerseits?
Ich hab mir auch überlegt einen Laser zu verwenden, würde das auch mit einem einfachen fotowiderstand funktionieren?
Hm das kommt auf das Modell an, da müsstest du mal testen. Ich habe so einen großen Abstand nie gebraucht.
Ein Fotowiderstand würde nicht mit Infrarot funktionieren (Umgebungshelligkeit zu hoch), wahrscheinlich aber mit einem Laser (falls das in Frage kommt). Dazu einfach den Fotowiderstand platzieren und den Laser direkt darauf zielen lassen.
bis jetzt ist der plan die von dir als alternative vorgeschlagenen zu verwenden
http://www.amazon.de/gp/product/B00EFOTJZE?ie=UTF8&linkCode=as2&camp=1634&creative=6738&tag=754-21&creativeASIN=B00EFOTJZE
der abstand währe allerdings deutlich größer(~74cm)
ist das machbar? oder gibts da ein besseren vorschlag deinerseits?
Ich hab mir auch überlegt einen Laser zu verwenden, würde das auch mit einem einfachen fotowiderstand funktionieren?
Hm das kommt auf das Modell an, da müsstest du mal testen. Ich habe so einen großen Abstand nie gebraucht.
Ein Fotowiderstand würde nicht mit Infrarot funktionieren (Umgebungshelligkeit zu hoch), wahrscheinlich aber mit einem Laser (falls das in Frage kommt). Dazu einfach den Fotowiderstand platzieren und den Laser direkt darauf zielen lassen.
wenn ich mal dumm fragen darf,
wie sieht den so eine abfrage vom fotowiederstand im python aus? bin selbst erst extremer anfänger
hier mal code: http://pastebin.com/Xn9i0wc8
Am besten mit einem Transistor (Pull-Up oder Pull-Down, je nachdem was dir lieber ist). Du kannst dich dabei an der Schaltung hier orientieren, nur statt Magnetschalter nimmst du einen Fotowiderstand: Überwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
wenn ich mal dumm fragen darf,
wie sieht den so eine abfrage vom fotowiederstand im python aus? bin selbst erst extremer anfänger
hier mal code: http://pastebin.com/Xn9i0wc8
Am besten mit einem Transistor (Pull-Up oder Pull-Down, je nachdem was dir lieber ist). Du kannst dich dabei an der Schaltung hier orientieren, nur statt Magnetschalter nimmst du einen Fotowiderstand: Überwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
erstmal vielen danke für die hilfe,
könntest du mir aber bitte noch sagen ob dieser laser funktioniieren würde?
http://ebay.eu/1l9TYeu
und mir dann noch bitte sagen ob dieser schaltplan funktionieren würde(man sollte sehen das ich ein anfänger bin)
http://imgur.com/BuT17rl
Hallo Martin,
ja das sollte funktionieren (links Laser, rechts Fotowiderstand). Modul sollte in Ordnung sein, kommt allerdings aus China 😀
erstmal vielen danke für die hilfe,
könntest du mir aber bitte noch sagen ob dieser laser funktioniieren würde?
http://ebay.eu/1l9TYeu
und mir dann noch bitte sagen ob dieser schaltplan funktionieren würde(man sollte sehen das ich ein anfänger bin)
http://imgur.com/BuT17rl
Hallo Martin,
ja das sollte funktionieren (links Laser, rechts Fotowiderstand). Modul sollte in Ordnung sein, kommt allerdings aus China 😀
Moin zusammen,
ich bekomme immer diese Fehlermeldung 🙁
Traceback (most recent call last):
File „geschw.py“, line 26, in
if time.time()-start_time >= TIMEOUT:
NameError: name ’start_time‘ is not defined
Die Schaltung an sich funktioniert. Die LED sind dunkel und wenn ich die Lichtschranke unterbreche, leuchtet die jeweilige.
Ich komme nur mit der Fehlermeldung nicht weiter, weil eigentlich start_time definiert ist.
Gruß
Holger
Hat sich aufgeklärt. Die Lichtschranken müssen ja wirklich extrem nah gegenüber stehen. 4cm zwischen Sender und Empfänger waren zu viel.
Gruß
Holger
Moin zusammen,
ich bekomme immer diese Fehlermeldung 🙁
Traceback (most recent call last):
File „geschw.py“, line 26, in
if time.time()-start_time >= TIMEOUT:
NameError: name ’start_time‘ is not defined
Die Schaltung an sich funktioniert. Die LED sind dunkel und wenn ich die Lichtschranke unterbreche, leuchtet die jeweilige.
Ich komme nur mit der Fehlermeldung nicht weiter, weil eigentlich start_time definiert ist.
Gruß
Holger
Hat sich aufgeklärt. Die Lichtschranken müssen ja wirklich extrem nah gegenüber stehen. 4cm zwischen Sender und Empfänger waren zu viel.
Gruß
Holger
Hey, bin am Aufbau, hab alles bei Conrad gekauft. Der Fototransistor hat allerdings 3 pins, was soll ich tun? kannst du mir ein Bild des ganzen Konstrukts schicken?
DANKE
Hey,
schau am besten mal im Datenblatt nach, was die Pins bedeuten.
Hey, ist leider keins dabei 🙁 Kannst du mir mal ein Bild des ganzen Gerätes senden? Hab da so wenig Vorstellung…
Da steht: Linker Pin OUT
Mittlerer Pin: GND
Rechter Pin: VCC
was bedeutet das? Bin schlecht in dem Bereich. Wie weit kann ich die Platine mit IR von dem Raspberry entfernt aufstellen?
Grüße
VCC und GND stehen für die Spannung (Plus und Minus). Ohne Datenblatt ist es aber schwer zu sagen, was du für ein Modul hast. Es könnte eine Art Fototransistor sein oder ein richtiger IR Empfänger. Den Abstand müsstest du durch testen heraus finden.
Hey, das Datenblatt ist verlinkt.
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/184302-da-01-en-IR_RECEIVER_2_7_5_5V_OS_0038K_K.pdf
Bild brauch ich keins, hoffe ich nerve nicht.
Grüße
Und mit welchem Modul sendest du? Ich habe nicht alle IR Dioden getestet, um sicher sagen zu können mit welchen es funktioniert (+ den Abstand).
Hey, Datenblatt: http://www.produktinfo.conrad.com/datenblaetter/150000-174999/153641-da-01-ml-IR_Emitter_LD274_de_en.pdf
Wie weit könne die IR Module vom Raspberry entfernt sein?
Grüße
Ich bin mir ehrlich gesagt nicht sicher, ob dein Empfänger dafür geeignet ist. Daher kann ich dir auch nicht genau sagen, wie groß die Entfernung sein kann.
Du müsstest wohl einen anderen Weg gehen, da der Empfänger nicht wie ein IR Fototransistor benutzt werden kann. Du kannst mit der Diode senden und mit dem Empfänger auf das Signal warten (bzw. die Unterbrechung) und darauf reagieren. Eventuell hilft dir dies weiter (womit eine höhere Distanz möglich sein sollte): Raspberry Pi Infrarot Steuerung – Einrichten von LIRC
Natürlich bedarf es einiger Anpassung.
Hey, bin am Aufbau, hab alles bei Conrad gekauft. Der Fototransistor hat allerdings 3 pins, was soll ich tun? kannst du mir ein Bild des ganzen Konstrukts schicken?
DANKE
Hey,
schau am besten mal im Datenblatt nach, was die Pins bedeuten.
Hey, ist leider keins dabei 🙁 Kannst du mir mal ein Bild des ganzen Gerätes senden? Hab da so wenig Vorstellung…
Da steht: Linker Pin OUT
Mittlerer Pin: GND
Rechter Pin: VCC
was bedeutet das? Bin schlecht in dem Bereich. Wie weit kann ich die Platine mit IR von dem Raspberry entfernt aufstellen?
Grüße
VCC und GND stehen für die Spannung (Plus und Minus). Ohne Datenblatt ist es aber schwer zu sagen, was du für ein Modul hast. Es könnte eine Art Fototransistor sein oder ein richtiger IR Empfänger. Den Abstand müsstest du durch testen heraus finden.
Hey, das Datenblatt ist verlinkt.
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/184302-da-01-en-IR_RECEIVER_2_7_5_5V_OS_0038K_K.pdf
Bild brauch ich keins, hoffe ich nerve nicht.
Grüße
Und mit welchem Modul sendest du? Ich habe nicht alle IR Dioden getestet, um sicher sagen zu können mit welchen es funktioniert (+ den Abstand).
Hey, Datenblatt: http://www.produktinfo.conrad.com/datenblaetter/150000-174999/153641-da-01-ml-IR_Emitter_LD274_de_en.pdf
Wie weit könne die IR Module vom Raspberry entfernt sein?
Grüße
Ich bin mir ehrlich gesagt nicht sicher, ob dein Empfänger dafür geeignet ist. Daher kann ich dir auch nicht genau sagen, wie groß die Entfernung sein kann.
Du müsstest wohl einen anderen Weg gehen, da der Empfänger nicht wie ein IR Fototransistor benutzt werden kann. Du kannst mit der Diode senden und mit dem Empfänger auf das Signal warten (bzw. die Unterbrechung) und darauf reagieren. Eventuell hilft dir dies weiter (womit eine höhere Distanz möglich sein sollte): Raspberry Pi Infrarot Steuerung – Einrichten von LIRC
Natürlich bedarf es einiger Anpassung.
Hey, Datenblatt:
http://www.produktinfo.conrad.com/datenblaetter/150000-174999/153641-da-01-ml-IR_Emitter_LD274_de_en.pdf
Wie weit kann ich die Platine vom Raspberry weg bauen?
Sorry, ich weiß nicht wirklich was du meinst.
Hey, Datenblatt:
http://www.produktinfo.conrad.com/datenblaetter/150000-174999/153641-da-01-ml-IR_Emitter_LD274_de_en.pdf
Wie weit kann ich die Platine vom Raspberry weg bauen?
Sorry, ich weiß nicht wirklich was du meinst.
Hallo,
ich habe dein Versuch einmal nachgebaut und es funktioniert auch mit einer Lichtschranke. Ich würde jedoch gerne einen größeren Bereich abdecken, also auch weiter oben noch einen Sensor anbringen. Dann dachte ich mir einfach, dass ich diese Parallel schalte. Das dürfte jedoch nicht klappen, weil dann immer beide Schranken gleichzeitig durchbrochen werden müssten.
Gibt es eine Möglichkeit mehrere Lichtschranken „übereinander“ zu positionieren, damit es auch noch funktioniert?
(Brauche es für einen Kicker Tisch und das Tor ist leider etwas größer^^)
Du könntest entweder stärkere Sender/Empfänger Paare nehmen, oder z.B. einen Fototransistor und einen Mini-Laser. An den Fototransistor hängst du einen größeren Widerstand (musst du mal testen, ab wann das normale Umgebungslicht ignoriert wird). Wenn ich Zeit finde, werde ich vielleicht in Zukunft dazu mal ein Tutorial machen, ist aber eigentlich recht simpel.
LG Felix
Hallo,
ich habe dein Versuch einmal nachgebaut und es funktioniert auch mit einer Lichtschranke. Ich würde jedoch gerne einen größeren Bereich abdecken, also auch weiter oben noch einen Sensor anbringen. Dann dachte ich mir einfach, dass ich diese Parallel schalte. Das dürfte jedoch nicht klappen, weil dann immer beide Schranken gleichzeitig durchbrochen werden müssten.
Gibt es eine Möglichkeit mehrere Lichtschranken „übereinander“ zu positionieren, damit es auch noch funktioniert?
(Brauche es für einen Kicker Tisch und das Tor ist leider etwas größer^^)
Du könntest entweder stärkere Sender/Empfänger Paare nehmen, oder z.B. einen Fototransistor und einen Mini-Laser. An den Fototransistor hängst du einen größeren Widerstand (musst du mal testen, ab wann das normale Umgebungslicht ignoriert wird). Wenn ich Zeit finde, werde ich vielleicht in Zukunft dazu mal ein Tutorial machen, ist aber eigentlich recht simpel.
LG Felix
Schön guten Tag,
vielen Dank für die hilfreichen Tips. Ich wollte das ganze erweitern, dass ab einer bestimmten Geschwindigkeit eine DUO LED Grün oder Rot aufleuchtet. Da ich totaler anfänger bin wollte ich Sie Fragen wie der Code und die Verdrahtung erweitert werden muss?
Vielen Dank im Voraus
Hey,
was meinst du genau? Sobald die Lichtschranke durchbrochen wird eine LED erleuchten lassen? Falls ja: Raspberry Pi Ampelschaltung mit GPIO Teil 1
Hallo ,
vielen Dank für die schnelle Antwort. Ich wollte gerne mit dieser Schaltung eine Blitzeranlage simulieren. Sprich das ab einer bestimmten Geschwindigkeit eine LED leuchtet.
Beste Grüße
Hallo Enrico,
wenn du die Geschwindigkeit eines näher kommenden Objekts feststellen willst, kannst du u.a. auch das Tutorial ansehen:
Infrarot Abstandsmessung mit dem Raspberry Pi (Sharp GP2Y0A02YK0F)
Das kann ähnlich zu einem Blitzer funktionieren: In einer Dauerschleife misst du den Abstand und sollte dieser Sich nähern kannst du aus der Zeitdifferenz der letzten Messung und der Differenz der Entfernung die Geschwindigkeit berechnen.
Schön guten Abend,
ich wollte das Programm mal testen, kriege aber immer folgende Fehlermeldung:
Traceback (most recent cail last) :
File „distance.py“, line 26, in
if time.time()-start_time >= TIMEOUT:
NameError: name ’start_time‘ is not difined
Ich hab den oberen Code nur kopiert und eingefügt. Woran kann das liegen?
Vielen Dank im Voraus ! 🙂
Schreib in Zeile 17 folgendes (ein Tab zum einrücken):
start_time, end_time = 0, 0
Hab es im Skript aktualisiert 🙂
hey,
vielen Dank hat geklappt. Aber wie kann es sein, dass obwohl die Lichtschranke nicht unterbrochen wurde, mir Geschwindigkeiten angezeigt werden?
Beste Grüße
Ich nehme an, dass ein Signal übertragen wurde. Das kann z.B. durch anderes (Infrarot)Licht, was den Empfänger erreicht hat passieren.
Fehlt eventuell eine While Schleife? Da er mir ja sofort Timeout ausgibt , wenn ich das Programm Starte und nicht die erste Lichtschranke durchbrechen. Kriege es leider immer noch nicht hin. Bin auch schon mehr mals den Aufbau durch gegangen.
Beste Grüße
Wo im Code meinst du genau? Es kann auch an deinen Lichtschranken liegen, sodass durch diese „immer“ Strom fließt, wodurch keine echte Messung entsteht.
Schön guten Tag,
vielen Dank für die hilfreichen Tips. Ich wollte das ganze erweitern, dass ab einer bestimmten Geschwindigkeit eine DUO LED Grün oder Rot aufleuchtet. Da ich totaler anfänger bin wollte ich Sie Fragen wie der Code und die Verdrahtung erweitert werden muss?
Vielen Dank im Voraus
Hey,
was meinst du genau? Sobald die Lichtschranke durchbrochen wird eine LED erleuchten lassen? Falls ja: Raspberry Pi Ampelschaltung mit GPIO Teil 1
Hallo ,
vielen Dank für die schnelle Antwort. Ich wollte gerne mit dieser Schaltung eine Blitzeranlage simulieren. Sprich das ab einer bestimmten Geschwindigkeit eine LED leuchtet.
Beste Grüße
Hallo Enrico,
wenn du die Geschwindigkeit eines näher kommenden Objekts feststellen willst, kannst du u.a. auch das Tutorial ansehen:
Infrarot Abstandsmessung mit dem Raspberry Pi (Sharp GP2Y0A02YK0F)
Das kann ähnlich zu einem Blitzer funktionieren: In einer Dauerschleife misst du den Abstand und sollte dieser Sich nähern kannst du aus der Zeitdifferenz der letzten Messung und der Differenz der Entfernung die Geschwindigkeit berechnen.
Schön guten Abend,
ich wollte das Programm mal testen, kriege aber immer folgende Fehlermeldung:
Traceback (most recent cail last) :
File „distance.py“, line 26, in
if time.time()-start_time >= TIMEOUT:
NameError: name ’start_time‘ is not difined
Ich hab den oberen Code nur kopiert und eingefügt. Woran kann das liegen?
Vielen Dank im Voraus ! 🙂
Schreib in Zeile 17 folgendes (ein Tab zum einrücken):
start_time, end_time = 0, 0
Hab es im Skript aktualisiert 🙂
hey,
vielen Dank hat geklappt. Aber wie kann es sein, dass obwohl die Lichtschranke nicht unterbrochen wurde, mir Geschwindigkeiten angezeigt werden?
Beste Grüße
Ich nehme an, dass ein Signal übertragen wurde. Das kann z.B. durch anderes (Infrarot)Licht, was den Empfänger erreicht hat passieren.
Fehlt eventuell eine While Schleife? Da er mir ja sofort Timeout ausgibt , wenn ich das Programm Starte und nicht die erste Lichtschranke durchbrechen. Kriege es leider immer noch nicht hin. Bin auch schon mehr mals den Aufbau durch gegangen.
Beste Grüße
Wo im Code meinst du genau? Es kann auch an deinen Lichtschranken liegen, sodass durch diese „immer“ Strom fließt, wodurch keine echte Messung entsteht.
Hallo Felix,
erstmal danke für das tolle Tutorial.
Ich würde gerne ein Sprintanlage für Sportler bauen.
Dafür würde ich gerne gerne IR Sender und Empfänger verwenden. Weißt du, ob die IR Sender und Empfänger die du verwendet hast eine Entfernung von 2 Metern schaffen?
Bzw gibt es da noch eine andere Möglichkeit?
Viele Dank im voraus,
Sascha
Hallo Sascha,
diese lichtempfindlichen IR Dioden werden sich eher weniger eignen. Dafür würde ich einen Sharp IR Distanzsensor nehmen. Im „offenen“ Zustand misst er immer die selbe Distanz. Sobald jemand durch läuft, verringert sich die gemessene Distanz und du weißt, dass die Lichtschranke unterbrochen wurde. Details dazu hier: Infrarot Abstandsmessung mit dem Raspberry Pi (Sharp GP2Y0A02YK0F)
Alternativ kannst du auch einen Laser + Photodiode nehmen.
LG, Felix
okay, vielen Dank für die Antwort.
der Distanzsensor ist mit etwas zu teuer, da ich 3 oder 4 auf 30 Meter aufstellen möchte.
Die Idee mit den Photodioden ist mir auch gekommen, jedoch war ich mir dabei nicht ganz sicher. Aber da du das auch vorgeschlagen hast, werde ich das Mal auf die Art und Weise in Angriff nehmen.
Ich werde dann eine Hülle um die Photodiode bauen, um sie vor Sonneneinstrahlung zu schützen.
Nochmals vielen Dank und liebe Grüße,
Sascha
Hallo Felix,
erstmal danke für das tolle Tutorial.
Ich würde gerne ein Sprintanlage für Sportler bauen.
Dafür würde ich gerne gerne IR Sender und Empfänger verwenden. Weißt du, ob die IR Sender und Empfänger die du verwendet hast eine Entfernung von 2 Metern schaffen?
Bzw gibt es da noch eine andere Möglichkeit?
Viele Dank im voraus,
Sascha
Hallo Sascha,
diese lichtempfindlichen IR Dioden werden sich eher weniger eignen. Dafür würde ich einen Sharp IR Distanzsensor nehmen. Im „offenen“ Zustand misst er immer die selbe Distanz. Sobald jemand durch läuft, verringert sich die gemessene Distanz und du weißt, dass die Lichtschranke unterbrochen wurde. Details dazu hier: Infrarot Abstandsmessung mit dem Raspberry Pi (Sharp GP2Y0A02YK0F)
Alternativ kannst du auch einen Laser + Photodiode nehmen.
LG, Felix
okay, vielen Dank für die Antwort.
der Distanzsensor ist mit etwas zu teuer, da ich 3 oder 4 auf 30 Meter aufstellen möchte.
Die Idee mit den Photodioden ist mir auch gekommen, jedoch war ich mir dabei nicht ganz sicher. Aber da du das auch vorgeschlagen hast, werde ich das Mal auf die Art und Weise in Angriff nehmen.
Ich werde dann eine Hülle um die Photodiode bauen, um sie vor Sonneneinstrahlung zu schützen.
Nochmals vielen Dank und liebe Grüße,
Sascha
Hallo,
ich habe folgende LEDs bestellt: https://www.amazon.de/pairs-Infrared-Diode-Emission-Receiver/dp/B00EFOTJZE?ie=UTF8&camp=1634&creative=6738&creativeASIN=B00EFOTJZE&linkCode=as2&redirect=true&tag=754-21
Der Empfänger hat 3 Anschlüsse. Deiner hat zwei. In wieweit müsste ich etwas verändern?
LG
Die Paare von Pollin sind eher „Pseudo“ IR Module, da sie keine Signale senden, sondern eher wie Phototransistoren arbeiten. Du könntest aber mal versuchen einfach eine Spannung an den Datenpin zu legen.
Wieso eine Spannung an den Datenpin anlegen. Es ist laut Amazon ein „Out“ Pin. Ist die Frage, wie ich die Ausgangsströme irwie am Pi auslesen kann. LEDs sind noch nicht angekommen, daher konnte ich es noch nicht testen. Du hattest diese LEDs ja als Alternative vorgeschlagen, dann müsste es ja irwie gehen. Will nur prüfen, ob IR ankommt oder nicht.
LG
Das war auf den Sender bezogen. Was du mit diesen IR LEDs ausprobieren kannst, ist folgendes:
Raspberry Pi Fernbedienung: Infrarot Steuerung einrichten
Allerdings kann es sein, dass trotz „direkter“ Unterbrechung zwischen Sender/Empfänger, noch weiter ein Signal empfangen wird (kommt auf die Fläche des unterbrechenden Objekts an).
Hallo,
ich habe folgende LEDs bestellt: https://www.amazon.de/pairs-Infrared-Diode-Emission-Receiver/dp/B00EFOTJZE?ie=UTF8&camp=1634&creative=6738&creativeASIN=B00EFOTJZE&linkCode=as2&redirect=true&tag=754-21
Der Empfänger hat 3 Anschlüsse. Deiner hat zwei. In wieweit müsste ich etwas verändern?
LG
Die Paare von Pollin sind eher „Pseudo“ IR Module, da sie keine Signale senden, sondern eher wie Phototransistoren arbeiten. Du könntest aber mal versuchen einfach eine Spannung an den Datenpin zu legen.
Wieso eine Spannung an den Datenpin anlegen. Es ist laut Amazon ein „Out“ Pin. Ist die Frage, wie ich die Ausgangsströme irwie am Pi auslesen kann. LEDs sind noch nicht angekommen, daher konnte ich es noch nicht testen. Du hattest diese LEDs ja als Alternative vorgeschlagen, dann müsste es ja irwie gehen. Will nur prüfen, ob IR ankommt oder nicht.
LG
Das war auf den Sender bezogen. Was du mit diesen IR LEDs ausprobieren kannst, ist folgendes:
Raspberry Pi Fernbedienung: Infrarot Steuerung einrichten
Allerdings kann es sein, dass trotz „direkter“ Unterbrechung zwischen Sender/Empfänger, noch weiter ein Signal empfangen wird (kommt auf die Fläche des unterbrechenden Objekts an).
Hallo Felix! Vielen Dank für dein Tutorial!
Ich hab noch nicht viel Erfahrung mit Schaltungen und werde aus dem Datenblatt nicht schlau.. kannst du mir sagen welche Spannung und welchen Strom ich für die Fotodiode und den Empfänger mindestens brauche? Die Diode und der Fototransistor werden höchstens 1 cm voneinander entfernt sein. Außerdem möchte ich für das Projekt 7 Lichtschranken mit einem raspberry pi 3 verbinden, würde da die 3,3V oder 5V spannungsquelle ausreichen? Wenn du mir die Fragen beantworten könntest wäre ich dir sehr dankbar!
LG, ein Student
Hallo Benjamin,
die 3.3V reichen auch für mehrere Dioden und Empfänger aus. WIchtig ist dabei die Stromsärke und nicht die Spannung. Vielleicht kennst du das Beispiel der Flussbreite und Fließgeschwindigkeit?
Hallo Felix! Vielen Dank für dein Tutorial!
Ich hab noch nicht viel Erfahrung mit Schaltungen und werde aus dem Datenblatt nicht schlau.. kannst du mir sagen welche Spannung und welchen Strom ich für die Fotodiode und den Empfänger mindestens brauche? Die Diode und der Fototransistor werden höchstens 1 cm voneinander entfernt sein. Außerdem möchte ich für das Projekt 7 Lichtschranken mit einem raspberry pi 3 verbinden, würde da die 3,3V oder 5V spannungsquelle ausreichen? Wenn du mir die Fragen beantworten könntest wäre ich dir sehr dankbar!
LG, ein Student
Hallo Benjamin,
die 3.3V reichen auch für mehrere Dioden und Empfänger aus. WIchtig ist dabei die Stromsärke und nicht die Spannung. Vielleicht kennst du das Beispiel der Flussbreite und Fließgeschwindigkeit?
Hallo, ich möchte Ihren Aufbau für ein Schulprojekt benutzen. Nun habe ich die Frage, wie weit der Sender und Empfänger der Lichtschranke auseinandersitzen dürfen. Da wir mit einem Lego-Mindstorme arbeiten müssten die Abstände deutlich größer sein, als in Ihrem Aufbau.
Liebe Grüße
Hallo Marcel,
der Abstand sollte nicht so groß sein (wenige cm). Es ist ein Tutorial geplant, in dem eine Lichtschranke per Laser gebaut wird. Könnte allerdings noch etwas dauern.
LG, Felix
Vielen Dank für Deine schnelle Antwort.
Das heißt ein Lego Mindstrome Roboter von ca 20 cm Breite könnte damit nicht gemessen werden?
Liebe Grüße
Nein, leider nicht. Du kannst allerdings mit diesem Tutorial dauerhaft den Abstand messen und somit auch erfahren, wenn etwas die Schranke durchfährt.
Also gibt es auch keine ’stärkeren‘ Infrarotsender mit denen es realisierbar wäre?
Guten Abend,
ich habe jetzt gerade mal die Schaltung so nachgebaut und das Skript in Python 2.x auf meinem Raspberry Pi zero gespeichert. Wenn ich das Modul dann laufen lasse kommt sofort in blau der Schriftzug „Timeout“ und in einem Fenster das aufgeht steht: „The program is still running! Do you want to kill it?“. Kannst Du mir sagen, wo der Fehler liegt?
Liebe Grüße
Hallo, ich möchte Ihren Aufbau für ein Schulprojekt benutzen. Nun habe ich die Frage, wie weit der Sender und Empfänger der Lichtschranke auseinandersitzen dürfen. Da wir mit einem Lego-Mindstorme arbeiten müssten die Abstände deutlich größer sein, als in Ihrem Aufbau.
Liebe Grüße
Hallo Marcel,
der Abstand sollte nicht so groß sein (wenige cm). Es ist ein Tutorial geplant, in dem eine Lichtschranke per Laser gebaut wird. Könnte allerdings noch etwas dauern.
LG, Felix
Vielen Dank für Deine schnelle Antwort.
Das heißt ein Lego Mindstrome Roboter von ca 20 cm Breite könnte damit nicht gemessen werden?
Liebe Grüße
Nein, leider nicht. Du kannst allerdings mit diesem Tutorial dauerhaft den Abstand messen und somit auch erfahren, wenn etwas die Schranke durchfährt.
Also gibt es auch keine ’stärkeren‘ Infrarotsender mit denen es realisierbar wäre?
Guten Abend,
ich habe jetzt gerade mal die Schaltung so nachgebaut und das Skript in Python 2.x auf meinem Raspberry Pi zero gespeichert. Wenn ich das Modul dann laufen lasse kommt sofort in blau der Schriftzug „Timeout“ und in einem Fenster das aufgeht steht: „The program is still running! Do you want to kill it?“. Kannst Du mir sagen, wo der Fehler liegt?
Liebe Grüße
Hallo,
ich habe mir diese Lichschranke gekauft:
http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=172344546765&ssPageName=ADME:X:DERP:DE:1123
Folgendes, ich habe eine Holzplatte mit einem Loch (Breite von Pfandflaschen), darunter befindet sich ein ganz normaler großer Sack, in dem die Flaschen reinfallen sollen. Nun habe ich mir überlegt in diese Holzplatte die Lichtschranke zu integrieren, um somit die Anzahl der hineingeworfenen Flaschen zu zählen. Bei genau 40 Pfandflaschen, sollte der Pi mir eine kurze Benachrichtung per Mail schicken, um 10 Euro an Pfand abzugeben 🙂 Optimal wäre noch eine 7- Segment Anzeige, um die aktuelle Anzahl an Flaschen ablesen zu können.
Wie wäre ein Beispiel Skript für so ein Vorhaben? Z.b. mit Python
Es spielt keine Rolle aus welchem Material die Pfandflaschen bestehen, da ich es privat verwenden möchte und auf den Pfandwert achte
Wie sieht es mit der Reflexion von Plastik aus?
Liebe Grüße und Danke im Vorraus
Roko
Hallo,
ich habe mir diese Lichschranke gekauft:
http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=172344546765&ssPageName=ADME:X:DERP:DE:1123
Folgendes, ich habe eine Holzplatte mit einem Loch (Breite von Pfandflaschen), darunter befindet sich ein ganz normaler großer Sack, in dem die Flaschen reinfallen sollen. Nun habe ich mir überlegt in diese Holzplatte die Lichtschranke zu integrieren, um somit die Anzahl der hineingeworfenen Flaschen zu zählen. Bei genau 40 Pfandflaschen, sollte der Pi mir eine kurze Benachrichtung per Mail schicken, um 10 Euro an Pfand abzugeben 🙂 Optimal wäre noch eine 7- Segment Anzeige, um die aktuelle Anzahl an Flaschen ablesen zu können.
Wie wäre ein Beispiel Skript für so ein Vorhaben? Z.b. mit Python
Es spielt keine Rolle aus welchem Material die Pfandflaschen bestehen, da ich es privat verwenden möchte und auf den Pfandwert achte
Wie sieht es mit der Reflexion von Plastik aus?
Liebe Grüße und Danke im Vorraus
Roko
Hallo,
ich hab die LS nachgebaut, hat auch auf Anhieb geklappt -also eine super Anleitung.
Nur dachte ich, ich könnte damit eine Strecke von ca 15cm überwachen (Abstand Sender-Empfänger)
klappt aber nicht, wie ich dann später gelesen habe. Was könnte ich jetzt machen??????
LG Jörg
Hallo,
ich hab die LS nachgebaut, hat auch auf Anhieb geklappt -also eine super Anleitung.
Nur dachte ich, ich könnte damit eine Strecke von ca 15cm überwachen (Abstand Sender-Empfänger)
klappt aber nicht, wie ich dann später gelesen habe. Was könnte ich jetzt machen??????
LG Jörg
Hallo!
Könnte ich die Schaltung benutzen, um die Geschwindigkeit eines RC Autos zu messen? Man könnte statt einer vorgegebenen Strecke von 10cm einen Punkt auf dem Reifen erfassen und so die aktuelle Geschwindigkeit ausrechnen lassen. Oder geht das einfacher?
Hallo!
Könnte ich die Schaltung benutzen, um die Geschwindigkeit eines RC Autos zu messen? Man könnte statt einer vorgegebenen Strecke von 10cm einen Punkt auf dem Reifen erfassen und so die aktuelle Geschwindigkeit ausrechnen lassen. Oder geht das einfacher?
Vielen Dank für die klasse Erläuterungen! Als Anfänger in Sachen Pi habe ich mich mal an dieses Projekt rangetraut, weil ich die Geschwindigkeit von HotWheels Autos auf einer typischen HotWheels Bahn messen wollte. Hat auch schon mal alles auf Anhieb geklappt.
Jetzt will ich die Messwerte nur nicht mehr auf dem Monitor anzeigen, sondern auf einem kleinem OLED Display. Das wird dann der nächste Meilenstein für mich. Mal sehen, wie weit ich damit komme. Aber an dieser Stelle nochmal Danke für die vielen nützlichen Infos auf dieser Seite.
Vielen Dank für die klasse Erläuterungen! Als Anfänger in Sachen Pi habe ich mich mal an dieses Projekt rangetraut, weil ich die Geschwindigkeit von HotWheels Autos auf einer typischen HotWheels Bahn messen wollte. Hat auch schon mal alles auf Anhieb geklappt.
Jetzt will ich die Messwerte nur nicht mehr auf dem Monitor anzeigen, sondern auf einem kleinem OLED Display. Das wird dann der nächste Meilenstein für mich. Mal sehen, wie weit ich damit komme. Aber an dieser Stelle nochmal Danke für die vielen nützlichen Infos auf dieser Seite.
Hallo Felix,
zunächst einmal ein großes Lob hierfür Deine Projektseite.
Dazu habe ich folgende Frage:
Wie ließe sich das Projekt dahin gehend abwandeln, dass anstatt die Geschwindigkeit nur Unterbrechungen in der Schranke/Lichtstrahl registriert bzw. gezählt werden.
Also wie ein elektronisches Zählwerk?
Du könntest nur eine Lichtschranke nutzen einen GPIO Trigger setzen. Schau dir dazu auch dieses Tutorial an: Raspberry Pi Laser Lichtschranke für weite Distanzen
Hallo Felix,
zunächst einmal ein großes Lob hierfür Deine Projektseite.
Dazu habe ich folgende Frage:
Wie ließe sich das Projekt dahin gehend abwandeln, dass anstatt die Geschwindigkeit nur Unterbrechungen in der Schranke/Lichtstrahl registriert bzw. gezählt werden.
Also wie ein elektronisches Zählwerk?
Du könntest nur eine Lichtschranke nutzen einen GPIO Trigger setzen. Schau dir dazu auch dieses Tutorial an: Raspberry Pi Laser Lichtschranke für weite Distanzen
Hallo hätte da ein paar Fragen zur Geschwindigkeitsmessung. Den raspberry habe ich mir schon zugelegt. Aber bei der Lichtschranke hätte ich gerne eine Methode wo auf der einen Seite die Diode und auf der anderen Seite eine Art Katzenauge ist. Bei der Entfernung von Diode zum Katzenauge müsste der Abstand wenigsten 1,60 cm betragen. Nun meine Frage: gibt es Dioden welche den Abstand mühelos überbrücken können und wenn ja, welche kann ich da kaufen. Ich glaube, das wenn es sowas gibt bestimmt auch der Schaltplan von oben noch anglichen werden müsste. Danke erst einmal für die Hilfe
Hallo Felix,
leider klappt das Ganze bei mir nicht so wie es soll.
Wenn ich den Code starten möchte bekomme ich immer nur die Meldung „Timeout“.
Kannst du mir vielleicht helfen.
Danke im voraus.
Timo
Hallo Felix! Vielen Dank für deine digitale Hilfe. Deine komplette Website hat mir schon bei so manchem Projekt geholfen 😀 Ich hätte nun eine Frage zur Geschwindigkeitsmessung:
Wie kann ich die Lichtschranke anpassen, dass wenn diese von links nach rechts durchfahren wird, die rechte LED leuchtet und wenn sie von rechts nach links durchfahren wird, die linke LED leuchtet?
Vielen Dank, Gruß Patrick
Du kannst z.B. bei jeder Unterbrechung einer Lichtschranke dir den Timestamp merken und dann schauen, welcher kleiner ist. Wenn die andere Lichtschranke nach einer Sekunde nicht unterbrochen wurde, werden beide Werte zurückgesetzt (und falls beide durchbrochen wurden).
Lieber Felix
Ich bin spät auf Deine Seite gestossen und empfinde sie aber als sehr lehrreich. Herzliche Gratulation dazu.
Bei der Lichtschranke habe ich doch ein paar Schwierigkeiten gehabt, weil ich nicht genau wusste, was mir die Chinesen in den Briefumschlaf mit je 5 IR-Sendern und 5 IR-Empfängern getan hatten:
(1) Was ist der Sender und was ist der Empfänger? Nun, mit der Kamera des Smartphones kann man den IR-Sender leuchten sehen.
(2) Was ist im Empfänger genau darin? Ist es ein Fototransistor, der durchschaltet, wenn seine Basis Licht empfängt oder ist es eine Diode. Nun es stellte sich heraus, dass es eine Fotodiode ist.
Die Fotodiode soll in Sperrrichtung gepolt sein, d.h. die Anode soll an VSS und die Kathode über den 10kOhm-Widerstand an VCC verbunden sein. Wenn dann Licht auf die Diode fällt, leitet sie. Die Spannung an der roten LED wird auf VSS gezogen, und die rote LED verlöscht.
Das ist meiner Meinung nach in Deinem Schema falsch dargestellt: Die Anode statt der Kathode der IR-Empfängerdiode sollte mit VSS verbunden sein.