Inhaltsverzeichnis:
- Schritt 1: Materialien für den Einstieg
- Schritt 2: Komponenten testen
- Schritt 3: Löten der Anzeigetafel
- Schritt 4: Testen Sie das Anzeigefeld
- Schritt 5: Integrieren des Anzeigefelds mit dem Touchpad
- Schritt 6: Machen Sie es intelligent
- Schritt 7: Malerei und Montage
- Schritt 8: Ferntest mit VNC und endgültigem Code
- Schritt 9: Kabelmanagement und Endmontage
- Schritt 10: Einige Bilder des Indikators
Video: Minimalistische Fahrradanzeige, Touch-Enabled! - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Hi! Dies ist mein erstes Instructable. Ich wollte schon immer Dinge von Grund auf neu machen, nur um zu sehen, wie es funktioniert und wer mag nicht DIY (Do it yourself) Zeug, wenn man etwas nach seinen Bedürfnissen ändern kann, oder? So interessant ein DIY auch klingen mag, es braucht ein wenig Mühe, um es zu verwirklichen. Das Durchsuchen der Instructables-Website ist eine großartige Möglichkeit, um Ihre DIY-Bestrebungen zu starten, und so habe ich früher mit dem Bau einiger meiner Projekte begonnen, aber ich hätte nie gedacht, dass ich eines machen würde.
Als sich mir die Gelegenheit bot, habe ich eine Fahrradanzeige mit minimalistischem Design und Touch-Funktionalität hergestellt. Ich weiß, dass es viele Instructables oder Online-Quellen für einen Fahrradindikator gibt, aber die meisten von ihnen nahmen entweder etwas mehr Platz ein oder waren nicht schlau genug, um sie auf eine bestimmte Weise zu ändern. Wenn Sie nach einem Indikator suchen, der intelligent genug ist, um Ihre Bedürfnisse zu erfüllen, und Ihnen die Möglichkeit gibt, sie nach Ihren Bedürfnissen zu ändern, dann ist dieses Instructable für Sie!
Warum Fahrradindikator?
Ich liebe es, durch die Stadt zu radeln! Ich nehme mein Fahrrad und fahre einfach morgens oder abends. Manchmal ist es nachts schwierig zu fahren, da der Verkehr hinter Ihnen Sie nicht bemerken kann und das ist ein gefährliches Zeichen. Deshalb wollte ich mir mit all den Materialien, die ich zu Hause bei mir hatte, selbst einen Blinker bauen und auch auf dem Fahrrad sieht er toll aus, wenn Sie in der Stadt fahren, indem Sie die Blinker einschalten!
Ein Projekt ohne Probleme zu machen, passiert nicht! Aber ich werde Ihnen alle Fehler, die ich beim Bauen gemacht habe, als "Handy-Tipp" mitteilen, damit Sie nicht versuchen, sie zu machen. Das YouTube-Video enthält eine Illustration, wie das Projekt aufgebaut ist, kleine Animationen, um zu vermitteln, wie die Dinge funktionieren und wie der Blinker auf der Straße aussieht! Die ausführlichsten Informationen werden in diesem Instructable gegeben. Während Sie fortfahren, werde ich die Segmente meines YouTube-Videos bei jedem Schritt als "Timeline: " markieren, damit Sie sehen können, wie die Dinge praktisch funktionieren. Weitere Informationen erhalten Sie, indem Sie auf die markierten Links klicken.
Merkmale dieses Projekts:
- Rechtsabbiegeanzeige
- Linksabbiegeanzeige
- Nachtsichtanzeige
- Touch Aktiviert
Schritt 1: Materialien für den Einstieg
- Widerstände (330 Ohm und 120 Ohm): 330 Ohm und 120 Ohm
- Raspberry Pi 3: RPi 3
- Steckbrett: Steckbrett
- Überbrückungsdrähte (männlich-männlich, männlich-weiblich, weiblich-weiblich): Überbrückungsdrähte
- Mehrdrähtige Drähte: Mehrdrähtige Drähte
- Kapazitiver Berührungssensor (TTP223) - (2): Link
- RGB-LEDs (Common Cathode Type) - (13): RGB LED Common Cathode
- Normale LEDs - (2): LED
- Lötmaterialien: Lötkit
- Perfboards: Perfboard
- Powerbank: Powerbank
- 1 Mikro-Farad-Elektrolytkondensator: Elektrolytkondensator
- LDR (lichtabhängiger Widerstand): LDR
- Kabelbinder: Kabelbinder
- Kabel-Concealer: Kabel-Concealer
- Acrylfarbe und Pinsel (optional): Farbe und Pinsel
- Zwei Aufbewahrungsboxen für die Montage. (1 groß und 1 mittelgroß)
Bewahren Sie immer zusätzliche Mengen auf, die oben erwähnt sind. Ich habe die Komponenten bei Amazon verlinkt und einige Best Buy Kits für Lötmaterialien!
Zeitleiste: Materialien sammeln
Schritt 2: Komponenten testen
Lassen Sie uns Ihre Komponenten auf die Probe stellen! Dies ist wirklich hilfreich, um die Komponenten zu trennen, die aus irgendeinem Grund beschädigt sind oder sich seltsam verhalten. Außerdem können Sie in dieser Phase erste praktische Erfahrungen mit den Komponenten sammeln und ein wenig lernen, bevor Sie mit dem Bau des gesamten Projekts beginnen.
Test für den Typ der RGB-LED
Es gibt zwei Arten von RGB-LEDs, die wir auf dem Markt finden. Der gemeinsame Kathodentyp und der gemeinsame Anodentyp.
Dies ist ein praktischer Tipp (wenn auch größer), da ich die LEDs wie in diesem Video hier gezeigt angeschlossen habe und die LED auch nach mehrmaliger Überprüfung des Stromkreises nicht wie erwartet aufleuchtete. Dann wurde mir klar, dass es zwei Arten dieser LED gibt und als ich das Datenblatt durchging, bekam ich endlich eine Lösung! Das Problem mit meiner Schaltung war, dass der gemeinsame Kathodenstift wie erwähnt mit 3,3 V verbunden war und ich den GPIO-Pin auf HIGH gehalten hatte, sodass sowohl der gemeinsame Kathodenstift als auch die anderen 3 Pins das gleiche Potenzial hatten.
Lösung: Ich habe den gemeinsamen Kathodenstift mit Masse verbunden und die LED leuchtete! Der Grund, warum ich meinen Code nicht geändert habe, um die GPIO-Pins LOW zu halten, weil wir später mehr LEDs verwenden werden und der RPi uns nur zwei Pins bei 3,3 V gibt, die wir auch für andere Zwecke benötigen!
Wie testet man den Typ?
Halten Sie das Multimeter im Durchgangsmodus. Tippen Sie mit der roten Spitze des Multimeters auf die längste Leitung und tippen Sie mit der schwarzen Spitze auf eine der anderen Leitungen. Wenn die LED durch Ausführen des obigen Schritts aufleuchtet, handelt es sich um eine Common Anode RGB LED. Wenn dies nicht der Fall ist, drehen Sie die Multimeterspitze jetzt um. Tippen Sie mit einer schwarzen Spitze auf die längste Leitung und mit allen anderen Leitungen auf die rote Spitze. Jetzt leuchtet sie auf und zeigt an, dass die LED eine Common Cathode RGB LED ist.
Praktischer Tipp: Ich habe in diesem Projekt den Common Cathode Type verwendet. Versuchen Sie, nur diese Typen zu erhalten, aber selbst wenn der andere Typ verfügbar ist, machen Sie sich keine Sorgen. Die Schaltungsverbindungen bleiben die gleichen, der einzige Unterschied muss im Code gemacht werden, den ich als Kommentar neben der eigentlichen Codezeile angeben werde, in der Sie ändern müssen. Hol erstmal Luft.
Zeitleiste: RGB testen
Referenz: So testen Sie RGB
RGB-LED leuchtet
Sehen Sie sich dazu das in den obigen Bildern gezeigte Anschlussdiagramm an und verbinden Sie es gemäß den Pins durch ein Steckbrett (um es zunächst sicher zu halten).
ROT: Pin 11 (330-Ohm-Widerstand)
GRÜN: Pin 13 (120-Ohm-Widerstand)
BLAU: Pin 15 (120-Ohm-Widerstand)
Die Widerstandswerte variieren aufgrund der unterschiedlichen Durchlassspannungen der Leitungen.
Sobald Sie sie richtig angeschlossen haben, codieren Sie das RPi in seiner integrierten Python-IDE.
RPi. GPIO als GPIO importieren
#Die Pin-Nummern entsprechen der genauen Nummer auf dem RPi GPIO Red_pin = 11 Green_pin = 13 Blue_pin = 15 #Connect Common Kathoden-Pin an Pin 6 def turnOn(pin): GPIO.setmode(GPIO. BOARD) GPIO.setup(pin, GPIO. OUT) GPIO.output(pin, GPIO. HIGH) #GPIO.output(pin, GPIO. LOW) für gemeinsamen Anodentyp def turnOff(pin): GPIO.setmode(GPIO. BOARD) GPIO.setup(pin, GPIO. OUT) GPIO.output(pin, GPIO. LOW) #GPIO.output(pin, GPIO. HIGH) def redOn(): turnOn(Red_pin) def redOff(): turnOff(Red_pin) def greenOn(): turnOn(Green_pin) def greenOff(): turnOff(Green_pin) def blueOn(): turnOn(Blue_pin) def blueOff(): turnOff(Blue_pin) try: while True: cmd = input("Geben Sie Ihren Befehl ein:") if cmd == "red on ": #eingabebefehle genau wie erwähnt eingeben in "" redOn() elif cmd == "red off": redOff() elif cmd == "green on": greenOn() elif cmd == "green off": greenOff() elif cmd == "blue on": blueOn() elif cmd == "blue off": blueOff() else: print("Kein gültiger Befehl") außer KeyboardInterrupt: GPIO.cleanup()
Ich verwies auf dieses Instructable, überprüfen Sie dies für eine detaillierte Beschreibung und den Code!
Mit dem gleichen Code oben können Sie nach mehreren LEDs suchen, indem Sie sie parallel auf dem Steckbrett verbinden und den einzelnen Punkt von einem der miteinander verbundenen Pins entfernen. Verwenden Sie für jeden Pin unterschiedliche Widerstandswerte, um die Helligkeit Ihrer LEDs zu überprüfen
Praktischer Tipp: Stellen Sie sicher, dass Sie den gleichen Pin-Typ parallel anschließen. Das heißt, der rote Pin einer LED ist nur mit dem roten Pin der anderen LED verbunden.
Timeline: Lass sie leuchten!
TouchPad-Tests
Die Schaltungsverbindung ist wie hier gezeigt (Timeline). Schließen Sie sie wie gezeigt an und testen Sie Ihre Touchpads mit dem folgenden Code.
Code:
RPi. GPIO als GPIO importieren
from time import sleep GPIO.setmode(IO. BOARD) touchpad1 = 11 #pin 11 touchpad2 = 13 #pin 13 GPIO.setup(touchpad1, GPIO. IN) GPIO.setup(touchpad2, GPIO. IN) # Wir können beide obige Anweisungen zusammen als # GPIO.setup([touchpad1, touchpad2], GPIO. IN) try: while True: if(GPIO.input(touchpad1) == True): print ("Touchpad 1 touched") sleep(2) elif (GPIO.input(touchpad2) == True): print ("Touchpad 2 touched") sleep(2) else: print("Not Touched") außer KeyboardInterrupt: GPIO.cleanup() #CTRL-C zum Beenden
Testen einer LED
Beziehen Sie sich auf diese tolle Anleitung zum Testen Ihrer LED!
Nachdem Sie alle oben genannten Komponenten getestet haben, können Sie die größere Version davon erstellen.
Schritt 3: Löten der Anzeigetafel
Wenn Sie neu im Löten sind, sehen Sie sich dieses Tutorial an, um hier einige Grundlagen zu lernen (Löten). Wenn Sie ein Profi im Löten sind, lassen Sie uns loslegen!
Das Anzeigefeld
Die Illustration zum Löten auf dem Perfboard finden Sie in den obigen Bildern.
Für das Panel verwenden wir 13 RGB-LEDs. Trennen Sie sie in drei Abschnitte: links, rechts und in der Mitte, um sie entsprechend zu löten.
Wichtig: Abstand der LEDs
Ich habe 3 Reihen zwischen den LEDs gelassen. Wie im zweiten Bild gezeigt. Dies ist wichtig, damit das LED-Panel gut aussieht und sich gut anfühlt. Wir möchten nicht, dass die LEDs zu weit entfernt sind, um den Raum zu vergrößern, oder zu nah, um das Licht nicht von weitem unterscheiden zu können.
Praktischer Tipp: Beginnen Sie mit dem Löten aller Common Cathode Pins zuerst
Praktischer Tipp: Verwenden Sie mehradrige Drähte, um die LEDs miteinander zu verbinden, da sie weniger stabil und leicht zu biegen sind. Sie können die zusätzlichen Cut-Off-Pins der LEDs verwenden, um die kürzeren Distanzen zu verbinden
Rechter Abschnitt: (5 LEDs)
- Verbinden Sie alle roten Pins miteinander
- Verbinden Sie alle grünen Pins miteinander
- Verbinden Sie alle gemeinsamen Kathodenstifte miteinander
Linker Abschnitt: (5 LEDs)
- Verbinden Sie alle roten Pins miteinander
- Verbinden Sie alle grünen Pins miteinander
- Verbinden Sie alle gemeinsamen Kathodenstifte miteinander
Mittelteil: (3 LEDs)
Praktischer Tipp: Dieser Abschnitt erfordert genügend Vorsicht. Löten Sie nicht alle Pins zusammen, wie wir es in den beiden obigen Abschnitten getan haben!
- Verbinden Sie alle roten Pins miteinander
- Schließen Sie nur die obere und untere LED an, grüner Pin.
- Verbinden Sie alle gemeinsamen Kathodenstifte miteinander
Drähte
Wir benötigen längere Drähte, um das Panel mit der GPIO-Platine zu verbinden.
Praktischer Tipp:
- Verwenden Sie eindrähtige Drähte! Sie sind robust genug, um mechanischen Belastungen standzuhalten!
- Halten Sie die Drähte etwas länger als die tatsächlich benötigte Länge zwischen dem Panel und dem RPi (dies ist sehr praktisch, wenn Sie die Drähte später verwalten! (Zeitleiste: Messungen)
- Nach dem Löten isolieren! Sehr wichtig
Verwenden Sie zum Löten einen Überbrückungsdraht und einen Einzeldraht. Das eine Ende des Überbrückungskabels muss eine Buchse sein. Löten Sie sie wie hier gezeigt (Zeitleiste)
Codieren Sie die Drähte als Rot, Grün und Schwarz. was dem roten Stift, dem grünen Stift und dem gemeinsamen Kathodenstift entspricht.
Wir benötigen 3 schwarze Drähte, 3 rote Drähte und 3 grüne Drähte.
Sobald die Drähte fertig sind. Löten Sie die Drähte an die Anzeige-LEDs.
Nützliche Tipps:
- Stellen Sie sicher, dass die LEDs gemäß den angegebenen Anschlüssen gelötet sind.
- Stellen Sie sicher, dass Sie die richtigen Widerstandswerte eingelötet haben. Wenn die Werte geändert werden, wirkt sich dies auf die Helligkeit der LEDs aus
- Eine Möglichkeit, um sicherzustellen, dass alle LEDs funktionieren, besteht darin, das in Schritt 2 angegebene Multimeter-Meter zu verwenden. Dies ist sehr praktisch, da Sie wissen, dass die LEDs bei einem Kurzschluss nicht aufleuchten.
- Ziehen Sie die Enden der Drähte nicht länger als erforderlich ab. Dies wird schwierig sein, sie an Ort und Stelle zu halten und auch ein höheres Risiko eines Kurzschlusses.
- Verwenden Sie mehradriges Kabel für die Verbindung zwischen LEDs.
- Verwenden Sie einadriges Kabel zum Verbinden der Abschnitte mit RPi.
Schritt 4: Testen Sie das Anzeigefeld
Hut ab! Wenn Sie das Panel richtig gelötet haben. Fahren wir jetzt mit der Codierung des Indikators fort!
Wie bereits erwähnt, zeigen wir eine Rechtskurve, eine Linkskurve an und schalten das Nachtsichtgerät ein / aus.
Siehe den Anschluss des Stromkreises in Schritt 3.
Schließen Sie die Drähte des Panels wie unten beschrieben an:
- Rot Rechts -- Pin 7
- Grün Rechts -- Pin 11
- Gemeinsame Kathode rechts -- Pin 6 (GND)
- Rot links -- Pin 13
- Grün links -- Pin 15
- Gemeinsame Kathode links -- Pin 9 (GND)
- Mitte Rot -- Pin 16
- Mitte Grün (oben und unten) - Pin 18
- Zentrale gemeinsame Kathode -- Pin 14 (GND)
Testcode:
RPi. GPIO als GPIO importieren
from time import sleep #Connect gemäß untenstehender Pinnummern Red_right = 7 Green_right = 11 Red_left = 13 Green_left = 15 Red_center = 16 Green_top_bottom = 18 GPIO.setmode(GPIO. BOARD) def right_turn(): print ("Turning Right") blink (Green_right, Green_top_bottom, 0) def left_turn(): print ("Turning Left") blink(Green_left, Green_top_bottom, 0) def blink(pin1, pin2, pin3): if(pin3 == 0): GPIO.setup([pin1, pin2], GPIO. OUT) für x im Bereich(10): GPIO.output([pin1, pin2], GPIO. HIGH) sleep(0.5) GPIO.output([pin1, pin2], GPIO. LOW) sleep (0.5) sonst: GPIO.setup([pin1, pin2, pin3], GPIO. OUT) für x im Bereich(10): GPIO.output([pin1, pin2, pin3], GPIO. HIGH) sleep(0.5) GPIO.output([pin1, pin2, pin3], GPIO. LOW) sleep(0.5) def night_sight(): print("Night Sight ON") blink(Red_left, Red_right, Red_center) try: while True: cmd = input(" LED testen für: ") if cmd == "rechts abbiegen": right_turn() elif cmd == "links abbiegen": left_turn() elif cmd == "Nachtsicht": night_sight() else: print("Ungültiger Befehl") außer Ke yboardInterrupt: GPIO.cleanup()
Wenn Ihr Panel alle Testphasen wie im Code abschließt, ist Well Done! Machen Sie sich bereit für den nächsten Schritt
Wenn das Panel nicht aufleuchtet, vergewissern Sie sich, dass Sie alle Schritte richtig befolgt und zuvor die praktischen Tipps durchgesehen haben. Wenn das Problem weiterhin besteht, können Sie unten einen Kommentar abgeben. Ich bin bereit, Ihnen zu helfen.
Zeitleiste: Test ONE (Überprüfen Sie das Video für den funktionierenden Prototyp)
Schritt 5: Integrieren des Anzeigefelds mit dem Touchpad
Anschließen an das RPi
Stellen Sie die Verbindungen wie im Bild oben gezeigt her.
Rechtes Panel
Touchpad:
- GND-Pin -- Pin 34
- VCC-Pin -- Pin 1
- SIG-Pin -- Pin 29
LED:
Anode (+) Pin -- Pin 33
Linkes Feld
Touchpad:
- GND-Pin -- Pin 30
- VCC-Pin -- Pin 17
- SIG-Pin -- Pin 31
LED:
Anode (+) Pin -- Pin 35
Common GND: Pin 39 (für beide Kathoden der LEDs) - Common Ground Soldering (Timeline)
Testcode:
RPi. GPIO als GPIO importieren
from time import sleep Red_right = 7 Green_right = 11 Red_left = 13 Green_left = 15 Red_center = 16 Green_top_bottom = 18 right_touch = 29 left_touch = 31 right_led = 33 left_led = 35 getriggert = 0 GPIO.setmode(GPIO. BOARD) GPIO.setup([right_led, left_led], GPIO. OUT) GPIO.setup(right_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup(left_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) def right_turn(channel): GPIO.output (right_led, GPIO. HIGH) global getriggert ausgelöst = 1 print ("Turning Right") blink(Green_right, Green_top_bottom) def left_turn(channel): GPIO.output(left_led, GPIO. HIGH) global getriggert ausgelöst = 1 print ("Turning Left") blink(Green_left, Green_top_bottom) GPIO.add_event_detect(right_touch, GPIO. FALLING, callback = right_turn, bouncetime = 500) GPIO.add_event_detect(left_touch, GPIO. FALLING, callback = left_turn, bouncetime = 500) def blink(pin1, pin2): GPIO.setup([pin1, pin2], GPIO. OUT) für x im Bereich(10): GPIO.output([pin1, pin2], GPIO. HIGH) sleep(0.5) GPIO.outpu t([pin1, pin2], GPIO. LOW) sleep(0.5) GPIO.output([right_led, left_led], GPIO. LOW) global getriggert getriggert = 0 def night_sight(): while (True): GPIO.setup([Red_center, Red_left, Red_right], GPIO. OUT) global getriggert wenn (triggered == 0): print ("Nachtsicht EIN") GPIO.output([Red_center, Red_left, Red_right], GPIO. HIGH) sleep(0.27) GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) sleep(0.27) else: print ("Nachtsicht AUS") GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) try: night_sight() außer KeyboardInterrupt: GPIO.cleanup()
Berühren Sie das Touchpad, um Ihr Licht zu sehen
Zeitleiste (ohne Anzeige-LED): Test Zwei
Zeitleiste (mit Anzeige-LED): Test 3
Code-Erklärung: Wir möchten, dass das Nachtsichtgerät kontinuierlich läuft und wenn wir das Touchpad berühren, sollte es anhalten und die Funktion des Touchpads ausführen. Um dies gleichzeitig zu tun, verwenden wir in Python etwas, das als "Interrupts" bekannt ist. Dies ermöglicht es uns, unseren normalen Code auszuführen, der hier die Nachtsicht ist und auch ein Ereignis auslöst, wenn eine Berührung erkannt wird. Wir verwenden eine getriggerte Variable als Flag, um die Nachtsicht zu stoppen.
Weitere Informationen zu Interrupts finden Sie unter diesem Link.
Löten Sie das Panel
Jetzt löten wir die Touchpad-Panels, die an den Lenker des Fahrrads gehen. Beachten Sie die Anschlüsse wie im Bild oben angegeben.
Nachdem Sie Ihre LED und das Touchpad getestet haben, können Sie loslegen. Wenn Sie noch nicht getestet haben, lesen Sie bitte diesen Schritt und die vorherigen Schritte.
Platzieren Sie das Touchpad wie im Video gezeigt in der Nähe des Lenkers. Das heißt, für das rechte Touchpad befindet sich das Touchpad rechts und links davon. Ebenso befindet sich beim linken Touchpad die LED rechts und das Touchpad links, wodurch der Daumen leichter zu erreichen ist.
PS: Ich habe das Touchpad nicht an das Perfboard gelötet, weil ich es wiederverwenden sollte. Daher habe ich es einfach mit doppelseitigem Klebeband auf die Platte geklebt.
Verbinden Sie das Panel mit längeren Drähten mit RPi
Schritt 6: Machen Sie es intelligent
Jawohl! Jetzt haben wir alle unsere wesentlichen Elemente des Indikators in Betrieb genommen. Gehen wir noch einen Schritt weiter, um es intelligent zu machen.
Auch hier definiert smart das Sparen des Akkus. Wie Sie vielleicht bemerkt haben, ist das Nachtsichtgerät immer eingeschaltet und manchmal ist dies an einem sonnigen Tag möglicherweise nicht erforderlich. Um dieses Problem zu lösen, können wir einen LDR (Light Dependent Resistor) integrieren, der uns die Daten der Lichtintensität liefert, die wir sammeln und unseren Indikator entsprechend verarbeiten können.
Testen des LDR
Ich habe auf diese Website verwiesen, um den LDR zu testen, um die Lichtintensität und den zurückgegebenen Wert zu überprüfen.
Die Schaltung und den Beispielcode für die Funktionsweise des LDR finden Sie auf der oben markierten Website.
Integration des LDR in unseren Code
Löten Sie den LDR an die rechte Seite des Touchpads, wie im Anschlussdiagramm oben gezeigt.
Nach dem Löten der Pins an der richtigen Stelle ist es Zeit für das letzte Bit der Codierung. Der endgültige Code!
- Verbinden Sie den gemeinsamen Punkt der Kathode (-) des Kondensators und des LDR mit Pin 36 am RPi
- Die Anode des Kondensators ist mit dem in Schritt 5 angegebenen gemeinsamen Massepunkt verbunden
Endgültiger Code:
RPi. GPIO als GPIO importieren
from time import sleep Red_right = 7 Green_right = 11 Red_left = 13 Green_left = 15 Red_center = 16 Green_top_bottom = 18 right_touch = 29 left_touch = 31 right_led = 33 left_led = 35 ldr = 36 getriggert = 0 GPIO.setmode(GPIO. BOARD) GPIO. setup([right_led, left_led], GPIO. OUT) GPIO.setup(right_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup(left_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) def right_turn(channel): GPIO.output(right_led, GPIO. HIGH) global getriggert ausgelöst = 1 print ("Turning Right") blink(Green_right, Green_top_bottom) def left_turn(channel): GPIO.output(left_led, GPIO. HIGH) global getriggert ausgelöst = 1 print ("Turning Left") blink(Green_left, Green_top_bottom) GPIO.add_event_detect(right_touch, GPIO. FALLING, callback = right_turn, Bouncetime = 500) GPIO.add_event_detect(left_touch, GPIO. FALLING, callback = left_turn, Bouncetime = 500) def. light (ldr): count = 0 #Ausgabe am Pin für GPIO.setup(ldr, GPIO. OUT) GPIO.output(ldr, GPIO. LOW) sleep(0.1) #Chang e den Pin zurück zum Eingang GPIO.setup(ldr, GPIO. IN) #Zählen Sie, bis der Pin hoch geht, während (GPIO.input(ldr) == GPIO. LOW): count += 1 Return count def blink(pin1, pin2): GPIO.setup([pin1, pin2], GPIO. OUT) für x im Bereich(10): GPIO.output([pin1, pin2], GPIO. HIGH) sleep(0.5) GPIO.output([pin1, pin2], GPIO. LOW) sleep(0.5) GPIO.output([right_led, left_led], GPIO. LOW) global getriggert getriggert = 0 def night_sight(): while (True): GPIO.setup([Red_center, Red_left, Red_right], GPIO. OUT) global getriggert if(light_sensing(ldr) > 7800): if (triggered == 0): print ("Nachtsicht EIN") GPIO.output([Red_center, Red_left, Red_right], GPIO. HIGH) sleep (0.27) GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) sleep(0.27) Sonst: print ("Nachtsicht AUS") GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) try: night_sight() außer KeyboardInterrupt: GPIO.cleanup()
Voila! Und der Indikator ist fahrbereit.
Praktischer Tipp: Bevor Sie das RPi und andere Komponenten in den Zyklus einbauen, stellen Sie sicher, dass Sie dieses Programm richtig testen! Führen Sie es einige Male aus, um Fehler zu beheben.
Schritt 7: Malerei und Montage
Benötigte Materialien:
- Drahtschneide-/Abisolierwerkzeuge
- Eine große Aufbewahrungsbox für Raspberry Pi
- Eine kleine Aufbewahrungsbox für die Anzeigetafel
- Farbe
- Pinsel
Beginnen Sie damit, das Anzeigefeld und die Touchpad-Panels mit schwarzer Farbe zu lackieren. Ich habe hier Acrylfarben verwendet, die Sie nach Wahl verwenden können, die sich gut mit dem Perfboard kombinieren lassen. Verwenden Sie einen schwarzen Hintergrund, um das LED-Panel lebendig und hervorzuheben. Machen Sie die Löcher mit einem beheizten Schraubendreher oder mit einem Metallgegenstand, um den Kunststoff zu schmelzen.
Hinweis: Bitte seien Sie vorsichtig, wenn Sie Löcher bohren.
Zeitleiste:Farbe
Praktischer Tipp: Ich habe Plastikboxen verwendet und die Farbe geht leicht ab. Stellen Sie sicher, dass Sie hochwertige Farben verwenden
Sobald der Indikator und die Paneele lackiert sind, trocknen Sie sie in der Sonne und machen Sie sich bereit für den Zusammenbau.
Ich habe zusätzliche Kanten des Perfboards in das Anzeigefeld und die Frontplatte geschnitten, um Platz zu sparen.
Sehen Sie sich das Video zur Montage an!
Zeitleiste: Rächer! Montieren. (Montage der Anzeigetafel und RPi mit Boxen)
Wie im Video zu sehen ist, legen Sie die Drähte entsprechend an, indem Sie drei Löcher in die größere Schachtel bohren. Einer für das RPi-Powerbank-Kabel, einer für die Touchpad-Panels und einer für das Indikator-Panel. Für die kleinere Box wird nur ein Loch benötigt.
Praktischer Tipp: Überprüfen Sie die Isolierung der Drähte und prüfen Sie, ob die Drähte richtig verlötet sind, bevor Sie sie in die Box einstecken.
Schritt 8: Ferntest mit VNC und endgültigem Code
Ein letzter Test, bevor der Indikator vollständig bereit ist. Verbinden Sie Ihr RPi mit dem VNC Viewer und führen Sie das Programm aus.
Ich verwende immer einen VNC-Server, um das Programm auszuführen und Fehler im Programm zu debuggen. Auf diese Weise kann ich das RPi direkt an der Stelle platzieren, an der ich testen möchte, ohne den Monitor extern anzuschließen.
Überprüfen Sie diese Seite, um Ihr RPi mit dem VNC-Server zu verbinden. (VNC-Server)
Sobald Sie das RPi mit dem VNC-Server verbunden haben. Sie können den Code auf dem virtuellen Desktop ausführen und die Fehler debuggen.
Zeitleiste: Beim Start ausführen
Praktischer Tipp: Sobald Sie Ihren Raspberry Pi mit dem virtuellen Desktop verbunden haben, melden Sie sich mit der IP-Adresse des RPi an. Wenn Sie jedoch eine Fehlermeldung erhalten, dass das RPi die Verbindung abgelehnt hat, liegt dies an der Änderung der IP-Adresse im RPI. Dies kann passieren, wenn Sie Ihren Router oder einen WLAN-Hotspot neu starten und dann versuchen, sich mit der alten Adresse anzumelden. Der Router weist bei jedem Neustart eine neue IP zu. Wenn Sie sich jedoch an die alte IP-Adresse des RPi erinnern, erhöhen Sie einfach die letzte Ziffer um 1 und melden Sie sich an. Beispiel: Wenn die alte IP-Adresse 190.148.1.100 lautet, melden Sie sich mit 190.148. an.1.101
Nachdem Sie überprüft haben, ob alles richtig funktioniert, ist es Zeit für die Endmontage.
Wir können immer keinen virtuellen Desktop haben, um das Python-Skript zu überwachen oder auszuführen. Lassen Sie uns das beim Start tun.
Wir möchten, dass unser Programm ausgeführt wird, sobald das RPi hochfährt. Weitere Informationen dazu finden Sie auf dieser Website!
Wenn sich Ihr RPi im Auto-Login-Setup befindet, fahren Sie fort;
Führen Sie die folgenden Befehle im Terminal des RPi. aus
sudo nano /etc/profile
Scrollen Sie nach unten und fügen Sie die folgende Zeile hinzu:
sudo python file_path &
Der file_path bezieht sich hier auf den Pfad der Python-Datei, in der Ihr endgültiger Code gespeichert ist.
Hinweis: Das kaufmännische Und (&) am Ende der Datei sollte hinzugefügt werden, damit Ihr Programm parallel zum Systemstart läuft. Da unser Programm eine Endlosschleife enthält, ist dieser Schritt obligatorisch, damit wir auch dann, wenn das Programm nicht wie erwartet läuft, den RPi-Desktop verwenden können, um die Einstellungen zu ändern.
Drücken Sie danach STRG-X und dann Y Drücken Sie zweimal die Eingabetaste und Sie kehren zum Befehlsterminal zurück.
Starten Sie den Pi. neu
Jetzt sollte der Code beim Start ausgeführt werden
Schritt 9: Kabelmanagement und Endmontage
Herzliche Glückwünsche! zum Abschluss dieses Projekts. Ich habe ihm das Wort Minimal gegeben, wie Sie gesehen haben, haben wir weniger LEDs verwendet, um alle erforderlichen Anzeigen anzuzeigen und auch mit kundenspezifischen Farben. Sie können gerne verschiedene Farben für Ihre LEDs verwenden, z. B. Gelb für die Blinker oder andere.
Wenn Sie dieses Projekt durchgeführt haben, klicken Sie auf "Ich habe es gemacht" und teilen Sie Ihre Erfahrungen. Teilen Sie Ihre Gedanken und auch Vorschläge oder Kommentare zu diesem Projekt mit. Das würde ich gerne hören!
Kabelmanagement
Jawohl! Wie Sie vielleicht bemerkt haben, gibt es so viele Drähte in und um die Zyklen und deren Verwaltung ist hektisch. Ich habe Kabelanhänger, Isolierbänder und Kabelhüllen verwendet, um die Drähte zu verbergen und sie auch schwarz lackiert, wie Sie das Bild gesehen haben.
Praktischer Tipp: Da Sie zusätzliche Zoll von Ihren Kabeln gelassen haben als erforderlich, ist es jetzt nützlich, sie richtig zu verwalten, ohne sie zu belasten!Wenn eine Ihrer LEDs aufleuchtet und andere nicht, selbst wenn Sie alles richtig gemacht haben, ist das Problem in Wenn die Jumper-Drähte mit dem RPi verbunden sind, besteht ein Wackelkontakt. Wenn dies weiterhin besteht, verwenden Sie ein Stecker-zu-Buchse-Überbrückungskabel, um das Kabel zu verlängern und anzuschließen. Verwenden Sie Kabelbinder, um die Drähte an Ort und Stelle zu halten, damit sie sich nicht bewegen.
Jetzt ist der Indikator bereit für eine Fahrt! Genieß es
PS: In einem weiteren anweisbaren würde ich wirklich gerne die Anzahl der Drähte in der Schaltung reduzieren und einen besseren Plan entwickeln. Wenn ich das tue, teile ich ein Instructable dazu!
Schritt 10: Einige Bilder des Indikators
Vielen Dank für das Lesen dieses Instructable. Ich hoffe, es hat euch genauso viel Spaß gemacht wie mir bei der Herstellung
Timeline: Abschließender TestIm obigen Abschnitt können Sie sehen, dass sich das "Nachtsichtgerät" einschaltet, sobald es dunkler wird, und wenn es heller wird, es sofort wieder ausschaltet!
Timeline:Ready to RollEinige Videos, die ich aufgenommen habe, um den Indikator im Rampenlicht zu präsentieren. Alle Credits an das Radfahren meiner Schwestern für das Video!
Empfohlen:
So erstellen Sie eine minimalistische LED-Uhr – wikiHow
So erstellen Sie eine minimalistische LED-Uhr: All diese digitalen Wanduhren können so beschäftigt sein, oder? Sie möchten nicht wirklich, dass ein großes, helles 7-stelliges Display Ihre Wand überfüllt und im Weg steht, oder? Sogar die analogen Uhren, obwohl einfacher, haben immer noch hässliche schwarze Zahlen und Zeiger in
Einen Touch-Schalter mit einem Mosfet herstellen – wikiHow
Wie man einen Berührungsschalter mit einem Mosfet herstellt: WIE MAN EINEN BERÜHRUNGSSCHALTER MIT NUR EINEM MOSFET-TRANSISTOR HERSTELLTIn vielerlei Hinsicht sind die MOSFETs besser als normale Transistoren normaler Schalter mit dem h
Erstellen Sie einen iPod Touch/iPhone-Ständer aus LEGOs! (vertikal und horizontal): 8 Schritte
Erstellen Sie einen iPod Touch/iPhone-Ständer aus LEGOs! (vertikal und horizontal): So können Sie aus Legos einen einfachen und gut aussehenden Ständer für Ihren iPod Touch oder Ihr iPhone machen! Bitte beachten Sie, dass Sie Lego Technic-Teile benötigen, um diesen Ständer zu erstellen. Außerdem kann dieser Ständer nicht aufgeladen oder synchronisiert werden