Cuprins:

Indicator de bicicletă minimalist, tactil !: 10 pași (cu imagini)
Indicator de bicicletă minimalist, tactil !: 10 pași (cu imagini)

Video: Indicator de bicicletă minimalist, tactil !: 10 pași (cu imagini)

Video: Indicator de bicicletă minimalist, tactil !: 10 pași (cu imagini)
Video: 50 САМЫХ ИННОВАЦИОННЫХ ЛИЧНЫХ ТРАНСПОРТНЫХ СРЕДСТВ 2021–2022 гг. 2024, Noiembrie
Anonim
Image
Image

Bună! Acesta este primul meu instructabil. Întotdeauna am vrut să fac lucruri de la zero doar pentru a vedea cum funcționează și cui nu îi plac lucrurile de bricolaj (Do it yourself) atunci când poți modifica ceva în funcție de nevoile tale, nu? Oricât de interesant ar părea un DIY, este nevoie de un pic de efort pentru ca acest lucru să se întâmple. Privirea prin site-ul Instructables este o modalitate excelentă de a începe aspirațiile dvs. DIY și așa am început să construiesc unele dintre proiectele mele mai devreme, dar nu m-am gândit niciodată că voi face unul.

Așa cum mi-a venit ocazia, am creat un indicator pentru biciclete cu un design minimalist și tactil. Știu că există multe instrumente instructabile sau surse online pentru un indicator de bicicletă, dar cei mai mulți dintre ei au ocupat mai mult spațiu sau nu au fost suficient de inteligenți pentru a le modifica într-un mod anume. Dacă sunteți în căutarea unui indicator suficient de inteligent pentru a vă satisface nevoile și care vă oferă șansa de a le modifica în funcție de nevoile dvs., atunci acest instructiv este pentru dvs.!

De ce Indicatorul bicicletei?

Ador ciclismul prin oraș! Îmi iau ciclul și merg doar la plimbare fie dimineața, fie seara. Uneori, noaptea, este dificil să circuli, deoarece traficul din spatele tău nu te va putea observa și este un semn periculos. De aceea am vrut să construiesc eu însumi un Indicator cu toate materialele pe care le aveam cu mine acasă și, de asemenea, arată minunat pe bicicletă în timp ce călătoriți în oraș aprinzând indicatoarele!

Realizarea unui proiect fără a fi nevoie să se confrunte cu probleme, nu se întâmplă! Dar vă voi spune toate greșelile pe care le-am făcut, în timp ce construiam acest lucru, ca „Sfat la îndemână”, astfel încât să nu încercați să le faceți. Videoclipul YouTube conține o Ilustrație a modului în care este construit proiectul, mici animații pentru a transmite modul în care funcționează lucrurile și cum arată indicatorul pe drum! Cele mai elaborate informații sunt date în acest instructabil. Pe măsură ce continuați, voi eticheta segmentele videoclipului meu de pe YouTube ca „Cronologie:” la fiecare pas, pentru a putea vedea cum funcționează practic lucrurile. Puteți obține mai multe informații făcând clic pe linkurile evidențiate furnizate.

Caracteristicile acestui proiect:

  • Indicarea virajului la dreapta
  • Indicarea virajului la stânga
  • Indicație de vedere nocturnă
  • Touch-Enabled

Pasul 1: Materiale pentru a începe

Componente de testare
Componente de testare
  • Rezistoare (330 ohmi și 120 ohmi): 330 ohmi și 120 ohmi
  • Raspberry Pi 3: RPi 3
  • Breadboard: Breadboard
  • Jumper Wires (bărbat-bărbat, bărbat-femeie, femeie-femeie): Jumper Wires
  • Firuri cu mai multe fire: Fir cu mai multe fire
  • Senzor tactil capacitiv (TTP223) - (2): Link
  • LED-uri RGB (tip catod comun) - (13): catod comun LED RGB
  • LED-uri normale - (2): LED-uri
  • Materiale de lipit: Set de lipit
  • Panouri Perf: Panou Perf
  • Powerbank: Powerbank
  • 1 condensator electrolitic micro Farad: condensator electrolitic
  • LDR (rezistență dependentă de lumină): LDR
  • Legături de cablu: Legături de cablu
  • Cable Concealer: Cable Concealer
  • Vopsea și perii acrilice (opțional): Vopsea și perii
  • Două cutii de depozitare pentru asamblare. (1 mare și 1 mediu)

Păstrați întotdeauna o cantitate suplimentară în ceea ce privește cele menționate mai sus. Am legat componentele de pe Amazon și unele dintre cele mai bune kituri de cumpărare pentru materiale de lipit!

Cronologie: Adunați materiale

Pasul 2: Testarea componentelor

Componente de testare
Componente de testare
Componente de testare
Componente de testare
Componente de testare
Componente de testare

Să punem componentele la încercare! Acest lucru este foarte util pentru a separa componentele deteriorate sau care acționează ciudat din anumite motive și, de asemenea, această fază vă permite să obțineți experiența inițială hands-on cu componentele și să învățați puțin înainte de a începe construirea întregului proiect.

Testați tipul de LED RGB

Există două tipuri de LED-uri RGB pe care le găsim pe piață. Tipul de catod comun și tipul de anod comun.

Acesta este un sfat la îndemână (deși mai mare), deoarece am conectat LED-urile așa cum se vede în acest videoclip aici, iar LED-ul nu s-a aprins așa cum era de așteptat chiar și după verificarea încrucișată a circuitului de mai multe ori. Apoi mi-am dat seama că există două tipuri de LED-uri și, trecând prin foaia tehnică, am obținut în cele din urmă o soluție! Problema cu circuitul meu a fost că pinul catodic comun a fost conectat la 3,3V așa cum am menționat și l-am păstrat de pinul GPIO la HIGH, astfel încât atât pinul catodic comun, cât și ceilalți 3 pini erau la același potențial.

Soluție: am conectat pinul catodic comun la sol și LED-ul s-a aprins! Motivul pentru care nu mi-am schimbat codul pentru a menține pinii GPIO LOW deoarece vom folosi mai multe LED-uri mai târziu, iar RPi ne oferă doar doi pini la 3,3 V, de care avem nevoie și pentru alte scopuri!

Cum se testează tipul?

Păstrați multimetrul în modul continuitate. Atingeți cel mai lung cablu cu vârful roșu al multimetrului și cu vârful negru, atingeți oricare dintre celelalte cabluri. Dacă LED-ul se aprinde efectuând pasul de mai sus, acesta este un LED RGB comun cu anod. Dacă nu, inversați vârful multimetrului acum. Atingeți cel mai lung cablu cu un vârf negru și vârful roșu cu orice alte cabluri. Acum se va aprinde arătând că LED-ul este un LED RGB cu catod comun.

Sfat la îndemână: am folosit tipul de catod comun în acest proiect. Încercați să obțineți numai aceste tipuri, dar chiar dacă celălalt tip este disponibil nu vă faceți griji. Conexiunile de circuit rămân aceleași, singura diferență trebuie făcută în codul pe care îl voi da drept comentariu lângă linia de cod efectivă în care trebuie să vă schimbați. Ia o pauza.

Cronologie: testați RGB

Referință: Cum se testează RGB

LED-ul RGB se aprinde

Pentru a face acest lucru, verificați schema de conexiune dată în imaginile de mai sus și conectați-vă conform pinilor printr-o placă de măsurare (pentru a o păstra în siguranță pentru început).

ROȘU: Pin 11 (rezistor de 330 ohmi)

VERZ: Pin 13 (rezistor de 120 ohmi)

ALBASTRU: Pin 15 (rezistor de 120 ohmi)

