Mundarija:

Minimalist velosiped ko'rsatkichi, sensorli: 10 qadam (rasmlar bilan)
Minimalist velosiped ko'rsatkichi, sensorli: 10 qadam (rasmlar bilan)

Video: Minimalist velosiped ko'rsatkichi, sensorli: 10 qadam (rasmlar bilan)

Video: Minimalist velosiped ko'rsatkichi, sensorli: 10 qadam (rasmlar bilan)
Video: Электросамокаты 2021 КАКОЙ ВЫБРАТЬ Какие бывают Электросамокат 2021 для города взрослых подростков 2024, Noyabr
Anonim
Image
Image

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

Sinov komponentlari
Sinov komponentlari
  • 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

Sinov komponentlari
Sinov komponentlari
Sinov komponentlari
Sinov komponentlari
Sinov komponentlari
Sinov komponentlari

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

Ko'rsatkich panelini lehimlash
Ko'rsatkich panelini lehimlash
Ko'rsatkich panelini lehimlash
Ko'rsatkich panelini lehimlash
Ko'rsatkich panelini lehimlash
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

Ko'rsatkich panelini sinovga qo'ying
Ko'rsatkich panelini sinovga qo'ying
Ko'rsatkich panelini sinovga qo'ying
Ko'rsatkich panelini sinovga qo'ying
Ko'rsatkich panelini sinovga qo'ying
Ko'rsatkich panelini sinovga qo'ying

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

Ko'rsatkich panelini sensorli panel bilan birlashtirish
Ko'rsatkich panelini sensorli panel bilan birlashtirish
Ko'rsatkich panelini sensorli panel bilan birlashtirish
Ko'rsatkich panelini sensorli panel bilan birlashtirish
Ko'rsatkich panelini sensorli panel bilan birlashtirish
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

Buni aqlli qiling!
Buni aqlli qiling!
Buni aqlli qiling!
Buni aqlli qiling!
Buni aqlli qiling!
Buni 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

Rasm va montaj
Rasm va montaj
Rasm va montaj
Rasm va montaj
Rasm va montaj
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

VNC va yakuniy kod yordamida masofaviy test
VNC va yakuniy kod yordamida masofaviy test
VNC va yakuniy kod yordamida masofaviy test
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

Kabelni boshqarish va yakuniy yig'ilish
Kabelni boshqarish va yakuniy yig'ilish
Kabelni boshqarish va yakuniy yig'ilish
Kabelni boshqarish va yakuniy yig'ilish
Kabelni boshqarish va yakuniy yig'ilish
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

Ko'rsatkichning ba'zi rasmlari
Ko'rsatkichning ba'zi rasmlari
Ko'rsatkichning ba'zi rasmlari
Ko'rsatkichning ba'zi rasmlari
Ko'rsatkichning ba'zi rasmlari
Ko'rsatkichning ba'zi rasmlari
Ko'rsatkichning ba'zi rasmlari
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: