Мазмуну:

CPE 133 Таштанды сорттоочу: 14 кадам
CPE 133 Таштанды сорттоочу: 14 кадам
Anonim
CPE 133 таштанды сорттоочу
CPE 133 таштанды сорттоочу

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 Flop File
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

Servo Top File
Servo Top File

Бул файлдын максаты - акыркы эки файлды функционалдуу серво драйверине чогултуу. Бул саат, баштапкы абалга келтирүү жана позиция катары керектүү PWM сигналын чыгарат. Ал компоненттер катары саат бөлүштүргүчтү да, серво сигналынын файлын да колдонот жана өзгөртүлгөн саатты саат бөлгүчтөн servo сигнал файлына өткөрүү үчүн ички саат сигналын камтыйт. Сүрөттөрдү караңыз

9 -кадам: Top File

Жогорку файл
Жогорку файл
Жогорку файл
Жогорку файл
Жогорку файл
Жогорку файл
Жогорку файл
Жогорку файл

Бул долбоордун эң маанилүү файлы, анткени ал биз жараткан нерселердин бардыгын бириктирет. Бул баскычты, үч өчүргүчтү жана саатты кириш катары алат. Ал жети катод, төрт анод жана үч серво/LED сигналын берет. Ал флип -флопту, сегменттерди жана servo_top файлдарын компоненттер катары колдонот жана ички которгучка жана ички серво сигналына ээ болот.

10 -кадам: Vivadoдо тестирлөө

Vivadoдо синтезди, ишке киргизүүнү жана bitsream'ди жазыңыз. Эгерде сиз кандайдыр бир ката билдирүүлөрүнө туш болсоңуз, катанын жайгашкан жерин таап, анан берилген кодго салыштырыңыз. Бул чуркоо ийгиликтүү аяктаганга чейин, ар кандай каталар аркылуу иштеңиз.

11 -кадам: Hardware Intro куруу

Бул кадамда сиз биздин прототипте колдонгон LED жабдыктарын түзөсүз. Эгерде сервоприёмниктерди колдонуп жатсаңыз, анда долбоор туура казыктар колдонулганга чейин барууга даяр болушу керек. LED колдонуп жатсаңыз, төмөнкү кадамдарды аткарыңыз.

12 -кадам: Даярдоо

Зымды алты бөлүккө бөлүңүз. Зымдын ар бир бөлүгүнүн учтарын жетиштүү түрдө сыйрып алыңыз, андыктан ширетүү пайда болушу мүмкүн. Өзүнчө LED, резистор жана зымдар үч топко бөлүнөт. Темирди жылытуу.

13 -кадам: ширетүү

Soldering
Soldering
Soldering
Soldering

68 Омдук резисторлордун ар бирин тиешелүү светодиоддун терс жагына lehиңиз. Светодиоддун оң жагына зым, ал эми резистордун капталына башка зым алып келбейт. Сизде жогоруда сүрөттөлгөн үч LED карама -каршы болушу керек.

14 -кадам: Финал

Финал
Финал

Ар бир позитивдүү зымды тийиштүү PMOD пинине жана ар бир терсин жерге PMOD төөнөгүчүнө салыңыз. Ыктыярдуу түрдө таштанды челектерин көрсөтүү үчүн картондуу урналарды кошуп, ширетүү иштериңизди жашырыңыз. Зымдар туура сайылып, код тактага катасыз туура жүктөлгөндөн кийин, машина ойдогудай иштеши керек. Эгер бир нерсе туура эмес болуп жатса, көйгөйлөрдү чечүү үчүн мурунку кадамдарга кайтыңыз. Жаңы "таштанды сорттоочуңуз" менен көңүл ачыңыз.

Сунушталууда: