- Компоненты, необходимые для Raspberry Pi Motor Driver HAT
- ИС драйвера двигателя L293D
- Принципиальная схема драйвера двигателя Raspberry Pi HAT
- Изготовление печатной платы для шляпы драйвера двигателя Raspberry Pi
- Заказ печатной платы на PCBWay
- Сборка
- Настройка Raspberry Pi
- Пояснение кода драйвера двигателя Raspberry Pi
- Тестирование шляпы драйвера двигателя Raspberry Pi
Raspberry Pi HAT - это дополнительная плата для Raspberry Pi с теми же размерами, что и Pi. Он может быть установлен непосредственно на Raspberry Pi и не требует дополнительных подключений. На рынке доступно множество шляп Raspberry Pi. В этом руководстве мы собираемся создать шляпу драйвера двигателя Raspberry Pi для управления двигателями постоянного тока и шаговыми двигателями. Этот драйвер двигателя HAT состоит из микросхемы драйвера двигателя L293D, модуля ЖК-дисплея 16 * 2, четырех кнопок и дополнительных контактов для модуля SIM800 с регулятором 3,3 В. Эта шляпа Raspberry Pi пригодится при создании роботизированного проекта.
Здесь мы использовали PCBWay, чтобы предоставить печатные платы для этого проекта. В следующих разделах статьи мы рассмотрели полную процедуру проектирования, заказа и сборки печатных плат для Raspberry pi Motor Driver HAT. В наших предыдущих проектах мы также создали Raspberry Pi Hat для ЖК-дисплея 16x2 и Raspberry Pi LoRa HAT.
Компоненты, необходимые для Raspberry Pi Motor Driver HAT
- Raspberry Pi
- L293D IC
- 4 × кнопки
- Резисторы SMD (1 × 10 кОм, 12 × 1 кОм)
- Потенциометр 1 × 10K
- 4 × светодиода SMD
- Регулятор напряжения LM317
- 2 × винтовые клеммы
- 16 * 2 ЖК-модуль
ИС драйвера двигателя L293D
L293D - это популярный 16-контактный драйвер двигателя. Как следует из названия, он используется для управления униполярными, биполярными шаговыми двигателями, двигателями постоянного тока или даже серводвигателями. Одна ИС L293D может управлять двумя двигателями постоянного тока одновременно. Кроме того, скорость и направление этих двух двигателей можно контролировать независимо. Эта ИС имеет два входа питания, то есть «Vcc1» и «Vcc2». Vcc1 используется для питания внутренней логической схемы, которая должна быть 5 В, а вывод Vcc2 предназначен для питания двигателей, который может быть от 4,5 В до 36 В.
L293D Технические характеристики:
- Напряжение двигателя Vcc2 (Vs): от 4,5 В до 36 В
- Максимальный пиковый ток двигателя: 1,2 А
- Максимальный непрерывный ток двигателя: 600 мА
- Напряжение питания на Vcc1 (VSS): от 4,5 В до 7 В
- Время перехода: 300 нс (при 5 В и 24 В)
- Доступно автоматическое тепловое отключение
Принципиальная схема драйвера двигателя Raspberry Pi HAT
Полная принципиальная схема драйвера двигателя L293D с Raspberry Pi показана на изображении ниже. Схема была нарисована с помощью EasyEDA.
Эта HAT состоит из микросхемы драйвера двигателя L293D, модуля ЖК-дисплея 16 * 2 и четырех кнопок. Мы также предоставили контакты для модуля SIM800 с регулятором 3,3 В, разработанным с использованием регулятора переменной LM317 для будущих проектов. Raspberry Pi Motor Driver HAT будет располагаться непосредственно поверх Raspberry Pi, что упрощает управление роботами с помощью Raspberry Pi.
Изготовление печатной платы для шляпы драйвера двигателя Raspberry Pi
Как только схема будет готова, мы можем приступить к разводке печатной платы. Вы можете спроектировать печатную плату с помощью любого программного обеспечения для печатных плат по вашему выбору. Мы использовали EasyEDA для изготовления печатной платы для этого проекта. Вы можете просмотреть любой слой (верхний, нижний, верхний, нижний, шелковый и т. Д.) Печатной платы, выбрав слой в окне «Слои». Кроме того, предоставляется 3D-модель печатной платы, показывающая, как она будет выглядеть после изготовления. Ниже представлены виды 3D-модели верхнего и нижнего слоев печатной платы Pi Motor Driver HAT.
Компоновку печатной платы для указанной выше схемы также можно загрузить в формате Gerber по приведенной ниже ссылке:
- Файл Gerber для Raspberry Pi Motor Driver HAT
Заказ печатной платы на PCBWay
После доработки дизайна можно приступать к заказу печатной платы:
Шаг 1. Зайдите на https://www.pcbway.com/, зарегистрируйтесь, если это ваш первый раз. Затем на вкладке PCB Prototype введите размеры вашей печатной платы, количество слоев и количество требуемых печатных плат.
Шаг 2: Продолжите, нажав кнопку «Цитировать сейчас». Вы попадете на страницу, где можно установить несколько дополнительных параметров, таких как Тип платы, Слои, Материал для печатной платы, Толщина и другие. Большинство из них выбраны по умолчанию, но если вы выбираете какие-либо конкретные параметры, вы можете выбрать их здесь.
Шаг 3: Последний шаг - загрузить файл Gerber и продолжить оплату. Чтобы убедиться, что процесс проходит гладко, PCBWAY проверяет, действителен ли ваш файл Gerber, прежде чем продолжить платеж. Таким образом, вы можете быть уверены, что ваша печатная плата удобна для изготовления и будет доставлена вам в установленном порядке.
Сборка
Через несколько дней мы получили нашу печатную плату в аккуратной упаковке, и качество печатной платы было как всегда хорошим. Верхний и нижний слои платы показаны ниже:
Убедившись, что следы и следы правильные. Я приступил к сборке печатной платы. На изображении показано, как выглядит полностью распаянная плата.
Настройка Raspberry Pi
Перед программированием Raspberry Pi мы должны установить необходимые библиотеки. Для этого сначала обновите ОС Raspberry Pi, используя следующие команды:
Обновление Sudo apt-get Обновление Sudo apt-get
Теперь установите библиотеку Adafruit_CharLCD для модуля LCD. Эта библиотека предназначена для ЖК-плат Adafruit, но также работает с ЖК-платами других производителей.
sudo pip3 установить Adafruit-CharLCD
Пояснение кода драйвера двигателя Raspberry Pi
В этом проекте мы программируем Raspberry Pi для одновременного управления двумя двигателями постоянного тока в прямом, обратном, левом и правом направлениях с интервалом в две секунды. Направление двигателей будет отображаться на ЖК-дисплее. Полный код приведен в конце документа. Здесь мы объясняем некоторые важные части кода.
Как обычно, начните код с импорта всех необходимых библиотек. Модуль RPi.GPIO используется для доступа к контактам GPIO с помощью Python. Модуля время используется для приостановки программы в течение заданного времени.
импортировать RPi.GPIO как GPIO время импорта импортировать плату импортировать Adafruit_CharLCD как LCD
После этого назначьте контакты GPIO для ИС драйвера двигателя L293D и ЖК-дисплея.
lcd_rs = 0 lcd_en = 5 lcd_d4 = 6 Motor1A = 4 Motor1B = 17 Motor1E = 12
Теперь установите 6 контактов двигателя в качестве выходных контактов. Следующие четыре являются выходными контактами, из которых первые два используются для управления правым двигателем, а следующие два - для левого двигателя. Следующие два контакта - это контакты включения для правого и левого двигателей.
GPIO.setup (Motor1A, GPIO.OUT) GPIO.setup (Motor1B, GPIO.OUT) GPIO.setup (Motor1E, GPIO.OUT) GPIO.setup (Motor2A, GPIO.OUT) GPIO.setup (Motor2B, GPIO.OUT) GPIO.setup (Motor2E, GPIO.OUT)
Внутри цикла while переместите два двигателя постоянного тока в прямом, обратном, левом и правом направлениях одновременно с двухсекундным интервалом.
GPIO.output (Motor1A, 0) GPIO.output (Motor1B, 0) GPIO.output (Motor2A, 1) GPIO.output (Motor2B, 0) lcd.message ('Left') print ("Left") sleep (2) #Forward GPIO.output (Motor1A, 1) GPIO.output (Motor1B, 0) GPIO.output (Motor2A, 1) GPIO.output (Motor2B, 0) lcd.message ('Forward') print ("Forward") …… ………………………………
Тестирование шляпы драйвера двигателя Raspberry Pi
Когда вы закончите сборку печатной платы, установите HAT драйвера двигателя на Raspberry Pi и запустите код. Если все пойдет нормально, двигатели постоянного тока, подключенные к Raspberry Pi, будут двигаться влево, вперед, вправо и назад одновременно каждые две секунды, а направление двигателя будет отображаться на ЖК-дисплее.
Вот как вы можете создать свою собственную шляпу для драйвера мотора L293D Raspberry Pi. Полный код и рабочее видео проекта приведены ниже. Надеюсь, вам понравился проект, и вам было интересно создать свой собственный. Если у вас есть вопросы, оставьте их в разделе комментариев ниже.