Мазмуну:

Benewake TFmini - Teensy 3.5 менен арзан LiDAR 3.5: 3 кадам
Benewake TFmini - Teensy 3.5 менен арзан LiDAR 3.5: 3 кадам

Video: Benewake TFmini - Teensy 3.5 менен арзан LiDAR 3.5: 3 кадам

Video: Benewake TFmini - Teensy 3.5 менен арзан LiDAR 3.5: 3 кадам
Video: Benewake TFmini 2024, Ноябрь
Anonim
Benewake TFmini - Teensy менен арзан LiDAR 3.5
Benewake TFmini - Teensy менен арзан LiDAR 3.5

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'ге 1 -пинге туташтыруу (Serial1 TX)

4) жашыл зымды (TFmini TX) Teensy (Serial RX) боюнча 0 пинге туташтыруу

Камтылган зымдын түйүнү нан тактасында иштөө үчүн мен үчүн өтө кичинекей болчу, ошондуктан мен TFmini карама -каршы жагын кесип, зымдарды нанга такап, разрядга JST туташтыргычын кошуп, эркек секирүүчүгө JST жасадым зым арка.

2 -кадам: Аны иштетүү үчүн код

Төмөнкү кодду колдонуңуз (Teensy 3.5 үчүн) же тиркелген файлды жүктөп алыңыз:

Ардуино Мега үчүн жип иштетүү мүмкүн эмес. Кодду readLiDAR функциясынан негизги циклге жылдырыңыз жана жипке байланыштуу нерселерди алып салыңыз.

#кошуу #кошуу "TeensyThreads.h"

// Берилген кабелди колдонуу:

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

туруксуз int liDARval = 0;

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

// Benewake TFmini үчүн маалымат форматы // ============================== // Ар бир билдирүүгө 9 байт: // 1) 0x59 // 2) 0x59 // 3) Dist_L (төмөн 8 бит) // 4) Dist_H (бийик 8bit) // 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 unsigned 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) сериялык киргизүүнү окуу үчүн жипти орнотуу; }

боштук цикл ()

{delay (10); // 100Hz Serial.println (liDARval) боюнча TFmini үлгүлөрү катары көп окууну каалабаңыз; }

3 -кадам: Arduino IDE кароо жыйынтыгын Сериалдык плоттерде колдонуу

Arduino IDE колдонуу натыйжаларын сериялык плоттерде көрүү
Arduino IDE колдонуу натыйжаларын сериялык плоттерде көрүү

Сиз каалаган методду колдонсоңуз болот, бирок Arduino IDE натыйжаларды жакшы пландаштырат.

Teensyге туташыңыз жана Serial Monitorду ачыңыз. Baudrate 115200гө коюлганын текшериңиз.

Сунушталууда: