Описание модуля 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. Все настройки для подключения «пароль, скорость передачи данных» можно изменить при помощи АТ-команд.
В комплектацию модуля не входят соединительные провода.
Подключение драйвера L298N
Припаиваем все двигатели через небольшой конденсатор и устанавливаем их.
Для правого двигателя один провод подключите к OUT3, а второй провод подключите к OUT4. Таким же образом подключите второй правый мотор.
Для левого двигателя один провод соединяется с OUT2, а второй провод соединяется с OUT1. Таким же образом подключите второй левый мотор.
Если вы сделали неправильное соединение, после загрузки программы тестирования, просто поменяйте провода так, как необходимо.
Сделайте такого рода разъем. Используйте двухпозиционный переключатель (для включения и выключения двигателей и сервопривода робота). Я думаю, вы знаете как паять. Красный разъем для батареи, проверьте, какой тип разъема установлен в вашей батарее. Рекомендуем использовать T-штекер.
Схема соединения источника питания.
Т-образный разъем. Слева разъем батареи (мама), справа (папа) разъем робота.
Не соединяйте Т-образные разъемы сейчас. Сделайте это после того, как все соединения завершены, на последнем шаге.
Затем установите всё на свой автомобиль. Если вы используете другое собственное шасси, монтаж шасси может быть другим.
Красный провод подключается к крайнему левому разъему + 12В 3-контактного разъема на драйвере L298N.
Два черных провода подключаются к среднему разъему GND 3-контактного разъема на L298N.
Затем возьмите 6 длинных проводов длиной 30-40 см и подключите их к контактам ENA, IN1, IN2, IN3, IN4, ENB на автомобильном приводе L298N.
Провод № 7 подключите к среднему разъему GND 3-контактного разъема на драйвере L298N (туда же, куда вы подключали предыдущие черные провода).
В конце концов, ваше соединение должно выглядеть так.
Если вы хотите использовать сервопривод в своем автомобиле-роботе, убедитесь, что он совместим с напряжением 7,4 В. Затем вы можете извлечь красный провод из разъема сервомеханизма и подключить провод к крайнему левому разъему + 12 В 3-контактного разъема на приводе L298N (там же, куда вы ранее подключали красный провод).
Сначала проверьте напряжение сервопривода! Если это не совместимо, просто подключите сервопривод к датчику шилда без каких-либо изменений. В моем случае сервопривод MG995R (MG995) совместим с 7,4 В, к сожалению, на фото мы забыли подключить сервопривод.
Arduino танк с bluetooth управлением — программа для планшета или смартфона.
Как и в предыдущей модели мы будем использовать программу для android-устройств под названием HmiKaskada. Выкладываю бесплатную версию этой программы, скачать которую можно с ЯндексДиска. Мой проект выполнен в платной версии и он не совместим с фрее-версией программы. Так что дальнейший материал посвящен созданию проекта в фрее-версии.
Интерфейс управления
В готовом проекте на планшете присутствует еще индикатор уровня заряда батареи, а это — подложка для проекта. Итак, приступим…
Для начала создадим проект с одним рабочим экраном, нам больше не понадобится. Далее подключим наш модуль блютуз к планшету. Для этого переходим в редактирование списка серверов и жмем плюс в правом верхнем углу. Выбираем из списка наш bluetooth и даем ему имя. Теперь он настроен и готов к работе. Следующий шаг это установка подложки для рабочей области. Для этого идем в меню «прочее — фон» основной рабочей области и загружаем картинку интерфейса. Можете использовать мою или создать свое изображение. На самом деле работать будет и без настройки фона, он только для красоты.
Теперь приступим к размещению органов управления. Идем в меню «задатчики» и перетягиваем кнопку в рабочую область. В меню кнопки кликаем на адрес и вводим например 1#0.12. Где 1 — адрес платы ардуино, а 12 — адрес переменной из проекта. Переменные использованные в проекте можно посмотреть в дереве проектов.
Список адресов флагов
Используются адреса в диапазоне 0-16. Далее подгоняете размер кнопки бод рабочую область и делаете кнопку прозрачной. Это позволит при запуске проекта лицезреть красивую кнопку подложки.
С настройкой индикатора заряда аккумулятора точно так же. Создаем регистр хранения в формате Integer в проекте ардуино и присваиваем индикатору его адрес. Например 1#10, настраиваете индикатор на свой вкус.
Когда все органы управления созданы, настроены и расположены по своим местам кликаем на запуск проекта. Андроид подключится к танку, и вы сможете насладиться проделанной работой.
Подключение, запуск и настройка автоустройств на Ардуино
Для загрузки эскиза проекта Ардуино для авто в виде ЖК-дисплея в Teensy 3.6 вам необходимо установить Teensyduino. Затем вам нужно будет заменить библиотеки Adafruit_RA8875 и Adafruit_GFX в расположении библиотеки Teensy (а не на вашем типичном месте в документах). На Mac операционной системе нужно щелкнуть правой кнопкой мыши по значку приложения Arduino в приложениях, а затем перейти в:
В Windows данная папка находится под основным диском C, в файлах программ x86, Arduino, а затем в папке с аппаратным обеспечением. Как только вы это сделаете, вам нужно будет изменить расположение эскиза в приложении Arduino, отредактировав его в настройках – обычно библиотеки “Тинси” размещаются по следующему адресу:
/Applications/Arduino.app/Contents/Java/hardware/teensy/avr
Из-за проблемы с внутренним температурным датчиком пользователь устанавливает температурный датчик модуля DS18B20.
- Загрузите эскиз display_code, если вы хотите использовать внутренний температурный датчик модуля OB2 I2C OBD-II.
- Загрузите эскиз display_code_with_new_temperature_sensor, если вы хотите использовать модуль DS18B20.
Необходимо исправить ошибки, всплывающие при подключении электронного устройства, включая DS18B20, выводя температуру в 185 градусов по Фаренгейту; дисплей не включается вообще в холодную погоду, а пиксели застревают в неправильном цвете, когда дисплей затемнен.
Обратите внимание, что разгон teensy до 240 МГц не позволяет адаптеру I2C OBD-II взаимодействовать с teensy. Наконец, просто нажмите кнопку «Загрузить»
В представленном скетче находятся обширные комментарии, которые помогут пользователю адаптироваться при конструировании ЖК-дисплея для авто.
Вскоре после установки дисплея пользователь поймет, что дисплей работает даже тогда, даже когда автомобиль выключен.
Заглянув в разводку OBD-II, электронщик обнаружит, что линия питания 12 В к разъему OBD-II всегда подключается непосредственно к батарее. Чтобы обойти это, необходимо купить разветвитель OBD-II и отрезать провод, идущий на контакт 16 на одном из двух разъемов на сплиттере, а затем подключить этот разрезаемый провод к добавлению проводки.
Затем, используя мультиметр, необходимо заглянуть в коробку предохранителей на стороне водителя и протестировать существующие предохранители, чтобы узнать, какой предохранитель получил питание после того, как ключ был включен в зажигание.
В конце пользователь подключает добавочный провод к предохранителю, который нужен для того, чтобы дисплей теперь включался только тогда, когда автомобиль работает и находится на ходу. Проведите некоторое исследование того, как правильно добавить схему к вашему автомобилю. Многие подобные проекты описаны на нашем сайте с подробными разъяснениями.
Кроме того, пользователь может добавить кнопку “стоп-старт” на Ардуино для своего дисплея с параметрами для автомобиля.
Сравнение модулей 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 – АТ-команды.
Скорость передачи АТ команд по умолчанию для 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.
Простые проекты Ардуино
Давайте начнем наш обзор с традиционно самых простых, но очень важных проектов, включающих в себя минимальное количество элементов: светодиоды, резисторы и, конечно же, плату ардуино. Все примеры рассчитаны на использование Arduino Uno, но с минимальными изменениями будут работать на любой плате: от Nano и Mega до Pro, Leonardo и даже LilyPad.
Проект с мигающим светодиодом – маячок
Все без исключения учебники и пособия для начинающих по ардуино стартуют с примера мигания светодиодом. Этому есть две причины: такие проекты требуют минимального программирования и их можно запустить даже без сборки электронной схемы – уж что-что, а светодиод есть на любой плате ардуино. Поэтому и мы не станем исключением – давайте начнем с маячка.
Нам понадобится:
- Плата Ардуино Uno, Nano или Mega со встроенным светодиодом, подключенным к 13 пину.
- И все.
Что должно получиться в итоге:
Светодиод мигает – включается и выключается через равные промежутки времени (по умолчанию – 1 сек). Скорость включения и выключения можно настраивать.
Схема проекта
Схема проекта довольно проста: нам нужен только контроллер ардуино со встроенным светодиодом, подсоединенным к пину 13. Именно этим светодиодом мы и будем мигать. Подойдут любые популярные платы: Uno, Nano, Mega и другие.
Подсоединяем Arduino к компьютеру, убеждаемся, что плата ожила и замигала загрузочными огоньками. Во многих платах «мигающий» скетч уже записан в микроконтроллер, поэтому светодиод может начать мигать сразу после включения.
С помощью такого простого проекта маячка вы можете быстро проверить работоспособность платы: подключите ее к компьютеру, залейте скетч и по миганию светодиода сразу станет понятно – работает плата или нет.
Программирование в проекте Ардуино
Если в вашей плате нет загруженного скетча маячка – не беда. Можно легко загрузить уже готовый пример, доступный в среде программирования Ардуино.
Открываем программу Arduino IDE, убеждаемся, что выбран нужный порт.
Проверка порта Ардуино – выбираем порт с максимальным номером
Затем открываем уже готовый скетч Blink – он находится в списке встроенных примеров. Откройте меню Файл, найдите подпункт с примерами, затем Basics и выберите файл Blink.
Открываем пример Blink в Ардуино IDE
В открытом окне отобразится исходный код программы (скетча), который вам нужно будет загрузить в контроллер. Для этого просто нажимаем на кнопку со стрелочкой.
Кнопки компиляции и загрузки скетча
Информация в Arduino IDE – Загрузка завершена
Ждем немного (внизу можно отследить процесс загрузки) – и все. Плата опять подмигнет несколькими светодиодами, а затем один из светодиодов начнет свой размеренный цикл включений и выключений. Можно вас поздравить с первым загруженным проектом!
Проект маячка со светодиодом и макетной платой
В этом проекте мы создадим мигающий светодиод – подключим его с помощью проводов, резистора и макетной платы к ардуино. Сам скетч и логика работы останутся таким же – светодиод включается и выключается.
Графическое изображение схемы подключения доступно на следующем рисунке:
Другие идеи проектов со светодиодами:
- Мигалка (мигаем двумя свтодиодами разных цветов)
- Светофор
- Светомузыка
- Сонный маячок
- Маячок – сигнализация
- Азбука Морзе
Подробное описание схемы подключения и логики работы программы можно найти в отдельной статье, посвященной проектам со светодиодами.
Распаковываем робота-художника DAGU
Распаковываем, проверяем комплектность. В комплекте подробная инструкция по сборке. Инструкцию также можно скачать здесь.
Робот DAGU Doodle Bot kit в разобранном виде. Фото с makezine.com.
Детали пронумерованы, например, резиновые шины — номер 3. Для проверки длины винтов в инструкции напечатана линейка. Сборка по инструкции не вызывает сложностей. В этом обзоре мы не будем дублировать инструкцию. Приятная мелочь — производитель включил в комплект даже отвертку.
Основными частями робота являются:
- плата-аналог Arduino Mini;
- 2 мотора-редуктора;
- магнитные датчики колёс;
- колёса;
- сервопривод (для управления маркером);
- акриловое основание (корпус).
В комплекте нет, но потребуются 4 AAA батарейки, USB-кабель и маркер.
Размеры робота 125 * 85 * 85 мм.
Три подхода к реализации таблицы в код
План-А: if {} elsif {} else {}
Это первое, что приходит в голову начинающему. На самом деле, это неплохой вариант, если в таблице совсем мало заполненных клеток и действия сводятся только к смене состояний.
Плюсы:
- Просто писать новичку, который впервые в руки взял ардуину.
- Первое, что приходит в голову.
Минусы:
- Сложно читать код.
- Сложно модифицировать код, если что-то поменялось в таблице.
- Ад, если большая часть клеток таблицы заполнена.
План-Б: Таблица указателей на функции
Другая крайность — это таблица переходов или функций. Я про такой подход писал в статье Обработка нажатий кнопок для Arduino. Скрестить ООП и МКА.. В двух словах, вы создаёте для каждой разной клетки таблицы отдельную функцию и делаете таблицу из указателей на них.
Плюсы:
- Очень читаемый код. Не смейтесь. Достаточно один раз вкурить про массивы с указателями и вы получите простой красивый код. У вас табличка как табличка, ячейки отдельно расписаны — красота.
- Легко писать.
- Очень легко модифицировать логику.
Минусы:
Минус оказался таким жирным, что я после написания Обработка нажатий кнопок для Arduino. Скрестить ООП и МКА. и первого же применения кода в деле выпилил это всё нафиг. В итоге я пришёл к золотой середине «switch { switch {}}».
План-В: Золотая середина или switch { switch {}}
Самый распространённый, средний вариант — это использование вложенных операторов switch. На каждое событие как case оператора switch надо писать switch с текущим состоянием. Получается длинно, но более-менее понятно.
Умный компилятор всё-равно построит таблицу переходов, как описано в плане Б выше, но эта таблица будет в флеше, в коде и не будет занимать столь дорогую нам память переменных.
Плюсы:
- Быстрый код.
- Экономится память.
- Логика понятна. Можно читать.
- Легко менять логику.
Минусы:
На самом деле, можно использовать план-В и план-А, то есть, switch по событиям, но if внутри по состояниям. На мой вкус, switch и на то и на то понятнее и удобнее, если потребуется что-то потом поменять.
Как работает nRF8001
Одной из интересных особенностей nRF8001 является то, что его интерфейс для пользователя является UART.
Другими словами, обычный старый серийный Tx и Rx, что делает его очень простым в использовании. Первые три контакта на плате — это интерфейс SPI, SCK — это просто часы, MISO — Master In Slave Out, а MOSI — Master Out Slave In.
Эти четыре контакта идут на Arduino, как показано на схеме, и это не подлежит обсуждению. REQ сигнализирует nRF, что Arduino хочет что-то сказать, а RDY сообщает Arduino, что nRF хочет что-то сказать и должен перейти к одному из выводов запроса прерывания Arduino, т. Е. 2 или 3.
RST является выводом сброса и сбрасывает nRF при запуске. REQ используется аналогично SS, с которым вы, возможно, сталкивались в других приложениях SPI. У Adafruit есть больше деталей относительно его nRF8001 по этой ссылке.
How Arduino Bluetooth Controlled Car Works?
This is a simple Micro-controller based car. The Micro-Controller is connected in the car. The Arduino is doing all this job. For receiving data wirelessly we are using the HC-05 Bluetooth module.
At first, We have to connect/ pair the Bluetooth module with the phone (Android) you want to control. Now, we are doing different operations such as when we press the forward button then the Phone sends a data value to Bluetooth module.
Next, we have to code in a way that if Arduino Gets a Certain Data (Suppose ‘F’ for forwarding) we have to make a certain condition for running the car in a certain direction. So, basically there are many switch cases in the Arduino code. For a known condition or a switch case, the car will perform the added functions in the code.
In the Same way, F, B, L, R are used for moving the car Forward, Backward, Left, Right movement.
Шаг 6. H-мост (модуль LM 298)
Термин H-мост (англ. H-bridge) выведен из типичного графического представления такой схемы. Это схема, которая может приводить двигатель постоянного тока в прямом и обратном направлении, см. рисунок выше для понимания работы H-моста.
Он состоит из 4 электронных переключателей S1, S2, S3 и S4 (транзисторы / МОП-транзисторы (MOSFET) / IGBTS). Когда переключатели S1 и S4 замкнуты (а S2 и S3 разомкнуты), на двигатель идет положительное напряжение. Поэтому он вращается в прямом направлении. Аналогично, когда S2 и S3 замкнуты, а S1 и S4 открыты, обратное напряжение идет через двигатель, поэтому он вращается в обратном направлении.
Примечание. Переключатели в одном и том же плече (S1, S2 или S3, S4) никогда не замыкаются в одно и то же время, это приведет к короткому замыканию.
H-мосты доступны в виде интегральных микросхем, или вы можете создать свой собственный, используя 4 обычных транзистора или полевых транзистора (MOSFET). В нашем случае мы используем микросхему H-моста LM298, которая позволяет контролировать скорость и направление вращения двигателей. Ниже перейдем к описанию пинов:
Выход 1: двигатель постоянного тока 1 «+» или шаговый двигатель A+
Выход 2: двигатель постоянного тока 1 «-» или шаговый двигатель A-
Выход 3: двигатель постоянного тока 2 «+» или шаговый двигатель B+
Выход 4: двигатель B выведен
12В контакт: 12В вход, но вы можете использовать от 7 до 35 В
GND: земля
Вывод 5В: выход 5 В, если перемычка 12 В на месте, идеально подходит для питания вашего Arduino
EnA: включает сигнал ШИМ для двигателя А
IN1: включить двигатель A
IN2: включить двигатель A
IN3: включить двигатель B
IN4: включить двигатель B
EnB: включает сигнал ШИМ для двигателя B
Наборы и конструкторы Амперка
Набор Матрешка
Набор может быть различных модификаций – X, Y или Z, и отличается по количеству входящих в состав компонентов. Оптимальный вариант для тех, кто совершенно не имеет опыта, а также радиодеталей для электронного конструирования. Главным компонентом комплекта является платформа Arduino Uno, а также различные модули, провода, макетные платы. Кроме того в состав включена красочная обучающая брошюра.
Набор «Матрешка X» содержит комплект из элементов, позволяющий создать 8 электронных моделей, предлагаемых в брошюре, и не включает таких устройств, как фоторезистор, термистор, конденсаторы и т.д., которыми комплектуются наборы Y или Z.
«Матрешка Y» позволяет собрать уже 17 электронных устройств, и значительно расширена наличием дополнительных элементов. В комплекте имеются различные типы светодиодов, конденсаторы разной емкости, штырьковые соединители и пьезо-пищалка.
Версия Z обеспечивает возможность сборки всех видов устройств из брошюры, и дополнена по сравнению с базовым и средним наборами мотором FA-130, микросервоприводом, светодиодной шкалой и тестовым экраном.
Конструктор Йодо
Набор состоит из совместимого с Ардуино контролера (Iskra JS), который обеспечивает возможность программирования на языке Java Script. Также в комплектацию включены различные электронные компоненты, при помощи которых можно создать до 25 устройств самого разнообразного назначения, в чем поможет буклет, который имеется в наборе. Технологичная плата Troyka Shield обеспечивает простое подключение модулей к плате при помощи шлейфов.
Наборы и конструкторы Эвольвектор
В зависимости от сложности и входящих в комплект компонентов наборы делятся по предназначению на три уровня:
Для новичков оптимальным выбором станут комплекты стартового уровня, которые помогают изучить основы электроники при помощи брошюр и простых электронных компонентов. Серия представлена такими наборами: Стартовый набор – Уровень 1 (Основы электроники), Переходный набор -Уровень 1 (набор-дополнение, как переход от стартового уровня к основному), Основной набор – Уровень 1.2.
В наборы второго уровня входят программируемые микроконтроллеры (Ардуино), и освещаются особенности работы с ними. Серия представлена наборами: Стартовый набор- Уровень 2 (контроллеры Ардуино), Переходный набор-Уровень 2 (есть три варианта: от старта к основному, от основного к расширенному, от расширенного к расширенному Робот+), Основной набор- Уровень 2 (контроллеры Ардуино), Расширенный набор- Уровень 2 (контроллеры Ардуино).
Комплекты третьего уровня помогают изучить миниатюрные одноплатные компьютеры Raspberry Pi и его аналоги. Серия включает: Стартовый набор. Уровень 3 (Изучение Raspberry pi).
Интерфейс управления на планшете android.
По многочисленным просьбам написал подробную инструкцию по разработке интерфейса управления на базе HmiKaskada android в статье Arduino танк с bluetooth управлением. Ссылка кликабельна.
Для устройств под управлением android существует программа HmiKaskada (ссылка на ЯндексДиск). Изначально она разрабатывалась как альтернатива дорогим промышленным HMI панелям. Но пытливые умы быстро смекнули что управлять она может чем угодно. В нашем случае машинкой. Поддерживает беспроводные интерфейсы Wi-Fi и Bluetooth, кроме того можно девайс подключить напрямую через USB.
Есть платная и бесплатная версии программы. У меня есть обе но я принципиально сделал проект в бесплатной версии что бы показать вам и в очередной раз убедиться в абсолютной работоспособности free версии. Основное отличие free от PRO версий это работа только по блютуз.
На форуме FLProg есть гигантская ветка по вопросу совместимости с КаСкадой, да и разработчик активен и общителен. Скрин панели управления выкладывать не вижу смысла — он есть в видеоролике.
Как видите создавать разнообразные гаджеты можно и без правки кода, что и требовалось доказать. Надеюсь статья была для вас полезна и наглядна. Охотно отвечу на комментарии.
Программируем робота-художника DAGU
Робот программируется с использованием Arduino IDE.
Пример исходного кода для робота-художника есть и на диске, входящем в комплект, и на сайте производителя.
Однако этот робот способен на большее, чем просто писать сообщения. Если посмотреть на исходный код на вкладке , можно заметить, что каждая буква алфавита запрограммирована с помощью четырех основных функций робота:
- Go(x) — двигаться заданное число шагов;
- Turn(angle) — повернуть на заданный угол;
- Up() — поднять маркер вверх;
- Down() — опустить маркер вниз.
Также описана функция End (), после которой робот находится в непрерывном цикле и ничего не делает.
Используя эти функции, можно запрограммировать робота на создание любых изображений, в том числе создать свои новые символы. Довольно увлекательное и при этом не сложное занятие.
Изображения также можно масштабировать, увеличивая или уменьшая переменную CHARSIZE.
Производитель составил подробную инструкцию о использовании исходного кода для программирования произвольных изображений.