Orodha ya maudhui:

Benewake TFmini - LiDAR isiyo na gharama kubwa na Vijana 3.5: 3 Hatua
Benewake TFmini - LiDAR isiyo na gharama kubwa na Vijana 3.5: 3 Hatua

Video: Benewake TFmini - LiDAR isiyo na gharama kubwa na Vijana 3.5: 3 Hatua

Video: Benewake TFmini - LiDAR isiyo na gharama kubwa na Vijana 3.5: 3 Hatua
Video: Benewake TFmini-S — лазерный дальномер на 12 метров для Arduino и Raspberry. Железки Амперки 2024, Novemba
Anonim
Benewake TFmini - LiDAR isiyo na gharama kubwa na Vijana 3.5
Benewake TFmini - LiDAR isiyo na gharama kubwa na Vijana 3.5

Kitengo cha Benewake TFmini LiDAR ni sensorer ndogo, nyepesi sana ya LiDAR kwa karibu $ 50 ya Canada. Nyaraka zilikuwa nzuri, lakini hazijakamilika. Ilitoa maelezo juu ya kupokea data kutoka kwa sensorer, lakini ilisahau kutaja ishara inayohitajika kuweka sensor katika hali chaguomsingi ili iweze kutuma data. Kwa bahati nzuri hiyo ilikuwa kwenye hati ya utatuzi.

Kwa hivyo hii ndio iliyonifanyia kazi, na ni kifaa rahisi kufanya kazi nayo.

Nilichagua kutumia Teensy 3.5 kwani ina bandari nyingi za HW Serial, ni zaidi ya haraka ya kutosha kupokea data na kuichakata bila kuruhusu data kurundike. Kwa raha tu nilitumia maktaba ya Teensy Threading kutenganisha kupata data kutoka kwa nambari yote.

Hatua ya 1: Kuunganisha TFmini na Teensy 3.5 (sawa na Arduino Mega)

Kuunganisha TFmini na Teensy 3.5 (sawa na Arduino Mega)
Kuunganisha TFmini na Teensy 3.5 (sawa na Arduino Mega)

Mfano huu unahitaji unganisho mbili za serial: moja kwa TFmini, na moja kuonyesha matokeo kwenye kompyuta yako. Kwa sababu hii, na kadiri ninavyoweza kusema, sababu hii tu, mfano huu hautafanya kazi kwa chochote chini ya Arduino Mega au Teensy 3.x.

Hiyo inasemwa, kwa programu ambazo hazihitaji pato la serial kuchapisha kwa skrini ya kompyuta, mradi huo huo unapaswa kubadilika.

Kutumia waya iliyojumuishwa:

1) unganisha waya mweusi na Teensy GND (ikiwa unatumia chanzo tofauti cha VDC, hakikisha ardhi pia huenda kwa GND kwenye Vijana)

2) unganisha waya mwekundu kwa Teensy Vin (au chanzo cha 5VDC)

3) unganisha waya mweupe (TFmini RX) kubandika 1 kwenye Teensy (Serial1 TX)

4) unganisha waya wa kijani (TFmini TX) kubandika 0 kwenye Teensy (Serial RX)

Ufungaji wa waya uliojumuishwa ulikuwa mdogo sana kwangu kufanya kazi na bodi ya mkate, kwa hivyo nilikata mwisho mkabala na TFmini, na kuuzia waya kwenye ubao wa mkate, nikaongeza kiunganishi cha JST kwenye kibodi, na kutengeneza JST kwa mrukaji wa kiume. waya kuunganisha.

Hatua ya 2: Nambari ya Kuiendesha

Tumia nambari ifuatayo (kwa Vijana 3.5) au pakua faili iliyoambatishwa:

Kwa Arduino Mega, uzi wa nyuzi hautafanya kazi. Hamisha nambari kutoka kwa kazi ya kusomaLiDAR hadi kitanzi kuu, na uondoe chochote kinachohusiana na uzi.

# pamoja na # pamoja na "Vijana vya Nyuzi.h"

// Kutumia kebo iliyotolewa:

// - Nyeusi = GND (iliyounganishwa na GND) // - Nyekundu = 5V (4.5 - 6.0V) (iliyounganishwa na Vin kwenye Teensy 3.5, au 5V kwenye Arduino) // - White = TFmini RX (aka. Unganisha na microcontroller TX, pin1 kwenye Teensy 3.5) // - Green = TFmini TX (aka. unganisha na microcontroller RX, pin0 kwenye Teensy 3.5) // KUMBUKA: kwa mchoro huu unahitaji microcontroller na bandari za nyongeza zaidi ya ile iliyounganishwa na kebo ya USB / / Hii ni pamoja na Arduino MEGA (tumia Serial1), Teensy (3.x) (tumia moja ya unganisho linalopatikana la HW Serial)

tete int liDARval = 0;

kusomaLiDAR batili () {

// Umbizo la Takwimu la Benewake TFmini // =============================== // 9 jumla kwa kila ujumbe: // 1) 0x59 // 2) 0x59 // 3) Dist_L (chini 8bit) // 4) Dist_H (high 8bit) // 5) Nguvu_L (8bit ya chini) // 6) Nguvu_H (8bit ya juu) // 7) ka zilizohifadhiwa // 8) Digrii ya ubora wa ishara ya asili // 9) Kiwango cha usawa wa Checksum (chini ya 8bit), Checksum = Byte1 + Byte2 +… + Byte8. Hii ni 8bit ya chini tu ingawa wakati (1) {// Endelea kuendelea milele (Serial1 haipatikani ()> = 9) // Wakati angalau data 9 zinapatikana (idadi inayotarajiwa ya ka kwa ishara 1), basi soma {if ((0x59 == Serial1.read ()) && (0x59 == Serial1.read ()) // byte 1 na 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 = Nguvu_L t2 = Serial1.read (); // byte 6 = Nguvu_H t2 << = 8; t2 + = t1; kwa (int i = 0; i <3; i ++) Serial1.read (); // baiti 7, 8, 9 hupuuzwa}}}

kuanzisha batili ()

{Serial1.anza (115200); // HW Serial kwa TFmini Serial.begin (115200); // Pato la serial kupitia USB kucheleweshwa kwa kompyuta (100); // Toa muda kidogo kwa vitu kuanza // Weka kwa Njia ya Pato ya Kawaida Serial1.write (0x42); Serial1.andika (0x57); Serial1.andika (0x02); Serial1.andika (0x00); Serial1.andika (0x00); Serial1.andika (0x00); Serial1.andika (0x01); Serial1.andika (0x06); // Usanidi wa usanidi wa kusoma pembejeo za serial kutoka kwa nyuzi za TFmini.addThread (somaLiDAR); }

kitanzi batili ()

{kuchelewesha (10); // Hawataki kusoma mara nyingi sana kama sampuli za TFmini kwenye 100Hz Serial.println (liDARval); }

Hatua ya 3: Kutumia Matokeo ya Mtazamo wa Arduino IDE katika Mpangilio wa Silagi

Kutumia Matokeo ya Maoni ya Arduino IDE katika Mpangilio wa Siri
Kutumia Matokeo ya Maoni ya Arduino IDE katika Mpangilio wa Siri

Unaweza kutumia njia yoyote unayopenda, lakini IDE ya Arduino itapanga matokeo vizuri.

Unganisha kwa Vijana, na ufungue Monitor Monitor. Hakikisha Baudrate imewekwa hadi 115200.

Ilipendekeza: