Оглавление:
- Шаг 1: материалы
- Шаг 2: начало кодирования
- Шаг 3: Файл ограничений
- Шаг 4: Файл флип-флоп
- Шаг 5. Файл сегментов
- Шаг 6: Файл делителя часов
- Шаг 7: файл серво-сигнала
- Шаг 8: серво-верхний файл
- Шаг 9: верхний файл
- Шаг 10: Тестирование в Vivado
- Шаг 11: Введение в создание оборудования
- Шаг 12: подготовка
- Шаг 13: пайка
- Шаг 14: финал
Видео: Сортировщик мусора CPE 133: 14 шагов
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Для нашего класса CPE 133 в Cal Poly нам сказали создать проект VHDL / Basys 3, который поможет окружающей среде и будет достаточно простым, чтобы мы могли реализовать его с нашими новыми знаниями цифрового дизайна. Идея нашего проекта заключается в том, что, как правило, люди не думают о том, куда они выбрасывают мусор. Мы решили создать машину, которая заставит людей задуматься о том, куда они кладут свой мусор. Наш сортировщик мусора принимает вводимые пользователем данные с помощью трех переключателей, каждый из которых представляет собой мусор, переработку или компост. После того, как пользователь выбрал тип отходов, от которых он хотел бы избавиться, он нажимает кнопку. Эта кнопка приведет к открытию крышек соответствующих контейнеров. Машина также использовала дисплей Basys 3, чтобы указать, открыта ли какая-либо из крышек в данный момент. Когда кнопка будет отпущена, крышки снова закроются, так что машина будет готова для следующего пользователя.
Шаг 1: материалы
Материалы, необходимые для этого проекта:
Доска Basys 3
Компьютер с установленным Vivado
Сервопривод 3x *
3 фута медного провода
Кусачки / Стриппер
Паяльник и припой
* поскольку сервоприводы дорогие, и мы студенты колледжа, мы заменили резистор на 68 Ом и светодиод для каждого сервопривода в качестве прототипа (код работает таким же образом)
Шаг 2: начало кодирования
Для этого проекта нужно написать много кода. Мы будем использовать код VHDL, написанный на Vivado. Для начала нам нужно создать новый проект. Сначала вы назовете проект и укажите тип проекта. Обязательно выберите те же настройки, что и на картинке. Когда вы дойдете до экрана источников, вы захотите добавить шесть источников с именами «top», «flip_flop», «segment», «servo_top», «servo_sig» и «clk_div». Убедитесь, что для языка каждого файла выбран VHDL, а не Verilog. На экране ограничений вы должны создать один файл для назначения контактов. Имя этого файла не имеет значения. Затем вам будет предложено выбрать доску, которую вы будете использовать. Убедитесь, что вы выбрали правильный. Справочные фото для правильного выбора. На последнем шаге вас попросят указать входы и выходы каждого исходного файла. Этот шаг можно закодировать позже, поэтому нажмите «Далее».
Шаг 3: Файл ограничений
На этом этапе мы напишем файл ограничений. Это сообщает Vivado, какие выводы будут отправлять / получать какие сигналы от схемы. Нам понадобятся часы, три переключателя, семисегментный дисплей (семь катодов и четыре анода), кнопка и три выходных контакта PMOD, которые будет использовать сервопривод / светодиод. Справочные фотографии того, как должен выглядеть код.
Шаг 4: Файл флип-флоп
Следующий файл, который мы напишем, - это исходный файл flip_flip. Это будет VHDL-реализация D-триггера. Другими словами, он будет передавать свой вход на выход только при нарастающем фронте тактового сигнала и при нажатии кнопки. Он будет использовать часы, D и кнопку в качестве входа и будет выводить Q. Ссылка на фотографии для кода. Назначение этого файла - позволить ящикам открываться только при нажатии кнопки, а не открываться напрямую каждый раз, когда переключатель перекидывается, и закрывать только тогда, когда переключатель перекидывается назад.
Шаг 5. Файл сегментов
Следующий записываемый файл - это файл сегментов. При этом кнопка будет отображаться как входные и выходные значения для семи катодов и четырех анодов семисегментного дисплея Basys 3. Этот файл заставляет семисегментный дисплей показывать букву «C», когда ячейки закрыты, и «O», когда ячейки открыты. Код см. На прикрепленной фотографии.
Шаг 6: Файл делителя часов
Сервоприводы работают, принимая сигнал ШИМ с частотой 64 кГц, в то время как часы, встроенные в Basys 3, работают с частотой 50 МГц. Файл делителя часов преобразует часы по умолчанию в удобную для сервопривода частоту. Файл будет принимать часы и сигнал сброса в качестве входных данных и выводит новый тактовый сигнал. Смотрите фото, прикрепленное для кода.
Шаг 7: файл серво-сигнала
Файл сервосигнала будет принимать вход часов, вход сброса и вход желаемого положения. Он выдаст сигнал ШИМ, который переведет сервопривод в желаемое положение. Этот файл использует тактовый сигнал, созданный в последнем файле, для создания сигнала ШИМ для сервопривода с различными рабочими циклами в зависимости от желаемой позиции. Это позволяет нам поворачивать сервоприводы, управляющие крышками мусорных баков. Смотрите прикрепленное фото для кода.
Шаг 8: серво-верхний файл
Цель этого файла - скомпилировать два последних файла в функциональный сервопривод. Это потребует часов, сброса и положения в качестве входа и будет выводить сигнал серво ШИМ. Он будет использовать как делитель тактовых импульсов, так и файл сервосигнала в качестве компонентов и будет включать внутренний тактовый сигнал для передачи модифицированного тактового сигнала от делителя тактовой частоты в файл сервосигнала. Смотрите фото на
Шаг 9: верхний файл
Это самый важный файл проекта, поскольку он объединяет все, что мы создали, вместе. В качестве входов потребуется кнопка, три переключателя и часы. Он будет давать семь катодов, четыре анода и три серво / светодиода в качестве выходных сигналов. Он будет использовать триггер, сегменты и файлы servo_top в качестве компонентов и будет иметь внутренний переключатель и внутренний сервосигнал.
Шаг 10: Тестирование в Vivado
Запустите синтез, реализацию и напишите битовый поток в Vivado. Если вы столкнетесь с какими-либо сообщениями об ошибках, найдите место ошибки и затем сравните его с заданным кодом. Работайте с любыми ошибками, пока все эти запуски не завершатся успешно.
Шаг 11: Введение в создание оборудования
На этом этапе вы создадите светодиодное оборудование, которое мы использовали в нашем прототипе. При использовании сервоприводов проект должен быть готов к работе, пока используются правильные штифты. При использовании светодиодов выполните следующие действия.
Шаг 12: подготовка
Разрежьте проволоку на шесть ровных частей. Зачистите концы каждого куска провода так, чтобы могла произойти пайка. Разделите светодиоды, резисторы и провода на три группы. Нагрейте паяльник.
Шаг 13: пайка
Припаяйте каждый из резисторов 68 Ом к отрицательной стороне соответствующего светодиода. Припаяйте провод к положительной стороне светодиода, а другой провод к стороне резистора, не припаянной к светодиоду. У вас должно быть три светодиодных устройства, изображенных выше.
Шаг 14: финал
Вставьте каждый положительный провод в соответствующий вывод PMOD, а каждый отрицательный провод - в заземляющий вывод PMOD. При желании добавьте картонные контейнеры, которые будут представлять собой мусорные контейнеры и скрыть беспорядок при пайке. Как только провода будут правильно подключены и код будет правильно загружен на плату без ошибок, машина должна работать должным образом. Если что-то пойдет не так, вернитесь к предыдущим шагам для устранения неполадок. Удачи с вашим новым «сортировщиком мусора».