Valorile rezistenței variază din cauza tensiunilor variabile ale cablurilor.

După ce le-ați conectat corect, codificați RPi în IDE-ul său Python încorporat.

importați RPi. GPIO ca GPIO

# Numerele pinului corespund numărului exact de pe RPi GPIO Red_pin = 11 Green_pin = 13 Blue_pin = 15 #Conectați pinul catod comun la Pin 6 def turnOn (pin): GPIO.setmode (GPIO. BOARD) GPIO.setup (pin, GPIO. OUT) GPIO.output (pin, GPIO. HIGH) # GPIO.output (pin, GPIO. LOW) pentru tip anod comun 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 ("Tastați comanda:") if cmd == "red on ": #type comenzi de intrare așa cum s-a menționat exact în interiorul" "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 ("Nu este o comandă validă") cu excepția KeyboardInterrupt: GPIO.cleanup ()

M-am referit la acest instructabil, verificați acest lucru pentru o descriere detaliată și codul!

Folosind același cod de mai sus, puteți verifica mai multe LED-uri împreună conectându-le în paralel pe panoul de control și scoateți singurul punct din oricare dintre pinii conectați împreună. Utilizați valori diferite ale rezistenței pentru fiecare pin pentru a verifica luminozitatea LED-urilor

Sfat la îndemână: asigurați-vă că conectați același paralel tip pin. Adică pinul roșu al unui LED se conectează numai la pinul roșu al celuilalt LED.

Cronologie: faceți-i să strălucească!

Testare TouchPad

Conexiunea circuitului este așa cum se arată aici (Cronologie). Conectați-le așa cum se arată și testați touchpad-urile folosind următorul cod.

Cod:

importați RPi. GPIO ca GPIO

din timp import somn GPIO.setmode (IO. BOARD) touchpad1 = 11 #pin 11 touchpad2 = 13 #pin 13 GPIO.setup (touchpad1, GPIO. IN) GPIO.setup (touchpad2, GPIO. IN) # Putem asocia atât afirmațiile de mai sus împreună ca # GPIO.setup ([touchpad1, touchpad2], GPIO. IN) încercați: în timp ce True: dacă (GPIO.input (touchpad1) == True): print ("Touchpad 1 atins") sleep (2) elif (GPIO.input (touchpad2) == True): print ("Touchpad 2 atins") sleep (2) else: print ("Not Touched") cu excepția KeyboardInterrupt: GPIO.cleanup () # CTRL-C pentru a ieși

Testarea unui LED

Consultați acest minunat instructable pentru testarea LED-ului dvs.!

După ce ați testat toate componentele de mai sus, sunteți gata să construiți versiunea mai mare a acestuia.

Pasul 3: lipirea panoului indicator

Lipirea panoului indicator
Lipirea panoului indicator
Lipirea panoului indicator
Lipirea panoului indicator
Lipirea panoului indicator
Lipirea panoului indicator

Dacă nu sunteți nou în domeniul lipirii, consultați acest tutorial pentru a afla câteva elemente de bază ale acestuia aici (Cum să lipiți). Dacă sunteți un profesionist în lipire, permiteți-ne să începem!

Panoul indicator

Puteți găsi ilustrația despre cum să le lipiți pe tabloul de perfecționare din imaginile de mai sus.

Folosim 13 LED-uri RGB pentru panou. Separați-le în trei secțiuni: stânga, dreapta și centru pentru a lipi în consecință.

Important: Spațierea LED-urilor

Am lăsat 3 rânduri între LED-uri. Așa cum se arată în a doua imagine. Acest lucru este important pentru ca panoul LED să arate și să se simtă bine. Nu vrem ca LED-urile prea departe să crească spațiul sau prea aproape pentru a nu putea distinge lumina de departe.

Sfat la îndemână: începeți prin lipirea mai întâi a tuturor pinilor catodului comun

Sfat la îndemână: utilizați fire multi-șuvițe pentru conectarea LED-urilor împreună, deoarece acestea sunt mai puțin robuste și ușor de îndoit. Puteți utiliza pinii de tăiere suplimentari de la LED-uri pentru a conecta distanțele mai mici

Secțiunea dreaptă: (5 LED-uri)

  • Conectați toți pinii roșii împreună
  • Conectați toate pinii verzi împreună
  • Conectați toți pinii catodului comun

Secțiunea din stânga: (5 LED-uri)

  • Conectați toți pinii roșii împreună
  • Conectați toate pinii verzi împreună
  • Conectați toți pinii catodului comun

Secțiunea centrală: (3 LED-uri)

Sfat util: Această secțiune necesită suficientă precauție. Nu lipiți toți pinii împreună, așa cum am făcut în cele două secțiuni de mai sus!

  • Conectați toți pinii roșii împreună
  • Conectați doar LED-urile superioare și inferioare, Pinul verde.
  • Conectați toți pinii catodului comun

Fire

Avem nevoie de fire mai lungi pentru a conecta panoul la placa GPIO.

Sfat la îndemână:

  • Folosiți fire monocatenare! Sunt suficient de solide pentru a rezista la solicitările mecanice aplicate!
  • Păstrați firele puțin mai lungi decât lungimea reală necesară între panou și RPi (acest lucru este foarte util în timp ce gestionați firele mai târziu! (Cronologie: măsurători)
  • Izolați după lipire! Foarte important

Folosiți un fir jumper și un fir cu un singur fir pentru a lipi. Unul dintre capetele firului jumper trebuie să fie un conector feminin. Vindeți-le așa cum se arată aici (Cronologie)

Codificați culoarea firelor ca roșu, verde și negru. care corespunde pinului roșu, pinului verde și respectiv pinului catodic comun.

Avem nevoie de 3 fire negre, 3 fire roșii și 3 fire verzi.

Odată ce firele sunt gata. Lipiți firele la LED-urile indicatoare.

Sfaturi utile:

  • Asigurați-vă că LED-urile sunt lipite conform conexiunilor date.
  • Asigurați-vă că ați lipit valorile corecte ale rezistenței la locul lor. Dacă valorile sunt modificate, aceasta va afecta luminozitatea LED-urilor
  • O modalitate de a vă asigura că toate LED-urile funcționează este folosind multimetrul indicat la Pasul 2. Acest lucru este foarte util, deoarece veți ști dacă există scurtcircuit, LED-urile nu se vor aprinde.
  • Nu scoateți capetele firelor mai mult decât este necesar. Acest lucru va fi dificil de menținut la locul lor și, de asemenea, un risc mai mare de scurtcircuit.
  • Utilizați cabluri cu mai multe fire pentru conectarea între LED-uri.
  • Utilizați un fir cu un singur fir pentru conectarea secțiunilor la RPi.

Pasul 4: Puneți indicatorul la test

Puneți indicatorul la test
Puneți indicatorul la test
Puneți indicatorul la test
Puneți indicatorul la test
Puneți indicatorul la test
Puneți indicatorul la test

Apreciere! Dacă ați lipit corect panoul. Să continuăm cu codarea indicatorului acum!

După cum s-a menționat mai devreme, vom indica o virare la dreapta, o virare la stânga și porniți / dezactivați vederea nocturnă.

Consultați conexiunea circuitului la Pasul 3.

Conectați firele panoului așa cum se menționează mai jos:

  • Roșu Dreapta - Pinul 7
  • Dreapta verde - Pinul 11
  • Catod comun drept - Pin 6 (GND)
  • Roșu stânga - Pinul 13
  • Stânga verde - Pinul 15
  • Catod comun stânga - Pin 9 (GND)
  • Centrul Roșu - Pinul 16
  • Centrul verde (sus și jos) - Pinul 18
  • Centrul comun catod - Pin 14 (GND)

Cod de testare:

importați RPi. GPIO ca GPIO

din timp import somn #Conectați-vă conform numerelor de pin de mai jos 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") clipire (Green_right, Green_top_bottom, 0) def left_turn (): print ("Turning Left") clipire (Green_left, Green_top_bottom, 0) def clipire (pin1, pin2, pin3): if (pin3 == 0): GPIO.setup ([pin1, pin2], GPIO. OUT) pentru x în intervalul (10): GPIO.output ([pin1, pin2], GPIO. HIGH) sleep (0,5) GPIO.output ([pin1, pin2], GPIO. LOW) sleep (0,5) altceva: GPIO.setup ([pin1, pin2, pin3], GPIO. OUT) pentru x în intervalul (10): ieșire GPIO ([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") clipesc (Red_left, Red_right, Red_center) try: while True: cmd = input (" Test LED pentru: ") if cmd ==" dreapta viraj ": dreapta_turn () elif cmd ==" viraj la stânga ": left_turn () elif cmd ==" vedere de noapte ": night_sight () else: print (" Comandă nevalidă ")) cu excepția Ke yboardInterrupt: GPIO.cleanup ()

Dacă panoul dvs. șterge toate fazele de testare ca în cod, Bine gata! Pregătește-te pentru următorul pas

Dacă panoul nu se aprinde, asigurați-vă că ați urmat corect toți pașii și că ați analizat anterior sfaturile la îndemână. Dacă problema persistă, puteți comenta mai jos, voi fi gata să vă ajut.

Cronologie: Test ONE (Verificați videoclipul pentru prototipul de lucru)

Pasul 5: Integrarea panoului indicator cu touchpad-ul

Integrarea panoului indicator cu touchpad-ul
Integrarea panoului indicator cu touchpad-ul
Integrarea panoului indicator cu touchpad-ul
Integrarea panoului indicator cu touchpad-ul
Integrarea panoului indicator cu touchpad-ul
Integrarea panoului indicator cu touchpad-ul

Conectarea la RPi

Faceți conexiunile așa cum se arată în imaginea de mai sus.

Panoul din dreapta

Touchpad:

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

LED:

Pin anod (+) - Pin 33

Panoul din stânga

Touchpad:

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

LED:

Pin anod (+) - Pin 35

GND comun: Pinul 39 (atât pentru catodul LED-urilor) - lipire la sol comună (cronologie)

Cod de testare:

importați RPi. GPIO ca GPIO

din timp import somn 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 triggered = 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 (canal): GPIO.output (right_led, GPIO. HIGH) global triggered triggered = 1 print ("Turning Right") clip (Green_right, Green_top_bottom) def left_turn (channel): GPIO.output (left_led, GPIO. HIGH) global triggered triggered = 1 print ("Turning Stânga ") clipire (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) pin2): GPIO.setup ([pin1, pin2], GPIO. OUT) pentru x în intervalul (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 triggered triggered = 0 def night_sight (): while (True): GPIO.setup ([Red_center, Red_left, Red_right], GPIO. OUT) global declanșat dacă (declanșat == 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) try: night_sight () cu excepția KeyboardInterrupt: GPIO.cleanup ()

Atingeți touchpad-ul pentru a vă vedea strălucirea luminii

Cronologie (fără LED de indicație): Testul doi

Cronologie (cu LED de indicație): Test 3

Explicația codului: Vrem ca vizorul de noapte să ruleze continuu și atunci când atingem touchpadul, acesta trebuie să se oprească și să execute funcția touchpadului. Pentru a face acest lucru simultan, folosim ceva cunoscut sub denumirea de „întreruperi” în python. Acest lucru ne permite să rulăm codul nostru normal, care este vederea de noapte aici și, de asemenea, declanșează un eveniment atunci când este detectată o atingere. Folosim variabila declanșată ca steag pentru a opri vederea nocturnă.

Pentru mai multe informații despre întreruperi, consultați acest link.

Lipiți panoul

Acum să lipim panourile touchpad-ului care vor merge la ghidonul bicicletei. Consultați conexiunile prezentate în imaginea de mai sus.

Acum că v-ați testat LED-ul și touchpad-ul, sunteți bine să mergeți. Dacă nu ați testat deja, vă rugăm să consultați acest pas și pașii anteriori.

Așezați touchpad-ul lângă ghidon așa cum se arată în videoclip. Adică, pentru touchpad-ul drept, touchpad-ul este în dreapta și stânga în stânga sa. În mod similar, pentru touchpad-ul din stânga, ledul este în dreapta și touchpad-ul din stânga, ceea ce face mai ușor accesul degetului mare.

PS: Nu am lipit touchpad-ul pe placa perf, pentru că urma să îl refolosesc din nou. Prin urmare, tocmai l-am pus pe panou cu bandă dublă.

Conectați panoul la RPi folosind fire mai lungi

Pasul 6: Fă-l inteligent

Fă-l inteligent!
Fă-l inteligent!
Fă-l inteligent!
Fă-l inteligent!
Fă-l inteligent!
Fă-l inteligent!

Da! Acum, că avem toate elementele esențiale ale indicatorului în funcțiune. Să facem un pas mai departe pentru a-l face inteligent.

Aici inteligent definește economisirea bateriei. După cum probabil ați observat, vederea nocturnă este întotdeauna activată și uneori acest lucru ar putea să nu fie necesar într-o zi însorită. Pentru a depăși această problemă, putem integra un LDR (Light Dependent Resistor) pentru a ne oferi datele despre intensitatea luminii pe care le putem colecta și procesa indicatorul nostru în consecință.

Testarea LDR

M-am referit la acest site web pentru a testa LDR pentru a verifica intensitatea luminii și ce valoare returnează.

Consultați site-ul web etichetat mai sus pentru circuit și codul eșantion pentru funcționarea LDR.

Integrarea LDR la codul nostru

Lipiți LDR pe panoul din dreapta al touchpad-ului, așa cum se arată în diagrama de conectare de mai sus.

După lipirea știfturilor în locul potrivit, timpul pentru ultimul bit de codare. Codul final!

  • Conectați punctul comun al catodului (-) condensatorului și al LDR la pinul 36 de pe RPi
  • Anodul condensatorului este conectat la punctul de masă comun menționat la pasul 5

Cod final:

importați RPi. GPIO ca GPIO

din timp import somn 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 triggered = 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 (canal): GPIO.output (right_led, GPIO. HIGH) global triggered triggered = 1 print ("Turning Right") clipire (Green_right, Green_top_bottom) def left_turn (canal): GPIO.output (left_led, GPIO. HIGH) global triggered triggered = 1 print („Turning Left”) clipire (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, bounc (ldr): count = 0 # Output on the pin for GPIO.setup (ldr, GPIO. OUT) GPIO.output (ldr, GPIO. LOW) sleep (0.1) #Chang pinul înapoi la intrarea GPIO.setup (ldr, GPIO. IN) #Count până când pinul se ridică în timp ce (GPIO.input (ldr) == GPIO. LOW): count + = 1 return return def clipire (pin1, pin2): GPIO.setup ([pin1, pin2], GPIO. OUT) pentru x în intervalul (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 triggered triggered = 0 def night_sight (): while (True): GPIO.setup ([Red_center, Red_left, Red_right], GPIO. OUT) global declanșat dacă (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): night_sight () cu excepția KeyboardInterrupt: GPIO.cleanup ()

Voila! Iar indicatorul este gata să se rostogolească.

Sfat la îndemână: Înainte de a asambla RPi și alte componente la ciclu, asigurați-vă că testați corect acest program! Rulați-l de câteva ori pentru a depana orice erori.

Pasul 7: Pictură și asamblare

Pictură și Asamblare
Pictură și Asamblare
Pictură și Asamblare
Pictură și Asamblare
Pictură și Asamblare
Pictură și Asamblare

Materiale necesare:

  • Unelte de tăiere / decupare a firelor
  • O cutie mare de depozitare pentru a se potrivi în Raspberry Pi
  • O cutie mică de depozitare pentru a se potrivi cu panoul indicator
  • A picta
  • Pensule

Începeți prin vopsirea panoului indicator și a panourilor tactile cu culoare neagră. Am folosit Vopsele acrilice aici, le puteți folosi la alegere, care se amestecă bine cu placa de perf. Folosiți un fundal negru, astfel încât să faceți panoul LED vibrant și mai remarcabil. Faceți găurile folosind o șurubelniță încălzită sau folosind orice obiect metalic pentru a topi plasticul.

Notă: Vă rugăm să aveți grijă când faceți găuri.

Cronologie: Vopsea

Sfat la îndemână: am folosit cutii de plastic și vopseaua se desprinde cu ușurință. Asigurați-vă că utilizați vopsele de bună calitate

Odată ce indicatorul și panourile sunt vopsite, uscați-le la soare și pregătiți-vă pentru asamblare.

Am tăiat margini suplimentare ale panoului perf din panoul indicator și panoul frontal pentru a economisi spațiu.

Verificați videoclipul pentru asamblare!

Cronologie: Răzbunători! Asambla. (Asamblarea panoului indicator și a RPi cu cutii)

După cum se vede în videoclip, puneți firele în consecință făcând trei găuri în cutia mai mare. Una pentru firul RPi power bank, una pentru panourile touchpad și una pentru panoul Indicator. Pentru cutia mai mică este necesară o singură gaură.

Sfat la îndemână: Verificați dacă izolația firelor și verificați dacă firele sunt lipite corect înainte de a le conecta în cutie.

Pasul 8: Testare la distanță cu VNC și cod final

Testare la distanță cu VNC și cod final
Testare la distanță cu VNC și cod final
Testare la distanță cu VNC și cod final
Testare la distanță cu VNC și cod final

Un ultim test înainte ca indicatorul să fie complet gata. Conectați-vă RPi la VNC Viewer și rulați programul.

Folosesc întotdeauna un server VNC pentru a rula programul și pentru a depana orice erori din program. În acest fel pot plasa RPi direct în locul unde vreau să testez fără a conecta monitorul extern.

Verificați această pagină pentru a vă conecta RPi la serverul VNC. (Server VNC)

După ce ați conectat RPi la serverul VNC. Puteți rula codul pe desktopul virtual și depana erorile.

Cronologie: Rulați la pornire

Sfat la îndemână: Odată ce v-ați conectat Raspberry Pi la desktopul virtual, vă veți conecta cu adresa IP a RPi. Dar dacă apare o eroare care afirmă că RPi a refuzat conexiunea, aceasta se datorează schimbării adresei IP din RPI. Acest lucru se poate întâmpla atunci când reporniți routerul sau un hotspot WiFi și apoi încercați să vă conectați cu adresa veche. Routerul atribuie un nou IP de fiecare dată când îl reporniți. Dar dacă vă amintiți vechea adresă IP a RPi, incrementați ultima cifră cu 1 și conectați-vă. Exemplu: Dacă vechea adresă IP este 190.148.1.100, atunci conectați-vă folosind 190.148.1.101

După ce ați verificat dacă funcționează corect, este timpul pentru asamblarea finală.

Întotdeauna nu putem avea un desktop virtual pentru a monitoriza sau rula scriptul python. Deci, haideți să facem asta la pornire.

Vrem ca programul nostru să ruleze odată cu pornirea RPi. Consultați acest site web pentru mai multe detalii despre asta!

Dacă RPi-ul dvs. este pe configurare de autentificare automată, continuați;

Rulați următoarele comenzi în terminalul RPi

sudo nano / etc / profile

Derulați până la partea de jos și adăugați următoarea linie:

sudo python file_path &

File_path aici se referă la calea fișierului python unde este stocat codul final.

Notă: Ampersand (&) de la sfârșitul fișierului ar trebui adăugat astfel încât programul dvs. să ruleze paralel cu boot-ul sistemului. Deoarece programul nostru conține o buclă nesfârșită, acest pas este obligatoriu, astfel încât, chiar dacă programul nu rulează așa cum era de așteptat, putem folosi desktopul RPi pentru a modifica setările.

După aceasta apăsați CTRL-X și apoi Y Apăsați Enter de două ori și veți reveni la terminalul de comandă.

Reporniți Pi

Acum, codul ar trebui să ruleze la pornire

Pasul 9: Gestionarea cablurilor și asamblarea finală

Gestionarea cablurilor și asamblarea finală
Gestionarea cablurilor și asamblarea finală
Gestionarea cablurilor și asamblarea finală
Gestionarea cablurilor și asamblarea finală
Gestionarea cablurilor și asamblarea finală
Gestionarea cablurilor și asamblarea finală

Felicitări! la finalizarea acestui proiect. I-am dat cuvântul Minimal așa cum ați văzut că am folosit mai puține LED-uri pentru a afișa toate indicațiile necesare și, de asemenea, cu culori personalizate. Simțiți-vă liber să utilizați diferite culori pentru LED-urile dvs., cum ar fi galbenul pentru indicatoarele de direcție sau oricare altul.

Dacă ați realizat acest proiect, faceți clic pe „Am făcut-o” și împărtășiți-vă experiența. Împărtășiți-vă gândurile și, de asemenea, orice sugestii sau comentarii cu privire la acest proiect. Mi-ar plăcea să aud asta!

Organizare de cabluri

Da! După cum ați fi observat, există atât de multe fire care intră în cicluri și în jurul lor, iar gestionarea lor este agitată. Am folosit etichete de cablu, benzi de izolare și carcasă de cablu pentru a ascunde firele și le-am vopsit în negru așa cum ați văzut imaginea.

Sfat la îndemână: Deoarece ați lăsat câțiva centimetri în plus de cabluri decât este necesar, este util acum să le gestionați corect fără a le stresa! Dacă unul dintre LED-urile dvs. se aprinde și altele nu chiar dacă ați făcut totul bine, problema este în cablurile jumper conectate la RPi, va exista un contact slăbit. Dacă acest lucru persistă, utilizați un fir jumper de la mascul la feminin pentru a extinde firul și a le conecta. Folosiți legături pentru a menține firele în poziție, astfel încât să nu se miște.

Acum, indicatorul este pregătit pentru o plimbare! Bucură de ea

PS: Într-un alt instructable, mi-ar plăcea cu adevărat să reduc numărul de fire din circuit și să vin cu un plan mai bun. Dacă fac asta, voi împărtăși un Instructable despre asta!

Pasul 10: Câteva imagini ale indicatorului

Câteva imagini ale indicatorului
Câteva imagini ale indicatorului
Câteva imagini ale indicatorului
Câteva imagini ale indicatorului
Câteva imagini ale indicatorului
Câteva imagini ale indicatorului
Câteva imagini ale indicatorului
Câteva imagini ale indicatorului

Vă mulțumim că ați citit acest Instructable. Sper că ți-a plăcut la fel de mult ca mine la realizarea ei

Cronologie: Test final În segmentul de mai sus, puteți vedea că, de îndată ce camera se întunecă, „Night Sight” se aprinde și pe măsură ce devine mai luminos, se oprește imediat!

Cronologie: gata de redat Unele videoclipuri pe care le-am realizat pentru a prezenta indicatorul în centrul atenției. Toate creditele pentru ciclismul surorilor mele pentru videoclip!

Recomandat: