ЭЛЕКТРОНИКА Нужна помощь с блютуз модулем BT201

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
Дошли руки до молуля bt201. Для начала бегло проверил: режим работы проговаривает по английски (можно создать свои файлы и прошить в модуль, будет хоть по русски, но там есть ограничение на размер и кодировку таких файлов); при установке флешки или сдшки сразу включается режим "Music" и начинает воспроизведение, сохраняет место проигрывания при снятии напряжения; при подключении телефона - блютуз главный (он всегда главный). Режим "свободные руки" - микрофон очень чувствительный, звук очень разборчив (просто офигенно на фоне даже фирменных "свободных рук". 5 баллов! (y)
Модуль вообще прикольный. Я сел разбираться с документацией на него, @Shaitan у себя на сайте английскую версию выложил. Хочу библиотеку написать, хотя бы основные функции +- = dfplayer (именно эту переписывать и собрался).

Но вот в чем незадача - никак не могу законнектиться с модулем. Сделал простенький скетч, который транслирует данные с usb-uart ардуины нано в SoftwareSerial модуля (пины 10,11), скорость обоих сериал установил 115200, коммуникация есть, но модуль отвечает крякозябликами (по доках дефолтная скорость именно 115200). Пробовал скорость менять, ответов либо нет, либо теми же зябликами. Короче, в непонятках пока, уперся. Кто-то, что-то знает?

Доки тут https://nettips.ru/article/bt201_arduino.html

Обновил прошивку из англ.пакета док (обновляется крайне просто на флеху в ФАТ32 кинуть в корень файл update.bfu и вставить)

Скетч:
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
  Serial.begin(115200);
  mySerial.begin(115200);
}

void loop() {
  if (Serial.available()) {      // If anything comes in Serial (USB),
    mySerial.write(Serial.read());   // read it and send it out Serial1
  }

  if (mySerial.available()) {     // If anything comes in Serial1 (pins 0 & 1)
    Serial.write(mySerial.read());   // read it and send it out Serial (USB)
  }
}
все равно бред
вот что выдало после обновления и ресета
Ԍkpq
⸮⸮k0r
⸮1+00
⸮2kp1
⸮s+0q
⸮4+pq
⸮5+01
⸮⸮+0p0p
⸮⸮k⸮⸮r01-⸮⸮⸮⸮⸮
Создаётся впечатление, что модуль отвечает, но по китайски?! :unsure: :rolleyes:

Был у меня GPRS модем какой-то, там проблема была в том, что УАРТ с открытым коллектором, тоже плохо меня понимал и тоже отвечал крякозяблами - помогли резисторы на массу. Тут, думал, может то же самое - но нет. Резисторы не помогают.
 
  • Лойс +1
Реакции: Diman

Un_ka

★★✩✩✩✩✩
13 Июл 2020
243
77
других форумов.
Долго же я мучался с такой скоростью, пытаясь дальномер TFMINI benkawee подключить. Тут лучше сразу usb uart преобразователь использовать и работать с ним на скоростях
софт сериал отвратительно работает на скоростях выше 9600
с для вывода отладочных данных на ПК. А для работы с модулем (надо же хотя бы скорость на 9600 поменять) использовать встроенный порт.
Ну или не мучаться, как я и взять Мегу.
 
  • Лойс +1
Реакции: kostyamat

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
@IamNikolay, Нет.
софт сериал отвратительно работает на скоростях выше 9600,
Спорно. У меня живой коммерческий проект, где softSerial с модемом на 57600 работает. За два года в эфире ни разу с него не выпал, и модем не ресетил (у меня опрос модема и состояние сети там каждые 30 секунд). Но да, на 115200 я с софтсериал еще дела не имел. В описании сказано, что 115200 абсолютный максимум, возможно уперлись.
лучше тогда уж взять мегу, у нее аппаратных больше
Пробовал подпаятся к RX\TX Nano мимо кристалла, rst на gnd усадил. Как правило всегда прокатывало, а тут тишина. Вот что уж совсем удивило. Наверное таки стоит мегу в загашниках поискать. Китайцы в доке НАСТОЯТЕЛЬНО рекомендуют подключаться через CH340
Because our chip is weak drive, other USB to TTL module, can be problematic.
Что они этим сказать хотели - я хз. :unsure:
 

IamNikolay

★★★✩✩✩✩
15 Янв 2020
820
175
@kostyamat, странно, в том видео именно на этой скорости работало. символ конца строки отправлялся ?
 

IamNikolay

★★★✩✩✩✩
15 Янв 2020
820
175
@kostyamat, понятно что настроить можно любую из поддерживаемых, в видео по ссылке скорость именно 38400 была. В доках видел 115200, но то что там не всегда может соответствовать действительности у меня с HC-06 так было...
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,263
1,302
Москва
Я пробовал софтсериал работать на 57600 с сим800. Не то что бы совсем не работало, но были лаги непонятные. Уходили на 9600 полностью. Как только взял мегу то работает отлично.
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
Ну что же. Вопрос решен. На Serial1 на Arduino Mega D18 D19 модуль BT201 заработал как положено. По количеству символов ответы на стандартные команды совпадают с Нано и софтсериал. Из этого вывод: SoftwareSerial на Nano с передачей 115200 бод справляется, а вот с приемом не очень.

**** Я тут недавно одну статью читал, - там человек делал тесты кварцев, которыми оснащают дешевые клоны Нано. Вывод - говно, может иметь погрешность до 10%, и даже выше. Возможно моя проблема была связана именно с этим. Чем выше частота передачи, тем критичнее тайминги.
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@kostyamat, не пробовали поставить паузу длиной где-нить секунду после инициализаци софтсериал?
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
@kDn, ставил. Ничего это не меняет. По крайней мере на моей Нано. Видимо кварц на ней из разряда того г, что я выше писал.
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
@IamNikolay, что это за мод? В чем разница относительно офф.

*** Внутри hex 13.6кБт Это нужно тулзой какой-то шить? Оригинальный формат апдейтов имеет размер почти 500кБт.
 

IamNikolay

★★★✩✩✩✩
15 Янв 2020
820
175
@kostyamat, давно уже экспериментировал с софт сериалом, вот осталась прошивка

шить через sinaprog или avrdude
 

IamNikolay

★★★✩✩✩✩
15 Янв 2020
820
175
@kostyamat, в ардуину, эта прошивка у меня на 115200 нормально работала, если и у вас заработает, значит дело не в кварце, а в коде
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
@IamNikolay, код выше, в первом сообщении. Что там может быть не правильно?
Точно такой же сейчас на Мега, только вместо софт нормальный сериал1
 

IamNikolay

★★★✩✩✩✩
15 Янв 2020
820
175
@kostyamat, еще раз говорю: прошивка что я выложил - модификация которую делал давно, то что у вас софт сериал не работает как надо может быть проблемой кода библиотеки.
 
  • Лойс +1
Реакции: kostyamat

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
@IamNikolay, спасибо конечно. Но мне не до этого немного. Модуль все равно будет в итоге с ESP8266 работать. Там и софтсериал на 115200 нормально фурычит, люди проверили. Нано подключал чисто для кода, для отладки. Не пошла, подключил Мегу - тоже устраивает.

Хм... Когда питание модуля подключено параллельно питанию 5в Меги, в звуковом тракте наблюдается такой нехилый "цифровой" шум, видимо "земляная петля". Предполагаю, что на УАРТ творится аналогичная фигня. Это возможно и послужило проблемой для SoftwareSerial для Нано. Аппаратных фильтров ведь нет, да и программных тоже видимо.
Ой ля-ля... Тут еще и с правильным питанием разбираться по ходу придется. :(

*** Еще одно: Прошивку из архива с доками шить не стоило. Модуль теперь кнопки неправильно понимает, точнее вообще не понимает. Поспешил я однако.
 

Михаил Хортюк

✩✩✩✩✩✩✩
6 Дек 2018
1
1
Хоть тема пол года пустует, но по запросу "BT_201 arduino" она в топе, так что напишу один важный нюанс: Не стоит подавать 5в на вход (RX) модуля, даже если это подтяжка.
Если подключить данный модуль без согласования напряжений по UART, то модулю становится плохо, идут сильные помехи и начинают глючить кнопки(их функции меняются).
Возможно, конечно, что тому виной CH340, который остается висеть на линии параллельно аппаратному UART, который я использовал в своем проекте, возможно позже я это проверю.
 
  • Лойс +1
Реакции: kostyamat

Сергей Прохоров

✩✩✩✩✩✩✩
25 Июн 2022
3
0
Приветствую! Очень нужна помощь с обработкой данных этого модуля, поступивших в порт после команды AT.
Сделал музыкальный проигрыватель на Меге и BT-201 с индикацией и дистанционным управлением. Команды в порт отправляются и модуль их отрабатывает, но вот с обратной связью у меня проблема, не могу использовать то, что выдает модуль в ответ. Хочется записать в переменные и потом вывести на экран тип воспроизводимого источника (BT или U-disc) номер трека, его время, кол-во и время всех треков. Может, кто-то реализовывал такое?