Мазмұны:

Benewake TFmini - Teensy 3.5: 3 қадамдары бар арзан LiDAR
Benewake TFmini - Teensy 3.5: 3 қадамдары бар арзан LiDAR

Бейне: Benewake TFmini - Teensy 3.5: 3 қадамдары бар арзан LiDAR

Бейне: Benewake TFmini - Teensy 3.5: 3 қадамдары бар арзан LiDAR
Бейне: XRAD'S REAL LIDAR SCANNER part 3 2024, Қараша
Anonim
Benewake TFmini - Teensy 3.5 бар қымбат емес LiDAR
Benewake TFmini - Teensy 3.5 бар қымбат емес LiDAR

Benewake TFmini LiDAR қондырғысы канадалық шамамен 50 доллар тұратын шағын, өте жеңіл LiDAR сенсоры. Құжаттар жақсы болды, бірақ толық емес. Ол сенсордан деректерді алу туралы толық мәлімет берді, бірақ ол шын мәнінде деректерді жіберу үшін сенсорды әдепкі режимге қою үшін қажет сигнал туралы айтуды ұмытып кетті. Бақытымызға орай, бұл жөндеу құжатында болды.

Міне, бұл мен үшін жұмыс істеді және бұл шынымен де жұмыс істейтін құрылғы.

Мен 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 айырмашылығын қолдансаңыз, жер Teensy -де GND -ге өтетініне көз жеткізіңіз)

2) қызыл сымды Teensy Vin (немесе 5VDC көзі) желісіне қосыңыз

3) ақ сымды (TFmini RX) Teensy (Serial1 TX) 1 сымына жалғаңыз.

4) жасыл сымды (TFmini TX) Teensy (Serial RX) 0 түйреуішіне жалғаңыз.

Нан тақтасында жұмыс істеуге маған тым аз болды, сондықтан мен TFmini -ге қарама -қарсы ұшын кесіп тастадым, сымдарды тақтаға дәнекерлеп, JST коннекторын тақтаға қосып, еркек секіргішке JST жасадым. сымдар

2 -қадам: оны іске қосу үшін код

Келесі кодты пайдаланыңыз (Teensy 3.5 үшін) немесе қоса берілген файлды жүктеңіз:

Arduino Mega үшін бұрау жұмыс істемеуі мүмкін. ReadLiDAR функциясынан кодты негізгі циклге жылжытыңыз және ағынмен байланысты нәрсені алып тастаңыз.

#қосу #«TeensyThreads.h» қосу

// Берілген кабельді қолдану:

// - Қара = GND (GND қосылған) // - Қызыл = 5 В (4.5 - 6.0 В) (Teinsy 3.5 -те Vin -ке немесе Arduino -да 5 В -қа қосылған) // - Ақ = TFmini RX (а. TX микроконтроллеріне қосылу), Pin1 Teensy 3.5 -те) // - Жасыл = TFmini TX (aka. RX микроконтроллеріне қосылу, Teensy 3.5 -те pin0) // ЕСКЕРТУ: бұл эскиз үшін сізге USB кабеліне жалғанғаннан басқа қосымша сериялық порттары бар микроконтроллер қажет / / Бұған Arduino MEGA (Serial1 пайдалану), Teensy (3.x) кіреді (қол жетімді HW сериялық қосылымдарының бірін қолданыңыз)

тұрақсыз int liDARval = 0;

жарамсыз readLiDAR () {

// Benewake TFmini үшін деректер форматы // ============================== // Хабарға 9 байт: // 1) 0x59 // 2) 0x59 // 3) Dist_L (төмен 8 биттік) // 4) Dist_H (жоғары 8 биттік) // 5) Strength_L (төмен 8bit) // 6) Strength_H (жоғары 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 белгісіз int t2 = Serial1.read (); // байт 4 = Dist_H t2 << = 8; t2 += t1; liDARval = t2; t1 = Serial1.read (); // байт 5 = Strength_L t2 = Serial1.read (); // байт 6 = Strength_H t2 << = 8; t2 += t1; for (int i = 0; i <3; i ++) Serial1.read (); // байт 7, 8, 9 еленбейді}}}}

жарамсыз орнату ()

{Serial1.begin (115200); // HW Serial for 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); // 100Hz Serial.println (liDARval) TFmini үлгілері ретінде жиі оқығыңыз келмейді; }

3 -қадам: Arduino IDE қарау нәтижелерін сериялық плоттерде қолдану

Arduino IDE қарау нәтижелерін сериялық плоттерде қолдану
Arduino IDE қарау нәтижелерін сериялық плоттерде қолдану

Сіз қалаған әдісті қолдана аласыз, бірақ Arduino IDE нәтижелерді жақсы құрастырады.

Teensy -ге қосылыңыз және сериялық мониторды ашыңыз. Baudrate 115200 мәніне орнатылғанына көз жеткізіңіз.

Ұсынылған: