Բովանդակություն:

Benewake TFmini - Էժան LiDAR Teensy 3.5: 3 քայլով
Benewake TFmini - Էժան LiDAR Teensy 3.5: 3 քայլով

Video: Benewake TFmini - Էժան LiDAR Teensy 3.5: 3 քայլով

Video: Benewake TFmini - Էժան LiDAR Teensy 3.5: 3 քայլով
Video: Лазерная арфа. Laserharp 2024, Նոյեմբեր
Anonim
Benewake TFmini - Էժան LiDAR Teensy 3.5 -ով
Benewake TFmini - Էժան LiDAR Teensy 3.5 -ով

Benewake TFmini LiDAR միավորը փոքր, շատ թեթև քաշ ունեցող LiDAR սենսոր է ՝ կանադական մոտ 50 դոլարով: Փաստաթղթերը լավն էին, բայց թերի: Այն մանրամասներ է հաղորդել տվիչից տվյալներ ստանալու վերաբերյալ, սակայն մոռացել է նշել ազդանշանը, որն անհրաժեշտ է սենսորը կանխադրված ռեժիմի մեջ դնելու համար, որպեսզի այն իրականում ուղարկի տվյալները: Բարեբախտաբար, դա վրիպազերծման փաստաթղթում էր:

Այսպիսով, սա այն է, ինչ աշխատել է ինձ համար, և դա իսկապես հեշտ սարք է աշխատել:

Ես ընտրեցի օգտագործել Teensy 3.5 -ը, քանի որ այն ունի բազմաթիվ HW սերիական նավահանգիստներ, այն ավելի քան արագ է, քան տվյալներ ստանալու և մշակելու համար ՝ թույլ չտալով, որ տվյալները կուտակվեն: Պարզապես հաճույքի համար ես օգտագործեցի Teensy Threading գրադարանը ՝ տվյալների ստացումը մնացած ծածկագրից առանձնացնելու համար:

Քայլ 1. TFmini- ի միացում Teensy 3.5 -ին (նման է Arduino Mega- ին)

TFmini- ի միացում Teensy 3.5 -ին (նման է Arduino Mega- ի համար)
TFmini- ի միացում Teensy 3.5 -ին (նման է Arduino Mega- ի համար)

Այս օրինակը պահանջում է երկու սերիական միացում `մեկը TFmini- ին, և մեկը` արդյունքները ձեր համակարգչում ցուցադրելու համար: Այս պատճառով, և որքանով ես կարող եմ ասել, միայն այս պատճառով, այս կոնկրետ օրինակը չի աշխատի Arduino Mega- ից կամ Teensy 3.x- ից ցածր որևէ բանի վրա:

Ասել է թե ՝ այն ծրագրերի համար, որոնք չեն պահանջում համակարգչային էկրանին սերիական ելք, նույն նախագիծը պետք է հարմարվողական լինի:

Օգտագործված մետաղալարերի ամրագոտի օգտագործումը.

1) միացրեք սև մետաղալարերը Teensy GND- ին (եթե օգտագործում եք տարբեր VDC աղբյուր, համոզվեք, որ գետինը նույնպես անցնում է GND- ին Teensy- ում)

2) կարմիր մետաղալարը միացրեք Teensy Vin- ին (կամ 5VDC աղբյուրին)

3) միացրեք սպիտակ մետաղալարը (TFmini RX) Teensy- ի 1 -ին կապին (Serial1 TX)

4) միացրեք կանաչ մետաղալարը (TFmini TX) Teensy- ի 0 սոսին (Serial RX)

Ներառված մետաղալարերը ինձ համար չափազանց փոքր էին հացի տախտակի վրա աշխատելու համար, այնպես որ ես կտրեցի TFmini- ի հակառակ ծայրը և լարերը կպցրեցի տախտակին, JST միակցիչ ավելացրի բեկորին, և JST պատրաստեցի արական ցատկողին: մետաղալար զրահ:

Քայլ 2: Գործարկելու կոդ

Օգտագործեք հետևյալ ծածկագիրը (Teensy 3.5 -ի համար) կամ ներբեռնեք կցված ֆայլը.

Arduino Mega- ի համար թելը ամենայն հավանականությամբ չի աշխատի: Տեղափոխեք կոդը readLiDAR գործառույթից հիմնական հանգույց և հեռացրեք թելերի հետ կապված ամեն ինչ:

