Minimalistische fietsindicator, touch-enabled! - Ajarnpa
Minimalistische fietsindicator, touch-enabled! - Ajarnpa
Anonim
Image
Image

Hoi! Dit is mijn eerste Instructable. Ik heb altijd dingen helemaal opnieuw willen maken, gewoon om te zien hoe het werkt en wie houdt er niet van doe-het-zelf-dingen als je iets kunt aanpassen aan je behoeften, toch? Hoe interessant een DIY ook mag klinken, het kost wat moeite om het voor elkaar te krijgen. Door de Instructables-website bladeren is een geweldige manier om je doe-het-zelf-aspiraties te starten en zo ben ik eerder begonnen met het bouwen van een aantal van mijn projecten, maar ik had nooit gedacht dat ik er een zou maken.

Net toen de kans op mijn pad kwam, heb ik een fietsindicator gemaakt met een minimalistisch ontwerp en touch-enabled. Ik weet dat er veel Instructables of online bronnen zijn voor een fietsindicator, maar de meeste namen wat meer ruimte in beslag of waren niet slim genoeg om ze op een bepaalde manier aan te passen. Als u op zoek bent naar een indicator die slim genoeg is om aan uw behoeften te voldoen en u de kans geeft om ze aan te passen aan uw behoeften, dan is deze Instructable iets voor u!

Waarom fietsindicator?

Ik hou van fietsen door de stad! Ik pak mijn fiets en ga gewoon 's ochtends of' s avonds een ritje maken. Soms is het 's nachts moeilijk om te rijden, omdat het verkeer achter je je niet kan opmerken en dat is een gevaarlijk teken. Daarom wilde ik zelf een knipperlicht bouwen met alle materialen die ik thuis had en het ziet er ook geweldig uit op de fiets als je door de stad rijdt en de knipperlichten AAN zet!

Een project maken zonder problemen, gebeurt niet! Maar ik zal je alle fouten vertellen die ik heb gemaakt tijdens het bouwen van dit, als een "handige tip", zodat je ze niet probeert te maken. De YouTube-video bevat een illustratie van hoe het project is gebouwd, kleine animaties om te laten zien hoe de dingen werken en hoe de indicator er op de weg uitziet! De meest uitgebreide informatie wordt gegeven in deze Instructable. Naarmate je verder gaat, zal ik de segmenten van mijn YouTube-video bij elke stap taggen als "Tijdlijn: ", zodat je kunt zien hoe dingen praktisch werken. U kunt meer informatie krijgen door op de gemarkeerde links te klikken.

Kenmerken van dit project:

  • Indicatie rechtsaf:
  • Linksaf Indicatie:
  • Nachtzicht Indicatie
  • Aanraakfunctie

Stap 1: Materialen om aan de slag te gaan

Componenten testen
Componenten testen
  • Weerstanden (330 ohm en 120 ohm): 330 ohm en 120 ohm
  • Raspberry Pi 3: RPi 3
  • Breadboard: Breadboard
  • Doorverbindingsdraden (mannelijk-mannelijk, mannelijk-vrouwelijk, vrouwelijk-vrouwelijk): verbindingsdraden
  • Meeraderige draden: meeraderige draad
  • Capacitieve aanraaksensor (TTP223) - (2): Link
  • RGB LED's (type gemeenschappelijke kathode) - (13): RGB LED gemeenschappelijke kathode
  • Normale LED's - (2): LED
  • Soldeermaterialen: Soldeerset
  • Perf Boards: Perf Board
  • Powerbank: Powerbank
  • 1 micro Farad elektrolytische condensator: elektrolytische condensator
  • LDR (lichtafhankelijke weerstand): LDR
  • Kabelbinders: Kabelbinders
  • Kabel Concealer: Kabel Concealer
  • Acrylverf en penselen (optioneel): verf en penselen
  • Twee opbergdozen voor montage. (1 groot en 1 middelgroot)

Houd altijd een extra hoeveelheid bij zoals hierboven vermeld. Ik heb de componenten op Amazon gekoppeld en een best-buy-kit voor soldeermaterialen!

Tijdlijn: materialen verzamelen

Stap 2: Componenten testen

Componenten testen
Componenten testen
Componenten testen
Componenten testen
Componenten testen
Componenten testen

Laten we uw componenten op de proef stellen! Dit is erg handig om de componenten te scheiden die om de een of andere reden beschadigd zijn of raar doen en ook in deze fase kun je de eerste hands-on ervaring met de componenten opdoen en een beetje leren voordat je het hele project gaat bouwen.

Test voor het type RGB-led

Er zijn twee soorten RGB-leds die we op de markt vinden. Het gemeenschappelijke kathodetype en het gemeenschappelijke anodetype.

Dit is een handige tip (hoewel groter) omdat ik de LED's heb aangesloten zoals te zien is in deze video hier en de LED niet oplicht zoals verwacht, zelfs niet nadat ik het circuit verschillende keren had gecontroleerd. Toen realiseerde ik me dat er twee soorten van deze LED zijn en toen ik door de datasheet ging, kreeg ik eindelijk een oplossing! Het probleem met mijn circuit was dat de gemeenschappelijke kathodepin was aangesloten op 3,3 V zoals vermeld en ik had de GPIO-pin op HOOG gehouden, zodat zowel de gemeenschappelijke kathodepin als de andere 3 pinnen hetzelfde potentiaal hadden.

Oplossing: ik heb de gemeenschappelijke kathodepin met de grond verbonden en de LED ging branden! De reden dat ik mijn code niet heb gewijzigd om de GPIO-pinnen LAAG te houden, omdat we later meer LED's zullen gebruiken en de RPi ons slechts twee pinnen op 3,3 V geeft, die we ook voor andere doeleinden nodig hebben!

Hoe te testen voor het type?

Houd de multimeter in continuïteitsmodus. Tik op de langste kabel met de rode punt van de multimeter en tik met de zwarte punt op een van de andere kabels. Als de LED oplicht door de bovenstaande stap uit te voeren, is het een Common Anode RGB LED. Als dit niet het geval is, keert u de multimeterpunt nu om. Tik op de langste kabel met een zwarte punt en op de rode punt met andere kabels. Nu zal het oplichten om aan te geven dat de LED een Common Cathode RGB LED is.

Handige tip: ik heb het gemeenschappelijke kathodetype in dit project gebruikt. Probeer alleen deze typen te krijgen, maar maak je geen zorgen als het andere type beschikbaar is. De circuitverbindingen blijven hetzelfde, het enige verschil moet worden gemaakt in de code die ik als opmerking zal geven naast de eigenlijke coderegel waar je moet veranderen. Haal adem.

Tijdlijn: RGB testen

Referentie: RGB testen

RGB-LED brandt

Bekijk hiervoor het aansluitschema in de bovenstaande afbeeldingen en sluit aan volgens de pinnen via een breadboard (om het veilig te houden om mee te beginnen).

ROOD: Pin 11 (330 ohm weerstand)

GROEN: Pin 13 (120 ohm weerstand)

BLAUW: Pin 15 (120 ohm weerstand)

De weerstandswaarden variëren als gevolg van de variërende voorwaartse spanningen van de kabels.

Nadat u ze correct hebt aangesloten, codeert u de RPi in de ingebouwde python-IDE.

importeer RPi. GPIO als GPIO

#De pinnummers komen overeen met het exacte nummer op de RPi GPIO Red_pin = 11 Green_pin = 13 Blue_pin = 15 #Connect Common kathode pin to Pin 6 def turnOn(pin): GPIO.setmode(GPIO. BOARD) GPIO.setup(pin, GPIO. OUT) GPIO.output (pin, GPIO. HIGH) #GPIO.output (pin, GPIO. LOW) voor algemeen anodetype 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("Typ uw commando: ") if cmd == "rood aan ": #type invoercommando's zoals precies vermeld 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("Geen geldig commando") behalve KeyboardInterrupt: GPIO.cleanup()

Ik verwees naar deze Instructable, bekijk dit eens voor een gedetailleerde beschrijving en de code!

Met dezelfde code hierboven kunt u controleren op meerdere LED's door ze parallel op het breadboard aan te sluiten en het enkele punt van een van de met elkaar verbonden pinnen te verwijderen. Gebruik verschillende weerstandswaarden voor elke pin om de helderheid van uw LED's te controleren

Handige tip: Zorg ervoor dat u hetzelfde pin-type parallel aansluit. Dat wil zeggen, de rode pin van de ene LED is alleen verbonden met de rode pin van de andere LED.

Tijdlijn: laat ze gloeien!

TouchPad-testen

De circuitaansluiting is zoals hier getoond (Tijdlijn). Sluit ze aan zoals weergegeven en test uw touchpads met behulp van de volgende code.

Code:

importeer RPi. GPIO als GPIO

van 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) # We kunnen zowel de bovenstaande verklaringen samen 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") behalve KeyboardInterrupt: GPIO.cleanup() #CTRL-C om af te sluiten

Een LED testen

Raadpleeg deze geweldige instructable voor het testen van uw LED!

Nadat u alle bovenstaande componenten hebt getest, bent u klaar om de grotere versie ervan te bouwen.

Stap 3: Het indicatorpaneel solderen

Het indicatorpaneel solderen
Het indicatorpaneel solderen
Het indicatorpaneel solderen
Het indicatorpaneel solderen
Het indicatorpaneel solderen
Het indicatorpaneel solderen

Als solderen nieuw voor u is, bekijk dan deze tutorial om hier enkele basisprincipes te leren (Hoe te solderen). Als je een pro bent in solderen, laten we dan beginnen!

Het indicatorpaneel

U vindt de illustratie van hoe u ze op het perf-bord moet solderen in de afbeeldingen hierboven.

We gebruiken 13 RGB LED's voor het paneel. Scheid ze in drie secties: links, rechts en in het midden om dienovereenkomstig te solderen.

Belangrijk: Afstand van de LED's

Ik heb 3 rijen tussen de LED's gelaten. Zoals te zien is op de tweede foto. Dit is belangrijk voor het LED-paneel om er goed uit te zien en aan te voelen. We willen niet dat de LED's te ver weg zijn om de ruimte te vergroten of te dichtbij om het licht niet van veraf te kunnen onderscheiden.

Handige tip: begin met het solderen van alle Common Cathode Pins eerst

Handige tip: gebruik meeraderige draden om de LED's met elkaar te verbinden, omdat ze minder stevig en gemakkelijk te buigen zijn. U kunt de extra cut-off pinnen van de LED's gebruiken om de kortere afstanden te verbinden

