Mundarija:
- 1 -qadam: Ishni boshlash uchun materiallar
- 2 -qadam: komponentlarni tekshirish
- 3 -qadam: Ko'rsatkich panelini lehimlash
- 4 -qadam: Ko'rsatkich panelini sinovdan o'tkazing
- 5 -qadam: Ko'rsatkich panelini sensorli panel bilan birlashtirish
- 6 -qadam: aqlli qiling
- 7 -qadam: rasm va montaj
- 8 -qadam: VNC va yakuniy kod yordamida masofaviy test
- 9 -qadam: Kabelni boshqarish va yakuniy yig'ilish
- 10 -qadam: Ko'rsatkichning ba'zi rasmlari
Video: Minimalist velosiped ko'rsatkichi, sensorli: 10 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Salom! Bu mening birinchi ko'rsatma. Men har doim o'z ishimni noldan qilishni xohlardim, u qanday ishlashini va kimdir o'z xohishiga ko'ra biror narsani o'zgartira olsang, DIY (o'zing qil) buyumlari kimga yoqmaydi? DIY qanchalik qiziqarli tuyulsa ham, uni amalga oshirish uchun biroz harakat talab etiladi. Instructables veb -saytini ko'rib chiqish - bu sizning DIY intilishlaringizni boshlashning ajoyib usuli va men o'z loyihalarimni shu paytgacha qurishni boshlaganman, lekin men buni amalga oshiraman deb o'ylamagan edim.
Fursat kelganida, men minimalist dizaynli va sensorli ishlaydigan velosiped ko'rsatkichini yaratdim. Bilaman, velosiped indikatori uchun ko'plab ko'rsatma yoki onlayn manbalar bor, lekin ularning aksariyati biroz ko'proq joy egallagan yoki ularni muayyan tarzda o'zgartirish uchun aqlli emas edi. Agar siz o'zingizning ehtiyojlaringizni qondirish uchun aqlli ko'rsatkichni qidirsangiz va ularni sizning xohishingizga ko'ra o'zgartirish imkoniyatini bersangiz, bu ko'rsatma siz uchun!
Nima uchun velosiped ko'rsatkichi?
Men shahar atrofida velosipedda yurishni yaxshi ko'raman! Men velosipedda o'tiraman va ertalab yoki kechqurun sayrga boraman. Ba'zida, kechasi, minish qiyin, chunki sizning orqangizdagi transport sizni sezmaydi va bu xavfli belgidir. Shuning uchun men o'zim bilan uyda bo'lgan barcha materiallar bilan indikatorni qurmoqchi edim, shuningdek, siz shaharda minib, indikatorlarni yoqganingizda velosipedda ajoyib ko'rinadi!
Hech qanday muammoga duch kelmasdan loyiha tuzish hech qachon sodir bo'lmaydi! Ammo men sizlarga xato qilmasligim uchun, men buni "foydali maslahat" sifatida aytib beraman. YouTube videosida loyiha qanday qurilgani tasvirlangan, ishlarning qanday bajarilishini va yo'lda indikator qanday ko'rinishini ko'rsatadigan kichik animatsiyalar mavjud! Eng batafsil ma'lumotlar ushbu yo'riqnomada keltirilgan. Siz davom etayotganingizda, men youtube -dagi video segmentlarimni har bir qadamda "Vaqt chizig'i" deb belgilab qo'yaman, shunda siz amalda qanday ishlayotganingizni ko'rasiz. Qo'shimcha ma'lumotni ajratilgan havolalarni bosish orqali olishingiz mumkin.
Ushbu loyihaning xususiyatlari:
- O'ng burilish ko'rsatkichi
- Chap burilish ko'rsatkichi
- Tungi ko'rish ko'rsatkichi
- Sensorli
1 -qadam: Ishni boshlash uchun materiallar
- Rezistorlar (330 ohm va 120 ohm): 330 ohm va 120 ohm
- Raspberry Pi 3: RPi 3
- Non paneli: non paneli
- Jumper simlari (erkak-erkak, erkak-ayol, ayol-ayol): o'tish simlari
- Ko'p tarmoqli simlar: ko'p tarmoqli simlar
- Kapasitiv sensorli sensor (TTP223) - (2): havola
- RGB LEDlari (umumiy katod turi) - (13): RGB LED umumiy katod
- Oddiy LEDlar - (2): LED
- Lehimlash materiallari: Lehim to'plami
- Mukammal taxtalar: Perf Board
- Powerbank: Powerbank
- 1 mikro Farad elektrolitik kondansatkichi: elektrolitik kondansatkich
- LDR (nurga bog'liq rezistor): LDR
- Kabel aloqasi: kabel aloqasi
- Kabelni yopuvchi: kabelni yashiruvchi
- Akril bo'yoq va cho'tkalar (ixtiyoriy): Bo'yoq va cho'tkalar
- O'rnatish uchun ikkita saqlash qutisi. (1 katta va 1 o'rta o'lchamli)
Har doim yuqorida aytib o'tilganlarga qo'shimcha miqdorni saqlang. Men Amazon -dagi komponentlarni va lehim materiallari uchun eng yaxshi sotib olish to'plamini bog'ladim!
Vaqt: materiallarni yig'ish
2 -qadam: komponentlarni tekshirish
Keling, sizning komponentlaringizni sinovdan o'tkazaylik! Bu biron sababga ko'ra shikastlangan yoki g'ayrioddiy bo'lgan tarkibiy qismlarni ajratish uchun juda foydali, shuningdek, bu bosqich sizga butun loyihani yaratishga kirishdan oldin dastlabki amaliy tajribani olish va ozgina o'rganish imkonini beradi.
RGB LED turini tekshirish
Biz bozorni topadigan RGB LEDlarning ikki turi mavjud. Umumiy katod turi va umumiy anod turi.
Bu qulay maslahat (kattaroq bo'lsa ham), chunki men bu videodan ko'rinib turganidek, LEDlarni uladim va kontaktlarning zanglashini bir necha marta tekshirgandan keyin ham LED kutilganidek yonmadi. Keyin men bu LEDning ikkita turi borligini tushundim va ma'lumotlar varag'i orqali o'tib, men nihoyat yechim topdim! Mening zanjirim bilan bog'liq muammo, aytilganidek, umumiy katodli pin 3.3V ga ulangan edi va men GPIO pinini HIGH -da ushlab turdim, shuning uchun ham umumiy katodli pin va boshqa 3 pin bir xil potentsialga ega edi.
Biznes: Men umumiy katodli pinni erga uladim va LED yondi! GPIO pinlarini LOW past darajada ushlab turish uchun kodimni o'zgartirmaganimning sababi, keyinroq ko'proq LEDni ishlatamiz va RPi bizga 3,3 V kuchlanishli ikkita pinni beradi, bu bizga boshqa maqsadlar uchun ham kerak!
Turini qanday tekshirish mumkin?
Multimetrni uzluksiz rejimda ushlab turing. Multimetrenning qizil uchi va qora uchi bilan eng uzun simga teging, boshqa uchlarini bosing.. Bo'lmasa, multimetr uchini hozir teskari aylantiring. Qora uchi va boshqa uchi bilan qizil uchi bo'lgan eng uzun simni bosing, shunda u yonadi, bu LED umumiy katodli RGB LED.
Foydali maslahat: Men ushbu loyihada umumiy katod turidan foydalandim. Bu turlarni faqat olishga harakat qiling, lekin boshqa tur mavjud bo'lsa ham, xavotir olmang. O'chirish ulanishlari bir xil bo'lib qoladi, siz o'zgartirishingiz kerak bo'lgan haqiqiy kod qatorining yonida sharh sifatida beradigan kodda yagona farq bo'lishi kerak. Nafas oling.
Vaqt chizig'i: RGBni sinab ko'rish
Malumot: RGBni qanday tekshirish mumkin
RGB LED yonadi
Buni amalga oshirish uchun yuqoridagi rasmlarda ko'rsatilgan ulanish sxemasini ko'rib chiqing va pimlarga qarab non paneli orqali ulang (xavfsiz ishlash uchun).
RED: pin 11 (330 ohmli qarshilik)
Yashil: 13-pin (120 ohmli qarshilik)
Moviy: 15-pin (120 ohmli qarshilik)
Rezistorlarning qiymatlari o'zgaruvchan old kuchlanishlar tufayli o'zgaradi.
Ularni to'g'ri ulaganingizdan so'ng, RPi -ni ichki python IDE -ga kodlang.
RPi. GPIO -ni GPIO sifatida import qilish
#PIN -kodlar RPi GPIO Red_pin = 11 Green_pin = 13 Green_pin = 15 #Umumiy katodli pinni 6 -burilish piniga ulang (pin): GPIO.setmode (GPIO. BOARD) GPIO.setup (pin, GPIO). OUT) GPIO.output (pin, GPIO. HIGH) #DefIOOff (pin) umumiy anod turi uchun GPIO.output (pin, GPIO. LOW): 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 ("buyrug'ingizni yozing:") agar cmd == "qizil" bo'lsa ": #type kiritish buyruqlari aynan" "ichida aytilganidek" "redOn () elif cmd ==" red off ": redOff () elif cmd ==" green on ": greenOn () elif cmd ==" green off ": greenOff () elif cmd == "ko'k yoqilgan": blueOn () elif cmd == "ko'k o'chirilgan": blueOff () boshqa: chop etish ("Amal emas") KeyboardInterruptdan tashqari: GPIO.cleanup ()
Men ushbu yo'riqnomaga murojaat qildim, batafsil tavsif va kodni tekshiring!
Xuddi shu kod yordamida siz bir nechta LEDlarni bir -biriga parallel ravishda ulash paneli orqali tekshirishingiz va bir -biriga bog'langan pinlardan bitta nuqtani chiqarib olishingiz mumkin. LEDlarning yorqinligini tekshirish uchun har bir pin uchun har xil qarshilik qiymatlaridan foydalaning
Foydali maslahat: bir xil pinli parallel ulanganingizga ishonch hosil qiling. Ya'ni, bitta LEDning qizil pinasi faqat boshqa LEDning qizil piniga ulanadi.
Vaqt jadvali: ularni porlab tursin!
Sensorli panelni sinab ko'rish
O'chirish aloqasi bu erda ko'rsatilganidek (Vaqt chizig'i). Ularni ko'rsatilgan tarzda ulang va sensorli panellarni quyidagi kod yordamida tekshiring.
Kod:
RPi. GPIO -ni GPIO sifatida import qilish
vaqtdan boshlab uyqu GPIO.setmode (IO. BOARD) sensorli panel1 = 11 #pin 11 sensorli panel2 = 13 #pin 13 GPIO.setup (sensorli panel1, GPIO. IN) GPIO.sozlash (sensorli panel2, GPIO. IN) #Biz ikkalasini ham birlashtira olamiz. # GPIO.setup ([touchpad1, touchpad2], GPIO. IN) kabi yuqoridagi iboralarni birgalikda sinab ko'ring: while True: if (GPIO.input (touchpad1) == True): chop etish ("Touchpad 1 teginilgan") uyqu (2) elif (GPIO.input (touchpad2) == To'g'ri): chop etish ("Touchpad 2 teginilgan") uyqu (2) boshqa: chop etish ("tegilmagan"), bundan tashqari klaviatura uzilish: GPIO.cleanup () #CTRL-C chiqish uchun
LEDni sinovdan o'tkazish
LEDni sinab ko'rish uchun ushbu ajoyib ko'rsatmaga qarang!
Yuqoridagi barcha komponentlarni sinab ko'rganingizdan so'ng, siz uning katta versiyasini yaratishga tayyormiz.
3 -qadam: Ko'rsatkich panelini lehimlash
Agar siz lehimlashda yangi bo'lsangiz, uning asosiy qoidalarini o'rganish uchun ushbu qo'llanmani ko'rib chiqing (lehimlash usuli). Agar siz lehimlashning mutaxassisi bo'lsangiz, boshlaylik!
Ko'rsatkich paneli
Siz ularni qanday qilib lehimlash mumkinligi haqidagi rasmni yuqoridagi rasmlardan topishingiz mumkin.
Panel uchun biz 13 ta RGB LEDni ishlatamiz. Ularni uch qismga ajrating: lehim uchun chap, o'ng va markaz.
Muhim: LEDlar oralig'i
LEDlar orasidagi 3 qatorni qoldirdim. Ikkinchi rasmda ko'rsatilgandek, bu LED paneli yaxshi ko'rinishi va ko'rinishi uchun juda muhimdir. Biz LEDlarning bo'sh joyni ko'paytirishini yoki yorug'likni uzoqdan ajrata olmasligini xohlaymiz.
Qulay maslahat: Avval barcha umumiy katot pinlarini lehimlashdan boshlang
Foydali maslahat: LEDlarni bir-biriga ulash uchun ko'p tarmoqli simlardan foydalaning, chunki ular kamroq bardoshli va oson egiladi. Qisqa masofalarni ulash uchun siz LEDlarning qo'shimcha kesish pimlarini ishlatishingiz mumkin
O'ng bo'lim: (5 LED)
- Barcha qizil pinlarni bir -biriga ulang
- Barcha yashil pinlarni bir -biriga ulang
- Umumiy katod pinlarini bir -biriga ulang
Chap bo'lim: (5 LED)
- Barcha qizil pinlarni bir -biriga ulang
- Barcha yashil pinlarni bir -biriga ulang
- Umumiy katod pinlarini bir -biriga ulang
Markaziy bo'lim: (3 ta LED)
Qulay maslahat: Bu bo'lim etarlicha ehtiyotkorlik talab qiladi. Yuqoridagi ikkita bo'limda bo'lgani kabi, barcha pimlarni lehimlamang!
- Barcha qizil pinlarni bir -biriga ulang
- Faqat yuqori va pastki LEDlarni, yashil pinni ulang.
- Umumiy katod pinlarini bir -biriga ulang
Simlar
Panelni GPIO kartasiga ulash uchun bizga uzunroq simlar kerak.
Foydali maslahat:
- Bir simli simlardan foydalaning! Ular mexanik stresslarga bardosh bera oladigan darajada mustahkam!
- Simlarni panel va RPi orasidagi haqiqiy uzunlikdan bir oz ko'proq ushlab turing (bu simlarni keyinroq boshqarishda juda qulay! (Vaqt chizig'i: O'lchovlar)
- Lehimlangandan keyin izolyatsiya qiling! Juda muhim
Payvandlash uchun o'tish simini va bitta simli simni ishlating. Jumper simining bir uchi ayol ulagichi bo'lishi kerak, ularni bu erda ko'rsatilgan tarzda lehimlang (Vaqt jadvalida)
Rangli simlar qizil, yashil va qora. bu mos ravishda Qizil pin, Yashil pin va Umumiy katod piniga to'g'ri keladi.
Bizga 3 ta qora sim, 3 ta qizil sim va 3 ta yashil sim kerak.
Simlar tayyor bo'lgach. Simlarni indikatorli LEDlarga lehimlang.
Foydali maslahatlar:
- Ko'rsatilgan ulanishlar bo'yicha LEDlarning lehimlanganligiga ishonch hosil qiling.
- To'g'ri qarshilik qiymatlarini lehimlaganingizga ishonch hosil qiling. Agar qiymatlar o'zgartirilsa, bu LEDlarning yorqinligiga ta'sir qiladi
- Barcha LEDlar ishlayotganiga ishonch hosil qilishning bir usuli - 2 -qadamda berilgan multimetr o'lchagichni ishlatish. Bu juda qulay, chunki qisqa tutashuv bo'lsa, LEDlar yonmaydi.
- Simlarning uchlarini talab qilinganidan uzunroq uzmang. Bu ularni joyida ushlab turish qiyin bo'ladi, shuningdek, qisqa tutashuv xavfi yuqori bo'ladi.
- LEDlarni ulash uchun ko'p simli simlardan foydalaning.
- Bo'limlarni RPi-ga ulash uchun bitta simli simdan foydalaning.
4 -qadam: Ko'rsatkich panelini sinovdan o'tkazing
Rahmat! Agar siz panelni to'g'ri lehimlagan bo'lsangiz. Keling, indikatorni kodlashni davom ettiramiz!
Yuqorida aytib o'tganimizdek, biz o'ng burilishni, chapga burilishni va tungi ko'rinishni yoqish/o'chirishni ko'rsatamiz.
3 -bosqichda kontaktlarning zanglashiga qarang.
Panelning simlarini quyida aytib o'tilganidek ulang:
- Qizil o'ng - 7 -pin
- Yashil o'ng - 11 -pin
- Umumiy katod o'ng - 6 -pin (GND)
- Qizil chap - 13 -pin
- Chap yashil - pin 15
- Chap katod - 9 -pin (GND)
- Qizil markaz - 16 -pin
- Yashil markaz (yuqoridan va pastdan) - 18 -pin
- Umumiy katod markazi - 14 -pin (GND)
Sinov kodi:
RPi. GPIO -ni GPIO sifatida import qilish
vaqtdan import uyqu #Quyidagi pin raqamlari bo'yicha ulaning 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 ("O'ngga burilish") miltillaydi (Green_right, Green_top_bottom, 0) def left_turn (): print ("Chapga burilish") miltillash (Green_left, Green_top_bottom, 0) def milt -milt (pin1, pin2, pin3): if (pin3 == 0): GPIO.setup ([pin1, pin2], GPIO. OUT) x diapazonida (10): GPIO.output ([pin1, pin2], GPIO. HIGH) uyqu (0,5) GPIO. chiqish ([pin1, pin2], GPIO. LOW) uyqu (0,5) boshqa: GPIO.setup ([pin1, pin2, pin3], GPIO. OUT) x uchun diapazonda (10): GPIO.output ([pin1, pin2, pin3], GPIO. HIGH) uyqu (0,5) GPIO.output ([pin1, pin2, pin3], GPIO. LOW) uyqu (0,5) def night_sight (): chop etish ("Night Sight ON") miltillash (Red_left, Red_right, Red_center) urinib ko'ring: while True: cmd = input (" Sinov LED: ") agar cmd ==" o'ngga burilish ": o'ngga burilish () elif cmd ==" chapga burilish ": chapga burilish () elif cmd ==" tungi ko'rish ": night_sight () boshqa: chop etish (" Noto'g'ri buyruq ")) Ke tashqari yboardInterrupt: GPIO.cleanup ()
Agar sizning panelingiz koddagi kabi barcha sinov bosqichlarini tozalasa, yaxshi bajarildi! Keyingi bosqichga tayyorlaning
Agar panel yonmayotgan bo'lsa, barcha qadamlarni to'g'ri bajarganingizga ishonch hosil qiling va ilgari kerakli maslahatlarni ko'rib chiqing. Agar muammo haligacha davom etsa, quyida izoh qoldirishingiz mumkin, men yordam berishga tayyorman.
Vaqt chizig'i: ONE testi (ishchi prototip uchun videoni tekshiring)
5 -qadam: Ko'rsatkich panelini sensorli panel bilan birlashtirish
Uni RPi -ga ulash
Ulanishlarni yuqoridagi rasmda ko'rsatilgandek qiling.
O'ng panel
Sensorli panel:
- GND pin - 34 -pin
- VCC pin - 1 -pin
- SIG pin - 29 -pin
LED:
Anod (+) pin - 33 -pin
Chap panel
Sensorli panel:
- GND pin - 30 -pin
- VCC pin - 17 -pin
- SIG pin - 31 -pin
LED:
Anod (+) pin - 35 -pin
Umumiy GND: Pin 39 (LEDlarning katodlari uchun) - Umumiy tuproqli lehim (Vaqt chizig'i)
Sinov kodi:
RPi. GPIO -ni GPIO sifatida import qilish
vaqtdan import uyqu 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 ([o'ngga burilgan, chapga burilgan], GPIO. OUT) GPIO. sozlamalari (o'ngga tegish, GPIO. IN, pull_up_down = GPIO. (right_led, GPIO. HIGH) global ishga tushirildi tetiklandi = 1 ta chop etish ("O'ngga burilish") miltillash (Green_right, Green_top_bottom) def left_turn (kanal): GPIO.output (left_led, GPIO. HIGH) global tetiklandi = 1 chop etish ("Burilish Chap ") miltillash (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): x diapazonidagi (10) GPIO.setup ([pin1, pin2], GPIO. OUT): GPIO.output ([pin1, pin2], GPIO. HIGH) uyqu (0,5) GPIO.outpu t ([pin1, pin2], GPIO. LOW) uyqu (0,5) GPIO.output ([o'ngda, chapda], GPIO. LOW) global tetiklangan tetiklendi = 0 def night_sight (): while (True): GPIO.setup ([Red_center, Red_left, Red_right], GPIO. OUT) global tetiklansa, agar (tetiklangan == 0): chop etish ("Night Sight ON") GPIO.output ([Red_center, Red_left, Red_right], GPIO. HIGH) uyqu (0,27) GPIO. chiqish ([Red_center, Red_left, Red_right], GPIO. LOW) uxlash (0.27) boshqa: chop etish ("Night Sight OFF") GPIO.output ([Red_center, Red_left, Red_right], GPIO. LOW) try: night_sight () KeyboardInterruptdan tashqari: GPIO.cleanup ()
Yorug'ligingizni ko'rish uchun sensorli panelni bosing
Vaqt chizig'i (indikatorli LEDsiz): Ikkinchi sinov
Vaqt chizig'i (ko'rsatkichli LED bilan): 3 -sinov
Kodni tushuntirish: Biz tungi ko'rishning doimiy ishlashini xohlaymiz va sensorli panelga tegganimizda u to'xtab, sensorli panel vazifasini bajarishi kerak. Buning uchun biz bir vaqtning o'zida pythonda "Interruptlar" deb nomlanuvchi narsadan foydalanamiz. Bu bizga bu erda tunda ko'rish mumkin bo'lgan oddiy kodimizni ishga tushirishga imkon beradi, shuningdek, teginish aniqlanganda voqeani keltirib chiqaradi. Biz tungi ko'rishni to'xtatish uchun ishga tushirilgan o'zgaruvchini bayroq sifatida ishlatamiz.
Tanaffuslar haqida ko'proq ma'lumot olish uchun ushbu havolani tekshiring.
Panelni lehimlang
Endi velosiped ruliga o'tadigan sensorli panellarni lehimlaylik. Yuqoridagi rasmda ko'rsatilgan ulanishlarga qarang.
Endi siz LED va sensorli panelni sinab ko'rdingiz, siz borishingiz mumkin. Agar siz hali sinovdan o'tmagan bo'lsangiz, iltimos, bu bosqichga va oldingi qadamlarga murojaat qiling.
Videoda ko'rsatilgandek, sensorli panelni rulga yaqin joylashtiring. Ya'ni, o'ng sensorli panel uchun sensorli panel o'ngda va chapda. Xuddi shunday, chap sensorli panel uchun bosh o'ng tomonda, chap tomonda esa sensorli panel joylashgan bo'lib, bu barmog'ining yetib borishini osonlashtiradi.
PS: Men sensorli panelni lehimlamadim, chunki men uni qayta ishlatardim. Shuning uchun men uni panelga ikki tomonlama lenta bilan yopishtirdim.
Uzunroq simlar yordamida panelni RPi -ga ulang
6 -qadam: aqlli qiling
Ha! Endi bizda indikatorning barcha asosiy elementlari ishga tushdi. Keling, uni aqlli qilish uchun yana bir qadam tashlaylik.
Bu erda aqlli batareyani tejashni ham belgilaydi. Ko'rib turganingizdek, tungi ko'rish har doim yoniq bo'ladi, ba'zida esa quyoshli kunda bu talab qilinmaydi. Bu muammoni bartaraf etish uchun biz LDR (Light Resendent Resistor) ni birlashtirishga imkon beramiz, shunda biz yorug'lik intensivligi ma'lumotlarini beramiz, biz indikatorimizni yig'amiz va shunga mos ravishda qayta ishlay olamiz.
LDRni sinovdan o'tkazish
Men bu veb -saytga yorug'lik intensivligini va uning qiymatini qaytarish uchun LDRni sinab ko'rish uchun murojaat qildim.
O'chirish sxemasi va LDR ishlashi uchun namuna kodi uchun yuqorida belgilangan veb -saytga qarang.
LDRni bizning kodimizga qo'shish
LDRni yuqoridagi ulanish sxemasida ko'rsatilganidek, sensorli panelning o'ng paneliga lehimlang.
Pimlarni kerakli joyga lehimlagandan so'ng, kodlashning oxirgi vaqti. Oxirgi kod!
- Kondensator va LDR katodining umumiy nuqtasini (-) RPi-dagi 36-pinga ulang.
- Kondensatorning anodi 5 -qadamda aytilgan Umumiy Ground nuqtasiga ulangan
Yakuniy kod:
RPi. GPIO -ni GPIO sifatida import qilish
vaqtdan import uyqu 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. sozlash ([o'ngda, chapda], GPIO. OUT) GPIO. sozlamalari (o'ngda, GPIO. IN, pull_up_down = GPIO. GPIO.output (right_led, GPIO. HIGH) global tetiklandi = 1 ta chop etish ("O'ngga burilish") miltillash (Green_right, Green_top_bottom) def left_turn (kanal): GPIO.output (left_led, GPIO. HIGH) global ishga tushirildi = 1 chop etish ("Chapga burilish") milt -milt (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_tens, 500) [ldr]: count = 0 #GPIO.setup (ldr, GPIO. OUT) GPIO.output (ldr, GPIO. LOW) uyqu (0,1) #Chang PIN -kodni GPIO.setup (ldr, GPIO. IN) ga qaytaring): GPIO.setup ([pin1, pin2], GPIO. OUT) x uchun diapazonda (10): GPIO.output ([pin1, pin2], GPIO. HIGH) uyqu (0,5) GPIO. chiqish ([pin1, pin2)], GPIO. LOW) uyqu (0,5) GPIO.output ([o'ngda, chapda], GPIO. LOW) global tetiklangan tetiklandi = 0 def night_sight (): while (True): GPIO.setup ([Red_center, Red_left, Red_right], GPIO. OUT) global tetiklansa, agar (light_sensing (ldr)> 7800): if (trigger == 0): print ("Night Sight ON") GPIO.output ([Red_center, Red_left, Red_right], GPIO. HIGH) uxlasa (0,27) GPIO.output ([Red_center, Red_left, Red_right], GPIO. LOW) uxlash (0.27) boshqa: chop etish ("Night Sight OFF") GPIO.output ([Red_center, Red_left, Red_right], GPIO. LOW): night_sight () KeyboardInterruptdan tashqari GPIO.cleanup ()
Voila! Va indikator siljishga tayyor.
Foydali maslahat: RPi va boshqa komponentlarni tsiklga yig'ishdan oldin, ushbu dasturni to'g'ri tekshirganingizga ishonch hosil qiling! Xatolarni tuzatish uchun uni bir necha marta ishga tushiring.
7 -qadam: rasm va montaj
Kerakli materiallar:
- Simlarni kesish/ tozalash asboblari
- Raspberry Pi -ga sig'adigan bitta katta saqlash qutisi
- Ko'rsatkich paneliga mos keladigan bitta kichik saqlash qutisi
- Bo'yamoq
- Bo'yoq cho'tkalari
Ko'rsatkich paneli va sensorli panel panellarini qora rangga bo'yashdan boshlang. Men bu erda akril bo'yoqlardan foydalandim, siz ularni o'zingiz xohlagan usulda ishlatishingiz mumkin, bu pardoz paneli bilan yaxshi mos keladi. Qora fondan foydalaning, shunda LED paneli jonli va yanada ajralib turadi. Teshiklarni qizdirilgan tornavida yoki plastmassani eritish uchun har qanday metall buyum yordamida qiling.
E'tibor bering: teshiklar yasashda ehtiyot bo'ling.
Vaqt chizig'i: Paint
Foydali maslahat: Men plastik qutilarni ishlatardim va bo'yoq osonlikcha tushadi. Yaxshi sifatli bo'yoqlardan foydalanganingizga ishonch hosil qiling
Ko'rsatkich va panellar bo'yalganidan keyin ularni quyoshda quriting va yig'ishga tayyor bo'ling.
Joyni tejash uchun ko'rsatkich paneli va old paneldagi qo'shimcha taxtaning qo'shimcha qirralarini kesib tashladim.
Videoni yig'ish uchun tekshiring!
Vaqt chizig'i: Qasoskorlar! Yig'ish. (Ko'rsatkich paneli va RPi qutilari bilan yig'ish)
Videodan ko'rinib turibdiki, simlarni kattaroq qutiga uchta teshik qilib qo'ying. Bittasi RPi quvvat banki simlari uchun, bittasi sensorli panellar uchun va bittasi ko'rsatkich paneli uchun. Kichikroq quti uchun faqat bitta teshik kerak.
Qulay maslahat: simlarni izolyatsiyasini tekshiring va qutiga ulashdan oldin simlarning to'g'ri lehimlanganligini tekshiring.
8 -qadam: VNC va yakuniy kod yordamida masofaviy test
Ko'rsatkich to'liq tayyor bo'lgunga qadar bitta oxirgi test. RPi -ni VNC Viewer -ga ulang va dasturni ishga tushiring.
Men har doim dasturni ishga tushirish va dasturdagi xatolarni tuzatish uchun VNC serveridan foydalanaman. Shunday qilib, men RPi -ni to'g'ridan -to'g'ri monitorni tashqi tomondan ulamasdan sinovdan o'tkazmoqchi bo'lgan joyga joylashtirishim mumkin.
RPi -ni VNC serveriga ulash uchun ushbu sahifani tekshiring. (VNC serveri)
RPi -ni VNC serveriga ulaganingizdan so'ng. Siz kodni virtual ish stolida ishga tushirishingiz va xatolarni tuzatishingiz mumkin.
Vaqt chizig'i: ishga tushirishda ishga tushirish
Foydali maslahat: Raspberry Pi -ni virtual ish stoliga ulaganingizdan so'ng, siz RPi IP -manzili bilan kirasiz. Ammo, agar siz RPi ulanishdan bosh tortgani haqida xatoga yo'l qo'ysangiz, bu RPI -dagi IP -manzil o'zgarishi bilan bog'liq. Bu yo'riqnoma yoki Wi -Fi ulanish nuqtasini qayta ishga tushirganingizda va eski manzil bilan kirishga urinayotganingizda yuz berishi mumkin. Har safar qayta ishga tushirilganda yo'riqnoma yangi IP -ni tayinlaydi, lekin agar siz eski IP -manzilni eslasangiz, oxirgi raqamni 1 ga ko'paytiring va kiring. Misol: Agar eski IP -manzil 190.148.1.100 bo'lsa, 190.148 -dan foydalanib kiring..1.101
Hammasi to'g'ri ishlayotganini tekshirgandan so'ng, oxirgi yig'ilish vaqti keldi.
Har doim bizda python skriptini kuzatish yoki ishlatish uchun virtual ish stoli bo'lmaydi. Keling, buni ishga tushirishda qilaylik.
Biz dasturimiz RPi ishga tushgandan so'ng ishga tushishini xohlaymiz. Bu haqda batafsil ma'lumot olish uchun ushbu veb -saytni tekshiring!
Agar RPi avtomatik kirishni sozlashda bo'lsa, davom eting;
RPi terminalida quyidagi buyruqlarni bajaring
sudo nano /etc /profile
Pastga siljiting va quyidagi qatorni qo'shing:
sudo python file_path va
Bu erda file_path sizning oxirgi kodingiz saqlanadigan python faylining yo'lini bildiradi.
Eslatma: Fayl oxiriga Ampersand (&) qo'shilishi kerak, shunda sizning dasturingiz tizim yuklanishiga parallel ishlaydi. Bizning dasturimiz cheksiz tsiklni o'z ichiga olganligi sababli, bu qadam majburiydir, shuning uchun dastur kutilganidek ishlamasa ham, biz sozlamalarni o'zgartirish uchun RPi ish stolidan foydalanishimiz mumkin.
Shundan so'ng CTRL-X va keyin Y tugmasini ikki marta bosing va siz yana buyruq terminaliga qaytasiz.
Pi -ni qayta ishga tushiring
Endi kod ishga tushganda ishlashi kerak
9 -qadam: Kabelni boshqarish va yakuniy yig'ilish
Tabriklaymiz! ushbu loyihani tugatish to'g'risida. Men unga "Minimal" so'zini berdim, siz ko'rganingizdek, biz zarur bo'lgan barcha ko'rsatmalarni ko'rsatish uchun kamroq LED ishlatganmiz, shuningdek moslashtirilgan ranglar bilan. O'zingizning LED -laringiz uchun turli xil ranglardan, masalan, burilish ko'rsatkichlari uchun sariq yoki boshqa har qanday ranglardan foydalaning.
Agar siz ushbu loyihani amalga oshirgan bo'lsangiz, "Men qildim" tugmasini bosing va o'z tajribangiz bilan o'rtoqlashing. Bu loyiha bo'yicha o'z fikrlaringizni, shuningdek, taklif va mulohazalaringiz bilan o'rtoqlashing. Men buni eshitishni juda xohlardim!
Kabel boshqaruvi
Ha! Ko'rib turganingizdek, tsikllar ichida va atrofida juda ko'p simlar bor va ularni boshqarish juda qiyin. Men simlarni yashirish uchun simi teglari, izolyatsion lentalar va kabel korpusidan foydalandim va rasmda ko'rganingizdek ularni qora rangga bo'yadingiz.
Qulay maslahat: Agar siz kabellardan kerakli dyuymni ajratib qo'ygan bo'lsangiz, ularni to'g'ri ishlamasdan boshqaring! Agar sizning LED -laringizdan biri yonib tursa va boshqalar hammasini to'g'ri qilmagan bo'lsangiz ham, muammo RPi ga ulangan o'tish simlari, bo'sh aloqa bo'ladi. Agar bu davom etsa, simni uzaytirish va ulash uchun erkakdan ayolga o'tish simidan foydalaning. Simlarni joyida ushlab turish uchun simi rishtalarini ishlating, shunda u qimirlamaydi.
Endi indikator hammasi Ride uchun tayyor! Bundan bahra oling
PS: Yana bir ko'rsatma sifatida, men chindan ham kontaktlarning zanglashiga olib keladigan simlar sonini kamaytirishni va yaxshiroq reja tuzishni xohlardim. Agar shunday qilsam, men bu haqda ko'rsatma bilan bo'lishaman!
10 -qadam: Ko'rsatkichning ba'zi rasmlari
Ushbu ko'rsatmalarni o'qiganingiz uchun tashakkur. Umid qilamanki, siz uni men qilganimdek yoqtirdingiz
Vaqt jadvali: Yakuniy test Yuqoridagi segmentda siz ko'rishingiz mumkinki, xona qorong'i tushishi bilan "tungi ko'rish" yoqiladi va u yorug 'bo'lganda darhol o'chadi!
Ko'rsatkichni diqqat markazida ko'rsatish uchun men suratga olgan ba'zi videolar. Video uchun opa -singillarimning velosiped haydashiga barcha kreditlar!
Tavsiya:
Raspberry Pi sovutish foniy sovutgichi, harorat ko'rsatkichi bilan: 10 qadam (rasmlar bilan)
Raspberry Pi sovutgichli fanatlar qutisi CPU harorati indikatori bilan: Men oldingi loyihada malinali pi (bundan keyin RPI) protsessorining harorat indikatorini kiritgan edim. O'chirish faqat RPI 4 protsessorining har xil darajasini quyidagicha ko'rsatadi.- Yashil LED yoqilganda CPU harorati 30 ~
NodeMCU sensorli sensorli LDR haroratni boshqarish rölesi bilan uy avtomatizatsiyasi: 16 qadam
NodeMCU sensorli sensorli LDR haroratni nazorat qilish rölesi yordamida uyni avtomatlashtirish: NodeMCU -ning oldingi loyihalarida men Blynk ilovasidan ikkita maishiy texnikani boshqarganman. Men qo'lda boshqarish va qo'shimcha funktsiyalarni qo'shish orqali loyihani yangilash uchun ko'plab sharhlar va xabarlarni oldim, shuning uchun men bu aqlli uyni kengaytirish qutisini yaratdim
Velosiped tezligi ko'rsatkichi: 10 qadam (rasmlar bilan)
Velosiped tezligi ko'rsatkichi: bu nima? Nomidan ko'rinib turibdiki, ushbu loyihada siz velosipedingiz uchun tezlik o'lchagich va odometrdan iborat displey yaratishni o'rganasiz. Haqiqiy vaqtda tezlik va bosib o'tgan masofani ko'rsatadi. Loyihaning umumiy qiymati tugaydi
Sensorli uchta sensorli davr + Sensorli taymer davri: 4 qadam
Sensorli uchta sensorli davr + Sensorli taymer davri: Sensorli sensor - bu pimlarga teginish aniqlanganda yoqiladigan elektron. Bu vaqtinchalik ishlaydi, ya'ni yuk faqat pimlarga tegib turganda yoqiladi, bu erda men sizga teginishning uch xil usulini ko'rsataman
Velosiped dubulg'alari uchun mikro: bit yo'nalish ko'rsatkichi: 5 qadam
Velosiped dubulg'alari uchun mikro: bitli yo'nalish ko'rsatkichi: Yangilangan versiya 2018 yil-may-12 Velosiped dubulg'alari (yoki shunga o'xshash) uchun oddiy mikro: bitli yo'nalishli indikatorni yaratish bo'yicha ko'rsatmalar quyida. Boshqaruv sifatida u micro: bitda o'rnatilgan akselerometrlardan foydalanadi. Taqdim etilgan mikro python skriptlari yaxshi