Мазмуну:
- 1 -кадам: материалдар
- 2 -кадам: коддоону баштоо
- 3 -кадам: Файлды чектөө
- 4 -кадам: Flip Flop File
- 5 -кадам: Сегменттер файлы
- 6 -кадам: Саатты бөлүүчү файл
- 7 -кадам: Servo Signal File
- 8 -кадам: Servo Top File
- 9 -кадам: Top File
- 10 -кадам: Vivadoдо тестирлөө
- 11 -кадам: Hardware Intro куруу
- 12 -кадам: Даярдоо
- 13 -кадам: ширетүү
- 14 -кадам: Финал
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Cal Polyдеги CPE 133 классы үчүн бизге VHDL/Basys 3 долбоорун түзүү керектигин айтышты, ал айлана -чөйрөгө жардам берет жана биз аны санариптик дизайн боюнча жаңы билимибиз менен ишке ашыра алабыз. Биздин долбоордун артында турган идея, негизинен, адамдар таштандыларын кайда ыргытышарын ойлобойт. Биз таштандыларды кайда таштайбыз деп ойлонууга адамдарды мажбурлай турган машинаны түзүүнү чечтик. Биздин таштанды сорттоочу колдонуучунун киришин үч өчүргүч аркылуу алат, алардын ар бири таштанды, кайра иштетүү же компостту билдирет. Колдонуучу таштанды (лардын) түрүн тандап алгандан кийин, алар кнопканы баскысы келет. Бул баскыч тиешелүү контейнер капкактарын ачууга алып келет. Машина ошондой эле Basys 3төгү дисплейди колдонуп, капкактардын бири ачык экенин көрсөтөт. Кнопка бошотулганда, капкактар кайра жабылат, ошондо машина кийинки колдонуучуга даяр болот.
1 -кадам: материалдар
Бул долбоорго керектүү материалдар:
Basys 3 тактасы
Vivado орнотулган компьютер
3x серво*
3 фут жез зым
Wire Cutter/Stripper
Лампочка жана ширетүүчү
*анткени серволор кымбат жана биз колледждин студенттери болгондуктан, прототип катары ар бир сервого 68 омдук резистор менен светодиодду алмаштырдык (код ушундай иштейт)
2 -кадам: коддоону баштоо
Бул долбоор үчүн жазыла турган көп код бар. Биз Vivado тилинде жазылган VHDL кодун колдонобуз. Баштоо үчүн биз жаңы долбоорду түзгүбүз келет. Алгач сиз долбоордун атын атап, долбоордун түрүн көрсөтөсүз. Сүрөттөгүдөй эле орнотууларды тандап алыңыз. Булактар экранына жеткенде, "top", "flip_flop", "segments", "servo_top", "servo_sig" жана "clk_div" аттуу алты булакты кошкуңуз келет. Verilog эмес, ар бир файлдын тили үчүн VHDLди тандап алыңыз. Чектөөлөр экранында сиз пин дайындоо үчүн бир файл түзүшүңүз керек. Бул файлдын аталышы маанилүү эмес. Андан кийин сиз колдоно турган тактаны тандооңуз талап кылынат. Туурасын тандап жатканыңызды текшериңиз. Туура тандоо үчүн сүрөттөр. Акыркы кадам сизден ар бир баштапкы файлдын кириштерин жана чыгымдарын көрсөтүүнү суранат. Бул кадамды кийинчерээк коддоого болот, андыктан кийинки баскычты басыңыз.
3 -кадам: Файлды чектөө
Бул кадамда биз чектөөлөр файлын жазабыз. Бул Vivadoго кайсы казыктардын схемадан кайсы сигналдарды жиберерин/аларын айтат. Бизге саат, үч өчүргүч, жети сегменттүү дисплей (жети катод жана төрт анод), баскыч жана серво/светодиод колдоно турган үч PMOD казыгы керек болот. Код кандай көрүнүшү керектиги үчүн сүрөттөр.
4 -кадам: Flip Flop File
Биз жаза турган кийинки файл - flip_flip булагы файлы. Бул D flip flopтын VHDL ишке ашуусу болот. Башкача айтканда, бул анын сигналын саат сигналынын көтөрүлүүчү четинде жана баскыч басылганда гана өткөрөт. Бул саат, D жана баскычты талап кылат жана Q. кодун алуу үчүн сүрөттөргө шилтеме берет. Бул файлдын максаты - урналарды ар бир которгондо түз ачуу эмес, баскыч басылганда гана урналарды ачууга уруксат берүү жана которгуч кайра артка тартылганда гана жабуу.
5 -кадам: Сегменттер файлы
Кийинки жазыла турган файл - бул сегменттер файлы. Бул баскычты Basys 3тун жети сегменттүү дисплейинин жети катодунун жана төрт анодунун киргизүү жана чыгаруу баалуулуктарындагыдай алат. Бул файл жети сегменттин дисплейинде урналар жабылганда "С", ал эми урналар ачык болгондо "О" көрсөтүлөт. Код үчүн тиркелген сүрөттү караңыз.
6 -кадам: Саатты бөлүүчү файл
Сервалар 64k Гц жыштыгында PWM сигналын алуу менен иштейт, ал эми саат 50M Гцте Basys 3 функциясына кирген. Саатты бөлүүчү файл, демейки саатты сервопривод үчүн достук жыштыкка айландырат. Файл саатты жана баштапкы абалга келтирүү сигналын алат жана жаңы саат сигналын чыгарат. Код үчүн тиркелген сүрөттү караңыз.
7 -кадам: Servo Signal File
Серво сигнал файлы саат кирүүсүн, баштапкы абалга келтирүүнү жана керектүү позицияны киргизүүнү талап кылат. Ал PWM сигналын чыгарат, ал сервону каалаган абалга жеткирет. Бул файл керектүү позицияга жараша ар кандай милдет циклдери бар серво үчүн PWM сигналын түзүү үчүн акыркы файлда түзүлгөн саат сигналын колдонот. Бул таштанды челектеринин капкагын көзөмөлдөгөн серволорду бурууга мүмкүндүк берет. Код үчүн тиркелген сүрөттү караңыз.
8 -кадам: Servo Top File
Бул файлдын максаты - акыркы эки файлды функционалдуу серво драйверине чогултуу. Бул саат, баштапкы абалга келтирүү жана позиция катары керектүү PWM сигналын чыгарат. Ал компоненттер катары саат бөлүштүргүчтү да, серво сигналынын файлын да колдонот жана өзгөртүлгөн саатты саат бөлгүчтөн servo сигнал файлына өткөрүү үчүн ички саат сигналын камтыйт. Сүрөттөрдү караңыз
9 -кадам: Top File
Бул долбоордун эң маанилүү файлы, анткени ал биз жараткан нерселердин бардыгын бириктирет. Бул баскычты, үч өчүргүчтү жана саатты кириш катары алат. Ал жети катод, төрт анод жана үч серво/LED сигналын берет. Ал флип -флопту, сегменттерди жана servo_top файлдарын компоненттер катары колдонот жана ички которгучка жана ички серво сигналына ээ болот.
10 -кадам: Vivadoдо тестирлөө
Vivadoдо синтезди, ишке киргизүүнү жана bitsream'ди жазыңыз. Эгерде сиз кандайдыр бир ката билдирүүлөрүнө туш болсоңуз, катанын жайгашкан жерин таап, анан берилген кодго салыштырыңыз. Бул чуркоо ийгиликтүү аяктаганга чейин, ар кандай каталар аркылуу иштеңиз.
11 -кадам: Hardware Intro куруу
Бул кадамда сиз биздин прототипте колдонгон LED жабдыктарын түзөсүз. Эгерде сервоприёмниктерди колдонуп жатсаңыз, анда долбоор туура казыктар колдонулганга чейин барууга даяр болушу керек. LED колдонуп жатсаңыз, төмөнкү кадамдарды аткарыңыз.
12 -кадам: Даярдоо
Зымды алты бөлүккө бөлүңүз. Зымдын ар бир бөлүгүнүн учтарын жетиштүү түрдө сыйрып алыңыз, андыктан ширетүү пайда болушу мүмкүн. Өзүнчө LED, резистор жана зымдар үч топко бөлүнөт. Темирди жылытуу.
13 -кадам: ширетүү
68 Омдук резисторлордун ар бирин тиешелүү светодиоддун терс жагына lehиңиз. Светодиоддун оң жагына зым, ал эми резистордун капталына башка зым алып келбейт. Сизде жогоруда сүрөттөлгөн үч LED карама -каршы болушу керек.
14 -кадам: Финал
Ар бир позитивдүү зымды тийиштүү PMOD пинине жана ар бир терсин жерге PMOD төөнөгүчүнө салыңыз. Ыктыярдуу түрдө таштанды челектерин көрсөтүү үчүн картондуу урналарды кошуп, ширетүү иштериңизди жашырыңыз. Зымдар туура сайылып, код тактага катасыз туура жүктөлгөндөн кийин, машина ойдогудай иштеши керек. Эгер бир нерсе туура эмес болуп жатса, көйгөйлөрдү чечүү үчүн мурунку кадамдарга кайтыңыз. Жаңы "таштанды сорттоочуңуз" менен көңүл ачыңыз.
Сунушталууда:
CPE 133 Final Project Decimal to Binary: 5 Steps
CPE 133 Final Project Decimal to Binary: Binary Numbers - санариптик логиканы ойлонгондо эң биринчи эске түшүүчү нерселердин бири. Бирок, бинардык сандар аны жаңы баштагандар үчүн татаал түшүнүк болушу мүмкүн.Бул долбоор экилик сандар менен жаңы тажрыйбалуу болгондорго жардам берет
Сорттоочу шляпа: 3 кадам
Сорттоочу шляпа: Биз ар кандай костюмдарды кийген жылдын ошол мезгилине жакындап калганда, бир жылы биздин мектептин кызматкерлери бөлүмдөр боюнча темаларды алууну чечишти. Гарри Поттер эң популярдуу тандоо болчу, мен чындыгында Амигуруми куурчактарын тигүү менен алектенип жатканымда
Электрондук тыйын сорттоочу: 7 кадам (сүрөттөр менен)
Электрондук монеталарды сорттоочу: Узак, илгери, мектепке барууга мүмкүн болгондо, биз абдан жөнөкөй жол менен иштеген аппаратты жасоо үчүн кызыктуу идеяны ойлоп тапканбыз - керектүү сумманы ыргытып жибергенден кийин, биз белгилүү бир продукт чыгарат. Ача албайм
Гарри Поттерден сорттоочу шляпа: 8 кадам
Гарри Поттерден сорттоочу шляпа: Биздин могл дүйнөсүндө бизди үйлөрүбүзгө бөлө турган сыйкырдуу баш кийим жок. Ошентип, мен бул карантиндик мүмкүнчүлүктөн пайдаланып, сорттоочу шляпа жасадым
CPE 133 Metronome: 3 кадам
CPE 133 Metronome: Cal Polyдеги акыркы долбоорубуз үчүн биз метроном деп аталган темпти сактоочу түзүлүштү түздүк, анткени биз музыканы жана санариптик дизайнды кызыгуу менен тандап алдык. Биз CPE 133төгү мурунку лабораторияларды колдонуп, кодубузду жана онлайн сабактарыбызды түзүүгө жардам бердик