Игрушка управление с планшета

Обновлено: 20.05.2024

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

Clicbot – обучающий робот-игрушка

Clicbot – универсальный программируемый робот-игрушка. Благодаря модульной конструкции робот можно собрать в виде гуманоида, двух и четырех колесной тележки, манипулятора, напоминающего формой и движениями промышленные роботы-автоматы. Имеется 50 предварительно запрограммированных забавных конструкций и множество других вариантов для самостоятельного творчества.

Интерактивный Clicbot способен слушать собеседника и реагировать на его действия. Хотя, он и не предназначен для использования в качестве полностью автономного робота-компаньона, но его поведение может легко программироваться. У Clicbot более 1000 настроек и каждая имеет свои под варианты. Он может ходить, ползать, танцевать, ездить, участвовать в гонках или даже подавать утренний кофе, увлекая детей занятиями по робототехнике и программированию.

Головной блок управления включает акселерометр, гироскоп, датчик расстояния, микрофон, динамик, модуль Wi-Fi. Видеокамера позволяет распознавать лица и образы, команды управления, поддерживает технологию FPV (First-Person View) для телеприсутствия и удаленного наблюдения. Для программирования Clicbot можно использовать графический редактор Google Blockly или язык Python

Bittle – программируемый роботизированный кот

Bittle – это игрушечный аналог роботов от Boston Dynamic. Он чем-то напоминает и другого робота-собаку – Sony Aibo. Но при этом Bittle продается по цене роботизированной игрушки в виде конструктора для самостоятельной сборки.

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

Bittle создан на основе доработанной платы Arduino, для сложных движений использует различные датчики и внешние устройства. Плата управления включает процессор Atmega328P/16 МГц, 2 КБ памяти SRAM и 32 КБ флэш-памяти. Кроме того есть инерциальный измерительный модуль, блок ШИМ для 12 сервоприводов, инфракрасный приемник и зуммер. Есть 4 разъема для модулей расширения.

Bittle – это открытая платформа, позволяющая объединить гаджеты разных производителей в единую систему. Добавить роботу возможности ИИ можно подключением микрокомпьютера Raspberry Pi. Написанная на Python программа может запускаться на Raspberry Pi и других поддерживаемых процессорах, управляя Bittle через проводное или беспроводное соединение.

Для упрощенного программирования есть фреймворк OpenCat. Он определяет минимальную структуру данных и алгоритмы движений для четвероногих роботов. Вы сможете научить Bittle новым навыкам и трюкам, чтобы выигрывать призы в соревнованиях международного сообщества OpenCat.

MOSS – универсальный инструмент для обучения программированию


Комплекты MOSS от компании Modular Robotics – это оригинальный конструктор для создания роботов. Разнообразные по назначению, программируемые кубики (Cubelets) легко комбинируются и позволяют собирать сотни разнообразных роботов.

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

Программировать и управлять роботом можно через Bluetooth с помощью смартфона или планшета с клавиатуры или пульта дистанционного управления.

При первоначальной цели на Кикстартер в $100 000 для финансирования проекта удалось собрать $361 293.

Makeblock Neuron – платформа электронных строительных блоков

Makeblock Neuron – это удобная для сборки программируемая платформа с использованием электронных строительных блоков. Более 30 типов блоков в виде кнопок, джойстиков, сенсоров и датчиков звука, освещенности, температуры, влажности и других параметров позволяют создавать множество оригинальных гаджетов.

Для соединения блоков между собой предусмотрены подпружиненные разъемы с магнитами. Помогает при этом интуитивно понятная система программирования. Каждый блок уже имеет предварительно запрограммированную функцию. Программировать новые функции можно в приложении Neuron или в редакторе mBlock 5. Для беспроводной передачи сигналов управления используются технологии Bluetooth и Wi-Fi.

Проект Neuron от китайской компании Makeblock получил на Кикстартер одобрение 1464 спонсоров, вложивших в развитие этой идеи $367 129.

Thimble: новая электронная игрушка каждый месяц


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

Среди наборов Thimble представлены комплекты для сборки игровых контроллеров, музыкальных синтезаторов, устройств для Умного дома. Можно заняться сборкой более сложных программируемых роботов на микроконтроллере Arduino с управлением через Wi-Fi.

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

Для развития проекта Thimble через Кикстартер собрано $295 760 от 1776 заинтересованных заказчиков.

thimble.io

MarsCat – домашний робот-кот

Полностью автономный, интерактивный MarsCat – идеальный робот-игрушка с программируемыми возможностями. Он может выражать эмоции мяуканьем, движениями тела и глаз. Сделать поведение MarsCat натуральным и выразительным помогают 16 серводвигателей.

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

Моделировать поведение настоящего животного помогают алгоритмы ИИ, реализуемые миникомпьютером Raspberry PI. Приобретенные одним роботом навыки и шаблоны поведения хранятся в отдельном модуле памяти и могут быть легко воспроизведены в другом роботе простой заменой памяти. Программировать поведение робота MarsCat помогает специальный комплект разработчика.

Реализовать проект MarsCat в жизнь помогли 227 спонсоров, вложивших в эту идею через Кикстартер $213 198.

Робот-автомобиль Zumi


Роботизированный автомобиль Zumi помогает детям изучать основы сложных наук, писать программы с использованием блочного кодирования и языка Python. Более опытные программисты смогут создавать программы для уникальных экспериментов с беспилотными автомобилями, научатся проектировать собственные нейронные сети, чтобы обучить Zumi классифицировать объекты и распознавать лица и жесты людей.

В процессе передвижения по трассе Zumi использует Tensor Flow и Open CV – это те же самые программные инструменты, что есть и у настоящих беспилотных автомобилей.

Прототип Zumi был удостоен награды «Лучшая инновация» в категории «Роботы и дроны» на выставке CES 2019

Реализовать проект Zumi в жизнь помогли 888 спонсоров, вложивших в эту идею через $150 091

ROYBI – портативный робот-компаньон с ИИ

ROYBI взаимодействует с повсеместно доступной онлайн-платформой для обучения детей и взрослых. Контролировать и оценивать занятия помогают формируемые роботом отчеты с рекомендациями по улучшению процесса обучения.

ROYBI был включен в США по версии CNBC в список 100 наиболее перспективных стартапов в 2019 году.

Запущенный на платформе Индигого проект ROYBI привлек $120 538

Заботливый Kiki

Kiki – это робот-компаньон для детей и взрослых. Он распознает эмоции и действия собеседника, способен реагировать на них. Робот развивает свои уникальные способности в зависимости от особенностей взаимодействия с окружающим миром, при этом меняется и его поведение.

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

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

Самообучающийся робот Kiki собрал на платформе Кикстартер $105 611.

kiki.ai

Smartipresence – простой робот телеприсутствия


Конструктор Smartipresence поможет создавать собственных недорогих роботов телеприсутствия на основе любого смартфона.

Запущенное на смартфоне приложение поддерживает режим ИИ и позволяет распознавать образы с помощью облачного сервиса. По команде пользователя Smartipresence в сеансе видеосвязи будет сопровождать человека или даже домашнее животное, чтобы его лучше видел удаленный собеседник. Режим действий Smartipresence задается через приложение на смартфоне. Smartipresence можно визуально программировать в среде Scratch, либо с помощью Espruino на основе языка JavaScript.

Этот проект английского инженера Росса Аткина уже поддержали на Кикстартер 186 спонсоров, собравших для запуска проекта $17329.

В этой подборке мы собрали наиболее интересные и перспективные модели детских роботов-игрушек, включающие технологии телеприсутствия, распознавания речи и голоса, автономность действий и поведения на основе ИИ и машинного обучения, которые еще недавно были доступны лишь «взрослым роботам».


Напишите в комментарии, а какие на ваш взгляд наиболее перспективные роботы-игрушки есть на рынке или уже у вас дома?


Нам было интересно сделать такой обзор, чтобы проанализировать какие технологии внедряются в роботов для детей, как решаются задачи human interaction для самой маленькой по возрасту аудитории. Мы в Dragon Tree Labs работаем над системами взаимодействия роботов и людей, интерфейсами в широком смысле, создавая интуитивно-понятные принципы коммуникаций. Это откроет новые возможности для работы, обучения, развлечений и общения, без оглядки на возраст, расстояние, мобильность и физические ограничения пользователей. Читай наш блог и следи за нашими разработками и достижениями.

Будь в курсе последних новостей из мира гаджетов и технологий


Лучшие игрушки, которыми можно управлять со смартфона

Ольга Акукина

Хотите чем-то порадовать ребенка в честь начала учебного года? А, может, своего внутреннего ребенка?) У меня есть два вас интересная тема. Оставим в стороне RC-машинки, вертолетики и даже дроны. Есть гораздо более интересные штуки, управляемые со смартфона.

Brookstone Rover 2.0

Это - ни больше ни меньше - танк-шпион. У него есть камера с опцией ночного видения, фары, микрофон и Wi-Fi (дальность управления до 80 метров). А еще динамики, так что вы можете даже пообщаться с кем-то при помощи этой игрушки. У девайса большие колеса и он круто ездит. Стоит танк около 10 тысяч рублей.

50fbee1b3d77a873c0f69267b6e071e8.jpg

Обратите внимание на эту игрушку, если вам хочется что-то более полезное. Mebo тоже умеет снимать фото/видео и “говорить”, а еще у него 6 вездеходных колес как у трактора и крутая рука-захват. Кроме того, он понимает речевые команды, умеет следовать за хозяином и машет в знак приветствия.

295b557f126c91f00c26c793bd91ed69.jpg

А вот о таком, наверное, не все еще слышали. Речь про управляемую со смартфона подводную лодку с камерой! С ней вы можете почувствовать себя прямо как Жак Ив Кусто (помните его “подводную одиссею”?).

ad4e801c52f2081960b0618ac9751ba6.jpg

Имейте в виду, это не такая уж и “игрушка”. Девайс весит 4,5 кг и работает до 2-х часов от одного заряда.

Под водой W-Fi ловится не слишком хорошо, так что лодка соединяется проводом со специальным модулем. А вы уже передаете команды на этот модуль со смартфона. В комплекте идет 15-метровый кабель, дополнительно можно купить и 23-метровый. А вообще устройство выдержит погружение и на 45 м без проблем.

Отличная вещица для тех, кто любит отдыхать на море, но по каким-то причинам не желает плавать с маской и камерой. Можно греться на солнышке и смотреть на подводные глубины в разрешении HD. Субмарина развивает скорость до 9 км/ч.

Одна проблема - AquaBotix HydroView стоит 5 с лишним тысяч долларов (около 330000 руб.). Но не пугайтесь, профессиональные решения от этого бренда еще дороже.

Без машинок все же никуда. Anki Overdrive это как видеоигра (например, Mario Kart) живьем.

В комплекте изначально две роботизированные машинки, но можно докупить и больше. А еще имеется трек, который можно перестраивать в восьми разных вариантах.
У каждой машинки есть свои особенности и даже “суперсила”. Их можно детально настраивать со смартфона. Одерживая победы на трассе, можно получать баллы и тратить их на обновление возможностей машинки. Играть вдвоем не обязательно - у игры отличный AI.

6f42d628882faca8c5a93319f4bb0fa2.jpg

Гоночная трасса с машинками стоит около 12-13 тысяч рублей.

Есть у компании Anki еще одна крутая игрушка. Этот миниатюрный робот - почти что домашнее животное. Он выражает десятки эмоций - когда ему скучно, грустно, если он злится, устал или наоборот хочет повеселиться и поиграть. Еще робот умеет узнавать людей и радуется им (система на основе искусственного интеллекта). Со временем начинаешь воспринимать девайс как члена семьи!

a5e3c4bc264d8297c6f588eef4f8ae25.jpg

“Лицо” Cozmo - это LCD-панель, а изображение для нее создано профессиональными аниматорами. А еще он круто озвучен (не говорит словами, издает разные звуки). Сразу вспоминается знаменитый мультик про WALL-E.

2ce96d9e15cd7618369f940845dc0b79.jpg

Робот передвигается на гусеничном ходу и имеет своего рода “руки” (как погрузчик), так что он может трогать/двигать предметы. Благодаря системе датчиков, он “видит” препятствия и объезжает их.

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

Все любят лего! И, что радует, в этом сезоне к существовавшим ранее робо-сериям типа Mindstorms добавилась более простая и яркая версия - BOOST. В коллекции доступны робот Верни, кот Фрэнки, сборочная линия, гитара и вездеход. Что немаловажно, всех их можно собрать из набора в 843 стандартных детали LEGO. А можно добавить свои кубики и придумать что-то еще!

d25988b77a03cfa5435714ab59c0db7b.jpg

Еще в комплект входят датчики цвета и расстояния, а также моторчик. Построив конструкцию, ее можно запрограммировать с помощью одноименного приложения от LEGO. Чтобы робот ездил, ходил, танцевал и так далее. Верни, например, умеет даже трясти маракасами и стрелять из пушки по мишени. А кот мурлыкает и играет на гармошке.
Набор LEGO BOOST стоит 160 долларов (в России это превратится в 10-12 тысяч).

Технологии не стоят на месте и индустрия игрушек развивается. На фоне обычных машинок на аккумуляторе и батарейках появляется новый класс, которые управляются с помощью смартфона. В основном это девайсы, которые двигаются, например жук, машина, самолёт и т.п. Технология работает за счёт подключения телефона к игрушке через Bluetooth.

Итак, топ-5 игрушек, которыми можно управлять со смартфона.

Это игрушка в виде цилиндра с закруглёнными концами и резиновыми накладками для плавного передвижения. Она может маневрировать с помощью специального приложения для телефона.


Максимальная скорость передвижения до 22 км/ч. Прочный корпус имеет встроенные светодиоды, которые указывают на уровень заряда батареи. Радиус действия 30 метров.



Умный самолёт

Smart Plane позиционируется как игрушка для детей, но и для взрослых. Это медленно летающий самолёт, который может летать как в помещении, так и на улице. Приложение, которое необходимо для управления, имитирует на экране смартфона кабину и датчики управления по технологии Flight Assist. Ионно-литиевые аккумулятор позволяет автономно летать до 30 минут, затеи требуется подзарядка.



Танк шпион

Если необходимо за кем-то проследить, то танк-шпион придёт на помощь. Он является идеальным инструментом для этой цели. Оснащён потоковой камерой, которая передаёт и записывает живое видео. Машина может беспрепятственно передвигаться на расстояние до 60 метров. В дополнении к этому танк может принимать и передавать звуковые сигналы с помощью микрофона и динамиков.


· микрофон и динамики;

Управляемый жук

Своеобразная игрушка в виде насекомого, которым можно управлять с помощью смартфона. Дизайн довольно реалистичный и хотя имеет большие размеры по отношению к настоящим жукам. Передвигать можно на протяжении 6 метров, с помощью специального передатчика, который вставляется в разъём для наушников. Эта игрушка двигается довольно быстро и может показаться настоящим насекомым.


Внедорожник Brookstone

Это улучшенная версия классической машины на радиоуправлении, которая контролируется с помощью смартфона на расстоянии до 45 метров. Она может не только преодолевать препятствия с помощью шипованных колёс, но и плавать в водоёме. Встроенная камера передаёт изображение в приложение на телефоне.


Интересный факт! Первые радиоуправляемые модели появились еще в 40-е годы прошлого века в Японии.

Стоимость Достоинства Недостатки
13 000 рублей · многофункциональный вездеход;

· лёгкость в управлении;


Игрушки на радиоуправлении через пульты уходят в прошлое. Им на смену приходят машины, самолёты, роботы на управлении с помощью смартфонов. Они могут не только передвигаться, но и обладают дополнительными функциями в виде встроенной камеры, а специальное приложение способно записывать видео.

Персональный боевой робот, управляемый смартфоном (1 видео)

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


Выбираем компоненты

В прошлом мы с приятелями написали собственную прошивку для роботов Lego Mindstorms NXT, поддерживающую удалённое управление роботом по bluetooth с Android-коммуникатора. Для экспериментов тогда была приобретена отладочная плата Olimex SAM7 с ARM7 на борту, которую в этот раз можно использовать в качестве управляющего контроллера.

В качестве шасси используем корпус игрушечной машинки.

Нужен bluetooth-модуль. Результат хотелось получить быстро, поэтому модуль был выбран из единственного доступного в магазине на тот момент BTM-112, хотя он оказался сравнительно дорогим.

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

  • Машинка
  • Управляющий контроллер Olimex SAM7
  • Bluetooth-модуль BTM-112
  • Контроллер для управления моторами L298N

Соединяем bluetooth с управляющей платой

Для начала настроим доставку команд управляющему блоку. Схема соединения bluetooth-модуля и контроллера простая: по сути дела это UART с некоторыми управляющими ножками, то есть надо лишь присоединить модуль к интегрированному UART-контроллеру.

Удалённое управление

Как было обещано, удаленное управление осуществляется с помощью Android-коммуникатора.

Наше прошлое приложение для Android (которое управляло Lego Mindstorms NXT, тоже посредством bluetooth) с помощью акселерометра отслеживало наклон коммуникатора и посылало соответствующие команды управления на NXT. Так что наиболее простым решением стало добавление протокола управления машинкой в уже существующее приложение. Сам протокол достаточно примитивен: фиксированная длина команды, фиксированный заголовок, после чего управление по осям X и Y.

Итак, на данном этапе мы можем “порулить” нашей платкой, правда моторы пока не подключены, так что индикация движений производится встроенными светодиодами (видео, к сожалению, нет, в этот момент снял только фотку), но всё равно прогресс есть, он виден, и это греет душу.


Соединяем управляющую плату с моторами

Изначально я думал, что смогу использовать управление со старой платы (зашитой в саму машинку), но оказалось, что использовать её в чистом виде нельзя, поскольку управление моторами было крепко сцеплено с радиочастью. Управлять моторами напрямую с ног головного контроллера тоже не получится из-за малой выходной мощности микросхемы. К сожалению, опыта в этой области у меня нет никакого (все-таки я программист, а не схемотехник), поэтому пришлось прибегнуть к помощи знакомых. По совету я взял микросхему усилителя L298N (избыточную для моих нужд, зато работающую из коробки) и собрал референсную схему.

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

В общем, функционально схема простая, один мотор используется как двигатель, второй мотор — как руль (у него стоит блокиратор на определенном угле поворота).
Для управления каждым мотором нужно подать напряжение на соответствующие управляющие ноги (положительное или отрицательное напряжение либо нуль). Напряжение измеряется между двумя точками (входными ногами управления), то есть мне нужно подавать напряжения на пару управляющих ног как-то так:

forward reverse off
PIN1 1 0 0 1
PIN2 0 1 0 1
Так как Android-приложение передает плавное управление, состояние моторов изменяется по преодолению заданного порога.
Код получился очень простой, я не буду приводить его здесь, но в конце поста есть ссылки на исходники всего проекта.

  • Дискретное управление лево/право, вперед/назад. Сейчас управление моторами осуществляется с помощью GPIO, но выбранные для управления линии могут быть переназначены под PWM контроллер. Таким образом, повороты и ускорение будут плавным.
  • Дорогой усилитель. Тут всё просто, заменить на более дешёвую микросхему или схему на нескольких транзисторах.
  • Скромные возможности. Раз управление осуществляется с помощью смартфона, то можно как-либо расширить функциональность по сравнению с просто пультом управления.

Где посмотреть


Весь код есть в открытом доступе.
Прошивка для платы Olimex — тут.
Код Android приложения тут, собранная версия на Android Market.



Одной из самых увлекательных сторон работы с микроконтроллерами, лично для меня, является то, что вы можете создать свой собственный аппарат, управляемый по радиоканалу. Есть большое количество разных возможностей для удалённого управления устройствами. В этой же статье мы поговорим о том, как организовать такое управление с помощью микроконтроллера esp32.

В свою бытность, я также как и многие, прошёл путь по созданию разных устройств, базирующихся на модулях HC-05, HC-06:

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

Такая связка была бы целесообразной в начале 2010-х годов, но в настоящее время стоит использовать более современный подход. А если более конкретно, то в качестве микроконтроллера мы возьмём esp32, управлять которым будем с экрана своего смартфона.

Есть разные способы отправки управляющих команд, но, в нашем случае, так как мы рассматриваем способ создания управляемого в реальном времени устройства, то лучше всего использовать передачу команд по протоколу websockets.

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

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

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


Далее запускаем асинхронный веб-сервер на 80 порту и создаём объект, который будет обрабатывать websocket-ы:


Далее нам необходимо создать веб-страницу, которая будет отображаться у пользователя. Эту страницу мы помещаем в массив index_html.

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

Там же отдельными классами прописываются кнопки:

Для обработки нажатий используется JavaScript код, в котором происходит настройка websocket-ов, а также прописывается реакция на происходящие события:


Кроме того, инициализируется обработчики нажатий кнопок:


и прописывается конкретный сценарий, который будет происходить при начале касания и его окончании (будет вызвана соответствующая функция):

Именно здесь, чтобы понимать, что происходит в данный момент, и требуется считывать состояние переменной state:

Как можно видеть, я оставил возможность для прописывания логики событий, так как при каждой конкретной реализации могут происходить различные наборы событий.
Также нам потребуется настроить сервер, который будет отвечать за отслеживание событий клиента: вход в систему, выход из системы, получение данных, получение ошибки, ответ на ping:


Для инициализации протокола websockets создана специальная функция:


Как мы говорили уже ранее, в рамках нашей системы смартфон выступает в качестве точки доступа, а esp32 — в роли клиента. Запустим монитор COM порта, точку доступа на смартфоне и посмотрим, что из этого получится. Мы видим, что esp32 подключилась к смартфону и получила IP адрес, и отчёт вывелся в COM порт:



В свою очередь, при загрузке, пульт управления будет таким:


Он выглядит несколько необычно, но это сделано умышленно, чтобы было удобно управлять, при удержании смартфона в горизонтальном положении.

Кстати сказать, при таком способе управления, мы будем ограничены дальностью действия wi-fi. Если же вам потребуется управлять устройством с больших расстояний, то нужно будет изменить схему подключения с такой:



Для этого придётся использовать радиомодули nrf. Использование их совместно с esp32 таит свои трудности, в частности, придётся использовать видоизменённую библиотеку RF24, с целью дать возможность программе использовать программную реализацию SPI, вместо аппаратной. Об этом неплохо рассказано вот здесь.

Ну вот собственно и всё! Код для работы через websockets протестирован и работает. Остаётся только прописать свою реализацию, для нужного типа двигателя/лей.

Читайте также: