Arduino — Android и Arduino связать через Bluetooth


Содержание

Cлучайные товары

Машинка на радиоуправлении.

Подставка под ножи из фанеры на ЧПУ станке.

Мы в соц сетях

Bluetooth HC-06 и ардуино. Приложение андроид для управления Реле с телефона.

Как подключить Bluetooth модель HC-06 или HC-05 рассказывал в Уроке 11 — Bluetooth модуль HC-06. Управление Arduino с телефона.

В уроке мы использовали стороннее приложения для Android телефона или планшета. Сегодня мы напишем свое приложение в mit app inventor. Подправим скетч из Arduino урока 11, для работы с низкоуровневым реле. С высоко уровненным рее работать будет без изменения скетча. Чем отличаются высоко уровневые реле от низко уровневых. Низко уровневые включается, когда на сигнальны Пин реле подается LOW. Высоко уровневый включается, когда подадим HIGH. Конструктивные особенности и более подробную информацию ищите в интернете.

Приступим к приложению для Андроида , для этого воспользуемся самым простым решением app inventor 2. Если у вас возникли сложности с данной средой разработки у меня на сайте есть боле простые примеры написания приложений в данной среде разработки : Wi-Fi реле на NodeMCU. Управление Android приложением
Интерфейс программы будет выглядеть вот так.

В приложение нужно добавить: BluetoothClient1 и Clock1 с интервалом обновления 100.
Кнопка «Bluetooth» осуществляет подключение к hc-06 модулю.
Копка «Disconnect» разрывает соединение.
Кнопки «On» и «Off» включают и выключают реле.
Блоки программы для подключения и отключения модулю HC-06 :

Блок управления и вывода информации на дисплей.

Копка включения отправляет по блютуз каналу значение равное 1. Кнопка отключения отправляет 0.
Cloc1 это часы, проверяют информацию которая пришла по Bluetooth и выводит ее в текстовое поле Info.
Приложение на Android устройстве выгладить вот так.

После нажатия на кнопку «Bluetooth». У вас откроется окно выбора устройства.

Выбираете ваше устройство. После чего можно управлять реле. При нажатии на кнопку «On».

В поле Info выведется информация «Rele On — Portal-Pk.ru». При выключении реле на экран телефона будет строка «Rele Off — Portal-Pk.ru»

Подключаем к Arduino UNO реле и модуль по схеме.
Если у вас Arduino NANO, то реле и bluetooth модуль hc 06 подключить по схеме.

Скетч bluetooth реле ардуино будет вот таким.

Если вы сделали все правильно, то у вас получиться вот такой результат.

Подключенная нагрузка будет включаться и выключаться . Если у вас работает наоборот возьмите код для Arduino из урока: Bluetooth модуль HC-06. Управление Arduino с телефона.

Сегодня мы разобрали связку ардуино андроид bluetooth . Планирую сделать машину с управлением по bluetooth . И много другое.

Arduino.ru

Передача данных от Andro >

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

Добрый день! Вчера приобрел в магазине ардуино нано и синезуб к нему. Сегодня проверил — все работает, но почему-то синезуб не принимает данные. Пользовался этой http://cxem.net/arduino/arduino64.php статьей, в ней неправильно указан пин 3.3 вольта, но это я исправил. В результате: синезуб обнаруживается, андроид сопряжается с ним и передает данные, но до ардуины данные не доходят (вообще не срабатывает Serial.available() ). Можете подсказать, с чем это может быть связано??

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

синезуб будет сопрягаться с андроидом даже если ему подать просто питание.

откуда вы знаете что данные доходят до синезуба и им принимаються?

каким способом вы посылаете данные из под андроида? терминал или готовая апликация?

как обрабатываете на стороне ардуины,правильно ли настроена скорось передачи данных на синезубе и ардуине.?

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

А вообще, я же привел ссылку на статью — все оттуда брал. Просто с андроидом пока не дружу, на iOS только писал.
Схема полностью из статьи, за исключением одного: в статье вместо 3.3В на Bluetooth выводится AREF.

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

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

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

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

У меня по такой схеме не определяется устройство, поэтому вряд ли получится через консоль что-то получить. Да и не за чем. С лампой все ок, а при приеме данных я ставил ее «поморгать» — ноль реакции.

Если честно, не понял, что вы имеете в виду под «подключиться». Мне бы просто гарантировано отправить нолик или единицу, чтобы исключить ошибки андроида..

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

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

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

Блютуз подключение в Android (проект для Arduino). Часть 1.

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

Смотрите видео: Блютуз подключение в Andro >

В частности, это в рамках моего проекта связи Android устройства с Arduino, поскольку меня недавно с АлиЭкспресс пришел модуль hc-06, это модуль Bluetooth для подключения.


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

Давайте создадим новый проект, это как обычно EmptyActivity , дадим названием, допустим Bt-hc-06 , да будет так.

Делаем под минимальную, под пятую версию, там разберемся.

Завершилось создание проекта, давайте перейдём в наш проект в манифест, нам нужно будет добавить строки для разрешение работы с блютузом.

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

Будет 2 строки в 2 разрешения Bluetooth и Bluetooth_ADMIN также давайте сделаем чтобы наша MainActivity располагалась в портретном виде.

Манифест больше нам не понадобится перейдём в ActivityMain.xml в слой LayOut, поскольку код у меня уже в принципе набран, сверстан, я буду лишь добавлять блоками фрагменты кода и буду где-то походу пояснять, так сказать, что у нас к чему и зачем.

Закрываем RelativeLayout это будет у нас общая так сказать рамка, канва.

Добавляем textview с Id textinfo , добавим listview , список куда у нас будут подгружаться данные об найденных устройствах, далее мы добавим FrameLayout , он будет нужен для отображение всех устройств, которые мы будем видеть, к которым вернее мы подключимся.

Также во внутрь FrameLayout мы добавим RelativerLayout для позиционирования элементов внутри.

Я хочу показать вам на примере четырех канального включателя-выключателя, который будет подключаться к Bluetooth адаптеру и передавать команды, которые Arduino будет принимать и соответственно на этих 4 пинах Arduino будет выполняться какие-либо действия.

Это может быть, как включение реле, как мигание светодиодов, различное, то есть мы конкретно здесь в коде и не прописываем, что мы на самом деле будем подключать в Arduino, но в принципе у нас будет кнопка 1, кнопка 2, кнопка 3, кнопка 4, типа ToggleButton, которая фиксирует нажатое состояние.

С RelativeLayout мы практически закончили, давайте теперь перейдем в дизайн, и обратите внимание, в виде компонентов получается следующая картина: надпись, список, и вот это вся панель.

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

Давайте мы переключим listView , мы его сделаем невидимым,

а для FrameLayout напишем

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

Эти кнопки типа ToggleButton , при нажатии на которые они фиксируют, свое состояние, при повторном нажатии, естественно меняется цвет, меняются названия.

По поводу кнопок, я хотел вам показать, как у меня проставлены названия кнопок, здесь событии нажатия свойство textOff примет значение название кнопки + OFF, при повторном нажатии textOn примет значение название кнопки + ON, кнопки я называл по номеру используемых пинов в ардуинке.

Всё здесь позиционировано, отступы по 70 единиц от краев, и 48 друг от друга, поскольку то устройство на котором будут тестировать немножко не совпадает по размерам и скорей всего съедет в сторону…)

Давайте теперь посмотрим, что у нас получилось по поводу эмулятора, я хочу вам представить очень удобный, на мой взгляд, эмулятор называется LDPlayer (не путать с ЛДПР)…)

Смотрите видео: Найдена лучшая замена эмулятора Andro >

Так же дополнительная информация есть в основном видео к этой статье. А в двух словах — стоит попробовать!

Переключим обратно значения видимости для ListView и FrameLayout с кнопками: скроем как это было и вернёмся всё-таки к написанию кода.

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

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

Поясню идею в целом: при соединении телефона с блютуз модулем станут видны кнопки, при нажатии на них будет меняться их состояние, вид, текст. Функция Toast будет писать, какая кнопка нажата и по блютуз будут передаваться команды – буква a – (английская, маленькая)- нажата кнопка D10 – включить, на выход Arduino 10 десятый идет напряжение. Буква A — (английская, большая)- повторно кнопка D10, выключить, на выход Arduino десятый пин напряжение перестает подаваться.

То же самое правило действует и для остальных кнопок: D11 , D12 , D13 , — b/B, c/C, d/D – вкл/выкл.

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

Контролируем устройства через bluetooth с помощью arduino – arduino+

Уроки Arduino: управление устройствами со смартфона для чайников

20 апреля в 23:41

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

Предлагаем простой урок для начинающих и чайников о том как с помощью Arduino через Bluetooth управлять смартфоном.

Если вам после этого урока захочется познакомиться с Arduino поближе – вы можете найти книги о нём здесь.

Устройства

Модуль – Bluetooth Module HC 05/06 Плата – Arduino Светодиод (LED) Резистор – 220Ω

Программное обеспечение

Arduino IDE
Android Studio (на самом деле не нужно, т.к. приложение для Андроида вы найдете ниже)

Шаг 2. Как это работает

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

Шаг 3. Начинаем собирать схему

Цепь в нашем уроке настолько проста и мала, что нам нужно сделать всего несколько соединений:

Arduino Pins___________Bluetooth Module Pins
RX (Pin 0)___________________TX
TX (Pin 1)___________________RX
5V_________________________VCC
GND_______________________GND

Подключите минус светодиода к GND на Arduino, а плюс к контакту 13 через сопротивление 220 Ом – 1 кОм. В целом, на нашем рисунке ниже всё довольно наглядно.

Шаг 4. Загрузка программы в Arduino

Теперь нам нужно написать программу и загрузить её в наш Arduino. Если вы этого пока еще не умеете делать – скачайте книги здесь. Код ниже именно то, что нам нужно загрузить в Ардуино.

/* Bluetooh Basic: LED ON OFF * Coder – Mayoogh Girish * Website – http://bit.do/Avishkar * Download the App : https://github.com/Mayoogh/Arduino-Bluetooth-Basic * This program lets you to control a LED on pin 13 of arduino using a bluetooth module */ char data = 0; //Variable for storing received data void setup() < Serial.begin(9600); //Sets the baud for serial data transmission pinMode(13, OUTPUT); //Sets digital pin 13 as output pin >void loop() < if(Serial.available() >0) // Send data only when you receive data: < data = Serial.read(); //Read the incoming data and store it into variable data Serial.print(data); //Print Value inside data in Serial monitor Serial.print(”
“); //New line if(data == ‘1’) // Checks whether value of data is equal to 1 digitalWrite(13, HIGH); //If value is 1 then LED turns ON else if(data == ‘0’) // Checks whether value of data is equal to 0 digitalWrite(13, LOW); //If value is 0 then LED turns OFF > >

Шаг 5. Как происходит процесс

Модуль HC 05/06 работает по последовательному каналу связи. Андроид-приложение последовательно отправляет данные на модуль Bluetooth, когда вы нажимаете определенную клавишу. Bluetooth на другом конце получает данные и отправить на Arduino через TX-соединение модуля Bluetooth (RX-соединение Arduino) .

Код загруженный в Arduino проверяет полученные данные и сравнивает их. Если получена “1” – светодиод включается и выключается при получении “0”. Откройте монитор последовательного порта и наблюдайте полученные данные.

Шаг 6. Приложение для Андроид-устройств

В этом уроке мы не будем касаться создания приложений для устройств на основе Андроида. Вы можете скачать приложение на GitHub.

Как использовать приложение?

После того как мы подключились через Bluetooth – нам нужно скачать и установить приложение, которое при помощи смартфона


Подключение Arduino Bluetooth модулей HC 05 HC06

Bluetooth в Arduino позволяет объединять различные устройства по беспроводному каналу связи. Вы можете передавать сообщения от датчиков и контроллеров Arduino на Android устройства и наоборот, получать команды со смартфонов по bluetooth.

В этой статье мы узнаем, как с помощью популярных и не очень недорогих bluetooth модулей HC05 и HC06 организовать беспроводную работу своего ардуино проекта.

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

Bluetooth в Arduino проектах

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

Для связи платы Ардуино и компьютера используется интерфейс UART (Serial).

Так как любая плата Ардуино имеет хотя бы 1 последовательный порт UART, для подключения Bluetooth модуля не требуются специализированные библиотеки и схемы.

Самыми популярными модулями являются устройства на основе чипа BC417. Эта серия называется HC. Модули HC-03 и HC-05 могут быть и сервером соединения, и клиентом, они обладают широким набором АТ команд.

Для подключения к ПК потребуются модуль Bluetooth, плата Ардуино, соединительные провода и компьютер.

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

Схема подключения Bluetooth-модуля к плате представлена на рисунке. Пин RX на ардуино подключается к TDX, TX – к RDX, GND – к GND, 5V – к VCC.

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

int val; vo ) // при 0 выключается светодиод > >

Теперь нужно настроить соединение телефона и модуля. Для установки соединения нужно зайти в настройки телефона и включить Bluetooth.

Как только устройство будет найдено, нужно ввести пароль – обычно это «1234» или «0000». После этого нужно зайти в приложение, нажать на кнопку «подключить Bluetooth» и выбрать нужное устройство.

При успешном сопряжении на модуле светодиод начнет мигать медленнее, примерно 1 раз в 2 секунды.

В скетче светодиод включается и выключается при получении цифр «1» и «0». Кроме цифр также можно использовать буквы латинского алфавита с учетом регистра.

Аналогичным образом можно подключаться к модулю при помощи компьютера. Для этого существуют различные программы, которые подключатся к COM-порту. При запуске программы запрашивают номер порта, скорость и тип подключения. При успешном подключении на экране появится поле терминала, в которое нужно ввести с клавиатуры цифры/буквы, включающие светодиод.

Описание модуля Bluetooth HC 06

Все существующие типы модулей Bluetooth имеют свои особенности, но по функциям и действию они похожи. Одним из видов модулей является Bluetooth HC 06. Со стороны Ардуино модуль выглядит как обычный последовательный интерфейс, поэтому можно сразу наладить взаимодействие с устройством на компьютере.

Основные характеристики модуля:

  • Питание 3,3В – 6 В;
  • Максимальное входное напряжение 5 В;
  • Максимальный ток 45 мА;
  • Скорость передачи данных 1200–1382400 бод;
  • Рабочие частоты 2,40 ГГц – 2,48ГГц;
  • Поддержка спецификации bluetooth версии 2.1;
  • Малое потребление энергии;
  • Высокий уровень защиты данных;
  • Дальность связи 30 м;
  • Для подключения к смартфону используются следующие данные – пароль «1234», скорость передачи данных 9600, имя модуля HС-06.

Модуль имеет следующие контакты:

  • VCC , GND – плюс и минус питания;
  • RX и TX – приемник и передатчик;
  • MCU-INT — выводит статус;
  • Clear (Reset) – сбрасывание и перезагрузка модуля. Последние два вывода обычно не задействованы в работе, поэтому сейчас производятся модули без этих контактов.

Модуль HC-06 используется только в режиме slave, то есть он не может самостоятельно подключаться к другим устройствам Bluetooth. Все настройки для подключения «пароль, скорость передачи данных» можно изменить при помощи АТ-команд.

В комплектацию модуля не входят соединительные провода.

Сравнение модулей Bluetooth HC 05 и HC 06

Модули HC 05 и HC 06 являются наиболее используемыми, их чаще остальных можно найти в продаже. Принцип действия этих модулей схож, оба модуля основаны на одинаковом чипе, но есть и важные отличия. В первую очередь, модуль HC 05 может работать в двух режимах работы – и в качестве ведущего (master), и в качестве ведомого (slave).

Оба модуля представляют собой две спаянные платы. Одна из них – заводская с микросхемой, другая нужна для самодельных устройств, она оснащена ножками GPIO со стандартным шагом 2,54 мм и стабилизатором напряжения.

Модуль HC-05 стоит несколько дороже, но он имеет большее количество полезных рабочих функций.

Распиновка модуля HC-05:

  • EN – управление питанием;
  • Питание VCC;
  • GND;
  • RX, TX;
  • STATE – индикация;
  • KEY – активирует режим управления при помощи АТ-команд. При KEY=0 – передача данных, при KEY=1 – АТ-команды.
Цукерберг рекомендует:  Программирование - Android Studio, как правильно делать отладку приложения

Скорость передачи АТ команд по умолчанию для HC-05 равна 38400, для HC-06 – 9600. Важным моментом является то, что в конце АТ команд для HC-05 должны быть символы CRLF.

Основные характеристики HC-05:

  • Рабочие частоты 2,4 – 2,48 ГГц;
  • Мощность передачи 0,25 – 2,5мВт;
  • Дальность 10 м;
  • Максимальная скорость обмена данными 115200 бод;
  • Питание 3,3В;
  • Ток 30-40 мА;
  • Рабочие температуры от -25С до 75С.

Подключение обоих модулей к плате Ардуино одинаково.

Вариант подключение модуля с использованием делителя.Представлен вариант для Arduino Nano, но он подойдет и к плате Uno.

Заключение

В этой статье мы рассмотрели варианты подключения и работы с одними из самых распространенных Ардуино модулей Bluetooth HC05, HC06.

Никаких особенных сложностей с этими модулями у вас быть не должно — просто подключайте его к пинам с аппаратным или программным UART, после чего используйте традиционные библиотеки (Serial для модуля, подключенного к 0, 1 пинам, SoftwareSerial в случае присоединения к другим).

Подключение Bluetooth к вашему Arduino-проекту может существенно увеличить ваши возможности по взаимодействию с другими устройствами.

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

Будем надеяться, что вы сможете сделать свой первый проект после прочтения этой статьи.

ROBOTяга ARDUINO — 5. БЛЮТУЗ управление. — DRIVE2

И так работяга стал послушней – уже умеет слушаться пульт от телевизора �� www.drive2.ru/b/2818339/А давайте его научим слушаться телефон!

И поможет нам в этом Блютуз.

Необходимо:— Блютуз модуль — HC-06 wireless Bluetooth (либо другой).— Провода.— Двухсторонний скотч.

— Софт — Bluetooth RC Controller.

В комплекте с роботом шел Блютуз модуль — HC-06.
Подойдут модули типа HC-04 или 05.


Но забегу вперед – если вы все же захотите когда-нибудь загружать работягу через Блютуз рекомендую именно НС-05 – о его достоинствах рассказал здесь:
www.drive2.ru/c/2749401/

Подключение:Все, что нужно подключить — это Блютуз модуль.

Подключение простое – смотрите таблицу ниже.

ПРИМЕЧАНИЕ: Заодно я указал подключения Моторов – я буду в каждом примере указывать необходимые подключения.

Обратите внимание, что поскольку разъем TXD Блютуз подключен к разъему RХ Arduino, то пока включении Блютуз Arduino никого будет слушать — только Блютуз.
ВНИМАНИЕ! На время когда вы хотите работать с Arduino по USB – Блютуз нужно выключать. Я для этого поставил выключатель на питание «+» Блютуз.

Прикрепляем Блютуз к роботу – можно использовать двухсторонний скотч и место в «корме» робота.

Программирование.Сначала немного теории.Мы уже научили работягу слушать ИК волны…Блютуз – это то же волны – только радио.А в остальном принцип тот же – управляющее устройство будет передавать коды по блютуз, которые РОБОТяга будет выполнять.Только предварительно нам считывать коды с устройства не нужно – мы их сами зададим.

Кодами для команд будут буквы:

F – вперед;B – назад;R – вправо;L – влево;

Посылать их может любое устройство:— которое может подключиться по Блютуз к РОБОТяге;

— имеющее программу, которая может посылать через Блютуз сигналы — терминал RS232.

Сначала устанавливаем соединение между блютузами РОБОТяги и «устройства» — через настройки Блютуз «устройства» — пароль по умолчанию для модуля робота — 1234.

Что касается софта – для компьютера можно использовать, например ARDUINO IDE или Termite 3.2. Пример здесь: lesson.iarduino.ru/page/b…-ustroystvami-s-telefona/Установив соединение и запустив программу мы через нее можем отправлять на робот коды и робот будет выполнять команды.

Но согласитесь, это не очень удобно… удобнее нажимать на кнопки – для этого можно написать программку, например для Android – что бы кнопкам соответствовали кодовые буквы.

Но мы даже этого делать не будем – поскольку уже есть готовая программа!А для чего же, спросите вы, я все это писал?

Для того что бы развеять «магию» Блютуза и показать как на самом деле все банально

Для Android устройств будем использовать Bluetooth RC Controller – готовую к использованию программу, позволяющую управлять не только направлением движения, но и скоростью и даже фарами!

Управление скоростью и фарами в моем скетче нет – это домашнее задание для пытливых умов ��
geekelectronics.org/ardui…dklyuchaem-bluetooth.htmlА вот еще одной функцией программки – управление движением робота с помощью наклона «телефона/планшета» мы обязательно воспользуемся.Bluetooth RC Controller можно скачать на Play Market.

Управляем Arduino через Bluetooth HC-06, с компьютера или смартфона

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

Для этих целей китайской промышленностью выпускаются различные Bluetooth-модули, среди которых широкую популярность получили модели HC-05 и HC-06.

В своё время на Алиэкспресс я приобрёл HC-06, на котором и буду проводить дальнейшие эксперименты, а так же подключать к своему китайскому аналогу Arduino.

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

Модуль имеет 34 вывода, среди которых: выводы для соединения с компьютером по UART, передачи звука по методу PCM (импульсно кодовая модуляция), аналоговый вход и выход, контакты для подключения к USB разъёму, SPI интерфейс, а также порты общего назначения.

На самом деле не все эти выводы доступны к использованию, заблокирован доступ к выводам передачи звука (5-8), аналоговым входу и выходу (9, 10), а так же к группе контактов для подключения к USB (15, 20).

HC-06 построен на чипе BC417 (BlueCore4-External device), спецификация Bluetooth V2.0. На борту так же имеется кварц на 26 МГц и флеш-память на 8 Мб. Питание осуществляется от 3,3В.

Для своих конструкций удобнее всего использовать модуль с макетной платой, на которой выведены необходимые контакты для подключений, а так же имеется стабилизатор напряжения, который позволяет питаться от 5 вольт.
При покупки подобных модулей, можете столкнуться с различными их маркировками. По сути это одно и то же устройство, отличающееся прошивкой, которая определяет режим модуля (master / slave).

Отличие HC-05 от HC-06 состоит в том, что HC-05 можно использовать в качестве ведомого (master) или ведущего (slave). Данные режимы задаются с помощью АТ-команд.

Кнопка на плате модуля переключает его в режим ввода АТ-команд. Режим master даёт возможность модулю самому обнаруживать подобное устройство и организовывать связь с ним.

Модуль HC-06 может работать только в одном фиксированном режиме slave.

Так же существуют модели HC-03 и HC-04, но они выпускаются для промышленных целей.

Обозначение контактов на плате HC-06.

STATE – проверка состояние модуля. На этом контакте дублируется сигнал, который отображает встроенный на плате светодиод. Если он очень быстро мигает, значит модуль находится в активном состоянии. В режиме установления связи ток составляет 30-40 мА. Когда модуль устанавливает связь с другим устройством, светодиод просто горит. В режиме передачи данных ток составляет 8 мА.

RX – получение данных.
TX – передача данных.
GND – подключается к земле.
+5V – питание +5 Вольт
EN – включение / выключение модуля. Если на этот контакт подать логическую 1 (5 вольт), модуль выключится, если подать логический 0 или не подключаться к этому контакту, модуль будет работать.

По-умолчанию HC-06 имеет имя для обнаружения другими устройствами «HC-06», с пин-кодом «1234».

Для изменения этих данных нужно модуль подключить к компьютеру и с помощью программы-терминала ввести АТ-команды. Это можно сделать с помощью переходника USB to COM с TTL уровнями. Для этих целей подойдёт адаптер на PL2303HX, CH340G, либо другой подобный. На компьютере к этому моменту уже должен быть установлен драйвер для USB адаптера.

Контакты соединяем следующим образом:

HC-06 Переходник USB to COM
+5V +5V
GND GND
RX TX
TX RX

При подключении этой сборки к компьютеру, красный светодиод на плате Bluetooth-модуля начнёт быстро мигать. Для ввода АТ-команд можно воспользоваться любой терминальной программой, я использую для этой цели Arduino IDE.

В настройках выбираем номер виртуального COM-порта, на котором подключен USB адаптер, в моём случае это COM44. Откроем окно «Монитора последовательного порта».

Введём заглавными буквами команду «AT», если устройство удачно подключилось, в ответ должно возвратится «ОК». По-умолчанию скорость обмена данными 9600 бод.

Для проверки версии прошивки, введём команду «AT+VERSION», в моём случае ответ возвратился «OKlinvorV1.8».

Командой «AT+NAMEyyy», где ууу — произвольный набор символов на латинице, можем сменить имя, по которому будут находить наш модуль bluetooth-устройства (по-умолчанию HC-06). В своём примере я ввёл «AT+NAMEfox», ответ возвращается OKsetname.

Командой «AT+PINxxxx», где xxxx – произвольный набор цифр, можно сменить пин-код (по-умолчанию 1234). В ответ возвращается «OKsetPIN».

Командой «AT+BAUDx», где x – значение от 1 до 9, можно изменить скорость в бодах (по-умолчанию 9600).

1 – 12002 – 24003 – 48004 – 96005 – 192006 – 384007 – 576008 – 115200

Допустим, если ведём команду «AT+BAUD8», где 8 — скорость 115200 бод, в ответ возвратится «OK115200».

Подключение HC-06 к Arduino.

Пример 1. Зальём в Arduino скетч, с помощью которого будем включать и выключать светодиод, распаянный на 13 пине Arduino, через Bluetooth-модуль.

int data;int LED = 13;vo ) < digitalWrite(LED, LOW); >>>

Если у вас нет на плате данного светодиода, подключите его к 13 пину по схеме, номиналы резисторов можно взять от 220 Ом до 1кОм.

Обесточим Arduino и подключим HC-06. Контакт TX модуля подключаем к контакту RX Ардуино (пин 0 на плате UNO), а контакт RX, к контакту TX (пин 1). Контакты +5V и GND, подключаются к соответствующим пинам Ардуино.

Конструкция в сборе. Подав питание на Ардуино, светодиод на HC-06 должен быстро мигать.

Управление Arduino через HC-06, с помощью компьютера.

Пример буду показывать на Windows XP. К компьютеру должен быть подключен любой USB Bluetooth-адаптер и установленны на него драйвера.


В моём случае использовался вот такой адаптер.

При его подключении к ПК, в трее (возле часов) появляется соответствующая иконка.

Нажимаем правой кнопкой мыши на данной иконке и в контекстном меню выбираем «Добавить устройство Bluetooth».

Ставим переключатель «Устройство установлено и готово к обнаружению» и нажимаем «Далее».

В списке обнаруженных устройств отобразится наш Bluetooth-модуль, с новым именем, которое я поменял ранее. Выбираем его и нажимаем «Далее».

В следующем окне вводим пин-код для подключения к модулю, выбрав пункт «Использовать ключ доступа из документации:». По-умолчанию это «1234», но я его сменил на «9999». Нажимаем «Далее».

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

Следует обратить внимание, при образовании связи между двумя Bluetooth-устройствами, на компьютере создастся два новых виртуальных COM-порта (будут отображаться в диспетчере устройств), один для исходящих данных, другой для входящих. Нам понадобится порт для исходящих данных, в моём случае это COM45.

Вновь открываем какую-нибудь программу-терминал, я воспользуюсь Arduino IDE. В настройках выбираем исходящий порт (у меня COM45), открываем «Монитор последовательного порта», вводим переменно команды «1» и « ». При команде «1» светодиод загорается, при «0» гаснет.

Управление Arduino через HC-06 с помощью смартфона.

Наверное уже все современные смартфоны имеют в своём составе встроенный Bluetooth. Остаётся только установить программу терминал.

В моём случае использовалась Lumia 640 DS, с установленной Windows mobile 10. В качестве программы терминала использую «BT Terminal».

На Android-смартфонах всё аналогично, в качестве программы можно использовать «Bluetooth Terminal».

Для обладателей смартфонов компании Apple не получится работать с Bluetooth-модулями HC-05 и HC-06 (Bluetooth V2.0), для них придётся использовать адаптеры с технологией BLE (Bluetooth low energy), спецификация Bluetooth 4.0. Ярким представителем является модуль HM-10.

Сопрягаем HC-06 с блютузом смартфона.

1. В «Параметрах» смартфона выбираем пункт «Устройства».
2. Далее «Bluetooth и другие устройства».
3. Включаем ползунком блютуз смартфона и нажимаем на «плюс в квадрате» для поиска и добавления нового Bluetooth-устройства, в нашем случае HC-06.

4. В разделе «Добавить устройство» выбираем «Bluetooth».
5. Смартфон произведёт поиск Bluetooth-устройств находящихся в округе и отобразит их имена. В моём примере найден модуль HC-06, который я переименовал в «fox».

6. Вводим пин-код устройства, к которому подключаемся, нажимаем кнопку «Подключиться».

Устанавливаем и запускаем терминальную программу «BT Terminal». Подключенный к смартфону модуль HC-06, отображается в списке, выбираем его.

Появится поле для ввода команд и кнопка для отправки. Вводим попеременно «1» и « » и наблюдаем за светодиодом на 13 пине, который будет зажигаться или гаснуть.

Пример 2. Подключим к Arduino три светодиода и попробуем управлять ими через Bluetooth-модуль HC-06.

Светодиоды подключил к 9, 11 и 13 пину, если будите использовать другие пины, их нужно указать в скетче.

int data;int LED1 = 9;int LED2 = 11;int LED3 = 13;vo )>>

При заливке скетча модуль HC-06 нужно отсоединить от Ардуино, потому что и компьютер, и блютуз работают по UART. Ардуина не может на одном UART работать с несколькими устройствами.

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

Команды представляют из себя цифры от 1 до 6 ( 1, 3, 5 – зажечь 1, 2 и 3 светодиоды. 2, 4, 6 – погасить). Цифры можно вводить по одной, либо в виде комбинаций.

Например: 145 – зажечь первый, погасить 2-й, зажечь 3-й.

Пример 3. Подключим к Arduino реле-модуль из статьи «Подключаем мощную нагрузку к Arduino, через реле модуль» и попробуем управлять мощной нагрузкой через Bluetooth. По сути, у нас получится «умная розетка». К реле-модулям можно подключать различные нагрузки (лампочки, насосы, вентиляторы) и управлять ими на расстоянии.

Скетч по этому примеру появится в ближайшее время.

Записки программиста

Ранее в заметке Мой первый радиоуправляемый робот на Arduino мы управляли гусеничным роботом при помощи пары устройств NRF24L01. Если помните, для этого приходилось использовать дополнительную Arduino с Joystick Shield.

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

Поэтому сегодня мы рассмотрим альтернативный подход, заключающийся в использовании Bluetooth-модуля HC-05.

Примечание: Существует похожий модуль HC-06. В отличие от HC-05, который может быть как ведущим (мастером), так и ведомым устройством, HC-06 может быть только ведомым.

В остальном HC-05 и HC-06 практически не отличаются. Также существуют модули HC-07, HC-08 и HC-09. Прочитать про различия между ними можно здесь.

HC-05 имеет шесть пинов, но из них нам понадобится только четыре: VCC, GND, RX и TX.

Кроме того, мы временно припаяем дополнительный провод к пину 34 непосредственно используемого в HC-05 Bluetooth-модуля EGBT-045MS, чтобы сменить имя, под которым будет видно устройство.

Если вас устраивает имя по умолчанию, «HC-05», то можете ничего и не припаивать. Итак, VCC и GND пины подключаем к пинам 5V и GND Ардуины, TX пин HC-05 — к пину 2, а RX пин — к пину 3, и, наконец, пин 34 EGBT-045MS — к пину 4 Ардуины.

Ответ на вопрос где искать этот 34-ый пин у EGBT-045MS, содержится в EGBT-045MS / EGBT-046S Bluetooth Module Manual [PDF]:

Пример кода прошивки:

/* Connect HC-05 TX to Arduino RX and HC-05 RX to Arduino TX */

SoftwareSerial Bluetooth(2, 3); /* RX, TX */

const int pin34 = 4;

bool newline_printed = false;

<
Serial.begin(9600);
Serial.println(“Arduino is ready”);

Serial.println(“Bluetooth is ready”);

digitalWrite(pin34, HIGH);
Bluetooth.println(“AT+NAME=ARDUINO-BLUETOOTH”);
digitalWrite(pin34, LOW);
>

<
if(Bluetooth.available())
<
char c = Bluetooth.read();
if(c == ‘#’)
<
if(!newline_printed)
<
Serial.println(“”);
newline_printed = true;
>
>
else
<
Serial.print(c);
newline_printed = false;
>
>

<
char c = Serial.read();
Serial.write(c);
Bluetooth.write(c);
>
>

Взаимодействие с модулем происходит по UART. Так как мы не хотим потерять возможность обмена данными с компьютером, используется класс SoftwareSerial. Он работает точно так же, как уже знакомый нам Serial, но, в отличие от него, может использовать произвольные пины Arduino.

Подавая высокое напряжение на 34-ый пин EGBT-045MS, мы переводим его в режим выполнения AT-команд. Полный список доступных команд можно найти в уже упомянутом EGBT-045MS / EGBT-046S Bluetooth Module Manual [PDF]. В приведенном примере просто меняется имя модуля. Сменив его один раз, лишний провод можно смело отпаивать, так как модуль запомнить свое новое имя в энергонезависимой памяти.

Можно найти великое множество готовых Android-приложений, подходящих для передачи команд модулю HC-05. Мне, к примеру, очень понравилось приложение Arduino BT Joystick. У него есть как платная, так и бесплатная версия с рекламой. Интерфейс приложения выглядит как-то так:

Жмем Connect, находим в списке наше устройство, вводим пин 1234, и можно отправлять команды при помощи кнопок, а также встроенного в телефон акселерометра. Другими словами, приложение позволяет, помимо прочего, управлять Arduino, просто вращая телефон в руках.

Важно! Насколько я смог выяснить, устройства от Apple вообще не работают с HC-05 / HC-06. Для решения этой проблемы предлагается использовать BLE модули, например HM-10 или HM-11.

Судя по видео на YouTube, HC-08 тоже подойдет. Опыта использования данных модулей на момент написания этих строк у меня, к сожалению, нет. В России их довольно сложно достать, видел только в одном интернет-магазине.


А так нужно ждать доставки из Китая.

Разные приложения посылают данные в разных форматах. В случае Arduino BT Joystick используется формат вроде:

… где ## — это разделитель, b= указывает на то, что далее содержится код кнопки, 0, 1 и так далее — это коды кнопок. Учтите, что если пользователь ничего не нажимает, то приложение непрерывно шлет ##b=0##b=0##…. Если в приложении вы разрешили использование акселерометра, то помимо значений b также будут передаваться значения x, y и z.

Преимущество использования Bluetooth заключается в том, что не нужно делать отдельный джойстик. Подойдет любой смартфон или планшет под управлением Android. Кроме того, EGBT-045MS производит впечатление модуля, который легко выпаять из HC-05 и затем использовать в самодельный платах.

Полную версию исходников к этой заметке вы найдете на GitHub. Вопросы и дополнения, как всегда, горячо приветствуются!

Включение и отключение устройств по Bluetooth с помощью Arduino (видео)

Эта статья будет иметь «итоговый» характер, то есть резюмировать столь невысокие, но мои достижения по работе с микроконтроллером Ардуино. Чтобы впоследствии, когда будет будет необходимо, можно было вернуться к этой платформе и реализовать не ней включение выключение каких-либо устройств.

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

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

Итак, давайте теперь об этом я поведаю и вам.

Принцип включения выключении нагрузки по Bluetooth с помощью Arduino

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

Схема подключения Arduino с модулем Bluetooth

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

Если у вас есть Ардуино UNO и модуль Bluetooth HC-06 или 05, то подключать надо будет следующим образом. При этом на схеме ни коим образом не отражено подключение для управляющих цепей.

То есть приведено подключение непосредственно модуля Bluetooth HC-06 к Ардуинке.

Само собой если у вас управляющими будут выходы 11 и 13, как в нашем случае, смотрите статью далее, то к ним и будет подключаться силовой блок или просто светодиод. Важным будет то, что при подключении модуля RX на одном устройстве идет к TX на другом и наоборот. Учтите это!

Скетч для Arduino дабы он работал с модулем Bluetooth

Теперь о скетче, то есть о ПО, которое заставляет работать нашу аппаратную платформу, выразимся так. Все очень просто. Смотрим.

int val; int LED = 13; int LED1 = 11; vo ) < digitalWrite(LED1, LOW); >> >

Собственно здесь идет назначение переменных, два светодиода на 11 и на 13 ножку в нашем случае. Потом с помощью Serial.begin(9600) мы подключаем наш блютуф. Ну и собственно осталось найти программку для управления блютуф.

Программа для планшета или телефона (Android) для управления нагрузкой через Bluetooth

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

Собственно с помощью этой программки и можно будет задавать критерии-условия для скетча, а значит получать сигнал на выходных ножках 11 и 13. В нашем случае задействованы кнопки 0,1,2,3. Именно они включают и выключают светодиоды. Смотрите скетч.
Первый раз при подключении устройства возможно затребует пароль, типа 000 или 1234.

Траблы с заливкой программы в Arduino

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

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

Теперь тоже самое в видео…

Танк, управляемый через Bluetooth на базе Arduino

Dmitrij 1-02-2020, 00:46 16 311 Arduino / Танки

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

Управления происходит за счет смартфона на Android через функцию Bluetooth, использован модуль HC-06.
Работает все очень просто, благодаря контроллеру Rover, который есть на Android. С помощью него посредством Bluetooth можно посылать команды на Arduino.

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

Материалы и инструменты для создания танка:- микроконтроллер Arduino UNO (но подойдет и его копия);- последовательный модуль Bluetooth (ХК-06);- драйвер двигателя;- гусеничное шасси танка (Tamiya);- редуктор для танка (Tamiya);- Jumper Cables;- паяльник с припоем;- провода;- отвертка.

Процесс разработки робота:

Шаг первый. Собираем коробку передач

Чтобы собрать коробку передач, нужно следовать инструкции. В комплекте Tamiya должно иметься два двигателя, смазка, гаечный ключ, а также редуктор. Для того чтобы машинка работала правильно, нужно использовать передаточное соотношение «58: 1». После сборки шестерни в коробке передач нужно тщательно смазать смазкой, которая идет в комплекте.

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

Шаг второй. Собираем шасси. После того как редукторы будут собраны, можно приступать к сборке шасси.

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

Установка контроллера Arduino и драйвера двигателяКонтроллер крепится к корпусу с помощью винтов, для этого сперва нужно установить кусок акриловой пластины. Помимо этого можно использовать распорки, это позволит заменить пластиковую основу.
Что касается драйвера, то здесь важно отметить, что для этих целей подойдет драйвер типа L293D.

Если же использовать официальный драйвер от Arduino Motor, он не будет работать, так как нужно менять код.


Шаг четвертый. Подключаем модуль Bluetooth

Модуль Bluetooth был приобретен автором на DX.com, он обошелся в 8 долларов. Между коробкой передач и платой Arduino есть разрыв, в это место можно установить контроллер Bluetooth.
Работает все следующим образом.

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

Электросхема выглядит следующим образом:

– «ТХ модуль Bluetooth» подключается к «RX в Arduino»;- «RX модуль Bluetooth»подключается к «ТХ Arduino»;- «VCC модуля Bluetooth» подключается к «5В из Arduino»;- «Земля из модуля Bluetooth» подключается к «GND Arduino».


Шаг пятый. Устанавливаем FPV камеру

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

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


Шаг седьмой. Программный код танка

Машинка на arduino и Bluetooth Android

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

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


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

Здесь нет руководства по редактированию кода в Arduino IDE, да и мы использовать его будем только для заливки нашего кода. А составлять алгоритм управления будем в программе под названием FLProg. Программа управления со смартфона — HmiKaskada_free.

Но сначала о железе, которое нам понадобится.

Машинка на arduino и Bluetooth — аппаратная часть

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

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

Вся электронная начинка отправилась на запчасти.

Для управления электродвигателями нашего будущего творения понадобится Н-мост на микросхеме L298N Ссылка на Али, я брал у именно этот. Картинка кликабельна.

Н-мост для arduino

Может управлять двумя двигателями в диапазоне напряжений 5 — 35 вольт. Поддерживает ШИМ, то есть можно регулировать обороты двигателей. На плате есть вывод стабилизированного напряжения 5 вольт для питания ардуино.

Схема подключения проста и незатейлива:

Схема подключения L298N а arduino

Следующей неотъемлемой частью электронной начинки нашего проекта является bluetooth модуль HC-06. Самый обычный модуль для ардуино, настолько популярен что в дополнительном описании не нуждается.

HC-06 bluetooth for arduino

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

Ведроид-мобиль — робот на Arduino — Часть 3. Подключаем Bluetooth

В этот раз я опишу процесс подключения к моему роботу “Ведроид-мобиль” модуля Bluetooth JY-MCU и реализую управление через смартфон на Android.

Ранее я описал процесс сборки мотоплатформы для робота на Arduino, подключения модуля Motor Shield и работу с ним.

Модернизация Motor Shield

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

Меня этот нюанс совсем не устраивает. Именно поэтому я решил взяться за паяльник и привести Motor Shield к удобному для меня виду.

Аккуратно выдрал родные панельки контактов и выкинул их нафиг.

Установил на их место нормальные.

В таком виде модулем стало пользоваться гораздо удобнее. Теперь я смогу нормально подключить провода от Bluetooth в разъемы, а не припаивать их намертво к контактам на Motor Shield.

Bluetooth модуль JY-MCU для Arduino

Сам Bluetooth модуль JY-MCU довольно миниатюрный. В комплект поставки входит кабель для подключения. Назначение выводов расписано на обратной стороне.

Запитать его можно от источника питания 3,6-6В. Это предоставляет нам возможность подключить его напрямую к Arduino без использования стабилизатора или делителя напряжения.

Код, используемый при подключении к устройству: 1234.

Подключение Bluetooth JY-MCU к Arduino Mega 2560

Подключение довольно простое.

Официальная схема подключения:

  • VCC на JY-MCU подключаем к +5В Arduino
  • GND на JY-MCU подключаем к GND Arduino
  • TXT на JY-MCU подключаем к RX (0) на Arduino
  • RXD на JY-MCU подключаем к TX (1) на Arduino

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

Меня такой вариант не устраивает, поэтому я решил использовать дискретные порты с поддержкой Serial.

Неофициальная схема подключения:

  • VCC на JY-MCU подключаем к +5В Arduino
  • GND на JY-MCU подключаем к GND Arduino
  • TXT на JY-MCU подключаем к дискретному PIN 50 на Arduino
  • RXD на JY-MCU подключаем к дискретному PIN 51 на Arduino

Вот теперь можно загружать скетчи без отключения питания модуля Bluetooth.

Чтобы закрепить Bluetooth, я решил использовать плату Proto Shield и миниатюрную беспаечную макетную плату. К ней в будущем и буду подключать остальное оборудование, элементы управления и индикации.

Скетч для управления роботом на Arduino по Bluetooth через смартфон на Android

В своём скетче я реализовал следующие функции:

  • Движение вперед
  • Движение назад
  • Разворот влево
  • Разворот вправо
  • Плавный поворот влево при движении вперед
  • Плавный поворот вправо при движении вперед
  • Плавный поворот влево при движении назад
  • Плавный поворот вправо при движении назад
  • Остановка

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

//Создаем объекты для двигателей AF_DCMotor motor1(1); //канал М1 на Motor Shield — задний левый AF_DCMotor motor2(2); //канал М2 на Motor Shield — задний правый AF_DCMotor motor3(3); //канал М3 на Motor Shield — передний левый

AF_DCMotor motor4(4); //канал М4 на Motor Shield — передний правый

// Создаем объект для сервопривода
Servo vservo;

SoftwareSerial BTSerial(50, 51); // RX, TX

// Создаем переменную для команд Bluetooth char vcmd; // Создаем переменные для запоминания скорости двигателей int vspdL, vspdR; /* Создаем переменную, на значение которой будет уменьшаться скорость при плавных поворотах. Текущая скорость должна быть больше этого значения. В противном случае двигатели со стороны направления поворота просто не будут вращаться */

attach(9); // или 10, если воткнули в крайний разъём // Поворачиваем сервопривод в положение 90 градусов при каждом включении vservo.

write(90); // Устанавливаем максимальную скорость вращения двигателей vspeed(255,255);

// Вперед if (vcmd == ‘F’) < vforward(); >// Назад if (vcmd == ‘B’) < vbackward(); >// Влево if (vcmd == ‘L’) < vleft(); >// Вправо if (vcmd == ‘R’) < vright(); >// Прямо и влево if (vcmd == ‘G’) < vforwardleft(); >// Прямо и вправо if (vcmd == ‘I’) < vforwardright(); >// Назад и влево if (vcmd == ‘H’) < vbackwardleft(); >// Назад и вправо if (vcmd == ‘J’) < vbackwardright(); >// Стоп if (vcmd == ‘S’) < vrelease(); >// Скорость 0% if (vcmd == ‘0’) < vspeed(0,0); >// Скорость 10% if (vcmd == ‘1’) < vspeed(25,25); >// Скорость 20% if (vcmd == ‘2’) < vspeed(50,50); >// Скорость 30% if (vcmd == ‘3’) < vspeed(75,75); >// Скорость 40% if (vcmd == ‘4’) < vspeed(100,100); >// Скорость 50% if (vcmd == ‘5’) < vspeed(125,125); >// Скорость 60% if (vcmd == ‘6’) < vspeed(150,150); >// Скорость 70% if (vcmd == ‘7’) < vspeed(175,175); >// Скорость 80% if (vcmd == ‘8’) < vspeed(200,200); >// Скорость 90% if (vcmd == ‘9’) < vspeed(225,225); >// Скорость 100% if (vcmd == ‘q’) < vspeed(255,255); >>

Andro >

Связка смартфона Andoid и Arduino предоставляет огромные возможности для создания современных проектов, упрощая удаленное программирование, управление и синхронизацию данных. Мобильные приложения на смартфоне дают взаимодействовать с реальным физическим миром из любой точки земли с помощью привычных всем гаджетов. Представляем вам обзор Android приложений для работы с Arduino. Для простоты мы выбрали несколько видов приложений, предназначенных для работы с ардуино: приложения, позволяющие создавать скетчи, справочники и Bluetooth/Wi-fi-контроллеры.


ArduinoDroid

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

В настоящее время поддерживаются только платы Arduino Uno R3 и платы на базе FTDI (Duemilanove, Diecimila), но планируется поддержка Mega, Due и Nano. Другие функции, которые необходимо реализовать, включают расширенную настраиваемую подсветку синтаксиса, интеллектуальные подсказки кода (автозаполнение) и интеграцию сторонних приложений (руководства, запросы на компиляцию эскизов).

Стоит отметить то, что с помощью этого приложения начинают все осваивать ардуино, к тому же клон-плата Arduino и USB кабель OTG обойдутся всего в пару долларов.

Рейтинг на Google Play: 4.1 из 5

Количество скачиваний: более 500.000

Bluino Loader – Arduino IDE

Bluino Loader – это программное обеспечение для ардино (Arduino IDE), которое позволяет быстро и легко компилировать ваш код для создания файла и загружать его на плату ардуино через USB OTG.

Рейтинг на Google Play: 4.1 из 5

Количество скачиваний: более 50.000

Arduino Bluetooth Control

Приложение ABC – это простое приложение, которое предназначено для того, чтобы контролировать контакты Arduino, и иметь доступ основным функциям управления. Arduino Bluetooth Control используется для управления и/или мониторинга контактов Arduino через Bluetooth. Приложение является автономным, и вся инициализация выполняется из Arduino. Важно понимать, что приложение предназначено именно для контактов ардуино, а не для управления.

Работа приложения осуществляется при помощи нескольких инструментов:

  1. Metrics – этот инструмент осуществляет передачу данных с устройства ардуино, которые передают сигнал на телефон о сбоях или об изменениях значений. После того как кнопка сигнализации срабатывает, на телефон поступает уведомление о приостановки работы. Также есть функция встряхивания, при помощи которой отправлять данные путем встряхивания телефона.
  2. Кнопки со стрелками – здесь работа осуществляется кнопками, которые полностью регулируют отправку данных на плату.
  3. Терминал – стандартный терминал, получающий и отправляющий данные на плату с отметками времени.
  4. Кнопки – в горизонтальной ориентации доступно 6 полностью функционированных кнопок для отправки данных на системную плату ардуино.
  5. Accelometer – используются команды при помощи жестов. Ваш смартфон может стать рулем для управления вашим роботом.
  6. Голосовое управление – если вы когда-либо хотели пообщаться с роботами, то этот инструмент для вас. При помощи голосовой связи можно создавать собственные команды и использовать их для управления ардуино.

Рейтинг на Google Play: 4.2 из 5

Количество скачиваний: более 50.000

Arduino Bluetooth Controller

Arduino Bluetooth Controller – это простое и интуитивно понятное приложение для управления arduino через bluetooth с android. Работа приложения осуществляется в 4-х различных режимах:

  1. Режим контроллера: здесь приложение осуществляет демонстрацию интерфейса в виде игрового контроллера. Управление робота осуществляется при помощи экранных кнопок, что упрощает работу с ардуино.
  2. Режим переключения: переключение осуществляется при помощи одной кнопки, которая предназначена для удаленного доступа к переключателю.
  3. Режим диммера: в этом режиме доступна функция отправления значения в Arduino, которая позволяет удаленно регулировать яркость или скорость.
  4. Режим терминала: возможность отправлять индивидуальные команды для декодирования команд в самом ардуино.

Рейтинг на Google Play: 4.5 из 5

Количество скачиваний: более 100.000

Bluetooth Controller 8 Lamp

Приложение создано при помощи модулей Bluetooth HC-05, HC-06 и HC-07. Контроль 8 каналов позволяет быстро и удобно отрегулировать работу ардуино. В интерфейсе предоставлено 8 кнопок, которые соответствуют каждой лампе.

Рейтинг на Google Play: 4.3 из 5

Количество скачиваний: более 50.000

BT Voice Control for Arduino

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

Arduino был запрограммирован на список распознаваемых команд, таких как «Вперед», «Назад», «Влево», «Вправо» и «Стоп». Важно знать, что ультразвуковой датчик отправляет расстояние до ближайшего объекта в Arduino, а затем отправляет его в приложение с помощью модуля Bluetooth HC-05.

Рейтинг на Google Play: 4.4 из 5

Количество скачиваний: более 10.000

RemoteXY: Arduino Control

Осуществление управления это ардуино адроид приложения проходит через Bluetooth, Wi-Fi или интернет. Приложение позволяет пользователю сделать свой индивидуальный графический интерфейс, посетив его сайт http://remotexy.com. Удобное создание кнопок, переключателей и полная регулировка ардуино не даст отойти ни на шаг. Также доступно подключение через облачный сервер, что дает преимущество перед другими приложениями.

Рейтинг на Google Play: 4.1 из 5

Количество скачиваний: более 50.000

Virtuino

Virtuino – это бесплатное приложение из подкатегории System Maintenance, входящей в категорию System Utilities. Оно разрешает совмещать проекты в единое целое, что позволяет управлять более одной платы одновременно через Bluetooth или Wi-fi.

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

Рейтинг на Google Play: 4.9 из 5

Количество скачиваний: более 50.000

Blynk

Это уникальное приложение c прекрасным дизайном разрешает разрабатывать проекты, которые напрямую имеют доступ к триггеру событий на плате ардуино. Однако, важно знать, что для работы в приложении необходимо интернет-подключение, иначе работа попросту невозможна. Независимо от того, подключен ли ваш Arduino или к Интернету через Wi-Fi, Ethernet или этот новый чип ESP8266, Blynk выведет вас в интернет и будет готов к работе.

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

Рейтинг на Google Play: 4.6 из 5

Количество скачиваний: более 500.000

IoT Wi-Fi контроллер

Этот Wi-Fi контроллер содержит интерфейс, который показывает конфигурацию каждого ввода-вывода Arduino. Возможность переключать значения GPIO в реальном времени, а также показ значений АЦП позволят легко управлять вашим гаджетом.

Рейтинг на Google Play: 4.6 из 5

Количество скачиваний: более 5.000

Справочник по Arduino 2

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

FAMAT › Блог › ROBOTяга ARDUINO — 5. БЛЮТУЗ управление.

И так работяга стал послушней – уже умеет слушаться пульт от телевизора :) www.drive2.ru/b/2818339/
А давайте его научим слушаться телефон!
И поможет нам в этом Блютуз.


Необходимо:
— Блютуз модуль — HC-06 wireless Bluetooth (либо другой).
— Провода.
— Двухсторонний скотч.
— Софт — Bluetooth RC Controller.

В комплекте с роботом шел Блютуз модуль — HC-06.
Подойдут модули типа HC-04 или 05.

Но забегу вперед – если вы все же захотите когда-нибудь загружать работягу через Блютуз рекомендую именно НС-05 – о его достоинствах рассказал здесь:
www.drive2.ru/c/2749401/

Подключение:
Все, что нужно подключить — это Блютуз модуль.
Подключение простое – смотрите таблицу ниже.

ПРИМЕЧАНИЕ: Заодно я указал подключения Моторов – я буду в каждом примере указывать необходимые подключения.

Обратите внимание, что поскольку разъем TXD Блютуз подключен к разъему RХ Arduino, то пока включении Блютуз Arduino никого будет слушать — только Блютуз.
ВНИМАНИЕ! На время когда вы хотите работать с Arduino по USB – Блютуз нужно выключать. Я для этого поставил выключатель на питание «+» Блютуз.

Прикрепляем Блютуз к роботу – можно использовать двухсторонний скотч и место в «корме» робота.

Программирование.
Сначала немного теории.
Мы уже научили работягу слушать ИК волны…
Блютуз – это то же волны – только радио.
А в остальном принцип тот же – управляющее устройство будет передавать коды по блютуз, которые РОБОТяга будет выполнять.
Только предварительно нам считывать коды с устройства не нужно – мы их сами зададим.
Кодами для команд будут буквы:
F – вперед;
B – назад;
R – вправо;
L – влево;
S – стоп.

Посылать их может любое устройство:
— которое может подключиться по Блютуз к РОБОТяге;
— имеющее программу, которая может посылать через Блютуз сигналы — терминал RS232.

Сначала устанавливаем соединение между блютузами РОБОТяги и «устройства» — через настройки Блютуз «устройства» — пароль по умолчанию для модуля робота — 1234.

Что касается софта – для компьютера можно использовать, например ARDUINO IDE или Termite 3.2. Пример здесь: lesson.iarduino.ru/page/b…-ustroystvami-s-telefona/
Установив соединение и запустив программу мы через нее можем отправлять на робот коды и робот будет выполнять команды.
Но согласитесь, это не очень удобно… удобнее нажимать на кнопки – для этого можно написать программку, например для Android – что бы кнопкам соответствовали кодовые буквы.
Но мы даже этого делать не будем – поскольку уже есть готовая программа!
А для чего же, спросите вы, я все это писал?
Для того что бы развеять «магию» Блютуза и показать как на самом деле все банально

Для Android устройств будем использовать Bluetooth RC Controller – готовую к использованию программу, позволяющую управлять не только направлением движения, но и скоростью и даже фарами!

Управление скоростью и фарами в моем скетче нет – это домашнее задание для пытливых умов :)
geekelectronics.org/ardui…dklyuchaem-bluetooth.html
А вот еще одной функцией программки – управление движением робота с помощью наклона «телефона/планшета» мы обязательно воспользуемся.
Bluetooth RC Controller можно скачать на Play Market.
play.google.com/store/app…uetoothRCcontroller&hl=ru
Работа с программой интуитивно понятна.

Первое, что она попросит – включить Bluetooth.
Затем нужно подключиться к РОБОТяге – нажимаем на «шестереночку» — далее «Connect» выбрать его из перечня устройств нашего РОБОТягу и соединяемся…
Дальше жмем на кнопки и едем…

Все посылаемые данной программой коды-команды указаны в настройках Bluetooth RC Controller («шестереночка» — «Settings»).

ВНИМАНИЕ! Поступили замечания, что Bluetooth RC Controller у некоторых «работяг» реагирует с задержкой — около 10 секунд! Есть информация, что это лечится в настройках — пункте «Please select data stream frequency:» нужно выбрать режим «On change/touch».

Для того чтобы перевести в режим управления акселерометром «устройства» – через наклон, нужно нажать «шестереночку» и нажать закладку «Accelerometer».
Но предупреждаю! Данный режим работает с задержкой – управлять нужно осторожней. Пример на видео :)

СКЕТЧ:
[code]
//Управляем роботом с помощью BLUETOOTH.
//В качестве управляющего устройства используем ANDROID устройство с программой Bluetooth RC Controller.

// *********************** Установка выводов моторов ************************
int MotorLeftSpeed = 5; // Левый (А) мотор СКОРОСТЬ — ENA
int MotorLeftForward = 4; // Левый (А) мотор ВПЕРЕД — IN1
int MotorLeftBack = 2; // Левый (А) мотор НАЗАД — IN2
int MotorRightForward = 8; // Правый (В) мотор ВПЕРЕД — IN3
int MotorRightBack = 7; // Правый (В) мотор НАЗАД — IN4
int MotorRightSpeed = 6; // Правый (В) мотор СКОРОСТЬ — ENB

