Как управлять машинкой с телефона

После приобретения недорогого 7″ китайского планшета и экспериментами с взаимодействием с Arduino по USB и Bluetooth захотелось сделать что-то более серьезное и полезное для своих детей. Так родилась идея сделать машинку с управлением от акселерометра Android-устройства и связи по Bluetooth каналу. До этого я никогда не увлекался робототехникой или РУ управлением, но желание было. Были поставлены три цели:

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

Компоненты

1. Android устройство

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

2. Шасси для машинки

Также понадобится любое шасси с 2-мя или 4-мя моторчиками. Это может быть как шасси для DIY проектов, так и шасси от старой б/у радиоуправляемой машинки.
Я купил готовое шасси на eBay. Кто еще не знаком с интернет-аукционом eBay, рекомендую для прочтения эту статью: покупка радиодеталей на eBay. Гарантирую, что сэкономите немало денег покупая там, а не здесь у перекупов. Также, можно воспользоваться и другими китайскими магазинами: www.aliexpress.com, dx.com и др. Найти шасси довольно легко, достаточно в поисковую строку вбить одно из словосочетаний: Robot chassis, Robot platform, DIY Car chassis и др. Стоимость варьируется от 20$ до 60$.

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

При выборе шасси обращайте внимание на питание и мощность двигателей, а также на обороты моторчиков и наличие редуктора. Хотя большинство платформ содержат стандартный 6В моторчик с редуктором.

Для принципа управления описанного в данном проекте, больше всего подходит гусеничная платформа, но т.к. у меня пока что ее нет, я реализовал проект на основе 4WD платформы.

3. Контроллер машинки

Как я уже говорил, проект планируется сделать мультиплатформенным. На текущий момент проект CxemCAR реализован для следующих аппаратных платформ:

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

«Мозги» робота не требовательны к быстродействию МК и количеству периферии, необходимый минимум, который должен поддерживать микроконтроллер: 2 ШИМ и UART.

4. Bluetooth модуль

В качестве Bluetooth модуля использован дешевый китайский UART модуль HC-06. Подойдут модули вида HC-03, HC-04, HC-05, HC-06, да и вообще любые Serial Bluetooth. Лучше брать с готовыми штыревыми выводами, чтобы не пришлось паять, т.к. расстояние между выводами очень маленькое (см. 1-ой на фото внизу). Стоимость такого модуля на eBay составляет в среднем 5-10$.

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Bluetooth модули и работа с ними применительно к Arduino, неплохо описаны в этой статье. Для других контроллеров все практически тоже самое, вот к примеру статья с описанием связи по Bluetooth между STM32 и Android.

5. Драйвер двигателя

В качестве драйвера я использовал специализированную микросхему L298N, которая представляет собой сдвоенный мостовой драйвер двигателей и предназначена для управления DC и шаговыми двигателями. На eBay продаются готовые платы со всей необходимой обвязкой, цена платы составляет 4-5$ и выглядит она приблизительно так:

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Подключение к Arduino достаточно подробно описано в этой статье. В нашем проекте для плавного изменения скорости вращения двигателей, мы будем использовать ШИМ (широтно-импульсную модуляцию).

6. Остальные комплектующие

Помимо вышеперечисленных компонентов понадобятся:
— батарейный отсек (4-5 батареек АА) или аккумуляторы, можно использовать к примеру готовые блоки Li-Po аккумуляторов на 7.4В
— соединительные провода
— выключатель питания
— термоусадочная трубка, хомуты и др.

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Все это конечно опционально и можно заменить тем, что есть под рукой, к примеру вместо термоусадки использовать изоленту и т.д.

Как видите, себестоимость машинки не так уж и велика, если использовать свое шасси с моторчиками, то выходит около 20-25$ на все, если покупать и шасси, то выйдет уже 45-60$ в зависимости от типа шасси (т.к. диапазон цен на них очень широк).

Вот, что получилось у меня:

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Принцип работы

L255\rR-255\r
По данной команде левый двигатель будет вращаться вперед, а правый назад, что заставит машинку вращаться вокруг своей оси против часовой стрелки.

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

Символы команд L, R и H можно задавать в настройках Android-приложения.

Электронная начинка

Структурная схема CxemCAR представлена ниже:

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Как видим, к контроллеру (Arduino, STM32 и др. неважно какой) подключается Bluetooth модуль и драйвер двигателей, к которому в свою очередь подключается 2 или 4 моторчика Bluetooth-управляемой модели. На схеме изображен один выход дополнительного канала (включение звукового сигнала, фар и т.п.), но путем небольшой правки программы число дополнительных каналов может быть легко увеличено.

Работа с Android приложением

Приложение под Android писалось в среде Eclipse. Все исходники проекта и проект для Eclipse вы можете скачать ниже. Я не специалист в Java программировании и это мое первое приложение под Android поэтому кое-где код не совсем удачен. Именно на разработку Android приложения ушло основное время при разработке данного проекта. Версия Android должна быть не ниже 3.0, я все писал и тестировал под планшет с версией 4.0.3.

Приложение содержит несколько активити. Главное активити представляет собой начальный экран с кнопками запуска различных режимов управления и настройками:

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Предусмотрено 3 режима управления Bluetooth-моделью:

Настройки приложения

Скриншот настроек Android приложения CxemCar версии 1.0:

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

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

Точка разворота для мотора (ось X)

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

MAC адрес

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Этот MAC-адрес и необходимо прописать в настройках приложения CxemCAR.

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

Сборка платформы

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Как я уже говорил выше, в качестве платформы я выбрал шасси Pirate-4WD от производителя DFRobot (SKU:ROB0003). Это одно из самых популярных шасси, вот его описание и видео по сборке. Хотя там все интуитивно понятно и сборка очень проста.

После того, как была собрана основа шасси с моторами, припаиваем провода и на всякий случай маркируем моторчики:

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

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

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

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

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

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Провода от 4-х моторов подключаем к плате драйвера двигателей L298N, левые 2 мотора просто запаралеленны, тоже самое и правые.

Для того, чтобы можно было видеть состояние Bluetooth соединения, у модуля HC-06 (да и у других тоже) присутствует возможность подключения светодиода состояния. Я решил его также подключить и вывести на видное место. Для этого, я использовал токоограничительный резистор номиналом 470 Ом и термоусадочную трубку.

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

К модулю Bluetooth подключаем или подпаиваем все необходимые провода, помимо светодиода это питание, GND, TX и RX. Смотрите документацию на ваш Bluetooth модуль. Чтобы не мучаться с пайкой, я вам советую сразу взять модуль с подпаянными штыревыми выводами (см. фото выше). И лучше брать модули HC-03/HC-05.

Я же использовал модуль HC-06, который у меня был до этого. Схема распайки следующая:

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

В распаянном виде модуль выглядит так:

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Его я также разместил в термоусадочной трубке большого диаметра.

Для питания двигателей я использовал батарейный отсек на 5 элементов типа АА, т.е. напряжение питания двигателей составило 7.5 Вольт. Можно использовать LiPo и другие аккумуляторы. Для крепления батарейного отсека в крышке шасси просверлил два отверстия и закрепил при помощи двух болтов.

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Источник

CxemCAR — Android-управление машинкой по Bluetooth

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

GSM сигнализация (автомобильная) – это устройство, которое моментально извещает автовладельца о попытке проникновения в машину посредством использования каналов сотовой связи. Эта опция становится возможной благодаря специальному модулю, который осуществляет мониторинг, то есть определяет местонахождения автомобиля, связываясь с базовыми вышками сотовых операторов или спутниковых систем GPS и ГЛОНАСС. Внешне этот модуль напоминает стандартное мобильное устройство, оснащенное экраном, клавиатурой и разъемами для подсоединения различных датчиков (открывание/закрывание дверей, окон и многого другого). Датчики высылают информацию обо всем происходящем на модуль, с которого сигнал тревоги перенаправляется на телефон владельца машины. Благодаря этому можно предупредить угон авто, отключив двигатель и быстро определить местоположение машины.

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Рассмотрим подробнее преимущества таких «умных» систем.

Как подключить телефон к охранной сигнализации с автозапуском?

Прежде всего необходимо скачать и установить на свой смартфон приложение для вашей модели сигнализации. У StarLine и Pandora есть свои программы. Для Шерхана ищем в Google Play или App Store приложение «Mobicar»

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

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Теперь можно включить блютуз на смартфоне и запустить приложение Sher-Khan Mobicar. На стартовом экране жмем на «Начать подключение»

После непродолжительного поиска на странице отобразится номер сигнализации, установленной в машине. Нажимаем на «Подключить»

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

После успешного подключения жмем на «Начать использование»



Преимущества и основные команды GSM/GPS модуля

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

Еще одно преимущество заключается в том, что автовладелец может завести двигатель, находясь дома. Более того, можно запрограммировать включение мотора с определенной периодичностью, например, каждый час на 10 минут. Благодаря этому в зимнее время года «движок» авто не будет остывать и вы сможете сэкономить кучу времени утром. Задать можно также и температурный порог, при котором системам будет срабатывать автоматически.

Полезно! Стоит учитывать, что хоть на упаковке с сигнализацией и указывается дальность порядка 1 500 метров, по факту это расстояние будет значительно меньше. Дело в том, что такие измерения проводятся на местности, расположенной вдали от городов, где сигнал не встречает никаких помех. В городской черте такие системы будут ловить на расстоянии 300-500 метров. Поэтому если вы живете на последнем этаже обязательно уточните реальную дальность сигнала.

Это интересно: Новый концепт городского электромотоцикла от BMW

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

Итак, при помощи голосового управления, через СМС или со специальным приложением для Android, IOS или Windows вы сможете:

При выборе системы обратите внимание на все эти опции, а также на фирму производителя охранного комплекса. Сегодня наибольшей популярностью пользуются устройства «Призрак» и Starline.



Настройки сигнализации в машине через телефон

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

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

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

Доступны следующие настройки сигнализации:

Освобождаем руки и глаза

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

На iPhone 4S с такими обязанностями хорошо справляется Siri. Кстати, и Siri можно запускать голосом (инструкция здесь). Если Siri на вашем iPhone нет, можно воспользоваться приложением Vokul, которое разработано специально для использования в автомобиле.

Также неплохие возможности управления голосом демонстрируют смартфоны с Android 4.1, однако если вам нужен настоящий помощник, вроде Siri, то нужно будет обзавестить дополнительными приложениями, например: Voice Actions for Android, Vlingo, Edwin.

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

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Автоматическое охлаждение и обогрев салона автомобиля

Еще одна функция удаленного управления автомобилем с помощью GPS/ГЛОНАСС терминала – это автоматическое поддержание температурного режима в салоне. В зависимости от показаний датчиков температуры и влажности можно настроить автоматическое включение-выключение кондиционера и обогрева салона, когда значения выходят за пределы определенной отметки.

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

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Разберем его подробно. Представим, что к терминалу подключены аналоговый датчик температуры – ко входу 0 и аналоговый датчик влажности – ко входу 1. К выходу 0 подведено реле включения/выключения обогрева, а к выходу 1 – включение/выключение кондиционирования.

Посте «Старта устройства», в первую очередь, производится инициализация трёх переменных для определения нижнего и верхнего порогов температуры, а также верхнего порога влажности. Задаем значения для выходов датчиков. Для датчика температуры нижней границей выставляем значение 4000 мВ (Temp_Low), а верхней – 8000 мВ (Temp_High). Для датчика влажности задаем напряжение только для верхней границы (Humidity) – 3000 мВ.

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

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

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

Системы Призрак

В зависимости от модификации этих устройств будет зависеть наличие тех или иных модулей и дополнительных аксессуаров. Например, сигнализация в авто «Призрак» с иммобилайзером будет иметь номер от 510 до 540. Интересующие нас GSM сигнализации можно определить по первой цифре – 8 (например, 810, 820, 830 и 840). Все эти модификации обладают следующими характеристиками:

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

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

Если говорить о стоимости этих охранных систем с GPS модулями, то:

Это интересно: Porsche задумывается о создании собственного мотоцикла

Так мобильный телефон превращается в бортовой компьютер

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона
Smart Control Lite
Чтобы получить возможность использовать мобильный телефон в качестве бортового компьютера и диагностического прибора, вы должны подключить его через Bluetooth или WLAN к разъему OBD-2.

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

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

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

Примечание: из-за ограничений, которые имеют Bluetooth-протоколы под iOS, с iPhone совместимы только OBD-2-модули с WLAN-связью.

Первый автомобиль с ДУ

Идея оборудовать детский автомобиль с электродвигателем контроллером впервые появилась у инженеров компании Peg Perego, одного из лидеров на рынке детского электротранспорта. Первая модель, которой можно было управлять удалённо стала Go Buggy Go, до 2012 года носившая название RC Buggy, предназначенная для детей в возрасте от 1 до 3 лет

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

Источник

Машинка на Arduino, управляемая Android-устройством по Bluetooth, — полный цикл (часть 1)

Введение

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

Немного об уровне, авторе и предостережения

Я, автор, пацан 16-17 лет с подмосковной деревни, специализируюсь на написании android-приложений (а там сложнее что-то сжечь), поэтому ответственность за оптимальный подход к решению задач с себя снимаю.

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

Задача

Понадобится

Основа конструкции

За основу была взята машина Lego Outdoor Challenger (в реальности выглядит менее пафосно). Все, что от нее осталось: корпус (все элементы украшения сняты) и три двигателя.
Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона
У машинки была своя плата, но одна из задач подразумевала универсальность: это сделал я, это смогут повторить другие. Мозги вынул, поставил Arduino Uno.

Установка Arduino

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

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Поверх платы сразу поставил две motor shiled, так надо. Чтобы управлять второй, придется прокинуть один провод с любого digital порта на H1 (направление) и второй с пина с поддержкой шима (помечены знаком «

», обычно 10, 11) на E1 (скорость).

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Определение угла поворота

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

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

Решение проблемы: отслеживать угол через замыкание. На фото продемонстрирована небольшая штучка, которая крепится недалеко от поворотного механизма. На часть, которая крутится вместе с колесами влево/вправо двигателем, прикрепляется гребешок с железными контактами.

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

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

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

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

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Подключение угла и код

Для каждого уровня был выбран свой цвет: нижний – зеленый, первый снизу – красный, второй – черный, третий – белый. На начальном этапе использовались breadboard и светодиоды для визуальной отладки.

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Схема подключения показана на рисунке. Плюс тянем к зеленому, остальные протягиваем к минусу. Через резистор, установленный для устранения помех и отсутствия КЗ, подключаем провода к выходам A0-A2. Выбраны они просто из экономии остальных портов.

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Код дан с комментариями. Подключаем пины и опрашиваем их через digitarRead(). Если напряжение есть, вернется значение true. Далее смотрим, если результат означает, что колеса в крайних положениях, запрещаем дальнейший поворот в эту сторону.

Небольшая хитрость: поскольку выходы на 5В и 3.3В понадобятся в будущем, можно поставить плюс на один из digital-пинов. Перед каждой проверкой угла выдавать ток через digitalWrite(whitePin), потом проверять угол и убирать ток.

Распараллеливание ходовых колес

Изначально два ходовых двигателя соединены вместе. Их рассоединил по двум причинам: поворот эффективней, если колеса крутятся в разные стороны, и два мощных двигателя одна плата не вытянет.

Проблема: у motor shield два выхода, каждый из которых выдает до 2 ампер. Каждый двигатель ест по 0,7А. Вроде меньше, но не при максимальных нагрузках. Допустим, машинка застряла в песке или уперлась, ток возрастает выше ампера. Не критично, но потенциально опасно.

А вот критичным оказалось то, что плата греется. Через минуты полторы после заезда, motor shield нагревалась и начинала работать безобразно: токи подаются не те, колеса не крутятся и прочее.

Решение обоих проблем: один двигатель подключил к одной motor shield, второй – к другой. Как ни странно, помогло. Температура упала, перегрев отсутствует. Можно было поставить радиатор, но крепить тяжело.

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

Подключение Bluetooth

Я использовал модель HC-05, что сыграло роковую шутку. Подключаются все блютузы одинаково: один провод на 3.3В (иногда начинал работать только от 5В), второй на минус, еще два на порт 0 и 1 (чтение и отправка соответственно). Провод, подписанный RXD на bluetooth, втыкается в TXD ардуино, а TXD в RXD (если перепутаете, то данных не увидите).

Есть оговорка: порты 0 и 1 по умолчанию используются Serial, через который заливает скетч. То есть, пока воткнут блютуз, скетч не зальется. Есть два выхода: вынимать блютуз на время заливки или переназначить входы и выходы блютуза. Второй вариант осуществляется двумя строчками

Подводный камень, съевший у меня трое суток работы – скорость общения. По привычке установил 9600 и пошел пробовать. То данные не приходили, то была каша символов. И в конце концов ответ – модель HC-05 общается на 38400! Очень сильно обратите внимание на то, что в Setup() я выполню BTSerial.begin(39400), хотя Serial.begin(9600).

Система отправки команд

Статья становится слишком длинной, поэтому рассмотрение кода Arduino и Android вынесу в отдельную вторую часть, а сейчас опишу принцип.

Как управлять машинкой с телефона. Смотреть фото Как управлять машинкой с телефона. Смотреть картинку Как управлять машинкой с телефона. Картинка про Как управлять машинкой с телефона. Фото Как управлять машинкой с телефона

После установки сокета данные отправляются в следующем формате: @скорость#*угол#. @ — говорит о том, что следующие цифры содержат скорость, # — извещает об окончании значения скорости, * — начало значения угла, # — закончить запись угла. Цикл бесконечен, команды отправляются каждые 100 миллисекунд (цифра подобрана оптимальная). Если ничего не нажато на андроиде, то ничего и не отправляется.

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

Заключение первой части

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

Но самое интересное, как по мне, осталось на второе – программа Arduino и приложение на Android, там творится настоящая магия, по крайней мере, для молодого меня.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *