Андроид как пульт управления машинкой

Собираем свою Bluetooth машинку с управлением на Android

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

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

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

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

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

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

В сумме наши компоненты:

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

Теперь все необходимое у нас есть.

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

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

Программная составляющая не сильно сложнее. При соединении модуль пишет строку вида «CONNECT RE:MO:TE:BT:MA:CC xxx \r\n» , а при отсоединении — «DISCONNECT xxx \r\n» . Задача драйвера состоит в наблюдении за потоком символов и, в случае если сейчас активно соединение, передаче потока управляющему приложению. В итоге драйвер представляет собой конечный автомат, у которого переключение состояния означает переключение функции-обработчика.

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

Как было обещано, удаленное управление осуществляется с помощью 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 контроллер. Таким образом, повороты и ускорение будут плавным.
  • Дорогой усилитель. Тут всё просто, заменить на более дешёвую микросхему или схему на нескольких транзисторах.
  • Скромные возможности. Раз управление осуществляется с помощью смартфона, то можно как-либо расширить функциональность по сравнению с просто пультом управления.
Читайте также:  Мелодии для андроида htc

Источник

Пульт дистанционного управления из смартфона

В двух предыдущих статьях я рассказал об использовании смартфона для управления игрушечным автомобилем, как непосредственно голосом, так и с использованием другого смартфона по блютус. Но управление было примитивным — отдавалась команда, автомобиль выполнял команду, останавливался и ждал следующей команды. Это было связано с большой скоростью движения автомобиля для комнатных условий (приблизительно 1,2 м/с), а так же с продолжительным временем отдания команды и невозможностью оперативно вмешиваться в движение, используя меню. Даже штатный пульт ДУ не давал возможности управления. В новой версии ДУ с графическим интерфейсом я решил применить ШИМ для регулировки скорости и имитировать управление рулем.

На картинке показана машинка, которой управляет смартфон, и ниже смартфон с работающей программой дистанционного управления по блютус.

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

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

Наименьшая скважность сигнала 20%, наибольшая 80%. Теоретическая возможная частота 10 Гц. На самом деле наверное около 4 — 5 Гц, поскольку сигналы на модуляцию идут в общем потоке команд и некоторые из них также имеют временную задержку. Поэтому при низкой скважности хорошо заметна вибрация.

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

Если приподнять левую сторону смартфона то проекция будет со знаком +, что будет соответствовать движению вправо.

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

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

Источник

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

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

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

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

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

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

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

  1. Зажимаем на 2 секунды кнопку «4» на брелке
  2. Далее на 2 секунды зажимаем одновременно кнопки «1 + 4»
  3. Наконец, клавишу «3» также на пару секунд

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

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

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

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

Читайте также:  Как добавить фрагмент android studio



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

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

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

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

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

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

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

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

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



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

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

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

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

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

  • Звуковые сигналы — можно отключить работу сирены для оповещения о постановке или снятии машины с охраны
  • Световая индикация — тоже самое, касательно включения поворотных сигналов при открытии центрального замка, срабатывании датчиков удара и прочих событиях. Здесь же можно активировать «вежливую подсветку», когда фары горят в течение некоторого времени после перехода в режим охраны для того, чтобы подсветить водителю дорогу к дому.
  • Чувствительность датчиков — настройка уровня беспокойства для срабатывания сигнализации
  • Управление охраной — детальные параметры конфигурации сигнализацией автомобиля.
    Самое интересное в данном разделе то, что можно активировать подключенный смартфон в качестве иммобилайзера и охранной метки. При включении данной функции двигатель будет заводиться только при наличии в салоне привязанного телефона с включенным Bluetooth. Также можно выставить дальность приема сигнала. При появлении смартфона в его зоне автоматически будет срабатывать постановка на охрану или открываться центральный замок автомобиля
  • Команды — меню настройки дополнительных команд сигнализации для быстрого к ним доступа с кнопко пульта

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

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

На 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). Все эти модификации обладают следующими характеристиками:

  • Контроллерами CAN, благодаря которым осуществляется надежная интеграция с системами автомобиля.
  • Функцией «PIN to drive», которая выступает в качестве дополнительной защиты, rjulf помимо использования специального электронного ключа, автовладелец должен вводит специальный код.
  • Датчиками внешних воздействий (наклона, удара, смещения и многими другими).

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

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

  • Prizrak 810 обойдется вам в 15 000 рублей. Только стоит учитывать что данная модификация не оснащена специальной радиометкой «DDI 2,4 ГГц», которая позволяет не только надежней защитить авто от угона, но и исключить возможность ложной остановки двигателя. Также в этой системе отсутствует специальное реле, отключающее двигатель.
  • Prizrak 820 стоит чуть дороже – 18 000 рублей. Эта система также не оснащена радиометкой, но мини-реле, отключающее двигатель присутствует в комплекте.
  • Prizrak 830 стоит 17 500 рублей. Система оснащена радиометкой, но реле отсутствует.
  • Prizrak 840 за 21 800 рублей оснащен всеми нужными «примочками» и надежнее всего защитит ваш автомобиль.

Это интересно: 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 позволял менять траекторию движения при помощи специального колёсика, имитирующего руль. Такое решение сделало модель бестселлером, а идея стала настолько успешной, что большинство современных моделей детских электромобилей комплектуются пультом дистанционного управления.

Источник

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