#ներառել #ներառել «TeensyThreads.h»

// Մատուցվող մալուխի օգտագործումը.

// - Սև = GND (միացված է GND) // - Կարմիր = 5V (4.5 - 6.0V) (միացված է Vin- ին Teensy 3.5 -ին, կամ 5V Arduino- ին) // - Սպիտակ = TFmini RX (հայտնի է նաև միացում միկրոկառավարիչ TX- ին), pin1 Teensy 3.5- ում) // - Կանաչ = TFmini TX (հայտնի է նաև միացում միկրոկոնտրոլեր RX- ին, pin0 Teensy 3.5- ում) // EԱՆՈԹՈ:ԹՅՈՆ. այս ուրվագծի համար ձեզ անհրաժեշտ է միկրոկոնտրոլեր լրացուցիչ սերիական պորտերով ՝ USB մալուխին միացվածից այն կողմ / / Սա ներառում է Arduino MEGA (օգտագործել Serial1), Teensy (3.x) (օգտագործել առկա HW սերիական կապերից մեկը)

անկայուն int liDARval = 0;

void readLiDAR () {

// Տվյալների ձևաչափ Benewake TFmini- ի համար // ============================= // յուրաքանչյուր հաղորդագրության համար 9 բայթ `// 1) 0x59 // 2) 0x59 // 3) Dist_L (ցածր 8bit) // 4) Dist_H (բարձր 8bit) // 5) Strength_L (low 8bit) // 6) Strength_H (high 8bit) // 7) Պահված բայթ // 8) Ազդանշանի որակի սկզբնական աստիճան // 9) Չեկսի գումարի հավասարության բիթ (ցածր 8 բիթ), Չեկսում = Բայթ 1 +Բայթ 2 +… +Բայթ 8: Սա ընդամենը ցածր 8 բիթ է, մինչդեռ (1) {// Շարունակեք ընդմիշտ (Serial1.available ()> = 9) // Երբ առկա է առնվազն 9 բայթ տվյալներ (1 ազդանշանի համար սպասվող քանակի բայթ), ապա կարդալ {if ((0x59 == Serial1.read ()) && (0x59 == Serial1.read ())) // բայթ 1 և բայթ 2 {unsigned int t1 = Serial1.read (); // բայթ 3 = Dist_L unsigned int t2 = Serial1.read (); // բայթ 4 = Dist_H t2 << = 8; t2 += t1; liDARval = t2; t1 = Serial1.read (); // բայթ 5 = Strength_L t2 = Serial1.read (); // բայթ 6 = Ուժ_Հ t2 << = 8; t2 += t1; համար (int i = 0; i <3; i ++) Serial1.read (); // բայթ 7, 8, 9 անտեսվում են}}}}

դատարկ կարգավորում ()

{Serial1.begin (115200); // HW սերիա TFmini Serial.begin- ի համար (115200); // USB- ի միջոցով համակարգչի հետաձգում սերիական (100); // Մի փոքր ժամանակ տվեք ամեն ինչ սկսելու համար // Սահմանեք Ստանդարտ ելքային ռեժիմի Serial1.write (0x42); Serial1.write (0x57); Serial1.write (0x02); Serial1.write (0x00); Serial1.write (0x00); Serial1.write (0x00); Serial1.write (0x01); Serial1.write (0x06); // Կարգավորող թեմա TFmini threads.- ից սերիական մուտքագրում կարդալու համար. AddThread (readLiDAR); }

դատարկ շրջան ()

{ուշացում (10); // Չեմ ուզում շատ հաճախ կարդալ որպես TFmini նմուշներ 100Hz հաճախականությամբ Serial.println (liDARval); }

Քայլ 3: Օգտագործելով Arduino IDE- ի դիտման արդյունքները սերիական գծագրիչում

Arduino IDE- ի օգտագործումը Դիտեք արդյունքները սերիական գծագրիչում
Arduino IDE- ի օգտագործումը Դիտեք արդյունքները սերիական գծագրիչում

Դուք կարող եք օգտագործել ցանկացած մեթոդ, որը կցանկանայիք, բայց Arduino- ի IDE- ն գեղեցիկ ձևով ցույց կտա արդյունքները:

Միացեք Teensy- ին և բացեք Serial Monitor- ը: Համոզվեք, որ Baudrate- ը սահմանվել է 115200:

Խորհուրդ ենք տալիս: