Агуулгын хүснэгт:
- Алхам 1: Материал
- Алхам 2: Кодлох эхлэл
- Алхам 3: Хязгаарлалтын файл
- Алхам 4: Flip Flop файл
- Алхам 5: Сегмент файл
- Алхам 6: Цаг хуваах файл
- Алхам 7: Servo дохионы файл
- Алхам 8: Servo дээд файл
- Алхам 9: Дээд файл
- Алхам 10: Vivado -д тест хийх
- Алхам 11: Барилгын тоног төхөөрөмжийн танилцуулга
- Алхам 12: Бэлтгэх
- Алхам 13: Гагнах
- Алхам 14: Финал
Видео: CPE 133 хог ангилагч: 14 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Cal Poly дахь CPE 133 ангийнхаа хувьд бид хүрээлэн буй орчинд туслах VHDL/Basys 3 төслийг бий болгохыг хүссэн бөгөөд үүнийг дижитал дизайны талаархи шинэ мэдлэгээрээ хэрэгжүүлэх боломжтой байсан. Манай төслийн цаад санаа бол ер нь хүмүүс хогоо хаана хаяхаа боддоггүй. Хүмүүсийг хогоо хаана хаях вэ гэдгээ бодоход хүргэдэг машин бүтээхээр шийдсэн. Манай хог ангилагч нь хэрэглэгчийн оруулсан оролтыг гурван унтраалгаар авдаг бөгөөд тус бүр нь хог, дахин боловсруулалт эсвэл бордоог төлөөлдөг. Хэрэглэгч хог хаягдал (хаягдал) -ын төрлийг сонгосны дараа тэд товчлуур дээр дарж устгахыг хүсч байна. Энэ товчлуур нь холбогдох савны тагийг нээх болно. Мөн машин нь Basys 3 дээрх дэлгэцийг ашиглан тагны аль нэг нь нээлттэй байгаа эсэхийг харуулсан болно. Товчлуурыг суллахад таг дахин хаагдах бөгөөд ингэснээр машин дараагийн хэрэглэгчдэд бэлэн болно.
Алхам 1: Материал
Энэхүү төсөлд шаардлагатай материалууд нь:
Basys 3 самбар
Vivado суулгасан компьютер
3х servo*
3 фут зэс утас
Утас таслагч/хуулагч
Гагнуурын төмөр ба гагнуур
*servo нь үнэтэй бөгөөд бид коллежийн оюутан тул бид протокол болгон 68 ом эсэргүүцэл, LED -ийг прототип болгон орлуулсан (код нь ижил аргаар ажилладаг)
Алхам 2: Кодлох эхлэл
Энэ төсөлд зориулж бичих маш олон код бий. Бид Vivado дээр бичигдсэн VHDL кодыг ашиглах болно. Эхлэхийн тулд бид шинэ төсөл хийхийг хүсч байна. Эхлээд та төслийн нэрийг зааж, төслийн төрлийг зааж өгөх болно. Зураг дээрхтэй ижил тохиргоог сонгохоо мартуузай. Эх сурвалжийн дэлгэц дээр очсоны дараа "top", "flip_flop", "segments", "servo_top", "servo_sig", "clk_div" нэртэй зургаан эх сурвалжийг нэмж оруулах шаардлагатай болно. Верилог биш харин файл бүрийн хэл дээр VHDL -ийг сонгохоо мартуузай. Хязгаарлалтын дэлгэц дээр та зүү томилох нэг файл үүсгэх ёстой. Энэ файлын нэр чухал биш. Дараа нь ашиглах самбарыг сонгохыг танаас хүсэх болно. Зөвийг нь сонгосон эсэхээ шалгаарай. Зөв сонгохын тулд лавлах зургууд. Сүүлийн алхам нь эх файл бүрийн оролт, гаралтыг зааж өгөхийг танаас хүсэх болно. Энэ алхамыг дараа нь кодлох боломжтой тул дараагийн дээр дарна уу.
Алхам 3: Хязгаарлалтын файл
Энэ алхамд бид хязгаарлалтын файлыг бичих болно. Энэ нь Вивадод хэлхээнээс ямар дохио илгээх/хүлээн авахыг хэлнэ. Бидэнд цаг, гурван унтраалга, долоон сегментийн дэлгэц (долоон катод, дөрвөн анод), товчлуур, servo/LED -ийн ашигладаг гурван гаралтын PMOD зүү хэрэгтэй болно. Код хэрхэн харагдах ёстой талаар лавлах зургууд.
Алхам 4: Flip Flop файл
Бидний бичих дараагийн файл бол flip_flip эх файл юм. Энэ нь D flip flop -ийн VHDL -ийн хэрэгжилт болно. Өөрөөр хэлбэл, энэ нь зөвхөн оролтыг цагийн дохионы өсөн нэмэгдэж буй ирмэг дээрх гаралт руу дамжуулж, товчлуур дарагдах болно. Энэ нь цаг, D, товчлуурыг оролт болгон авах бөгөөд Q -ийг гаргах болно. Энэ файлын зорилго нь түлхүүрийг эргүүлэх бүрт шууд нээх биш харин товчлуурыг дарахад л хогийн савыг нээх боломжийг олгох бөгөөд унтраалгыг эргүүлэхэд л хаагдах болно.
Алхам 5: Сегмент файл
Дараагийн бичих файл бол сегмент файл юм. Энэ нь Basys 3 -ийн долоон сегментийн дэлгэцийн долоон катод, дөрвөн анодын оролт, гаралтын утгын товчлуурыг авах болно. Энэ файл нь долоон сегментийн дэлгэцийг хогийн савыг хаахад "C", савыг онгойлгоход "O" харуулдаг. Кодыг хавсаргасан зургийг үзнэ үү.
Алхам 6: Цаг хуваах файл
Servos нь 64 кГц давтамжтай ХОУХД -ийн дохиог хүлээн авдаг бол Basys 3 -д суурилуулсан цаг нь 50 М Гц давтамжтай ажилладаг. Цаг хуваагч файл нь анхдагч цагийг servo -ийн ээлтэй давтамж болгон хөрвүүлэх болно. Файл нь цаг болон дахин тохируулах дохиог оролт болгон авч, шинэ цагийн дохиог гаргана. Кодыг хавсаргасан зургийг үзнэ үү.
Алхам 7: Servo дохионы файл
Серво дохионы файл нь цагийн оролт, дахин тохируулах оролт, хүссэн байрлалын оролтыг авах болно. Энэ нь servo -ийг хүссэн байрлалд хүргэх PWM дохиог гаргана. Энэ файл нь сүүлчийн файлд үүсгэсэн цагийн дохиог ашиглан хүссэн байрлалаас хамааран өөр өөр үүргийн мөчлөгтэй servo -ийн PWM дохиог бий болгодог. Энэ нь хогийн савны тагийг хянадаг серво эргүүлэх боломжийг бидэнд олгодог. Кодыг хавсаргасан зургаас үзнэ үү.
Алхам 8: Servo дээд файл
Энэ файлын зорилго нь сүүлийн хоёр файлыг функциональ servo драйвер болгон нэгтгэх явдал юм. Үүнд цаг, дахин тохируулга, байрлал шаардагдах бөгөөд энэ нь servo PWM дохиог гаргана. Энэ нь цаг хуваагч болон servo дохионы файлыг бүрэлдэхүүн хэсэг болгон ашиглах бөгөөд өөрчилсөн цагийг цаг хуваагчаас servo дохионы файл руу шилжүүлэх дотоод цагийн дохиог багтаасан болно. Дараах зургуудыг үзнэ үү
Алхам 9: Дээд файл
Энэ бол бидний бүтээсэн бүх зүйлийг хамтад нь багтаасан төслийн хамгийн чухал файл юм. Энэ нь товчлуур, гурван унтраалга, цагийг оролт болгон авах болно. Энэ нь долоон катод, дөрвөн анод, гурван servo/LED дохиог гаралт болгон өгөх болно. Энэ нь flip flop, сегментүүд болон servo_top файлуудыг бүрэлдэхүүн хэсэг болгон ашиглах бөгөөд дотоод унтраалга, дотоод servo дохиотой байх болно.
Алхам 10: Vivado -д тест хийх
Vivado -д синтез, хэрэгжилт болон bitsream -ийг ажиллуулна уу. Хэрэв танд ямар нэгэн алдааны мэдэгдэл гарвал алдааны байршлыг олоод өгөгдсөн кодтой харьцуулна уу. Эдгээр бүх гүйлтүүд амжилттай дуусах хүртэл алдаа дутагдлыг арилгана.
Алхам 11: Барилгын тоног төхөөрөмжийн танилцуулга
Энэ алхамд та бидний прототипт ашигласан LED тоног төхөөрөмжийг бий болгоно. Хэрэв servos ашиглаж байгаа бол зөв тээглүүр ашиглаж байгаа тохиолдолд төсөл явахад бэлэн байх ёстой. Хэрэв LED ашигладаг бол доорх алхмуудыг дагана уу.
Алхам 12: Бэлтгэх
Утасыг зургаан тэгш хэсэг болгон хайчилж ав. Утас бүрийн үзүүрийг хангалттай хэмжээгээр хуулж ав, ингэснээр гагнуур үүсч болно. LED, резистор, утсыг гурван бүлэгт хуваа. Гагнуурын төмрийг халаана.
Алхам 13: Гагнах
68 Ом эсэргүүцэл тус бүрийг харгалзах LED -ийн сөрөг тал руу гагнана. LED -ийн эерэг тал дээр утсыг гагнах ба эсэргүүцлийг нөгөө талд нь гагнахгүй. Дээрх зурган дээрх LED -ийн гурван эсрэг заалттай байх ёстой.
Алхам 14: Финал
Эерэг утас бүрийг холбогдох PMOD зүү рүү, сөрөг тус бүрийг газардуулсан PMOD зүү рүү оруулна уу. Хогийн савыг төлөөлж, гагнуурын замбараагүй байдлаа нуухын тулд картон хайрцаг нэмж болно. Утаснуудаа зөв залгаж, кодыг алдаагүй самбар дээр зөв байршуулсны дараа машин зориулалтын дагуу ажиллах ёстой. Хэрэв ямар нэг зүйл буруу болвол алдааг олж засварлахын тулд өмнөх алхам руу буцна уу. Шинэ "хог ангилагч" -аа хөгжилтэй өнгөрүүлээрэй.
Зөвлөмж болгож буй:
ML ашиглан Pi хогийн ангилагч хий! 8 алхам (зурагтай)
ML -ийн тусламжтайгаар Pi Trash Classifier хий! Lobe-д бэлтгэгдсэн, эхлэгчдэд ээлтэй (код байхгүй!)
CPE 133 Эцсийн төсөл Аравтын бутархай хоёртын тоо: 5 алхам
CPE 133 Аравтын хоёртын эцсийн төсөл: Хоёртын тоонууд нь тоон логикийг бодоход хамгийн түрүүнд санаанд орж ирдэг зүйлсийн нэг юм. Гэсэн хэдий ч хоёртын тоонууд нь шинээр суралцаж буй хүмүүсийн хувьд маш хэцүү ойлголт байж болох юм
Өнгө ангилагч: 6 алхам
Өнгө ангилагч: Энэхүү өнгө ялгах зорилго нь өнгөөр нь үндэслэн янз бүрийн овоолго руу шилжүүлэх явдал юм
Цахим зоос ангилагч: 7 алхам (зурагтай)
Цахим зоос ангилагч: Удаан хугацааны өмнө, сургуульд явах боломжтой байсан ч бид маш энгийн байдлаар ажилладаг төхөөрөмж хийх сонирхолтой санааг олж авсан юм. Зөв хэмжээний мөнгө хаясны дараа бид тодорхой бүтээгдэхүүн гаргах болно. Би илчилж чадахгүй байна
CPE 133 Metronome: 3 алхам
CPE 133 Metronome: Cal Poly дахь бидний эцсийн төслийн хувьд бид метроном гэж нэрлэгддэг хэмнэл хадгалах төхөөрөмж бүтээсэн бөгөөд хөгжим, дижитал дизайны сонирхлыг харгалзан энэхүү төслийг сонгосон. Бид хамтран ажиллахад туслах код, онлайн хичээлээ зохиоход туслахын тулд CPE 133 -ийн өмнөх лабораториудыг ашигласан