
Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14

Bizning loyihamiz Basys 3 FPGA platasi, Arduino va karnay haydovchilar paneli yordamida budilnik yaratadi. Foydalanuvchi Basys 3 -dagi 11 ta kirish tugmasi yordamida joriy vaqtni taxtaga kiritishi va bortdagi o'rta tugma yordamida qiymatni qulflashi mumkin. Keyin foydalanuvchi xuddi shu kalitlar yordamida signal vaqtini kiritishi mumkin, lekin signalni qulflash uchun chap tugmani bosing. Agar noto'g'ri vaqt kiritilsa, reset tugmachasini (yuqori tugma) bosish mumkin va joriy soat va budilnik 00:00 ga o'rnatiladi. Keyin foydalanuvchi soatning eng chap tugmasi yordamida ishga tushishi va keyingi tugma yordamida signalni yoqishi mumkin. Budilnik yoqilganda, budilnik soat vaqti va uyg'otish vaqti mos kelganda ovoz chiqaradi.
1 -qadam: qora quti diagrammasi


Biz o'z loyihamizni qora qutining diagrammasini chizish orqali boshladik, bu dasturga kerakli kirish va chiqishlarni tasavvur qilish uchun. 5-bitli kirish (Hour_in) kabi bizning dasturimiz uchun quyidagi kirishlar 24 soatlik vaqtni, 60-daqiqagacha ko'rsatiladigan 6-bitli (Min_in) kirishni, foydalanuvchiga ruxsat berish uchun reset (Rst_b) tugmachasini kiritish uchun ishga tushirildi. o'z vaqtini o'zgartirish, budilnikni yuklaydigan 1-bitli kirish (alm_en), budilnik yoqilganda o'chirish uchun 1-bitli kirish (signal_sw), hisoblagichni boshqaradigan 1-bitli kirish (e_sek). soniya ishlaydi, joriy vaqtni belgilaydigan 1-bitli kirish (Led_btn) va oxirgi navbatda Basys 3 taxtasi ko'rsatadigan vaqtni boshqaruvchi 1-bitli kirish (clk). Chiqish - bu signalni Arduino -ga yuboradigan (alm_on), Basys 3 -da kirish vaqtini ko'rsatuvchi sseg chiqishi va etti segmentli displeyda kirishlar qaerda ko'rsatilishini boshqaruvchi anod chiqishi.
2 -qadam: sekin soat

Sekin soat yoki clock_div2 fayli chastotasi 2 gts bo'lgan soatni yaratadi. Agar biz bu soatni soniya hisoblagichiga bersak, soniya qiymati har soniyada bir marta oshadi. Sekin soat, sekundiga bir marta pastdan balandga o'zgaradigan ishonchli soat signalini yaratish uchun ishlatiladi.
3 -qadam: Hisoblagich


Komponent hisoblagichi (daqiqa va soniya):
Daqiqalar va soniyalarning asosiy vazifasi - bu hisoblagichlar. Daqiqa hisoblagichi kirishni (Vin) qabul qiladi, bu kirishlar signalidir (Min_in) va keyin kerakli kirishga kirguncha hisoblanadi. Sekundlar faqat kalitni (e_Sec) oladi, chunki uni etti segmentda ko'rsatish mumkin emas va kalit baland bo'lganda "1" fonda hisoblanadi. Ularning ikkalasi ham u erda [Qout] qiymatini chiqaradi, keyin esa u (ma'lumotlar) da saqlanadi, bu esa uni bog'lovchi faylda bajariladigan SSEGga yuboradi. Bundan tashqari, daqiqalar va soniyalar 59 qiymatiga yetganda, u asl holatiga qaytadi va ularning chiqishi daqiqalar/soatni oshirish uchun "1" bo'ladi. Bundan tashqari, ularning kirishiga qayta o'rnatish (rst_b) bilan xaritada ko'rish mumkin.
4 -qadam: Hisoblagich soati


Komponentlar hisoblagich soati
Xuddi shunday, daqiqalar va soniyalarning hisoblagichiga soat komponenti (Vin) kabi kirishni kiritadi, bu fayl kiritishini (Hour_in) bog'laydigan signaldir va xuddi shu tarzda daqiqa va soniyalar bilan bog'langan. Soatning hisoblash qiymati 24 00 ga yetganda, u 00 00 ga qaytadi.
5 -qadam: signal




Signal.vhd fayli raqamli ma'lumotlarni saqlashi mumkin bo'lgan saqlash qurilmalari bo'lgan d-flip-floplardan iborat. Signal fayli signal yoqiladigan vaqtni saqlash uchun ishlatiladi. Soatlar (5 bitli kirish) va daqiqalar (6 bitli kirish) ma'lumotlarini saqlash uchun biz signalli faylimizda 11 d-flip-flopni o'chirib qo'yishimiz kerak. Buning uchun biz avval d-flip-floplarning ishlashini boshqaruvchi mantiqni import qilishimiz va komponentalarni xaritaga solishimiz kerak. 11 ta d-flip-floplarning har biri kirish ma'lumotlarining bir qismini saqlaydi va ma'lumotlarni signal faylining chiqishlariga moslashtirishga imkon beradi. D-flip-floplar ma'lumotlarni saqlaganligi sababli, biz kirish kalitlari o'zgartirilgan bo'lsa ham, biz ma'lumotlarni keyinroq ishlatishimiz mumkin.
6 -qadam: Universal etti segmentli displey drayveri



Etti segmentli universal displey drayveri kirishni soat va soat majmuasidan oladi va ularni bortdagi etti segmentli displeyga chiqarishga qodir. Haydovchi bortda bir vaqtning o'zida ikkita alohida hisobni chiqarishi mumkin. Biz bu funktsiyadan soat va daqiqa vaqtlarini alohida ko'rsatish uchun foydalanganmiz. Etti segmentli displey bir vaqtning o'zida faqat bitta raqamni faollashtirishi mumkin, shuning uchun sseg fayli vaqtning barcha raqamlarini bir vaqtning o'zida ko'rsatish uchun multiplekslashdan foydalanishi kerak. Tarmoqli signal signallari ko'paytirish uchun to'g'ri vaqtni saqlash uchun ssegga uzatiladi. Ikkilik -ikkilik kodli o'nli kodlovchi, faylga kirishni etti segmentli displeyga chiqariladigan shaklga o'tkazish uchun zarur. Sseg faylining yakuniy chiqishi etti segmentli displeyga joylashtiriladi va displeyda to'g'ri vaqt ko'rsatiladi.
7 -qadam: Faylga havola



Havola fayli dasturning boshqa barcha jihatlarini bog'laydi va signallarni ularning to'g'ri joylashuviga moslashtiradi. Har bir komponent faylga kiritiladi va o'rnatiladi. Signallar ma'lumotlarni bir komponentdan ikkinchisiga o'tkazish uchun ishlatiladi. Port xaritasi yuqorida sanab o'tilgan qora quti sxemasiga amal qiladi. Havola faylida signal yoqilganda boshqariladigan mantiq ham mavjud. Loyihaning ko'p qismi shu nuqtada tugaydi. Qolgan ishlar har bir signalni tegishli joyga yo'naltiradi.
8 -qadam: Arduino


Arduino karnayni faollashtirish, shuningdek notiq ohangini va davomiyligini nazorat qilish uchun ishlatiladi. Arduino Basys 3 taxtasidan raqamli signalni o'qiydi. Bu signal baland bo'lganda, arduino signalning ohangini va davomiyligini boshqaruvchi PWM signalini chiqaradi. Arduino -dan chiqish signali karnay drayverining kirish signaliga ulanadi, bu esa karnay ovozini oshiradi. Arduino bu jarayonni juda tez bajaradi, sekundiga ko'p marta.
9 -qadam: Kabel yo'nalishi

Arduino va Basys 3 platalari signallarni taxtalar orasidagi uzatish uchun jismonan ulangan bo'lishi kerak. Birinchi simli kabel Basys 3 JA PMOD topraklama pinidan arduino topraklama pimigacha bo'ladi. Keyin Basys 3 JA PMOD 1 -pinidan simni arduino raqamli 7 -piniga ulang. Keyinchalik, arduino -dan karnay drayverining topraklama pinlariga ikkita topraklama pinini ulang. Keyin, arduino 3.3 V chiqishini karnay drayverining Vcc piniga ulang. Keyin, arduino raqamli 9 -pinini dinamik drayverining kirish piniga ulang.
Tavsiya:
Magicbit (Arduino) yordamida aqlli budilnik: 10 qadam

Magicbit (Arduino) dan foydalanadigan aqlli budilnik: Bu qo'llanmada RTC modulini ishlatmasdan Magicbit dev platasidagi OLED displey yordamida aqlli budilnikni qanday yasash ko'rsatilgan
Sodali idishlardan egizak qo'ng'iroqli budilnik: 7 qadam (rasmlar bilan)

Sodali idishlardan egizak qo'ng'iroqli budilnik: bu yo'riqnomada sodali suv qutilaridan egizak qo'ng'iroqli budilnikni qanday yasash mumkinligi ko'rsatilgan. Loyihada siyoh olib tashlangan sodali qutilar ishlatiladi (Havola: Sodali idishlardan siyohni olib tashlash). Bu budilnikni to'liq ishlashi uchun DIY kvartsli soat moduli birlashtirildi
Shovqinli budilnik: 3 qadam

Shovqinli budilnik: Men Tayvanda 13 yoshli talabaman, agar men bu ishni qanday yaxshilashni ayta olsang, iltimos, Arduino bilan bir narsa qilaman, iltimos, men uchun sharhlar qoldiring, shunda men yaxshiroq ishlay olaman. ) Bu soat siz uxlayotganingizda sizni uyg'otishi mumkin, lekin men
Bubble budilnik uyg'onishni qiziqarli qiladi: 7 qadam (rasmlar bilan)

Pufakchali budilnik uyg'onishni qiziqarli qiladi (shovqinli budilnikdan uyg'onish qiyin). Men quyosh chiqmasdan (yoki ko'p soatlardan beri tashqarida) uyg'onishni yoqtirmaydigan odamlardanman. To'shakda ko'pikli partiyani o'tkazishdan ko'ra, uyg'onishni qiziqarli qilishning qanday yaxshi usuli bor! Arduino va
Aqlli budilnik: Raspberry Pi -dan tayyorlangan aqlli budilnik: 10 qadam (rasmlar bilan)

Aqlli budilnik: Raspberry Pi bilan yasalgan aqlli budilnik: Siz hech qachon aqlli soatni xohlaganmisiz? Agar shunday bo'lsa, bu siz uchun yechim! Men Smart Budilnikni yaratdim, bu soat, siz budilnik vaqtini veb -saytga ko'ra o'zgartirishingiz mumkin. Signal o'chganda, ovoz eshitiladi va ikkita chiroq yonadi