Rechter gedeelte: (5 LED's)

  • Verbind alle rode pinnen met elkaar!
  • Verbind alle groene pinnen met elkaar!
  • Verbind alle gemeenschappelijke kathodepennen met elkaar!

Linker gedeelte: (5 LED's)

  • Verbind alle rode pinnen met elkaar!
  • Verbind alle groene pinnen met elkaar!
  • Verbind alle gemeenschappelijke kathodepennen met elkaar!

Middensectie: (3 LED's)

Handige tip: dit gedeelte vereist voldoende voorzichtigheid. Soldeer niet alle pinnen aan elkaar zoals we deden in de bovenstaande twee secties!

  • Verbind alle rode pinnen met elkaar!
  • Sluit alleen de bovenste en onderste LED's aan, groene pin.
  • Verbind alle gemeenschappelijke kathodepennen met elkaar!

Draden

We hebben langere draden nodig om het paneel op het GPIO-bord aan te sluiten.

Handige tip:

  • Gebruik enkelstrengige draden! Ze zijn stevig genoeg om mechanische belastingen te weerstaan!
  • Houd de draden iets langer dan de werkelijke lengte die nodig is tussen het paneel en de RPi (dit is erg handig bij het later beheren van de draden! (Tijdlijn: Metingen)
  • Isoleer na het solderen! Erg belangrijk

Gebruik een jumperdraad en een enkelstrengige draad om te solderen. Het ene uiteinde van de jumperdraad moet een vrouwelijke connector zijn. Soldeer ze zoals hier getoond (tijdlijn)

Kleur de draden als rood, groen en zwart. wat overeenkomt met respectievelijk de rode pin, de groene pin en de gemeenschappelijke kathodepin.

We hebben 3 zwarte draden, 3 rode draden en 3 groene draden nodig.

Zodra de draden klaar zijn. Soldeer de draden aan de indicatie-LED's.

Handige tips:

  • Zorg ervoor dat de LED's zijn gesoldeerd volgens de gegeven aansluitingen.
  • Zorg ervoor dat u de juiste weerstandswaarden op hun plaats hebt gesoldeerd. Als de waarden worden gewijzigd, heeft dit invloed op de helderheid van de LED's
  • Een manier om ervoor te zorgen dat al uw LED's werken, is door de multimeter-meter te gebruiken die in stap 2 wordt gegeven. Dit is erg handig, omdat u weet dat als er kortsluiting is, de LED's niet oplichten.
  • Strip de uiteinden van de draden niet langer dan nodig is. Dit zal moeilijk zijn om ze op hun plaats te houden en ook een groter risico op kortsluiting.
  • Gebruik meeraderige draad voor verbinding tussen LED's.
  • Gebruik enkelstrengs draad om de secties op RPi aan te sluiten.

Stap 4: Stel het indicatorpaneel op de proef

Stel het indicatorpaneel op de proef
Stel het indicatorpaneel op de proef
Stel het indicatorpaneel op de proef
Stel het indicatorpaneel op de proef
Stel het indicatorpaneel op de proef
Stel het indicatorpaneel op de proef

Hulde! Als je het paneel goed hebt gesoldeerd. Laten we nu verder gaan met het coderen van de indicator!

Zoals eerder vermeld, geven we een bocht naar rechts, een bocht naar links en het nachtzicht aan/uit.

Raadpleeg de aansluiting van het circuit in stap 3.

Sluit de draden van het paneel aan zoals hieronder vermeld:

  • Rood Rechts -- Pin 7
  • Groen Rechts -- Pin 11
  • Gemeenschappelijke kathode rechts -- Pin 6 (GND)
  • Rood links -- Pin 13
  • Groen links -- Pin 15
  • Gemeenschappelijke kathode links -- Pin 9 (GND)
  • Midden Rood -- Pin 16
  • Centrum Groen (boven en onder) -- Pin 18"
  • Centrale gemeenschappelijke kathode -- Pin 14 (GND)

Testcode:

importeer RPi. GPIO als GPIO

from time import sleep #Connect volgens onderstaande pinnummers 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 ("Rechts afslaan") blink (Green_right, Green_top_bottom, 0) def left_turn(): print ("Links afslaan") blink(Green_left, Green_top_bottom, 0) def blink(pin1, pin2, pin3): if(pin3 == 0): GPIO.setup([pin1, pin2], GPIO. OUT) voor x binnen bereik (10): GPIO.output ([pin1, pin2], GPIO. HIGH) slaap (0.5) GPIO.output ([pin1, pin2], GPIO. LOW) slaap (0.5) anders: GPIO.setup([pin1, pin2, pin3], GPIO. OUT) voor x binnen bereik(10): GPIO.output([pin1, pin2, pin3], GPIO. HIGH) slaap (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(" Test-LED voor: ") if cmd == "rechtsaf": right_turn() elif cmd == "linksaf": left_turn() elif cmd == "nachtzicht": night_sight() else: print("Ongeldige opdracht") behalve Ke yboardInterrupt: GPIO.cleanup()

Als uw paneel alle testfasen wist zoals in de code, goed gedaan! Maak je klaar voor de volgende stap

Als het paneel niet oplicht, zorg er dan voor dat je alle stappen correct hebt gevolgd en de handige tips eerder hebt doorgenomen. Als het probleem zich blijft voordoen, kunt u hieronder een opmerking plaatsen, ik sta klaar om u te helpen.

Tijdlijn: Test ONE (Bekijk de video voor het werkende prototype)

Stap 5: Het indicatorpaneel integreren met het touchpad

Het indicatorpaneel integreren met het touchpad
Het indicatorpaneel integreren met het touchpad
Het indicatorpaneel integreren met het touchpad
Het indicatorpaneel integreren met het touchpad
Het indicatorpaneel integreren met het touchpad
Het indicatorpaneel integreren met het touchpad

Aansluiten op de RPi

Maak de aansluitingen zoals weergegeven in de afbeelding hierboven.

Rechter Paneel

Touchpad:

  • GND-pin -- Pin 34
  • VCC-pin -- Pin 1
  • SIG-pin -- Pin 29

LED:

Anode (+) pin -- Pin 33

Linkerpaneel

Touchpad:

  • GND-pin -- Pin 30
  • VCC-pin -- Pin 17
  • SIG-pin -- Pin 31

LED:

Anode (+) pin -- Pin 35

Gemeenschappelijke GND: Pin 39 (voor zowel de kathode van de LED's) - Common Ground Solderen (Tijdlijn)

Testcode:

importeer RPi. GPIO als GPIO

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 geactiveerd = 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(kanaal): GPIO.output (right_led, GPIO. HIGH) globaal getriggerd getriggerd = 1 print ("Tuning Right") blink(Green_right, Green_top_bottom) def left_turn(channel): GPIO.output(left_led, GPIO. HIGH) global getriggerd getriggerd = 1 print ("Draaiend 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) voor x binnen bereik (10): GPIO.output ([pin1, pin2], GPIO. HIGH) slaap (0,5) GPIO.outpu t([pin1, pin2], GPIO. LOW) sleep(0.5) GPIO.output([right_led, left_led], GPIO. LOW) global getriggerd getriggerd = 0 def night_sight(): while (True): GPIO.setup([Red_center, Red_left, Red_right], GPIO. OUT) globaal geactiveerd indien (geactiveerd == 0): print ("Night Sight ON") 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 ("Night Sight OFF") GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) probeer: night_sight() behalve KeyboardInterrupt: GPIO.cleanup()

Raak het touchpad aan om je licht te zien gloeien

Tijdlijn (zonder indicatie-LED): Test twee

Tijdlijn (met indicatie-LED): Test 3

Code uitleg: We willen dat het nachtzicht continu draait en wanneer we het touchpad aanraken, moet het stoppen en de functie van het touchpad uitvoeren. Om dit tegelijkertijd te doen, gebruiken we iets dat bekend staat als "Interrupts" in python. Dit stelt ons in staat om onze normale code uit te voeren die hier het nachtzicht is en het activeert ook een gebeurtenis wanneer een aanraking wordt gedetecteerd. We gebruiken een geactiveerde variabele als een vlag om het nachtzicht te stoppen.

Voor meer informatie over Interrupts, check deze link.

Soldeer het paneel

Laten we nu de touchpad-panelen solderen die naar het stuur van de fiets gaan. Raadpleeg de aansluitingen zoals aangegeven in de afbeelding hierboven.

Nu u uw LED en het touchpad hebt getest, bent u klaar om te gaan. Als je nog niet hebt getest, raadpleeg dan deze stap en de vorige stappen.

Plaats het touchpad in de buurt van het stuur, zoals in de video wordt getoond. Dat wil zeggen, voor het rechter touchpad bevindt het touchpad zich aan de rechterkant en links aan de linkerkant. Evenzo, voor het linker touchpad, bevindt de led zich aan de rechterkant en het touchpad aan de linkerkant, waardoor het gemakkelijker is voor de duim om te bereiken.

PS: ik heb het touchpad niet op het perf-bord gesoldeerd omdat ik het opnieuw zou gebruiken. Daarom heb ik het gewoon met dubbelzijdig plakband op het paneel geplakt.

Verbind het paneel met RPi met langere draden

Stap 6: Maak het slim

Maak het slim!
Maak het slim!
Maak het slim!
Maak het slim!
Maak het slim!
Maak het slim!

Ja! Nu we al onze essentiële onderdelen van de indicator in gebruik hebben. Laten we een stap verder gaan om het slim te maken.

Smart definieert hier ook besparen op de batterij. Zoals je misschien hebt gemerkt, is het nachtzicht altijd ingeschakeld en soms is dit misschien niet nodig op een heldere zonnige dag. Om dit probleem op te lossen, kunnen we een LDR (Light Dependent Resistor) integreren om ons de gegevens van de lichtintensiteit te geven die we kunnen verzamelen en onze indicator dienovereenkomstig kunnen verwerken.

De LDR. testen

Ik verwees naar deze website voor het testen van de LDR om de lichtintensiteit te controleren en welke waarde deze retourneert.

Raadpleeg de hierboven getagde website voor het circuit en de voorbeeldcode voor de werking van de LDR.

De LDR integreren in onze code

Soldeer de LDR aan het rechterpaneel van het touchpad zoals weergegeven in het bovenstaande aansluitschema.

Na het op de juiste plaats solderen van de pinnen is het tijd voor het laatste stukje coderen. De definitieve code!

  • Sluit het gemeenschappelijke punt van de kathode (-) van de condensator en de LDR aan op pin 36 op de RPi
  • De anode van de condensator is verbonden met het Common Ground-punt waarnaar wordt verwezen in stap 5

Definitieve code:

importeer RPi. GPIO als GPIO

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 geactiveerd = 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(kanaal): GPIO.output(right_led, GPIO. HIGH) globaal getriggerd getriggerd = 1 print ("Rechts draaien") blink(Green_right, Green_top_bottom) def left_turn(channel): GPIO.output(left_led, GPIO. HIGH) global getriggerd getriggerd = 1 print ("Links draaien") 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_sens (ldr): count = 0 #Output op de pin voor GPIO.setup(ldr, GPIO. OUT) GPIO.output(ldr, GPIO. LOW) sleep(0.1) #Chang e de pin terug naar input GPIO.setup(ldr, GPIO. IN) #Count totdat de pin hoog gaat terwijl (GPIO.input(ldr) == GPIO. LOW): count += 1 return count def blink (pin1, pin2): GPIO.setup([pin1, pin2], GPIO. OUT) voor x binnen bereik(10): GPIO.output([pin1, pin2], GPIO. HIGH) slaap (0.5) GPIO.output([pin1, pin2], GPIO. LOW) sleep(0.5) GPIO.output([right_led, left_led], GPIO. LOW) global getriggerd = 0 def night_sight(): while (True): GPIO.setup([Red_center, Red_left, Red_right], GPIO. OUT) global getriggerd if(light_sensing(ldr) > 7800): if (triggered == 0): print ("Night Sight ON") 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 ("Night Sight OFF") GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) probeer: night_sight() behalve KeyboardInterrupt: GPIO.cleanup()

Voila! En de indicator is klaar om te rollen.

Handige tip: Voordat u de RPi en andere componenten op de fiets monteert, moet u dit programma goed testen! Voer het een paar keer uit om eventuele fouten te debuggen.

Stap 7: schilderen en monteren

Schilderen en monteren
Schilderen en monteren
Schilderen en monteren
Schilderen en monteren
Schilderen en monteren
Schilderen en monteren

Vereiste materialen:

  • Draadknip-/stripgereedschappen
  • Eén grote opbergdoos die in de Raspberry Pi past
  • Een kleine opbergdoos voor het indicatorpaneel
  • Verf
  • Verf kwasten

Begin met het schilderen van het indicatorpaneel en de touchpadpanelen met zwarte kleur. Ik heb hier acrylverf gebruikt, je kunt ze naar keuze gebruiken, wat goed past bij het perf-bord. Gebruik een zwarte achtergrond om het LED-paneel levendig en meer op te laten vallen. Maak de gaten met een verwarmde schroevendraaier of gebruik een metalen voorwerp om het plastic te smelten.

Opmerking: wees voorzichtig bij het maken van gaten.

Tijdlijn:Verf

Handige tip: ik heb plastic dozen gebruikt en de verf komt er gemakkelijk af. Zorg ervoor dat je verf van goede kwaliteit gebruikt

Zodra de indicator en de panelen zijn geverfd, droogt u ze in de zon en maakt u ze klaar voor montage.

Ik heb extra randen van het perforatiebord in het indicatorpaneel en het voorpaneel gesneden om ruimte te besparen.

Check de video voor montage!

Tijdlijn: Avengers! Monteren. (Montage van het indicatorpaneel en RPi met dozen)

Zoals te zien is in de video, leg je de draden dienovereenkomstig door drie gaten in de grotere doos te maken. Een voor RPi powerbank-draad, een voor de touchpadpanelen en een voor het indicatorpaneel. Er is slechts één gat nodig voor de kleinere doos.

Handige Tip: Controleer de isolatie van de draden en controleer of de draden goed zijn gesoldeerd voordat u ze in de doos aansluit.

Stap 8: Testen op afstand met VNC en definitieve code

Testen op afstand met VNC en definitieve code
Testen op afstand met VNC en definitieve code
Testen op afstand met VNC en definitieve code
Testen op afstand met VNC en definitieve code

Nog een laatste test voordat de indicator helemaal klaar is. Verbind uw RPi met de VNC Viewer en voer het programma uit.

Ik gebruik altijd een VNC-server om het programma uit te voeren en eventuele fouten in het programma te debuggen. Zo kan ik de RPi direct op de plek plaatsen waar ik wil testen zonder de monitor extern aan te sluiten.

Kijk op deze pagina om uw RPi te verbinden met VNC Server. (VNC-server)

Nadat u de RPi met de VNC-server hebt verbonden. U kunt de code op de virtuele desktop uitvoeren en fouten opsporen.

Tijdlijn:Uitvoeren bij opstarten

Handige tip: zodra je je Raspberry Pi met de virtuele desktop hebt verbonden, log je in met het IP-adres van de RPi. Maar als u een foutmelding krijgt waarin staat dat de RPi de verbinding heeft geweigerd, komt dit door de wijziging van het IP-adres in de RPI. Dit kan gebeuren wanneer u uw router of een wifi-hotspot opnieuw opstart en vervolgens probeert in te loggen met het oude adres. De router wijst elke keer dat u hem opnieuw opstart een nieuw IP-adres toe. Maar als u zich het oude IP-adres van de RPi herinnert, verhoogt u het laatste cijfer met 1 en logt u in. Voorbeeld: als het oude IP-adres 190.148.1.100 is, logt u in met 190.148.1.101

Als je hebt gecontroleerd of alles goed werkt, is het tijd voor de eindmontage.

We kunnen altijd geen virtuele desktop hebben om het python-script te controleren of uit te voeren. Dus laten we dat doen bij het opstarten.

We willen dat ons programma wordt uitgevoerd zodra de RPi opstart. Kijk op deze website voor meer informatie hierover!

Als je RPi op Auto-login setup staat, ga dan verder;

Voer de volgende opdrachten uit in de terminal van de RPi

sudo nano /etc/profile

Scroll naar beneden en voeg de volgende regel toe:

sudo python file_path &

Het bestandspad verwijst hier naar het pad van het python-bestand waar uw uiteindelijke code is opgeslagen.

Opmerking: de Ampersand (&) aan het einde van het bestand moet worden toegevoegd zodat uw programma parallel loopt met het opstarten van het systeem. Omdat ons programma een eindeloze lus bevat, is deze stap verplicht, zodat zelfs als het programma niet werkt zoals verwacht, we toch de RPi-desktop kunnen gebruiken om de instellingen te wijzigen.

Hierna drukt u op CTRL-X en vervolgens op YDruk tweemaal op Enter en u bent terug bij de opdrachtterminal.

Start de Pi. opnieuw op

Nu zou de code moeten worden uitgevoerd bij het opstarten

Stap 9: Kabelbeheer en eindmontage

Kabelbeheer en eindmontage
Kabelbeheer en eindmontage
Kabelbeheer en eindmontage
Kabelbeheer en eindmontage
Kabelbeheer en eindmontage
Kabelbeheer en eindmontage

Gefeliciteerd! bij het afronden van dit project. Ik heb het het woord Minimal gegeven, zoals je hebt gezien, hebben we minder LED's gebruikt om alle benodigde indicaties weer te geven en ook met aangepaste kleuren. Gebruik gerust verschillende kleuren voor uw LED's, zoals geel voor de richtingaanwijzers of andere.

Als je dit project hebt gedaan, klik dan op "I made It" en deel je ervaring. Deel uw mening en ook eventuele suggesties of opmerkingen over dit project. Dat hoor ik graag!

Kabelbeheer

Ja! Zoals je misschien hebt gemerkt, lopen er zoveel draden in en rond de cycli en het beheer ervan is hectisch. Ik gebruikte kabellabels, isolatietapes en kabelmantel om de draden te verbergen en schilderde ze ook zwart zoals je op de foto hebt gezien.

Handige tip: omdat je extra centimeters van je kabels hebt gelaten dan nodig is, is het nu handig om ze goed te beheren zonder ze te belasten! Als een van je LED's oplicht en andere niet, zelfs als je alles goed hebt gedaan, is het probleem de jumperdraden aangesloten op de RPi, zal er een los contact zijn. Als dit aanhoudt, gebruik dan een mannelijke naar vrouwelijke jumperdraad om de draad te verlengen en aan te sluiten. Gebruik kabelbinders om de draden op hun plaats te houden, zodat ze niet kunnen bewegen.

Nu is de indicator helemaal klaar voor een ritje! Geniet ervan

PS: In een verdere instructable zou ik heel graag het aantal draden in het circuit willen verminderen en met een beter plan komen. Als ik dat doe, zal ik daarover een Instructable delen!

Stap 10: Enkele foto's van de indicator

Enkele foto's van de indicator
Enkele foto's van de indicator
Enkele foto's van de indicator
Enkele foto's van de indicator
Enkele foto's van de indicator
Enkele foto's van de indicator
Enkele foto's van de indicator
Enkele foto's van de indicator

Dank u voor het lezen van deze Instructable. Ik hoop dat je er net zo van genoten hebt als ik bij het maken ervan

Tijdlijn: laatste test In het bovenstaande segment kun je zien dat zodra de kamer donkerder wordt, de "Night Sight" AAN gaat en naarmate het helderder wordt, wordt hij onmiddellijk uitgeschakeld!

Tijdlijn:Klaar om te rollenSommige video's die ik heb gemaakt om de indicator in de schijnwerpers te zetten. Alle credits voor het fietsen van mijn zussen voor de video!