Mundarija:
- 1 -qadam: Kerakli dasturiy ta'minot va apparat
- 2 -qadam: Kodlar (Vivado)
- 3 -qadam: Ularning qanday birlashishini tushunish (VHDL komponentlarining sxemalari)
- 4 -qadam: Kod (Arduino)
- 5 -qadam: Bizning komponentlarimiz bir -biriga qanday mos keladi
- 6 -qadam: Namoyish
- 7 -qadam: Sinab ko'rish vaqti keldi
Video: Harakat sensori/taymer tomonidan boshqariladigan chiroqlar: 7 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Ushbu loyiha San Luis Obispo Cal Polyda (CPE 133) raqamli dizayn kursining yakuniy loyihasi sifatida yaratilgan.
Biz nima uchun bunday qilayapmiz? Biz dunyodagi tabiiy boyliklarni saqlashga yordam berishni xohlaymiz. Bizning loyihamiz elektr energiyasini tejashga qaratilgan. Ko'proq elektr energiyasini tejash orqali biz elektr energiyasini ishlab chiqarish uchun ishlatiladigan tabiiy resurslarni tejashimiz mumkin bo'ladi. 2018 yil boshlanishi bilan tabiiy resurslar aql bovar qilmas darajada iste'mol qilinmoqda. Biz atrof -muhitga ta'sirimizni bilishni va tabiiy resurslarni saqlashda o'z hissamizni qo'shishni xohlaymiz. Elektron energiyani tejash uchun turli usullar bilan amalga oshirilishi mumkin, bu esa atrof -muhitga va iqtisodiy holatimizga yordam beradi.*Bu model bizda mavjud bo'lgan komponentlar yordamida yaratilgan.
Bizni ilhomimiz nima edi? Odamlar ko'pincha bayram chiroqlarini o'chirishni unutishadi va bir kechada qoldirib, energiyani behuda sarflaydilar. Aslida, bu loyiha elektr energiyasini tejaydi, chunki "bayram chiroqlari" faqat odamlar yonida bo'lganda yonadi, shuning uchun hech kim yo'qligida energiyani tejaydi. Bundan tashqari, biz taymerni loyihalashtirmoqchi bo'ldik, shunda ma'lum bir vaqtdan keyin chiroqlar soat 3 da aniqlangan harakat tufayli yoqilmasligi uchun to'liq o'chadi.
Qanday qilib bu dizayndan foydalanish mumkin? Bu dizayn har xil turdagi chiroqlar uchun ham qo'llanilishi mumkin, xoh dekorativ, xoh amaliy, xoh ikkalasi. Agar siz stol nuri bir vaqtning o'zida 6 soat ishlashini xohlasangiz. Hisoblagichni 21, 600 soniyaga o'rnatish kerak bo'ladi (6 soat x 3, 600 soniya/soat). Hisoblagich faol o'sayotgan paytda, harakat sensori yorug'likni boshqaradi. Shunday qilib, bu vaqt oralig'ida har safar u o'chganda, siz qo'lingizni harakat sensori oldida silkitib qo'yishingiz kerak va u yana yoqiladi. Agar siz ish stolida uxlab qolsangiz va 7 soatdan keyin uyg'onsangiz, sizning harakatingiz uni yoqmaydi.
1 -qadam: Kerakli dasturiy ta'minot va apparat
Dasturiy ta'minot:
- Vivado 2016.2 (yoki undan yangi versiyasini) bu erda topishingiz mumkin
- Arduino IDE 1.8.3 (yoki undan yangi versiyasini) bu erda topish mumkin
Uskuna:
- 1 Basys 3 taxta
- 1 Arduino Uno
- 2 ta taxtali
- 1 Ultrasonik o'lchash sensori HC-SR04
- 9 Erkak-erkak simlari
- 1 LED
- 1100Ω qarshilik
2 -qadam: Kodlar (Vivado)
Cheklangan holat mashinasi (yuqoridagi holat diagrammasiga qarang):
LEDga cheklangan holatdagi mashina kerak edi. LEDda faqat ikkita holat yoqilgan va o'chadi. Faqat ikkita kirish LED, hisoblagich va sensor holatini boshqaradi. Sensor harakatni aniqlaganda va hisoblagich noldan o'ttiz soniyagacha sanalganda, LED yonishi kerak. Boshqa har qanday holatda, LED o'chadi.
Fayl nomi: LEDDES
Hisoblagich:
Hisoblagich bizga harakat sensori LEDni yoqishi mumkin bo'lgan vaqtni cheklashga imkon beradi. Uning qiymati Basys 3 kengashining etti segmentli displeyida manba kodi ("sseg_dec") orqali ko'rsatiladi. Qayta tiklash tugmasi pastga tushganda (qiymat: '0'), hisoblagich har soniyada 0 dan 30 gacha ko'tarila boshlaydi. 30 ga yetganda, u shu raqamda muzlab qoladi. Qayta tiklash tugmasi "1" ga o'tguncha va "1" ga qaytmaguncha, u 0dan qaytadan ishga tushmaydi, agar hisoblagich ketayotganda Reset "1" ga aylansa, hisoblagich o'zi xohlagan qiymatda qotib qoladi. Qayta tiklash "0" ga qaytsa, hisoblagich 0 dan 30 gacha qayta ishga tushadi. Bu dastur soat signalidan foydalanishni ham talab qiladi, uning kodi quyida keltirilgan ("clk_div2").
Fayl nomi: FinalCounter
TAKVIMLANGAN FAYLLAR:
Etti segmentli displey:
Bu kod etti segmentli displeyda o'nlik qiymatlarni ko'rsatishga imkon beradi. Bitta submodul 8-bitli ikkilik kirish va 4-bitli ikkilik kodli o'nlik o'rtasida dekoder vazifasini bajaradi. Ikkinchisi soat signalini bo'linib, uning qiymatini ma'lum tezlikda yangilaydi.
Fayl nomi: sseg_dec
Soat signallari:
Bu kod hisoblagichni 1 soniyagacha oshirishga imkon beradi. U kirish chastotasini sekinroq chastotaga ajratadi. Biz max_count: integer: = (3000000) "ni" doimiy max_count: integer: = (50000000) "ga o'zgartirish orqali 1 soniya vaqt berishga moslashdik.
Fayl nomi: clk_div2
Taqdim etilgan fayllar: sseg_dec, clk_div2 *Bu manba fayllar professor Bryan Meali tomonidan taqdim etilgan.
3 -qadam: Ularning qanday birlashishini tushunish (VHDL komponentlarining sxemalari)
Asosiy fayl ("MainProjectDES") ilgari muhokama qilingan barcha pastki fayllarni o'z ichiga oladi. Ular yuqoridagi usulda bog'langan. Turli elementlar signalni bir elementdan ikkinchisiga yuborish uchun port xaritalari yordamida o'zaro bog'langan.
Siz sezganingizdek, FinalCounter 5-bitli chiqishni ta'minlaydi, sseg_dec esa 8-bitli kirishni talab qiladi. Buning o'rnini bosish uchun biz ikkala komponentni birlashtiruvchi signalni "000" dan boshlaymiz va hisoblagichdan 5 bitli chiqishni qo'shamiz. Shunday qilib, 8-bitli kirishni ta'minlaydi.
Cheklovlar:
Bu kodlarni Basys 3 doskasida ishga tushirish uchun har bir signalga qaerga borish kerakligini va uning qismlari qanday ulanganligini ko'rsatuvchi cheklovlar fayli kerak edi.
4 -qadam: Kod (Arduino)
Biz Arduino Uno -ni harakat sensori yordamida harakatni aniqlash va LEDning yonishini bildiruvchi chiqishni ta'minlash uchun dasturlashtirdik. Bundan tashqari, harakatni aniqlash uchun datchikdan foydalanish masofani o'zgartirishni doimiy ravishda qidirib yuradigan halqalarni talab qiladi. Asosan, LEDning yonishi uchun "yuqori" signalni chiqarish uchun bir vaqtning o'zida ishlaydigan taymer kerak, yangi harakat aniqlanganda taymerni qayta o'rnatish kerak, buni Vivadoda bilim doirasiga ko'ra amalga oshirish deyarli mumkin emas. sinfdan. Bundan tashqari, biz Arduino-dan foydalandik, chunki HC-SR04-ni Basys 3 platasi bilan ishlatish maqsadga muvofiq emas, chunki karta faqat 3,3V, sensor 5V quvvat manbasini talab qiladi. Aniqlash harakatini amalga oshirish uchun bu VHDL -dagi SAPRdan farqli o'laroq haqiqiy kodlashdir.
Biz sensordan dastlab chiqadigan tovush va ob'ektga urilganda orqaga qaytadigan tovush o'rtasidagi vaqtni olish uchun sensori o'rnatilgan ichki impuls funktsiyasidan foydalanganmiz. Keyin biz ob'ekt tezligi va sensor orasidagi masofani hisoblash uchun tovush tezligi va vaqt oralig'idan foydalanamiz. Shundan kelib chiqib, biz hozirgi masofani saqlaymiz va uni kuzatib boramiz. Biz har 150ms masofani tekshiramiz. Biz, shuningdek, o'tgan vaqtni kuzatish uchun arduino ichida ichki taymerni ishga tushirish uchun elapsedmil kutubxonasidan foydalandik. Agar biz harakatga mos keladigan masofaning o'zgarishini aniqlasak, taymer nolga qaytariladi va u 3 soniya o'tguncha chiroqni yonib turadi. Qachonki sensor boshqa harakatni aniqlasa, taymer 0 ga qaytariladi va LED nuri uchun signal keyingi 3 soniyada "yuqori" bo'ladi. Biz quyida Arduino kodimiz nusxasini biriktirdik.
5 -qadam: Bizning komponentlarimiz bir -biriga qanday mos keladi
"Basys3: Pmod pin-out diagrammasi*" va Arduino Uno taxtasi rasmida ko'rib turganingizdek, biz foydalangan portlarni ajratib ko'rsatdik.
1. LED va Basys 3 taxtasi
LED 100Ω qarshilik bilan ketma -ket ulanadi. -Oq sim qarshilikni Basys 3 kartasining PWR piniga ulaydi. -Sariq sim LEDni Basys 3 kartasining H1 piniga ulaydi.
2. Harakat sensori va Arduino Uno
-To'q sariq sim harakat sensori Vccini (kuchini) Arduino Uno kartasining 5V piniga ulaydi. Harakat sensori Arduino Uno kartasining 9-piniga.-Qora sim harakat sensori GND pinini Arduino Uno kartasining GND piniga ulaydi.
[Biz ishlatgan simlar komponentlarga etib borish uchun juda qisqa edi, shuning uchun ular bir -biriga bog'langan edi]
3. Basys 3 taxtasi va Arduino Uno
Sariq sim Basys 3 kartasining A14 pinini Arduino Uno kartasining 6 -piniga ulaydi.
*Bu diagramma Digilent -ning "Basys 3 ™ FPGA kartasi ma'lumotnomasi" dan olingan, uni bu erda topishingiz mumkin.
6 -qadam: Namoyish
7 -qadam: Sinab ko'rish vaqti keldi
Tabriklaymiz! Siz bizning harakat sensori va hisoblagich bilan boshqariladigan yorug'lik loyihasining oxirigacha etib keldingiz! Bizning Instructables postimizni o'qiganingiz uchun sizga katta rahmat. Endi siz ushbu loyihani o'zingiz qurishga harakat qilishingiz kerak. Agar siz har bir qadamni diqqat bilan kuzatib boradigan bo'lsangiz, sizda biznikiga o'xshash harakat sensori va hisoblagich bilan boshqariladigan yorug'lik bo'lishi kerak! Biz sizga ushbu loyihani amalga oshirishda omad tilaymiz va u elektr energiyasini hamda tabiiy resurslarni tejashga hissa qo'shadi deb umid qilamiz!
Tavsiya:
Raspberry Pi & HC-SR04 ultratovush sensori va Cloud4RPi tomonidan boshqariladigan aqlli qahva mashinasi nasosi: 6 qadam
Raspberry Pi & HC-SR04 Ultrasonik Sensor va Cloud4RPi tomonidan boshqariladigan aqlli qahva mashinasi nasosi: Nazariy jihatdan, har safar ertalabki chashka uchun qahva mashinasiga borganingizda, suvni to'ldirish uchun faqat yigirma bir imkoniyat bor. tank Biroq, amalda, mashina qandaydir yo'l bilan sizga har doim bu ishni bajarishga yordam beradiganga o'xshaydi.
Mening eshikimda kim bor? PIR harakat sensori/diapazon sensori loyihasi: 5 qadam
Mening eshikimda kim bor? PIR harakat sensori/diapazon sensori loyihasi: Bizning loyihamiz PIR va masofa sensori orqali harakatni sezishga qaratilgan. Arduino kodi foydalanuvchiga yaqin bo'lganini bildirish uchun vizual va audio signal chiqaradi. MATLAB kodi foydalanuvchiga kimdir yaqinligini bildirish uchun elektron pochta xabarini yuboradi
Lego Mini Cooper ilovasi tomonidan boshqariladigan chiroqlar: 7 qadam (rasmlar bilan)
Lego Mini Cooper ilova tomonidan boshqariladigan chiroqlar: Xavf, UXB! Sizning orzuingiz - bomba yo'q qilish bo'yicha mutaxassis bo'lish, lekin siz o'layotgan qismi uchun ikkilanasizmi? Keyin bu loyiha siz uchun! Siz uzoq vaqt davomida juda beqaror qurilmaga kichik o'zgarishlar kiritasiz, badaningizdan ter to'kiladi
ARDUINO YUN tomonidan boshqariladigan ROOMBA STEFANO DALL'OLIO tomonidan Wifi ilovasi orqali: 4 qadam (rasmlar bilan)
AROMINO YUN tomonidan boshqariladigan ROOMBA Wifi ilovasi orqali STEFANO DALL'OLIO: Ushbu qo'llanmada men ARDUINO YUN -ni Roomba -ga Wi -Fi orqali ulash uchun kodni ulashaman. Kod va ilovani to'liq Stefano Dall yaratgan va ishlab chiqqan. Olio.Mening Roomba - bu Roomba 620, lekin siz xuddi shu kodni boshqa Roomb uchun ishlatishingiz mumkin
Harakat boshqariladigan rozetka - Harakat sezuvchi nurdan: 6 qadam
Harakat boshqariladigan rozetka - Harakat sezuvchi nurdan: Tasavvur qiling, siz hiyla-nayrangchi bo'lib, blokning eng qo'rqinchli uyiga borasiz. Barcha arvohlar, arvohlar va qabristonlardan o'tib, siz oxirgi yo'lga borasiz. Siz oldingizda bir piyola ichida konfetni ko'rishingiz mumkin! Ammo keyin birdaniga gho