Tartalomjegyzék:

Benewake TFmini - Olcsó LiDAR Teensy 3.5: 3 lépéssel
Benewake TFmini - Olcsó LiDAR Teensy 3.5: 3 lépéssel

Videó: Benewake TFmini - Olcsó LiDAR Teensy 3.5: 3 lépéssel

Videó: Benewake TFmini - Olcsó LiDAR Teensy 3.5: 3 lépéssel
Videó: Benewake TFmini-S — лазерный дальномер на 12 метров для Arduino и Raspberry. Железки Амперки 2024, Július
Anonim
Benewake TFmini - Olcsó LiDAR Teensy -vel 3.5
Benewake TFmini - Olcsó LiDAR Teensy -vel 3.5

A Benewake TFmini LiDAR egység egy kicsi, nagyon könnyű LiDAR érzékelő, körülbelül 50 dollárért. A dokumentáció jó volt, de hiányos. Részleteket közölt az érzékelőről érkező adatok fogadásáról, de elfelejtette megemlíteni azt a jelet, amely szükséges ahhoz, hogy az érzékelőt alapértelmezett üzemmódba állítsa, így ténylegesen elküldi az adatokat. Szerencsére ez benne volt a hibakeresési dokumentumban.

Tehát ez működött számomra, és ez valóban könnyű eszköz.

A Teensy 3.5 használatát választottam, mivel több HW soros porttal rendelkezik, több mint elég gyors az adatok fogadásához és feldolgozásához anélkül, hogy hagynám az adatokat felhalmozni. Csak szórakozásból a Teensy Threading könyvtárat használtam, hogy elkülönítsem az adatok megszerzését a kód többi részétől.

1. lépés: A TFmini csatlakoztatása a Teensy 3.5 -höz (hasonló az Arduino Mega -hoz)

A TFmini csatlakoztatása a Teensy 3.5 -höz (hasonló az Arduino Mega -hoz)
A TFmini csatlakoztatása a Teensy 3.5 -höz (hasonló az Arduino Mega -hoz)

Ez a példa két soros kapcsolatot igényel: az egyik a TFmini -hez, a másik az eredmények megjelenítéséhez a számítógépen. Emiatt, és amennyire meg tudom mondani, csak ezért, ez a példa nem fog működni az Arduino Mega vagy a Teensy 3.x alatt.

Mindazonáltal, azoknál az alkalmazásoknál, amelyek nem igényelnek soros kimenetet a számítógép képernyőjére történő nyomtatáshoz, ugyanezen projektnek alkalmazkodni kell.

A mellékelt kábelköteg használata:

1) csatlakoztassa a fekete vezetéket a Teensy GND -hez (ha különbségi VDC forrást használ, győződjön meg arról, hogy a föld is a GND -re megy a Teensy -n)

2) csatlakoztassa a piros vezetéket a Teensy Vin -hez (vagy 5VDC forráshoz)

3) csatlakoztassa a fehér vezetéket (TFmini RX) a Teensy (Serial1 TX) 1. tűjéhez

4) csatlakoztassa a zöld vezetéket (TFmini TX) a Teensy (Serial RX) 0 -as érintkezőjéhez

A mellékelt kábelköteg túl kicsi volt ahhoz, hogy kenyérsütő táblán dolgozhassak, ezért levágtam a TFmini -vel szemben lévő végét, és a vezetékeket forrasztottam egy kenyérsütő deszkára, hozzáadtam a JST csatlakozót a törőlaphoz, és JST -t készítettem a férfi áthidalóhoz kábelköteg.

2. lépés: Kód a futtatásához

Használja a következő kódot (Teensy 3.5 esetén), vagy töltse le a csatolt fájlt:

Az Arduino Mega esetében a szálazás valószínűleg nem fog működni. Helyezze át a kódot a readLiDAR függvényből a főhurokba, és távolítson el mindent a szálazással kapcsolatban.

#include #include "TeensyThreads.h"

// A mellékelt kábel használatával:

// - Fekete = GND (csatlakoztatva a GND -hez) // - Piros = 5 V (4,5 - 6,0 V) (csatlakozik a Vin -hez a Teensy 3.5 -n, vagy 5 V az Arduino -n) // - Fehér = TFmini RX (aka. Csatlakozás a TX mikrokontrollerhez), pin1 a Teensy 3.5 -n) // - Zöld = TFmini TX (más néven csatlakozzon az RX mikrovezérlőhöz, pin0 a Teensy 3.5 -n) // MEGJEGYZÉS: ehhez a vázlathoz mikrokontrollerre van szüksége, amely további soros portokkal rendelkezik az USB -kábelhez csatlakoztatotton kívül / / Ide tartozik az Arduino MEGA (Serial1 használata), Teensy (3.x) (használja a rendelkezésre álló HW soros kapcsolatok egyikét)

illékony int liDARval = 0;

void readLiDAR () {

// A Benewake TFmini adatformátuma // =============================== // Üzenetenként összesen 9 bájt: // 1) 0x59 // 2) 0x59 // 3) Dist_L (alacsony 8bit) // 4) Dist_H (nagy 8bit) // 5) Strength_L (low 8bit) // 6) Strength_H (high 8bit) // 7) Foglalt bájtok // 8) Eredeti jelminőségi fokozat // 9) Ellenőrző összeg paritásbit (alacsony 8 bites), Ellenőrző összeg = Bájt1 +Bájt2 +… +Bájt8. Ez azonban csak alacsony 8 bites, miközben (1) {// Folytassa az utat mindaddig (Serial1.available ()> = 9) // Ha legalább 9 bájt adat áll rendelkezésre (1 jel esetén a bájtok várható száma), akkor read {if ((0x59 == Serial1.read ()) && (0x59 == Serial1.read ())) // 1. és 2. bájt {unsigned int t1 = Serial1.read (); // bájt 3 = Dist_L unsigned int t2 = Sorozat1.olvasás (); // 4. bájt = Táv_H t2 << = 8; t2 += t1; liDARval = t2; t1 = Sorozat1.olvasás (); // 5. bájt = Erősség_L t2 = Sorozat1.olvasás (); // 6. bájt = Erősség_H t2 << = 8; t2 += t1; for (int i = 0; i <3; i ++) Serial1.read (); // a 7., 8., 9. bájt figyelmen kívül hagyja}}}}

üres beállítás ()

{Serial1.begin (115200); // HW sorozat a TFmini Serial számára.begin (115200); // Soros kimenet USB -n keresztül a számítógéphez késleltetés (100); // Adjon egy kis időt a dolgok elindulására // Állítsa be a Standard kimeneti módot Serial1.write (0x42); Soros1.írás (0x57); Soros1.írás (0x02); Soros1.írás (0x00); Soros1.írás (0x00); Soros1.írás (0x00); Soros1.írás (0x01); Soros1.írás (0x06); // Beállítási szál a TFmini szálak soros bemenetének olvasásához. AddThread (readLiDAR); }

üres hurok ()

{késleltetés (10); // Nem akarok túl gyakran olvasni TFmini mintákként 100Hz Serial.println (liDARval); }

3. lépés: Az Arduino IDE használata Az eredmények megtekintése a soros plotterben

Az Arduino IDE használata Az eredmények megtekintése soros plotterben
Az Arduino IDE használata Az eredmények megtekintése soros plotterben

Bármilyen módszert használhat, de az Arduino IDE szépen ábrázolja az eredményeket.

Csatlakozzon a Teensy -hez, és nyissa meg a Soros monitort. Győződjön meg arról, hogy a Baudrate 115200 értékre van állítva.

Ajánlott: