Mundarija:
- 1 -qadam: materiallar
- 2 -qadam: kodlashni boshlash
- 3 -qadam: Faylni cheklash
- 4 -qadam: Flip Flop faylini aylantiring
- 5 -qadam: Segmentlar fayli
- 6 -qadam: soatni ajratuvchi fayl
- 7 -qadam: Servo signalli fayl
- 8 -qadam: Servo yuqori fayl
- 9 -qadam: Yuqori fayl
- 10 -qadam: Vivadoda test
- 11 -qadam: Uskuna kirishini yaratish
- 12 -qadam: tayyorgarlik
- 13 -qadam: Lehimlash
- 14 -qadam: Final
Video: CPE 133 axlatni saralash: 14 qadam
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Cal Poly -dagi CPE 133 sinfimiz uchun bizga atrof -muhitga yordam beradigan VHDL/Basys 3 loyihasini yaratish kerak edi va biz uni raqamli dizayn haqidagi yangi bilimlarimiz bilan amalga oshirishimiz mumkin edi. Bizning loyihamizning g'oyasi, umuman olganda, odamlar axlatni qayerga tashlashni o'ylamaydilar. Biz odamlarni axlatni qaerga tashlashni o'ylashga majburlaydigan mashina yaratishga qaror qildik. Chiqindilarni ajratish moslamasi foydalanuvchining ma'lumotlarini uchta kalit orqali oladi, ularning har biri axlat, qayta ishlash yoki kompost. Foydalanuvchi chiqindilar turini tanlagandan so'ng, ularni yo'q qilishni xohlaydi, tugmani bosadi. Bu tugma mos keladigan idish qopqog'ining ochilishiga olib keladi. Mashina, shuningdek, Basys 3 displeyidan foydalanib, hozirda qovoqlardan birortasi ochiq yoki yo'qligini ko'rsatdi. Tugma qo'yilganda, qopqoq yana yopiladi, shunda mashina keyingi foydalanuvchiga tayyor bo'ladi.
1 -qadam: materiallar
Ushbu loyiha uchun zarur bo'lgan materiallar:
Basys 3 taxta
Vivado o'rnatilgan kompyuter
3x servo*
3 metrli mis sim
Tel kesuvchi/stripper
Lehimlash temir va lehim
*chunki servolar qimmat va biz kollej talabalari, biz prototip sifatida har bir servo uchun 68 ohmli qarshilik va LEDni almashtirdik (kod xuddi shunday ishlaydi)
2 -qadam: kodlashni boshlash
Bu loyiha uchun juda ko'p kod yozish kerak. Biz Vivadoda yozilgan VHDL kodidan foydalanamiz. Boshlash uchun biz yangi loyiha yaratmoqchimiz. Birinchidan, siz loyihani nomlaysiz va loyihaning turini belgilaysiz. Rasmdagi kabi bir xil sozlamalarni tanlaganingizga ishonch hosil qiling. Manbalar ekraniga kirganingizda, siz "top", "flip_flop", "segmentlar", "servo_top", "servo_sig" va "clk_div" nomli oltita manbani qo'shishni xohlaysiz. Verilog emas, balki har bir fayl tili uchun VHDL -ni tanlaganingizga ishonch hosil qiling. Cheklovlar ekranida siz pinni belgilash uchun bitta fayl yaratishingiz kerak. Bu faylning nomi muhim emas. Keyin sizdan foydalanadigan taxtani tanlash talab qilinadi. To'g'ri birini tanlaganingizga ishonch hosil qiling. To'g'ri tanlash uchun mos yozuvlar fotosuratlari. Oxirgi qadam sizdan har bir manba faylining kirish va chiqishini belgilashingizni so'raydi. Bu qadamni keyinroq kodlash mumkin, shuning uchun keyingisini bosing.
3 -qadam: Faylni cheklash
Bu bosqichda biz cheklovlar faylini yozamiz. Bu Vivadoga qaysi pinlar sxemadan qaysi signallarni yuborishi/qabul qilishini aytadi. Bizga soat, uchta kalit, etti segmentli displey (etti katod va to'rt anod), tugma va servo/LED ishlatadigan uchta chiqish PMOD pinlari kerak bo'ladi. Kod qanday ko'rinishi kerakligi haqida ma'lumotnomalar.
4 -qadam: Flip Flop faylini aylantiring
Biz yozadigan keyingi fayl - bu flip_flip manba fayli. Bu D flip flopning VHDL dasturi bo'ladi. Boshqacha qilib aytganda, u faqat kirish signalini soat signalining ko'tarilish chekkasida va tugma bosilganda uzatadi. Kirish uchun soat, D va tugma kerak bo'ladi va Q. kodi uchun rasmlarga havola qilinadi. Bu faylning maqsadi - har safar tugma bosilganda to'g'ridan -to'g'ri ochilish emas, faqat tugma bosilganda qutilar ochilishiga ruxsat berish va faqat kalit orqaga qaytarilganda yopiladi.
5 -qadam: Segmentlar fayli
Keyingi yoziladigan fayl - bu segmentlar fayli. Bu tugmani Basys 3 ning etti segmentli displeyining etti katodli va to'rtta anodli kirish va chiqish qiymatlaridagi kabi oladi. Bu fayl 7 qismli displeyda axlat qutilari yopilganda "C" va axlat qutilari ochilganda "O" ko'rsatilishiga olib keladi. Kod uchun biriktirilgan rasmga qarang.
6 -qadam: soatni ajratuvchi fayl
Servos 64 KGts chastotali PWM signalini qabul qilib, Basys 3 -ga o'rnatilgan soat 50 MGts chastotada ishlaydi. Soatni ajratuvchi fayl standart soatni servo uchun qulay chastotaga aylantiradi. Fayl kirish sifatida soat va tiklash signalini oladi va yangi soat signalini chiqaradi. Kod uchun ilova qilingan rasmga qarang.
7 -qadam: Servo signalli fayl
Servo signal fayli soat kiritilishini, asl holatini tiklash va kerakli pozitsiyani kiritadi. U PWM signalini chiqaradi, bu servoni kerakli holatga o'tkazadi. Bu fayl, kerakli pozitsiyaga qarab, har xil ish davrlariga ega bo'lgan servo uchun PWM signalini yaratish uchun oxirgi faylda yaratilgan soat signalidan foydalanadi. Bu bizga axlat qutilarining qopqog'ini boshqaradigan servolarni aylantirish imkonini beradi. Kod uchun biriktirilgan rasmga qarang.
8 -qadam: Servo yuqori fayl
Ushbu faylning maqsadi oxirgi ikkita faylni funktsional servo drayverga yig'ishdir. Buning uchun soat, qayta o'rnatish va pozitsiya kerak bo'ladi, bu PWM servo signalini chiqaradi. U komponent sifatida soat ajratgichni ham, servo signal faylini ham ishlatadi va o'zgartirilgan soatni soat bo'linmasidan servo signal fayliga o'tkazish uchun ichki soat signalini o'z ichiga oladi. Rasmlarga qarang
9 -qadam: Yuqori fayl
Bu loyihaning eng muhim fayli, chunki u biz yaratgan hamma narsani birlashtiradi. U kirish sifatida tugma, uchta kalit va soatni oladi. U etti katodni, to'rtta anodni va uchta servo/LED signallarini chiqish sifatida beradi. U flip flop, segmentlar va servo_top fayllarini komponent sifatida ishlatadi va ichki kalit va ichki servo signalga ega bo'ladi.
10 -qadam: Vivadoda test
Vivadoda bitsream -ni sintez qilish, amalga oshirish va yozishni ishga tushiring. Agar siz xato xabarlariga duch kelsangiz, xato joyini toping va keyin berilgan kod bilan solishtiring. Bu ishlarning barchasi muvaffaqiyatli yakunlanmaguncha, har qanday xato bilan ishlang.
11 -qadam: Uskuna kirishini yaratish
Ushbu bosqichda siz bizning prototipimizda ishlatilgan LED uskunalarini yaratasiz. Agar servolardan foydalansangiz, to'g'ri pinlar ishlatilgan bo'lsa, loyiha ishga tayyor bo'lishi kerak. Agar LEDlar ishlatilsa, quyidagi amallarni bajaring.
12 -qadam: tayyorgarlik
Telni oltita teng bo'laklarga bo'ling. Har bir bo'lakning uchlarini etarlicha kesib oling, shunda lehim paydo bo'lishi mumkin. LEDlar, rezistorlar va simlarni uch guruhga ajrating. Lehimlash temirini qizdiring.
13 -qadam: Lehimlash
68 ohmli rezistorlarning har birini mos keladigan LEDning salbiy tomoniga lehimlang. LEDni musbat tomoniga simni va rezistorning yon tomoniga boshqa simni lehimlanmagan holda lehimlang. Sizda yuqorida ko'rsatilgan uchta LED kontrasti bo'lishi kerak.
14 -qadam: Final
Har bir musbat simni tegishli PMOD piniga va har bir manfiyni PMOD piniga kiriting. Ixtiyoriy ravishda axlat qutilarini ifodalash va lehimdagi tartibsizlikni yashirish uchun karton qutilarni qo'shing. Simlar to'g'ri ulangan va kod taxtaga xatosiz yuklanganidan so'ng, mashina maqsadga muvofiq ishlashi kerak. Agar biror narsa noto'g'ri ketayotgan bo'lsa, muammolarni bartaraf etish uchun avvalgi bosqichlarga qayting. Yangi "axlat yig'uvchi" bilan xursand bo'ling.