Sommario:
- Passaggio 1: collegamento di TFmini a Teensy 3.5 (simile ad Arduino Mega)
- Passaggio 2: codice per eseguirlo
- Passaggio 3: utilizzo dell'IDE Arduino Visualizza i risultati nel plotter seriale
Video: Benewake TFmini - LiDAR economico con Teensy 3.5: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
L'unità Benewake TFmini LiDAR è un sensore LiDAR piccolo e molto leggero per circa $ 50 canadesi. La documentazione era buona, ma incompleta. Ha fornito dettagli sulla ricezione dei dati dal sensore, ma ha dimenticato di menzionare il segnale necessario per mettere il sensore nella modalità predefinita in modo che invii effettivamente i dati. Fortunatamente era nel documento di debug.
Quindi questo è ciò che ha funzionato per me, ed è davvero un dispositivo facile con cui lavorare.
Ho scelto di utilizzare un Teensy 3.5 in quanto ha più porte seriali HW, è più che abbastanza veloce da ricevere dati ed elaborarli senza lasciare che i dati si accumulino. Solo per divertimento ho usato la libreria Teensy Threading per separare l'acquisizione dei dati dal resto del codice.
Passaggio 1: collegamento di TFmini a Teensy 3.5 (simile ad Arduino Mega)
Questo esempio richiede due connessioni seriali: una al TFmini e una per visualizzare i risultati sul tuo computer. Per questo motivo, e per quanto posso dire, solo per questo motivo, questo particolare esempio non funzionerà su nulla al di sotto di Arduino Mega o Teensy 3.x.
Detto questo, per le applicazioni che non richiedono l'output seriale per la stampa sullo schermo del computer, lo stesso progetto dovrebbe essere adattabile.
Utilizzando il cablaggio in dotazione:
1) collegare il filo nero a Teensy GND (se si utilizza una sorgente VDC diversa, assicurarsi che la massa vada anche a GND su Teensy)
2) collegare il filo rosso a Teensy Vin (o sorgente 5VDC)
3) collegare il filo bianco (TFmini RX) al pin 1 di Teensy (Serial1 TX)
4) collegare il filo verde (TFmini TX) al pin 0 di Teensy (Serial RX)
Il cablaggio incluso era troppo piccolo per consentirmi di lavorare su una breadboard, quindi ho tagliato l'estremità opposta al TFmini e ho saldato i fili a una breadboard, ho aggiunto un connettore JST al breakboard e ho creato un ponticello da JST a maschio cablaggio.
Passaggio 2: codice per eseguirlo
Utilizza il seguente codice (per Teensy 3.5) o scarica il file allegato:
Per Arduino Mega, il threading probabilmente non funzionerà. Sposta il codice dalla funzione readLiDAR al ciclo principale e rimuovi tutto ciò che riguarda il threading.
#include #include "TeensyThreads.h"
// Usando il cavo in dotazione:
// - Nero = GND (connesso a GND) // - Rosso = 5V (4.5 - 6.0V) (connesso a Vin su Teensy 3.5, o 5V su Arduino) // - Bianco = TFmini RX (ovvero connettersi al microcontrollore TX, pin1 su Teensy 3.5) // - Verde = TFmini TX (ovvero collegare al microcontrollore RX, pin0 su Teensy 3.5) // NOTA: per questo sketch è necessario un microcontrollore con porte seriali aggiuntive oltre a quella collegata al cavo USB / / Questo include Arduino MEGA (usa Serial1), Teensy (3.x) (usa una delle connessioni seriali HW disponibili)
volatile int liDARval = 0;
void readLiDAR(){
// Formato dati per Benewake TFmini // =============================== // 9 byte in totale per messaggio: // 1) 0x59 // 2) 0x59 // 3) Dist_L (basso 8 bit) // 4) Dist_H (alto 8 bit) // 5) Strength_L (basso 8 bit) // 6) Strength_H (alto 8 bit) // 7) Byte riservati // 8) Grado di qualità del segnale originale // 9) Bit di parità checksum (basso 8bit), Checksum = Byte1 + Byte2 +…+Byte8. Questo è solo un basso 8 bit mentre while(1){ // Continua per sempre while(Serial1.available()>=9) // Quando sono disponibili almeno 9 byte di dati (numero previsto di byte per 1 segnale), quindi read { if((0x59 == Serial1.read()) && (0x59 == Serial1.read())) // byte 1 e byte 2 { unsigned int t1 = Serial1.read(); // byte 3 = Dist_L unsigned int t2 = Serial1.read(); // byte 4 = Dist_H t2 <<= 8; t2 += t1; liDARval = t2; t1 = Serial1.read(); // byte 5 = Strength_L t2 = Serial1.read(); // byte 6 = Forza_H t2 <<= 8; t2 += t1; for(int i=0; i<3; i++)Serial1.read(); // i byte 7, 8, 9 vengono ignorati } } } }
configurazione nulla()
{ Serial1.begin(115200); // Seriale HW per TFmini Serial.begin(115200); // Ritardo uscita seriale da USB a computer (100); // Lascia un po' di tempo per iniziare // Imposta la modalità di output standard Serial1.write(0x42); Serial1.write(0x57); Serial1.write(0x02); Serial1.write(0x00); Serial1.write(0x00); Serial1.write(0x00); Serial1.write(0x01); Serial1.write(0x06); // Setup thread per leggere l'input seriale da TFmini threads.addThread(readLiDAR); }
ciclo vuoto()
{ ritardo(10); // Non voglio leggere troppo spesso come campioni TFmini a 100Hz Serial.println(liDARval); }
Passaggio 3: utilizzo dell'IDE Arduino Visualizza i risultati nel plotter seriale
Puoi usare qualsiasi metodo desideri, ma l'IDE di Arduino tramerà bene i risultati.
Connettiti a Teensy e apri Serial Monitor. Assicurati che il Baudrate sia impostato su 115200.
Consigliato:
Uno scudo WiFi ESP8266 più economico per Arduino e altri micro: 6 passaggi (con immagini)
Uno scudo WiFi ESP8266 più economico per Arduino e altri micro: aggiornamento: 29 ottobre 2020 Testato con la libreria di schede ESP8266 V2.7.4 - funziona Aggiornamento: 23 settembre 2016 Non utilizzare la libreria di schede Arduino ESP V2.3.0 per questo progetto. V2.2.0 funzionaAggiornamento: 19 maggio 2016Rev 14 di questo progetto rivede le librerie e il codice per funzionare con
Sistema di illuminazione per club con MadMapper e Teensy 3.2: 14 passaggi
Sistema di illuminazione per club con MadMapper e Teensy 3.2: Nel 2018 ho realizzato la prima versione di questo sistema di illuminazione per club a basso budget per una festa di Capodanno a Ramallah in Palestina con il mio collettivo The UNION, più sulla storia e il collettivo alla fine di questo articolo. Il sistema era basato su WS2812
Economico (er) Sonos Architectural con IKEA: 8 passaggi (con immagini)
Economico (più) Sonos Architectural con IKEA: dall'inizio di Sonos molti si sono lamentati dei prezzi elevati dei loro altoparlanti e in particolare dei prezzi dei loro dispositivi Connect che offrono la linea per l'uso con i propri altoparlanti. I dispositivi Connect mancano anche di molte funzionalità dello spe
Robot da disegno economico e compatibile con Arduino: 15 passaggi (con immagini)
Robot di disegno a basso costo, compatibile con Arduino: Nota: ho una nuova versione di questo robot che utilizza un circuito stampato, è più facile da costruire e ha il rilevamento degli ostacoli IR! Dai un'occhiata a http://bit.ly/OSTurtleHo progettato questo progetto per un workshop di 10 ore per ChickTech.org il cui obiettivo è quello di i
Photo Booth Big Red Button: Teensy LC: 3 passaggi (con immagini)
Photo Booth Big Red Button: Teensy LC: Un certo numero di anni fa, ho costruito un Photo Booth all'aperto fai-da-te per il matrimonio di un amico. Ho usato la "cabina" un certo numero di volte per vari eventi, ma volevo modificare l'impostazione per una configurazione più semplice. Fondamentalmente, una reflex su treppiede e un giro