// ********************** Для управления по блютуз ****************************
char btCommand = ‘S’;// Задаем переменную BLUETOOTH команда — по умолчанию «S» — СТОП

//****************** Настраиваем параметры выводов ARDUINO ******************
pinMode (MotorLeftForward, OUTPUT);
pinMode (MotorLeftBack, OUTPUT);
pinMode (MotorLeftSpeed, OUTPUT);

Создаем мобильное приложение для управления «Умной теплицей» на Arduino

Создаем мобильное приложение для управления «Умной теплицей» на Arduino

На 5 уроке про Умную теплицу на Ардуино, мы создадим свое собственное мобильное приложение для устройств на Андроиде. Для этого мы используем редактор визуального программирования Android App Invertor 2

В следующей статье про перенос « функции мониторинга и управления теплицей на телефон или планшет с ОС Androi d» мы установили связь нашей системы с телефоном (или планшетом) с операционной системой Android по Bluetooth, что позволило нам отправлять данные мониторига данных нашей теплицы на телефон и получать команды управления с телефона. Но для связи теплицы с телефоном мы использовали на телефоне приложение Bluetooth Terminal, что совсем неудобно. Нам нужно полноценное приложение. В этом уроке мы и займемся его созданием.
Глубоко внимать в вопросы программирования для операционной системы Andro > Программируем с Arduino… К счастью подобный визуальный редактор есть. Это онлайн визуальный редактор для визуального программирования для Android App Invertor 2. Страница проекта – http://ai2.appinventor.mit.edu.

Рисунок 1. Страница онлайн-редактора App Invertor 2.

После авторизации (можно использовать профиль google) или регистрации попадаем в свой профиль программы, где можем создать новый проект.

Рисунок 2. Ваш профиль программы. Создание проекта.

Сначала в панети Design создаем интерфейс нашего приложения, перетаскивая на экран необходимые компоненнты. Кроме визуальных компонентов необходимо добавить 3 невизуальных:
Bluetooth client из раздела Connectivity;
Clock из раздела Sensors (для получения данных из Bluetooth c периодичностью, установленной в Clock);
Notifer из UserInterface.

Рисунок 3. Создание интерфейса в Design.

Теперь создаем код. Переходим в раздел Block. Сначала создаем код для инициализации Bluetooth соединения и создания Bluetooth клиента (рисунок 4).

Рисунок 4. Код для инициализации Bluetooth соединения и создания Bluetooth клиента.

Затем код для отправки сообщений при изменениии состояний chexckbox-ов для насоса, вентилятора и лампы (рисунок 5).

Рисунок 5. Код для отправки сообщений при изменениии состояний chexckbox-ов.

И код получения по таймеру сообщений, поступающих по Bluetooth из Arduino (рисунок 6).

Рисунок 6. Код получения по таймеру сообщений, поступающих из Arduino

Создаем app приложение (рисунок 7) и загружаем его на телефон.

Рисунок 7. Генерация app приложения

Нам надо внести самые маленькие изменения в наш предыдущий скетч, заменив разделитель с пробела на символ ‘*’ при отправке данных с Arduino на Android.
Создадим в Arduino IDE новый скетч, занесем в него код из листинга 1 и загрузим скетч на на плату Arduino. Напоминаем, что в настройках Arduino IDE необходимо выбрать тип платы (Arduino UNO) и порт подключения платы.

Загружаем скетч на Arduino, на телефоне запускаем приложение.

Рисунок 8, 9, 10. Приложение в работе.
На следующем уроке рассмотрим вопрос превращения нашей теплицы в объект IoT (Интернет вещей).

Создаем Andro >Опубликовано 16.02.2014

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

Для управления домашним роботом достаточно добавить кнопок и обработать их команды на стороне Arduino.

Что для этого потребуется

  1. Любая Arduino-совместимая плата
  2. Bluetooth-модуль
  3. Устройство на котором установлена ОС Android

В качестве Bluetooth-модуля лучше всего использовать HC-05. Его легко купить в китайском интернет магазине или на eBay. Модуль питается от 3.3 В, но его линии I/O могут работать и с 5-вольтовой логикой, что позволяет подключать его UART к Arduino.

Подключение Bluetooth-модуля к Arduino

Так теперь нам нужно подключить нашу Arduino с Bluetooth. Если на Arduino нет вывода с 3.3В , а только 5В то нужен будет поставить стабилизатор чтобы снизить питание. Назначение выводов HC-05 легко найти в интернете. Для использования рекомендуем вам сделать плату с выведенными линиями питания, Rx и Tx. Подключение к Arduino необходимо производить в следующем порядке:

  • вывод Arduino 3.3В или (5В через стабилизатор!) — к 12 пину модуля Bluetooth
  • вывод Arduino GND — к 13 пину модуля Bluetooth
  • вывод Arduino TX — к 2 пину модуля RX Bluetooth
  • вывод Arduino RX — к 1 пину модуля TX Bluetooth


После подключения необходимо проверить работоспособность Bluetooth модуля. Подключим Светодиод к 12 выводу Arduino и загрузим на плату следующий скетч:

Теперь скачиваем из Play Market программу Bluetooth-терминал и устанавливаем его. Включаем нашу Arduino. В приложении Нажимаем кнопку меню->Connect a device-Secure.
Тем самым ваше устройство начнём искать Bluetooth поблизости. Наш модуль должен называться HC-05. Вам потребуется выписать его MAC-адрес, так он понадобится в дальнейшем. Как только он обнаружит устройство HC-05 выберите его. Пароль, если потребуется: 1234 (это стандартный код). После того как вы подключились к нему у вас должно вывести сообщение которое пришло в Bluetooth терминал от Arduino: “Press 1 to LED ON or 0 to LED OFF..” Далее введите 1 и нажмите отправить. Тем самым вы посылаете цифру 1 через Bluetooth на Arduino. Как только он примет цифру 1 должен загореться светодиод подключенный к 12 выводу Arduino. После введите цифру 0 и светодиод должен погаснуть. Если всё получилось переходим дальше.

Установка Android SDK

Скачиваем с официального сайта программу для создания приложений для android любых моделей. Распаковываем архив, запускаем SDK Manager.exe и устанавливаем программу. Вам предложат установить API, и версию android для которой вы в дальнейшем будете устанавливать приложения.

Android SDK Manager

После нажимаем кнопку Install, ждём когда завершиться установка и закрываем окно.
Заходим в саму программу, она находиться в папке eclipse/eclipse.exe. После открытия программы в диалоговом окне необходимо указать директорию для хранения будущих проектов. Лучше создавать папку на локальном диске, используя при этом только латинские буквы.

Создание приложения

Выбираем File->New->Project.

Так как мы создаём приложение для android, выбираем Android-> Android Application Project, и нажимаем Next

Следующее диалоговое окно:

Application Name -> пишем имя приложение,
Project Name -> пишем имя проекта,
Package Name -> Ни чего не пишем он создается автоматически!
Minimum Required SDK -> это минимальные требование указываем нашу версию Android у меня 4.1 её я и выбираю.
Target SDK -> выбираем вашу версию Android
Compile with -> выбираем вашу версию Android
Theme: для начала я бы советовал выбрать None.
Нажимаем Next.
В следующем окне ничего менять не нужно. Просто жмем Next.

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

В следующем необходимо выбрать пункт меню Blank Activity и нажимать Next.

Жмем Finish и через несколько секунд открывается главное окно нашей программы. Выбираем вкладку Activity_main.xml и видим наш редактор:

  1. Файлы нашего проекта.
  2. Run Запуск эмулятора для проверки программы на наличие ошибок
  3. Панель кнопок текста и многое другое от сюда вы будите выбирать что вам нужно и добавлять в качестве элементов приложения
  4. Для выбора размера дисплея вашего телефона или планшета
  5. Выбор ориентации. Два вида: горизонтальный и вертикальный
  6. API уровень (лучше не трогать)
  7. Тут будет отображаться всё то что вы добавили в приложение, так же тут можно переименовать ваши добавленные элементы или удалять их.
  8. Показывает свойства элемента, его размер цвет и т.д., так же тут можно редактировать элемент
  9. Показывает наличие ошибок.
  10. Выбор редактирования (графический либо текстовой). Для начинающих конечно лучше пользоваться графическим режимом
  11. Окно вашего приложения , можно видеть интерфейс будущего приложения

Теперь добавим две кнопки в интерфейс приложения. Выбираем элемент Button и переносим его на форму.

Справа вверху мы видим объекты которые мы добавили. Так же важно, какой из объектов выбран в данный момент. Справа внизу можно редактировать кнопку, давайте изменим текст подписи кнопки и его цвет.
Для этого в поле свойств элемента «Text» введите, вместо button1, значение «ВКЛ», а у button2 — “ВЫКЛ”. Должно получиться вот так:

Мы можем запустить только что созданное приложение на эмуляторе. Идем в настройки запуска «Run» → Run Configurations», в левой части нажимаем на «Android Application». Появляется новая конфигурация «New_configuration». В правой части окна выбираем вкладку «Target» и выбираем опцию «Launch on all compatible devices/AVD» и добавляем устройство. Проверяем что кнопки появились и их можно нажимать. Если всё хорошо — продолжаем дальше.
Теперь в файлах проекта выбираем bin->AndroidManifest.hml

Теперь нажмём снизу на AndroudManifest.hml

В этот файл нам нужно будет добавить две строки:

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

Далее откроем другой файл: src->com.example(name)

В этом файле и будет наш основной код. Все его содержимое нужно удалить и вставить вот этот код:

ОБЯЗАТЕЛЬНО! Введите вместо 00:00:00:00:00 МАС вашего Bluetooth модуля, который можно узнать через Bluetooth терминал.
Ваше приложение готово. Теперь нам нужно проверить, как оно поведёт себя на устройстве. Запустите для этого симулятор. Если он запустился нормально без ошибок, то в папке, где вы создавали свой проект, будет создан файл с вашей программой. Его необходимо скопировать и установить на свое устройство.

Работа приложения

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

Взаимодействие с Arduino через Andro > Добавлено 28 ноября 2020 в 02:00

Хотите послать текстовое сообщение с вашего смартфона с ОС Android на свою плату Arduino? В этой статье написано, как это сделать!

Что потребуется

  • смартфон на Android с поддержкой режима USB хоста (т.е. поддержка OTG) – большинство устройств, работающих с Android 3.1 и выше, поддерживают этот режим. Проверьте свой телефон с помощью USB Host Diagnostics App из Play Store;
  • Arduino – любая версия. Я буду использовать Uno R3;
  • USB кабель для Arduino;
  • USB OTG кабель – он необходим вам, чтобы подключить USB кабель Arduino к порту micro-USB телефона;
  • Android Studio – вам необходимо установить его. Это довольно просто сделать. Android Studio делает разработку приложений проще, благодаря своим предположениям и генерации кода. Это одна из лучших IDE. Вы также можете использовать эту статью в качестве руководства по установке Android IDE.

Основные компоненты приложения для Android

В Android приложении есть три основных файла:

MainActivity.java Здесь находится выполняемый код на Java, который управляет тем, как будет функционировать приложение. activity_main.xml Содержит макет приложения, то есть, компоненты: кнопки, компоненты отображения текста и т.д. AndroidManifest.xml Здесь вы определяете, когда приложение должно запускаться, в какие права ему нужны, и к какому аппаратному обеспечению ему необходимо получить доступ.

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

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

Макет

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

Как вы можете видеть, он содержит виджет EditText для получения данных от пользователя, кнопки для запуска соединения, передачи данных, завершения соединения и очистки TextView . Полученные данные отображаются в TextView (пустое пространство под кнопками).

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

Я использовал здесь RelativeLayout , а это означает, что каждый виджет расположен относительно виджетов вокруг него. Макет может быть легко воссоздан на вкладке Design Tab , где вы можете перетащить виджеты туда, куда хотите. Нам необходимо описать, что будет происходить при нажатии на кнопку. Для этого используется метод onClick . Укажите имя метода в XML коде для кнопки. Для этого добавьте строку:

Теперь наведите курсор мыши на эту строку, слева должно будет появиться предупреждение, похожее на это:

Предупреждение в Android Studio

Нажмите на варианте «Создать onClick. ». Это автоматически добавит код метода onClick в MainActivity.java . Вам необходимо выполнить это для каждой кнопки.

Библиотека USB Serial

Настройка последовательного соединения в Android довольно трудоемка, так как требует от вас ручной настройки множества вещей, поэтому я нашел несколько библиотек, которые делают всё это автоматически. Я протестировал несколько из них и, наконец, остановился на библиотеке UsbSerial от Github пользователя felHR85. Среди подобных библиотек, что я нашел, она единственная до сих пор обновляется. Ее довольно легко настроить и использовать. Чтобы добавить библиотеку в свой проект, скачайте последнюю версию JAR файла на Github. Поместите его в подкаталог libs в каталоге вашего проекта. Затем в файловом проводнике в Android Studio кликните правой кнопкой мыши на JAR файле и выберите « Добавить как библиотеку » ( Add as Library ). Вот и всё!

Алгоритм выполнения программы

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

Открытие соединения

Во-первых, давайте определим метод onClick для кнопки Begin . При нажатии необходимо выполнить поиск всех подключенных устройств, а затем проверить, совпадает ли VendorID подключенного устройства (ID поставщика) с VendorID Arduino. Если совпадение найдено, то у пользователя должно быть запрошено разрешение. Каждое ведомое USB устройство имеет ID поставщика (Vendor ID) и ID продукта (Product ID), которые могут быть использованы для определения того, какие драйвера должны использоваться для этого устройства. Vendor ID для любой платы Arduino равен 0x2341 или 9025.

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

Если первое условие IF выполняется, и если пользователь дал разрешение, то начать соединение с устройством, у которого Vendor ID совпадает с необходимым нам Vendor ID. Кроме того, если принято широковещательное сообщение о подключении или отключении устройства, вручную вызывать методы onClick для кнопок Start и Stop . SerialPort определяется с использованием устройства и соединения в качестве аргументов. В случае успеха открыть SerialPort и установить соответствующие параметры. Значения параметров для Arduino Uno равны: 8 бит данных, 1 стоповый бит, бита четности нет, управление потоком выключено. Скорость передачи данных может быть 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 или 115200 бит/с, но мы будем использовать стандартные 9600 бит/с.

Прием данных от устройства

Во фрагменте кода выше обратите внимание на строку, содержащую serialPort.read(mCallback) . Здесь функции read передается ссылка на объект Callback , который будет автоматически срабатывать при обнаружении входящих данных.

Полученные данные будут в форме необработанных байтов. Нам придется перекодировать их в читаемый формат, например, UTF-8. Затем они добавляются в TextView с помощью специального метода tvAppend() . Это делается так потому, что любые изменения в пользовательском интерфейсе могут выполняться только в потоке пользовательского интерфейса. Так как данный Callback будет запущен, как фоновый поток, то он не может напрямую повлиять на пользовательский интерфейс.

Передача данных на устройство

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

Закрытие соединения

Чтобы закрыть соединение, просто закройте последовательный порт.

Манифест приложения

Манифест объявляет, какие дополнительные разрешения могут потребоваться приложению. Единственное необходимое нам разрешение – это разрешение сделать телефон USB хостом. Добавьте следующую строку в манифест:

Приложение можно заставить запускаться автоматически, добавив фильтр интентов в главную активность MainActivity . Этот фильтр интентов будет срабатывать при подключении любого нового устройства. Вид устройства может быть указан явно с помощью ID поставщика (Vendor ID) и/или ID продукта (Product ID) в XML файле.

Обратите внимание на строку » andro >». Она говорит компилятору, что он может найти свойства устройства в файле с именем device_filter в каталоге src/main/res/xml , поэтому создайте подкаталог » xml » в каталоге src/main/res и поместите в него файл со следующим содержанием:

Тестирование приложения

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

Теперь подключите Arduino к microUSB порту телефона, используя OTG кабель. Приложение должно запуститься автоматически. Попробуйте послать какой-нибудь текст, и те же данные будут возвращены обратно!

Тестирование Android приложения для взаимодействия с Arduino

Заключение

Данная статья показывает, как Arduino может общаться с вашим смартфоном. И возможности использования этого бесконечны! В случае, когда необходимы данные с любого датчика, которого нет среди встроенных в смартфон, можно воспользоваться любым микроконтроллером для считывания данных с этого датчика и передачи их на смартфон. В следующей статье будет показано, как подключить смартфон к Arduino, используя популярный bluetooth модуль HC05.

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.

«Тупой» не получится, так как USB это пакетный интерфейс. И там контроллер обязателен.

Лучше сразу интерфейс какой нибудь («тупой» без процессора) с подключением к USB, так чтобы можно было опрашивать показания на пинах этого интерфейса с самого планшета.
У планшета много оперативы и высотактовые процессоры.
Без проблем можно фиксировать мегагерцевые выборки.

когда пытаюсь создать подписанный apk:
Lint found fatal errors while assembling a release target.

Android-Arduino Bluetooth автомобиль

Этот робот управляется Bluetooth смартфона. Акселерометр смартфона измеряет угол наклона телефона влево/вправо, вверх/вниз, использует эти данные для вычисления скорости двигателей направления, данные передает через Bluetooth к Arduino
Что понадобится для сборки робота.

Arduino uno, HC-06 Bluetooth Module, два редукторных мотора 300 RPM 12v, Н-мост L298N Dual H Bridge Motor Controller
12 в 1.3 А свинцовый кислотные аккумулятор. Каждый двигатель потребляет 0.4А, плюс еще потребление логики драйверов . Arduino провода, обычные 9в батареи и разъем для соединения батареи к Arduino. Электрические провода для соединения драйверов электродвигателей. Usb кабель. Телефон с версией Android 4 и выше. 4 поворотных 50мм резиновых колеса от Screwfix или ToolstationДве Lynxmotion HUB-02 универсальные ступицы.

Корпус собирается из пластика длинной 22 и шириной 17см. Два двигателя должны быть подсоединены к валу и зафиксированы резьбовым штифтом.

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

Задние колеса просто откручиваются от шарнира и закрепляются через отверстия, просверленные в корпусе.

Будут проблемы с загрузкой кода программы в Arduino. Это связано с тем, что модуль Bluetooth, его RX\ТХ контакты, подключены к 1 и 2 выводу Arduino, которые также используются для передачи данных через USB. Надо изменить в подключаемой библиотеке контакты 1 и 2 на 11и 12 , которые будут использоваться для передачи данных.

Драйвер двигателя не нуждается в отдельном питании для логики. 12в достаточно для питания логики драйвера и самого мотора. Минус аккумулятора должен соединяться как с Arduino так и с драйвером мотора. Контакты ЕСА / 5V и ENB / 5V драйвера двигателя, могут быть соединены перемычкой. Ее надо удалить до подключения к Arduino. Ничего не должно быть подключено к двум выводам 5V.

Прикрепленный файл надо распаковать и импортировать в Android Studio, упаковать его в apk и установить на телефон.

Цукерберг рекомендует:  Callback - Ребята, помогите в понимании callback'ов!
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих