Sisukord:

Benewake TFmini - odav LiDAR koos Teensy 3,5: 3 sammuga
Benewake TFmini - odav LiDAR koos Teensy 3,5: 3 sammuga

Video: Benewake TFmini - odav LiDAR koos Teensy 3,5: 3 sammuga

Video: Benewake TFmini - odav LiDAR koos Teensy 3,5: 3 sammuga
Video: Benewake TFmini-S — лазерный дальномер на 12 метров для Arduino и Raspberry. Железки Амперки 2024, Juuli
Anonim
Benewake TFmini - odav LiDAR koos Teensy 3.5
Benewake TFmini - odav LiDAR koos Teensy 3.5

Benewake TFmini LiDAR -seade on väike, väga kerge LiDAR -andur, mille hind on umbes 50 dollarit. Dokumentatsioon oli hea, kuid puudulik. See andis üksikasju andurilt andmete vastuvõtmise kohta, kuid unustas mainida signaali, mis on vajalik anduri vaikerežiimi viimiseks, et see andmeid tegelikult saadaks. Õnneks oli see silumisdokumendis.

Nii et see töötas minu jaoks ja see on tõesti lihtne seade.

Otsustasin kasutada Teensy 3.5, kuna sellel on mitu HW jadapordi, see on enam kui piisavalt kiire andmete vastuvõtmiseks ja töötlemiseks, laskmata andmetel kuhjuda. Lõbu pärast kasutasin Teensy Threading raamatukogu, et eraldada andmete hankimine ülejäänud koodist.

Samm: TFmini ühendamine Teensy 3.5 -ga (sarnane Arduino Mega jaoks)

TFmini ühendamine Teensy 3.5 -ga (sarnane Arduino Mega jaoks)
TFmini ühendamine Teensy 3.5 -ga (sarnane Arduino Mega jaoks)

See näide nõuab kahte jadaühendust: üks TFmini ja teine tulemuste kuvamiseks arvutis. Sel põhjusel ja nii palju kui ma võin öelda, ainult sel põhjusel, ei tööta see konkreetne näide Arduino Mega või Teensy 3.x allapoole.

See tähendab, et rakenduste puhul, mis ei vaja arvutiekraanile printimiseks jadaväljundit, peaks sama projekt olema kohandatav.

Kaasasoleva juhtmestiku kasutamine:

1) ühendage must juhe Teensy GND -ga (kui kasutate erinev VDC -allikat, veenduge, et ka maa läheb Teensy GND -le)

2) ühendage punane juhe Teensy Vini (või 5VDC allikaga)

3) ühendage valge traat (TFmini RX) Teensy (Serial1 TX) tihvtiga 1

4) ühendage roheline juhe (TFmini TX) Teensy (Serial RX) tihvtiga 0

Kaasasolevad juhtmestikud olid minu jaoks leivalaual töötamiseks liiga väikesed, nii et lõikasin TFmini vastas oleva otsa maha ja jootsin juhtmed leivaplaadile, lisasin vahelauale JST -pistiku ja tegin JST -i meestele juhtmestik.

Samm: käivitamiseks kood

Kasutage järgmist koodi (Teensy 3.5 jaoks) või laadige alla lisatud fail:

Arduino Mega puhul keermestamine tõenäoliselt ei tööta. Teisaldage kood readLiDAR -funktsioonist põhisilmusesse ja eemaldage kõik keermestamisega seotud asjad.

#include #include "TeensyThreads.h"

// Kaasasoleva kaabli abil:

// - must = GND (ühendatud GND -ga) // - punane = 5 V (4,5 - 6,0 V) (ühendatud Viniga Teensy 3,5 või 5 V Arduino puhul) // - valge = TFmini RX (aka ühendada mikrokontrolleriga TX, pin1 on Teensy 3.5) // - Roheline = TFmini TX (aka ühendada mikrokontrolleriga RX, pin0 Teensy 3.5 -ga) // MÄRKUS. Selle eskiisi jaoks on vaja mikrokontrollerit, millel on lisaks USB -kaabli külge ühendatud jadapordid / / See hõlmab Arduino MEGA (kasutage Serial1), Teensy (3.x) (kasutage ühte saadaolevatest HW jadaühendustest)

lenduv int liDARval = 0;

void readLiDAR () {

// Benewake TFmini andmevorming // ============================= // // kokku 9 baiti sõnumi kohta: // 1) 0x59 // 2) 0x59 // 3) Dist_L (madal 8bit) // 4) Dist_H (kõrge 8bit) // 5) Tugevus_L (madal 8bit) // 6) Tugevus_H (kõrge 8bit) // 7) Reserveeritud baidid // 8) Algse signaali kvaliteedi aste // 9) Kontrollsumma pariteedibitt (madal 8 -bitine), kontrollsumma = bait1 +bait2 +… +bait8. See on vaid madal 8bit, kuigi (1) {// Jätkake igavesti (Serial1.available ()> = 9) // Kui saadaval on vähemalt 9 baiti andmeid (eeldatav baitide arv 1 signaali kohta), siis loe {if ((0x59 == Serial1.read ()) && (0x59 == Serial1.read ())) // bait 1 ja bait 2 {unsigned int t1 = Serial1.read (); // bait 3 = Dist_L unsigned int t2 = Serial1.read (); // bait 4 = Dist_H t2 << = 8; t2 += t1; liDARval = t2; t1 = jada1.lugemine (); // bait 5 = tugevus_L t2 = jada1.lugemine (); // bait 6 = tugevus_H t2 << = 8; t2 += t1; jaoks (int i = 0; i <3; i ++) Serial1.read (); // baiti 7, 8, 9 eiratakse}}}}

tühine seadistus ()

{Seriaal1.algus (115200); // HW seeria TFmini Serial.begin (115200); // Sarjaväljund USB kaudu arvutisse viivitus (100); // Anna natuke aega asjade käivitamiseks // Määra standardväljundrežiim Serial1.write (0x42); Serial1.write (0x57); Serial1.write (0x02); Serial1.write (0x00); Serial1.write (0x00); Serial1.write (0x00); Serial1.write (0x01); Serial1.write (0x06); // Seadistusniit TFmini lõimede jadasisendi lugemiseks.addThread (readLiDAR); }

tühine tsükkel ()

{viivitus (10); // Ei taha lugeda liiga sageli TFmini näidistena 100Hz Serial.println (liDARval); }

Samm 3: Arduino IDE kasutamine Vaadake tulemusi jadaplaanis

Arduino IDE abil saate tulemusi jadaplotteris vaadata
Arduino IDE abil saate tulemusi jadaplotteris vaadata

Võite kasutada mis tahes soovitud meetodit, kuid Arduino IDE joonistab tulemused kenasti.

Ühendage Teensyga ja avage jadamonitor. Veenduge, et Baudrate oleks seatud väärtusele 115200.

Soovitan: