Меню

Управление мотором по wifi

Управление машинкой через WiFi с помощью ESP8266 NodeMCU

Аккумулятор можно зарядить через микро-USB, после чего он питает драйвер двигателей напрямую и WiFi-контроллер через повышающий преобразователь до 5 В .

Программа написана в Arduino IDE. Как настроить Arduino IDE для работы с контроллером NodeMCU 0.9 ESP8266 посмотрите по ссылке. После загрузки программы в контроллер, монитором порта можно прочитать IP-адрес, который плата получит после соединения с вашим WiFi-роутером. В браузере компьютера необходимо в адресной строке прописать этот адрес и перейти на страницу, которую сгенерирует программа контроллера. Она будет выглядеть следующим образом:

Так же не забываем о экономии при покупке товаров на Алиєкспресс с помощью кэшбэка

Для веб администраторов и владельцев пабликов главная страница ePN

Для пользователей покупающих на Алиэкспресс с быстрым выводом % главная страница ePN Cashback

Похожие статьи

Arduino UNO как осциллограф

Контроллеры Arduino можно использовать как простейший осциллограф, для наблюдения за быстро изменяющимися электрическими сигналами.

Скачиваем программу Processing , после чего её устанавливать не нужно — она запускается с EXE-файла.

Arduino основы программирования

Здесь мы научимся писать элементарную программу способную сделать что-либо интересное для новичка. Здесь вы узнаете, как написать простейший скетч для Arduino используя стандартый IDE. Мы пока пропустим использование входов-выходов, но обратим внимание на связь через USB. Синтаксис языка Arduino точно повторяет язык C, поэтому на нем мы останавливаться не будем. Мы сконцентрируемся на конкретных аспектах Arduino языка, в котором вы можете использовать все принципы, которые присущи языку C: переменные, операторы, состояния, типы, константы и т.д.

Arduino и использование двигателей. Подключение двигателя постоянного тока и управление им.

1. Управляем маленькими моторчиками

Управление маленьким двигателем может быть может осуществляться довольно просто. Если двигатель достаточно маленький, он может быть непосредственно соединен с выводом Arduino, и просто изменяя уровень управляющего сигнала от логической единицы до нуля будем контролировать моторчик. Этот проект раскроет вам основную логику в управлении электродвигателем; однако, это не является стандартным способом подключения двигателей к Arduino. Мы рекомендуем, вам изучить данный способ, а затем перейти на следующую ступень — заняться управлением двигателями при помощи транзисторов.

Подключим миниатюрный вибромоторчик к нашему Arduino.

Управление servo-мотором через COM-порт Arduino

Управление будет в таком виде как: в стандартном (или стороннем) окне монитора COM-порта вводим целую цифру от нуля до 180, нажимаем Enter и серво меняет положение своего плеча на заданный угол.

Источник

Управление мотором по wifi

Решил я недавно сделать апгрейд радиоуправляемого игрушечного джипа своего сына. Радиоуправление почти сразу перестало работать. Как показало вскрытие, в машинке установлены слишком слабые и неповоротливые двигателёчки. Основной двигательный моторчик я сразу заменил на больший размером и мощностью. Для этого пришлось поработать гравером, с установленой на него циркулярной пилой (а как иначе выделить достаточно места?). Так же была выброшена плата радиоприемника.

Далее недолго думая была выбрана концепция дистанционного управления по примеру марсохода: дается команда и джип сам её выполняет и останавливается. Всё из-за неуверенности, что у моего 2,5 летнего сына получится управлять двигателями стандартным пультом. Я уверен, что он будет надолго зажимать элементы управления независимо от поведения машинки. А принцип марсохода: проедь 20см и остановись, вполне подойдёт. Тем более, что я давно мечтал его опробовать хотя бы в простейшем варианте. В данной реализации будем ехать не 20см, а заданное время — 1 сек.

Аккумулятор можно зарядить через микро-USB, после чего он питает драйвер двигателей напрямую и WiFi-контроллер через повышающий преобразователь до 5 В.

Программа написана в Arduino IDE. Как настроить Arduino IDE для работы с контроллером NodeMCU 0.9 ESP8266 посмотрите по ссылке. После загрузки программы в контроллер, монитором порта можно прочитать IP-адрес, который плата получит после соединения с вашим WiFi-роутером. В браузере компьютера необходимо в адресной строке прописать этот адрес и перейти на страницу, которую сгенерирует программа контроллера. Она будет выглядеть следующим образом:

Источник

Wi-Fi машинка с камерой своими руками

ОПИСАНИЕ

Машинка с камерой и управлением через интернет на Arduino. Основана на китайской IP камере =) Базируется на самом дешёвом шасси для роботов-машинок (платформа, два приводных колеса, одно ведомое), в связи с особенностями камеры, машинка управляется весьма необычно, но вполне адекватно для простоты и доступности своего устройства.

  • Фишки, унаследованные от камеры:
    • Картинка 1280×720
    • Ночной режим (с ИК подсветкой)
    • Запись видео и съёмка фото
    • Режим рации (двухсторонняя аудиосвязь)
  • Управление из родного приложения
  • Настройки скорости и продолжительности движения

ВИДЕО

КОМПОНЕНТЫ

Каталоги ссылок на Алиэкспресс на этом сайте:

Читайте также:  Почему у газонокосилки мотор работает а нож не крутится

Стараюсь оставлять ссылки только на проверенные крупные магазины, из которых заказываю сам. Также по первые ссылки ведут по возможности на минимальное количество магазинов, чтобы минимально платить за доставку. Если какие-то ссылки не работают, можно поискать аналогичную железку в каталоге Ардуино модулей . Также проект можно попробовать собрать из компонентов моего набора GyverKIT .

Источник

ESP32:Примеры/Машинка-робот с дистанционным WiFi-управлением

Содержание

Машинка-робот с дистанционным WiFi-управлением

В этом руководстве мы пошагово расскажем, как при помощи ESP32 создать машинку-робота, управляемую через WiFi.

В этом проекте затрагивается несколько тем, о которых уже рассказывалось в других руководствах по ESP32 на нашем сайте. Поэтому для лучшего понимания того, что будет написано ниже, советуем с ними ознакомиться (если еще не ознакомились). Вот они:

Обзор проекта

Перед тем, как начать, давайте рассмотрим главные функции и компоненты, при помощи которых этот проект будет воплощен в жизнь.

Робот будет управляться через WiFi при помощи ESP32. Мы создадим веб-интерфейс, с помощью которого можно будет управлять роботом, и доступ к этому интерфейсу можно будет получить с любого устройства (ПК, ноутбука, планшета и т.д.), подключенного к вашей локальной сети.

Веб-интерфейс для управления роботом

Веб-интерфейс будет состоять из 6 компонентов: 5 кнопок вверху (вперед, назад, влево, вправо и стоп) и одного ползунка внизу (для изменения скорости движения, на нем можно выбрать скорость 0%, 25%, 50%, 75% и 100%).

Шасси

Мы будем использовать набор, показанный на картинке ниже. Он называется Smart Robot Chassis Kit. Его можно купить в большинстве онлайн-магазинов. Он стоит около 10 долларов и очень легко собирается. Подойдет и любой другой набор, но в нем также должны быть два DC-мотора.

Драйвер моторов L298N

Есть много разных способов для управления DC-моторами (электромоторами постоянного тока). Мы же воспользуемся драйвером моторов L298N, т.к. он позволяет значительно облегчить управление скоростью и направлением двух DC-моторов.

Питание

Моторам требуется много электроэнергии, поэтому нам также понадобится внешний источник питания. Это значит, что нам будут нужны два разных источника питания – один для DC-моторов, и один для ESP32. Плату ESP32 мы будем питать от пауэрбанка (вроде тех, что используются для зарядки смартфонов).

Моторы будут питаться от четырех 1.5-вольтовых АА-батареек. Подойдут, впрочем, и перезаряжаемые батарейки, и любой другой подходящий источник питания.

Справочная информация

Краткое введение в драйвер моторов L298N

Как уже говорилось выше, есть много разных способов для управления DC-моторами. Наш метод подходит для большинства моторов, используемых в любительских проектах и требующих 6-12 вольт. Мы воспользуемся драйвером моторов L298N, который может управлять нагрузкой до 3 ампер при 35 вольтах, что как раз подходит для нашего проекта. Он также позволяет одновременно управлять двумя DC-моторами, что идеально для создания робота на колесах.

Распиновка драйвера моторов L298N

Давайте взглянем на контакты драйвера моторов L298N и разберемся, как он работает.

Драйвер моторов L298N оснащен двумя клеммниками, которые находятся по разные стороны платы. Левый клеммник состоит из портов OUT1 и OUT2, а правый – из портов OUT3 и OUT4.

  • OUT1 – плюсовой порт для DC-мотора А;
  • OUT2 – минусовой порт для DC-мотора А;
  • OUT3 – плюсовой порт для DC-мотора B;
  • OUT4 – минусовой порт для DC-мотора B;

Внизу находится еще один клеммник, но уже на 3 порта: +12V, GND и +5V. Порт +12V используется для питания моторов. Порт +5V используется для питания чипа L298N. Но если поставить перемычку (на изображении выше она помечена оранжевым цветом), чип будет питаться от питания для DC-моторов. В этом случае подавать 5-вольтовое питание на порт +5V не нужно.

Примечание: Если напряжение питания превышает 12 вольт, перемычку нужно снять и подать 5-вольтовое питание на порт +5V.

Важно отметить, что хотя порт называется +12V, для нашего проекта (и с поставленной перемычкой) подойдет напряжение в диапазоне между 6 и 12 вольтами. Мы будем питать проект от четырех 1.5-вольтовых АА-батареек общим напряжением примерно 6 вольт.

  • +12V: Это порт, к которому нужно подключить питание;
  • GND: Это порт для заземления;
  • +5V: Если перемычка снята, на этот порт нужно подать 5-вольтовое питание. Если перемычка стоит, этот порт будет источником 5-вольтового питания;
  • Перемычка: Если перемычка на месте, чип питается от питания моторов. Если перемычка снята, на порт +5V нужно подать 5-вольтовое питание. Если напряжение питания превышает 12 вольт, перемычку нужно снять.

В правом нижнем углу платы располагается 4 входных контакта, а по бокам от них – еще 2 контакта. 4 входных контакта предназначены для управления направлением вращения DC-моторов, а 2 контакта по бокам – для управления скоростью каждого мотора.

  • IN1 – входной контакт 1 для мотора А;
  • IN2 – входной контакт 2 для мотора А;
  • IN3 – входной контакт 1 для мотора B;
  • IN4 – входной контакт 2 для мотора B;
  • ENA – контакт для управления скоростью мотора A;
  • ENB – контакт для управления скоростью мотора B;
Читайте также:  Бензопила мотор работает а цепь не вращается

Рядом с контактами ENA и ENB находится по одному контакту +5V, и по умолчанию на них стоят перемычки. Чтобы управлять скоростью моторов, эти перемычки нужно снять.

Управление DC-моторами с помощью L298N

Теперь, когда мы познакомились с драйвером моторов L298N, давайте разберемся, как использовать его для управления DC-моторами.

Контакты ENA и ENB

Контакты ENA и ENB (для управления скоростью моторов) используются как переключатели между режимами «вкл» и «выкл», но также могут принимать более вариативные ШИМ-значения.

  • Если подать на контакт ENA значение «HIGH», это разрешит управление мотором А на максимальной скорости;
  • Если подать на контакт ENA значение «LOW», это выключит мотор А;
  • Если подать ШИМ-сигнал на контакт ENA, это позволит управлять скоростью мотора. Скорость мотора пропорциональна коэффициенту заполнения ШИМ. Но помните, что если задать маленький коэффициент заполнения, моторы, возможно, просто не будут вращаться, а лишь постоянно жужжать.
Сигнал, подаваемый на ENA или ENB Как ведет себя мотор
HIGH Мотор работает на максимальной скорости
LOW Мотор не работает
ШИМ Мотор работает (скорость пропорциональна коэффициенту заполнения)
Входные контакты

Входные контакты предназначены для управления направлением вращения моторов. Контакты IN1 и IN2 управляют мотором А, а контакты IN3 и IN4мотором B.

Если подать на контакт IN1 значение LOW, а на IN2 – значение HIGH, мотор A будет крутиться вперед. Если инвертировать значения (на IN1 подать HIGH, а на IN2 – LOW), мотор A будет крутиться назад. Мотор B управляется аналогичным образом.

Таким образом, если вы хотите, чтобы робот ехал вперед, оба мотора должны крутиться вперед, а чтобы он ехал назад – оба мотора должны крутиться назад.

Чтобы робот повернулся, один из моторов должен крутиться быстрее другого. Например, чтобы робот повернул вправо, нам нужно включить левый мотор и выключить правый мотор.

НАПРАВЛЕНИЕ INPUT 1 INPUT 2 INPUT 3 INPUT 4
Вперед 0 1 0 1
Назад 1 0 1 0
Вправо 0 1 0 0
Влево 0 0 0 1
Стоп 0 0 0 0

Как работает этот код

Мы подробно рассказывали о коде для создания веб-сервера на базе ESP32 в других руководствах. Поэтому здесь мы затронем лишь те фрагменты, что касаются нашего проекта.

Задаем настройки для подключения к WiFi

Начинаем с того, что задаем в двух переменных ниже SSID и пароль для локальной WiFi-сети, к которой нужно подключить ESP32.

Создаем переменные для контактов драйвера моторов L298N

Далее создаем переменные для входных контактов (IN1, IN2, IN3, IN4), а также для контактов управления скоростью вращения моторов (ENA и ENB) драйвера моторов L298N.

Задаем свойства ШИМ

Если мы хотим управлять скоростью вращения моторов, нам нужно будет отправлять ШИМ-сигнал на контакты ENA и ENB. Следовательно, нам нужно создать переменные для свойств ШИМ-сигнала вроде частоты, канала ШИМ, разрешения и коэффициента заполнения.

Примечание: Более подробно об использовании ШИМ вместе с ESP32 читайте в руководстве«Изменение яркости светодиода при помощи ШИМ».

setup()

В блоке setup() делаем выходными контакты для моторов.

Затем настраиваем ШИМ-канал при помощи заданных ранее свойств.

В следующих двух строчках подключаем этот ШИМ-канал к контактам ENA и ENB. Таким образом, на контакты ENA и ENB будет идти один и тот же ШИМ-сигнал.

Наконец, при помощи функции ledcWrite() генерируем ШИМ-сигнал с заранее заданным коэффициентом заполнения.

Код ниже подключает ESP32 к локальной WiFi-сети и печатает в монитор порта ее IP-адрес.

В блоке loop() ESP32 всегда будет прослушивать входящих клиентов и при получении запроса сохранять входящие данные.

Управляем роботом

В следующем фрагменте задано несколько операторов if() и else(), с помощью которых проверяется, какая команда отправляется роботу – «вперед», «назад», «влево», «вправо» или «стоп». Затем контактам моторов отправляются значения, соответствующие выбранной команде.

Например, чтобы повернуть робота влево, всем контактам нужно отправить значение «LOW» (кроме «motor2Pin2», которому нужно отправить «HIGH»).

Как видите, каждая команда – предназначенная для того, чтобы переместить робота в каком-либо направлении или остановить его – представляет собой уникальную комбинацию сигналов «HIGH» и «LOW». Более подробно об этом рассказывалось выше, в разделе «Входные контакты».

Показываем веб-страницу

Фрагмент кода ниже показывает в вашем браузере веб-страницу с интерфейсом для управления роботом. Он состоит из 5 кнопок (вперед, назад, влево, вправо, стоп) и ползунка для управления скоростью.

Читайте также:  Не набирает обороты лодочный мотор ханкай 6

Примечание: О создании веб-страниц для веб-сервера подробно рассказывается в руководстве «Веб-сервер на базе ESP32: управление выходными контактами».

Управляем скоростью мотора

Во фрагменте кода ниже мы считываем значение ползунка и, исходя из него, меняем скорость мотора. Такой же метод используется в руководстве «Веб-сервер на базе ESP32: удаленное управление сервоприводом».

В переменную «valueString» сохраняется текущее значение ползунка.

Если ползунок стоит на значении «0», моторы не будут работать. То есть мы задаем ШИМ-каналу коэффициент заполнения «0» и отправляем всем контактам моторов значения «LOW».

Если на ползунке стоит ненулевое значение, то моторы начнут вращаться. Расчет коэффициента заполнения на основе значения ползунка осуществляется при помощи Arduino-функции map(). В ней начальным значением коэффициента заполнения задано «200», т.к. если задать меньше, робот просто не будет двигаться (моторы лишь будут издавать странное жужжание).

После этого мы задаем коэффициент заполнения для ШИМ-канала, с его помощью и управляя скоростью моторов.

Тестируем веб-сервер

Теперь давайте протестируем веб-сервер. Убедитесь, что вставили в код SSID и пароль для своей WiFi-сети. Также проверьте, правильные ли в IDE Arduino выбраны COM-порт и плата. После этого жмите на кнопку «Загрузка». Когда загрузка завершится, откройте монитор порта на скорости 115200 бод.

Чтобы узнать IP-адрес ESP32, нажмите на ней на кнопку EN.

Отключите ESP32 от компьютера и запитайте от пауэрбанка.

Убедитесь, что все четыре АА-батарейки стоят на месте, а движковый переключатель стоит в положении «вкл».

Откройте браузер и впишите в адресную строку IP-адрес ESP32, чтобы получить доступ к веб-серверу. Этот веб-сервер можно открыть на любом устройстве (ПК, ноутбуке, смартфоне и т.д.), подключенном к вашей локальной сети, и с его помощью управлять роботом.

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

Важное примечание: Если моторы крутятся в неправильном направлении, нужно просто поменять местами провода, подключенные к моторам. Например, провода, подключенные к контактам OUT1 и OUT2 или OUT3 и OUT4. Это должно решить проблему.

Поздравляем! Вы своими руками сделали робота с дистанционным WiFi-управлением! Он может перемещаться вперед, назад, влево и вправо. Вы также можете остановить его, нажав на кнопку «STOP». Более того, вы даже можете менять скорость движения робота при помощи ползунка.

Робот работает превосходно и мгновенно отвечает на команды.

Итого

Ну что, нравится робот? Советуем не останавливаться на достигнутом и попробовать оснастить машинку новыми фичами – например, так:

  • Подключите к ней RGB-светодиод и запрограммируйте ESP32 так, чтобы его цвет менялся в зависимости от направления, в котором едет машинка;
  • Подключите к ней ультразвуковой датчик, чтобы она останавливалась, увидев препятствие.

На наш взгляд, это хороший проект для того, чтобы практиковать на нем концепты, о которых рассказывалось в других руководствах по ESP32 на нашем сайте.

Необходимое оборудование

  • Плата ESP32 – 1 шт.
  • Набор для шасси (можно сделать своими руками + два DC-мотора) – 1 шт.
  • Драйвер моторовL298N – 1 шт.
  • Пауэрбанк (портативный зарядник) – 1 шт.
  • AA-батарейки (1.5 вольт) – 4 шт.
  • Керамические конденсаторы на 100 нФ – 2 шт.
  • Движковый переключатель типа SPDT (один полюс, два направления) – 1 шт.
  • Провода-перемычки ;
  • Контактная или печатная макетная плата – 1 шт.
  • Лента-липучка («репейник») – 1 шт.

Схема

На этой схеме изображена 36-контактная версия платы ESP32 DEVKIT DOIT V1, поэтому если у вас какая-то другая модель, обязательно сверьтесь с ее распиновкой.

Начинаем с подключения ESP32 к драйверу моторов. Для размещения ESP32 и построения цепи можно воспользоваться либо небольшой контактной, либо печатной макетной платой. В таблице ниже показано, с помощью каких контактов ESP32 и драйвер моторов L298N необходимо подключить друг к другу.

Драйвер моторов L298N ESP32
IN1 GPIO27
IN2 GPIO26
ENA GPIO14
IN3 GPIO33
IN4 GPIO25
ENB GPIO32

После этого подключите оба мотора к клеммникам драйвера моторов L298N. В целях ослабления скачков напряжения мы рекомендуем припаять к плюсовому и минусовому контактам каждого мотора керамический конденсатор на 100 нФ (как показано на схеме выше).

Кроме того, можно припаять движковый переключатель к красному проводу, идущему от батареек. Благодаря ему вы сможете включать/отключать питание, идущее к моторам и драйверу моторов.

Наконец, запитайте моторы при помощи четырех АА-батареек, подключив их к портам питания драйвера моторов. Так как наш робот должен быть портативным, ESP32 будет питаться от пауэрбанка. Прикрепите его к шасси, например, при помощи ленты-липучки.

Источник