Нюансы работы модуля Bluetooth HC-05

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Konkery, 23 окт 2017.

Метки:
  1. Konkery

    Konkery Гик

    Доброго времени суток !
    Вопрос к амперке. Пишу приложение под android для более менее унифицированного обмена
    данными с IskraJS. Софтина на стороне andrroid готова передавать данные, встал вопрос по
    режимам работы приемной стороны, а именно:
    1. Настройка скорости АТ командами модуля HC-05 (по умолчанию 9600), влияет только на
    скорость взаимодействия между ядром Espruino и самим модулем, или отражается на скорости
    обмена по BT каналу с удаленным устройством ?
    2. Модуль HC-02 является носителем стандарта Bluetooth Bluetooth 2.0 + EDR (если правильно понял datasheet) что потенциально позволяет обмениваться со скоростью 2 - 3 Мбит/сек. Интересует, данная
    скорость всегда доступна при работе с протоколом RFCOMM (эмуляция последовательного COM порта)?
    3. Если настройки модуля влияют только на выборку/загрузку данных из буфера HC-05, то позволяет ли он
    работать со скоростями больше 115 кбит/сек ?

    Конечная программа в ручном режиме передает от android к IskraJS, при этом в автоматическом режиме принимает данные от IskraJS. Задуман темп отправки сообщений с IskraJS в диапазоне 5-10 сообщений
    в секунду, а так как данные передаются в формате JSON, и пакеты содержат не мало дополнительной,
    служебной информации то хочется четко понимать какие пределы скорости обмена имеются на
    прямой дистанции до 10 м.
    Заранее благодарен за любую информацию по теме!
     
  2. Morgan

    Morgan Гик

    Привет!

    Конкретных ответов на ваши вопросы нет, но есть некоторые знания:

    1. Был опыт передачи больших пакетов с андроида на HC-05 + Photon. На скорости 115200 были потери, но в какой именно железке не выясняли. На 9600 всё было ок.
    2. HC-02 — с ним не работал, не могу подсказать
    3. http://wiki.amperka.ru/_media/продукты:troyka-bluetooth:troyka-bluetooth_at_commands.pdf

    Пределы скорости надо тестировать эмпирически.
     
  3. Konkery

    Konkery Гик

    Спасибо за информацию !
    В части модели модуля опечатка, речь о HC-05.
     
  4. rkit

    rkit Гуру

    1. Как оно может не отражаться? Модуль не может переправлять данные медленнее или быстрее, чем он их получает.
    2. Што.
    3. Максимальная пропускная способность HC-05 — 1382400 бод.

    Што. У программы нет рук.
     
  5. Konkery

    Konkery Гик

    1. "Оно" вполне может не отражаться, т.е. работать с последовательным интерфейсом HC=05 как быстрее
    так и медленнее.
    Скорость чтение из буфера приемо/передающего устройства и средняя скорость передачи между
    устройствами, не есть жестко связанные вещи. Средняя скорость чтения из буфера на большом интервале
    времени конечно не может превышать среднюю скорость передачи по радиотракту. Но меня интересует несколько другой вопрос, а именно если я буду менять at командами скорость работы последовательного интерфейса HC-05 - это как то отразится на скорости обмена между двумя устройствами ? Из вашего ответа я делаю вывод что нет.
    Так задуманы режимы работы. Режим приема - постоянное прослушивание и прием сообщений, режим передачи данных по запросу пользователя, после выставления уставок.
     
  6. rkit

    rkit Гуру

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

    И какая фундаментальная разница? Почему это настолько важно, что аж подчеркнуто?
     
    Последнее редактирование: 24 окт 2017
  7. Konkery

    Konkery Гик

    Если вы не знаете как устроен "модуль" (не ясно даже что вы под этим понимаете) , то как говорится изучайте, и рекомендую попутно попить валерьяну.
     
  8. rkit

    rkit Гуру

    А о чем вообще эта тема? О чем вы свои вопросы спрашиваете? Лол.
     
  9. Konkery

    Konkery Гик

    Уточнение - при установлении соединения с HC-05 вы задействовали UUID, если да то какое
    значение использовалось и откуда бралось ?
     
  10. Morgan

    Morgan Гик

    UUID это же про bluetooth 4.0? HC-05 не умеет в bluetooth 4.0.
     
  11. Konkery

    Konkery Гик

    Не соглашусь, в смысле что HC-05 это протокол 2.0 я писал в начале поста,
    но UUID не имеет отношение к собственно версии протокола 4.0.
    Это идентификатор который при соединении определяет, профиль, протокол
    и как я понял ряд других аспектов (ниже выкопировка с www.bluetooth.com).
    Сейчас при тестировании, я передаю данные от android к ПК с неким универсальным
    UUID, который рекомендован в общем случае на том же ресурсе и фигурирует на многих
    форумах где обсуждается аналогичный вопрос.
    Но хотелось бы большей ясности в отношении данного параметра

     
  12. rkit

    rkit Гуру

    00001101-0000-1000-8000-00805F9B34FB
    Стандартный UUID rfcomm.
     
    Konkery нравится это.
  13. Konkery

    Konkery Гик

    Спасибо, именно этот UUID я и использую, но хотелось бы понять, такой код, с учетом что будет
    задействован только профиль SPP (протокол RFCOMM), будет действовать на разных планшетах
    разных производителей ?
     
  14. rkit

    rkit Гуру

    С чего бы ему не работать
     
  15. Konkery

    Konkery Гик

    Замечание по видеообзору Управляем последовательным портом на Iskra JS. Уроки JavaScript #5. В данном обзоре есть неточность. Если реализовать код представленный в обзоре, как есть, то не получиться выполнить ручной ввод АТ команд как показано, модуль просто их не примет. Пример начинается с команды инициализации UART на котором висит HC-05 происходит с параметром скорости 9600, это скорость HC-05 по умолчанию. Далее описывается обработчик события поступления данных, и последней командой P3.write(1) модуль переводится в режим управления АТ командами, путем подачи высокого уровня на pin К модуля HC-05. Вроде все должно работать, но дело в том что скорость старта IskrsJS и запуск приведенной минипрограммы такова, что если после прошивки "передернуть" питание, то для модуля это равносильно включению его в момент когда на pin К уже установлен высокий уровень, а в этом случае модуль инициализируется со скоростью 38400, а не 9600 как в примере. На прошлых выходных тестировал работу с пришедшим HC-05 производства амперки, и попался на эту удочку, потратил полчаса прежде чем понял в чем дело ))


    upload_2017-10-30_13-51-47.png