Mündəricat:

Minimalist Velosiped Göstəricisi, Touch-Enabled!: 10 Addım (Şəkillərlə)
Minimalist Velosiped Göstəricisi, Touch-Enabled!: 10 Addım (Şəkillərlə)

Video: Minimalist Velosiped Göstəricisi, Touch-Enabled!: 10 Addım (Şəkillərlə)

Video: Minimalist Velosiped Göstəricisi, Touch-Enabled!: 10 Addım (Şəkillərlə)
Video: Обзор Merida eSpeeder 200 (2021) 2024, Noyabr
Anonim
Image
Image

Salam! Bu mənim ilk təlimatımdır. Həmişə hər şeyi sıfırdan düzəltmək istədim ki, necə işlədiyini və kimin ehtiyaclarını uyğun olaraq dəyişdirə bilsəniz DIY işlərini kim sevmir? Bir DIY nə qədər maraqlı görünsə də, bunu reallaşdırmaq üçün bir az səy tələb olunur. Instructables veb saytına baxmaq, DIY istəklərinizə başlamaq üçün əla bir yoldur və bu səbəbdən bəzi layihələrimi daha əvvəl qurmağa başladım, amma heç vaxt düşünməmişdim.

Fürsət gəldiyi kimi, minimalist dizaynlı və toxunuşlu Velosiped Göstəricisi hazırladım. Velosiped göstəricisi üçün bir çox Təlimat və ya onlayn mənbənin olduğunu bilirəm, amma əksəriyyəti ya bir az daha çox yer tutmuşdu, ya da onları müəyyən bir şəkildə dəyişdirmək üçün ağıllı deyildi. Ehtiyaclarınızı ödəmək üçün kifayət qədər ağıllı bir göstərici axtarırsınızsa və ehtiyaclarınıza uyğun olaraq onları dəyişdirmək şansı verirsinizsə, bu Təlimat sizin üçündür!

Niyə velosiped göstəricisi?

Şəhər ətrafında velosiped sürməyi sevirəm! Velosipedimi sürürəm və ya səhər və ya axşam gəzintiyə çıxıram. Bəzən, gecə saatlarında gəzmək çətindir, çünki arxanızdakı trafik sizi görə bilməyəcək və bu təhlükəli bir işarədir. Bu səbəbdən evdə yanımda olan bütün materiallar ilə bir Göstərici qurmaq istədim və şəhərdə gəzərkən göstəriciləri açaraq velosipeddə əla görünür!

Heç bir problemlə üzləşmədən bir layihə hazırlamaq heç də baş vermir! Ancaq bunları düzəltməyə çalışmamaq üçün "Əlverişli bir İpucu" olaraq etdiyim bütün səhvləri sizə söyləyəcəyəm. YouTube videosunda layihənin necə qurulduğu, işlərin necə işlədiyini və indikatorun yolda necə göründüyünü göstərmək üçün kiçik animasiyaların təsviri var! Ən ətraflı məlumat bu Təlimatda verilmişdir. Davam edərkən, youtube videomun seqmentlərini hər şeydə "Zaman Çizelgesi" olaraq etiketləyəcəyəm ki, hər şeyin praktik olaraq necə işlədiyinə baxasınız. Vurğulanan bağlantıları tıklayaraq daha çox məlumat əldə edə bilərsiniz.

Bu layihənin xüsusiyyətləri:

  • Sağ dönmə göstəricisi
  • Sol Dönüş Göstərişi
  • Gecə Görmə Göstərişi
  • Toxunma Aktivdir

Addım 1: Başlamaq üçün materiallar

Test Komponentləri
Test Komponentləri
  • Rezistorlar (330 ohm və 120 ohm): 330 ohm və 120 ohm
  • Moruq Pi 3: RPi 3
  • Çörək lövhəsi: Çörək taxtası
  • Jumper Telləri (Kişi-Kişi, Kişi-Dişi, Dişi-Dişi): Jumper Telləri
  • Çox telli tellər: Çox telli tel
  • Kapasitiv Toxunma Sensoru (TTP223) - (2): Bağlantı
  • RGB LEDləri (Ümumi Katod Tipi) - (13): RGB LED Ümumi Katod
  • Normal LEDlər - (2): LED
  • Lehim materialları: Lehim dəsti
  • Mükəmməl lövhələr: Perf Board
  • Powerbank: Powerbank
  • 1 mikro Farad Elektrolitik Kondansatör: Elektrolitik Kondansatör
  • LDR (İşıqdan Rezistor): LDR
  • Kabel bağları: Kabel bağları
  • Kabel bağlayıcı: Kabel bağlayıcı
  • Akril Boya və Fırçalar (İsteğe bağlı): Boya və Fırçalar
  • Montaj üçün iki saxlama qutusu. (1 böyük və 1 orta ölçülü)

Həmişə yuxarıda göstərilənlərə əlavə miqdarda saxlayın. Mən komponentləri Amazon -a və lehimləmə materialları üçün ən yaxşı satın alma dəstinə bağladım!

İş qrafiki: Material toplayın

Addım 2: Komponentləri yoxlayın

Test Komponentləri
Test Komponentləri
Test Komponentləri
Test Komponentləri
Test Komponentləri
Test Komponentləri

Gəlin komponentlərinizi sınaqdan keçirək! Bu, nədənsə zədələnmiş və ya qəribə hərəkət edən komponentləri ayırmaq üçün həqiqətən faydalıdır və bu mərhələ, bütün layihəni qurmağa başlamazdan əvvəl komponentlərlə ilk təcrübə əldə etməyə və bir az öyrənməyə imkan verir.

RGB LED tipini yoxlayın

Bazarda tapdığımız iki növ RGB LED var. Ümumi katot növü və ümumi anod növü.

Bu lazımlı bir ipucu (daha böyük olsa da) çünki bu videodan göründüyü kimi LED-ləri burada bağladım və dövrəni bir neçə dəfə yoxladıqdan sonra da LED gözlənildiyi kimi yanmadı. Sonra bu LED -in iki növünün olduğunu başa düşdüm və məlumat cədvəlindən keçərək nəhayət bir həll aldım! Dövrümdəki problem, ümumi katot pininin qeyd edildiyi kimi 3.3V -ə bağlanması idi və GPIO pinini YÜKSƏK olaraq saxladım, buna görə həm ümumi katot pimi, həm də digər 3 pin eyni potensialda idi.

Həll yolu: Ümumi katot pinini yerə bağladım və LED yandı! GPIO sancaqlarını aşağı tutmaq üçün kodumu dəyişdirməməyimin səbəbi, daha sonra daha çox LED istifadə edəcəyik və RPi bizə başqa məqsədlər üçün ehtiyac duyduğumuz 3.3 V -də yalnız iki pin verir!

Növü necə yoxlamaq olar?

Multimetreyi davamlılıq rejimində saxlayın. Multimetrenin qırmızı ucu və qara ucu ilə ən uzun ipi vurun, digər uclardan birini vurun.. Əgər yoxsa, multimetrin ucunu indi tərsinə çevirin. Qara ucu və digər ucları olan qırmızı ucu olan ən uzun qurğunu vurun, indi LEDin Ümumi Katodlu RGB LED olduğunu göstərən işıq yanacaq.

Faydalı İpucu: Bu layihədə Ümumi Katod Tipindən istifadə etdim. Yalnız bu növləri əldə etməyə çalışın, amma digər növü mövcud olsa belə, narahat olmayın. Dövrə əlaqələri eyni olaraq qalır, yeganə fərqi dəyişdirməli olduğunuz faktiki kod xəttinin yanında şərh olaraq verəcəyim kodda etmək lazımdır. Nəfəs al.

Zaman cədvəli: RGB test edin

İstinad: RGB -ni necə yoxlamaq olar

RGB LED yanır

Bunu etmək üçün yuxarıdakı şəkillərdə verilən əlaqə diaqramını yoxlayın və sancaqlara uyğun olaraq çörək taxtası ilə bağlayın (işə başlamağı təhlükəsiz saxlamaq üçün).

QIRMIZI: Pin 11 (330 ohm müqavimət)

GREEN: Pin 13 (120 ohm müqavimət)

MAVİ: Pin 15 (120 ohm müqavimət)

Rezistorların dəyərləri dəyişən irəli gərginliklərə görə dəyişir.

Onları düzgün bağladıqdan sonra RPi -ni daxili python IDE -də kodlayın.

GPO olaraq RPi. GPIO idxal edin

#Pin nömrələri RPi GPIO Red_pin = 11 Green_pin = 13 Blue_pin = 15 #Ümumi katod pinini Pin 6 def turnOn (pin) ilə birləşdirin: GPIO.setmode (GPIO. BOARD) GPIO.setup (pin, GPIO). OUT) GPIO.output (pin, GPIO. HIGH) #Turn an Off (pin) ümumi anod növü üçün 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) cəhd edin: while True: cmd = input ("əmrinizi yazın:") əgər cmd == "qırmızı" ": #type daxil etmə əmrləri tam olaraq" "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 ("Geçerli bir əmr deyil") KeyboardInterrupt istisna olmaqla: GPIO.cleanup ()

Bu Təlimata istinad etdim, ətraflı təsviri və kodu öyrənmək üçün bunu yoxlayın!

Yuxarıdakı eyni kodu istifadə edərək, çörək taxtasına paralel olaraq birləşdirərək birdən çox LED -i yoxlaya bilərsiniz və bir -birinə bağlı olan hər hansı bir pindən tək nöqtəni çıxara bilərsiniz. LED -lərinizin parlaqlığını yoxlamaq üçün hər pin üçün fərqli müqavimət dəyərlərindən istifadə edin

Faydalı İpucu: Eyni pin tipli paralel bağladığınızdan əmin olun. Yəni bir LED -in qırmızı pimi yalnız digər LED -in qırmızı pininə bağlanır.

Zaman Çizelgesi: Parıltı verin!

TouchPad testi

Dövrə bağlantısı burada göstərildiyi kimidir (Zaman Çizelgesi). Onları göstərildiyi kimi bağlayın və aşağıdakı kodu istifadə edərək toxunma panellərinizi sınayın.

Kod:

GPO olaraq RPi. GPIO idxal edin

vaxtdan idxal yuxusu GPIO.setmode (IO. BOARD) touchpad1 = 11 #pin 11 touchpad2 = 13 #pin 13 GPIO.setup (touchpad1, GPIO. IN) GPIO.setup (touchpad2, GPIO. IN) #Hər ikisini də klublaşdıra bilərik. yuxarıdakı ifadələr # GPIO.setup ([touchpad1, touchpad2], GPIO. IN) olaraq birlikdə cəhd edin: while True: if (GPIO.input (touchpad1) == True): print ("Touchpad 1 touched") yuxu (2) elif (GPIO.input (touchpad2) == Doğru): yazdır ("Touchpad 2 toxundu") yuxu (2) başqa: Klaviatura istisna olmaqla çap edin ("Toxunulmadı") Kəsmə: GPIO.cleanup () #CTRL-C

Bir LED testi

LED sınamaq üçün bu zəhmli təlimata baxın!

Yuxarıda göstərilən bütün komponentləri sınadıqdan sonra onun daha böyük versiyasını hazırlamağa hazırsınız.

Addım 3: Göstərici Panelin lehimlənməsi

Göstərici Panelin lehimlənməsi
Göstərici Panelin lehimlənməsi
Göstərici Panelin lehimlənməsi
Göstərici Panelin lehimlənməsi
Göstərici Panelin lehimlənməsi
Göstərici Panelin lehimlənməsi

Lehimləmə təcrübəniz varsa, burada bəzi əsasları öyrənmək üçün bu təlimatı oxuyun (Lehimləmə üsulu). Lehimləmə işinin peşəkarsınızsa, başlayaq!

Göstərici Paneli

Yuxarıdakı şəkillərdə onları lövhədə necə lehimləmək barədə İllüstrasiyanı tapa bilərsiniz.

Panel üçün 13 RGB LED istifadə edirik. Onları üç hissəyə ayırın: sola, sağa və mərkəzə görə lehimləmək üçün.

Mühüm: LED -lərin aralığı

LEDlər arasında 3 sıra qoydum. İkinci şəkildə göstərildiyi kimi, LED panelinin yaxşı görünməsi və özünü yaxşı hiss etməsi üçün bu vacibdir. LED -lərin məkanı artırmasını və ya uzaqdan işığı uzaqdan ayıra bilməməsini çox istəmirik.

Faydalı İpucu: Əvvəlcə bütün Ümumi Katot Pimlərini lehimləməklə başlayın

Lazımlı İpucu: LEDləri bir-birinə bağlamaq üçün daha az möhkəm və əyilmək asan olduğu üçün Çox Telli Tellərdən istifadə edin. Qısa məsafələri birləşdirmək üçün LED-lərdən əlavə kəsmə pinlərindən istifadə edə bilərsiniz

Sağ Bölmə: (5 LED)

  • Bütün Qırmızı Pinləri birləşdirin
  • Bütün Yaşıl Pinləri bir yerə bağlayın
  • Bütün Ümumi Katot Pimlərini birləşdirin

Sol Bölmə: (5 LED)

  • Bütün Qırmızı Pinləri birləşdirin
  • Bütün Yaşıl Pinləri bir yerə bağlayın
  • Bütün Ümumi Katot Pimlərini birləşdirin

Mərkəzi Bölmə: (3 LED)

Faydalı İpucu: Bu bölmə kifayət qədər ehtiyatlılıq tələb edir. Bütün pinləri yuxarıdakı iki hissədə olduğu kimi bir yerdə lehimləməyin!

  • Bütün Qırmızı Pinləri birləşdirin
  • Yalnız yuxarı və aşağı LED -ləri, Yaşıl Pimi bağlayın.
  • Bütün Ümumi Katot Pimlərini birləşdirin

Tellər

Paneli GPIO lövhəsinə bağlamaq üçün daha uzun tellərə ehtiyacımız var.

Faydalı İpucu:

  • Tək telli tellərdən istifadə edin! Tətbiq olunan mexaniki stresslərə tab gətirə biləcək qədər möhkəmdirlər!
  • Telləri panel və RPi arasında lazım olan həqiqi uzunluqdan bir qədər uzun saxlayın (bu, sonradan telləri idarə edərkən çox faydalıdır! (Zaman Çizelgesi: Ölçmələr)
  • Lehimdən sonra izolyasiya edin! Çox vacib

Lehimləmək üçün bir tel və bir tel istifadə edin. Atlama telinin bir ucu qadın konnektor olmalıdır. Burada göstərildiyi kimi lehimləyin (Zaman Çizelgesi)

Qırmızı, Yaşıl və Qara kimi telləri rənglə işarələyin. Qırmızı pin, Yaşıl pin və Ümumi katot pininə uyğun gəlir.

3 Qara tel, 3 Qırmızı Tel və 3 Yaşıl Tel lazımdır.

Tellər hazır olduqdan sonra. Telləri göstərici LED -lərinə lehimləyin.

Faydalı məsləhətlər:

  • LEDlərin verilən bağlantılara uyğun olaraq lehimləndiyinə əmin olun.
  • Doğru müqavimət dəyərlərini yerinə lehimlədiyinizdən əmin olun. Dəyərlər dəyişdirilərsə, LED -lərin parlaqlığına təsir edəcək
  • Bütün LED -lərinizin işlədiyini yoxlamağın bir yolu 2 -ci addımda verilən multimetr sayğacından istifadə etməkdir. Bu, çox qısa müddətdə LED -lərin yanmayacağını bildiyiniz kimi çox rahatdır.
  • Tellərin uclarını tələb olunduğundan artıq soymayın. Onları yerində saxlamaq çətin olacaq və eyni zamanda qısa qapanma riski daha yüksək olacaq.
  • LEDlər arasında əlaqə yaratmaq üçün çox telli tel istifadə edin.
  • Bölmələri RPi-yə bağlamaq üçün tək telli tel istifadə edin.

Addım 4: Göstərici Panelini Test Edin

Göstərici Panelini Test Edin
Göstərici Panelini Test Edin
Göstərici Panelini Test Edin
Göstərici Panelini Test Edin
Göstərici Panelini Test Edin
Göstərici Panelini Test Edin

Şükürlər olsun! Paneli düzgün lehimləmisinizsə. İndi Göstəricini kodlaşdırmağa davam edək!

Daha əvvəl də qeyd edildiyi kimi, sağa, sola və gecə mənzərəsini açıb/söndürəcəyik.

Addım 3 -də dövrə bağlantısına baxın.

Panelin tellərini aşağıda qeyd edildiyi kimi bağlayın:

  • Qırmızı Sağ - Pin 7
  • Yaşıl Sağ - Pin 11
  • Ümumi Katod Sağ - Pin 6 (GND)
  • Qırmızı sol - Pin 13
  • Yaşıl sol - Pin 15
  • Sol Ümumi Katod - Pin 9 (GND)
  • Qırmızı Mərkəz - Pin 16
  • Yaşıl Mərkəz (yuxarı və aşağı) - Pin 18
  • Ortaq Katod Mərkəzi - Pin 14 (GND)

Test Kodu:

GPO olaraq RPi. GPIO idxal edin

vaxtdan idxal yuxusu #Aşağıdakı pin nömrələrinə uyğun olaraq bağlanın 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 ("Sağa Dönmə") yanıp sönür (Green_right, Green_top_bottom, 0) def left_turn (): print ("Sola dönmə") yanıp sönmə (Green_left, Green_top_bottom, 0) def yanıp sönmə (pin1, pin2, pin3): əgər (pin3 == 0): GPIO.setup ([pin1, pin2], GPIO. OUT) x aralığında (10): GPIO.output ([pin1, pin2], GPIO. HIGH) yuxu (0.5) GPIO.output ([pin1, pin2], GPIO. LOW) yuxu (0.5) başqa: x aralığında (10) GPIO. qurulumu ([pin1, pin2, pin3], GPIO. OUT): GPIO.output ([pin1, pin2, pin3], GPIO. HIGH) yuxu (0.5) GPIO.output ([pin1, pin2, pin3], GPIO. LOW) yuxu (0.5) def night_sight (): print ("Night Sight ON") yanıp sönmə (Red_left, Red_right, Red_center) cəhd edin: while True: cmd = giriş (" Test LED: ") əgər cmd ==" sağa dönmə ": sağ_turn () elif cmd ==" sola dönmə ": left_turn () elif cmd ==" gecə mənzərəsi ": night_sight () başqa: print (" Yanlış Əmr ")) Ke -dən başqa yboardInterrupt: GPIO.cleanup ()

Paneliniz koddakı kimi bütün test mərhələlərini təmizləyirsə, Yaxşı Bitti! Növbəti addıma hazır olun

Panel yanmırsa, bütün addımları düzgün yerinə yetirdiyinizə və əvvəllər lazımlı ipuçlarına baxdığınızdan əmin olun. Problem hələ də davam edərsə, aşağıda şərh yaza bilərsiniz, kömək etməyə hazıram.

Zaman Çizelgesi: BİR TEST (İş prototipi üçün videoya baxın)

Addım 5: Göstərici Paneli Touchpad ilə İnteqrasiya edin

Göstərici panelini Touchpad ilə birləşdirmək
Göstərici panelini Touchpad ilə birləşdirmək
Göstərici panelini Touchpad ilə birləşdirmək
Göstərici panelini Touchpad ilə birləşdirmək
Göstərici panelini Touchpad ilə birləşdirmək
Göstərici panelini Touchpad ilə birləşdirmək

RPi ilə əlaqələndirilir

Bağlantıları yuxarıdakı şəkildə göstərildiyi kimi edin.

Sağ Panel

Touchpad:

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

LED:

Anod (+) pin - Pin 33

Sol Panel

Touchpad:

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

LED:

Anod (+) pin - Pin 35

Ümumi GND: Pin 39 (hər iki LEDin katodu üçün) - Ümumi Zəmində Lehimləmə (Zaman Çizelgesi)

Test Kodu:

GPO olaraq RPi. GPIO idxal edin

vaxtdan idxal yuxusu 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 ([sağa -sola, sola -sola], GPIO. OUT) GPIO.setup (sağa toxunmaq, GPIO. IN, pull_up_down = GPIO. (right_led, GPIO. HIGH) qlobal tetiklenen tetiklendi = 1 çap ("Sağa Dönüş") yanıp sönme (Green_right, Green_top_bottom) def left_turn (kanal): GPIO.output (left_led, GPIO. HIGH) qlobal tetiklenen = 1 çap ("Dönüş Sol ") yanıp sönmə (Green_left, Green_top_bottom) GPIO.add_event_detect (sağ_toxunma, GPIO. FALLING, geri çağırma = sağ_turn, bouncetime = 500) GPIO.add_event_detect (left_touch, GPIO. FALLING, callback = left_turn), bouncetime (500 pin) pin2): GPIO.setup ([pin1, pin2], GPIO. OUT) x aralığında (10): GPIO.çıxış ([pin1, pin2], GPIO. HIGH) yuxu (0.5) GPIO.outpu t ([pin1, pin2], GPIO. LOW) yuxu (0.5) GPIO.output ([sağda, solda], GPIO. LOW) qlobal tetiklenen tetiklenen = 0 def night_sight (): while (True): GPIO.setup ([Red_center, Red_left, Red_right], GPIO. OUT) global tetiklenirse (tetiklenen == 0): çap edin ("Night Sight ON") GPIO.output ([Red_center, Red_left, Red_right], GPIO. HIGH) yuxu (0.27) GPIO.çıxış ([Red_center, Red_left, Red_right], GPIO. LOW) yuxu (0.27) başqa: çap edin ("Gecə Görüşü OFF") GPIO.output ([Red_center, Red_left, Red_right], GPIO. LOW) cəhd edin: night_sight () KeyboardInterrupt istisna olmaqla: GPIO.cleanup ()

İşıq işığını görmək üçün toxunma panelinə toxunun

Zaman Çizelgesi (Göstərici LED olmadan): İki Test

Zaman Çizelgesi (Göstərici LED ilə): Test 3

Kodun izahı: Gecə mənzərəsinin fasiləsiz işləməsini istəyirik və toxunma panelinə toxunduğumuzda toxunma panelinin funksiyasını dayandırmalı və yerinə yetirməlidir. Bunu etmək üçün eyni anda pythonda "Interrupt" kimi tanınan bir şeydən istifadə edirik. Bu, gecə görmə qabiliyyəti olan normal kodumuzu işə salmağımıza imkan verir və bir toxunuş aşkar edildikdə bir hadisəni tetikler. Gecə görmə qabiliyyətini dayandırmaq üçün tetiklenen dəyişəni bayraq olaraq istifadə edirik.

Fasilələr haqqında daha çox məlumat üçün bu linki yoxlayın.

Paneli lehimləyin

İndi velosipedin sükanına gedəcək toxunma panellərini lehimləyək. Yuxarıdakı şəkildə göstərildiyi kimi bağlantılara baxın.

İndi LED -lərinizi və toxunma panelinizi sınadığınızdan sonra getməyiniz yaxşıdır. Hələ test etməmisinizsə, bu addıma və əvvəlki addımlara baxın.

Videoda göstərildiyi kimi toxunma panelini sükanın yanına qoyun. Yəni sağ toxunma paneli üçün toxunma paneli sağda və solda soldadır. Eynilə, sol toxunma paneli üçün led sağda və toxunma paneli sol tərəfdədir, bu da baş barmağının çatmasını asanlaşdırır.

PS: Yenidən istifadə edəcəyim üçün toxunma panelini mükəmməl lövhəyə lehimləməmişəm. Buna görə yalnız iki tərəfli lentlə panelə qoydum.

Daha uzun tellərdən istifadə edərək paneli RPi -yə qoşun

Addım 6: Ağıllı olun

Ağıllı olun!
Ağıllı olun!
Ağıllı olun!
Ağıllı olun!
Ağıllı olun!
Ağıllı olun!

Bəli! İndi indikatorla bağlı bütün əsaslarımızı işə saldıq. Ağıllı etmək üçün bir addım daha irəli gedək.

Burada ağıllı batareyaya qənaət etməyi də təyin edir. Gördüyünüz kimi, gecə mənzərəsi həmişə açılır və bəzən parlaq günəşli bir gündə buna ehtiyac olmaya bilər. Bu problemi həll etmək üçün göstəricimizi buna uyğun olaraq toplaya və işlədə biləcəyimiz işığın intensivliyi haqqında məlumat vermək üçün bir LDR (İşığa Bağlı Rezistor) inteqrasiya edək.

LDR testi

İşığın intensivliyini və hansı dəyəri qaytardığını yoxlamaq üçün LDR -ni sınamaq üçün bu veb saytına müraciət etdim.

Dövrə və LDR -nin işləməsi üçün nümunə kodu üçün yuxarıda etiketlənmiş veb saytına baxın.

LDR -ni kodumuza inteqrasiya etmək

LDR -ni yuxarıdakı əlaqə diaqramında göstərildiyi kimi toxunma panelinin sağ panelinə lehimləyin.

Sancaqlar lazımi yerdə lehimləndikdən sonra son kodlaşdırma vaxtıdır. Son kod!

  • Kondansatörün və LDR-nin Katodunun (-) ümumi nöqtəsini RPi-dəki Pin 36-ya bağlayın.
  • Kondansatörün anodu, Adım 5 -də göstərilən Ümumi Zəmin nöqtəsinə bağlıdır

Yekun Kod:

GPO olaraq RPi. GPIO idxal edin

vaxtdan idxal yuxusu 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. qurulma ([sağda], solda), GPIO. OUT) GPIO.setup (sağda_tox, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.output (right_led, GPIO. HIGH) tetiklendi tetiklendi = 1 çap ("Sağa Dönüş") yanıp sönme (Green_right, Green_top_bottom) def left_turn (kanal): GPIO.output (left_led, GPIO. HIGH) qlobal tetiklenen = 1 çap ("Sola dönmə") yanıp sönmə (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) yuxu üçün pindəki çıxış (0.1) #Chang pin daxil olmaq üçün GPIO.setup (ldr, GPIO. IN) #Pim yüksək olana qədər sayın (GPIO.input (ldr) == GPIO. LOW): count += 1 return count def blink (pin1, pin2)): GPIO.setup ([pin1, pin2], GPIO. OUT) x aralığında (10): GPIO.output ([pin1, pin2], GPIO. HIGH) yuxu (0.5) GPIO.output ([pin1, pin2)], GPIO. LOW) yuxu (0.5) GPIO.output ([sağ_ləd, sol_led], GPIO. LOW) qlobal tetiklenen tetiklendi = 0 def gece_görüşü (): while (Doğru): GPIO.setup ([Red_center, Red_left, Red_right], GPIO. OUT) qlobal tetiklenirse (light_sensing (ldr)> 7800): if (triggered == 0): print ("Night Sight ON") GPIO.output ([Red_center, Red_left, Red_right], GPIO. HIGH) yuxu (0.27) GPIO.output ([Red_center, Red_left, Red_right], GPIO. LOW) yuxu (0.27) başqa: çap edin ("Night Sight OFF") GPIO.output ([Red_center, Red_left, Red_right], GPIO. LOW) cəhd edin: night_sight () KeyboardInterrupt istisna olmaqla: GPIO.cleanup ()

Voila! Və göstərici yuvarlanmağa hazırdır.

Faydalı İpucu: RPi və digər komponentləri dövrə yığmadan əvvəl bu proqramı düzgün sınadığınızdan əmin olun! Səhvləri düzəltmək üçün bir neçə dəfə işləyin.

Addım 7: Rəsm və montaj

Rəsm və montaj
Rəsm və montaj
Rəsm və montaj
Rəsm və montaj
Rəsm və montaj
Rəsm və montaj

Tələb olunan materiallar:

  • Tel kəsmə/ soyma alətləri
  • Raspberry Pi -yə uyğun bir böyük saxlama qutusu
  • Göstərici panelinə uyğun kiçik bir saxlama qutusu
  • Çəkmək
  • Boya Fırçaları

Göstərici panelini və toxunma panelini qara rəngə boyayaraq başlayın. Burada Akril Boyalar istifadə etdim, seçim lövhəsi ilə yaxşı qarışan istifadə edə bilərsiniz. LED panelini canlı və daha önəmli etmək üçün qara fondan istifadə edin. Qızdırılan bir tornavida və ya plastikin əridilməsi üçün hər hansı bir metal əşyadan istifadə edərək deliklər açın.

Qeyd: Delik açarkən diqqətli olun.

Vaxt: Boya

Lazımlı İpucu: Plastik qutulardan istifadə etdim və boya asanlıqla çıxır. Keyfiyyətli boyalardan istifadə etdiyinizə əmin olun

Göstərici və panellər boyandıqdan sonra günəşdə qurudun və yığılmağa hazır olun.

Məkana qənaət etmək üçün Göstərici Paneli və ön paneldəki əlavə lövhənin əlavə kənarlarını kəsdim.

Montaj üçün videoya baxın!

Zaman Çizelgesi: Qisasçılar! Yığın. (Göstərici panelinin və RPi -nin qutularla yığılması)

Videoda göründüyü kimi, daha böyük qutuda üç delik açaraq telləri buna uyğun olaraq qoyun. Biri RPi güc bankı teli üçün, biri touchpad panelləri üçün, biri də Göstərici paneli üçün. Kiçik qutu üçün yalnız bir çuxur lazımdır.

Lazımlı İpucu: Tellərin izolyasiyasını yoxlayın və qutuya bağlamadan əvvəl tellərin düzgün lehimləndiyini yoxlayın.

Addım 8: VNC və Son Kod ilə Uzaqdan Test

VNC və Son Kod ilə Uzaqdan Test
VNC və Son Kod ilə Uzaqdan Test
VNC və Son Kod ilə Uzaqdan Test
VNC və Son Kod ilə Uzaqdan Test

Göstərici tam hazır olana qədər bir son test. RPi -ni VNC Viewer -ə qoşun və proqramı işə salın.

Proqramı işə salmaq və proqramdakı səhvləri düzəltmək üçün həmişə VNC serverindən istifadə edirəm. Bu şəkildə monitoru xaricdən bağlamadan RPi -ni birbaşa test etmək istədiyim yerə yerləşdirə bilərəm.

RPi -ni VNC Serverə bağlamaq üçün bu səhifəni yoxlayın. (VNC Server)

RPi -ni VNC Server -ə qoşduqdan sonra. Kodu virtual masaüstündə işlədə və səhvləri düzəldə bilərsiniz.

Zaman Çizelgesi: Başlanğıcda işləyin

Lazımlı İpucu: Raspberry Pi -ni virtual masaüstünə bağladıqdan sonra RPi -nin IP ünvanı ilə daxil olacaqsınız. Ancaq RPi -nin əlaqəni rədd etdiyini bildirən bir səhv alsanız, bunun səbəbi RPI -də IP ünvanı dəyişməsidir. Routerinizi və ya WiFi qaynar nöqtənizi yenidən başladıqdan sonra köhnə ünvanla daxil olmağa çalışdığınız zaman bu baş verə bilər. Router hər dəfə yenidən başladıqda yeni bir IP təyin edir. Ancaq RPi -nin köhnə IP ünvanını xatırlayırsınızsa, son rəqəmi 1 -ə artırın və daxil olun. Məsələn: Köhnə IP ünvanı 190.148.1.100 -dirsə, 190.148 -dən istifadə edərək daxil olun..101

Hamısının düzgün işlədiyini yoxladıqdan sonra son montajın vaxtı gəldi.

Həmişə python skriptini izləmək və ya işlətmək üçün virtual masaüstümüz ola bilməz. Beləliklə, başlanğıcda bunu edək.

RPi açıldıqdan sonra proqramımızın işləməsini istəyirik. Bu barədə daha ətraflı məlumat üçün bu veb saytına baxın!

RPi'niz Avtomatik giriş quruluşundadırsa, davam edin;

Aşağıdakı əmrləri RPi terminalında işlədin

sudo nano /etc /profile

Aşağıya doğru gedin və aşağıdakı sətri əlavə edin:

sudo python file_path və

Buradakı file_path, son kodunuzun saxlandığı python faylının yoluna aiddir.

Qeyd: Faylın sonundakı Ampersand (&) əlavə edilməlidir ki, proqramınız sistemin açılışına paralel olaraq işləsin. Proqramımız sonsuz bir döngə ehtiva etdiyindən, bu addım məcburidir, belə ki proqram gözlənildiyi kimi işləməsə də, parametrləri dəyişdirmək üçün RPi masaüstündən istifadə edə bilərik.

Bundan sonra CTRL-X və sonra Y düyməsini iki dəfə basın və komanda terminalına qayıdacaqsınız.

Pi'yi yenidən başladın

İndi kod başlanğıcda işləməlidir

Addım 9: Kabel İdarəçiliyi və Son Quraşdırma

Kabel İdarəçiliyi və Son Quraşdırma
Kabel İdarəçiliyi və Son Quraşdırma
Kabel İdarəçiliyi və Son Quraşdırma
Kabel İdarəçiliyi və Son Quraşdırma
Kabel İdarəçiliyi və Son Quraşdırma
Kabel İdarəçiliyi və Son Quraşdırma

Təbrik edirik! bu layihəni başa çatdırmaq üçün. Gördüyünüz kimi, Minimal sözünü verdim, lazım olan bütün göstəriciləri göstərmək üçün daha az LED istifadə etdik və eyni zamanda xüsusi rənglərlə. LEDləriniz üçün fərqli rənglərdən istifadə edə bilərsiniz, məsələn, dönmə göstəriciləri üçün sarı və ya digər.

Bu layihəni həyata keçirmisinizsə, "Mən etdim" düyməsini basın və təcrübənizi bölüşün. Bu layihə ilə bağlı fikirlərinizi və hər hansı bir təklif və ya şərhinizi paylaşın. Bunu eşitmək istərdim!

Kabel İdarəçiliyi

Bəli! Diqqət yetirdiyiniz kimi, dövrələrin içərisində və ətrafında çox sayda tel var və onları idarə etmək çox narahatdır. Telləri gizlətmək üçün kabel etiketlərindən, izolyasiya lentlərindən və kabel korpusundan istifadə etdim və şəkili gördüyünüz kimi qara rəngə boyadım.

Faydalı İpucu: Kabellərinizdə lazımi həddən artıq düym buraxdığınız üçün onları gərginləşdirmədən düzgün idarə etmək indi faydalıdır! Əgər LED -lərinizdən biri yanarsa və digərləri hər şeyi düzgün etsəniz belə, problem ondadır RPi -yə qoşulan Jumper Wires, boş bir əlaqə olacaq. Bu davam edərsə, teli uzatmaq və bağlamaq üçün kişi ilə dişi tullanan tel istifadə edin. Telləri yerində saxlamaq üçün kabel bağlarından istifadə edin ki, hərəkət etməsin.

İndi Göstərici hamısı Ride üçün qurulub! Zövq alın

PS: Başqa bir təlimat olaraq, dövrədəki tellərin sayını azaltmaq və daha yaxşı bir plan hazırlamaq istərdim. Bunu etsəm, bu barədə bir təlimat paylaşacağam!

Addım 10: Göstəricinin bəzi şəkilləri

Göstəricinin bəzi şəkilləri
Göstəricinin bəzi şəkilləri
Göstəricinin bəzi şəkilləri
Göstəricinin bəzi şəkilləri
Göstəricinin bəzi şəkilləri
Göstəricinin bəzi şəkilləri
Göstəricinin bəzi şəkilləri
Göstəricinin bəzi şəkilləri

Bu Təlimatı oxuduğunuz üçün təşəkkür edirəm. Ümid edirəm ki, bunu edərkən mənim kimi zövq aldınız

Zaman Çizelgesi: Final Testi Yuxarıdakı seqmentdə görürsən ki, otaq qaranlıqlaşan kimi "Gecə Görüşü" AÇILIR və parlaqlaşdıqca dərhal sönür!

İş qrafiki: Göstəricini diqqət mərkəzində göstərmək üçün çəkdiyim bəzi videolar. Videoya görə bacımın velosiped sürməsinə bütün kreditlər!

Tövsiyə: