İçindekiler:

Minimalist Bisiklet Göstergesi, Dokunmatik Aktif!: 10 Adım (Resimlerle)
Minimalist Bisiklet Göstergesi, Dokunmatik Aktif!: 10 Adım (Resimlerle)

Video: Minimalist Bisiklet Göstergesi, Dokunmatik Aktif!: 10 Adım (Resimlerle)

Video: Minimalist Bisiklet Göstergesi, Dokunmatik Aktif!: 10 Adım (Resimlerle)
Video: Apple Watch - Gözden Kaçan 5 Özellik 2024, Temmuz
Anonim
Image
Image

Merhaba! Bu benim ilk Eğitilebilirliğim. Nasıl çalıştığını görmek için her zaman sıfırdan bir şeyler yapmak istemişimdir ve bir şeyi ihtiyaçlarınıza göre değiştirebildiğiniz zaman DIY (Kendin yap) işlerini kim sevmez? Bir DIY kulağa ne kadar ilginç gelse de, bunu gerçekleştirmek biraz çaba gerektirir. Instructables web sitesine göz atmak, kendin yap isteklerinizi başlatmak için harika bir yoldur ve bu, bazı projelerimi daha önce oluşturmaya böyle başladım, ancak bir tane yapacağımı hiç düşünmemiştim.

Önüme fırsat çıkarken minimalist tasarımlı ve dokunmatik özellikli bir Bisiklet Göstergesi yaptım. Bir bisiklet göstergesi için birçok Eğitilebilir veya çevrimiçi kaynak olduğunu biliyorum, ancak çoğu ya biraz daha fazla yer kapladı ya da onları belirli bir şekilde değiştirecek kadar akıllı değildi. İhtiyaçlarınızı karşılayacak kadar akıllı bir gösterge arıyorsanız ve bunları ihtiyaçlarınıza göre değiştirme şansı veriyorsanız, bu Eğitilebilir Tablo tam size göre!

Neden Bisiklet Göstergesi?

Şehirde bisiklet sürmeyi seviyorum! Bisikletimi alıyorum ve sabahları veya akşamları sadece gezintiye çıkıyorum. Bazen geceleri, arkanızdaki trafik sizi fark edemeyeceğinden ve bu tehlikeli bir işaret olduğundan, sürüş yapmak zordur. Bu yüzden evde yanımda olan tüm malzemelerle kendim bir Gösterge yapmak istedim ve ayrıca şehirde bisiklet sürerken göstergeleri AÇIK konuma getirirken bisiklet üzerinde harika görünüyor!

Herhangi bir sorunla karşılaşmadan proje yapmak olmuyor! Ama bunu yaparken yaptığım tüm hataları size "Kullanışlı İpucu" olarak anlatacağım ki onları yapmaya çalışmayın. YouTube videosu, projenin nasıl oluşturulduğuna dair bir İllüstrasyon, işlerin nasıl yürüdüğünü ve göstergenin yolda nasıl göründüğünü anlatmak için küçük animasyonlar içerir! En ayrıntılı bilgiler bu Talimatta verilmiştir. Siz ilerledikçe, işlerin pratikte nasıl çalıştığına bakmanız için her adımda youtube videomun bölümlerini "Zaman Çizelgesi:" olarak etiketleyeceğim. Sağlanan vurgulanan bağlantılara tıklayarak daha fazla bilgi alabilirsiniz.

Bu projenin özellikleri:

  • Sağa Dönüş Göstergesi
  • Sola Dönüş Göstergesi
  • Gece Görüş Göstergesi
  • Dokunmatik Etkin

Adım 1: Başlamak için Malzemeler

Test Bileşenleri
Test Bileşenleri
  • Dirençler (330 ohm ve 120 ohm): 330 ohm ve 120 ohm
  • Ahududu Pi 3: RPi 3
  • Breadboard: Breadboard
  • Jumper Telleri (Erkek-Erkek, Erkek-Dişi, Dişi-Dişi): Jumper Telleri
  • Çok Telli Teller: Çok Telli Tel
  • Kapasitif Dokunmatik Sensör (TTP223) - (2): Bağlantı
  • RGB LED'ler (Ortak Katot Tipi) - (13): RGB LED Ortak Katot
  • Normal LED'ler - (2): LED
  • Lehimleme Malzemeleri: Lehimleme Kiti
  • Mükemmel Tahtalar: Mükemmel Tahta
  • Güç Bankası: Güç Bankası
  • 1 mikro Farad Elektrolitik Kondansatör: Elektrolitik Kondansatör
  • LDR (Işık Bağımlı Direnç): LDR
  • Kablo Bağları: Kablo Bağları
  • Kablo Kapatıcı: Kablo Kapatıcı
  • Akrilik Boya ve Fırçalar (Opsiyonel): Boya ve Fırçalar
  • Montaj için iki saklama kutusu. (1 Büyük ve 1 orta boy)

Her zaman yukarıda belirtilenlere göre fazladan miktar bulundurun. Bileşenleri Amazon'da ve lehimleme malzemeleri için bazı en iyi satın alma kitlerini birbirine bağladım!

Zaman Çizelgesi: Malzemeleri Toplayın

Adım 2: Bileşenleri Test Etme

Test Bileşenleri
Test Bileşenleri
Test Bileşenleri
Test Bileşenleri
Test Bileşenleri
Test Bileşenleri

Bileşenlerinizi test edelim! Bu, herhangi bir nedenle hasar görmüş veya garip davranan bileşenleri ayırmaya gerçekten yardımcı olur ve ayrıca bu aşama, bileşenlerle ilk Uygulamalı deneyimi edinmenize ve tüm projeyi oluşturmaya başlamadan önce biraz öğrenmenize olanak tanır.

RGB LED türünü test edin

Piyasada bulduğumuz iki tür RGB LED var. Ortak katot tipi ve ortak anot tipi.

Bu kullanışlı bir ipucu (daha büyük olsa da) çünkü bu videoda görüldüğü gibi LED'leri bağladım ve devreyi birkaç kez çapraz kontrol ettikten sonra bile LED beklendiği gibi yanmadı. Sonra bu LED'in iki türü olduğunu fark ettim ve veri sayfasını inceleyerek sonunda bir çözüm buldum! Devremdeki sorun, ortak katot piminin belirtildiği gibi 3.3V'a bağlı olmasıydı ve GPIO pimini YÜKSEK olarak tuttum, böylece hem ortak katot pimi hem de diğer 3 pim aynı potansiyeldeydi.

Çözüm: Ortak katot pimini toprağa bağladım ve LED yandı! GPIO pinlerini DÜŞÜK tutmak için kodumu değiştirmememin nedeni, daha sonra daha fazla LED kullanacağımız ve RPi bize başka amaçlar için de ihtiyacımız olan 3.3 V'ta sadece iki pin verdiği için!

Tip testi nasıl yapılır?

Multimetreyi süreklilik modunda tutun. Multimetrenin kırmızı ucu ve siyah ucu olan en uzun kabloya dokunun, diğer uçlardan herhangi birine dokunun. Yukarıdaki adımı gerçekleştirdiğinizde LED yanarsa, bu bir Ortak Anot RGB LED'idir.. Olmaz ise, multimetre ucunu şimdi ters çevirin. Diğer uçlarla birlikte siyah uçlu ve kırmızı uçlu en uzun kabloya dokunun. Şimdi LED'in Ortak Katot RGB LED'i olduğunu gösterecek şekilde yanacaktır.

Kullanışlı İpucu: Bu projede Ortak Katot Tipini kullandım. Yalnızca bu türleri almaya çalışın, ancak diğer tür mevcut olsa bile endişelenmeyin. Devre bağlantıları aynı kalıyor, tek fark, değiştirmeniz gereken asıl kod satırının yanında yorum olarak vereceğim kodda yapılması gerekiyor. Nefes al.

Zaman Çizelgesi: RGB'yi Test Et

Referans: RGB nasıl test edilir

RGB LED yanıyor

Bunu yapmak için, yukarıdaki resimlerde verilen bağlantı şemasını kontrol edin ve pinlere göre bir breadboard üzerinden bağlayın (başlangıçta güvenli olması için).

KIRMIZI: Pin 11 (330-ohm direnç)

YEŞİL: Pin 13 (120-ohm direnç)

MAVİ: Pin 15 (120 ohm direnç)

Direnç değerleri, uçların değişen ileri voltajları nedeniyle değişir.

Bunları doğru bir şekilde bağladıktan sonra, RPi'yi yerleşik python IDE'sinde kodlayın.

RPi. GPIO'yu GPIO olarak içe aktar

#Pin numaraları, RPi GPIO üzerindeki tam sayıya karşılık gelir Red_pin = 11 Green_pin = 13 Blue_pin = 15 #Connect Common cathode to Pin 6 def turnOn(pin): GPIO.setmode(GPIO. BOARD) GPIO.setup(pin, GPIO. OUT) GPIO.output(pin, GPIO. HIGH) #GPIO.output(pin, GPIO. LOW) ortak anot tipi için def turnOff(pin): GPIO.setmode(GPIO. BOARD) GPIO.setup(pin, GPIO. ÇIKIŞ) 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) deneyin: while True: cmd = input("Komutunuzu yazın: ") if cmd == "red on ": #type giriş komutları tam olarak içinde "" 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 komut değil") KeyboardInterrupt: GPIO.cleanup() hariç

Bu Eğitilebilir Tabloya atıfta bulundum, ayrıntılı açıklama ve kod için bunu kontrol edin!

Yukarıdaki aynı kodu kullanarak, birden fazla LED'i breadboard üzerinde paralel bağlayarak birlikte kontrol edebilir ve birbirine bağlı pinlerden herhangi birinden tek noktayı çıkarabilirsiniz. LED'lerinizin parlaklığını kontrol etmek için her pin için farklı direnç değerleri kullanın

Kullanışlı İpucu: Aynı pin tipi paraleli bağladığınızdan emin olun. Yani bir LED'in kırmızı pimi sadece diğer LED'in kırmızı pimine bağlanır.

Zaman Çizelgesi: Onları parlatın!

Dokunmatik Yüzey testi

Devre bağlantısı burada gösterildiği gibidir (Zaman Çizelgesi). Bunları gösterildiği gibi bağlayın ve aşağıdaki kodu kullanarak dokunmatik yüzeylerinizi test edin.

Kod:

RPi. GPIO'yu GPIO olarak içe aktar

zamandan içe uyku GPIO.setmode(IO. BOARD) touchpad1 = 11 #pin 11 touchpad2 = 13 #pin 13 GPIO.setup(touchpad1, GPIO. IN) GPIO.setup(touchpad2, GPIO. IN) # Her ikisini de toplayabiliriz yukarıdaki ifadeler # GPIO.setup([touchpad1, touchpad2], GPIO. IN) olarak birlikte deneyin: while True: if(GPIO.input(touchpad1) == True): print ("Dokunmatik yüzey 1 dokundu") uyku(2) elif (GPIO.input(touchpad2) == True): print ("Dokunmatik Yüzey 2'ye dokunuldu") uyku(2) else: KlavyeInterrupt hariç print("Dokunulmadı"): GPIO.cleanup() #CTRL-C çıkmak için

Bir LED'i test etme

LED'inizi test etmek için bu harika talimata bakın!

Yukarıdaki tüm bileşenleri test ettikten sonra, daha büyük versiyonunu oluşturmaya hazırsınız.

Adım 3: Gösterge Panelini Lehimleme

Gösterge Panelini Lehimleme
Gösterge Panelini Lehimleme
Gösterge Panelini Lehimleme
Gösterge Panelini Lehimleme
Gösterge Panelini Lehimleme
Gösterge Panelini Lehimleme

Lehimleme konusunda yeniyseniz, burada bazı temel bilgileri öğrenmek için bu eğiticiye göz atın (Lehim nasıl yapılır). Lehimleme konusunda uzmansanız, başlayalım!

Gösterge Paneli

Bunları mükemmel tahtada nasıl lehimleyeceğinizi gösteren İllüstrasyonu yukarıdaki resimlerde bulabilirsiniz.

Panel için 13 RGB LED kullanıyoruz. Bunları üç bölüme ayırın: buna göre lehimlemek için sol, sağ ve merkez.

Önemli: LED'lerin Aralığı

Ledler arasında 3 sıra bıraktım. İkinci resimde görüldüğü gibi. Bu, LED panelin iyi görünmesi ve iyi hissettirmesi için önemlidir. LED'lerin alanı genişletmek için çok uzakta veya uzaktaki ışığı ayırt edemeyecek kadar yakın olmasını istemiyoruz.

Kullanışlı İpucu: Önce tüm Ortak Katot Pimlerini lehimleyerek başlayın

Kullanışlı İpucu: Daha az sağlam ve bükülmesi kolay olduğundan LED'leri birbirine bağlamak için Çok Telli Teller kullanın. Daha kısa mesafeleri bağlamak için LED'lerden ekstra kesme pimlerini kullanabilirsiniz.

Sağ Bölüm: (5 LED)

  • Tüm Kırmızı Pimleri birbirine bağlayın
  • Tüm Yeşil Pimleri birbirine bağlayın
  • Tüm Ortak Katot Pinlerini birbirine bağlayın

Sol Bölüm: (5 LED)

  • Tüm Kırmızı Pimleri birbirine bağlayın
  • Tüm Yeşil Pimleri birbirine bağlayın
  • Tüm Ortak Katot Pinlerini birbirine bağlayın

Orta Bölüm: (3 LED)

Kullanışlı İpucu: Bu bölüm yeterince dikkat gerektirir. Yukarıdaki iki bölümde yaptığımız gibi tüm pimleri birlikte lehimlemeyin!

  • Tüm Kırmızı Pimleri birbirine bağlayın
  • Yalnızca üst ve alt LED'leri, Yeşil Pim'i bağlayın.
  • Tüm Ortak Katot Pinlerini birbirine bağlayın

teller

Paneli GPIO kartına bağlamak için daha uzun kablolara ihtiyacımız var.

Kullanışlı İpucu:

  • Tek telli teller kullanın! Uygulanan mekanik streslere dayanacak kadar sağlamdırlar!
  • Kabloları, panel ve RPi arasında gereken gerçek uzunluktan biraz daha uzun tutun (bu, kabloları daha sonra yönetirken çok kullanışlıdır! (Zaman Çizelgesi: Ölçümler)
  • Lehimlemeden sonra yalıtın! Çok önemli

Lehimlemek için bir atlama teli ve tek telli tel kullanın. Atlama kablosunun bir ucu dişi konnektör olmalıdır. Bunları burada gösterildiği gibi lehimleyin (Zaman Çizelgesi)

Kabloları Kırmızı, Yeşil ve Siyah olarak renk kodlayın. sırasıyla Kırmızı pim, Yeşil pim ve Ortak katot pimine karşılık gelir.

3 Siyah kabloya, 3 Kırmızı Kabloya ve 3 Yeşil Kabloya ihtiyacımız var.

Teller hazır olduğunda. Kabloları gösterge LED'lerine lehimleyin.

Kullanışlı İpuçları:

  • LED'lerin verilen bağlantılara göre lehimlendiğinden emin olun.
  • Doğru direnç değerlerini yerinde lehimlediğinizden emin olun. Değerlerin değişmesi LED'lerin parlaklığını etkileyecektir.
  • Tüm LED'lerinizin çalıştığından emin olmanın bir yolu 2. Adımda verilen multimetre metreyi kullanmaktır. Bu çok kullanışlıdır, çünkü herhangi bir kısa devre olup olmadığını LED'lerin yanmayacağını bilirsiniz.
  • Tellerin uçlarını gerekenden daha uzun süre soymayın. Bu, onları yerinde tutmak zor olacak ve ayrıca kısa devre riski daha yüksek olacaktır.
  • LED'ler arasında bağlantı için çok telli kablo kullanın.
  • Bölümleri RPi'ye bağlamak için tek telli kablo kullanın.

Adım 4: Gösterge Panelini Test Edin

Gösterge Panelini Test Edin
Gösterge Panelini Test Edin
Gösterge Panelini Test Edin
Gösterge Panelini Test Edin
Gösterge Panelini Test Edin
Gösterge Panelini Test Edin

Tebrikler! Paneli doğru lehimlediyseniz. Şimdi Göstergeyi kodlamaya devam edelim!

Daha önce belirtildiği gibi, sağa dönüş, sola dönüş ve gece görüşünü açıp/kapatacağız.

Adım 3'teki devrenin bağlantısına bakın.

Panelin kablolarını aşağıda belirtildiği gibi bağlayın:

  • Kırmızı Sağ -- Pin 7
  • Yeşil Sağ -- Pin 11
  • Ortak Katot Sağ -- Pin 6 (GND)
  • Kırmızı sol -- Pin 13
  • Yeşil sol -- Pin 15
  • Ortak Katot Sol -- Pin 9 (GND)
  • Merkez Kırmızı -- Pin 16
  • Orta Yeşil (üst ve alt) -- Pin 18
  • Merkez Ortak Katot -- Pin 14 (GND)

Test Kodu:

RPi. GPIO'yu GPIO olarak içe aktar

zamandan içe uyku uyku #Aşağıdaki pin numaralarına göre bağlan 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önüyor") yanıp söner (Green_right, Green_top_bottom, 0) def left_turn(): yazdır ("Sola Dönüyor") yanıp söner(Green_left, Green_top_bottom, 0) def yanıp söner(pin1, pin2, pin3): if(pin3 == 0): GPIO.setup([x aralığında (10) pin1, pin2], GPIO. OUT): GPIO.output([pin1, pin2], GPIO. HIGH) uyku(0.5) GPIO.output([pin1, pin2], GPIO. LOW) uyku (0.5) başka: GPIO.setup([pin1, pin2, pin3], GPIO. OUT) x aralığında (10): GPIO.output([pin1, pin2, pin3], GPIO. HIGH) uyku(0.5) GPIO.output([pin1, pin2, pin3], GPIO. LOW) sleep(0.5) def night_sight(): print("Gece Görüşü AÇIK") yanıp sönme(Red_left, Red_right, Red_center) deneyin: while True: cmd = input(" Test LED'i: ") if cmd == "sağa dönüş": right_turn() elif cmd == "sola dönüş": left_turn() elif cmd == "gece görüşü": night_sight() else: print("Geçersiz Komut") Ke hariç yboardInterrupt: GPIO.cleanup()

Paneliniz koddaki gibi tüm test aşamalarını temizliyorsa, Aferin! Bir sonraki adıma hazır olun

Panelin ışığı yanmıyorsa, tüm adımları doğru bir şekilde uyguladığınızdan ve daha önce kullanışlı ipuçlarını incelediğinizden emin olun. Sorun devam ederse aşağıya yorum yazabilirsiniz, yardımcı olmaya hazırım.

Zaman Çizelgesi: Test ONE (Çalışan prototip için videoyu kontrol edin)

Adım 5: Gösterge Panelini Dokunmatik Yüzeyle Entegre Etme

Gösterge Panelini Dokunmatik Yüzeyle Entegre Etme
Gösterge Panelini Dokunmatik Yüzeyle Entegre Etme
Gösterge Panelini Dokunmatik Yüzeyle Entegre Etme
Gösterge Panelini Dokunmatik Yüzeyle Entegre Etme
Gösterge Panelini Dokunmatik Yüzeyle Entegre Etme
Gösterge Panelini Dokunmatik Yüzeyle Entegre Etme

RPi'ye bağlama

Bağlantıları yukarıdaki resimde gösterildiği gibi yapın.

Sağ Panel

Dokunmatik yüzey:

  • GND pimi -- Pim 34
  • VCC pimi -- Pim 1
  • SIG pimi -- Pim 29

LED:

Anot(+) pimi -- Pim 33

Sol Panel

Dokunmatik yüzey:

  • GND pimi -- Pim 30
  • VCC pimi -- Pim 17
  • SIG pimi -- Pim 31

LED:

Anot(+) pimi -- Pim 35

Ortak GND: Pin 39 (LED'lerin her iki katodu için) - Ortak Zemin Lehimleme (Zaman Çizelgesi)

Test Kodu:

RPi. GPIO'yu GPIO olarak içe aktar

zamandan itibaren içe aktarma uyku 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 tetiklendi = 0 GPIO.setmode(GPIO. BOARD) GPIO.setup(

Işığınızın parladığını görmek için dokunmatik yüzeye dokunun

Zaman Çizelgesi (Gösterge LED'i olmadan): İkinci Test

Zaman Çizelgesi (Gösterge LED'li):Test 3

Kod açıklaması: Gece görüşünün sürekli çalışmasını istiyoruz ve dokunmatik yüzeye dokunduğumuzda durmalı ve dokunmatik yüzeyin işlevini yerine getirmelidir. Bunu aynı anda yapmak için python'da "Kesintiler" olarak bilinen bir şey kullanıyoruz. Bu, burada gece görüşü olan normal kodumuzu çalıştırmamızı sağlar ve ayrıca bir dokunma algılandığında bir olayı tetikler. Gece görüşünü durdurmak için tetiklenen değişkeni bayrak olarak kullanıyoruz.

Kesintiler hakkında daha fazla bilgi için bu bağlantıyı kontrol edin.

Paneli Lehimleyin

Şimdi bisikletin gidonuna gidecek dokunmatik panelleri lehimleyelim. Yukarıdaki resimde verilen bağlantılara bakın.

LED'inizi ve dokunmatik yüzeyi test ettiğinize göre artık hazırsınız. Henüz test etmediyseniz lütfen bu Adıma ve önceki Adımlara bakın.

Dokunmatik yüzeyi videoda gösterildiği gibi gidonun yakınına yerleştirin. Yani, sağ dokunmatik yüzey için dokunmatik yüzey sağda ve soldadır. Benzer şekilde sol touchpad için led sağda ve touchpad soldadır, bu da başparmağın ulaşmasını kolaylaştırır.

Not: Yeniden kullanmak için dokunmatik yüzeyi mükemmel tahtaya lehimlemedim. Bu yüzden panele çift taraflı bantla yapıştırdım.

Paneli daha uzun kablolar kullanarak RPI'ye bağlayın

Adım 6: Akıllı Yapın

Akıllı olun!
Akıllı olun!
Akıllı olun!
Akıllı olun!
Akıllı olun!
Akıllı olun!

Evet! Artık Göstergeyle ilgili tüm temel özelliklerimiz hazır ve çalışır durumda. Akıllı hale getirmek için bir adım daha ileri gidelim.

Burada akıllı, pilden tasarruf etmeyi de tanımlar. Fark etmiş olabileceğiniz gibi, gece görüşü her zaman açıktır ve bazen parlak güneşli bir günde bu gerekli olmayabilir. Bu sorunun üstesinden gelmek için, göstergemizi buna göre toplayabileceğimiz ve işleyebileceğimiz ışık yoğunluğu verilerini bize vermek için bir LDR (Işık Bağımlı Direnç) entegre edelim.

LDR'yi test etme

Işık yoğunluğunu ve hangi değeri döndürdüğünü kontrol etmek için LDR'yi test etmek için bu web sitesine başvurdum.

Devre için yukarıda etiketlenen web sitesine ve LDR'nin çalışması için örnek koda bakın.

LDR'yi kodumuza entegre etme

LDR'yi, yukarıdaki bağlantı şemasında gösterildiği gibi dokunmatik yüzeyin sağ paneline lehimleyin.

Pimleri doğru yere lehimledikten sonra, kodlamanın son biti için sıra geldi. Son kod!

  • Kondansatörün Katodunun(-) ortak noktasını ve LDR'yi RPi üzerindeki Pin 36'ya bağlayın
  • Kondansatörün anodu, Adım 5'te belirtilen Ortak Toprak noktasına bağlanır.

Son Kod:

RPi. GPIO'yu GPIO olarak içe aktar

zamandan içe uyku uyku 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 tetiklendi = 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(channel): GPIO.output(right_led, GPIO. HIGH) global tetikleme tetiklendi = 1 baskı ("Sağa Dönüyor") yanıp sönme(Green_right, Green_top_bottom) def left_turn(channel): GPIO.output(left_led, GPIO. HIGH) global tetikleme tetiklendi = 1 baskı ("Sola Dönüyor") yanıp sönüyor(Green_left, Green_top_bottom) GPIO.add_event_detect(right_touch, GPIO. FALLING, geri arama = sağa_dönüş, sıçrama süresi = 500) GPIO.add_event_detect(left_touch, GPIO. FALLING, geri arama = sola_dönüş, deftime_sen = 500s) (ldr): count = 0 #GPIO.setup(ldr, GPIO. OUT) için pin üzerinde çıkış GPIO.output(ldr, GPIO. LOW) sleep(0.1) #Chang e pin GPIO.setup(ldr, GPIO. IN) girişine geri döner #Pin yüksek olana kadar say (GPIO.input(ldr) == GPIO. LOW): say += 1 geri sayım def yanıp söner(pin1, pin2)): x aralığında (10) için GPIO.setup([pin1, pin2], GPIO. OUT): GPIO.output([pin1, pin2], GPIO. HIGH) uyku(0.5) GPIO.output([pin1, pin2)], GPIO. LOW) sleep(0.5) GPIO.output([right_led, left_led], GPIO. LOW) global tetiklendi tetiklendi = 0 def night_sight(): while (True): GPIO.setup([Red_center, Red_left, Red_right], GPIO. OUT) global tetiklendi if(light_sensing(ldr) > 7800): if (tetiklendi == 0): print ("Gece Görüşü AÇIK") GPIO.output([Red_center, Red_left, Red_right], GPIO. HIGH) uyku (0.27) GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) sleep(0.27) else: print ("Gece Görüşü KAPALI") GPIO.output([Red_center, Red_left, Red_right], GPIO. LOW) deneyin: Night_sight(), KeyboardInterrupt hariç: GPIO.cleanup()

İşte! Ve gösterge yuvarlanmaya hazır.

Kullanışlı İpucu: RPi ve diğer bileşenleri döngüye monte etmeden önce bu programı doğru şekilde test ettiğinizden emin olun! Herhangi bir hatayı ayıklamak için birkaç kez çalıştırın.

Adım 7: Boyama ve Montaj

Boyama ve Montaj
Boyama ve Montaj
Boyama ve Montaj
Boyama ve Montaj
Boyama ve Montaj
Boyama ve Montaj

Gerekli malzemeler:

  • Tel Kesme / Soyma Aletleri
  • Raspberry Pi'ye sığacak büyük bir saklama kutusu
  • Gösterge paneline sığacak küçük bir saklama kutusu
  • Boya
  • Boya fırçaları

Gösterge panelini ve dokunmatik yüzey panellerini siyah renkle boyayarak başlayın. Akrilik Boyalar kullandım burada, mükemmel tahta ile iyi uyum sağlayan, istediğiniz şekilde kullanabilirsiniz. LED paneli daha canlı ve daha dikkat çekici hale getirmek için siyah bir arka plan kullanın. Isıtılmış bir tornavida kullanarak veya plastiği eritmek için herhangi bir metal nesne kullanarak delikler açın.

Not: Lütfen delik açarken dikkatli olun.

Zaman Çizelgesi:Boya

Kullanışlı İpucu: Plastik kutular kullandım ve boya kolayca çıkıyor. Kaliteli boyalar kullandığınızdan emin olun.

Gösterge ve paneller boyandıktan sonra güneşte kurutun ve montaja hazır olun.

Yer kazanmak için Gösterge Panelinde ve ön panelde mükemmel panonun ekstra kenarlarını kestim.

Montaj için videoyu kontrol edin!

Zaman Çizelgesi: Yenilmezler! Birleştirmek. (Gösterge paneli ve RPi'nin kutularla montajı)

Videoda görüldüğü gibi daha büyük olan kutuya üç delik açarak telleri uygun şekilde yerleştirin. Biri RPi güç bankası kablosu için, biri dokunmatik yüzey panelleri için ve biri Gösterge paneli için. Küçük kutu için sadece bir delik gereklidir.

Kullanışlı İpucu: Kabloların yalıtımını kontrol edin ve kabloları kutuya bağlamadan önce düzgün lehimlenip lehimlenmediğini kontrol edin.

Adım 8: VNC ve Final Code ile Uzaktan Test Etme

VNC ve Final Code ile Uzaktan Test
VNC ve Final Code ile Uzaktan Test
VNC ve Final Code ile Uzaktan Test
VNC ve Final Code ile Uzaktan Test

Gösterge tamamen hazır olmadan önce son bir test. RPI'nizi VNC Viewer'a bağlayın ve programı çalıştırın.

Programı çalıştırmak ve programdaki hataları ayıklamak için her zaman bir VNC sunucusu kullanırım. Bu sayede monitörü harici olarak bağlamadan RPi'yi doğrudan test etmek istediğim yere yerleştirebiliyorum.

RPI'nizi VNC Sunucusuna bağlamak için bu sayfayı kontrol edin. (VNC Sunucusu)

RPi'yi VNC Sunucusuna bağladıktan sonra. Kodu sanal masaüstünde çalıştırabilir ve hataları ayıklayabilirsiniz.

Zaman Çizelgesi: Başlangıçta Çalıştır

Kullanışlı İpucu: Raspberry Pi'nizi sanal masaüstüne bağladıktan sonra RPi'nin IP Adresi ile oturum açacaksınız. Ancak RPi'nin bağlantıyı reddettiğini belirten bir hata alırsanız, bunun nedeni RPI'daki IP Adresi değişikliğidir. Bu, yönlendiricinizi veya bir WiFi erişim noktasını yeniden başlattığınızda ve ardından eski adresle oturum açmayı denediğinizde olabilir. Yönlendirici, her yeniden başlattığınızda yeni bir IP atar. Ancak, RPi'nin eski IP Adresini hatırlıyorsanız, son haneyi 1 artırın ve oturum açın. Örnek: Eski IP adresi 190.148.1.100 ise, 190.148 kullanarak oturum açın..1.101

Her şeyin düzgün çalışıp çalışmadığını kontrol ettikten sonra sıra son montaja gelir.

Her zaman python betiğini izlemek veya çalıştırmak için sanal bir masaüstüne sahip olamayız. Öyleyse bunu başlangıçta yapalım.

RPi açıldığında programımızın çalışmasını istiyoruz. Bununla ilgili daha fazla ayrıntı için bu web sitesini kontrol edin!

RPi'niz Otomatik oturum açma kurulumundaysa devam edin;

RPi'nin terminalinde aşağıdaki komutları çalıştırın

sudo nano /etc/profil

En alta kaydırın ve aşağıdaki satırı ekleyin:

sudo python file_path &

Buradaki file_path, son kodunuzun depolandığı python dosyasının yolunu ifade eder.

Not: Programınızın sistem önyüklemesine paralel çalışması için dosyanın sonundaki Ve işareti (&) eklenmelidir. Programımız sonsuz bir döngü içerdiğinden, program beklendiği gibi çalışmasa bile ayarları değiştirmek için RPi masaüstünü kullanabilmemiz için bu adım zorunludur.

Bundan sonra CTRL-X'e basın ve ardından iki kez YPress Enter'a basın ve komut terminaline geri döneceksiniz.

Pi'yi yeniden başlatın

Şimdi kod başlangıçta çalışmalıdır

Adım 9: Kablo Yönetimi ve Son Montaj

Kablo Yönetimi ve Son Montaj
Kablo Yönetimi ve Son Montaj
Kablo Yönetimi ve Son Montaj
Kablo Yönetimi ve Son Montaj
Kablo Yönetimi ve Son Montaj
Kablo Yönetimi ve Son Montaj

Tebrikler! bu projeyi bitirmek üzerine. Gördüğünüz gibi Minimal kelimesini verdim, gerekli tüm göstergeleri göstermek için daha az LED kullandık ve ayrıca özelleştirilmiş renklerle. LED'leriniz için, dönüş göstergeleri için sarı veya başka herhangi bir renk gibi farklı renkler kullanmaktan çekinmeyin.

Bu projeyi yaptıysanız, "Yaptım"a tıklayın ve deneyiminizi paylaşın. Bu projeyle ilgili düşüncelerinizi ve ayrıca herhangi bir öneri veya yorumlarınızı paylaşın. Bunu duymayı çok isterim!

Kablo yönetimi

Evet! Fark etmiş olabileceğiniz gibi, döngülerin içine ve çevresine giren çok fazla kablo var ve bunları yönetmek telaşlı. Kabloları gizlemek için kablo etiketleri, yalıtım bantları ve kablo muhafazası kullandım ve ayrıca resimde gördüğünüz gibi siyaha boyadım.

Kullanışlı İpucu: Kablolarınızdan gereğinden fazla inç bıraktığınız için, onları strese sokmadan düzgün bir şekilde yönetmek artık yararlıdır! Her şeyi doğru yapmış olsanız bile LED'lerinizden biri yanıyor ve diğerleri yanmıyorsa, sorun şudur: RPi'ye bağlı Jumper Telleri, gevşek bir temas olacaktır. Bu devam ederse, kabloyu uzatmak ve bağlamak için bir erkek-dişi atlama teli kullanın. Kabloları hareket etmeyecek şekilde yerinde tutmak için kablo bağları kullanın.

Artık Gösterge bir Sürüş için hazır! Tadını çıkar

Not: Bir başka talimatta, devredeki kablo sayısını azaltmayı ve daha iyi bir plan bulmayı gerçekten çok isterim. Bunu yaparsam, bununla ilgili bir Talimat paylaşacağım!

Adım 10: Göstergenin Bazı Resimleri

Göstergenin Bazı Resimleri
Göstergenin Bazı Resimleri
Göstergenin Bazı Resimleri
Göstergenin Bazı Resimleri
Göstergenin Bazı Resimleri
Göstergenin Bazı Resimleri
Göstergenin Bazı Resimleri
Göstergenin Bazı Resimleri

Bu Eğitilebilir Yazıyı okuduğunuz için teşekkür ederiz. Umarım siz de benim yaparken aldığım kadar keyif almışsınızdır

Zaman Çizelgesi: Son TestYukarıdaki bölümde, oda karardığında "Gece Görüşü"nün AÇILDIĞINI ve aydınlandıkça hemen kapandığını görebilirsiniz!

Zaman Çizelgesi:Göstergeyi ilgi odağında sergilemek için çektiğim bazı videolar. Tüm krediler kız kardeşlerimin video için bisiklet sürmelerine!

Önerilen: