Domanda:
Utilizzando un Arduino per leggere i dati dal dispositivo seriale, quindi inviare i dati tramite Bluetooth
sheepel
2010-12-29 13:51:06 UTC
view on stackexchange narkive permalink

Quindi, da un punto di vista generale di alto livello, ho bisogno di prendere i dati da un dispositivo seriale e quindi inviare questi dati tramite Bluetooth. Ho scelto un modem bluetooth. Capisco come collegarlo ad arduino. Tuttavia non so come agganciare un dispositivo seriale che parlerà con arduino.

Sembra che io stia cercando di fare troppe connessioni seriali di simultaneità.

Forse puoi modificare il tuo post di partenza e fornire maggiori informazioni sul tipo di dispositivo seriale di cui stai parlando? La comunicazione avviene tramite UART, SPI, I2C o altro? I nomi dei componenti o dei moduli sono utili.
@sheepel Dicci quali connessioni stai facendo tra Arduino e il modem BT. Quindi dicci quale dispositivo seriale stai cercando di collegare in aggiunta (rif. Scheda tecnica sarebbe buono).
Sei risposte:
tyblu
2010-12-29 16:06:42 UTC
view on stackexchange narkive permalink

Un protocollo seriale utilizza principalmente una configurazione master / slave con differenti schemi di indirizzamento:

  • SPI : Serial Peripheral Interface ; pin spesso etichettati come MOSI, MISO, SS o Select e SCLK o CLK .
  • I 2 C / TWI : Circuito inter-integrato / Interfaccia a due fili ; pin spesso etichettati SDA e SCL.
  • 1-Wire : in realtà richiede due o più cavi - - almeno alimentazione / dati e terra.
  • UNI / O : utilizzato con alcuni circuiti integrati EEPROM di Microchip; probabilmente dovrà scrivere la tua libreria.

  • U [S] ART : Universal [Synchronous /] Ricevitore / trasmettitore asincrono ; in genere non utilizza la configurazione master / slave, viene utilizzata solo per la comunicazione punto a punto.
  • USB : Universal Serial Bus ; utilizza uno schema host / dispositivo simile a master / slave. Pin spesso etichettati come V CC , DATA +, DATA-, e ground o GND.
  • PS / 2 : connettore Personal System / 2 , un vecchio PC IBM std. connettore; i pin sono spesso etichettati V CC , DATA, CLK, e ground o GND ; spesso reso intercambiabile con prese USB.

La libreria NewSoftSerial di Mikal Hart consente all'utente di implementare una routine software basata sugli interrupt (al contrario dell'hardware, come le periferiche UART) per le comunicazioni seriali. Usalo se necessario, ma tieni presente che il debug degli interrupt in conflitto è più impegnativo del debug delle routine di polling (che è apparentemente ciò che fanno le librerie predefinite).

finster
2010-12-29 22:55:55 UTC
view on stackexchange narkive permalink

Forse dai un'occhiata al software seriale: consente più connessioni seriali. Qualsiasi pin digitale su Arduino può essere utilizzato per la comunicazione seriale e i normali pin seriali possono continuare a essere utilizzati per il tuo modem Bluetooth.

Jim
2011-01-04 18:34:07 UTC
view on stackexchange narkive permalink

Sì, utilizzare il software seriale (come collegato anche sopra) è la tua risposta, è abbastanza robusto fintanto che non stai facendo molte altre cose pesanti su arduino allo stesso tempo e il baud rate è qualcosa di sensato. È una tua scelta se utilizzi l'UART hardware per il modem o il dispositivo e che colleghi alla porta seriale del software.

Suppongo che tu stia utilizzando UART per entrambi i dispositivi, ma in tal caso , sei consapevole che non hai bisogno di un arduino nel loop? basta collegare il dispositivo direttamente all'uart in / out del modem blutooth (assicurati che entrambi utilizzino tensioni TTL o altrimenti compatibili) e puoi raccogliere i dati dall'altra parte del collegamento bluetooth usando SPP (come faresti comunque io assumere)

Jim

jsolarski
2010-12-29 20:04:54 UTC
view on stackexchange narkive permalink

Da quello che ricordo, dovresti essere in grado di usare USART e SPI o USART e I2C su arduino allo stesso tempo. Se puoi fornirci maggiori dettagli sul Blue-tooth e sul dispositivo seriale, qualcuno dovrebbe essere in grado di darti una risposta definitiva.

Nick T
2011-01-04 22:25:22 UTC
view on stackexchange narkive permalink

Il metodo più rapido (sebbene limitato) sarebbe semplicemente collegare il dispositivo da cui si desidera leggere (supponendo che sia un flusso seriale asincrono) all'RX dell'AVR, quindi il pin TX dell'AVR al pin RX del modulo BT. Potresti quindi semplicemente leggere dall'UART, eseguire qualsiasi elaborazione desideri (o nessuna), quindi riscrivere all'UART.

La limitazione principale è che la velocità di trasmissione della radio BT e del tuo il dispositivo deve corrispondere. Tuttavia, è possibile regolare la velocità di trasmissione sulla maggior parte delle radio BT. Sei anche bloccato con le comunicazioni unidirezionali.

Se non stai effettuando alcuna elaborazione, puoi collegarle direttamente.

Igor Stoppa
2015-03-04 09:04:46 UTC
view on stackexchange narkive permalink

Un'opzione più semplice sarebbe quella di utilizzare un modulo Bluetooth con interfaccia seriale e collegarlo alla linea seriale che si desidera inoltrare, senza bisogno di aggiungere / programmare un Arduino.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 2.0 con cui è distribuito.
Loading...