roboforum.ru

Технический форум по робототехнике.

arduino и блютуз подружить с планшетом

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

arduino и блютуз подружить с планшетом

Сообщение gooodwin » 01 июл 2013, 18:33

Здравствуйте)) Есть меня ардуино( точнее iteaduino полностью совместимый клон ). Есть блютуз модуль вот такой
Изображение

Хочу подружить с своим планшетником( nexus 7). Скачал на планшет прогу блютуз терминал. Ардуину прошиваю следующим кодом
как ведомый( типо планшетник ведущий а ардуино ведомая)
Код: Выделить всёРазвернуть
#include <SoftwareSerial.h>   //Software Serial Port
#define RxD 6
#define TxD 7

SoftwareSerial blueToothSerial(RxD,TxD);

void setup()
{
  Serial.begin(9600);
  pinMode(RxD, INPUT);
  pinMode(TxD, OUTPUT);
  setupBlueToothConnection();
}

void loop()
{
  char recvChar;
  while(1){
    if(blueToothSerial.available()){//check if there's any data sent from the remote bluetooth shield
      recvChar = blueToothSerial.read();
      Serial.print(recvChar);
    }
    if(Serial.available()){//check if there's any data sent from the local serial terminal, you can add the other applications here
      recvChar  = Serial.read();
      blueToothSerial.print(recvChar);
    }
  }
}

void setupBlueToothConnection()
{
  blueToothSerial.begin(38400); //Set BluetoothBee BaudRate to default baud rate 38400
  blueToothSerial.print("\r\n+STWMOD=0\r\n"); //set the bluetooth work in slave mode
  blueToothSerial.print("\r\n+STNA=SeeedBTSlave\r\n"); //set the bluetooth name as "SeeedBTSlave"
  blueToothSerial.print("\r\n+STPIN=0000\r\n");//Set SLAVE pincode"0000"
  blueToothSerial.print("\r\n+STOAUT=1\r\n"); // Permit Paired device to connect me
  blueToothSerial.print("\r\n+STAUTO=0\r\n"); // Auto-connection should be forbidden here
  delay(2000); // This delay is required.
  blueToothSerial.print("\r\n+INQ=1\r\n"); //make the slave bluetooth inquirable
  Serial.println("The slave bluetooth is inquirable!");
  delay(2000); // This delay is required.
  blueToothSerial.flush();
}

Все прошивается отлично ошибок нет но в поиске новых устройств нет моей ардуины. почему???? после пробовал прошить как ведущий(master) следующим кодом
Код: Выделить всёРазвернуть
#include <SoftwareSerial.h>   //Software Serial Port

#define RxD 6
#define TxD 7

String retSymb = "+RTINQ=";//start symble when there's any return
String slaveName = ";SeeedBTSlave";//Set the Slave name ,caution that ';'must be included
int nameIndex = 0;
int addrIndex = 0;

String recvBuf;
String slaveAddr;

String connectCmd = "\r\n+CONN=";

SoftwareSerial blueToothSerial(RxD,TxD);

void setup()
{
  Serial.begin(9600);
  pinMode(RxD, INPUT);
  pinMode(TxD, OUTPUT);
  setupBlueToothConnection();
  //wait 1s and flush the serial buffer
  delay(1000);
  Serial.flush();
  blueToothSerial.flush();
}

void loop()
{
  char recvChar;
  while(1){
    if(blueToothSerial.available()){//check if there's any data sent from the remote bluetooth shield
      recvChar = blueToothSerial.read();
      Serial.print(recvChar);
    }
    if(Serial.available()){//check if there's any data sent from the local serial terminal, you can add the other applications here
      recvChar  = Serial.read();
      blueToothSerial.print(recvChar);
    }   
}
}

void setupBlueToothConnection()
{
  blueToothSerial.begin(38400); //Set BluetoothBee BaudRate to default baud rate 38400
  blueToothSerial.print("\r\n+STWMOD=1\r\n");//set the bluetooth work in master mode
  blueToothSerial.print("\r\n+STNA=SeeedBTMaster\r\n");//set the bluetooth name as "SeeedBTMaster"
  blueToothSerial.print("\r\n+STPIN=0000\r\n");//Set Master pincode"0000",it must be same as Slave pincode
  blueToothSerial.print("\r\n+STAUTO=0\r\n");// Auto-connection is forbidden here
  delay(2000); // This delay is required.
  blueToothSerial.flush();
  blueToothSerial.print("\r\n+INQ=1\r\n");//make the master inquire
  Serial.println("Master is inquiring!");
  delay(2000); // This delay is required.
   
  //find the target slave
  char recvChar;
  while(1){
    if(blueToothSerial.available()){
      recvChar = blueToothSerial.read();
      recvBuf += recvChar;
      nameIndex = recvBuf.indexOf(slaveName);//get the position of slave name
      //nameIndex -= 1;//decrease the ';' in front of the slave name, to get the position of the end of the slave address
      if ( nameIndex != -1 ){
        //Serial.print(recvBuf);
   addrIndex = (recvBuf.indexOf(retSymb,(nameIndex - retSymb.length()- 18) ) + retSymb.length());//get the start position of slave address          
   slaveAddr = recvBuf.substring(addrIndex, nameIndex);//get the string of slave address          
   break;
      }
    }
  }
  //form the full connection command
  connectCmd += slaveAddr;
  connectCmd += "\r\n";
  int connectOK = 0;
  Serial.print("Connecting to slave:");
  Serial.print(slaveAddr);
  Serial.println(slaveName);
  //connecting the slave till they are connected
  do{
    blueToothSerial.print(connectCmd);//send connection command
    recvBuf = "";
    while(1){
      if(blueToothSerial.available()){
        recvChar = blueToothSerial.read();
   recvBuf += recvChar;
   if(recvBuf.indexOf("CONNECT:OK") != -1){
          connectOK = 1;
     Serial.println("Connected!");
     blueToothSerial.print("Connected!");
     break;
   }else if(recvBuf.indexOf("CONNECT:FAIL") != -1){
     Serial.println("Connect again!");
     break;
   }
      }
    }
  }while(0 == connectOK);
}

