Minimalistinis dviračio indikatorius, įjungtas lietimui!: 10 žingsnių (su nuotraukomis)
Minimalistinis dviračio indikatorius, įjungtas lietimui!: 10 žingsnių (su nuotraukomis)
Anonim
Image
Image

Sveiki! Tai mano pirmasis „Instructable“. Aš visada norėjau viską padaryti nuo nulio, kad pamatyčiau, kaip tai veikia ir kam nepatinka „pasidaryk pats“(„pasidaryk pats“), kai gali ką nors pakeisti pagal savo poreikius? Kad ir kaip įdomiai skambėtų „pasidaryk pats“, reikia šiek tiek pastangų, kad tai įvyktų. „Instructables“svetainės peržiūra yra puikus būdas pradėti savo „pasidaryk pats“siekius, todėl aš pradėjau kurti kai kuriuos savo projektus anksčiau, bet niekada nemaniau, kad tai padarysiu.

Kaip tik pasitaikius progai, aš sukūriau dviračio indikatorių su minimalistiniu dizainu ir jutikliniu valdymu. Žinau, kad yra daug instrukcijų ar internetinių dviračio indikatoriaus šaltinių, tačiau dauguma jų užėmė daugiau vietos arba nebuvo pakankamai protingi, kad juos konkrečiai pakeistų. Jei ieškote rodiklio, kuris būtų pakankamai protingas, kad patenkintų jūsų poreikius ir suteiktų jums galimybę juos keisti pagal savo poreikius, tai šis nurodymas skirtas jums!

Kodėl dviračio indikatorius?

Man patinka važinėti dviračiais po miestą! Pasiimu dviratį ir važiuoju ryte arba vakare. Kartais naktį sunku važiuoti, nes eismas už tavęs negalės tavęs pastebėti ir tai yra pavojingas ženklas. Štai kodėl aš norėjau pats sukurti indikatorių su visomis medžiagomis, kurias turėjau namuose, ir taip pat puikiai atrodo ant dviračio, kai važiuojate mieste, įjungdami rodiklius!

Kuriant projektą be jokių problemų, tai neįvyksta! Bet aš jums pasakysiu visas klaidas, kurias padariau kurdamas tai, kaip „patogų patarimą“, kad nebandytumėte jų padaryti. „YouTube“vaizdo įraše yra projekto kūrimo iliustracija, mažos animacijos, skirtos perteikti, kaip viskas veikia, ir kaip indikatorius atrodo kelyje! Dauguma išsamios informacijos pateikiama šioje instrukcijoje. Kai tęsite, kiekviename žingsnyje pažymėsiu savo „YouTube“vaizdo įrašo segmentus kaip „Laiko juosta:“, kad galėtumėte pamatyti, kaip viskas veikia praktiškai. Daugiau informacijos galite gauti spustelėję pateiktas paryškintas nuorodas.

Šio projekto ypatybės:

  • Dešinio posūkio indikacija
  • Pasukimo į kairę indikacija
  • Naktinio matymo indikacija
  • Įjungta palietus

1 žingsnis: medžiagos, nuo kurių reikia pradėti

Bandymo komponentai
Bandymo komponentai
  • Rezistoriai (330 omų ir 120 omų): 330 omų ir 120 omų
  • Raspberry Pi 3: RPi 3
  • Breadboard: Breadboard
  • Jungiamieji laidai (vyrai-vyrai, vyrai-moterys, moterys-moterys): jungiamieji laidai
  • Kelių grandžių laidai: kelių grandinių viela
  • Talpinis jutiklinis jutiklis (TTP223) - (2): nuoroda
  • RGB šviesos diodai (bendras katodo tipas) - (13): RGB šviesos diodų bendras katodas
  • Įprasti šviesos diodai - (2): LED
  • Litavimo medžiagos: litavimo komplektas
  • Perfo lentos: Perfo lenta
  • „Powerbank“: „Powerbank“
  • 1 mikro Farad elektrolitinis kondensatorius: elektrolitinis kondensatorius
  • LDR (nuo šviesos priklausomas rezistorius): LDR
  • Kabelių kaklaraiščiai: kabeliai
  • Kabelių korektorius: kabelių korektorius
  • Akriliniai dažai ir teptukai (neprivaloma): dažai ir teptukai
  • Dvi surinkimo dėžutės. (1 didelis ir 1 vidutinio dydžio)

Visada laikykite papildomą kiekį, kaip nurodyta aukščiau. Aš susiejau „Amazon“komponentus ir kai kuriuos geriausius litavimo medžiagų rinkinius!

Laiko juosta: Surinkite medžiagas

2 žingsnis: komponentų bandymas

