Përmbajtje:

Benewake TFmini - LiDAR i lirë me Teensy 3.5: 3 Hapa
Benewake TFmini - LiDAR i lirë me Teensy 3.5: 3 Hapa

Video: Benewake TFmini - LiDAR i lirë me Teensy 3.5: 3 Hapa

Video: Benewake TFmini - LiDAR i lirë me Teensy 3.5: 3 Hapa
Video: Teensy Arduino with Stepper Motor ULN2003AN Driver 2024, Nëntor
Anonim
Benewake TFmini - LiDAR i lirë me Teensy 3.5
Benewake TFmini - LiDAR i lirë me Teensy 3.5

Njësia Benewake TFmini LiDAR është një sensor LiDAR i vogël, me peshë shumë të lehtë për rreth 50 dollarë kanadezë. Dokumentacioni ishte i mirë, por jo i plotë. Ai siguroi detaje mbi marrjen e të dhënave nga sensori, por harroi të përmend sinjalin e nevojshëm për ta vendosur sensorin në modalitetin e paracaktuar në mënyrë që të dërgojë të dhënat në të vërtetë. Për fat kjo ishte në dokumentin e korrigjimit.

Pra, kjo është ajo që funksionoi për mua, dhe është me të vërtetë një pajisje e lehtë për të punuar me të.

Zgjodha të përdor një Teensy 3.5 pasi ka porte të shumta seriale HW, është më shumë se i shpejtë sa për të marrë të dhëna dhe përpunuar ato pa lënë grumbullimin e të dhënave. Vetëm për argëtim kam përdorur bibliotekën Teensy Threading për të ndarë marrjen e të dhënave nga pjesa tjetër e kodit.

Hapi 1: Lidhja e TFmini me Teensy 3.5 (e ngjashme për Arduino Mega)

Lidhja e TFmini me Teensy 3.5 (e ngjashme për Arduino Mega)
Lidhja e TFmini me Teensy 3.5 (e ngjashme për Arduino Mega)

Ky shembull kërkon dy lidhje serike: një me TFmini dhe një për të shfaqur rezultatet në kompjuterin tuaj. Për këtë arsye, dhe me aq sa mund të them, vetëm për këtë arsye, ky shembull i veçantë nuk do të funksionojë në asgjë nën një Arduino Mega ose Teensy 3.x.

Duke u thënë kështu, për aplikacionet që nuk kërkojnë dalje serike për t'u printuar në ekranin e kompjuterit, i njëjti projekt duhet të jetë i adaptueshëm.

Përdorimi i parzmoreve të telit të përfshirë:

1) lidhni tela të zinj me Teensy GND (nëse përdorni burimin e ndryshimit VDC, sigurohuni që toka të shkojë edhe në GND në Teensy)

2) lidhni tela të kuq me Teensy Vin (ose burim 5VDC)

3) lidhni tela të bardhë (TFmini RX) në kunjin 1 në Teensy (Serial1 TX)

4) lidhni telin jeshil (TFmini TX) në pin 0 në Teensy (Serial RX)

Rripi i telit të përfshirë ishte shumë i vogël për mua për të punuar në një dërrasë bukë, kështu që unë e preva fundin përballë TFmini, dhe i bashkova telat në një dërrasë buke, shtova një lidhës JST në tavolinë dhe i bëra një JST kërcyesit meshkuj parzmore tela.

Hapi 2: Kodi për ta ekzekutuar atë

Përdorni kodin e mëposhtëm (për Teensy 3.5) ose shkarkoni skedarin e bashkangjitur:

Për Arduino Mega, filetimi ka të ngjarë të mos funksionojë. Zhvendosni kodin nga funksioni readLiDAR në lakin kryesor dhe hiqni gjithçka që lidhet me filetimin.

#include #include "TeensyThreads.h"

// Përdorimi i kabllit të furnizuar:

// - E zezë = GND (e lidhur me GND) // - E kuqe = 5V (4.5 - 6.0V) (e lidhur me Vin në Teensy 3.5, ose 5V në Arduino) // - E bardhë = TFmini RX (aka. Lidheni me mikrokontrolluesin TX, pin1 në Teensy 3.5) // - Green = TFmini TX (aka. lidheni me mikrokontrolluesin RX, pin0 në Teensy 3.5) // SHENIM: për këtë skicë keni nevojë për një mikrokontrollues me porte seriale shtesë përtej atij të lidhur me kabllon USB / / Kjo përfshin Arduino MEGA (përdorni Serial1), Teensy (3.x) (përdorni një nga lidhjet seriale të disponueshme HW)

e paqëndrueshme int liDARval = 0;

e pavlefshme readLiDAR () {

// Formati i të dhënave për Benewake TFmini // ============================ // 9 byte gjithsej për mesazh: // 1) 0x59 // 2) 0x59 // 3) Dist_L (i ulët 8bit) // 4) Dist_H (i lartë 8bit) // 5) Forca_L (e ulët 8bit) // 6) Forca_H (e lartë 8bit) // 7) Byte të rezervuara // 8) Shkalla e cilësisë së sinjalit origjinal // 9) Bit i barazisë së checksum (i ulët 8bit), Checksum = Byte1 +Byte2 +… +Byte8. Ky është vetëm një 8bit i ulët edhe pse ndërsa (1) {// Vazhdoni për një kohë të gjatë (Serial1.disponueshëm ()> = 9) // Kur të paktën 9 bajt të dhëna në dispozicion (numri i pritur i bajtëve për 1 sinjal), atëherë lexo {if ((0x59 == Serial1.read ()) && (0x59 == Serial1.read ())) // byte 1 dhe byte 2 {unsigned int t1 = Serial1.read (); // byte 3 = Dist_L unsigned int t2 = Serial1.read (); // bajt 4 = Dist_H t2 << = 8; t2 += t1; liDARval = t2; t1 = Serial1.lex (); // bajt 5 = Forca_L t2 = Serial1.lex (); // bajt 6 = Forca_H t2 << = 8; t2 += t1; për (int i = 0; i <3; i ++) Serial1.lex (); // byte 7, 8, 9 injorohen}}}}

void setup ()

{Serial1.fillo (115200); // Seriali HW për TFmini Serial.begin (115200); // Dalja serike përmes USB në vonesë në kompjuter (100); // Jepini pak kohë që gjërat të fillojnë // Vendoseni në modalitetin Standard të daljes Serial1.write (0x42); Serial1.shkruani (0x57); Serial1.shkruani (0x02); Serial1.shkruani (0x00); Serial1.shkruani (0x00); Serial1.shkruani (0x00); Serial1.shkruani (0x01); Serial1.shkruani (0x06); // Fije konfigurimi për leximin e hyrjes serike nga temat TFmini.addThread (readLiDAR); }

lak void ()

{vonesë (10); // Nuk dua të lexoj shumë shpesh si mostra TFmini në 100Hz Serial.println (liDARval); }

Hapi 3: Përdorimi i Arduino IDE View Results në Serial Plotter

Duke përdorur Arduino IDE Shikoni Rezultatet në Komplotues Serial
Duke përdorur Arduino IDE Shikoni Rezultatet në Komplotues Serial

Ju mund të përdorni çfarëdo metode që dëshironi, por IDE e Arduino do t'i vizatojë rezultatet mirë.

Lidhu me Teensy dhe hap Serial Monitor. Sigurohuni që Baudrate është vendosur në 115200.

Recommended: