Робот с управлением с андроида

7 роботов-пылесосов с приложением и управлением с телефона

Телефон всегда под рукой, а пульт нужно искать, особенно если в доме большая семья, и каждый норовит нажать заветную кнопочку. Я уже молчу про роботов с управлением на корпусе – их сначала нужно найти, потом догнать, и уже тогда начать управлять. Поэтому любой уважающий себя современный робот поддерживает управление со смартфона: там и карта отображается, и управлять можно из любой комнаты, есть напоминания и уведомления, настройка графика и много других полезных функций. Если такой пылесос ещё и с уборкой хорошо справляется, то цены ему нет! Хотя на самом деле есть. И заплатить за такого красавца придётся от 13 до 50 тысяч. Подробнее о вариантах с разным ценником и характеристиками – далее в статье.

Roborock S7

Новый флагман компании Roborock с инновационным функционалом и расширенными опциями управления. Сухая уборка выполняется при помощи силиконовых щёток и мотора с силой всасывания в 2500 Па, а влажная – с помощью виброшбвары, которую Roborock S7 может поднимать на коврах. В мобильном приложении можно менять границы комнат, переключать мощность, регулировать смачивание, скорость вибрации и количество проходов (до 3-х) для каждой зоны. Также на карте отображается положение ковров. Из дополнительных опций в наличии повышение тяги на коврах, объезд мягких покрытий, планирование работы по дням недели, защита от детей. О смене рабочих состояний Roborock S7 сообщает на русском языке. В максимальном режиме пылесос может работать до 1,5 часов без подзарядки. По качеству влажной уборки Roborock S7 не уступает профессиональным полотёрам, а во время сухой уборки он может чистить ковры со средним ворсом.

Dreame Bot L10

Необычный робот-пылесос с лидаром для картографии и фронтальной камерой для распознавания предметов на полу. Dreame Bot L10 проверяет очертания препятствий по базе данных, поэтому объезжает провода, носки и другие опасные вещи. Торцевая щётка классическая, трехлучевая, но турбощётка современная, разборная, с направляющими для волос. На ковре обороты турбины автоматически возрастают до 4000 Па, забрасывая в пылесборник крошки, волосы и песок. Для комнат с зеркалами до пола и полированной мебелью можно выбрать режим бесконтактной уборки. Остальные функции приложения классические: редактор комнат и зонирование, регулировка мощности и смачивания. Бак объёмом 270 мл размещается внутри швабры. Большая микрофибра обеспечивает плотное прилегание к полу и неплохо справляется с присохшими следами.

Viomi S9

Премиальная модель со станцией самоочистки. Станция оборудована дисплеем, на который выводится информация о состояния пылесоса и заполненности мешка для мусора. Рабочий модуль Viomi S9 совмещённого типа (небольшой пылесборник и бак на 250 мл), поэтому робот может в любой момент работать в одном из трёх режимов: сухая, влажная или комплексная уборка. Благодаря лидару и гироскопу Viomi S9 чётко позиционирует себя в пространстве и строит точную карту. За сбор мусора отвечает классическая торцевая метёлка, лепестково-щетинистая щётка и двигатель на 2700 Па. Переключать режимы можно в мобильном приложении. Там же есть интерактивная карта с целевыми и запретными зонами, делением квартиры на комнаты и выбором карты нужного этажа. Есть много других полезных опций: уборка с двойным проходом, регулировка силы всасывания в 4-х позициях, отключение контрольного проезда вдоль стен.

GENIO Laser L800

Робот-трансформер, идеально приспособленный для уборки разных покрытий: для линолеума и плитки у него в наличии силиконовый валик, для ковра – мягкая турбощётка. Также есть отдельные модули для разного типа уборки: пылесборник на 500 мл и совмещённый контейнер с баком и отсеком для мусора. Поэтому менять конфигурацию Laser L800 можно в зависимости от поставленных задач. Во время сухой уборки робот качественно чистит ковры, а во время влажной – легко справляется со следами обуви. Управлять Laser L800 можно с помощью пульта или со смартфона. В приложении есть редактор карты с разбивкой по комнатам и зонированием, есть планирования заданий на наделю, переключение силы всасывания (максимум 2700 Па) и регулировка смачивания (если установлен модуль для комплексной уборки). Для сильно загрязнённых помещений есть обработка помещения с двойным проходом.

Читайте также:  Клавиатур самсунг для андроид

Lydsto R1

Робот среднего класса с самоочисткой. Мощность станции составляет 1000 Па, поэтому контейнер и фильтры очищаются качественно, а частоту откачивания мусора можно настроить в фирменном приложении. Там же доступен редактор комнат с выбором очерёдности уборки и настройкой параметров работы, таких как сила всасывания (2700 Па), количество жидкости и проходов на одном участке. Если нужно сделать капитальную уборку, можно отключить повышение мощности на коврах, но тогда аккумулятор (5200 мАч) разрядится быстрее. Lydsto R1 оснащён контейнером с отсеком для воды и пыли, поэтому может одновременно пылесосить и вытирать полы. Участки вдоль стен робот обрабатывает торцевой щёткой, а ковры вычёсывает турбощёткой. Для удобства обслуживания она разбирается. Влажная салфетка справляется с поверхностной пылью, но пятна не оттирает.

Yeedi 2 Hybrid

Функциональный робот-пылесос с визуальной навигацией. Карту можно делить на комнаты и подписывать их названия. Индивидуальных параметров уборки для каждой зоны не предусмотрено, зато можно выбирать количество проходов (1 или 2). Сила всасывания регулируется в 3-х позициях (максимум 2500 Па). Есть режим возобновления работы с контрольной точки. Эта функция пригодится для домов площадью более 100 кв. м., т. к. в турборежиме Yeedi 2 Hybrid аккумулятора ёмкостью 5200 мАч хватает на 110 минут. Из других особенностей управления можно выделить программирование времени запуска в выбранной области, а также установку очерёдности работы в разных зонах. Для сухой уборки Yeedi 2 Hybrid использует центральную и торцевые щётки, для влажной – независимый баки и съёмную швабру. В наличии русский голосовой пакет, поэтому расшифровывать сообщения робота не потребуется.

Xiaomi Mijia 1С

Самый доступный робот с камерой на рынке. Mijia 1С укомплектован полным набором инструментов для комплексной уборки: торцевая щётка для работы в углах, плавающая турбощётка и вакуумный мотор с силой всасывания в 2500 Па. Для влажной уборки используется съёмная швабра со встроенным бачком. Интенсивность подачи воды можно выбирать в мобильном приложении. Управление происходит через фирменное приложение MiHome. После того как робот запомнит карту, на ней можно рисовать целевые и запретные прямоугольники, а также ставить виртуальные стены. Другие опции управления тоже классические: выбор режима всасывания и смачивания, оценка износа аксессуаров, программирование отложенного старта. О смене рабочих состояний Mijia 1С сообщает на русском языке. Батареи ёмкостью 2400 мАч хватает на 1,5 часа.

Об авторе

Группа в ВК — vk.com/bestrobotinfo — пишите, бесплатно помогаю с выбором роботов пылесосов, консультирую.

О себе: 8 лет работал промоутером Mvideo. Большую часть времени представлял бренд Bork. Работал и с другими брендами. Интересуюсь техникой, в данный момент погрузился с головой в нишу роботов пылесосов, умного дома и все что с этим связано. Пишу обзоры, помогаю людям с выбором. Тестировал лично с десяток моделей роботов. Пишите, если есть вопросы по выбору робота пылесоса, умных розеток. Разбираюсь и в других гаджетах, но не так плотно.

Источник

РОБОТ на базе: android, arduino, bluetooth. Начало

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

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

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

  • Установке и настройке среды разработки для android устройств.
  • Написании первой программы Hello World для android устройства.
  • Установке драйверов и среды разработки для Arduino.
  • Написании первой программы (включать, выключать) светодиоды на Arduino.
Сокращения

БТ – Bluetooth;
Андроид – устройство с ОС android, к примеру, смартфон;
Скетч – приложение для Arduino;
Ардуино – Arduino Nano.

Общая схема робота

Пусть робот имеет следующую общую схему (рис.1). Андроид, является «головным мозгом», в котором обрабатываются все данные и проводятся вычисления. На основании результатов вычислении по БТ каналу передаются команды, принимаемые БТ модулем и в дальнейшем поступающие по последовательному порту в Arduino. Arduino обрабатывает поступившие команды и выполняет их при помощи «мышц» (Моторы светодиоды и др.). Кроме того в Arduino поступают данные от «органов чувств» (сенсоры, датчики и др.), которые он приводит в удобный вид и отправляет при помощи БТ модуля в «головной мозг». И так все повторяет до бесконечности.

Рисунок 1
Обоснование именно такой схемы робота следующее:
-БТ модуль и Arduino Nano имеют низкую стоимость, а также маленький объем и вес.
-Андроид, не дорогое и доступное устройство, уже имеется у огромного количества людей, в том числе и у меня.
-Андроид имеет свои сенсоры, датчики и экран для вывода информации
-Простота написания кода для приложений как для андроида так и для ардуино.
Для упрощения задачи построения робота, предлагаю воспользоваться методом «от простого к сложному», т.е. как и при изучении языка программирования создадим первую программу «Hello word». Конечно, это будет не одна программа, а как минимум две (для ардуино и андроида). В каждой последующей статье функционал робота будет увеличиваться.

Читайте также:  Все для android 234
Постановка задачи

Собрать простенькое устройство, у которого имеются:
-2 кнопки (b1, b2).
-1 светодиод (Led).
И выполняется функционал:
-главное activity содержит 2 кнопки «Отпарвить 0» и «Отправить 1», при нажатии на которые от андроида к ардуино по БТ каналу передаются данные, соответствнно «0» и «1», ардуино их обработвает и зажигает либо тушит светодиод.
-данные о нажатии или отпускании кнопок от ардуино передаются в андроид, на экране главного activity выводится информация об этом.

Закуп необходимых деталей и узлов.

1) Android устройство – смартфон LG P500 (версия Android 2.3.3), либо любое другое устройство на базе Android версией 2.3.3 и выше. Цену не указываю, так как отдельно не покупал, а использую свой смартфон.
2) Arduino NanoV3.0 ( dx.com/ru/p/nano-v3-0-avr-atmega328-p-20au-module-board-usb-cable-for-arduino-118037 ) — 11,32$
3) Модуль Bluetooth ( dx.com/ru/p/bluetooth-board-module-4-pin-121326 ) — 10,57$
4) Макетные провода ( dx.com/ru/p/30cm-breadboard-wires-for-electronic-diy-40-cable-pack-80207 ) — 2,51$
5) Кнопки — 2шт., светодиод – 1 шт. – 50 рублей
Итого: 855,20 рублей.

Приступим к работе

Arduino

Соберем из имеющихся деталей схему (рис. 2)

Рисунок 2
Питание на arduino подается по USB кабелю, который подключается к компьютеру, по нему же загружается и программное обеспечение (скетч) выполняемое на нем. Необходимо отметить, что загружать скетч в arduino можно только тогда, когда отключено питание от Bluetooth модуля (Вывод (17) 3V3), в противном случае возникает ошибка.
Подробности установки среды разработки Arduino и драйверов можно найти на официальном сайте: arduino.ru/Guide/Windows
Ниже приведен скетч который необходимо загрузить в ардуино:

Объявляем переменные, напротив каждой стоит комментарий.
Инициируем последовательное соединение и задаем скорость передачи данных в бит/c (бод). Мой БТ модуль работает на скорости 38400, но может быть скорость 9600 (скорость БТ модуля можно задавать при помощи AT команд). Устанавливаем режим работы заданного входа/выхода(pin) как входа или как выхода. Подаем HIGH значение на входы и выходы.
Функция void contact_bounce(int buttton) обрабатывает нажатие кнопок и позволяет устранить дребезг контактов, который возникает при соприкосновении или расхождении контактов в механических переключающих устройствах, таких, как кнопка, происходит многократное замыкание и размыкание.
В основном цикле Loop слушаем последовательный порт, и если на него пришли данные мы их обрабатываем. Кроме того вызываем функцию обработки нажатия кнопок и устранения дребезга контактов.
Загрузив скетч в ардуино, можем проверить его работоспособность – запустив монитор порта. При нажатии кнопок в окне монитора будет выводиться надпись «Press button b». Проверить работу светодиода удастся только после написания приложения для андроида.
В данной статье для ардуино будет использоваться только этот скетч.Приступим к разработки приложения для андроида.

Android

Для удобства отладки приложения андроида, рекомендую использовать не «Android virtual device», а реальный смартфон с ОС Android версии от 2.3.3 подключенный через USB кабель к компьютеру в режиме «Отладки». Существует огромное количество статей как это сделать.

Android ШАГ 1

Создаем новый проект «Android application project»
Для работы с БТ необходимо выставить права на использование его нашим приложением. Для этого заходим в манифест, выбираем закладку Permissions, нажимаем add, далее Uses permission, и устанавливаем следующие права: android.permission.BLUETOOTH, android.permission.BLUETOOTH_ADMIN
Теперь оформим основное activity, в res/layout/activity_main.xml поместим код:

Таким образом, основное activity примет вид:

Рисунок 3
Текстовое поле «txtrobot», будет отображать всю необходимую нам информацию. Кнопки b1 и b2, будут отправлять команды в arduino.
Теперь переходим в src/../MainActivity.java здесь и будет располагаться наш основной код. Подключим пакет Api для Bluetooth:

Читайте также:  Pixel live wallpaper android

Перед тем как использовать БТ необходимо убедится, что в нашем андроиде он присутствует. Создадим экземпляр класса BluetoothAdapter (отвечающий за работу с установленным в андроиде БТ модулем):

Если андроид не имеет БТ то будет возвращено null:

В данном виде программу уже можно запустить. На экране андроида вы должны увидеть надпись: «Bluetooth присутствует».
Теперь необходимо убедиться, что БТ включен, либо предложить его включить. Добавим константу:

Запустив измененное приложение на андроиде, Вам будет выдан «Запрос разрешения на включения Bluetooth», подтвердив его, тем самым Вы активируете БТ.
Полный код приложения:

Android ШАГ 2

Для дальнейших экспериментов, необходимо «спарить» наш андроид и БТ модуль, для этого на андроиде в настройках БТ, выполним поиск и подключимся к БТ модулю, пароль «1234».
Если вдруг удаленный БТ модуль не будет нормально работать, просто отключите от него все провода (VCC, GND,RX,TX), тем самым сделав жесткую перезагрузку, и снова подключите их — это должно помочь.
Теперь попробуем программно подключится к удаленному БТ модулю: основной код подключения разместим в onResume. onResume – это одно из состояний нашего Activity, а именно, Activity видно на экране, оно находится в фокусе, пользователь может с ним взаимодействовать. Ниже приведен основной код Activity:

Доступ к удаленному БТ модулю получаем по его МАС адресу btAdapter.getRemoteDevice(MacAdress). Узнать MAC-адрес БТ модуля можно, при помощи программы для андроида: Bluetooth Terminal.
Что бы убедится, что доступ к БТ модулю получен, используем метод getName(), который позволяет получить имя удаленного БТ модуля, и выводим результат на экран андроида.
Также в этом примере, была добавлена возможность ведения лога, который по ходу выполнения программы можно просматривать, и обнаруживать существующие ошибки. Кроме того создана функция MyError, которая вызывается в том случае если нужно аварийно завершить приложение.
Запустив приложение, на экране андроида в текстовом поле «txtrobot» отобразится имя удаленного БТ модуля.

Android ШАГ 3

Доступ к удаленному БТ модулю получен, следующий наш шаг передать данные от андроида к нему. Для этого в onResume(), создадим сокет:

где UUID (Universally Unique Identifier) — это стандарт идентификации, используемый в создании программного обеспечения. Добавим в определение константу UUID:

Чтобы не тормозить соединение отменим поиск других БТ устройств:

При не удаче закроем сокет:

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

В конструкторе public ConnectedThred(BluetoothSocket socket) создается объект управляющий передачей данных через сокет:

Для отправки данных из главного activity вызывается метод sendData(String message) с параметром текстового сообщения, которое преобразуется к типу byte. Метод cancel() позволяет закрыть сокет.
Напишем, обработчики нажатия кнопок b1 и b2, содержащие вызов функции sendData(String message) и сделаем запись об этом в логе. Полный код приложения приведен ниже:

Написанное нами приложение, позволяет передавать по БТ от андроида к ардуино данные – «0» и «1», которые в свою очередь для ардуино являются командами «1» — зажечь светодиод, а «0» — потушить. Таким образом, с учетом общей схемы робота, мы научились отдавать команды от «головного мозга» к «мышцам». Осталось дело за малым, научить андроид принимать данные от «органов чувств».

Android ШАГ 4

Получение данных также как и отправку, необходимо выполнять в отдельном потоке, чтобы избежать зависание главного activity. Принятые данные от БТ модуля мы будем выводить на экран главного activity в текстовом поле – MyText. Но возникает трудность — работа с view-компонентами доступна только из основного потока. А новые потоки, которые мы создаем, не имеют доступа к элементам экрана. Для решения данной проблемы воспользуемся механизмом Handler.
Handler — это механизм, который позволяет работать с очередью сообщений. Он привязан к конкретному потоку (thread) и работает с его очередью. Handler умеет помещать сообщения в очередь. При этом он ставит самого себя в качестве получателя этого сообщения. И когда приходит время, система достает сообщение из очереди и отправляет его адресату (т.е. в Handler) на обработку.
Объявим Handler:

Источник

Оцените статью