Контроллер DFRobot Bluno Arduino-совместимый

Программируемый контроллер DFRobot BLUno, Arduino-совместимый

  • Интегрированный BLE-чип: TI CC2540
  • Скорость передачи: 9600 – 115200 бит/сек
    Дальность передачи:
    - открытое пространство: более 70 м
    - офис: около 20 м
  • Питание: порт USB или внешний блок питания 7В ~ 12 В постоянного тока
  • Рабочее напряжение: 3.3 / 5 В
  • Максимальный ток выводов входа/выхода: 40 мА, рекомендуемый 20 мА
  • Максимальный общий ток: 500мА, предохранитель USB-порта
  • Микроконтроллер: ATmega328 (корпус MLF-32pin)
  • Загрузчик: Arduino Uno
  • Тактовая частота: 16 МГц
  • Флеш-память: 32 Кб, из которых 0.5 Кб используются для загрузчика
  • ОЗУ-память: 2 Кб
  • EEPROM-память: 1 Кб
  • Цифровые входы/выходы: 22
  • Аналоговые входы: 6, 10-бит
  • ШИМ выходы: 6
  • Совместимость по контактам с Arduino Uno
  • Светодиодная индикация событий
  • Размер: 60мм * 53мм
  • Вес: 30 грамм
  • Поддержка беспроводного программирования через BLE
  • Поддержка Bluetooth HID (Human Interface Device) для ПК и iOS
  • Поддержка iBeacons-маяков
  • Поддержка AT-команд для конфигурации BLE

Вступление

Пришло время появления автономных средств дистанционного управления и передачи информации на расстоянии в ваших Arduino-проектах. Модуль BLUno наделён способностью связывать и синхронизировать любые устройства, поддерживающие стандарт Bluetooh 4.0, используя для коммуникации с ними функции беспроводной передачи данных. Таким устройством может стать и смартфон, и планшет, и многие другие "умные" устройства.

Аббревиатура BLUno образовалась от сокращения названий и слияния воедино двух электронных устройств: микроконтроллерной платы Uno и модуля дистанционной передачи, основанного на технологии беспроводных сетей Bluetooth (BLE). BLUno = BLE + Uno.

Модуль стал инновационным, ранее не выпускавшимся продуктом семейства BLUno, с интегрированными в популярную и широко известную в сообществе Arduino-пользователей плату Arduino Uno возможностями Bluetooth 4.0 (BLE). Оригинальный подход в комбинировании элементов позволяет расширить границы уже существующего функционала. А также предлагает разработчикам программного и аппаратного обеспечения новые возможности в создании и воплощении в жизнь самых смелых проектов, среди которых могут оказаться "умные" браслеты, "умные" шагомеры, квадрокоптеры, элементы "умного дома" или что-нибудь более невообразимое. Организация связи и координации между устройствами в режиме реального времени, поддерживающими маломощную технологию Bluetooth 4.0, и обладающими невысоким энергопотреблением, окажется совсем не сложной.

Уникальная модификация Uno разработана компанией DFRobot. Можно смело предположить, что проектирование BLUno основывалось на открытых источниках, предоставленных в свободный доступ создателями проекта Arduino. Придерживаясь методике распространения информации, взятой за основу первоисточником, проект BLUno стал полностью открытым, благодаря чему любой желающий может изменять и разрабатывать свою аппаратную платформу на основе BLE.

Совместимость

Модуль BLUno целиком и полностью совместим со всеми дополняющими платами, расширяющими возможности основной микроконтроллерной платы, и спроектированными для обычной Uno R3:

  • Физический размер платы и компоновка её выводов идентичны, за исключением небольшого выступа текстолита рядом с бочкообразным разъёмом подключения внешнего источника питания чёрного цвета, на котором разместилась антенна беспроводной связи.
  • Наличие на борту двух понижающе-стабилизирующих регуляторов постоянного напряжения никак не ограничивают пользователей в подключении дополнительных устройств с основным питанием 3.3 В и 5 В.
  • Все группы пользовательских выводов платы различаются цветом в соответствии со своим назначением:
    Красный - силовая секция питания/напряжения,
    Синий - аналоговые входы,
    Зелёный - цифровые входы/выходы.

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

Связь с устройствами

Плата поддерживает работу с устройствами на Android 4.3+ и iOS 7.0+, обладающими внутренним модулем BLE с оригинальными прошивкой и драйвером (Nexus 4+, Xaiomi 2s, Samsung Galaxy s4, Samsung Galaxy note 3, iPhone 4s+, iPad 3+, iPad Mini, iPod 5го поколения и другие. iPhone 4s не 100% совместим). Плата не совместима с другими брендированными BLE модулями/устройствами, имеющими прочую от CC2540 модификацию, а также всеми устройствами с версией Bluetooth 2.0

Беспроводная связь построена на микроконтроллере TI CC2540 Bluetooth 4.0, благодаря чему модуль BLUno позволяет применять беспроводной способ программирования и загрузки программ в основной контроллер ATmega328P. Организовать связь с персональным компьютером по BLE возможно только при наличии аналогичного чипа, также встречающегося в Bluetooth-приёмо/передатчике HM-10. Встроенная связь по Bluetooth вашего компьютера использует другой протокол и не совместима с платой BLUno. Реализация HID-функционала возможна с помощью USB-адаптера CSR Bluetooth 4.0 (BLE-донгла).

В модуле BLUno реализована схема беспроводного соединения только с одним устройством на чипе TI СС2540. Соединить несколько устройств в одну сеть у вас не получиться. Изначально, модуль настроен на установление BLE-связи по запросу от любого устройства. Чтобы BLUno мог создавать соединение с определённым BLUNO-устройством, каждый из них должен быть запрограммирован соответственно в роль ГЛАВНОГО и ВЕДОМОГО. Тогда оба устройства будут соединяться автоматически. Если же рядом находятся несколько BLUNO-устройств, лучшим решением станет привязка к определённому MAC-адресу. Более подробно о настройках можно узнать, ознакомившись с разделом "Настройка BLE с использованием AT команд".

BLUno позволяет устанавливать взаимосвязь с маяками IBeacon. Подробное описание о настройках модуля для работы с маяками, можно узнать в разделе "Настройка BLE с использованием AT команд".

Как прошить новый CC2540 чип с сервисом DFRobot BLE

Обзор платы

Обзор элементов платы BLUNO

Светодиодная индикация:

  • TX и RX - мигают при обмене данными через интерфейс UART;
  • ON - плата подключена к питающему напряжению;
  • L - пользовательский, доступен для цифрового вывода 13;
  • Link - установлено Bluetooth-соединение;
  • Pair - BLUno сопряжён в пару с другим устройством.

Питание модуля осуществляется тремя вариантами: USB-разъём 5В, разъём внешнего источника питания или выводы VIN+GND с напряжением 7-12В, и контакты 5V+GND, к которым подаётся строго не превышающее 5В напряжение. В случае одновременного использования нескольких источников, модуль самостоятельно выбирает и переключается на самое высокое входное напряжение. Выводы 3.3В и 5В могут послужить источником питания для подключаемый расширений.

Принципиальная схема Arduino Bluetooth 4.0 (BLE) модуля.

Распиновка и назначение выводов BLUno

Распиновка DFRobot Bluno BLE, BLUno pinout

Интерфейсы программирования

  • UART (ассинхронный последовательный интерфейс) - контакты RX(0) и TX(1);
  • I2C/IIC/TWI (двунаправленный последовательный интерфейс) - контакты А4, А5 и SDA,SCL;
  • SPI (последовательный периферийный интерфейс) - контакты 10, 11, 12, 13;

Широтно-импульсная модуляция, позволяющая управлять уровнем исходящего напряжения, расположена на контактах 3, 5, 6, 9, 10, 11.

Аналоговые входы A0-A5 могут быть использованы как цифровые. Каждый из них имеет разрешение 10-бит и измеряется значениями от "нуля" до 5 В (1024 различных значений).

AREF - устанавливает опорное (эталонное) напряжение для аналоговых входов. Контакт используется вместе с функцией analogReference(), которая выполняет пропорциональное сравнение напряжений на выводе AREF с аналоговым входом с генерацией значений 0..1023. Например, опорное напряжение устанавливается 5 В, а на входе аналогового контакта подается 2,5 В. Результатом выполнения сравнения станет полученное значение 512.

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

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

Кнопка "Boot" переводит модуль в режим прошивки контроллера TI CC2540.

Разъем ICSP создан для внутрисистемного последовательного программирования и предоставляет непосредственный доступ к программированию центрального микроконтроллера ATmega328 с применением внешних программаторов.

Первое подключение

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

BLUNO драйвер не установлен

Необходимый драйвер, создающий в операционной системе виртуальный COM-порт, включён в состав программы и ваш модуль должен определиться как Arduino Uno. Если драйвер не установился (не определился как Arduino Uno (COMxx) в диспетчере устройств), установите драйвер вручную. Или установился другой BLE-драйвер (отобразился как Bluetooth, но без порта COMxx в диспетчере устройств), удалите устройство из системы и установите драйвер вручную.

BLUno драйвер установлен корректно

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

Программирование

Традиционным способом считается проводное программирование, когда микроконтроллерная плата подключена к компьютеру с помощью USB-кабеля. В ранее загруженном редакторе ARDUINO IDE осуществляются несложные настройки платы:

  • Откройте ARDUINO IDE;
  • Выберите тип программируемой платы в меню "Инструменты (Tool) -> Плата (Boards)" как "Arduino/Genuino Uno";
  • Выберите присвоенный BLUno номер последовательного порта в меню "Инструменты (Tool) -> Порт (Ports)".

Теперь можно создавать свои программы или загружать примеры, имеющиеся для ознакомления в самом редакторе: "Файл -> Примеры". Попробуйте нижеприведённый код и помигайте светодиодом "L" на BLUno:

int ledPin = 13;            // Определяем цифровой контакт светодиода
void setup()
{
pinMode(ledPin, OUTPUT);    // Устанавливаем для контакта режим вывода информации
}
void loop()
{
digitalWrite(ledPin, HIGH); // Включаем светодиод
delay(1000);                // Ждём 1 секунду
digitalWrite(ledPin, LOW);  // Выключаем светодиод
delay(1000);                // Ждём 1 секунду
}

Допускается программирование центрального контроллера ATmega328P посредством подключения внешних программаторов к специальным ICSP-разъёмам на плате.

Демонстрация основ BLUNO

Раздел посвящен главной функции модуля BLUno. На основе демонстрационного приложения для ОС Android, вы сможете разработать своё собственное.

Демонстрационное приложение BLE BLUNO для Android и iOS

Необходимые инструменты:

  • BLUno - Arduino Bluetooth 4.0 (BLE) модуль х 1;
  • Android 4.3+ устройство или iOS 7.0+ устройство х1;
  • Micro USB кабель х 1.

Шаги:

  1. Установите ARDUINO IDE.
  2. Скопируйте представленный ниже исходных код в ARDUINO IDE. (Эта программа выполняет только одну функцию и отображает сообщения, полученные через последовательный порт).
    void setup() {
      Serial.begin(115200);  //Инициализация последовательного порта
    }
    
    void loop() {
      if (Serial.available())  {
        Serial.write(Serial.read());//получает отправленные символы
        Serial.println();   //выводит строку переданных символов
      }
    }
    
  3. Выберите "Arduino Uno" как основную в меню "Инструменты (Tools)->Плата (Boards)". Укажите порт, к которому подключен BLUNO в меню "Инструменты (Tools)->Порт (Ports)".
  4. Загрузите программу в модуль (круглая кнопка "стрелка вправо" редактора).

    Примечание! Если BLUno соединён по Bluetooth-связи, то на плате горит светодиод LINK и последовательный порт занят BLE. Для загрузки в модуль какой-либо Arduino-программы отключите Bluetooth-соединение.

Для Android

  1. Установите APK файл в ваш Android-телефон.
  2. Запустите приложение.
  3. Нажмите кнопку "Сканировать/Scan" ( ① ) для поиска и выбора BLUno.
  4. После соединения с ним нажмите кнопку "Отправить данные/Send Data" ( ② ) для отправки текстового сообщения из строки ( ③ ) в BLUNO.
  5. BLUno ответит таким же текстом, который вы увидите в строке "Полученные данные/Received Data" ( ④ ).
  6. Обратите внимание на встроенные светодиоды RX и TX, которые будут мигать при получении и отправке сообщения.

Для iOS

  1. Скомпилируйте исходный код на вашем Apple-устройстве.
  2. Запустите приложение.
  3. Нажмите кнопку "Сканировать/Scan" ( ② ) для поиска и выбора BLUno.
  4. После соединения статус изменится из "Не готов!/Not Ready!" в "Готов!"/Ready!" ( ① ). Нажмите кнопку "Отправить данные/Send Data" ( ④ ) для отправки текстового сообщения из строки ( ③ ) в BLUNO.
  5. BLUno ответит таким же текстом, который вы увидите в строке "Полученные данные/Received Data" ( ⑤ ).
  6. Обратите внимание на встроенные светодиоды RX и TX, которые будут мигать при получении и отправке сообщения.

Пример того, как можно сочетать функционалы BLE и HID, можно найти здесь.

Настройка BLE с использованием AT команд

Для версий 1.8 или позднее. Переключатель режима "АТ" бесполезен в прошивке версии 1.8 и новее:

  1. Откройте ARDUINO IDE.
  2. Выберите присвоенный BLUno номер последовательного порта в меню "Инструменты (Tool) -> Порт (Ports)".
  3. Откройте "Монитор последовательного порта" в меню "Инструменты (Tool) -> Монитор порта (Serial Monitor)".
  4. В нижней части открывшегося окна, в двух раскрывающихся списках, выберите "Нет конца строки" и "115200 бод".
  5. В диалоговой строке вверху окна введите "+++" и нажмите кнопку "Отправить".
  6. Если совершён корректный вход в режим АТ-команд, на экране вы увидите сообщение "Enter AT Mode".
  7. В нижней части Монитора порта, в двух раскрывающихся списках, снова выберите "NL & CR" и "115200 бод".
  8. В диалоговой строке введите команду "AT+SETTING=DEFAULT" и нажмите кнопку "Отправить".
  9. Если BLE настроен успешно, вы получите ответ "ОК".
  10. В случае получения ошибки "ERROR CMD", попробуйте отправить команду ещё раз или убедитесь в правильном её написании.
  11. Используйте "AT+EXIT" для выхода из AT режима.

Для версий 1.7 или ранее:

  1. Для входа в режим АТ команд воспользуйтесь встроенным на плате переключателем, переместив его в положение "АТ".
  2. Откройте ARDUINO IDE. Выберите присвоенный BLUno номер последовательного порта в меню "Инструменты (Tool) -> Порт (Ports)".
  3. Нам понадобится "Монитор последовательного порта" в этой части. Откройте "Монитор последовательного порта" в меню "Инструменты (Tool) -> Монитор порта (Serial Monitor)".
  4. В нижней части открывшегося окна, в двух раскрывающихся списках, выберите "NL & CR" и "115200 бод".
  5. В диалоговой строке вверху окна введите "AT+SETTING=DEFAULT" и нажмите кнопку "Отправить".
  6. Если BLE настроен успешно, вы получите ответ "ОК".
  7. В случае получения ошибки "ERROR CMD", попробуйте отправить команду ещё раз или убедитесь в правильном её написании.
  8. Для выхода из режима АТ команд переведите переключатель в положение "NORM".

Список АТ-команд

Беспроводное программирование с помощью BLE

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

Нам потребуются:

  • BLUno - Arduino Bluetooth 4.0 (BLE) модуль х 2;
  • Micro USB кабель х 2.

1. Существуют две разные функции устройства BLE: ЦЕНТРАЛЬНЫЙ и ПЕРИФЕРИЙНЫЙ. Чтобы настроить правильную связь между ними, одно должно быть настроено на ЦЕНТРАЛЬНЫЙ, а другое - на ПЕРИФЕРИЙНЫЙ.

2. Соедините их с компьютером.

3. Передвиньте переключатель в "АТ" (все версии до 1.7) / Введите "+++" (версии после 1.8) в диалоговой строке Монитора последовательного порта для перехода в режим АТ-команд.

4. Для ЦЕНТРАЛЬНОГО устройства отправьте следующие АТ-команды:

Ввод: AT+SETTING=DEFCENTRAL, ответ (возвращаемый): ОК
Ввод: AT+BLUNODEBUG=OFF, ответ (возвращаемый): ОК

5. Для ПЕРИФЕРИЙНОГО устройства отправьте следующие АТ-команды:

Ввод: AT+SETTING=DEFPERIPHERAL, ответ (возвращаемый): ОК
Ввод: AT+BLUNODEBUG=OFF, ответ (возвращаемый): ОК

6. Команда AT+BLUNODEBUG=OFF делает беспроводное программирование более стабильным. В этом режиме ва не сможете отслеживать Монитор последовательного порта через USB на персональном компьютере.

7. Переместите рычажок переключателя в "NORM" (все версии до 1.7) / Введите "AT+EXIT" (версии после 1.8) в диалоговой строке Монитора последовательного порта для выхода из режима АТ-команд.

8. Отключите USB-соединение ПЕРИФЕРИЙНОГО устройства и соедините его с внешним источником питания, например батарейки.

9. Буквально через секунду загорится светодиод Link, говорящий о том, что соединение установлено.

10. Нажмите в ARDUINO IDE кнопку "Загрузить", и программа успешно запишется в ПЕРИФЕРИЙНОЕ устройство.

Примечание! В редакторе ARDUINO IDE вы настраиваете тип платы только для ПЕРИФЕРИЙНОГО устройства. Если в качестве передающего вы используете Arduino Bluetooth 4.0 (BLE) модуль, а в качестве принимающего будет, например, BLUNO Mega2560, то вам нужно выбрать Mega2560.

Примечание! Беспроводное программирование возможно в двух направлениях между ЦЕНТРАЛЬНЫМ и ПЕРИФЕРИЙНЫМ устройствами, но скорость немного отличаются:

  • ЦЕНТРАЛЬНЫЙ -> ПЕРИФЕРИЙНЫЙ 2КБ/с
  • ПЕРИФЕРИЙНЫЙ -> ЦЕНТРАЛЬНЫЙ 4КБ/с

Обновление прошивки BLE на BLUNO

Примечание! Для проверки версии прошивки воспользуйтесь командой "AT+VERSION=?" в режиме АТ команд.

Для моделей версии 1.7 или ранее, с прошивкой версии не старше 1.6:

Внимание! Метод совместим с Windows XP и Windows 7. Версии Windows 8 и 10 могут не работать с этим методом.

  1. Нажмите и удерживайте кнопку "Boot", затем подключите BLUno к компьютеру с помощью USB-кабеля. Отпустите кнопку.
  2. Система компьютера определит BLUno как флеш-накопитель (съёмный диск).
  3. Откройте диск и удалите "*.bin" файл. После этого USB-накопитель автоматически перезагрузиться и отключиться.

    Обновление прошивки BLE BLUNO

  4. Распакуйте содержимое архива UBL2SBL.bin (загрузить) на флеш-диск BLUno.
  5. USB-накопитель автоматически перезагрузиться и отключиться.

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

Выберите соответствующую ссылку для операционной системы:

Обновление прошивки 1.8

Программа очень проста в использовании.

  1. Нажмите и удерживайте кнопку "Boot".
  2. Подключите BLUno к компьютеру с помощью USB-кабеля.
  3. Система компьютера определит BLUNO как флеш-накопитель (съёмный диск).
  4. Распакуйте содержимое архива firmwareV1.9.rar или firmwareV1.97.rar (или загрузите обновление с сайта Github) на свой компьютер и запомните месторасположение файлов.
  5. В программе укажите порт, к которому подключен BLUNO и выберите расположение файла обновления (пункт 4).
  6. Для BLUno или BLUNO NANO необходимо загружать файл "SBL_BlunoV*.bin".
  7. Нажмите мышкой на кнопку загрузки (стрелка вниз) и подождите 2 минуты.

Примечание! После обновления параметры будут сохранены. Если вы захотите вернуться к заводским настройкам, просто воспользуйтесь АТ-командой "AT+SETTING=DEFAULT".

Обсуждение Bluno

Если у вас остались вопросы, пожалуйста, ознакомьтесь с разделом "Вопросы и ответы".

Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2018г https://compacttool.ru
Связаться с нами 8-495-752-55-22 zakaz@compacttool.ru