Bandymo komponentai
Bandymo komponentai
Bandymo komponentai
Bandymo komponentai
Bandymo komponentai
Bandymo komponentai

Išbandykime jūsų komponentus! Tai tikrai naudinga atskirti komponentus, kurie dėl kokių nors priežasčių yra pažeisti arba veikia keistai, taip pat šis etapas leidžia jums įgyti pradinę praktinę patirtį naudojant komponentus ir šiek tiek pasimokyti prieš pradedant kurti visą projektą.

Patikrinkite RGB šviesos diodų tipą

Rinkoje randame dviejų tipų RGB šviesos diodus. Bendras katodo tipas ir bendras anodo tipas.

Tai yra patogus patarimas (nors ir didesnis), nes prijungiau šviesos diodus, kaip matyti iš šio vaizdo įrašo, ir šviesos diodas neužsidegė taip, kaip tikėtasi, net kelis kartus patikrinus grandinę. Tada supratau, kad yra du šio šviesos diodo tipai, ir peržiūrėjęs duomenų lapą pagaliau radau sprendimą! Mano grandinės problema buvo ta, kad bendras katodo kaištis buvo prijungtas prie 3.3 V, kaip minėta, ir aš GPIO kaiščiu laikiau aukštą, todėl tiek bendras katodo kaištis, tiek kiti 3 kaiščiai buvo to paties potencialo.

Sprendimas: Aš prijungiau bendrą katodo kaištį prie žemės ir šviesos diodas užsidegė! Priežastis, kodėl nepakeičiau savo kodo, kad GPIO kaiščiai būtų žemi, nes vėliau naudosime daugiau šviesos diodų, o RPi mums duos tik du kaiščius esant 3,3 V įtampai, kurių mums reikia ir kitiems tikslams!

Kaip patikrinti tipą?

Laikykite multimetrą tęstinumo režimu. Bakstelėkite ilgiausią laidą su raudonu multimetro antgaliu ir juodu antgaliu, bakstelėkite bet kurį kitą laidą. Jei šviesos diodas užsidega atlikdamas aukščiau nurodytą veiksmą, tai yra įprastas anodo RGB šviesos diodas. Jei ne, dabar pakeiskite multimetro galiuką. Bakstelėkite ilgiausią laidą su juodu antgaliu ir raudoną antgalį su kitais laidais. Dabar jis užsidegs ir parodys, kad šviesos diodas yra bendrojo katodo RGB šviesos diodas.

Patogus patarimas: šiame projekte naudojau bendrojo katodo tipą. Stenkitės įsigyti tik šių tipų, bet net jei kitas tipas yra prieinamas, nesijaudinkite. Grandinės jungtys išlieka tos pačios, vienintelis skirtumas turi būti pateiktas kode, kurį pateiksiu kaip komentarą šalia faktinės kodo eilutės, kurią turite pakeisti. Atsikvėpti.

Laiko juosta: išbandykite RGB

Nuoroda: Kaip patikrinti RGB

Užsidega RGB šviesos diodas

Norėdami tai padaryti, peržiūrėkite aukščiau esančiose nuotraukose pateiktą prijungimo schemą ir prijunkite pagal kaiščius per duonos lentą (kad būtų saugu pradėti).

RAUDONA: kaištis 11 (330 omų rezistorius)

ŽALIA: kaištis 13 (120 omų rezistorius)

MĖLYNA: kaištis 15 (120 omų rezistorius)

Rezistorių vertės skiriasi dėl skirtingų laidų įtampos į priekį.

Teisingai prijungę juos, koduokite RPi į jo integruotą python IDE.

importuoti RPi. GPIO kaip GPIO

#Smeigtukų skaičiai atitinka tikslų RPi GPIO skaičių Red_pin = 11 Green_pin = 13 Blue_pin = 15 #Prijunkite bendrąjį katodo kaištį prie 6 kaiščio.. OUT) GPIO.output (kaištis, GPIO. HIGH) #GPIO. output (pin, GPIO. LOW), skirtas bendram anodo tipui def turnOF (išj.): 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) pabandykite: o tiesa: cmd = input ("Įveskite savo komandą:") jei cmd == "raudona ": #type įvesties komandos, kaip minėta tiksliai" "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 ("Netinkama komanda"), išskyrus KeyboardInterrupt: GPIO.cleanup ()

Aš nurodžiau šį „Instructable“, patikrinkite tai, kad gautumėte išsamų aprašymą ir kodą!

Naudodamiesi tuo pačiu aukščiau esančiu kodu, galite patikrinti, ar kartu yra keli šviesos diodai, lygiagrečiai prijungę juos prie duonos lentos ir išimti vieną tašką iš bet kurio sujungto kaiščio. Kiekvienam kaiščiui naudokite skirtingas rezistorių reikšmes, kad patikrintumėte savo šviesos diodų ryškumą

Patogus patarimas: įsitikinkite, kad prijungėte tą patį kaiščio tipo lygiagrečiai. Tai reiškia, kad vieno šviesos diodo raudonas kaištis jungiasi tik su kito šviesos diodo raudonu kaiščiu.

Laiko juosta: priverskite juos švytėti!

Jutiklinės planšetės testavimas

Grandinės jungtis yra tokia, kaip parodyta čia (laiko juosta). Prijunkite juos, kaip parodyta, ir išbandykite jutiklinius skydelius naudodami šį kodą.

Kodas:

importuoti RPi. GPIO kaip GPIO

iš laiko importuoti miego režimą GPIO.setmode (IO. BOARD) jutiklinė planšetė1 = 11 #pin 11 touchpad2 = 13 #pin 13 GPIO.setup (touchpad1, GPIO. IN) GPIO.setup (touchpad2, GPIO. IN) #Galime sujungti abu aukščiau pateikti teiginiai kartu kaip # GPIO.setup ([jutiklinė planšetė1, jutiklinė dalis2], GPIO. IN) pabandykite: nors tiesa: jei (GPIO.input (jutiklinė planšetė1) == tiesa): spausdinti („1 jutiklinė planšetė paliesta“) miego (2) elif (GPIO.input (touchpad2) == True): spausdinti („Touchpad 2 touched“) miego režimas (2) else: print („Not Paliestas“), išskyrus KeyboardInterrupt: GPIO.cleanup () #CTRL-C, kad išeitumėte

Šviesos diodo bandymas

Norėdami išbandyti savo šviesos diodą, žiūrėkite šią nuostabią instrukciją!

Išbandę visus aukščiau išvardintus komponentus, esate pasiruošę sukurti didesnę jo versiją.

3 žingsnis: indikatoriaus skydo litavimas

Indikatoriaus skydo litavimas
Indikatoriaus skydo litavimas
Indikatoriaus skydo litavimas
Indikatoriaus skydo litavimas
Indikatoriaus skydo litavimas
Indikatoriaus skydo litavimas

Jei dar nesate lydmetalis, peržiūrėkite šią pamoką, kad sužinotumėte kai kuriuos jo pagrindus čia (Kaip lituoti). Jei esate litavimo profesionalas, pradėkime!

Indikatorių skydelis

Aukščiau esančiuose paveikslėliuose galite rasti iliustraciją, kaip juos lituoti, ant lentos.

Skydui naudojame 13 RGB šviesos diodų. Padalinkite juos į tris dalis: kairę, dešinę ir centrą, kad atitinkamai lituotumėte.

Svarbu: atstumas tarp šviesos diodų

Tarp šviesos diodų palikau 3 eilutes. Kaip parodyta antrame paveikslėlyje. Tai svarbu, kad LED skydelis atrodytų ir jaustųsi gerai. Mes nenorime, kad šviesos diodai per toli padidintų erdvę arba per arti, kad negalėtų atskirti šviesos nuo toli.

Patogus patarimas: pirmiausia lituokite visus įprastus katodo kaiščius

Patogus patarimas: Šviesos diodams sujungti naudokite kelių krypčių laidus, nes jie yra mažiau tvirti ir lengvai sulenkiami. Norėdami prijungti trumpesnius atstumus, galite naudoti papildomus šviesos diodų atjungimo kaiščius

Dešinysis skyrius: (5 šviesos diodai)

  • Sujunkite visus raudonus kaiščius
  • Sujunkite visus žalius kaiščius
  • Sujunkite visus įprastus katodo kaiščius

Kairysis skyrius: (5 šviesos diodai)

  • Sujunkite visus raudonus kaiščius
  • Sujunkite visus žalius kaiščius
  • Sujunkite visus įprastus katodo kaiščius

Centrinė sekcija: (3 šviesos diodai)

Patogus patarimas: Šis skyrius reikalauja pakankamai atsargumo. Negalima lituoti visų kaiščių, kaip tai darėme aukščiau esančiuose dviejuose skyriuose!

  • Sujunkite visus raudonus kaiščius
  • Prijunkite tik viršutinius ir apatinius šviesos diodus, žalią kaištį.
  • Sujunkite visus įprastus katodo kaiščius

Laidai

Norėdami prijungti skydelį prie GPIO plokštės, mums reikia ilgesnių laidų.

Patogus patarimas:

  • Naudokite vienos grandinės laidus! Jie yra pakankamai tvirti, kad atlaikytų mechaninius įtempius!
  • Laikykite laidus šiek tiek ilgesnius nei tikrasis ilgis tarp skydo ir RPi (tai labai patogu vėliau tvarkant laidus! (Laiko juosta: matavimai)
  • Izoliuokite po litavimo! Labai svarbus

Lituodami naudokite trumpiklį ir vienos grandinės vielą. Vienas trumpiklio laido galas turi būti moteriška jungtis. Lituokite juos, kaip parodyta čia (laiko juosta)

Spalva koduoja laidus raudona, žalia ir juoda. kuris atitinkamai atitinka raudoną, žalią ir bendrą katodo kaištį.

Mums reikia 3 juodų, 3 raudonų ir 3 žalių laidų.

Kai laidai bus paruošti. Lituokite laidus prie indikatoriaus šviesos diodų.

Patogūs patarimai:

  • Įsitikinkite, kad šviesos diodai yra lituojami pagal nurodytas jungtis.
  • Įsitikinkite, kad lituote tinkamas rezistorių vertes. Jei vertės pasikeis, tai paveiks šviesos diodų ryškumą
  • Vienas iš būdų įsitikinti, kad visi jūsų šviesos diodai veikia, yra naudojant 2 žingsnyje nurodytą multimetro matuoklį. Tai labai patogu, nes žinosite, ar nėra trumpojo jungimo, šviesos diodai neužsidegs.
  • Nenuimkite laidų galų ilgiau nei reikalaujama. Tai bus sunku išlaikyti vietoje, taip pat didesnė trumpojo jungimo rizika.
  • Norėdami prijungti šviesos diodus, naudokite daugiagyslį laidą.
  • Sujungimams su RPi naudoti viengyslį laidą.

4 žingsnis: išbandykite indikatoriaus skydelį

Išbandykite indikatoriaus skydelį
Išbandykite indikatoriaus skydelį
Išbandykite indikatoriaus skydelį
Išbandykite indikatoriaus skydelį
Išbandykite indikatoriaus skydelį
Išbandykite indikatoriaus skydelį

Ačiū! Jei teisingai litavote skydelį. Dabar tęskime rodiklio kodavimą!

Kaip minėta anksčiau, nurodysime posūkį į dešinę, kairę ir įjungsime/išjungsime naktinį taikiklį.

Žiūrėkite grandinės prijungimą 3 veiksme.

Prijunkite skydo laidus, kaip nurodyta toliau:

  • Raudona dešinė - 7 kaištis
  • Žalia dešinė - 11 kaištis
  • Bendras katodas dešinėje - 6 kaištis (GND)
  • Raudona kairė - 13 kaištis
  • Žalia kairė - 15 kaištis
  • Bendras katodas kairėje - 9 kaištis (GND)
  • Centras raudonas - 16 kaištis
  • Žalias centras (viršuje ir apačioje) - 18 kaištis
  • Centrinis bendras katodas - 14 kaištis (GND)

Bandymo kodas:

importuoti RPi. GPIO kaip GPIO

nuo laiko importuoti miego režimą #Prisijunkite pagal žemiau esančius PIN kodus (Green_right, Green_top_bottom, 0) def left_turn (): print ("Turning Left") mirksi (Green_left, Green_top_bottom, 0) def blink (pin1, pin2, pin3): if (pin3 == 0): GPIO.setup ([pin1, pin2], GPIO. OUT) x diapazone (10): GPIO. output ([pin1, pin2], GPIO. HIGH) miego režimas (0,5) GPIO. output ([pin1, pin2], GPIO. LOW) miego režimas (0.5) kitas: GPIO.setup ([pin1, pin2, pin3], GPIO. OUT) x diapazone (10): GPIO. output ([pin1, pin2, pin3], GPIO. HIGH) miegas (0,5) GPIO. output ([pin1, pin2, pin3], GPIO. LOW) miego režimas (0,5) def night_sight (): print („Night Sight ON“) mirksi („Red_left“, „Red_right“, „Red_center“) pabandykite: o tiesa: cmd = input (" Išbandykite šviesos diodą: ") jei cmd ==" posūkis į dešinę ": dešinysis_pasukimas () elifas cmd ==" posūkis į kairę ": kairysis_pasukimas () elifas cmd ==" naktinis vaizdas ": naktinis matymas () kitas: spausdinimas (" Neteisinga komanda ")) išskyrus Ke yboardInterrupt: GPIO.cleanup ()

Jei jūsų skydelis išvalo visas bandymo fazes, kaip nurodyta kode, gerai padaryta! Pasiruoškite kitam žingsniui

Jei skydelis neužsidega, įsitikinkite, kad teisingai atlikote visus veiksmus ir prieš tai peržiūrėjote naudingus patarimus. Jei problema vis dar išlieka, galite komentuoti žemiau, būsiu pasiruošęs padėti.

Laiko juosta: Pirmasis testas (vaizdo įraše ieškokite veikiančio prototipo)

5 veiksmas: indikatoriaus skydelio integravimas su jutikliniu kilimėliu

Indikatoriaus skydelio integravimas su jutikliniu kilimėliu
Indikatoriaus skydelio integravimas su jutikliniu kilimėliu
Indikatoriaus skydelio integravimas su jutikliniu kilimėliu
Indikatoriaus skydelio integravimas su jutikliniu kilimėliu
Indikatoriaus skydelio integravimas su jutikliniu kilimėliu
Indikatoriaus skydelio integravimas su jutikliniu kilimėliu

Jungimas prie RPi

Prijunkite jungtis, kaip parodyta aukščiau esančiame paveikslėlyje.

Dešinysis skydelis

Jutiklinė dalis:

  • GND kaištis - 34 kaištis
  • VCC kaištis - 1 kaištis
  • SIG kaištis - 29 kaištis

LED:

Anodo (+) kaištis - 33 kaištis

Kairysis skydelis

Jutiklinė dalis:

  • GND kaištis - 30 kaištis
  • VCC kaištis - 17 kaištis
  • SIG kaištis - 31 kaištis

LED:

Anodo (+) kaištis - 35 kaištis

Bendras GND: 39 kaištis (abiem šviesos diodų katodui) - bendras žemės litavimas (laiko juosta)

Bandymo kodas:

importuoti RPi. GPIO kaip GPIO

nuo laiko importavimo miego režimas 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 (kanalas): GPIO.output (dešinėje pusėje, GPIO. HIGH) suaktyvintas visuotinis = 1 spausdinimas („Pasukimas į dešinę“) mirksi („Green_right“, „Green_top_bottom“) def left_turn (kanalas): „GPIO.output“(kairės pusės, GPIO. HIGH) visuotinis suaktyvintas suaktyvintas = 1 spausdinimas („Turning“Kairė ") mirksėjimas (žalias_kairys, žalias_aukštinis_ apačioje) GPIO.add_event_detect (dešinysis lietimas, GPIO. FALLING, atšaukimas = dešinysis sukimas, bouncetime = 500) GPIO.add_event_detect (left_touch, GPIO. FALLING, callback = left_turn, bouninkime = 500) pin2): GPIO.setup ([pin1, pin2], GPIO. OUT) x diapazone (10): GPIO. output ([pin1, pin2], GPIO. HIGH) miego režimas (0.5) GPIO.outpu t ([pin1, pin2], GPIO. LOW) miego režimas (0.5) GPIO.putput ([dešinysis_kreipiamasis, kairysis_ledas], GPIO. LOW) suaktyvintas visuotinis aktyvavimas = 0 def naktinis matymas (): o (tiesa): GPIO.setup ([Red_center, Red_left, Red_right], GPIO. OUT) visuotinis suaktyvinamas, jei (suaktyvintas == 0): print („Night Sight ON“) GPIO.output ([Red_center, Red_left, Red_right], GPIO. HIGH) miego režimas (0,27) GPIO. output ([Red_center, Red_left, Red_right], GPIO. LOW) miego režimas (0.27) else: print („Night Sight OFF“) GPIO.output ([Red_center, Red_left, Red_right], GPIO. LOW) pabandykite: night_sight () išskyrus „KeyboardInterrupt“: GPIO.cleanup ()

Palieskite jutiklinį kilimėlį, kad pamatytumėte savo šviesos švytėjimą

Laiko juosta (be indikatoriaus šviesos diodo): antras bandymas

Laiko juosta (su indikaciniu šviesos diodu): 3 bandymas

Kodo paaiškinimas: norime, kad naktinis taikiklis veiktų nuolat, o kai paliesime jutiklinę plokštę, ji turėtų sustoti ir vykdyti jutiklinės dalies funkciją. Norėdami tai padaryti vienu metu, „Python“naudojame kažką vadinamo „pertraukimais“. Tai leidžia mums paleisti įprastą kodą, kuris čia yra naktinis, ir taip pat sukelia įvykį, kai aptinkamas prisilietimas. Mes naudojame suaktyvintą kintamąjį kaip vėliavą, kad sustabdytume naktinį vaizdą.

Norėdami gauti daugiau informacijos apie pertraukas, patikrinkite šią nuorodą.

Lituokite skydelį

Dabar lituokime jutiklinės dalies plokštes, kurios pateks į dviračio vairą. Žiūrėkite jungtis, kaip parodyta aukščiau esančiame paveikslėlyje.

Dabar, kai išbandėte savo šviesos diodą ir jutiklinį kilimėlį, galite eiti. Jei dar neišbandėte, žr. Šį ir ankstesnius veiksmus.

Padėkite jutiklinį kilimėlį prie vairo, kaip parodyta vaizdo įraše. Tai yra, dešiniojo jutiklinio skydelio jutiklinė dalis yra dešinėje ir kairėje kairėje. Panašiai kairiajame jutikliniame skydelyje šviesos diodas yra dešinėje, o jutiklis - kairėje, todėl nykščiui lengviau pasiekti.

PS: Aš nesu litavęs jutiklinės dalies prie perforavimo plokštės, nes turėjau ją pakartotinai naudoti. Todėl aš tiesiog uždėjau jį ant skydo su dvipuse juosta.

Prijunkite skydelį prie RPi naudodami ilgesnius laidus

6 žingsnis: padarykite tai protingu

Padarykite tai protingu!
Padarykite tai protingu!
Padarykite tai protingu!
Padarykite tai protingu!
Padarykite tai protingu!
Padarykite tai protingu!

Taip! Dabar, kai visi pagrindiniai rodiklio elementai yra paruošti ir veikia. Ženkime žingsnį toliau, kad taptume protingi.

Čia išmanusis taip pat apibrėžia akumuliatoriaus taupymą. Kaip galbūt pastebėjote, naktinis žvilgsnis visada įjungtas, o kartais to gali nebūti reikalinga šviesiai saulėtą dieną. Norėdami išspręsti šią problemą, galite integruoti LDR (nuo šviesos priklausomą rezistorių), kad gautumėte šviesos intensyvumo duomenis, kuriuos galime surinkti ir atitinkamai apdoroti.

LDR testavimas

Aš kreipiausi į šią svetainę, norėdamas išbandyti LDR, kad patikrintų šviesos intensyvumą ir kokią vertę jis grąžina.

Žiūrėkite aukščiau pažymėtą svetainę, kurioje rasite grandinę ir LDR veikimo pavyzdinį kodą.

LDR integravimas į mūsų kodą

Lituokite LDR prie dešiniojo jutiklinės dalies skydelio, kaip parodyta aukščiau esančioje prijungimo schemoje.

Lituodami kaiščius reikiamoje vietoje, laikas paskutiniam kodavimo bitui. Galutinis kodas!

  • Prijunkite bendrą kondensatoriaus katodo (-) ir LDR tašką prie RPi 36 kaiščio
  • Kondensatoriaus anodas yra prijungtas prie bendrojo įžeminimo taško, nurodyto 5 veiksme

Galutinis kodas:

importuoti RPi. GPIO kaip GPIO

nuo laiko importavimo miego režimas 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 trigger = 0 GPIO.setmode (GPIO. BOARD) GPIO. sąranka ([dešinysis_kreipiamasis, kairysis_ledas], GPIO. OUT) GPIO.setup (dešinysis lietimas, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (kairysis lietimas, GPIO. IN, pull_up_down = GPIO. PUD_UP) def right_turn (kanalas): GPIO.output (dešinysis_šviestas, GPIO. HIGH) suaktyvintas visuotinis veiksmas = 1 spausdinimas („sukimasis į dešinę“) mirksi (žalias_dešinys, žalias_apvalus apačioje) def left_turn (kanalas): GPIO. output (kairė_patraukta, GPIO. HIGH) visuotinis suaktyvintas suaktyvintas = 1 spausdinimas („Pasukimas į kairę“) mirksi (žalias_kairys, žalias_aukštinis_dugnas) GPIO.add_event_detect (dešinysis lietimas, GPIO. FALLING, atšaukimas = dešinysis_pasukimas, bouncetime = 500) GPIO.add_event_detect (kairysis lietimas, GPIO. FALLING, atšaukimas = šviesų laikas = išjungimas) [ldr]: count = 0 #Išvestis ant kaiščio GPIO.setup (ldr, GPIO. OUT) GPIO.output (ldr, GPIO. LOW) miego režimas (0,1) #Chang e grąžinkite kaištį į įvestį GPIO.setup (ldr, GPIO. IN) #Skaičiuokite, kol smeigtukas pakils aukštai, o (GPIO.input (ldr) == GPIO. LOW): skaičius += 1 grąžinimo skaičius def mirksi (PIN1, PIN2): GPIO.setup ([pin1, pin2], GPIO. OUT) x diapazone (10): GPIO. output ([pin1, pin2], GPIO. HIGH) miego režimas (0.5) GPIO. output ([pin1, pin2], GPIO. LOW) miegas (0.5) GPIO.putput

Voila! Ir indikatorius yra paruoštas riedėti.

Patogus patarimas: prieš surinkdami RPi ir kitus komponentus prie ciklo, įsitikinkite, kad tinkamai išbandėte šią programą! Paleiskite jį keletą kartų, kad pašalintumėte visas klaidas.

7 žingsnis: dažymas ir surinkimas

Tapyba ir surinkimas
Tapyba ir surinkimas
Tapyba ir surinkimas
Tapyba ir surinkimas
Tapyba ir surinkimas
Tapyba ir surinkimas

Reikalingos medžiagos:

  • Vielos pjovimo/ pašalinimo įrankiai
  • Viena didelė laikymo dėžutė, tinkanti „Raspberry Pi“
  • Viena maža laikymo dėžutė, tinkanti indikatoriaus skydeliui
  • Dažyti
  • Dažymo teptukai

Pradėkite dažydami indikatoriaus skydelį ir jutiklinės dalies skydelius juoda spalva. Čia aš naudoju akrilinius dažus, kuriuos galite naudoti savo nuožiūra, kurie gerai dera su perf lenta. Naudokite juodą foną, kad LED skydelis būtų ryškus ir labiau išsiskirtų. Padarykite skyles naudodami šildomą atsuktuvą arba bet kokį metalinį daiktą, kad ištirptumėte plastiką.

Pastaba: darydami skyles, būkite atsargūs.

Laiko juosta: dažai

Patogus patarimas: Aš naudoju plastikines dėžutes ir dažai lengvai nusivalo. Būtinai naudokite geros kokybės dažus

Kai indikatorius ir plokštės yra nudažytos, išdžiovinkite jas saulėje ir pasiruoškite surinkimui.

Kad sutaupyčiau vietos, indikatoriaus skydelyje ir priekiniame skydelyje nukirpau papildomus plokštės kraštus.

Peržiūrėkite surinkimo vaizdo įrašą!

Laiko juosta: Keršytojai! Surinkite. (Indikatoriaus skydelio ir RPi surinkimas su dėžėmis)

Kaip matyti iš vaizdo įrašo, atitinkamai įdėkite laidus, padarydami tris skyles didesnėje dėžutėje. Vienas skirtas RPi maitinimo banko laidui, kitas - jutiklinės dalies plokštėms ir vienas - indikatoriaus skydeliui. Mažesnei dėžutei reikia tik vienos skylės.

Patogus patarimas: prieš prijungdami juos dėžutėje, patikrinkite laidų izoliaciją ir patikrinkite, ar laidai yra tinkamai lituoti.

8 veiksmas: nuotolinis testavimas naudojant VNC ir galutinį kodą

Nuotolinis testavimas naudojant VNC ir galutinį kodą
Nuotolinis testavimas naudojant VNC ir galutinį kodą
Nuotolinis testavimas naudojant VNC ir galutinį kodą
Nuotolinis testavimas naudojant VNC ir galutinį kodą

Paskutinis bandymas, kol indikatorius bus visiškai paruoštas. Prijunkite savo RPi prie „VNC Viewer“ir paleiskite programą.

Aš visada naudoju VNC serverį paleisti programą ir derinti visas programos klaidas. Tokiu būdu galiu įdėti RPi tiesiai į vietą, kurioje noriu išbandyti, neprijungdamas monitoriaus iš išorės.

Patikrinkite šį puslapį, kad prijungtumėte savo RPi prie VNC serverio. (VNC serveris)

Kai prijungsite RPi prie VNC serverio. Galite paleisti kodą virtualiame darbalaukyje ir derinti klaidas.

Laiko juosta: paleiskite paleisdami

Patogus patarimas: prijungę „Raspberry Pi“prie virtualiojo darbalaukio, prisijungsite naudodami RPi IP adresą. Bet jei gausite klaidą, nurodančią, kad RPi atsisakė ryšio, tai yra dėl IP adreso pasikeitimo RPI. Tai gali atsitikti, kai iš naujo paleidžiate maršrutizatorių arba „WiFi“interneto prieigos tašką ir bandote prisijungti naudodami seną adresą. Maršrutizatorius priskiria naują IP kiekvieną kartą, kai jį paleidžiate iš naujo. Bet jei prisimenate seną RPi IP adresą, tiesiog padidinkite paskutinį skaitmenį 1 ir prisijunkite. Pavyzdys: jei senas IP adresas yra 190.148.1.100, prisijunkite naudodami 190.148.1.101

Patikrinę, ar viskas veikia tinkamai, atėjo laikas galutiniam surinkimui.

Visada negalime turėti virtualiojo darbalaukio, kad galėtume stebėti ar paleisti „python“scenarijų. Taigi padarykime tai paleidžiant.

Mes norime, kad mūsų programa būtų paleista, kai RPi įsijungs. Norėdami sužinoti daugiau apie tai, apsilankykite šioje svetainėje!

Jei jūsų RPi įjungtas automatinio prisijungimo nustatymas, tęskite;

Vykdykite šias komandas RPi terminale

sudo nano /etc /profile

Slinkite į apačią ir pridėkite šią eilutę:

sudo python file_path &

File_path čia nurodo python failo kelią, kuriame saugomas jūsų galutinis kodas.

Pastaba: Failo pabaigoje esantis „Ampersand“(&) turėtų būti pridėtas, kad jūsų programa veiktų lygiagrečiai sistemos įkėlimui. Kadangi mūsų programoje yra begalinė kilpa, šis veiksmas yra privalomas, kad net jei programa neveikia taip, kaip tikėtasi, vis tiek galime naudoti RPi darbalaukį, kad pakeistume nustatymus.

Po to paspauskite CTRL-X, tada Y Paspauskite Enter du kartus ir grįšite į komandų terminalą.

Perkraukite „Pi“

Dabar kodas turėtų būti paleistas paleidžiant

9 žingsnis: kabelių valdymas ir galutinis surinkimas

Kabelių valdymas ir galutinis surinkimas
Kabelių valdymas ir galutinis surinkimas
Kabelių valdymas ir galutinis surinkimas
Kabelių valdymas ir galutinis surinkimas
Kabelių valdymas ir galutinis surinkimas
Kabelių valdymas ir galutinis surinkimas

Sveikinu! baigęs šį projektą. Aš daviau jam žodį „Minimal“, kaip matėte, mes naudojome mažiau šviesos diodų, kad būtų rodomos visos būtinos nuorodos, taip pat pritaikytos spalvos. Nesivaržykite naudoti įvairių spalvų savo šviesos diodams, pvz., Geltonos spalvos posūkio rodikliams ar bet kuriai kitai.

Jei atlikote šį projektą, spustelėkite „Aš tai padariau“ir pasidalykite savo patirtimi. Pasidalykite savo mintimis ir pasiūlymais ar komentarais apie šį projektą. Labai norėčiau tai išgirsti!

Kabelių valdymas

Taip! Kaip jau pastebėjote, cikluose ir aplink juos eina tiek daug laidų, o jų valdymas yra įtemptas. Laidams paslėpti naudojau kabelių žymes, izoliacines juostas ir kabelių korpusą, taip pat nudažiau juos juodai, kaip matėte paveikslėlyje.

Patogus patarimas: Kadangi jūs palikote papildomus colius nuo kabelių, nei reikalaujama, dabar naudinga juos tinkamai valdyti, jų nekenkiant! Jei vienas iš jūsų šviesos diodų užsidega, o kiti net ir tada, kai viską padarėte teisingai, problema yra jungiamieji laidai, prijungti prie RPi, bus laisvas kontaktas. Jei tai išlieka, naudokite jungiamąjį laidą iš patelės į moterį, kad prailgintumėte laidą ir prijunkite juos. Naudokite kabelių jungtis, kad laidai liktų vietoje, kad jie nejudėtų.

Dabar indikatorius paruoštas važiavimui! Mėgaukis tuo

PS: Tolesnėje instrukcijoje aš tikrai norėčiau sumažinti laidų skaičių grandinėje ir sugalvoti geresnį planą. Jei tai padarysiu, pasidalinsiu instrukcija apie tai!

10 žingsnis: kai kurios rodiklio nuotraukos

Keletas indikatoriaus nuotraukų
Keletas indikatoriaus nuotraukų
Keletas indikatoriaus nuotraukų
Keletas indikatoriaus nuotraukų
Keletas indikatoriaus nuotraukų
Keletas indikatoriaus nuotraukų
Keletas indikatoriaus nuotraukų
Keletas indikatoriaus nuotraukų

Dėkojame, kad perskaitėte šią instrukciją. Tikiuosi, kad jums patiko taip pat, kaip ir man jį gaminant

Laiko juosta: galutinis testas Aukščiau pateiktame segmente galite pamatyti, kad kai tik tamsėja patalpa, „Night Sight“įsijungia ir, kai tampa šviesiau, iškart išsijungia!

Laiko juosta: paruošta ritiniui Kai kuriuos vaizdo įrašus, kuriuos padariau norėdamas parodyti rodiklį rampos šviesoje. Visi kreditai mano seserų dviračiams už vaizdo įrašą!