Sommario:
- Passaggio 1: cosa ti servirà
- Passaggio 2: la soluzione
- Passaggio 3: dietro le quinte…
- Passaggio 4: ulteriori possibilità di lettura/miglioramento
Video: Recuperare il modulo Bluetooth HC-06 configurato in modo errato: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Per puro massimalismo, ho configurato il mio modulo Bluetooth (slave) HC-06 su una velocità di trasmissione di 1, 382, 400 baud con il comando AT+BAUDC. Da quando l'Arduino connesso ad esso non è stato in grado di utilizzare il modulo con la libreria SoftwareSerial. Ho provato a ripristinare la velocità di trasmissione con il seriale hardware di Arduino (pin 0 e 1) senza fortuna.
Ho anche provato a Google l'argomento senza trovare una soluzione accettabile. Forse usare la porta seriale integrata di un computer avrebbe potuto essere una soluzione (con lo spostamento del livello logico da 12V a 3V3), ma il mio computer non ha questa porta obsoleta, quindi ho dovuto trovare un'altra soluzione.
Passaggio 1: cosa ti servirà
- Scheda Arudino/Genuino con l'MCU Atmel ATMEGA328P-PU predefinito (@16MHz).
- Un modulo Bluetooth HC-06 in ascolto su 1, 382, 400 baud
- IDE arduino di base da
Passaggio 2: la soluzione
Si noti che questo Instructable e la soluzione sono realizzati per uno scenario da 1, 382, 400 baud (AT+BAUDC). La soluzione non funzionerà per nessun altro baud rate. Per gestire altri casi, fare riferimento ai passaggi a partire dal passaggio 3.
La soluzione è davvero semplice.
- Collega il pin VCC di HC-06 al pin 5V di Arduino.
- Collega il pin GND di HC-06 al pin GND di Arduino.
- Collega il pin RXD di HC-06 al pin 2 di Arduino.
- Lasciare scollegato il pin TXD dell'HC-06 (o collegarlo al pin 8).
- Carica lo schizzo hc06reset.ino.
- Il programma imposterà HC-06 in modalità 115, 200 baud (AT+BAUD8).
- Usa il tuo modulo HC-06 recuperato come prima.
Passaggio 3: dietro le quinte…
La libreria SoftwareSerial fornita con Arduino IDE è in grado di trasmettere al massimo 115, 200 bit/secondo, quindi non è abbastanza veloce per comunicare con la velocità di 1, 382, 400 baud desiderata. Dato che una scheda Arduino predefinita funziona a 16 MHz, il bitrate massimo teorico non compresso è di 16.000.000 bit/sec. Siamo a posto finora!
In base alla mia comprensione di SoftwareSerial.cpp, la comunicazione seial viene eseguita impostando un pin di uscita High (=1) o Low (=0) rispetto a un ritardo (che deriva dalla velocità di trasmissione) tra le modifiche.
- Il pin di uscita è alto per impostazione predefinita (significa nessun dato), quindi
- viene trasmesso un bit di Start (che abbassa il pin), quindi
- 8 bit di dati trasmessi da LSB a MSB, (+5V quando il bit 1 e 0 altrimenti) quindi
- viene trasmesso uno Stop bit (che porta il pin in alto)
In questo modo viene trasmesso 1 byte utilizzando 10 bit.
Il messaggio che dobbiamo inviare è AT+BAUD8 (senza \n, \r alla fine). Questo comando riporta l'HC-06 a 115, 200 baud rate che può essere gestito dalle normali librerie.
Per inviare bit con velocità 1, 382, 400 bit/sec, per ogni bit abbiamo un tempo di 1/1, 382, 400 secondi (che è circa 723,38 ns) per ogni bit. Arduino funziona su 16.000.000 Mhz, quindi ogni ciclo dura 1/16.000.000 secondi, ovvero 62,5 ns per ciclo.
Usando il codice assembly AVR possiamo usare il comando OUT per impostare il pin di uscita alto o basso e NOP per aspettare esattamente un ciclo della CPU. Entrambi i comandi consumano esattamente 1 ciclo di CPU. In questo modo il tempo di 723.38 ns bit può essere coperto da 11-12 istruzioni arduino per bit trasmesso. Una cosa da considerare: il comando OUT imposta un intero byte in una volta, quindi dobbiamo selezionare una PORTx dove questo non è un problema. L'utilizzo di ATMEGA328P-PU ad esempio PORTD (pin 0-7) di Arduino è perfetto per questa condizione. Dopo aver impostato il bit, deve trascorrere solo il tempo corretto che viene eseguito da 10 a 11 NOP e il gioco è fatto.
Puoi trovare i dettagli di calcolo nel file Excel sottostante. Questo file ha generato le istruzioni di montaggio richieste per il programma. Dopo aver incollato il codice generato, è stato necessario effettuare solo alcune sostituzioni.
Passaggio 4: ulteriori possibilità di lettura/miglioramento
- Forse è possibile creare una libreria SoftwareSerial più veloce utilizzando la tecnica descritta nel passaggio precedente.
- FedericoK2 ha realizzato un ottimo strumento che genera il codice di ripristino HC-06 per ogni possibile bitrate. Accedi al sito qui: https://tools.krum.com.ar/save_your_hc-06/ Grazie FedericoK2
Consigliato:
Come recuperare la tua musica dal tuo iPod GRATIS!: 7 passaggi
Come recuperare la tua musica dal tuo iPod.. GRATIS!: Fondamentalmente, gli iPod non ti consentono di importare la musica da esso, ti consentono solo di eliminarla. Ad esempio, se metti le tue canzoni preferite sul tuo Ipod, ma poi, cancellali accidentalmente tutti dal tuo computer. Quindi ti sei seduto lì con un brutto muggito
Saldatura di un battipenna per chitarra configurato SSS: 3 passaggi
Saldatura di un battipenna per chitarra configurato SSS: nell'istruzioni, esaminerò il processo di cablaggio del battipenna per chitarra SSS. Prima di tutto, se stai facendo questo progetto, dovresti cercare di avere una comprensione decente delle parti che entrano nel processo. Il formato SSS è fondamentalmente tre
Pike - Guida in modo più sicuro, guida in modo più intelligente, guida una picca!: 5 passaggi
Pike - Guida in modo più sicuro, guida in modo più intelligente, guida un luccio!: Benvenuto nel mio progetto chiamato Pike! Questo è un progetto che fa parte della mia formazione. Sono uno studente NMCT a Howest in Belgio. L'obiettivo era creare qualcosa di intelligente utilizzando un Raspberry Pi. Avevamo una completa libertà in cui volevamo rendere intelligenti. Per me è stato
HC - 06 (modulo slave) Modifica "NOME" senza utilizzare "Monitor Serial Arduino" che "funziona facilmente": modo impeccabile!: 3 passaggi
HC - 06 (Modulo Slave) Modifica di " NOME " senza utilizzare " Monitor Serial Arduino "… che " Funziona facilmente ": Modo impeccabile!: Dopo " Molto tempo " provando a cambiare nome su HC - 06 (modulo slave), utilizzando " monitor seriale di Arduino, senza " Successo ", ho trovato un altro modo semplice e lo sto condividendo ora! Buon divertimento amici
Il modo più semplice per modificare in modo soft una XBOX originale: 5 passaggi
Il modo più semplice per modificare in modo soft un XBOX originale: questo Instructable è preso da gh3tt0h4x0r su Youtube (compresi gli screencaps, dato che il mio Gamebridge era strano la notte in cui l'ho fatto). Il suo video in due parti mostra come è possibile eseguire una semplice installazione dell'XBMC (XBox Media Center) su una XBox senza la necessità