Технический форум по робототехнике.
Kitam1n » 06 апр 2013, 16:56
Всем привет!
Помогите разобраться что я делаю не так? Не получается добиться совместной работы HC-05 и Arduino Uno.
Получил Bluetooth HC-05 для Arduino :
http://www.ebay.com/itm/310540196588?ss ... 1497.l2649Залил в Arduino Uno простой скетч включающий и выключающий 13-й светодиод по командам "1" и "0". Проверил скетч через терминал обычным подключением по USB, все работает.
- Код: Выделить всё • Развернуть
enum { LED_PIN = 13 };
enum LedState { LED_ON, LED_OFF, LED_BLINK };
LedState led_state;
void setup()
{
led_state = LED_OFF;
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
Serial.println("Press 1 to LED ON or 0 to LED OFF...");
}
void loop()
{
if (Serial.available())
{
char command = Serial.read();
switch (command)
{
case '1': led_state = LED_ON; Serial.println("LED_ON"); break;
case '0': led_state = LED_OFF; Serial.println("LED_OFF"); break;
case '*': led_state = LED_BLINK; Serial.println("BLINK"); break;
default:
{
for (int i = 0; i < 5; ++i)
{
digitalWrite(LED_PIN, HIGH);
delay(50);
digitalWrite(LED_PIN, LOW);
delay(50);
}
}
}
}
switch (led_state)
{
case LED_ON: digitalWrite(LED_PIN, HIGH); break;
case LED_OFF: digitalWrite(LED_PIN, LOW); break;
case LED_BLINK:
{
static unsigned long start_millis = 0;
if (millis() - start_millis >= 300)
{
start_millis = millis();
digitalWrite(LED_PIN, !digitalRead(LED_PIN));
}
}
}
}
Отключил USB и подключил Bluetooth, в ПК появился COM, подключаюсь к нему терминалом, в терминал приходит "Press 1 to LED ON or 0 to LED OFF..." как и положено при старте.
Но шлю команды туда - ноль реакции.
Т.е. в целом свисток работает, комп его находит, подключается, Терминал видит что шлет Arduino, но туда ни чего не доходит, или доходит но он это не выводит.
Что я делаю не так? Или свисток паленый, может недопай, как разобраться?
Пробовал подключать свисток к USB-TTL переходнику, та же картина, свисток шлет нормально, принимать не принимает.
Добавлено спустя 2 минуты 30 секунд:И еще, зачем нужен пин "KEY"?
- Вложения
-
- $T2eC16R,!ykE9s7t)btTBQz-uQm4ow~~60_35.JPG (36.39 КиБ) Просмотров: 11688
elmot » 06 апр 2013, 17:15
key нужен все сбрасывать. соврал. У 05 - это переход в командный режим.
позвони тестером RX. тут у кого-то уже встречался непропай на таком модуле.
Kitam1n » 06 апр 2013, 20:11
Удалось наладить с переходником USB-UART. Шлет туда и обратно. Т.е. в целом он работает.
Подключаю к Arduino UNO, от Arduino принимает, а отправлять в нее не хочет. Ну че за фигня??
Ладно, залил в Arduino скетч добавляющий дополнительно 2 UART (получился типа хаб).
- Код: Выделить всё • Развернуть
#include <SoftwareSerial.h>
SoftwareSerial myserial(10, 11);
SoftwareSerial myserial_2(5, 6);
void setup()
{
Serial.begin(9600);
myserial.begin(9600);
myserial_2.begin(9600);
Serial.println("Arduino");
myserial.println("Bluetooth");
myserial_2.println("USB-UART");
}
void loop()
{
if(myserial.available() > 0) {
byte b = myserial.read();
Serial.write(b);
myserial_2.write(b);
}
if(myserial_2.available() > 0) {
byte c = myserial_2.read();
Serial.write(c);
myserial.write(c);
}
if(Serial.available() > 0) {
byte c = Serial.read();
myserial.write(c);
myserial_2.write(c);
}
}
Подключил к Arduino этот Bluetooth и переходник USB-UART.
Итого в компе получилось 3 COM порта:
1) родной USB от Arduino
2) дополнительный переходник USB-UART
3) Bluetooth HC-05
Открыл терминалы для каждого порта,
- шлю через родной порт Arduino - дублирует в 2 других порта
- шлю через переходник USB-UART - тоже дублирует
- шлю через Bluetooth - везде молчит.
Че за хрень? Как еще можно проверить? Пробовал менять девайсы местами, безрезультатно.
Madf » 07 апр 2013, 11:50
закарачиваем TX и RX на БТ и подаем питание на него
далее конектимся к нему и через терминал кидаем любые данные, они должны сразу дублироваться в том же терминале (как эхо)
если не работает, есть две причины: 1 - фиговый и не рабочий драйвер БТ на управлении (кстати такое часто бывает (ведь уарт и БТ - разные вещи)), 2 - не работает сам БТ модуль (но в этом я сильно сомневаюсь).
на счет КЕЯ, лучше использовать РЕСЕТ, т.к. всё равно выхода из режима команд происходит по сбросу (да и совместимость сомнительная с другими модулями, китайцы же кривые, могут, что угодно напутать (зашить другую прошивку или попутать руками)), а зачем лишние провода, когда проще сбросить модуль, а потом его быстро конфигурировать до конекта к устройству + режим спячки будет (для экономии, если надо)
Kitam1n » 07 апр 2013, 20:39
Удалось настроить, но глюк плавающий вылазит, иногда перестает принимать, отправляет стабильно. Разбираюсь...
Спасибо за помощь, наверно мне просто попалась не удачная плата...
Madf » 08 апр 2013, 11:00
если не кратные кварцы МК к скорости порта и данных большой объём, то скорее всего это не глюк, а возможно накапливается ошибка
AndreW82 » 08 апр 2013, 20:06
мой тоже глючил, пока я его не сбросил до заводских настроек, а потом настроил как надо...
в командном режиме введи AT+ORGL
Kitam1n » 09 апр 2013, 13:36
1) Я его не сброшу так что потом мозгов не хватит его настроить как положено?
2) Как добиться принятия AT-команд? подать еденицу на KEY?
3) Как мне понять хватит ли скорости? У меня сейчас 8-ми разрядный джойстик управляющий танковой тележкой посредством передачи 5-ти управляющих байтов. Джойстиком могу управлять как захочу, могу плавно трогаться, менять направление и т.д... Wi-Fi справляется с лихвой.
Не загнется ли от такой наглости BT?
elmot » 09 апр 2013, 15:18
1) Сие врядли
2) Что-то в этом роде. RTFM
3)не загнется. На скорости 11500 оно передает килобайт в сек(примерно). 200 пакетов по 5 байт в секунду. Это гораздо больше, чем механика сможет отработать.
AndreW82 » 09 апр 2013, 16:08
Kitam1n писал(а):1) Я его не сброшу так что потом мозгов не хватит его настроить как положено?
2) Как добиться принятия AT-команд? подать еденицу на KEY?
3) Как мне понять хватит ли скорости? У меня сейчас 8-ми разрядный джойстик управляющий танковой тележкой посредством передачи 5-ти управляющих байтов. Джойстиком могу управлять как захочу, могу плавно трогаться, менять направление и т.д... Wi-Fi справляется с лихвой.
Не загнется ли от такой наглости BT?
1) там всё просто настраивается, я после сброса ввёл всего несколько команд: задал новое имя модулю, сменил пин-код для паринга, и выставил нужную скорость UART.
вот здесь самые основные команды:
http://we.easyelectronics.ru/part/rabot ... -hc05.html2) если этот пин подключен к PIO11 модуля, да - нужна лог."1" . (прозвони этот пин до PIO11, вот распиновка модуля
http://robocraft.ru/blog/electronics/587.html)
3) хватит за глаза.
Madf » 09 апр 2013, 16:26
Сколько покупал у китацев этот модуль, никогда таких команд не было. Это описание какого-то правильного (лицензионного), обычно китаёсы шьют облегченную прошивку с обкоцанными командами где нет "+" и даже переноса строки (0D,0A), а вместо них выдерживаешь паузу в секунду.
AndreW82 » 09 апр 2013, 16:48
Madf писал(а):Сколько покупал у китацев этот модуль, никогда таких команд не было. Это описание какого-то правильного (лицензионного), обычно китаёсы шьют облегченную прошивку с обкоцанными командами где нет "+" и даже переноса строки (0D,0A), а вместо них выдерживаешь паузу в секунду.
Хммм... у меня с прошивкой всё в порядке, т.е. команды именно такие, как в статье (AT+"КОМАНДА" + CRLF), брал модуль здесь
http://www.ebay.com/itm/1pcs-Wireless-B ... 3a74b3519bKitam1n писал(а):Всем привет!
Помогите разобраться что я делаю не так? Не получается добиться совместной работы HC-05 и Arduino Uno...
- Код: Выделить всё • Развернуть
Serial.begin(9600);
...
Похоже у тебя проблема из-за неправильной скорости порта - UART модуля, по-умолчанию, открыт на 38400.
elmot » 09 апр 2013, 17:06
Madf писал(а):Сколько покупал у китацев этот модуль, никогда таких команд не было. Это описание какого-то правильного (лицензионного), обычно китаёсы шьют облегченную прошивку с обкоцанными командами где нет "+" и даже переноса строки (0D,0A), а вместо них выдерживаешь паузу в секунду.
Значит ты покупал HC-06. Он такой и есть. HC-05 - это та железка, но с другой(более умственной) прошивкой. У меня есть типо оба.
Madf » 09 апр 2013, 17:23
elmot писал(а):Значит ты покупал HC-06. Он такой и есть. HC-05 - это та железка, но с другой(более умственной) прошивкой. У меня есть типо оба.
А я думал, что возможно это HC-04...я брал правда на Диле. Там разница была только в возможности режима Мастер (не только слэйв).
elmot » 09 апр 2013, 17:32
HC-04 и HC-06 - одно и то же. Один типа industrial, второй - customer(ЕМНИП). Режим только slave
Вот 03(?)/05 - они с мастером и команд куды как поболе.
Кстати, распиновка key и светодиодов у 06 и 05 разная!