пятница, 11 марта 2016 г.

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

Используя недорогие современные электронные модули и бесплатные программы любой желающий сможет сделать машинку управляемую со смартфона или любого другого устройства на котором есть Bluetooth. Смартфон или планшетный компьютер может быть гораздо удобнее обычного пульта с кнопками к тому же если их использовать то нет необходимости делать пульт что очень упрощает процесс изготовления всего в целом (ещё есть небольшая финансовая экономия и экономия занимаемого пространства)! Одним из самых популярных и удобных электронных модулей для связи по bluetooth на сегодняшний день является модуль HC-05 (можно заказать по ссылке) (есть ещё HC-04, HC-06, HC-09 и т.д. которые тоже подходят но возможно с некоторыми изменениями в схеме на рисунке 1). Если на смартфоне есть bluetooth то этот модуль сможет принимать от него радиосигналы, преобразовывать их в электрические и передавать по UART (универсальный асинхронный последовательный интерфейс передачи данных) на какое либо устройство которое сможет управлять машинкой, одним из таких устройств (и самым простым в использовании и освоении) является Arduino UNO (специальная плата с микроконтроллером которую можно заказать по этой ссылке http://ali.pub/1v22bh) (помимо UNO можно использовать и другие ардуины например nano, mega и т.д. или вообще обойтись микроконтроллером или (что совсем круто) микросхемой преобразователем UART-параллельный порт но в данной статье рассмотрим именно Arduino т.к. - это наиболее универсальный, расширяемый и вместе с этим простой и подходящий большинству вариант). Arduino, в свою очередь, может управлять каким либо силовым устройством которое будет управлять двигателями, фарами и возможно какими либо другими инструментами (в данной статье, для простоты, ограничимся двигателями и фарами). Одним из таких устройств является микросхема-драйвер L293D (можно заказать по ссылке), для управления двумя коллекторными двигателями и фарами понадобится две таких микросхемы. Для простоты сборки вместо микросхем можно использовать готовые модули например  L293D Motor Drive Shield (опять же можно заказать по ссылке) но в данной статье рассмотрим именно микросхемы т.к. это выходит дешевле и не намного сложнее, если всё таки нет желания что либо лишний раз делать руками то можно разобраться с соединениями и применить схему ниже для данной платы -это тоже будет не трудно. Теперь рассмотрим схему:
Рисунок 1 - Электрическая схема соединения деталей

Схема специально сделана в таком виде для того чтобы больше людей смогли разобраться в ней но я думаю -это не помешает разобраться в ней профессионалам-электронщикам. Из схемы видно что модуль HC-05 соединяется с ардуино четырьмя проводами, два из них - это питание и два остальных для обмена данными. Первый вывод модуля HC-05 -это TX -его нужно соединить в выводом RX ардуино (этот вывод в ардуино под номером 0). Второй вывод HC-05 -это RX -его нужно соединить в выводом TX ардуино (этот вывод под номером 1). Если модуль такой же как на рисунке то к его выводам 1, 2, 12, 13 нужно аккуратно припаять тоненькие проводочки и соединить их с Ардуино т.к. показано на схеме выше, если этот модуль уже с большим разъемом то можно ничего не паяя соединить проводами перед этим разобравшись с соединениями на этом модуле. Вывод 12 модуля соединяется в выводом 3.3V Arduino, вывод 13 соединяется с выводом GND Arduino. Нумерация выводов на модуле HC-05 идёт также как и на микросхемах (вообще этот модуль можно называть гибридной микросхемой) слева от специальной метки (обычно точка или полоска) первый вывод и далее по кругу до последнего. Выводы 8 и 16 микросхемы-драйвера L293D - являются выводами + питания один из них -это питание логической части этой микросхемы, другой - питание силовой но, как показала практика, их можно соединить и подать на +12 В от батареек. Выводы 4, 5, 12, 13 этого драйвера соединяются с землёй т.е. минусом батареек. Параллельно с драйверами LD293D питание от батареек, через специальный разъем, идёт на Arduino и на минус светодиодных фар. Для фар можно использовать белые светодиоды и соединить их как на схеме последовательно друг с другом и резистором с сопротивлением 510 Ом (к51, 510 -обозначения на резисторе если маркировка буквенная, цветовое обозначение показано на рисунке 1). Маленькая штуковина в светодиоде и длинный вывод указывают на то куда надо подавать светодиоду + но м.б. наоборот поэтому перед соединением желательно светодиоды проверить мультиметром. Двигатели на 12В можно вытащить например из старого плеера, проигрывателя и.т. главное чтобы он в режиме максимальной нагрузки не потреблял ток более 600мА (т.к. это максимальный постоянный выходной ток драйвера L293D). Определить ток потребляемый двигателем при максимальной нагрузке можно соединив его последовательно с миллиамперметром (или мультиметром в таком режиме) и батарейками и затормозив не надолго вал двигателя. Можно также померить сопротивление двигателя омметром (или мультиметром в таком режиме) и поделить напряжение питания (12В) на это сопротивление и если получается меньше 0.6 (0.6А = 600мА) то всё нормально и этот двигатель можно использовать. Если старого плеера и таких двигателей нет то можно подходящие EG-530AD-2F CW 12 V заказать перейдя по этой ссылке. Если после окончательной сборки и всех необходимых действий моторчики как либо неправильно крутятся то можно поменять местами их выводы (сначала в одном, потом в другом, потом снова в первом - один из этих вариантов вместе с начальным д.б. правильным). Перед тем как всё соединять (хотя можно и после т.к. ничего страшного) нужно загрузить скетч в Ардуино. Скетч очень простой:

void setup()
{
   Serial.begin(9600); // инициализация порта
   pinMode(2, OUTPUT);
   pinMode(3, OUTPUT);
   pinMode(4, OUTPUT);
   pinMode(5, OUTPUT);
   pinMode(6, OUTPUT);
   pinMode(7, OUTPUT);
   pinMode(8, OUTPUT);
}

void loop()
{
  if (Serial.available() > 0)
  {
    PORTD = Serial.read();
  }
}

В данном скетче инициализируется последовательный порт (uart (для связи с hc-05)) для работы на скорости 9600 бод, после чего выводы 2-8 (хотя 7 и 8 можно и не устанавливать т.к. пока что они не нужны) устанавливаются как выходы и в основном цикле принимается байт и выводится на порт D микроконтроллера. В Ардуино УНО порт D идёт на выходы 0-7 поэтому после приёма байта будет меняться состояния выводов с 0 по 7. Скачать скетч можно по ссылке: https://yadi.sk/d/QiK7SI0_q5X3e. Если Ардуино не работает без драйвера установленного на компьютере то нужно скачать и установить этот драйвер, о том как это сделать см. в статье Простое управление шаговым двигателем с компьютера через ардуино (там сразу же после 3х картинок об этом подробно написано). Скетч для Ардуино очень простой чего не скажешь про программу для Android т.к. текст её получился длинный и к тому же помимо основного кода необходимо изменять файл манифеста, XML файл разметки и добавить некоторые картинки в проект. Всё это можно сделать самому в среде Android Studio или Eclipce но я уже написал простую программу которую можно скачать по ссылке https://yadi.sk/d/7OBITtzFq5Z5G -эту программу можно переместить на смартфон или планшет и установить обычным способом. Для того чтобы связать модуль HC-05 и смартфон или планшет нужно выяснить MAC адрес модуля. У каждого модуля свой MAC адрес. Если вся схема (или часть с питанием, ардуино и модулем) собрана то нужно её включить (т.е. сделать так чтобы на модуль HC-05 попало питание) после чего зайти в настройки смартфона в раздел Bluetooth, включить Bluetooth и нажать кнопку "поиск устройств", после того как будет найдено HC-05 нужно будет сделать сопряжение нажав на значке HC-05 потом введя пин-код "1234" и подождав окончания сопряжения. Далее для тоо чтобы выяснить MAC адрес можно скачать программу "Bluetooth терминал" с Google Play и открыв её найти HC-05 и посмотреть MAC адрес. MAC адрес также может некоторое время высвечиваться когда смартфон находит модуль но если так не получилось то нужно скачивать программу. Если с первой скачанной программой не получилось то можно скачать вторую (так было у меня). Если машинка собрана и готова то можно её включить и после чего открыть программу на смартфоне и ввести MAC-адрес в верхнее поле, после того как адрес введён надо нажать кнопку справа от поля и подождать некоторое время (я не очень хороший программист поэтому не предусмотрел полосы прогресса или чего то подобного) после того как время прошло и соединение установилось можно убрать клавиатуру нажатием кнопочки слева внизу и управлять машинкой нажимая зелёные кнопочки на экране!
 Теперь немного о механике машинки. Для того чтобы сделать её было не трудно механика используется самая простая. У машинки 3 колеса одно поворачивается в любую сторону а два других колеса одновременно являются шкивами на которые через ремешки идёт передача сразу со шкивов на моторчиках без всяких редукторов - такая конструкция позволяет максимально сохранить момент при своей простоте. Если колесо сразу надеть на вал то моторчик не потянет, если использовать фрикционную передачу на колесо то может быть проскальзывание поэтому самым лучшим вариантом, на мой взгляд, является передача через ремешки. Свободно поворачивающееся колесо можно взять с тележки или стула и прикрутить к машинке болтами. Испытание машинки и некоторую информацию по теме можно посмотреть на видео:
Для того чтобы машинка выглядела красиво можно сделать для неё корпус из картона и раскрасить:
Если платформа сделана из металла то картонный корпус можно достаточно хорошо прикрепить неодимовыми магнитами. Полностью металлический корпус делать не надо т.к. иначе это помешает управлению, т.к. электромагнитные волны со смартфона не смогут попасть на блютус модуль из за экранирования корпусом. Можно делать корпус из дерева или пластика - это не помешает прохождению волн или же можно делать из чего угодно если вывести модуль наружу. Если вы хорошо разбираетесь а программировании для Android и хотите переделать программу под свои нужды то можете скачать проект для Android Studio по сcылке https://yadi.sk/d/g2I6br-qq5ecF.
 Как видите при изготовлении такой машинки есть некоторые трудности но в целом всё не так трудно как может показаться на первый взгляд. Удачи в построении машинок!
КАРТА БЛОГА (содержание)

Комментариев нет:

Отправить комментарий