Как стать автором
Обновить

Об управлении esp32-машинками (и не только) через wifi/websocket-ы с помощью пульта на базе смартфона

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров10K
Всего голосов 36: ↑35 и ↓1+46
Комментарии18

Комментарии 18

Нет, пользвался стандартным.

Нет, тогда смартфоны нельзя использовать.

Вот уж намудрили. Ставить step-up на 12 вольт, чтобы затем с помощью ШИМ снижать эффективное напряжение в 100/255 раз (до 4.7 вольт)? При этом у автора еще и контроллер перегревается и драйверы моторов сгореть норовят. Есть же прямой путь - от 5 вольт прекрасно работают и моторы (для управления хватит и транзистора, если реверс не нужен) и esp32. Использовать смартфон для игры тоже неудобно, а во избежание порчи ценного оборудования можно воспользоваться копеечными ИК пультом и приемником (ценой в около половины доллара за комплект на алиэкспресс).

Возможно;-) Но реверс в моём случае был нужен - именно за счёт него и совершался разворот на месте.

Разделять каналы питания идея здравая. Иначе при клине двигателя напряжение может кратковременно просеть так, что сбросится контроллер. Лучше будет в защищаемый перегруз уводить какую-то одну линию питания. Правда так получилось, что здесь роль защиты играют драйверы моторов)

А если вместо HG7881CP взять MX1508 или DRV8833.?

А вместо ESP32 взять ESP8285?

Машинки будут меньше и легче. Батарейка будет дольше работать.

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

В DRV8833 и MX1508 на выходе стоят Low MOSFET ON-Resistance, что обеспечивает меньшее падение напряжения и меньший нагрев.

Можно попробовать вообще esp32 C3 SuperMini;-) Я как раз сейчас на неё активно перехожу - размер у неё существенно меньше стандартной esp32, энергопотребление меньше, на первый взгляд (но надо предметно сравнивать).

Взял себе сначала пару штучек. Сейчас во вкус вошёл - купил ещё 20 штук:-))

Она полностью с обвесом, как и большая, паять ничего не надо - подключай периферию и работай...

esp32 C3  менее избыточен. У него одно ядро.

Но потребляет он больше и размер у него больше, чем у ESP8285.

Если делать очень маленькие, дешевые и экономичные wifi управляемые игрушки( авто), то оптимальным будет ESP8285+.( DRV8833 / MX1508 )

virt2real так вот и начиналась, правда не особо долго прожила

Ага, тоже следил за этим проектом, даже лично общался с автором. Нравятся мне роботы, ничего не могу с этим поделать:-)

Привет,

Веб страничка с органами управления обычно весьма глючна и периодически подвешивает есп (правда я последний раз пробовал на 8266). Есть еще решение wifi to uart bridge. Не знаю, есть ли прошивки на есп32 с таким функционалом, но китайцы раньше продавали готовые платы, смысл а том, что всё, что приходит на вайфай, просто ретранслируется в уарт. Ну а там уже в зависимости от передаваемого символа или мк выполняет действие. Конечно же, только по удп, дабы исключить задержки. Простой, рабочий способ,

Удачи

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

  1. Все таки подобные вещи лучше реализовывать через udp, без всяких веб страниц. Приложение для андройда - довольно простое выйдет, за день можно накидать и отладить.

  2. А где схема машинки?

двух отдельных микроэлектродвигателей с металлическим редуктором (модель N20)

...

Поэтому пришлось искусственно увеличить питающее напряжение до 12 вольт, используя два параллельно подключённых DC-DC преобразователя.

...

В качестве драйвера двигателей использовался простенький HG7881CP ... Например, опытным путём было найдено значение ШИМ, при котором не происходит непрогнозируемого выгорания, в неожиданный момент: так как использовался восьмибитный ШИМ (т.е. из 256 значений), то в нашем случае, оптимальное значение составляло 100.

Вы взяли мотор, номинально рассчитанный на 6В с номинальным током 160мА и потреблением при блокировке в 550мА. И драйвер каждый канал которого может выдать до 800мА. Потом вы даёте на мотор 12В (ШИМ=256), как следствие токи будет выше. Конечно драйвер может и не справиться с всплеском тока в начале движения. ШИМ=100 - это запитка моторов номинальным напряжением, при котором у драйверов есть какой-то запас.

Также, в этой итерации отсутствовало какое-либо выравнивание скоростей двигателей.

...

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

У меня когда не было двигателей с энкодерами я просто калибровал ШИМ на каждый мотор и оно прямо даже очень неплохо ездило)

В конечном итоге, после множества тестов я понял, в чем проблема (прямой езды) и как её решать: даже ШИМ-контроль скорости вращения двигателей не поможет. Причина- несовершенство рамы/самых двигателей. Они устанавливаются тоже не идеально. Соответственно единственный вариант для прямолинейного движения (если не по полу, по нарисованной линии :-) ) - ШИМ дополнить ещё акселерометром/гироскопом.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий