Shield N97DG + Mac OS X Yosemite + Iphone 6 Plus sono compatibili?

Ciao a tutti,

ho acquistato una shield BT per Arduino, il modello e' N97DG

Qui il sito:
http://www.maplin.co.uk/p/bluetooth-shield-for-arduino-n97dg

PREMESSA: ho trovato molto poco, L'unica guida che e' linkata tra le reviews di quel prodotto e' questa, che pero' non fa al caso mio, poiche' io uso un MAC.

1)Bluetooth Shield for Arduino - LinkSprite Playgound

Ho poi cercato di mettere insieme piu' pezzi, leggendo altri tutorial e guardando video:

  1. http://www.robotshop.com/media/files/pdf/bluetooth-shield-sld63030p.pdf
  2. http://arduinobasics.blogspot.ie/2013/01/arduino-basics-bluetooth-tutorial.html

Sono riuscita a far girare un programma di test, facilmente reperibile online:

#include <SoftwareSerial.h>  
#define RxD 7
#define TxD 6
SoftwareSerial BlueToothSerial(RxD,TxD);

void Test_BlueTooth()
{
  unsigned char t=0;
  String RXD = "";
  Serial.println("Test BlueTooth ...");
  BlueToothSerial.print("AT\r\n");  
  delay(100);
  while(BlueToothSerial.available()>0)
  {    
     RXD +=  char( BlueToothSerial.read() );
     delay(1);
  } 
  do{
    t++;
    delay(400);
    Serial.println("Test Failed ! Retrying ...");
  }while( ((RXD[0]!='O')&&(RXD[1]!='K'))&&(t<5));  
  if(t<5) Serial.println("Test Successful !\r\n");
  else { Serial.println("Retry Failed !"); while(1); }
}

void sendBlueToothCommand(char *Command)
{
 BlueToothSerial.print(Command);
 Serial.print(Command); 
 delay(100);
 while(BlueToothSerial.available())
 {    
    Serial.print(char(BlueToothSerial.read())); 
 }
}

void setupBlueTooth()
{
 Serial.println("Bluetooth Initialization ...");      
 sendBlueToothCommand("AT+NAME=Master\r\n");
 sendBlueToothCommand("AT+ROLE=1\r\n");// 1:Master   0:Slave
 sendBlueToothCommand("AT+PSWD=1234\r\n");
 sendBlueToothCommand("AT+UART=38400,0,0\r\n");
 sendBlueToothCommand("AT+CMODE=1\r\n");
 sendBlueToothCommand("AT+INIT\r\n");
 sendBlueToothCommand("AT+PAIR=12,11,230317,10\r\n");//slave address 
 for(int i=0;i<5;i++) delay(1000);

 BlueToothSerial.flush();

 Serial.println("Bluetooth Initialized Successfully !\r\n");

}

void setup()
{
  Serial.begin(38400);     
  BlueToothSerial.begin(38400); 
  delay(500);
  Test_BlueTooth();  
  setupBlueTooth();
}

void loop()
{
 if(BlueToothSerial.available())
 {
    Serial.print(char(BlueToothSerial.read()));
 }
 if(Serial.available())
 {
    BlueToothSerial.print(char(Serial.read()));
 }      
}

Facendo girare questo programma, aprendo la finestra per leggere sul Serial, ho letto queste stringhe:

===============================

Test BlueTooth ...
Test Failed ! Retrying ...
Test Successful !

Bluetooth Initialization ...
AT+NAME=Master
OK
AT+ROLE=1
OK
AT+PSWD=1234
OK
AT+UART=38400,0,0
OK
AT+CMODE=1
OK
AT+INIT
ERROR:(17)
AT+PAIR=12,11,230317,10
Bluetooth Initialized Successfully !

FAIL

===============================
Ho poi fatto riferimento a questo tutorial: Arduino Bluetooth Serial Control Tutorial - YouTube

Ma il risultato e' che il mio Mac non rileva nessun Bluetooth chiamato "Master"! Anche usando questo software non vedo la porta con Master nella finestra delle porte Seriali...

Non so cos'altro potrei provare!

Qualche esperto che mi da' una mano?

Manu

Ciao,
intanto ti consiglio di dare una letta al REGOLAMENTO, e, in conformità al punto 7, di editare il tuo post, racchiudendo il codice negli appositi tag CODE (bottone </> tutto a sinistra, quando sei in edit).

Poi, relativamente a :

lela2416:
Accidenti, sembra che l'ultimo post di presentazioni risalga al 2012!

... se guardi bene il post prima del tuo era del 01.12.2015 ... quindi piuttosto recente. :slight_smile:

Infine, tu esattamente cosa vorresti fare ? Collegare Arduino via Bluetooth al tuo Mac ?

Guglielmo

OPS, ieri dovevo essere parecchio fusa, me ne sono accorta stamane che avessi fatto una gaffe!
( forse passare 8 ore consecutive a guardare codice senza pause ha avuto il suo contributo! )...

cmq ho corretto il mio post usando l'apposito bottone per l'embed del codice, come suggerito.

Quello che vorrei fare e' semplicemente usare questa shield BT in modo da poter comandare l'arduino ( e quello che ci collego ) da remoto, quindi prima configurare tutto con pc ( mac os X Yosemite ) poi pilotarlo da iphone ( 6 plus ).

Innanzitutto credo che la shield sia funzionante, poiche' il led D1 lampeggia, come anche indicato nel primo documento.

Non sono un esperta di elettronica, pero' dopo aver visto i vari tutorial, ho la sensazione che ci sia un problema con le porte seriali.

nel video: Arduino Bluetooth Serial Control Tutorial - YouTube

SI vede chiaramente che dovo aver caricato il codice sull'arduino, aprendo la shell seriale, puo' dare comandi alla shield, attraverso il collegamento con l'arduino.

Come spiegato in quest'altro documento in modo piu' accurato:

la comunicazione shield/arduino avviene via seriale:
RX della shield riceve dal TX dell'arudino
TX della shield trasmette al RX dell'arduino

Settando il "baud rate" ovvero la frequenza ( in bps ) a 9600 ( che e' di solito il default ), si dovrebbe riuscire a far rilevare il BT dal pc, cosa che NON AVVIENE nel mio caso, come invece avviene per il ragazzo nel video youtube...

sto cercando di capire perche'! forse ho un conflitto tra porte seriali?

ora cerco di seguire passo passo quest'ultilma guida e vediamo se ne vengo a capo, postero' aggiornamenti...
Manu

PS ( io sto usando la version 1.6.6 di Arduino)

Mmm ... il tuo modulo è un Bluetooth 2.0 ... iOS richiede BLE (Bluetooth Low Energy 4.x) e NON c'è verso di farlo collegare ad un normale Bluetooth ... hai sbagliato modulo.

Per inciso, lavorare con il BLE richiede una buona conoscenza di XCode, i framework di iOS (e, in ambiente desktop, di OS X) e programmare usando le chiamate di "Core Bluetooth".

Prova a dare un'occhiata a QUESTO vecchio thread.

Guglielmo

Grazie per l'aiuto Guglielmo...

m'era vanuto il dubbio oggi che il problema fosse che il mio "shield" e' un BT 2.0 e non un BLE!

Ma...siamo sicuri che magari con uno di questi adattatori, non riesco a bypassare questo ostacolo?

diciamo che ho diversi mouse BT che funzionano con questo plug sul mio Mac, cosi mi chiedevo ...chissa' se si trova un modo per configurarne uno con il mio modulo arduino...

o forse...e' piu' semplice andarlo a cambiare da Maplin! ::slight_smile:

Manu

Non capisco cosa c'entri quell'adattatore ...
... quello serve a connettere a macchine NON dotate di BLE dei devices BLE.

Se tu vuoi usare iOS NON hai alternative, è una scelta aziendale di Apple (... con la scusa della "sicurezza") e, l'unico modo consentito, è il BLE.

Da OS X invece non dovresti aver problema a vedere il modulo Bluetooth 2.0 e a fare il "pairing" ...
... hai già provato almeno questa fase ? Riesci ad accoppiare il tuo Mac con il modulo Bluetooth ? Che Mac stai usando ? Che versione di OS X ?

Guglielmo

Quello che avevo in testa era molto contorto ( me ne rendo conto ) e un indiano ha provato a fare qlcs di simile qui Usb to Bluetooth Bridge for IPad and IPhone. - YouTube.

Cmq, focalizzandoci sul mio problema:

  1. Mac iOS Yosemite 10.10.5
  2. per il pairing, non ci sono riuscita ( o almeno non credo)

quello che sono riuscita a fare e' stato vedere il led D1 lampeggiare, eseguire il programma e mandare comandi seriali sul BT seguendo questa guida:
http://linksprite.com/wiki/index.php5?title=Bluetooth_Shield_for_Arduino

Cmq io direi che anziche' stare a impazzire, glielo riporto e lo cambio perche' io in effetti non sapevo che esistesse BLE 4.0 e ho solo iOS e iphone! Ho abolito Windows anni e anni fa ( forse 18 anni fa? ) :smiley: praticamente appena iniziato a conoscere il mondo dell'informatica!

Manu

Tranquilla Manu ... sfondi una porta aperta ... sono circondato da macchine OS X e iOS :smiley: :smiley: :smiley:

Però ti ripeto, fai attenzione, BLE è, diciamo ... una brutta bestiola e bisogna avere una certa dimestichezza nella programmazione Xcode, iOS, Core Bluetooth, ecc.

Dalla tua presentazione vedo che conosci Java, ma ... su iOS non credo ti aiuti ... Objective-C o Swift sono tutt'altra cosa ... ::slight_smile:

Guglielmo

:slight_smile:

Dunque, premessa:

conosco bene Java
conosco in modo sufficiente C, C++, Assembly, SQL, PLSQL, XML + diversi framework...
conosco Cobol, Python, e bash script language + altri linguaggi vari...
( + 1 laurea in ingegneria informatica )

Cmq...non volevo, nella presentazione, dire tutte queste cose, perche' sembra che poi...uno voglia fare il saputello! So benissimo che nell'elettronica cmq c'e' bisogno di un set completamente diverso di conoscenze, soprattutto perche' un infarinatura ce l'hanno data!

Xcode l'ho gia' visto tempo fa quando volevo ricavare tempo per sviluppare su iOS, diciamo che poi pero' mi lasciavo distrarre da molte altre cose e non ho piu' approfondito, conosco molto bene Eclipse e modalita' di debug avanzato ( conditional breakpoint etc ).

Objective-C dovrebbe essere simile a C, giusto?
ma cmq io imparo in fretta! Non mi spaventano le cose nuove, anzi le trovo stimolanti!
E poi quando uno proprio si blocca...ci sono i forum no? :smiley:

Grazie ancora: sono molto felice perche' ho appena trovato lo scontrino di questa shield che ho preso senza accertarmi sulle compatibilita'...cmq nel negozio in Jervis Street a Dublino, ci fosse stato un commesso che ci capisse un H di arduino...li vendono, quello si! ma se gli fai una domanda, ti guardano come se gli avessi parlato in arabo!

Manu

... ottimo, buono studio allora ! Al link della discussione che ti ho postato prima, c'è anche un esempio di un programma in Objective-C che si collega con il BLE in emulazione di terminale ... :wink:

Guglielmo