Съдържание:

Сортиращ отпадък CPE 133: 14 стъпки
Сортиращ отпадък CPE 133: 14 стъпки

Видео: Сортиращ отпадък CPE 133: 14 стъпки

Видео: Сортиращ отпадък CPE 133: 14 стъпки
Видео: Sorting Outdoor Trash Rubbish Bin Garden Park Garbage Bin Environment Care Recycle HK1-1705 2024, Ноември
Anonim
CPE 133 Сортиращ боклук
CPE 133 Сортиращ боклук

За нашия CPE 133 клас в Cal Poly ни беше казано да създадем проект VHDL/Basys 3, който би помогнал на околната среда и беше достатъчно прост, че можем да го приложим с нашите нови познания за дигитален дизайн. Идеята зад нашия проект, че като цяло хората не се замислят къде хвърлят боклука си. Решихме да създадем машина, която да принуди хората да се замислят там, където оставят боклука си. Нашият сортировъчър за боклук приема потребителски вход чрез три превключвателя, всеки от които представлява или боклук, рециклиране или компост. След като потребителят е избрал вида отпадъци, които би искал да изхвърли, натиска бутон. Този бутон ще доведе до отваряне на съответните капаци на контейнера. Машината също използва дисплея на Basys 3, за да покаже дали някой от капаците в момента е отворен. Когато бутонът бъде освободен, капаците ще се затворят отново, така че машината да е готова за следващия потребител.

Стъпка 1: Материали

Материали
Материали
Материали
Материали
Материали
Материали

Необходимите материали за този проект са:

Базис 3 борда

Компютър с инсталиран Vivado

3x серво*

3 фута медна жица

Резачка/стриптизьор за тел

Поялник и спойка

*тъй като сервомоторите са скъпи и ние сме студенти, заменихме 68 ома резистор и светодиод за всяко серво като прототип (кодът работи по същия начин)

Стъпка 2: Начало на кодирането

Начало на кодирането
Начало на кодирането
Начало на кодирането
Начало на кодирането
Начало на кодирането
Начало на кодирането

За този проект трябва да се напише много код. Ще използваме VHDL код, написан на Vivado. За начало ще искаме да създадем нов проект. Първо ще дадете име на проекта и ще посочите типа на проекта. Не забравяйте да изберете същите настройки, както на снимката. Когато стигнете до екрана с източници, ще искате да добавите шест източника с име „top“, „flip_flop“, „segments“, „servo_top“, „servo_sig“и „clk_div“. Не забравяйте да изберете VHDL за езика на всеки файл, а не Verilog. На екрана с ограничения трябва да създадете един файл за присвояване на щифтове. Името на този файл не е важно. След това ще бъдете подканени да изберете дъската, която ще използвате. Уверете се, че сте избрали правилния. Справочни снимки за правилен избор. Последната стъпка ще ви помоли да посочите входовете и изходите на всеки изходен файл. Тази стъпка може да бъде кодирана по -късно, така че щракнете върху следващия.

Стъпка 3: Файл с ограничения

Файл с ограничения
Файл с ограничения
Файл с ограничения
Файл с ограничения

В тази стъпка ще напишем файла с ограничения. Това казва на Vivado кои пинове кои сигнали ще изпращат/приемат от веригата. Ще ни трябват часовникът, три превключвателя, седемсегментният дисплей (седем катода и четири анода), бутон и трите изходни PMOD пина, които серво/LED ще използва. Справочни снимки за това как трябва да изглежда кодът.

Стъпка 4: Файл с джапанки

Файл с джапанки
Файл с джапанки

Следващият файл, който ще пишем, е изходният файл flip_flip. Това ще бъде VHDL реализация на D джапанка. С други думи, той ще предава само своя вход към изхода на нарастващия ръб на часовника и при натискане на бутона. Това ще отнеме часовник, D и бутона като вход и ще изведе Q. позовавайте се на снимките за код. Целта на този файл е да позволи на контейнерите да се отварят само при натискане на бутона, а не директно да се отваря всеки път, когато превключвателят е обърнат, и само да се затваря, когато превключвателят се обърне назад.

Стъпка 5: Файл със сегменти

Файл за сегменти
Файл за сегменти

Следващият файл, който трябва да бъде записан, е файлът със сегменти. Това ще вземе бутона като входни и изходни стойности за седемте катода и четири анода на седемсегментния дисплей на Basys 3. Този файл кара дисплея от седем сегмента да показва "C", когато контейнерите са затворени, и "O", когато контейнерите са отворени. За код вижте приложената снимка.

Стъпка 6: Файл с разделител на часовника

Файл с разделител на часовника
Файл с разделител на часовника

Сервомоторите функционират, като приемат ШИМ сигнал с честота 64k Hz, докато вграденият в Basys 3 часовник функционира при 50M Hz. Файлът с разделител на часовника ще преобразува часовника по подразбиране в приятелска честота за серво. Файлът ще вземе часовника и сигнала за нулиране като вход и ще изведе нов сигнал на часовника. За код вижте приложената снимка.

Стъпка 7: Файл със серво сигнали

Серво сигнал файл
Серво сигнал файл

Файлът със серво сигнал ще приема вход за часовник, вход за нулиране и вход за желана позиция. Той ще извежда PWM сигнал, който ще задвижва серво до желаната позиция. Този файл използва часовника, създаден в последния файл, за да създаде PWM сигнал за серво с различни работни цикли в зависимост от желаната позиция. Това ни позволява да завъртаме сервомоторите, които контролират капаците на кофите за боклук. За код вижте приложената снимка.

Стъпка 8: Най -горният файл на серво

Серво топ файл
Серво топ файл

Целта на този файл е да компилира последните два файла във функционален серво драйвер. Това ще отнеме часовник, нулиране и позиция като вход и ще изведе серво PWM сигнал. Той ще използва както разделителя на часовника, така и файла със сервосигнал като компоненти и ще включва вътрешен часовник, за да предаде модифицирания часовник от разделителя на часовника към файла със серво сигнал. Вижте снимки на

Стъпка 9: Топ файл

Топ файл
Топ файл
Топ файл
Топ файл
Топ файл
Топ файл
Топ файл
Топ файл

Това е най -важният файл на проекта, тъй като обгръща всичко, което сме създали заедно. Той ще вземе бутона, трите превключвателя и часовника като входове. Той ще дава седемте катода, четирите анода и трите серво/LED сигнала като изходи. Той ще използва джапанките, сегментите и servo_top файловете като компоненти и ще има вътрешен превключвател и вътрешен серво сигнал.

Стъпка 10: Тестване във Vivado

Стартирайте Synthesis, внедряване и запис на bitsream във Vivado. Ако срещнете съобщения за грешка, намерете местоположението на грешката и след това сравнете с дадения код. Премахнете всички грешки, докато всички тези изпълнения завършат успешно.

Стъпка 11: Въведение в изграждането на хардуер

В тази стъпка ще създадете LED хардуера, който използвахме в нашия прототип. Ако използвате сервомоторите, проектът трябва да е готов за работа, стига да се използват правилните щифтове. Ако използвате светодиоди, следвайте стъпките по -долу.

Стъпка 12: Подготовка

Нарежете жицата на шест равни части. Отстранете краищата на всяко парче тел достатъчно, за да може да възникне запояване. Разделете светодиодите, резисторите и проводниците в три групи. Загрейте поялника.

Стъпка 13: Запояване

Запояване
Запояване
Запояване
Запояване

Запоявайте всеки от 68 ома резистори към отрицателната страна на съответния им светодиод. Запоявайте проводник към положителната страна на светодиода и друг проводник към страната на резистора, която не е запоена към светодиода. Трябва да имате три от светодиодните конструкции, показани по -горе.

Стъпка 14: Финал

Финал
Финал

Поставете всеки положителен проводник в съответния PMOD щифт и всеки отрицателен в заземен PMOD щифт. По желание добавете картонени кошчета, за да представлявате кофите за боклук и да скриете бъркотията за запояване. След като кабелите са правилно включени и кодът е правилно качен на дъската без грешки, машината трябва да функционира по предназначение. Ако нещо се обърка, върнете се към предишните стъпки за отстраняване на неизправности. Забавлявайте се с новия си "сортиращ боклук".

Препоръчано: