Радиомодемы для телеметрии, варианты, плюсы/минусы, обсуждаем...

Воронов
Gapey:

RX/TX трансивера от платы отпаяли

Да, отпаял.

Gapey:

скорость UART порта на блютузе

Не менял, а по умолчанию скорость установлена 9600 (правда не проверял, в надежде, что так и есть…). На модулях телеметрии так же выставил 9600 и в конфигураторе скорость UART так же выставил 9600.

Малая платка Bluetooth модуля имеет напряжение логики 3.3 Вольта. А это значит, что Ардуино Уно может либо сжечь у нее порты, либо просто неправильно передавать сигналы. К счастью, в большинстве случаев большая плата (которую я отпаял) имеет на своем борту все необходимое, чтобы этого избежать. Указанные выше модули легко подключаются к Arduino, без лишних заморочек (если через большую плату).

Источник тут: robotclass.ru/articles/bluetooth-hc-05-06/

Напряжение логики наземного модуля телеметрии тоже 3,3В или 5В?

dvd-media
Воронов:

Есть подозрение, что проблема со стороны Bluetooth-модуля

я чот упустил, что в связке есть ещё хрень в качестве посредника… Тут не подскажу. Если бы напрямую подключалось - это одно, а когда есть ещё слабые звенья - тут только к гадалке…

Я модем подключаю к телефону напрямую, без всяких мостов (наигрался ранее).

Воронов
dvd-media:

без всяких мостов

Во, а что это я туплю… У меня же есть OTG кабель. Нужно попробовать подключится через кабель и будет точно понятно, с какой стороны проблема…
Но без кабеля, всё-таки, позачетней было бы…))) Пока есть надежда, надо пробовать бороть это дело, может и получится…))

dvd-media
Воронов:

всё-таки, позачетней было бы…)))

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

Воронов
dvd-media:

пока не задолбался

Да, я уже тоже близок к этому состоянию…))) С другой стороны, как говорят, - “на своих ошибках учатся, а на чужих делают карьеру”…))

karabasus
Воронов:

Пока есть надежда, надо пробовать бороть это дело, может и получится…))

Блюпуп модуль то проверили через терминал (подключив через uart-usb к комьпютеру и законектив к телефону, на телефон установив что-то типа play.google.com/store/apps/details?id=project.blue… )?(заодно и законфигурируете как надо)

Воронов:

yо без кабеля, всё-таки, позачетней

У меня работает в таком виде -
cloud.mail.ru/public/GgaW/sdVo5Ek96
cloud.mail.ru/public/KLqR/Ch8Dtp1yx
cloud.mail.ru/public/BYyN/nfJbBDsR1

Gapey
Воронов:

Напряжение логики наземного модуля телеметрии тоже 3,3В или 5В?

на трансиверах уровни 3,3 вольта , и питание трансивера тоже 3,3 вольта ( стабилизатор стоит на плате а не на модуле трансивера )
подключит блютуз к компу можно через USB-UART который на наземном модуле припаяв RX/TX не к трансиверу а к плате где они были изначально припаяны (RX/TX при этом меняются местами)
кстати самая распространенная ошибка путают местами эти самые RX/TX , поскольку если где то написано RX то это может означать как то что это вход RX так и то что это нужно подключать к входу RX (то есть это выход TX) …

Воронов
Gapey:

стабилизатор стоит на плате

Плату я же отпаял, подключил напрямую к модулю ВТ.

Gapey

на плате наземного модуля тоже есть стабилизатор 3,3 вольта (на вашем фото 5-ногая деталька рядом с желтым танталовым конденсатором ) который и питает трансивер …
кстати вы отпаяли только 2 контакта RX/TX или сразу все 7 контактов ??? может кроме RX/TX еще и питание отпаялось …

Воронов

Так… Два дня уже бьюсь с модулем Bluetooth… Взял другой модуль для опытов, НС-06, на плате, вот такой.

Пробую добраться до настроек, подключил через Arduino. disk.yandex.ru/client/disk?display=normal&groupBy=…

Но и тут засада… На АТ-команды не реагирует…

Вот такой скетч пробую:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(0, 1); // RX, TX

void setup()
{
// Инициализируем последовательный интерфейс и ждем открытия порта:
Serial.begin(9600);
while (!Serial) {
; // ожидаем подключения к последовательному порту. Необходимо только для Leonardo
}

Serial.println(“Goodnight moon!”);

// устанавливаем скорость передачи данных для последовательного порта, созданного
// библиотекой SoftwareSerial
mySerial.begin(9600);
mySerial.println(“Hello, world?”);
}

void loop() // выполняется циклически
{
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}

Библиотека SoftwareSerial.h, вроде бы подключена.
Скорости разные пробовал, пины для подключения RX, TX тоже пробовал разные. Сигнал высокого уровня на KEY модуля ВТ подавал. Но монитор порта выдает только “Goodnight moon!” (см. скетч) и дальше тишина…

dvd-media

Когда настраивал себе “мост”, долго бился с блютус, но тогда у меня была телеметрия ещё на нс-12… Так вот один модуль оказался умершим (залил пластиком-71 и он помер). Позже, настроив через терминал (без ардуин и прочего), всё получилось и работало. Гемор (для меня) все эти модули и терминалы. Когда что-то не пашет - хрен найду причину…

gorbln
dvd-media:

залил пластиком-71 и он помер

Товарищи мои, занимающиеся профессионально электроникой, сильно меня отговаривали от использования пластика-71. Типа, проводит, а на СВЧ вообще беда. Как-то так.

dvd-media

Об этом я узнал уже позже, а до этого не мог понять, почему то регуль глючить начал (пока не просох похоже), и почему померали эти нс12…

Короче, если через терминал модуль блупупа не пашет - в мусорку его скорее всего нужно. Хотя предварительно конечно перепробовать все варианты АТ-команд, т.к. встречал разное описание.

macrokernel

Странно, покрываю Пластиком-71 и регуляторы, и беки, и радио, и полётники, и осд, и камеры - пока ничего не дохло.

Дохнет, если включить, пока лак не высох или вообще?

Gapey
Воронов:

и дальше тишина…

первое что проверяется это работоспособность самого UARTа … RX/TX на ардуине (те которые собралисЪ цеплять к модулю) замыкаем между собой и смотрим эхо , те все что посылается в терминале должно возвращаться …
если эхо есть то пробуеим работать с модулем …
из скеча убираем “Hello, world?” оно модулю сто лет не нужно … и подбираем скорость порта который mySerial пока на команду AT не получим ответ OK …
если не получается получить ответ то как вариант модуль настроен на использование бита четность , тогда нудно читать описание библиотеки SoftwareSerial как его настроить …

karabasus
Gapey:

первое что проверяется это работоспособность самого UARTа … RX/TX на ардуине (те которые собралисЪ цеплять к модулю) замыкаем между собой и смотрим эхо , те все что посылается в терминале должно возвращаться …

Да всё я ему говорил как проверить, опять одни и теже вопросы.

Воронов
karabasus:

Да всё я ему говорил как проверить, опять одни и теже вопросы.

Говорили, но не получается…

karabasus:

Блюпуп модуль то проверили через терминал (подключив через uart-usb к комьпютеру и законектив к телефону, на телефон установив что-то типа play.google.com/store/apps/d...etoothterminal )?(заодно и законфигурируете как надо)

Проблемы остались те же и вопросы не поменялись…

Gapey:

замыкаем между собой и смотрим эхо , те все что посылается в терминале должно возвращаться …

Оно и с подключенным Блютуз возвращается в окно терминала (монитора порта). Пишу, например, АТ, ввод. Возвращается АТ синим шрифтом.

karabasus:

Да всё я ему говорил

А потом, чего вы обижаетесь? Я этот модуль первый раз в руках держу, так же как и Arduino. Я пока и в терминах путаюсь. Что нашел в интернете по подключению, что вы подсказали, да ещё как я это всё понял, то попробовал.
Но, надо сказать, всё на пользу (для меня), но не в коня корм (для модуля БТ)…)))

Gapey
Воронов:

Оно и с подключенным Блютуз возвращается в окно терминала (монитора порта). Пишу, например, АТ, ввод. Возвращается АТ синим шрифтом.

тоесть сам модуль работает … а вот какая скорость на порте через блютуз подключение выяснить не получится …
а ардуина так-же работает ??? нужно добиться чтобы работала …
потом подбирать скорость порта на ардуине и пытаться добиться ответа от модуля …
да , при попытке работать с модулем через UART, блютуз соединение должно быть разорвано !!! иначе он не будет обрабатывать AT команды …

Воронов

Вот я и не понял, что работает, а что нет. И вот как раз по сообщениям из скетча (“Goodnight moon!” и “Hello, world?”), видимо, можно понять, что если у меня терминал выводит “Goodnight moon!”, значит порт между Ардуино и компьютером подключен. А вот “Hello, world?” не выводится на терминал, значит последовательный порт между Ардуино и Блютуз не заработал (правильно понимаю?). Ну и дальше, соответственно, цикл loop не выполняется и Блютуз-модуль на АТ-команды не отвечает…
Скорости порта пробовал менять (но, может быть, не все варианты пробовал). Попробую ещё раз пошагово, как вы расписали, начиная с Ардуино.

Gapey:

а ардуина так-же работает ??? нужно добиться чтобы работала …

Кстати, вопрос по этому поводу.
Как понять, работает она или нет? Скетч в неё заливается без ошибок, для меня это признак того, что Ардуино работает…
Эхо тоже есть, как я понимаю, тоже из Ардуино (если предыдущее предположение о тормозе на порте Ардуино-Блютуз верно).

Gapey

еще раз пошагово …
убираем из скеча “Hello, world?” оно только мешать будет …
компилируем заново и заливаем в ардуину …
блютуз модуль к ардуине не подключаем …
провода RX/TX от SOFT SERIAL на ардуине никуда не подключаем …
подключаем ардуину к компу и набираем АТ … смотрим … если ответ AT не появляется то все норм , если появляется то это эхо терминальной программы …
дальше замыкаем RX/TX от SOFT SERIAL на ардуине и опять даём AT … должно появиться эхо ( строка с AT) … если в терминальной программе уже было эхо то должно появиться двойное эхо , те 2 строчки с AT (возможно будут разным цветом ) … это и будет говорить о том что ардуина нормально работает …
только потом пробуем подключать блютуз модуль …

Gapey

сейчас глянул на ваш скетч …
у вас номера портов softserial совпадают с портами аппаратного UART … отсюда и эхо … так работать НЕБУДЕТ !!!
ща попробовал залить в ардуинку этот скеч …
чота какойто кривой этот софтсериал (или атмега китайксая)… ну нивкакую он нехочет принимать то что сам передает …
зато работает прием на софтсериал и передача принятого на аппаратный порт …
поправленный скетч (изменил порты и закоментировал все лишнее …

#include <SoftwareSerial.h>

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

void setup()
{
// Инициализируем последовательный интерфейс и ждем открытия порта:
Serial.begin(9600);
while (!Serial) {
; // ожидаем подключения к последовательному порту. Необходимо только для Leonardo
}

Serial.println(“Goodnight moon!”);

// устанавливаем скорость передачи данных для последовательного порта, созданного
// библиотекой SoftwareSerial
mySerial.begin(9600);
// mySerial.println(“Hello, world?”);
}

void loop() // выполняется циклически
{
if (mySerial.available())
Serial.write(mySerial.read());
// if (Serial.available())
// mySerial.write(Serial.read());
}

после компиляции в мониторе эха быть не должно …
в качестве выхода TX используем выход USB-UART чипа , на ардуине отмечен как RX … в качестве входа RX используем PD10 …
при замыкании этих RX и PD10 должно появляться эхо …

если эхо появляется то соединяем вывод RX ардуины (TX чипа USB-UART) с RX блютуз модуля а PD10 ардуины ( RX софтсериал) с TX блютуз модуля …

в мониторе должны быть включены NL + CR (это обязательно)
пробуем дат команду AT … должны получить ОК …

если ответа нет подбираем скорость , притом скорость менять нужно в 3х местах … в скече меняем скорость и аппаратного и программного портов а так же скорость порта в мониторе …

если у блютуза не включен паритет то должно все получиться …