Планшетник видит мою ардуину но подкл не может пишет сбой. Опять же почему так происходит????

ЗАРАНЕЕ ВСЕМ СПАСИБО

P.S. Я новиче в етом и если можете помочь то пожалуйта по подробней объясните)))
gooodwin
 
Сообщения: 8
Зарегистрирован: 29 июн 2013, 21:14

Re: arduino и блютуз подружить с планшетом

Сообщение gooodwin » 04 июл 2013, 05:17

Наконецто ноутбук подключается все драва встают на место. Но немогу со своим модулем пообщатся через АТ команды??? на всех скоростях пробовал безрезультатно??? может знает что с ним не так??
gooodwin
 
Сообщения: 8
Зарегистрирован: 29 июн 2013, 21:14

Re: arduino и блютуз подружить с планшетом

Сообщение elmot » 04 июл 2013, 05:44

с планша и не получится. Модуль толи hc-05, толи 06 ими командовать можно только с уарт.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: arduino и блютуз подружить с планшетом

Сообщение gooodwin » 04 июл 2013, 06:29

Да про плоншет я уже забыл хотябы через комп??? но нет же нехочет. В туторе написано что номинально скорость стоит 38400 бад.( и к стати только при етой скорости он начинает мигать то красным то синим, на всех остальных только синим). Я так и делаю и код юзаю с тутора все вроде ок, но на каждую команду ERROR. и Модернезировал код типо на любые принятые данные пиши ПРЕВЕД МЕДВЕД. ПОдкл через терминал ком портов(termite если слышали о таком) Настраиваю компорт как надо( таже скорость без бита четности и др). ПОсле всего етого жму connecting и все в ответ бесконечное ожидание порта пока прога не повиснет. ПОчему кто знает????

Добавлено спустя 25 минут 46 секунд:
Почитав файл http://www.seeedstudio.com/wiki/images/ ... uction.pdf пришел к выводу что командами АТ он управлятся не может или такого не бывает??? Тогда что ето за команды???\
gooodwin
 
Сообщения: 8
Зарегистрирован: 29 июн 2013, 21:14

Re: arduino и блютуз подружить с планшетом

Сообщение elmot » 04 июл 2013, 11:56

не похоже на описание от этого модуля.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: arduino и блютуз подружить с планшетом

Сообщение gooodwin » 04 июл 2013, 12:34

Это точно его описание если производители не врут. Взято с вики странички по описанию данного модуля
gooodwin
 
Сообщения: 8
Зарегистрирован: 29 июн 2013, 21:14

Re: arduino и блютуз подружить с планшетом

Сообщение victoruni » 06 июл 2013, 22:36

Скорее всего он программируется с помощью AT-команд (как все HC03-07)

ОДИН ОЧЕНЬ ВАЖНЫЙ МОМЕНТ!!! - без этого ничего не шло
Чтобы модуль был виден устройствам Android необходимо установить параметр CLASS равным 7936.
AT CLASS:7936
смотрите здесь http://robocraft.ru/blog/1039.html
victoruni
 
Сообщения: 23
Зарегистрирован: 17 апр 2012, 10:39
Откуда: Лермонтов
Skype: victor_petin
ФИО: Петин Виктор

Re: arduino и блютуз подружить с планшетом

Сообщение gooodwin » 11 июл 2013, 13:55

спасибо большое!!! Хочу пообщаться АТ командами. Подключаю модуль к USB-UART мосту, после чего подвожу PIO11 к питанию(3,3В). ТАк написанно в инструкции по модулю( и в инете нашел тотже алгоритм). После чего в терминалке пишу АТ а в ответ ERROR без номера ошибки. в чем может быть проблема???? Может я неправильно( синтаксис) команды задаю, там ведь надо в конце команды ставить \r\n а я точно не знаю как поставить \r\n. Может кто подскажет на конкретной терминалке как ето сделать???????


ЗАРАНЕЕ ВСЕМ СПАСИБО
gooodwin
 
Сообщения: 8
Зарегистрирован: 29 июн 2013, 21:14

Re: arduino и блютуз подружить с планшетом

Сообщение victoruni » 16 июл 2013, 18:54

Вот здесь хорошо расписано http://robocraft.ru/blog/electronics/587.html - я запускал по этой статье - с первого и второго и .... шага не получалось, приходилось подбирать скорость обмена, постоянно перегружаться и т.д., но потом заработало
victoruni
 
Сообщения: 23
Зарегистрирован: 17 апр 2012, 10:39
Откуда: Лермонтов
Skype: victor_petin
ФИО: Петин Виктор


Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8