Wifi модуль ESP8266 Uart последовательного интерфейса беспроводной модуль для ардуино Arduino / Raspberry Pi / AVR / ARM
Wifi модуль ESP8266 Uart последовательного интерфейса беспроводной модуль для ардуино Arduino / Raspberry Pi / AVR / ARM
Миниатюрный WiFi модуль на базе новейшей микросхемы ESP8266 со встроенным стеком протокола TCP/IP и управлением AT-командами. Чип создан для использования в умных розетках, mesh-сетях, IP-камерах, беспроводных сенсорах, носимой электронике и так далее. Одним словом, ESP8266 появился на свет, чтобы стать мозгом грядущего «Интернета вещей».
Предусмотрено два варианта использования чипа: 1) в виде моста UART-WIFI, когда модуль на базе ESP8266 подключается к существующему решению на базе любого другого микроконтроллера и управляется AT-командами, обеспечивая связь решения с инфраструктурой Wi-Fi; 2) реализуя новое решение, использующее сам чип ESP8266 в качестве управляющего микроконтроллера.
Характеристики:
поддержка WiFi протоколов 802.11 b/g/n
Wi-Fi Direct (P2P), soft-AP
встроенный стек TCP/IP
встроенный TR переключатель, balun, LNA, усилитель мощности и соответствие сети
встроенный PLL, регуляторы, и система управления питанием
выходная мощность +20.5 дБм в режиме 802.11b
поддержка диверсити антенн
ток утечки в выключенном состоянии до 10 мкА
SDIO 2.0, SPI, UART
STBC, 1×1 MIMO, 2×1 MIMO
A-MPDU & A-MSDU aggregation & 0.4?s guard interval
пробуждение и посыл пакетов за время до 22 мс
потребление в режиме Standby до 1.0 мВт (DTIM3)
размеры: 24.5х14 мм
Выводы:
Vcc — питание, +3,3В (максимально 3,6В)
GND — общий
TXD — передача данных (уровень 3,3В)
RXD — приём данных (уровень 3,3В)
CH_PD — выключение модуля (низкий уровень активный, для включения модуля следует подать Vcc)
GPIO0 — вывод общего назначения 0
GPIO2 — вывод общего назначения 2
RST — сброс модуля (низкий уровень активный)
К18
Релейные модули
Комплект: 2 отдельных модуля радиореле и одного пульта с 2 кнопками.
Каждый модуль реле настраивается индивидуально.
..
0.00 р.
Комплект 4 отдельных модуля радиореле и одного пульта с 4 кнопками.
Каждый модуль реле настраивается индивидуально.
Можно настроить на каждом реле
— на какую кнопку пульта реле замыкается
— на какую кнопку пульта реле размыкается
315 МГц
Управляющее напряжение модуля реле 12 вольт
Коммутируемое до..
952.59 р.
• Номинальное коммутируемое напряжение: 120VAC/24VDC
• Максимальное коммутируемое напряжение: 240VAC/60VDC
• Максимальный коммутируемый ток: 3А
• Максимальная коммутируемая мощность: 360VA/90W
• Номинальное рабочее напряжение: 5V
Из схемы видно что сшилд занимает 4,5,6 и 7 выходы arduino, которые со..
203.88 р.
Максимальное напряжение коммутации реле: 250В
Максимальный ток реле: 10А
Управляющее напряжение: 5В
..
228.55 р.
2 независимых реле на переключение; Оптическая развязка; 250В, 10А.
Модуль содержит 2 независимых реле. Каждое реле имеет одну группу контактов на переключение.
Максимальное напряжение реле: 250В
Максимальный ток реле: 10А
Управляющее напряжение: 5В
..
506.45 р.
Технические характеристики
Рабочее напряжение:12 В
Рабочий ток: ..
409.30 р.
Управление 5V
Ток коммутации до 10A. .
674.69 р.
Напряжение питания: 12В
На модуле приемника установлена перемычка для изменения режима работы. В одном положении модуль работает в режиме фиксации- при первом нажатии на кнопку передатчика соответствующее реле замыкается, при повторном- размыкается. В другом положении перемычки модуль работает в реж..
440.29 р.
Модуль содержит 2 независимых реле. Каждое реле имеет одну группу контактов на переключение.
Максимальное напряжение реле: 250В
Максимальный ток реле: 10А
Управляющее напряжение: 5В
Модуль имеет оптическую развязку!
Предусмотрены отверстия для крепления модуля.
Размеры (см) 5.5 x 4.5 x 1.7..
91.65 р.
Данный двухканальный модуль твердотельного реле предназначен для цифрового управления мощными токами домашней или офисной сети на 220В. Не заменим при создании системы «Умного дома».
Твердотельное реле отличается от обычного электромеханического, отсутствием звука смыкания контактов, низким энергоп..
215.78 р.
Рабочая частота 315 МГц
На плате установлена перемычка для выбора ражима работы
1. Реле замкнуто пока удерживается кнопка на пульте
2. Реле замыкается при первом нажатии кнопки на пульте, размыкается при втором нажатии
Напряжение питания модуля: 12В
Коммутируемое напряжение: до 250В
Коммутируемый т..
579.87 р.
Модуль содержит 4 независимых реле. Каждое реле имеет одну группу контактов на переключение.
Максимальное напряжение реле: 250В
Максимальный ток реле: 10А
Управляющее напряжение: 12В
Модуль имеет оптическую развязку!
Предусмотрены отверстия для крепления модуля.
Размеры (см) 7.7 x 5.5 x 2..
169.02 р.
Модуль содержит 4 независимых реле. Каждое реле имеет одну группу контактов на переключение.
Максимальное напряжение реле: 250В
Максимальный ток реле: 10А
Управляющее напряжение: 5В
Модуль имеет оптическую развязку!
Предусмотрены отверстия для крепления модуля.
Размеры (см) 7.7 x 5.5 x 2..
165.89 р.
Данный четырехканальный модуль твердотельного реле предназначен для цифрового управления мощными токами домашней или офисной сети на 220В. Не заменим при создании системы «Умного дома».
Твердотельное реле отличается от обычного электромеханического, отсутствием звука смыкания контактов, низким энер..
378.34 р.
Модуль 8-и реле 12 Вольт
Описание:
Модуль использует реле подлинного качества, обычно открытые интерфейсы
Использование изоляции оптопары SMD, способности вождения, стабильной работы
Модуль может быть высоким или низким с помощью триггера настройки перемычки
Отказоустойчивая конструкция, даже если ..
314.02 р.
Модуль 8-и реле 5 Вольт
Характеристики
Напряжение питания: 5 В
Потребляемый ток: 15 мА — 20 мА
Сигнал включение: 0 В (низкий уровень)
Количество реле: 8 шт.
Тип реле: электромеханическое
Номинальный ток нагрузки: 10 А
Напряжение коммутации: до 250 В (переменный) и 30 В (постоянный)
Входной сигнал ц. .
308.84 р.
Модуль 8 реле
Каждое реле имеет развязку через оптопару.
Напряжение управления: 5В
Максимальное коммутируемое напряжение: 250В
Максимальный коммутируемый ток: 10А
Каждое реле имеет одну пару контактов на переключение..
441.18 р.
Данный модуль без пульта в комплекте
Управляющее питание: 12В
Коммутируемое напряжение до 250V 5A
Программируемый радиомодуль реле на частоту 315 МГц..
0.00 р.
Напряжение питания: 12В
Перемычкой на плате выбирается режим работы:
1. модуль работает в режиме без фиксации- реле замкнуто, пока нажата кнопка на передатчике, как только она отпускается — реле размыкается.
2. модуль работает в режиме с фиксацией. Первое нажатие на нопку пульта замыкает реле, вто..
388.17 р.
Модуль содержит одно реле. Реле имеет одну группу контактов на переключение.
Напряжение питания: 12 В
Потребляемый ток: 5 мА
Максимальный ток: 80 мА
Управляющий ток: 2 — 4 мА
Сигнал включения: выбирается перемычкой
Количество реле: 1 шт. (SRD-12VDC-SL-C)
Тип реле: электромеханическое
Номинальный то..
54.75 р.
Модуль содержит одно реле. Реле имеет одну группу контактов на переключение.
Максимальное коммутируемое напряжение реле: 250В
Максимальный ток реле: 10А
Управляющее напряжение: 5V
Управляющий сигнал: Логический «0»
Светодиоды для индикации состояния реле
. .
51.04 р.
Модуль содержит 8 реле.
Реле включается только при удержании соответствующей кнопки на ИК пульте.(кнопки 1 — 8), при удержании кнопки «0» включаются все реле.
Каждое реле имеет одну группу контактов на переключение.
Каждым реле можно управлять не только с помощью ИК пульта, но и обычным управляющим ..
566.00 р.
Модуль реле с радиоуправлением.
Напряжение питания модуля: 12В
Частота радиосвязи: 433 МГц
Радиус действия: до 30м
Коммутируемое напряжение: до 250 В
Коммутируемый ток: до 10 А..
388.52 р.
Модуль реле с радиоуправлением.
Напряжение питания модуля: 12 В
Частота радиосвязи: 433 МГц
Радиус действия: до 30м
Коммутируемое напряжение: до 250 В
Коммутируемый ток: до 10 А..
422.24 р.
Как сделать машинку на радиоуправлении Ардуино через bluetooth своими руками
Это первый роботизированный проект, который я когда-либо делал, и если вы никогда не пробовали собрать робота, то, скорее всего, думаете что это сложно. Но Ардуино и шасси 2WD / 4WD сделают вашу сборку намного проще, и вы соберете своего первого робота с радиоуправлением на Ардуино без каких-либо мучений.
По пути ко мне пришла идея о создании радиоуправляемой машины своими руками, которая бы объезжала препятствия, поэтому я собрал и этот проект, видео и файл программы к которому прикладываю ниже.
Файлы
Шаг 1: Нужные части и инструмент
Я воспользовался готовыми решениями, и все запчасти и инструменты были приобретены через интернет.
Запчасти:
- Набор шасси 4WD для робота (GearBest)
- Arduino Nano (GearBest)
- Модуль H-моста LM298 (GearBest)
- Модуль bluetooth HC-06 (Amazon)
- Литий-ионные батарейки 2 x 18650 (GearBest)
- Отсек для батареек 2x 18650 (GearBest)
- Небольшая макетная плата (GearBest)
- Провода сечением 0.5 мм2
- Провода с джамперами папа-мама (Amazon)
- Провода с джамперами мама-мама (Amazon)
- Малярная лента, изолента или что-то подобное (Amazon)
Для робота, объезжающего препятствия:
Ультразвуковой модуль измерения расстояния HC — SR04 (GearBest)
Необходимый инструмент :
- Паяльник (Amazon)
- Кусачки (Amazon)
- Стриппер для провод (GearBest)
- Клеевой пистолет (GearBest)
Шаг 2: Что такое робот?
Робот – это электромеханическое устройство, которое способно каким-либо образом реагировать на окружающую обстановку и принимать самостоятельные решения или действия, чтобы достичь определенных целей.
Робот состоит из следующих компонентов:
- Структура / Шасси
- Привод / Мотор
- Контроллер
- Вводные устройства / Датчики
- Источник питания
В следующих шагах я опишу каждый из этих компонентов, и вы всё легко поймёте.
Шаг 3: Структура / Шасси
Структура состоит из физических компонентов. Робот имеет один или несколько физических компонентов, которые каким-либо образом двигаются для выполнения задания. В нашем случае структура робота – это шасси и колёса.
Шаг 4: Приводы
Под приводом можно понимать устройство, которое преобразовывает энергию (в робототехнике под энергией понимается электрическая энергия) в физическое движение. Большинство приводов производят вращательное или линейное движение.
В нашем случае привод – это DC-мотор, скорость которого равна 3000 оборотам в минуту, а вращающий момент 0.002 Н•м. Теперь добавим к нему шестерню с передаточным числом 1:48. Новая скорость уменьшается на коэффициент 48 (в результате давая 3000/44 = 68 оборотов в минуту) и вращающий момент увеличивается на коэффициент 48 (в результате давая 0.002 x 48 = 0.096 Н•м).
Шаг 5: Подготавливаем клеммы моторчиков
Отрежьте по 4 провода красного и черного цвета длиной примерно 12-15 см. Я использовал провода сечением 0.5 мм2. Оголите концы проводов. Припаяйте провода к клеммам моторчиков.
Вы можете проверить полярность моторчиков, соединив их с отсеком для батареек. Если он движется в прямом направлении (с красным проводом на позитивной и черным на негативной клеммах батареек), то с соединением все в порядке.
Шаг 6: Устанавливаем мотор
Прикрепите две акриловые распорки к каждому мотору при помощи двух длинных болтов и двух гаек. Для наглядности вы можете посмотреть видео.
Возьмите на заметку, что провода на каждом моторе ведут к центру шасси. Соедините оба красных и оба черных провода от моторов с каждой стороны шасси. После соединения у вас будет две клеммы на левой стороне и две на правой.
Шаг 7: Устанавливаем крышу
Послу установки 4 моторов нужно установить крышу. Приладьте 6 медных стоек при помощи гаек, клеммы проводов выведите сквозь отверстие в крыше.
Шаг 8: Контроллер
Теперь у нас установлены шасси и приводы, но нам не хватает контроллера. Шасси без контроллера никуда не поедут. Робот будет оставаться на месте, оставаясь безжизненным. Поэтому, для того чтобы робот перемещался, нам нужен мозг (контроллер).
Контроллер – программируемое устройство, способное работать по заданной программе и отвечающее за все вычисления, принятие решений и коммуникацию. В нашем случае в качестве контроллера мы используем микроконтроллер Ардуино Нано.
Контроллер принимает входные данные (с датчиков, удалённо и т.д.), обрабатывает их и затем даёт команду приводам (моторам) выполнить выбранное задание.
Если вы подключите позитивный провод от батарей на одну строну моторчика, затем подключите негативный провод от батарей на другой контакт моторчика, то он начнёт крутиться вперёд. Если вы поменяете провода местами, то мотор начнёт вращаться в другую сторону.
Микроконтроллер можно использовать, чтобы вращать мотор в одном направлении, но если вам хочется с помощью микроконтроллера вращать мотор и вперёд, и назад, то вам нужна дополнительная схема – H-мост. В следующем шаге я объясню, что это такое.
Шаг 9: Н-мост (модуль LM 298)
Что такое Н-мост?
Термин Н-мост произошел от типичного графического представления этой схемы. Это схема, которая может вращать мотор как в прямом, так и в обратном направлении.
Принцип работы:
Посмотрите приложенную картинку для понимания принципа работы схемы Н-моста. Мост состоит из 4 электронных выключателей S1, S2, S3, S4 (транзисторы / MOSFET/ IGBTS).
Когда выключатели S1 и S4 закрыты, а остальные два открыты, положительное напряжение будет проходить через мотор, и он будет вращаться в прямом направлении. Таким же образом, когда закрыты выключатели S2 и S3, а S1 и S4 открыты, обратное напряжение будет даваться на мотор и он начнёт вращаться в обратном направлении.
Заметка: выключатели на одной руке (то есть S1, S2 или S3, S4) никогда не закрываются одновременно – это создаст короткое замыкание.
Н-мосты доступны в виде интегральных схем, либо можно собрать свой мост при помощи 4 транзисторов или MOSFET. В моём случае используется интегральная схема Н-моста LM298, которая позволяет управлять скоростью и направлением моторов.
Описание распиновки:
Out 1: DC мотор 1 «+» или шаговый двигатель A+
Out 2: DC мотор 1 «-» или шаговый двигатель A-
Out 3: DC мотор 2 «+» или шаговый двигатель B+
Out 4: вывод мотора B
12v: вход 12V, но можно использовать от 7 до 35V
GND: Земля
5v: выход 5V, если джампер 12V стоит на месте, идеально для питания Arduino (и т.п.)
EnA: позволяет получать сигналы PWM для мотора A (Пожалуйста, прочитайте секцию «Arduino Sketch Considerations»)
IN1: включает мотор A
IN2: включает мотор A
IN3: включает мотор B
IN4: включает мотор B
BEnB: позволяет получать сигналы PWM для мотора B (Пожалуйста, прочитайте секцию «Arduino Sketch Considerations»)
Шаг 10: Входы / Датчики
В отличие от людей, роботы не ограничены лишь зрением, звуком, осязанием, обонянием и вкусом. Роботы используют различные датчики для взаимодействия с внешним миром.
Датчик – это устройство, которое выявляет и отвечает на определенные типы входящей информации из окружающего мира. Этой информацией может быть свет, тепло, движение, влажность, давление или любое другое явление окружающей среды.
Входящие сигналы могут идти от датчиков, удалённо, или со смартфона. В этом руководстве я использую смартфон в качестве девайса, отправляющего сигналы, управляющие роботом.
Шаг 11: Источник питания
Чтобы управлять приводами (моторами) и питать контроллер, роботу нужен источник питания. Большинство роботов питается от батарей. Когда мы говорим о батареях, то имеем в виду множество вариантов:
- Алкалиновые батарейки AA (не заряжаются)
- Никель-металгидридные или никель-кадмиевые батарейки AA (заряжаются)
- Литий-ионные батареи
- Литий-полимерные батареи
В зависимости от ваших нужд, нужно выбрать подходящий вид батарей. По-моему мнению, нужно всегда выбирать заряжаемые батареи достаточной ёмкости. Я использовал 2 литий-ионные батареи стандарта 18650 ёмкостью 2600mAh. Если для автономности вам нужно больше мощности, используйте большой комплект батарей, например 5A turnigy.
Отсек для батарей:
Отсек для батарей я заказал в Китае, он не подходил для батарей с плоским верхом, поэтому я использовал два неодимовых магнита для придания батарейкам нужной формы.
Зарядка:
Для зарядки батарей нужен хороший зарядник. По моему опыту, эти зарядники хорошо зарекомендовали себя:
- PowerEx AA Charger-Analyzer (Amazon)
- XTAR LiIon Battery Charger (Amazon)
- Turnigy LiPo Battery Charger (Amazon)
Шаг 12: Установка компонентов
Цельная схема устанавливается на крыше. Отсек для батарей, драйвер двигателей LM 298 и маленькую макетную плату я закрепил горячим клеем, но можно просто прикрутить их. Модуль bluetooth закрепляется скотчем. Ардуино нано вставьте в макетную плату.
Шаг 13: Электропроводка
Для соединения модулей понадобятся провода с джамперами.
Соедините красные провода двух моторов вместе (на каждой стороне) и затем черные провода. В итоге у вас выйдет по две клеммы с каждой стороны.
MOTORA отвечает за два правых мотора, соответственно два левых мотора соединены с MOTORB.
Для соединения всех компонентов следуйте инструкции:
Соединение моторов:
Out1 -> красный провод левостороннего мотора (+ )
Out2 -> черный провод левостороннего мотора ( — )
Out3 -> красный провод правостороннего мотора ( + )
Out4 -> черный провод правостороннего мотора ( — )
LM298 — > Arduino
IN1 -> D5
IN2-> D6
IN2 ->D9
IN2-> D10
Модуль Bluetooth -> Arduino
Rx-> Tx
Tx ->Rx
GND -> GND
Vcc -> 3.3V
Питание
12V — > красный провод батарей
GND -> черный провод батарей и пин GND на Arduino
5V -> соедините с пином 5V Arduino
Шаг 14: Логика управления
Чтобы понять принцип работы, я создал эту логическую таблицу. Она очень пригождается во время написания кода.
Шаг 15: Софт
Часть с фотом очень проста, она не требует никаких библиотек. Если вы поняли таблицу логики из прошлого шага, то сможете написать свой код. Я не тратил на код много времени и просто скопировал чей-то готовый вариант. Чтобы управлять роботом-машиной, я использую смартфон, соединённый с контроллером через модуль Bluetooth (HC-06).
Скачайте приложение. После его установки, свяжите телефон с модулем Bluetooth. Пароль «1234». Код Ардуино прикреплён ниже.
Файлы
Шаг 16: Тестирование
Чтобы проверить робота-машину, я положил её на маленькую картонную коробку. Таким образом, колёса будут крутиться, но машинка будет оставаться на месте. Проверьте работоспособность, нажимая все доступные кнопки. Если всё работает, то можно по-настоящему управлять ей.
Заметка: если моторы вращаются в противоположном направлении, то просто поменяйте местами провода.
Шаг 17: Планы на будущее
В этом руководстве я объяснил, как создать простенькую машинку. Дальше я хочу добавить в неё некоторые улучшения. Вы можете присоединить к ней различные датчики, вот некоторые идеи:
- Добавление ультразвукового датчика для объезда препятствий
- Использование модуля WiFi, например ESP8266 или Node MCU вместо Bluetooth, для удлинения дистанции управления.
- Добавление солнечной панели для зарядки батарей.
esp8266 радиоуправление – شراء esp8266 радиоуправление مع شحن مجاني على AliExpress version
أخبار رائعة! أنت في المكان الصحيح لأجل esp8266 радиоуправление. الآن تعلم بالفعل بأنك، مهما كان ما تبحث عنه، ستجده بالتأكيد على AliExpress. لدينا حرفيًا آلاف المنتجات الرائعة في جميع الفئات. سواء كنت تبحث عن الملصقات الفاخرة أو المشتريات بأسعار مميزة أو بأسعار الجملة الاقتصادية، فإن AliExpress لديه كل هذا.
ستجد المتاجر الرسمية للماركات بجانب البائعين الصغار المستقلين الذين يقدمون الخصومات. وسوف تتمكن كذلك من الاستمتاع بالشحن السريع وأساليب الدفع الموثوقة، بغض النظر عن المبلغ الذي تنوي إنفاقه.
AliExpress يسعى دائمًا لتوفير الأفضل من حيث الاختيار والجودة والسعر. كل يوم ستجد العروض الجديدة عبر الإنترنت فقط وخصومات المتاجر والفرص لتوفير المزيد من خلال جمع القسائم. ولكن ربما عليك التصرف بسرعة لأن المنتجات مثل هذا esp8266 радиоуправление الأفضل أحيانًا تنفد بسرعة كبيرة. فكر كيف سيغار أصدقاؤك عندما تخبرهم بأنك حصلت على esp8266 радиоуправление على AliExpress. من خلال الأسعار المخفضة وأسعار الشحن المنخفضة وخيارات المجموعات المحلية، يمكنك توفير المزيد والمزيد.
إذا كنت لا تزال مترددًا بشأن esp8266 радиоуправление وتفكر في اختيار منتج مشابه، فإن AliExpress مكان رائع لمقارنة الأسعار والبائعين. سوف نساعدك لاتخاذ قرار بشأن جدارة الإصدار الفاخر بدفع المزيد أو عما إذا كنت ستحصل على صفقة مساوية من خلال شراء المنتج الرخيص. وإذا كنت تريد فقط تدليل نفسك والصرف ببذخ على الإصدار الأغلى، فإن AliExpress ستحرص دائمًا على حصولك على أفضل سعر مقابل أموالك، وحتى إخبارك بالموعد الذي يستحسن فيه أن تنتظر بدء العرض الترويجي، والتوفيرات التي يمكنك توقعها.
يفتخر AliExpress بالحرص منحك الخيار عن دراية بشأن موعد الشراء من أحد مئات المتاجر والبائعين على منصتنا. كل متجر وبائع مصنف لخدمة العملاء والسعر والجودة بناءً على آراء عملاء حقيقيين. بافضافة إلى ذلك، يمكنك العثور على تصنيفات المتاجر أو البائعين، بالإضافة إلى مقارنة الأسعار أو عروض الشحن والخصومات على المنتج ذاته من خلال قراءة تعليقات ومراجعات المستخدمين. كل عملية شراء مصنفة بنجوم وكثيرًا ما تحتوي على تعليقات العملاء السابقين، ويصفون فيها تجربة التعامل بحيث يمكنك الشراء بثقة في كل مرة. باختصار، لا يتعين عليك أن تستمع إلينا — فقط استمع إلى الملايين من عملائنا السعداء.
وإذا كنت جديدًا على AliExpress، فسوف نطلعك على سر. قبل أن تنقر فوق «شراء الآن» مباشرة في المعاملة، انتظر لحظة للتحقق من وجود قسائم — وسوف توفر المزيد والمزيد. اكتشف قسائم المتاجر أو قسائم AliExpress، أو اجمع القسائم كل يوم من خلال لعب الألعاب على تطبيق AliExpress. ولأن معظم البائعين لدينا يوفرون الشحن المجاني — نعتقد بأنك ستتفق معنا بأنك تحصل على esp8266 радиоуправление بأحد أفضل الأسعار عبر الإنترنت.
لدينا دائمًا أفضل التقنيات وأحدث الصيحات والعناوين الأكثر شهرة. على AliExpress، تتوفر الجودة والسعر والخدمة الرائعة بشكل قياسي — كل مرة. ابدأ أفضل تجربة تسوق مررت بها من قبل هنا.
Простая радиоуправляемая машина с Wi-Fi
Если бы вы сказали мне несколько лет назад, что вы сможете модифицировать радиоуправляемую машину, чтобы дать ей Wi-Fi, чтобы вы могли управлять через веб-страницу с помощью телефона, и что это будет стоить меньше 8 евро, я бы вам не поверил! Но сейчас прекрасное время для творчества!
Вышеупомянутое не только возможно, это еще и довольно простой проект! Некоторое время назад я делал прямую трансляцию добавления элементов управления Wi-Fi в игрушечную машину, и хотя я доволен тем, как прошла трансляция, я думал, что могу сделать проект еще проще.
Итак, я постарался сделать это руководство как можно более простым, пайка не потребуется, и я предоставлю весь код и шаги, чтобы сделать этот проект для себя.
Приступим!
Шаг 1. Детали, которые нам понадобятсяКак уже упоминалось, я хотел сделать этот проект максимально простым, чтобы на самом деле не нужно было много.
Очевидно, сначала нам понадобится машина. Если вы находитесь в Великобритании или Ирландии, вы можете получить точную машину, которую я получил, в Smyths Toys (10 евро на момент написания).У них также есть Subaru, которую я использовал в прямом эфире, это такая же машина, за исключением корпуса.
В принципе, любая машина с дистанционным управлением должна работать, но чем больше, тем лучше (чтобы мы могли разместить все внутри). Также убедитесь, что он имеет полный диапазон движений (рулевое управление и вождение). Магазины подержанных автомобилей могут быть хорошим местом для поиска ненужных автомобилей с дистанционным управлением. Примечание: чтобы сохранить проект без пайки, вам, вероятно, понадобится автомобиль с проводным пультом дистанционного управления!
Для внутренней части автомобиля нам понадобится следующая плата разработки NodeMCU ESP8266
- * — Если вы не знакомы с ESP8266, это совместимая с Arduino плата со встроенным Wi-Fi, мне она нравится! Существует несколько типов плат NodeMCU, два наиболее распространенных показаны на 3-м рисунке, убедитесь, что вы выбрали правильный! (меньший).
- NodeMCU Motor Shield * — Это действительно хорошая плата с микросхемой драйвера двигателя L293D, в которую просто вставляется NodeMCU. Есть винтовые клеммы для подключения к двигателям, и есть кнопка для включения и выключения
- 6 X батарейный отсек AA * — Вы также можете использовать какой-либо другой источник питания (например, батарею RC), но просто убедитесь, что он полностью заряжен менее 10 В. Этот аккумулятор также довольно большой, если ваш автомобиль меньше, вы можете попробовать вместо него 4x AA.
Вы можете повторно использовать имеющийся слот аккумулятора автомобиля, если используете автомобиль с дистанционным управлением без проводов.
- Блок перемычек * — Перед покупкой проверьте, есть ли у вас старые жесткие диски IDE или приводы компакт-дисков, поскольку они будут иметь один из них. В противном случае вы можете купить этот пакет из 60 штук за 1 евро с доставкой!
* = Партнерские ссылки
Шаг 2: Подготовка автомобиляПервое, что мы хотим сделать, это открыть машину. Очевидно, все будет по-другому, если вы возьмете другую машину, чем моя!
У меня было 4 винта внизу машины, два сзади и два спереди.Отвинтите их. После снятия оболочки вы должны увидеть два мотора.
Проводной пульт дистанционного управления:Если у вас есть проводной пульт дистанционного управления, такой как у меня, вы также должны увидеть 4 провода, обрежьте его, оставив немного провисания, может быть, 6-8 дюймов или около того (позже легко отрезать больше, сложнее поставить его обратно!).
Затем вы хотите зачистить полдюйма или около того с концов всех 4 проводов.
Удаленный без проводов:Удаленные автомобили без проводов будут иметь два двигателя, такие же, как и проводные, но подключенные к ним провода, вероятно, слишком короткие, чтобы их можно было использовать.Возможно, вам придется припаять новый более длинный провод к двум клеммам каждого двигателя. Я лично этого не делал, поэтому не могу предложить никаких предложений или советов. Вы также можете попробовать удалить как можно больше схем, кроме двигателей. Примечание. Для экономии места можно повторно использовать аккумуляторный отсек автомобиля (а также упростить замену аккумуляторов)
Шаг 3: Сборка схемыА теперь мозги по эксплуатации, схемотехнике!
Вставьте плату NodeMCU в моторный щит, но обратите внимание на направление.На моторном щите нарисована антенна, убедитесь, что антенна NodeMCU (золотые линии) совпадает с маркировкой. Если вставлен правильно, слот micro USB должен находиться рядом с винтовыми клеммами.
Затем нам нужно прикрепить маленькую перемычку. Между кнопкой питания и винтовыми клеммами есть перемычки, вам нужно подключить два контакта с маркировкой VIN и VM. Подробности смотрите на втором фото.
Теперь мы хотим подключить аккумуляторный отсек. Возьмите красный провод из держателя аккумулятора и подключите его к винтовой клемме VIN.(Причина, по которой мы используем терминал VIN, заключается в том, что кнопка питания включает и выключает его). Подключите черный провод к любой из клемм GND.
Если вы вставите батареи в держатель и убедитесь, что все включено, вы увидите несколько светодиодных индикаторов на NodeMCU и Motor Shield.
Шаг 4: Установка двигателейПоместите моторный щит на заднюю часть аккумуляторной батареи, которая выдвигается. Я рекомендую прикрепить его с помощью blu-tac или другого непостоянного способа, чтобы он оставался на месте.Затем снова прикрепите аккумулятор к автомобилю с помощью blu-tac. (Когда вы довольны автомобилем, вы можете использовать горячий клей, чтобы все удерживать.)
Далее мы хотим соединить моторы с моторным щитом. Подключите провода от мотора рулевого управления к винтовым клеммам, обозначенным A + и A-. Неважно, какой провод идет к + или — на данный момент (мы еще вернемся к этому). Приводной двигатель, очевидно, затем подключается к клеммам B + и B-.
Если вам трудно вставить провод в клемму, попробуйте вставить головку отвертки в то место, где будет проходить провод. Там есть металлическая деталь, которая иногда может немного застрять.(См. 5-е изображение для более подробной информации)
И это практически завершение строительства! Затем мы запрограммируем плату, чтобы начать ее тестирование!
Шаг 5: Программирование платы Если вы никогда раньше не использовали ESP8266 или Arduino, нам потребуется немного настроить программное обеспечение. У меня есть для этого специальный видеоролик. Он длится всего 5 минут и включает в себя все, что вам нужно для настройки. Когда вы смотрите это видео, вы хотите установить драйвер CP2102.
Если видео вам не по душе, ознакомьтесь с уроком 2 потрясающего класса IoT от Бекки, в нем также рассказывается обо всем, что вам нужно.
Перед тем, как перейти к оставшейся части этого шага, вы должны иметь возможность загрузить простой набросок на свой ESP8266 (например, пример мигания, упомянутый как в видео, так и в уроке Бекки)
———- —
Сначала нужно отключить питание платы от батареек (нажать кнопку на моторном щите, свет должен погаснуть). Затем вы хотите подключить кабель micro USB к плате NodeMCU, как показано на рисунке. Затем вы хотите загрузить код для этого проекта с моего Github.Нажмите кнопку «Клонировать» или «Загрузить», а затем «Загрузить архив». Извлеките этот zip-файл, когда он будет загружен. Теперь откройте Arduino IDE, затем нажмите File -> Open, перейдите туда, где вы только что извлекли zip-архив сверху, и откройте файл MotorWeb.ino. Вам нужно будет внести только одно изменение в этот файл, и это для обновления SSID и пароля для вашего Wi-Fi. Когда вы внесете это изменение, загрузите его на свою доску.
Шаг 6: Элементы управленияМы почти готовы опробовать эту штуку! На данный момент оставьте кабель Micro USB подключенным.В среде Arduino IDE откройте монитор последовательного порта (если вы не уверены, как я отметил его на первой фотографии). Установите скорость передачи данных на 115200. Нажмите кнопку сброса на плате NodeMCU, после того, как она подключится к Wi-Fi, вы должны увидеть IP-адрес устройства, отображаемый на экране.
На телефоне или компьютере откройте веб-браузер и введите IP-адрес в адресную строку. Вы должны увидеть веб-страницу, похожую на ту, что на моем втором изображении. Теперь нам нужно проверить, правильно ли подключены двигатели.Сначала нажмите кнопки Drive и Back, машина ехала правильно? Если нет, вы можете либо поменять местами проводку, либо легко исправить это в программном обеспечении, найдите drive_direction и переключите его с ВЫСОКОГО, измените его на НИЗКИЙ.
То же самое относится и к рулевому управлению, за исключением того, что вы меняете местами переменную steer_directions.
Когда вы будете довольны его работой, отключите кабель micro USB и нажмите белую кнопку на моторном щите. Подождите несколько секунд и попробуйте подключиться к тому же IP-адресу, что и раньше.ПРИМЕЧАНИЕ: ваш автомобиль будет работать значительно быстрее при работе от аккумуляторов, потому что напряжение намного выше, поэтому будьте осторожны, не сгоняйте его со стола!
Шаг 7: Развлекайтесь!И все! Вы успешно создали радиоуправляемую машину с Wi-Fi! Посмотрите короткое видео, в котором я пытаюсь рассердить этим своих собак! Черная Гаоитэ не слишком любит это, но Риггинсу все равно!
Я получил массу удовольствия от этого проекта, и я надеюсь, что он окажется для вас полезным или интересным.Как всегда, если у вас есть какие-либо вопросы или комментарии, я хотел бы их услышать!
Счастливого творения всем!
Brian
Как управлять радиоуправляемым автомобилем через WiFi с помощью ESP8266
Некоторое время назад я купил свою первую Ардуино. У меня есть несколько лет опыта работы в качестве разработчика программного обеспечения, но мои знания в области электроники довольно минимальны. Для своего первого проекта я решил управлять дешевой радиоуправляемой машиной с помощью платы Arduino. Это было сделано путем подключения платы к контроллеру автомобиля и отправки команд с моего ноутбука на Arduino через последовательное соединение.По сути, я сделал исходный контроллер программируемым, и машина по-прежнему будет принимать сигнал на радиоволнах 27 МГц. Начать с этого проекта было относительно легко, потому что мне не нужно было открывать саму машину. Обратной стороной является то, что каждый раз, когда я хочу покататься на машине, мне нужно подключить свой ноутбук к Arduino, а затем подключить его к контроллеру. Этот пост о моем следующем проекте, в котором я начал управлять радиоуправляемой машиной через Wi-Fi.
Отказ от контроллера
Чтобы упростить настройку, я решил избавиться от оригинального передатчика.Мой план состоял в том, чтобы не свешивать лишние провода с моего ноутбука, а использовать сам ноутбук в качестве передатчика. Это оставило мне 2 возможности — Bluetooth или WiFi. Я решил выбрать последнее, потому что хотел попробовать работать с чипом ESP8266. Это недорогой WiFi-чип с полным стеком TCP / IP и возможностью микроконтроллера.
Зачем использовать ноутбук в качестве передатчика?
Если честно, это не обязательно должен быть ноутбук. Ведь одновременно держать ноутбук и управлять автомобилем немного неудобно.Но если я смогу сделать радиоуправляемую машину управляемой программно, я смогу использовать и другие устройства, подключенные к Wi-Fi (например, смартфон). Для начального прототипа я считаю разумным протестировать связь с ноутбуком.
микросхема ESP8266
Они бывают разных форм и размеров. Для своего проекта я выбрал SparkFun ESP8266 Thing.
потому что контакты разбиты на два параллельных ряда, совместимых с макетной платой, и поставляется с литий-полимерным аккумулятором, который полезен, поскольку RC-автомобиль не подключен к источнику питания.Thing можно даже запрограммировать с помощью Arduino IDE, установив надстройку ESP8266 Arduino.
Первоначальный план
В целом установка должна быть простой. ESP8266 будет размещен внутри автомобиля. И плата, и мой ноутбук будут подключены к одной и той же сети Wi-Fi, чтобы они могли свободно общаться друг с другом. Нажатие клавиш со стрелками (или клавиш WASD) заставит автомобиль поворачивать или двигаться.
Начало работы
Как упоминалось ранее, в моем первом проекте я не открывал машину.Очевидно, что если я хочу начать использовать чип ESP8266, мне придется поместить его в машину. Итак, я пошел искать отвертку.
Открыв машину, я обнаружил, что в ней используется стандартный набор микросхем RX-2 / TX-2, который используется во многих дешевых радиоуправляемых игрушках. Кроме того, автомобиль был оснащен двумя двигателями постоянного тока для движения и рулевого управления, а также светодиодными фарами. После удаления оригинальной печатной платы внутри автомобиля осталось достаточно места, чтобы разместить в ней плату ESP8266.
Вид изнутри автомобиля, чип RX-2 / TX-2 удален
Управление двигателями
Я не могу просто подключить к ESP8266 провода питания и заземления и надеюсь, что двигатель постоянного тока заработает.Во-первых, микросхема может выдавать только 3,3 В, но для двигателей требуется более высокое напряжение. Во-вторых, мне нужно контролировать направление вращения двигателей, что означает изменение полярности. Для питания я собираюсь использовать оригинальные батареи, которые устанавливаются под автомобилем, но чип ESP8266 будет питаться от LiPo-аккумулятора, входящего в комплект SparkFun ESP8266 Thing. Для управления двигателями я решил использовать держатель с двумя двигателями Pololu DRV8833. Он позволяет мне изменять направление вращения и, как следует из названия, может работать с двумя двигателями.
3 батареи по 1,5 В, установленные под автомобилем, питают двигатели постоянного тока
Настройка привода двигателя
Чтение руководства от Pololu помогло мне понять, как использовать драйвер двигателя. У них есть отличные схемы и описания для каждой булавки. Ниже представлена электрическая схема, предоставленная Pololu. Аннотации, выделенные красным, предназначены для описания некоторых частей установки.
Схема подключения Pololu DRV8833
Перед тем, как вынуть паяльник, я протестировал драйвер мотора на макете, чтобы убедиться, что все правильно понял.На тот момент я еще не реализовал код, который в конечном итоге будет управлять автомобилем. Чтобы проверить драйвер, я повернул штыри управления на плате ESP8266 в высокий уровень один за другим, чтобы увидеть, начал ли двигатель вращаться. Когда я получил эту работу, я был готов соединить водитель мотора с моторами в машине.
Тестирование драйвера двигателя на макетной плате и подключение его к автомобилю
Включая другие компоненты
Наконец, я добавил в машину контроллер ESP8266, соединил провода заземления и управления с драйвером двигателя и прикрепил LiPo аккумулятор.Все необходимые компоненты на месте. Осталось только написать код, который будет передавать и принимать команды по Wi-Fi.
Прикреплен LiPo аккумулятор и SparkFun ESP8266 Thing
Логика управления записью
Отладка SparkFun ESP8266 Thing не так проста, как обычная плата Arduino. Вы не можете использовать последовательный монитор, предоставляемый IDE Arduino. К счастью, для этого есть простое решение.
Я протестировал свой исходный код ESP8266 с помощью netcat. Например, следующая команда отправляет автомобилю байт, соответствующий команде поворота направо.Как видите, у автомобиля есть IP-адрес и порт, который он прослушивает.
$ echo -e '\ x03' | netcat 192.168.1.101 1111
Управлять автомобилем с помощью netcat — не весело. Поэтому следующим шагом была реализация небольшой программы на Python, которая обнаруживала нажатия клавиш и отправляла команды по сети в машину. Я использовал старую программу Python, которую написал для своего предыдущего проекта, и перепрофилировал ее, чтобы она могла отправлять команды по сети, а не через последовательное соединение.
Вы можете посмотреть исходный код проекта на Github.
TCP против UDP
Во время первых тестов я обнаружил, что машина не очень отзывчива. Автомобиль продолжал ехать, даже если, например, я отпустил все ключи. Я обнаружил, что это было связано с тем, что связь осуществлялась по TCP. Я предполагаю, что процесс установления связи TCP и подтверждения приводят к некоторым накладным расходам. После того, как я переделал машину для использования UDP, все заработало безупречно.
Конечный результат
Дешевая радиоуправляемая машина (~ 15EUR / ~ 17USD), которая изначально имела только 2 канала (хотя чипсет RX-2 / TX-2 имеет третий неиспользуемый канал), теперь может управляться программно. Не говоря уже о том, что микросхема ESP8266 поддерживает широтно-импульсную модуляцию (ШИМ). Это означает, что я могу контролировать скорость движения машины. Раньше, поскольку у него было только 2 канала, он либо двигался на полной скорости, либо вообще не двигался. Прежде всего, поскольку автомобилем можно управлять по сети, я могу придумывать новые идеи для будущих проектов.Теоретически я мог бы реализовать приложение для смартфона, которое действовало бы как пользовательский контроллер.
Я собираюсь оставить вас с этим видео машины в действии.
Вождение крошечной радиоуправляемой машины через Интернет с использованием ESP8266
Пару месяцев назад мы поставили перед собой задачу создать радиоуправляемую трассу с подключением к Интернету, на которой люди из любой точки мира могли бы управлять настоящими радиоуправляемыми автомобилями в масштабе 1:43 по Интернету в реальном времени — даже если они находятся за тысячи миль от наша гоночная трасса здесь, в Хельсинки, Финляндия.Смотрите видео сборки:
Одна из самых больших проблем, с которыми мы столкнулись в ходе этого проекта, заключалась в том, чтобы найти способ беспроводного управления радиоуправляемыми машинами с удаленного компьютера.
Для этого проекта мы выбрали автомобили SIKU Racing RC в масштабе 1:43. Мы решили пойти с ними, потому что они кажутся довольно прочными, что идеально подходит для бесконечных онлайн-сессий, где люди будут тестировать автомобили в полную силу.
Поскольку мы решили использовать компактные радиоуправляемые автомобили, мы действительно не хотели вносить какие-либо изменения во внутреннюю электронику автомобиля.По этой причине мы изначально планировали попробовать использовать оригинальные платы автомобиля, а также подключать и управлять автомобилями с помощью готовых контроллеров.
Поэтому мы разобрали один из оригинальных контроллеров радиоуправляемой машины и проанализировали плату внутри него. Это был очень стандартный RC-контроллер с частотой 2,4 ГГц, который получал аналоговые команды от входа игроков — нажатые кнопки, вращающее колесо, триггер скорости — и затем отправлял их в радиоуправляемую машину.
Чтобы подключить радиочастотные контроллеры к нашему игровому движку, мы решили использовать Raspberry Pi Model B3 + в качестве нашего сервера для приема и отправки команд.
Затем мы подключили плату Arduino (JOY-iT Mega 2560 R3) к Raspberry Pi, чтобы иметь возможность отправлять текущие сигналы на контроллеры RC. Мы выбрали эту плату, потому что она позволяла нам отправлять сигналы на все 12 контроллеров с одной платы Arduino.
Как уже упоминалось, эти контроллеры принимают и отправляют аналоговые сигналы, поэтому мы добавили в архитектуру преобразователь цифро-аналогового сигнала.
Затем мы припаяли соответствующие кабели к контактам контроллера и создали простую программу, которая отправляет команды с правильными значениями.Смотрите код здесь.
Хотя эта концепция хорошо себя зарекомендовала, когда мы тестировали ее только на одной машине, мы столкнулись с множеством проблем, когда запустили набор из 6 машин одновременно.
Иногда контроллеры теряли связь с автомобилями или каким-то образом посылали командный сигнал совершенно другому автомобилю. Мы возлагали большие надежды на это решение, но поскольку мы хотели подключить больше, чем 1 или 2 машины за раз, это было не для нас.
Мы вернулись к чертежной доске и начали рассматривать возможность замены оригинальной электроники автомобиля.
Когда мы разобрали машину, электроника была довольно простой. Двигатели постоянного тока 2 были подключены к базовой плате электроники, которая передавала и принимала радиочастотные команды с помощью радиочастотного контроллера nrf24l01. Они были подключены с помощью простой вилки JST и легко отсоединялись от платы электроники без отпайки или дополнительных действий.
Как уже упоминалось, машины, которые мы решили использовать, были довольно маленькими, как и платы электроники внутри них. По этой причине наш выбор платы на замену был довольно ограничен — и требовалась плата:
- чип Wi-Fi для подключения к локальной сети
- , чтобы иметь возможность запускать UDP-сервер для получения команд рулевого управления и двигателя ротора
- иметь 2 привода для двигателей постоянного тока
- поддерживает оборудование для 2 выходов ШИМ с частотой несколько килогерц
- аналоговый входной порт для измерения значений потенциометра, используемых для сервопривода
- для хранения специфических параметров автомобилей
- , чтобы поместиться в автомобиле в зависимости от физических ограничений.
Флэш-память
После быстрого поиска в Google мы нашли пару плат на базе ESP-8266, которые могли быть потенциальными кандидатами.
Мы решили использовать Wemos D1 mini pro, поскольку он имел идеальные размеры, чтобы заменить оригинальную плату электроники автомобиля. Однако Wemos D1 mini pro не удовлетворяет требования к аппаратной ШИМ или драйверам двигателя.
Чтобы восполнить недостающие функции, мы добавили моторный щит Wemos, который легко прикрепляется штифтами в стиле шляпы.Этот моторный щит оснащен микроконтроллером на основе STM32, который управляет драйвером мотора Toshiba TB6612 через его аппаратные выходы ШИМ. Связь между ESP-8266 и STM32 происходит через шину I2C с простым протоколом для управления каждым двигателем отдельно.
Вот первый прототип с платой Wemos и моторным щитом. Как видите, пайки было много,
Поскольку мы не хотели делать много пайки, чтобы подключить двигатель радиоуправляемого автомобиля и кабели датчиков к автомобилю, мы напечатали специальную печатную плату со всеми разъемами plug and play.
В итоге мы получили трехслойную архитектуру платы, которая легко вписывалась во внутренние размеры автомобиля.
Теперь идет программная часть…
Интересная вещь, которую мы обнаружили с этими автомобилями, заключается в том, что двигатель рулевого управления был не серводвигателем, а двигателем постоянного тока, который использовал потенциометр для определения угла поворота.
С технической точки зрения, потенциометр и двигатель постоянного тока являются двумя элементами сервопривода, поэтому нам пришлось реализовать небольшую индивидуальную кодировку, чтобы заставить их работать вместе как единое целое.
Для связи с автомобилем мы разработали UDP-сервер на плате Wemos ESP8266. Это позволило нам считывать сигналы с управляющего ПК для управления рулевым управлением и вращением двигателей, а также считывать состояние автомобиля.
Хотя все машины, которые мы использовали, имели одинаковую аппаратную настройку, каждый двигатель работал по-разному при отправке одинаковых значений. Итак, мы вручную откалибровали каждую машину, чтобы определить, какие значения работают лучше всего, а затем сохранили эти параметры во флеш-памяти платы Wemos.Для выполнения калибровки вручную использовались сервер UDP и простой инструмент калибровки из командной строки, который действует как клиент UDP.
Поскольку мы не хотели разбирать автомобили каждый раз, когда нам нужно прошить обновленные значения или параметры, мы также реализовали поддержку обновления OTA для этих плат ESP. Это позволяет нам быстро изменять, тестировать и улучшать средства управления автомобилем с помощью всего пары строк кода.
И это все!
Используя плату Wemos на базе ESP-8266, мы смогли преодолеть проблемы с подключением, которые у нас были с ВЧ-контроллерами, и в то же время получили гораздо лучший доступ к параметрам в автомобиле для простых модификаций, что дало нам полный доступ к настройке автомобиля. .Эти доски Wemos — отличный выбор, когда размер является серьезным ограничением. Это готовое решение, которое может поместиться даже в крошечные размеры радиоуправляемого автомобиля в масштабе 1:43.
Это был определенно более сложный проект, чем мы ожидали, но он определенно стал отличным уроком для команды. Следите за новостями — появятся новые проекты!
Вы можете проверить настройку и конечный результат самостоятельно, играя в игру онлайн.
Дистанционное управление автомобилем через WIFI
Как собрать радиоуправляемую машину с помощью esp8266.
В начале своего рассказа хочу сказать, что я впервые в теме IOT. Я полный новичок, но одно у меня есть желание познать новые технологии.
Месяц назад мой коллега делал презентацию о # esp8266, и я был впечатлен этой маленькой доской. Поэтому я решил, что хочу узнать больше о # esp8266 и подобных вещах.
Я использую Micropython (http://micropython.org/download), это прошивка для плат # esp8266.
Вначале я не недооценивал, как это работает, но я прочитал много веб-страниц и статей об этом.Первый успех, когда я смог включить и выключить светодиод 🙂 Дальше купил датчик расстояния, датчик температуры и влажности ….
Далее я купил двигатель, но ничего не знал о нем. Итак, я купил два двигателя SG90. К сожалению оказалось, что это всего лишь сервомотор 🙁
Потом я читал про двигатели и купил два двигателя и моторный щит (L298N)
Вместе с сыном (7 лет) мы использовали старый кузов автомобиля lego и двусторонний скотч 🙂
В силе?
Затем мы использовали аккумулятор 9В для питания мотора.
Собираем все вместе:
Когда дело доходит до поворота и поворота на бок, я использовал хитрость. Например, если я хотел повернуть налево, я использовал 30% мощности левого двигателя и 80-100% мощности правого двигателя.
Далее подключил красный светодиод и два зеленых светодиода на передней части автомобиля
В консоли Python все работает нормально.
Например, когда я хотел запустить, я набирал ** E.forward () **, когда хотел остановить машину, мне приходилось набирать ** E.stop (). **
Код
Python находится на моем github:
https: // github.com / dgolak / esp8266 / blob / master / main.py
После этого я написал Wi-Fi соединение с моим мобильным телефоном, простой веб-сервер и веб-приложение для управления автомобилем.
Собираем все вместе:
Подводя итоги.
Прекрасно провели время с сыном, сделали простенькую машину с рулевым управлением мобильным телефоном или любыми устройствами с использованием WIFI
источник: https://github.com/dgolak/esp8266/blob/master/main.py
Twitter: http://twitter.com/dawid_golak
ESP32-CAM RC Car с камерой и контроллером мобильного телефона — Robot Zero OneRobot Zero One
Модернизация игрушечной радиоуправляемой машины с ESP32-CAM для управления Wi-Fi и потоковой передачи видео на мобильном телефоне
Это руководство является довольно продвинутым и больше похоже на эксперимент, чем на законченный проект.Надеюсь, есть некоторые идеи и код, из которых можно поучиться, которые могут помочь в подобных проектах.
Я купил дешевую радиоуправляемую машину в местном магазине игрушек с намерением преобразовать обычные радиоуправляемые элементы в систему, использующую микроконтроллер ESP32 для связи по Wi-Fi. ESP32-CAM, используемый в этом руководстве, оснащен Wi-Fi и камерой, поэтому видеопоток можно отправлять из автомобиля.
К сожалению, ESP32-CAM страдает от недостатка полезных контактов. Я нашел только два контакта, которые можно использовать в качестве выходов, поэтому в конструкции были найдены некоторые обходные пути и компромиссы.Один штифт используется для рулевого управления, а другой — для управления скоростью движения вперед.
Обычно, чтобы управлять радиоуправляемым автомобилем, вам нужно иметь возможность установить четыре различных параметра: рулевое управление влево, управление вправо, движение вперед и назад. В машине с радиоуправлением, которую я использовал, нет аналогового рулевого управления, оно просто левое или правое, поэтому я использовал серводвигатель, чтобы нажимать концевые выключатели, чтобы включать и выключать ток на двигатель рулевого управления.
Контроллеру мотора необходимы два свободных контакта, поэтому для управления скоростью может быть отправлен обратный сигнал в дополнение к сигналу ШИМ.Однако после использования одного штифта для рулевого управления на ESP32-CAM остается только один штифт, поэтому, хотя скорость движения вперед можно контролировать, нет никакого способа указать двигателю двигаться в противоположном направлении.
Возможное решение, которое я не исследовал, — это добавить в систему еще один микроконтроллер. Он может получать данные от ESP32-CAM через два доступных контакта и анализировать эти данные в другом Sketch, который выводится через несколько контактов. Например, ESP32-CAM может выводить данные на вывод в диапазоне от 0 до 100, Sketch на втором микроконтроллере интерпретирует данные в диапазоне от 0 до 50 как обратные скорости, а 51-100 как прямые скорости и активирует вывод. булавки соответствующим образом.
Комплектующие для радиоуправляемого автомобиля
Это компоненты, установленные в радиоуправляемом автомобиле. Я использовал 3,3 В для питания ESP32 с понижающим модулем, чтобы напряжение от 4 ячеек AA было более стабильным. Рулевое управление контролируется двумя концевыми выключателями, которые активируют одну или другую сторону двигателя при активации. Концевые выключатели закрываются серводвигателем. Контроллер мотора получает сигнал ШИМ от ESP32 и регулирует скорость мотора.
Увеличенный вид рулевого управления с сервоприводом и концевыми выключателями.Когда переключатели находятся в положении ниже, обе стороны двигателя рулевого управления подключены к отрицательной стороне аккумулятора. Когда сервопривод закрывает концевой выключатель, эта сторона двигателя рулевого управления подключается к положительной стороне аккумулятора.
Я использовал объектив «рыбий глаз» с более длинным кабелем для камеры. Здесь доступны различные сменные камеры: https://es.aliexpress.com/item/32981773363.html
Вот как это выглядит в собранном виде. Красный и черный провода вверху слева обычно подключаются к блоку разъемов питания рядом с двигателем рулевого управления.
Вот как я соединил все это вместе:
Скорость и рулевое управление автомобиля контролируются с помощью сенсорного интерфейса на мобильном телефоне или планшете. Под сенсорным интерфейсом находится изображение с камеры в реальном времени.
RC Car Sketch
Если вы раньше не использовали ESP32-CAM, вам нужно сначала прочитать это руководство — https://robotzero.one/esp32-cam-arduino-ide/, чтобы ознакомиться с ним.
Для этого Sketch необходимо установить библиотеки ArduinoWebsockets и ESPAsyncWebServer…
ESPAsyncWebServer: Я не уверен, нужно ли использовать эту библиотеку, но в процессе разработки этого проекта у меня возникли проблемы с другими библиотеками веб-сервера, поэтому Я закончил с этим.Вам нужно установить его вручную, скопировав в папку библиотек Arduino. https://github.com/me-no-dev/ESPAsyncWebServer
Загрузите код с Github: https://github.com/robotzero1/esp32cam-rc-car/blob/main/esp32cam-rc-car.ino
Переменная index_html_gz в коде предназначена для интерфейса контроллера. Если вы хотите отредактировать этот код, см. Этот учебник: https://robotzero.one/esp32-cam-custom-html/
Код использует веб-сокеты для потоковой передачи данных камеры в браузер:
клиент.
sendBinary ((const char *) fb-> buf, fb-> len)
, а также получать управляющие данные с сенсорного интерфейса на мобильном телефоне или планшете:
void handle_message (WebsocketsMessage msg) {// делать вещи}
Демонстрационное видео проекта
В этом проекте есть большой интерес (кофе!) Я буду работать над более простой версией с 3D-печатным шасси с сервоуправлением для рулевого управления и вперед / назад и местом для ESP32-CAM располагаться без изгиба штифтов и т. д.
Вы также можете найти этот проект на YouTube здесь: https://youtu.be/Bwsh2kLxDmQ
Если вы нашли что-то полезное выше, пожалуйста, скажите спасибо, купив мне здесь кофе …
Ссылки
Сенсорный интерфейс: https : //www.kirupa.com/html5/drag.htm
Просмотры сообщений: 16 966
ESP8266 — Maker Projects
Скетч ArduinoDTX реализует многофункциональный RC, удовлетворяющий все потребности современного передатчика на Arduino.Он основан на полностью цифровом кодировании всей управляющей информации в протоколе miniSSC, а не на использовании кадра PPM. Это полностью цифровое кодирование позволяет передавать по прозрачному последовательному каналу, например Bluetooth, Wifi и XBee. В качестве приемника, например, Будет развернут Bluetooth PiKoder / SSC RX.
Этот цифровой RC-передатчик основан на проекте с открытым исходным кодом arduinorc Ричарда Гуторба и, таким образом, наследует соответствующий полный набор функций, например:
- до 9 пропорциональных каналов (Nano), 6 каналов по умолчанию (Uno)
- до 6 дополнительных цифровых каналов (переключатели)
- 9 моделей памяти
- Переключатель двойной скорости / экспоненты
- Переключатель дроссельной заслонки
- 2 программируемых смесителя
- Регулировка конечной точки, калибровка потенциометра и сервопривода
- Проверка безопасности дроссельной заслонки при запуске
- Опциональная сигнализация низкого напряжения батареи передатчика
- Программируется с Linux или Windows через USB (терминальное приложение)
Исходный скетч arduinorc был изменен и стал скетчем ArduinoDTx, который выводит всю информацию о канале в формате miniSSC, а не в кадре импульсов PPM на выводе D6 Arduino. Каждый раз, когда позиция стика меняется, генерируется сообщение miniSSC. Вывод PPM был полностью удален.
Эскиз ArduinoDTx имеет открытый исходный код и предоставляется через соответствующий репозиторий github в соответствии с условиями Стандартной общественной лицензии GNU версии 3.
Прототип установки: цифровой четырехканальный RC
Схема установки передатчика Arduino Digtial RC
RC-передатчик с четырьмя каналами будет служить прототипом проекта.Как показано на изображении, два джойстика для большого пальца оцениваются Arduino (Pot 1/2 и Pot 3/4 на схеме выше). Подключение к аналоговым выводам Arduino осуществляется через прото-экран. Этот экран также включает переключатель режима и светодиод с соответствующим резистором 270R.
ПДУ рассчитан на работу от батарей. Чтобы гарантировать необходимое минимальное напряжение 6 В для Arduino — даже при использовании аккумуляторов с номинальным напряжением 1,2 В — был выбран держатель для пяти элементов AA.Две боковые панели поддерживают вашу ладонь при работе с пультом дистанционного управления и значительно повышают комфорт пользователя.
Обратите внимание, что порт USB Arduino легко доступен. Это позволяет загружать обновления программного обеспечения, а также настраивать RC для вашего приложения.
Пусконаладочные работы и испытания
Испытательная установка Arduino Digtial RC-передатчик
Для ввода в эксплуатацию RC вы должны загрузить скетч arduinodtx (.ino-файл), который предоставляется через соответствующий репозиторий github.Обратите внимание, что для построения скетча требуется библиотека Arduino TimerOne.
После того, как вы загрузили скетч в Arduino, самый простой способ проверить RC — это построить «проводной пульт дистанционного управления», показанный справа, с использованием оценочной платы PiKoder / SSC. В стандартной конфигурации потенциометры 1-4 будут управлять соответствующими сервоканалами 1-4 PiKoder / SSC.
Если вы хотите настроить свой RC-передатчик, вам следует выполнить шаги, описанные на странице arduinorc.Все команды для программирования arduinorc по-прежнему доступны вам — для получения дополнительной информации обратитесь к (документации по командам arduinorc).
Использование связи Bluetooth
Конфигурация экрана Bluetooth для передатчика Arduino Digtial RC
Вы можете легко настроить цифровой пульт дистанционного управления на Bluetooth RC с помощью ITEAD-Bluetooth Shield, а затем использовать PiKoder / SSC RX в качестве легкодоступного и полностью совместимого 8-канального приемника. Поскольку передача основана на прозрачном последовательном протоколе, никаких изменений в эскизе не требуется, и полный набор функций также доступен для Bluetooth RC.
Настройка передатчика показана на изображении. Перед запуском RC необходимо настроить соединение между модулями Wi-Fi. Пожалуйста, обратитесь к Руководству пользователя PiKoder / SSC RX за подробным описанием.
Использование связи WLAN
Вы также можете легко настроить цифровой пульт дистанционного управления на Wifi RC, добавив преобразователь логического уровня, преобразователь постоянного тока в постоянный, две перемычки в качестве мультиплексоров UART (чтобы можно было программировать радио Wi-Fi) и модуль Wi-Fi ESP8266-01, а затем используйте PiKoder / SSC wRX как доступный и полностью совместимый 8-канальный приемник.Настройка оборудования и программирование радиомодулей Wi-Fi подробно описано в блоге Arduino WLAN RC Transmitter.
Примеры дополнительных приложений
Чтобы увеличить дальность действия вашего радиоуправления, вы можете перейти с Bluetooth на XBee. Настройка описана в блоге радиоуправления XBee на основе Arduino и в примечании к приложению PiKoder / SSC № 3: Связь XBee.
Удаленный приемник — ESPHome
Компонент remote_receiver
позволяет принимать и декодировать любой удаленный сигнал, они могут
например, инфракрасные пульты дистанционного управления или сигналы 433 МГц.
Компонент разделен на две части: концентратор удаленного приемника, который
управляет установкой штифта и некоторыми другими настройками, а также индивидуальными
удаленный приемник двоичных датчиков
который сработает, когда они услышат свой собственный настроенный сигнал.
См. Раздел «Настройка инфракрасных устройств» и «Настройка радиочастотных устройств» для получения инструкций по настройке.
# Пример записи конфигурации удаленный_приемник: контакт: GPIO32 свалка: все
Переменные конфигурации:
контакт (обязательно, контакт): контакт для приема удаленного сигнала.
dump (Необязательно, список): декодируйте и сохраняйте эти удаленные коды в журналах (на log.level = DEBUG).
Установитевсе
, чтобы выгрузить все доступные кодеки:lg: декодирование и дамп инфракрасных кодов LG.
nec: Декодирование и дамп инфракрасных кодов NEC.
panasonic: Декодирование и дамп инфракрасных кодов Panasonic.
pioneer: Декодирование и дамп инфракрасных кодов Pioneer.
jvc: Декодирование и дамп инфракрасных кодов JVC.
samsung: декодирование и дамп инфракрасных кодов Samsung.
sony: Декодирование и дамп инфракрасных кодов Sony.
rc_switch: Декодирование и дамп RF-кодов RCSwitch.
rc5: декодирование и дамп кодов RC5 IR.
raw: распечатать все удаленные коды в исходном виде. Полезно для использования произвольных протоколов.
- Допуск
(необязательно, целое число): процент, на который длина удаленного сигнала может отклоняться в
процесс декодирования.По умолчанию25%
. buffer_size (Необязательно, целое число): размер внутреннего буфера для хранения удаленных кодов. По умолчанию
10 КБ
на ESP32 и1kB
на ESP8266.memory_blocks (Необязательно, целое число): количество используемых блоков памяти RMT. Используется только на платформе ESP32. По умолчанию
3
.фильтр (необязательно, время): отфильтруйте любые импульсы короче этого значения. Полезно для удаления
глюки от зашумленных сигналов.По умолчанию10us
.простоя (необязательно, время): количество времени, в течение которого сигнал должен оставаться стабильным (т. Е. Не
change), чтобы он считался завершенным. По умолчанию10 мс
.id (необязательно, ID): вручную укажите идентификатор, используемый для генерации кода. Используйте это, если у вас есть
несколько удаленных приемников.
Автоматика:
on_jvc (дополнительно, автоматизация): автоматизация, выполняемая, когда
Удаленный код JVC был декодирован.Переменнаяx
типа remote_base :: JVCData
передается в автоматизацию для использования в лямбдах.on_lg (необязательно, автоматизация): автоматизация, выполняемая, когда
Код дистанционного управления LG был декодирован. Переменнаяx
типа remote_base :: LGData
передается в автоматизацию для использования в лямбдах.on_nec (необязательно, автоматизация): автоматизация, выполняемая, когда
Удаленный код NEC был декодирован. Переменнаяx
типа remote_base :: NECData
передается в автоматизацию для использования в лямбдах.on_sony (дополнительно, автоматизация): автоматизация, выполняемая, когда
Код дистанционного управления Sony был декодирован. Переменнаяx
типа remote_base :: SonyData
передается в автоматизацию для использования в лямбдах.on_raw (необязательно, автоматизация): автоматизация, выполняемая, когда
необработанный удаленный код был декодирован. Переменнаяx
типаstd :: vector
передается в автоматизацию для использования в лямбдах.on_rc5 (дополнительно, автоматизация): автоматизация, выполняемая, когда
Удаленный код RC5 был декодирован.Переменнаяx
типа remote_base :: RC5Data
передается в автоматизацию для использования в лямбдах.on_rc_switch (необязательно, автоматизация): автоматизация, выполняемая, когда
Код RCSwitch RF декодирован. Переменнаяx
типа remote_base :: RCSwitchData
передается в автоматизацию для использования в лямбдах.on_samsung (дополнительно, автоматизация): автоматизация, выполняемая, когда
Код дистанционного управления Samsung был декодирован. Переменнаяx
типа remote_base :: SamsungData
передается в автоматизацию для использования в лямбдах.on_panasonic (дополнительно, автоматизация): автоматизация, выполняемая, когда
Код дистанционного управления Panasonic был декодирован. Переменнаяx
типа remote_base :: PanasonicData
передается в автоматизацию для использования в лямбдах.on_pioneer (дополнительно, автоматизация): автоматизация, выполняемая, когда
код дистанционного управления pioneer был декодирован. Переменнаяx
типа remote_base :: PioneerData
передается в автоматизацию для использования в лямбдах.
Двоичный датчик
Двоичный датчик remote_receiver
позволяет отслеживать нажатие кнопки на пульте дистанционного управления.
Каждый раз при получении заранее заданного сигнала двоичный датчик на короткое время включается и
затем сразу ВЫКЛ.
# Пример записи конфигурации удаленный_приемник: контакт: GPIO32 свалка: все binary_sensor: - платформа: remote_receiver имя: «Дистанционный вход Panasonic» панасоник: адрес: 0x4004 команда: 0x100BCBD
Переменные конфигурации:
имя (Обязательно, строка): имя двоичного датчика.
id (необязательно, ID): вручную укажите идентификатор, используемый для генерации кода.
Все остальные опции от двоичного датчика.
Удаленный выбор кода (необходимо указать ровно один из них):
jvc: Запуск по декодированному удаленному коду JVC с заданными данными.
lg: запуск по декодированному удаленному коду LG с заданными данными.
данные (обязательно, целое число): код LG для запуска, см. Вывод дампера для получения дополнительной информации.
нбит (необязательно, целое число): количество бит удаленного кода.По умолчанию
28
.
nec: запуск по декодированному удаленному коду NEC с заданными данными.
адрес (обязательно, целое число): адрес для срабатывания триггера, дополнительную информацию см. В выводе дампера.
command (Обязательно, целое число): команда NEC для прослушивания.
sony: Запуск по декодированному удаленному коду Sony с заданными данными.
данные (обязательно, целое число): код Sony для срабатывания, дополнительные сведения см. В выходных данных дампера.
нбит (необязательно, целое число): количество бит удаленного кода. По умолчанию
12
.
raw: Запуск по необработанному удаленному коду с заданным кодом.
rc5: Запуск по декодированному удаленному коду RC5 с заданными данными.
адрес (обязательно, целое число): адрес для срабатывания триггера, дополнительную информацию см. В выводе дампера.
command (обязательно, целое число): команда RC5 для прослушивания.
samsung: Запуск по декодированному удаленному коду Samsung с заданными данными.
panasonic: Запуск по декодированному удаленному коду Panasonic с заданными данными.
адрес (обязательно, целое число): адрес для срабатывания триггера, дополнительную информацию см.
В выводе дампера.
команда (Обязательно, целое число): Команда.
pioneer: Запуск по декодированному удаленному коду Pioneer с заданными данными.
rc_switch_raw: Запуск по декодированному необработанному удаленному коду RC Switch с заданными данными.
код (обязательно, строка): удаленный код для прослушивания, скопируйте его из вывода дампера. Немного игнорировать
в полученных данных используйтеx
в этом месте кода.(необязательно): используемый протокол RC-коммутатора, для получения дополнительной информации см. Протокол RC-коммутатора.
Протокол
rc_switch_type_a: Запуск по декодированному удаленному коду RC Switch Type A с заданными данными.
группа (Обязательно, строка): Группа, двоичная строка.
устройство (Обязательно, строка): Устройство в группе, двоичная строка.
состояние (обязательное, логическое): состояние включения / выключения для запуска.
(необязательно): используемый протокол RC-коммутатора, для получения дополнительной информации см. Протокол RC-коммутатора.
Протокол
rc_switch_type_b: Запуск по декодированному удаленному коду RC Switch Type B с заданными данными.
адрес (обязательно, целое число): адрес, целое число от 1 до 4.
канал (обязательно, int): канал, int от 1 до 4.
состояние (обязательное, логическое): состояние включения / выключения для запуска.
(необязательно): используемый протокол RC-коммутатора, для получения дополнительной информации см. Протокол RC-коммутатора.
Протокол
rc_switch_type_c: Запуск по декодированному удаленному коду RC Switch Type C с заданными данными.
family (Обязательно, строка): Семья. Диапазон составляет от
до
доp
.группа (Обязательно, int): Группа. Диапазон от 1 до 4.
устройство (обязательно, целое число): устройство. Диапазон от 1 до 4.
состояние (обязательное, логическое): состояние включения / выключения для запуска.
(необязательно): используемый протокол RC-коммутатора, для получения дополнительной информации см. Протокол RC-коммутатора.
Протокол
rc_switch_type_d: запуск по декодированному удаленному коду RC-переключателя типа D с заданными данными.
группа (Обязательно, int): Группа. Диапазон от 1 до 4.
устройство (обязательно, целое число): устройство. Диапазон от 1 до 3.
состояние (обязательное, логическое): состояние включения / выключения для запуска.
(необязательно): используемый протокол RC-коммутатора, для получения дополнительной информации см. Протокол RC-коммутатора.
Протокол
Примечание
Для Sonoff RF Bridge можно использовать этот хак
созданный пользователем GitHub wildwiz.Затем используйте эту конфигурацию для удаленных концентраторов приемников / передатчиков:
удаленный_приемник: контакт: 4 свалка: все удаленный_передатчик: контакт: 5 carrier_duty_percent: 100%
Примечание
Для более эффективного ввода кодов с напрямую подключенным приемником, например tsop38238, вы можете попробовать использовать INPUT_PULLUP :
удаленный_приемник: штырь: номер: D4 инвертированный: True режим: INPUT_PULLUP свалка: все
.