Inhoudsopgave:
- Stap 1: TFmini aansluiten op Teensy 3.5 (vergelijkbaar met Arduino Mega)
- Stap 2: Code om het uit te voeren
- Stap 3: Arduino IDE gebruiken Bekijk resultaten in seriële plotter
Video: Benewake TFmini - Goedkope LiDAR met Teensy 3.5 - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
De Benewake TFmini LiDAR-eenheid is een kleine, zeer lichtgewicht LiDAR-sensor voor ongeveer $ 50 Canadees. Documentatie was goed, maar onvolledig. Het gaf details over het ontvangen van gegevens van de sensor, maar vergat het signaal te vermelden dat nodig is om de sensor in de standaardmodus te zetten, zodat deze de gegevens daadwerkelijk verzendt. Gelukkig stond dat in het foutopsporingsdocument.
Dus dit is wat voor mij werkte, en het is echt een gemakkelijk apparaat om mee te werken.
Ik koos ervoor om een Teensy 3.5 te gebruiken omdat deze meerdere HW seriële poorten heeft, hij is meer dan snel genoeg om gegevens te ontvangen en te verwerken zonder dat de gegevens zich opstapelen. Gewoon voor de lol gebruikte ik de Teensy Threading-bibliotheek om het ophalen van de gegevens van de rest van de code te scheiden.
Stap 1: TFmini aansluiten op Teensy 3.5 (vergelijkbaar met Arduino Mega)
Dit voorbeeld vereist twee seriële verbindingen: één naar de TFmini en één om resultaten op uw computer weer te geven. Om deze reden, en voor zover ik weet, alleen om deze reden, werkt dit specifieke voorbeeld niet op iets onder een Arduino Mega of Teensy 3.x.
Dat gezegd hebbende, voor toepassingen die geen seriële uitvoer nodig hebben om naar een computerscherm te printen, zou hetzelfde project aanpasbaar moeten zijn.
Bij gebruik van de meegeleverde kabelboom:
1) sluit zwarte draad aan op Teensy GND (als u een verschil-VDC-bron gebruikt, zorg er dan voor dat aarde ook naar GND gaat op Teensy)
2) sluit rode draad aan op Teensy Vin (of 5VDC-bron)
3) sluit de witte draad (TFmini RX) aan op pin 1 op Teensy (Serial1 TX)
4) sluit de groene draad (TFmini TX) aan op pin 0 op Teensy (Serial RX)
De meegeleverde kabelboom was te klein voor mij om op een breadboard te werken, dus ik sneed het uiteinde tegenover de TFmini af en soldeerde de draden aan een breadboard, voegde een JST-connector toe aan het breakboard en maakte een JST naar mannelijke jumper kabelboom.
Stap 2: Code om het uit te voeren
Gebruik de volgende code (voor Teensy 3.5) of download het bijgevoegde bestand:
Voor Arduino Mega zal threading waarschijnlijk niet werken. Verplaats code van de readLiDAR-functie naar de hoofdlus en verwijder alles wat met threading te maken heeft.
#include #include "TeensyThreads.h"
// Met meegeleverde kabel:
// - Zwart = GND (verbonden met GND) // - Rood = 5V (4,5 - 6,0 V) (verbonden met Vin op Teensy 3,5 of 5V op Arduino) // - Wit = TFmini RX (ook bekend als verbinding met microcontroller TX, pin1 op Teensy 3.5) // - Groen = TFmini TX (ook bekend als aansluiten op microcontroller RX, pin0 op Teensy 3.5) // OPMERKING: voor deze schets heb je een microcontroller nodig met extra seriële poorten naast de poort die is aangesloten op de USB-kabel / / Dit omvat Arduino MEGA (gebruik Serial1), Teensy (3.x) (gebruik een van de beschikbare HW Serial-verbindingen)
vluchtig int liDARval = 0;
ongeldig leesLiDAR(){
// Gegevensformaat voor Benewake TFmini // =============================== // 9 bytes totaal per bericht: // 1) 0x59 // 2) 0x59 // 3) Dist_L (lage 8bit) // 4) Dist_H (hoge 8bit) // 5) Strength_L (lage 8bit) // 6) Strength_H (hoge 8bit) // 7) Gereserveerde bytes // 8) Oorspronkelijke signaalkwaliteitsgraad // 9) Checksum-pariteitsbit (lage 8bit), Checksum = Byte1 + Byte2 +…+Byte8. Dit is echter maar een lage 8bit while(1){ // Blijf voor altijd doorgaan (Serial1.available()>=9) // Als er ten minste 9 bytes aan gegevens beschikbaar zijn (verwacht aantal bytes voor 1 signaal), dan read {if((0x59 == Serial1.read()) && (0x59 == Serial1.read())) // byte 1 en 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 = Serie1.lezen(); // byte 5 = Strength_L t2 = Serial1.read (); // byte 6 = Strength_H t2 <<= 8; t2 += t1; for(int i=0; i<3; i++)Serial1.read(); // byte 7, 8, 9 worden genegeerd } } } }
ongeldige setup()
{ Serie1.begin(115200); // HW-serie voor TFmini Serial.begin (115200); // Seriële uitvoer via USB naar computervertraging (100); // Geef wat tijd om te starten // Stel in op standaarduitvoermodus Serial1.write (0x42); Serieel1.schrijven (0x57); Serieel1.schrijven (0x02); Serieel1.schrijven (0x00); Serieel1.schrijven (0x00); Serieel1.schrijven (0x00); Serieel1.schrijven (0x01); Serieel1.schrijven (0x06); // Setup-thread voor het lezen van seriële invoer van TFmini-threads.addThread (readLiDAR); }
lege lus()
{ vertraging(10); // Ik wil niet te vaak lezen als TFmini-samples op 100Hz Serial.println(liDARval); }
Stap 3: Arduino IDE gebruiken Bekijk resultaten in seriële plotter
Je kunt elke methode gebruiken die je wilt, maar Arduino's IDE zal de resultaten mooi plotten.
Maak verbinding met de Teensy en open de seriële monitor. Zorg ervoor dat de baudrate is ingesteld op 115200.
Aanbevolen:
Een Teensy gebruiken om foto's af te drukken op Splatoon 2 met behulp van de SplatPost-printer: 10 stappen
Een Teensy gebruiken om foto's af te drukken op Splatoon 2 met behulp van de SplatPost-printer: In deze Instructable laat ik zien hoe u de SplatPost-printer van ShinyQuagsire gebruikt. Zonder duidelijke instructies zou iemand die geen ervaring heeft met de commandoregel een beetje moeite hebben. Mijn doel is om de stappen naar de poi te vereenvoudigen
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Maak een Lidar-geleide robot met de GiggleBot: 8 stappen
Maak een door Lidar geleide robot met de GiggleBot: In deze tutorial laten we de GiggleBot de moeilijkheden van een doolhof aanpakken. We monteren een servo op de GiggleBot waarop we een afstandssensor bevestigen. Tijdens het draaien gaat de servo heen en weer draaien zodat de afstandssensor
TFMini Lidar-display - zoals radar alleen met licht!:-): 3 stappen
TFMini Lidar Display - Like Radar Only With Light!:-): Er zijn een aantal dingen die samenkwamen om dit te laten werken, maar de grootste (en wat me inspireerde om het te doen) is het "Arduino Radar Project" gevonden op howtomechatronics.com door Dejan Nedelkovski (datum onbekend). https://howtomechatronics
Benewake LiDAR TFmini (volledige gids): 5 stappen (met afbeeldingen)
Benewake LiDAR TFmini (complete gids): BeschrijvingDe Benewake TFMINI Micro LIDAR-module heeft zijn unieke optische, structurele en elektronische ontwerpen. Het product heeft drie grote voordelen: lage kosten, klein volume en laag stroomverbruik. Het ingebouwde algoritme aangepast aan binnen- en