‎App Store: LED Hue

‎App Store: LED Hue Конструкторы

Введение

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

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

Он был основан на Lego Outdoor Challenger (в реальности он выглядит гораздо лучше). В результате остался только кузов (все украшения были удалены) и три двигателя.

image


У машинки была своя плата, но одна из задач подразумевала универсальность: это сделал я, это смогут повторить другие. Мозги вынул, поставил Arduino Uno.

Bluetoothview

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

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

‎led hue

LED Hue is an APP designed for full color LED controller as a remote controller via Bluetooth.
It supports many LED driver IC:
SM16703,TM1804,UCS1903,WS2811,WS2801,SK6812,SK6812_RGBW,LPD6803,LPD8806,APA102,APA105,TM1814,TM1914,TM1913,P9813,INK1003,P943S,P9411,P9412,P9413,P9414,TX1812,TX1813,GS8206,GS8208,SK9822,DMX512.

Смотрите про коптеры:  Радиоуправляемые модели

При подключении контроллера пользователь может выбирать из 120 типов эффектов.

Main function:
Modifying device’s name;
Selecting different chipset;
Setting RGB order;
Setting pixels number;
Selecting effects;
Picking static colors;
Modifying speed for effect;
Modifying brightness.

‎led strip

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

‎rgb remote

Brief introduction:
RGBW light dimmer is a mobile application which is developed with Bluetooth 4.0.
With RGBW light dimmer, you can use your phone to operate the colored light wirelessly. As long as you touch the phone, according to your corresponding click, the lights will change the color, brightness, and flicker frequency, and even DIY colored lights. RGBW light dimmer can also control multiple lights if you add the lights to the group.

Application steps:
Firstly, open the Bluetooth on the phone.
Secondly, open the APP of RGBW, and click on the Bluetooth logo which is on the upper left corner.
Thirdly, click on searching for BLEDIM light.
Fourthly, click on connecting to BLEDIM light which has been searched.
Fifthly, do the operation to change color, brightness, flicker frequency, DIY colored lights, and so on.
Sixthly, if you want to control multiple lights at the same time, you should firstly search for and connect multiple BLEDIM lights, and click on the logo of the light group, and then click on the BLEDIM lights which you want to meanwhile control. After this operation, you can control the lights synchronously.

The existing function of RGBW light dimmer:
First, multicolor regulation.
Second, brightness control.
Third, flicker frequency regulation.
Fourth, DIY colored lights.
Fifth, divide the group to control multiple lights synchronously.

Widcomm bluetooth software 12.0.1.940

Это бесплатная утилита, которая работает с устройствами, имеющими функцию Bluetooth, а также пакет драйверов для оборудования Broadcom. Программа Widcomm Bluetooth является бесплатной для операционных систем Windows XP, 7, 8, 10 (32 и 64-битные версии), протестирована и работает без ошибок. Утилита доступна бесплатно для всех пользователей.

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

Немного преподавательской деятельности:

  • Перед запуском программы убедитесь, что ваше беспроводное устройство подключено к компьютеру и включено.
  • Затем запустите “Bluetooth Software” и следуйте инструкциям, программа обнаружит подключенные устройства и запросит разрешение на установку драйверов, некоторые из них не имеют цифровой подписи, в этом нет ничего страшного, соглашайтесь (см. скриншоты).
  • Затем следуйте инструкциям программы и перезагрузите компьютер после установки.

Windows 10

  1. Найдите синий значок, щелкните правой кнопкой мыши и выберите “Add Device” (Добавить устройство).
  1. Его также можно найти в разделе “Опции” в меню “Устройства”.
  1. Перейдите в нужный раздел, убедитесь, что передатчик активирован, и нажмите на знак плюс.
  1. Убедитесь, что ваши наушники включены. Добавьте нашу гарнитуру.

‎App Store: LED Hue

Windows 7 и 8

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

Блютуз адаптер и сеть

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

B T-соединение можно использовать для подключения к Интернету с помощью модемных возможностей сотового телефона, например, через 3G или GPRS. В большинстве стран Bluetooth работает в нелицензируемом диапазоне радиочастот от 2,4 до 2,485 ГГц, который используется для Wi-Fi, радиотелефонов и для микроволновых печей, научного и медицинского оборудования, излучающего радиацию.

В последней спецификации Wireless Personal Area Network (WPAN) радиус действия сетей Bluetooth увеличивается до 100 метров, а данные передаются со скоростью 3 Мбит/с. Самый мощный AIRcable XR Host достигает 30 км. Спектр применения неограничен: от популярных смартфонов, гарнитур и GPS-навигаторов до диагностического сканера ELM327 Bluetooth OBD2 для автомобилей и датчиков, используемых в науке, спорте и медицине.

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

В прошлом, я и мои коллеги

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

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

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

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

Он является суммой наших компонентов:

Теперь у нас есть все, что нам нужно.

Где посмотреть

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

Прошивка для платы Olimex —


Код Android приложения

Версия, установленная в

Задача

Сделать автомобиль, управляемый с помощью Arduino, и заменить пульт дистанционного управления на андроид – самая простая задача. Много раз мне приходилось придумывать совершенно новое решение, поскольку я не мог найти подходящего решения в Интернете.

Как включить блютуз, если есть проблемы

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

Настройка widcomm

Щелчок правой кнопкой мыши открывает меню настроек программного обеспечения Widcomm. Для начала я предлагаю определить несколько настроек. Для этого выберите “Панель настроек Bluetooth”:

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

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

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

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

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

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

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

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

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

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

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

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

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

Подключение

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

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

Именно модель HC-05 стала причиной того, что у меня оказалась фатально поврежденная система. Каждый Bluetooth подключается одинаково: к 3.3V (иногда только от 5V), к минусу, и к портам 0 и 1 (чтение и отправка, соответственно). Чтобы подключить к bluetooth провод с подписью RXD, вы вставляете TXD в arduino, а RXD в TXD (если вы их перепутаете, то не увидите данных).

Однако есть оговорка: по умолчанию для отправки скетча используются последовательные порты 0 и 1. Это означает, что пока Bluetooth подключен, скетч не будет заполняться. В этом случае можно либо убрать bluetooth на время заполнения, либо переназначить выходы bluetooth на другие входы. Второй вариант осуществляется с помощью двух строк

#include <SoftwareSerial.h> подключение библиотеки
SoftwareSerial BTSerial(8, 9); установка 8 и 9 пина заместо 0 и 1

Я проглотил три дня работы из-за неполадок со связью. Чтобы проверить, я по привычке установил скорость 9600. После этого данные не приходили, потом были куча символов. Модель HC-05 общается на скорости 38400 – ответ! Очень важно отметить, что в Setup() я буду запускать BTSerial.begin(39400), а не Serial.begin(9600).

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

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

На рисунке показана схема подключения. Подключите плюсовой провод к зеленому проводу, а остальные – к минусовому. Если подключить провода к выходам A0-A2 через резистор, помехи и короткие замыкания будут исключены. Эти порты выбраны только ради сохранения остальных портов.

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

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

int speedTurn = 180; //скорость поворота, от 0 до 255

//пины для определения поворота
int pinRed = A0;
int pinWhite = A1;
int pinBlack = A2;

int pinAngleStop = 12; //выводит ток на светодиод, если достигнут максимальный угол, нужен 
//только для отладки 

void setup() {
 //пины поворота на считывание
  pinMode(pinRed, INPUT);
  pinMode(pinBlack, INPUT);
  pinMode(pinWhite, INPUT);
//светодиод 
  pinMode(pinAngleStop, OUTPUT);
//пины драйвера двигателя, направление и скорость
  pinMode(angleDirection, OUTPUT);
  pinMode(angleSpeed, OUTPUT);

  Serial.begin(9600);
}
//функция вызывается из loop(), когда приходит команда с андроида
void turn(int angle) {
  digitalWrite(pinAngleStop, HIGH); //выдаем ток на провод, подключенный к плюсу
  delay(5); //немного ждем, чтобы ток "успел" дойти
  
  if(angle > 149) {
        if( digitalRead(pinWhite) == HIGH && digitalRead(pinBlack) == LOW && digitalRead(pinBlack) == LOW) { 
          //если достигнуто крайне правое положение, выйти из функции не подавая ток, чтобы не 
          //сжечь мотор
          return;
        }
        //если угол не максимальный, поворачиваем
        digitalWrite(angleDirection, HIGH);
        analogWrite(angleSpeed, speedTurn);
  } else if (angle < 31) { 
        if(digitalRead(pinRed) == HIGH && digitalRead(pinBlack) == HIGH && digitalRead(pinWhite) == HIGH) {
          //если достигнуто крайне левого положение, выйти из функции не подавая ток, чтобы не 
          //сжечь мотор
          return;
        }
        //если угол не максимальный, поворачиваем
        digitalWrite(angleDirection, LOW);
        analogWrite(angleSpeed, speedTurn);
  }
  digitalWrite(pinAngleStop, LOW); //убираем ток с определителя угла
  delay(5);
}

Подключение устройств к компьютеру через bluetooth

Устройство может быть подключено через Fast или Normal Widcomm. Когда вам нужно подключить конкретное устройство только один раз (для передачи файла, визитной карточки, звука). Для выбора действия “Быстрое подключение” нажмите “Найти устройства” (предварительно включив Bluetooth на маршрутизаторе).

Подключение будет авторизовано вами после ввода пин-кода после обнаружения. Кроме того, вы можете ввести код сопряжения Bluetooth в руководстве к подключаемому устройству. Если подключаемое устройство не имеет цифровой клавиатуры (например, принтер), найдите код сопряжения в руководстве.

В случае успешного подключения вы сможете получить доступ к нужной функции.

Самый простой способ подключить устройство к ПК – создать для него стандартное соединение. Выберите в меню пункт “Подключить устройство Bluetooth” – появится специальный мастер. Вначале он просканирует доступные устройства и предоставит их список, как при быстром подключении:

Затем дважды щелкните на нужной, чтобы увидеть все доступные услуги:

В нашем примере мы будем использовать телефон в качестве аудиошлюза, а также FTP- и OPP-сервера для настройки сопряжения. FTP-серверы – лучший вариант для передачи файлов. Отметьте его и нажмите “Далее”.

В открывшемся окне можно дать соединению имя, а затем завершить создание ярлыка соединения, нажав кнопку “Готово”.

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

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

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

Понадобится

  1. Arduino
  2. Моторный щит (в моем случае два)
  3. Bluetooth
  4. Android
  5. Кабели являются обычными.

Проверка устройства и установка драйверов

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

Чтобы начать, посмотрите в правый нижний угол. Вы должны увидеть значок “Bluetooth”, если ваши драйверы были правильно установлены. Иногда можно скрыть все программы в трее, нажав на стрелку, направленную вверх.

Когда речь идет о Bluetooth, вы можете проверить в диспетчере устройств, включено ли устройство. Просто нажмите клавишу “Win R”, после чего должна появиться команда “devmgmt.msc”.

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

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

Моторный щит имеет два выхода, каждый из которых имеет выход на 2 ампера. Каждый двигатель потребляет 0,7 А. Кажется, что есть снижение, но не при максимальной нагрузке. Если предположить, что машина застряла или заглохла, ток вырастет выше ампера. Не критично, но потенциально опасно.

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

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

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

Коды Arduino и Android будут размещены в отдельной статье, но сейчас мы обсудим, как это работает.

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

После настройки сокета данные отправляются в виде: @speed#*angle#. Символ # означает, что следующая цифра содержит скорость, * указывает на начало записи угла, а @ – на конец записи угла. Для выполнения команд оптимально выбирается 100 миллисекунд (это число выбрано не случайно). Ничего не отправляется, если андроид не нажат.

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

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

Во-первых, я хотел бы настроить доставку команд на блок управления. На самом деле, и модуль bluetooth, и контроллер представляют собой UART с ножками управления, то есть их нужно только подключить к встроенному контроллеру.

Программный компонент не так сложен, как аппаратный. Модуль пишет “CONNECT RE:MO:TE:BT:MA:CC xxx rn” при подключении и “DISCONNECT xxx rn” при отключении. Если соединение активно, драйвер должен отслеживать поток символов и передавать его управляющему приложению.

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

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

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

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

Это простая схема, в которой один двигатель управляет самолетом, а второй двигатель управляет рулем (он имеет фиксацию угла поворота). Двигателями можно управлять, подавая напряжение на соответствующие ножки управления (положительное или отрицательное напряжение или нулевое напряжение).

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

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

Сравнение программы widcomm с платным аналогом bluesoleil

ОсобенностиWidcommBluesoleil
Стоимостьбесплатно$27.99
Пользовательский интерфейсПроводник Windowsсобственный
Поддержка беспроводных манипуляторов
Работа с принтерами и факсами
Беспроводная трансляция аудиопотока
Передача файлов
Менеджер для мобильных телефонов /-

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

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


Как было обещано, удаленное управление осуществляется с помощью Android-коммуникатора.

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

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

Установка arduino

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

Необходимо одновременно разместить два моторных щита на верхней части платы. Для управления вторым из них подключите цифровой порт к H1, а контакт с поддержкой шины (обычно 10, 11) – к E1 (скорость).

Выводы

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

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

Одним словом, Bluetooth открывает множество возможностей, которые значительно упростят нашу повседневную жизнь!

P.S. Для свободного копирования и цитирования данной статьи необходимо указать ссылку на источник и сохранить авторство Руслана Тертышного.

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

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

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

Отзывы о программе bluesoleil

Алекс про BlueSoleil 10.0.497.0 [30-08-2023]

Доброе утро, у меня есть windows 8 и windows 10 на компьютере, работают ли функции bluetooth, если я настрою его для работы на win 8, а затем на win 10 или наоборот (сначала настрою его для win 10, затем для win 8, а затем он будет работать на win 8)? Если я настрою его таким образом, как мне настроить его для работы на обоих окнах одновременно? 4 | 4 | Ответить

Faton про BlueSoleil 10.0.496.1 [05-03-2023]

Та же фигня, я купил этот адаптер, но не могу найти программу, которая бы работала на WIN7 Купив ключ, я установил его на XP (другой компьютер) и он заработал, но опять же, программа на 30 дней и плоть от плоти уродов 5 | 23 | Reply

хулум-булум про BlueSoleil 10.0.496.1 [08-12-2023]

Оцените статью
Радиокоптер.ру
Добавить комментарий