Агуулгын хүснэгт:

CPE 133 хог ангилагч: 14 алхам
CPE 133 хог ангилагч: 14 алхам

Видео: CPE 133 хог ангилагч: 14 алхам

Видео: CPE 133 хог ангилагч: 14 алхам
Видео: New cellular internet routers and answering your questions! Rural internet solution #707 2024, Арваннэгдүгээр
Anonim
CPE 133 хог ангилагч
CPE 133 хог ангилагч

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 Flop файл
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 дохионы файл
Servo дохионы файл

Серво дохионы файл нь цагийн оролт, дахин тохируулах оролт, хүссэн байрлалын оролтыг авах болно. Энэ нь servo -ийг хүссэн байрлалд хүргэх PWM дохиог гаргана. Энэ файл нь сүүлчийн файлд үүсгэсэн цагийн дохиог ашиглан хүссэн байрлалаас хамааран өөр өөр үүргийн мөчлөгтэй servo -ийн PWM дохиог бий болгодог. Энэ нь хогийн савны тагийг хянадаг серво эргүүлэх боломжийг бидэнд олгодог. Кодыг хавсаргасан зургаас үзнэ үү.

Алхам 8: Servo дээд файл

Servo дээд файл
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 зүү рүү оруулна уу. Хогийн савыг төлөөлж, гагнуурын замбараагүй байдлаа нуухын тулд картон хайрцаг нэмж болно. Утаснуудаа зөв залгаж, кодыг алдаагүй самбар дээр зөв байршуулсны дараа машин зориулалтын дагуу ажиллах ёстой. Хэрэв ямар нэг зүйл буруу болвол алдааг олж засварлахын тулд өмнөх алхам руу буцна уу. Шинэ "хог ангилагч" -аа хөгжилтэй өнгөрүүлээрэй.

Зөвлөмж болгож буй: