Snímač TFMini-S LiDAR a ArduinoUno
Autonómne auto je najväčším darom technológie pre civilizáciu od zrodu internetu. Je len otázkou času, kedy tieto autá ovládnu cesty.

Aby sa samoriadiace auto úspešne pohybovalo po ceste, musí si byť vedomé fyzických objektov okolo seba. Vďaka otočnému senzoru LiDAR namontovanému na streche, ktorý pomáha vytvárať trojrozmerný pohľad na cestu okolo vozidla.Snímač LiDAR nie je nový a existuje už nejaký čas; v skutočnosti bol koncipovaný krátko po vývoji lasera.

LiDAR
- Tento senzor LiDAR dokáže merať vzdialenosť až (12 metrov).
- Chyba merania je len (+/- 1-3 cm).



Prvé práce na LiDAR boli zdokumentované v roku 1963. Vysoká cena laserového zariadenia obmedzovala používanie LiDAR len na vládne a vojenské agentúry. Nedávne poklesy cien však sprístupnili LiDAR pre domácich majstrov, ako sme my, čo nám umožnilo začleniť ho do našich projektov. Jedným zo široko používaných lacných, no presných LiDAR senzorov je TFMini-S. Tento tutoriál vám ukáže, ako prepojiť modul TFMini-S s Arduinom na vykonávanie vysoko presných meraní vzdialenosti.
Ako funguje LiDAR?
LiDAR sa riadi jednoduchým princípom – zasvieti laserové svetlo na objekt na a vypočíta sa čas potrebný na návrat k zdroju LiDAR. Vzhľadom na rýchlosť, ktorou sa svetlo pohybuje (približne 300000 Km za sekundu), sa proces merania presnej vzdialenosti cez LiDAR javí ako neuveriteľne rýchly. Vzorec, ktorý analytici používajú na získanie presnej vzdialenosti objektu, je nasledujúci:
Vzdialenosť = (rýchlosť svetla x čas letu) / 2

Laser sa odrazí od objektu a vráti sa späť k senzoru. Meraním času , za ktorý sa svetlo vráti do senzora, možno vypočítať vzdialenosť k objektu. Nameraná vzdialenosť sa môže líšiť v závislosti od prostredia a odrazivosti objektu.

Doska ArduinoUno má rozhranie UART a I2C. Po pripojení senzora k akémukoľvek externému mikrokontroléru môžete načítať údaje LiDAR. Senzor má 4 kolíky napájacie kolíky a kolíky UART. Červený vodič je VCC a čierny je zem. Biely vodič je RX a zelený je TX.

Otáčaním senzora LiDAR je možné rýchlo vytvoriť 3D mapu oblasti. Zvyčajne sa to prezentuje ako „mrak bodov“, aby ste lepšie pochopili, čo LiDAR zachytáva.
TFMini-S je vysoko presný, jednobodový ToF (Time of Flight) LiDAR senzor. Je ideálny na začlenenie vysoko presného laserového dosahu do akéhokoľvek robotického alebo interaktívneho projektu. Dokáže merať vzdialenosť k objektu už od 10 centimetrov až do 12 metrov.

Komunikačné rozhrania TFMini-S
Štandardne komunikuje cez rozhranie UART, pričom bežne používané piny UART: RX a TX pracujú s rýchlosťou 115200 bps. Senzor môžete nakonfigurovať na komunikáciu cez I2C odoslaním príslušných príkazov.
TFMini-S môže vykonávať až 1000 meraní za sekundu
(predvolená hodnota je 100). Túto frekvenciu je možné zmeniť odoslaním príslušných príkazov. Treba poznamenať, že zvýšenie výstupnej frekvencie znižuje presnosť. Preto v závislosti od toho, ako presné chcete, aby boli merania, by ste mali upraviť výstupnú frekvenciu.
Vstupný výkon :
TFMini-S pracuje s napätím 5 V a počas snímania odoberá približne 140 mA. Maximálny prúd, ktorý môže odoberať, je okolo 200 mA. Počas testovania však snímač sám odoberal asi 70 mA. Ak teda použijete 5V Arduino, konvertor logickej úrovne a senzor, môžete očakávať spotrebu okolo 100 mA. Preto pre základné testy môže byť senzor bez problémov napájaný cez USB port (5V/500mA). Senzor TFMini-S nemá žiadnu prepäťovú ochranu, preto udržujte kolísanie napájacieho napätia v rozmedzí 0,1V.
Pri použití snímača s 5V mikrokontrolérom sa odporúča použiť prevodník logickej úrovne. Ak však chcete čítať iba TFMini-S (v režime UART), nepotrebujete konvertor logickej úrovne, pretože 3,3V zariadenia vydávajú logické úrovne, ktoré sú kompatibilné s 5V zariadeniami.
TFMini-S má štyri kolíky.
- GND ~ je uzemnenie.
- VCC ~ je vstupný kolík napájania. Pripojte ho len k napájaniu 5V.
- RXD/SDA ~ je pin, ktorý môžete použiť na odosielanie dát do snímača (pri komunikácii cez UART) alebo odosielanie/prijímanie dát (pri komunikácii cez I2C). logická úroveň 3,3V.
- TXD/SCL ~ je pin, ktorý buď prenáša dáta zo snímača do vášho mikrokontroléra (pri komunikácii cez UART) alebo funguje ako hodiny (pri komunikácii cez I2C). Všimnite si, že je to tiež logická úroveň 3,3 V.
Zapojenie snímača TFMini-S k Arduinu

Stačí nám pripojiť štyri vodiče
Začnite pripojením červeného vodiča (VCC) snímača TFMini-S k výstupnému kolíku Arduina 5V a čierneho vodiča (GND) k kolíku GND Arduina. Teraz pripojte biely vodič (RXD/SDA) snímača TFMini-S k digitálnemu kolíku 3 Arduina a zelený vodič (TXD/SCL) k digitálnemu kolíku 2 Arduina.

Teraz, keď máme všetko prepojené, spustíme jednoduchý náčrt, ktorý demonštruje možnosti snímača TFMini-S.
#include <SoftwareSerial.h> //hlavičkový súbor sériového portu
SoftwareSerial Serial1(2, 3); //definujte názov sériového portu softvéru ako Serial1 a definujte pin2 ako RX a pin3 ako TX
int dist; //skutočné merania vzdialenosti LiDAR
int strength; //sila signálu LiDAR
int check; //uložiť kontrolnú hodnotu
int i;
int uart[9]; //uložiť dáta namerané pomocou LiDAR
const int HEADER = 0x59; //hlavička rámca dátového balíka
void setup()
{
Serial.begin(9600); //nastaviť bitovú rýchlosť pripojenia sériového portu
Serial1.begin(115200); //nastavenie bitovej rýchlosti sériového portu spájajúceho LiDAR s Arduinom
}
void loop() {
if (Serial1.available()) //skontrolujte, či má sériový port vstup dát
{
if (Serial1.read() == HEADER) //posúdiť hlavičku rámca dátového balíka 0x59
{
uart[0] = HEADER;
if (Serial1.read() == HEADER) //posúdiť hlavičku rámca dátového balíka 0x59
{
uart[1] = HEADER;
for (i = 2; i < 9; i++) //uložiť údaje do poľa
{
uart[i] = Serial1.read();
}
check = uart[0] + uart[1] + uart[2] + uart[3] + uart[4] + uart[5] + uart[6] + uart[7];
if (uart[8] == (check & 0xff)) //overiť prijaté údaje podľa protokolu
{
dist = uart[2] + uart[3] * 256; //vypočítajte hodnotu vzdialenosti
strength = uart[4] + uart[5] * 256; //vypočítať hodnotu sily signálu
Serial.print("distance = ");
Serial.print(dist); //výstup meria hodnotu vzdialenosti LiDAR
Serial.print('\t');
Serial.print("strength = ");
Serial.print(strength); //hodnota sily výstupného signálu
Serial.print('\n');
}
}
}
}
}
Po nahratí náčrtu otvorte sériový monitor a nastavte prenosovú rýchlosť na 9600 bps. Skúste nasmerovať snímač na predmety, ktoré sa nachádzajú okolo vás. Mali by ste vidieť, nameranú vzdialenosť.
Ak sa nezobrazia žiadne informácie, skontrolujte, či je TFmini-S správne pripojený; po zapnutí by malo byť pri pohľade spredu vo vnútri vysielacej šošovky viditeľné červené svetlo.

Pridaj komentár