Table des matières:
- Étape 1: connexion de TFmini à Teensy 3.5 (similaire à Arduino Mega)
- Étape 2: Codez pour l'exécuter
- Étape 3: Utilisation d'Arduino IDE Afficher les résultats dans le traceur série
Vidéo: Benewake TFmini - LiDAR bon marché avec Teensy 3.5 : 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
L'unité LiDAR Benewake TFmini est un petit capteur LiDAR très léger pour environ 50 $ canadiens. La documentation était bonne, mais incomplète. Il a fourni des détails sur la réception des données du capteur, mais a oublié de mentionner le signal nécessaire pour mettre le capteur en mode par défaut afin qu'il envoie réellement les données. Heureusement, c'était dans le document de débogage.
C'est donc ce qui a fonctionné pour moi, et c'est vraiment un appareil facile à utiliser.
J'ai choisi d'utiliser un Teensy 3.5 car il possède plusieurs ports série HW, il est plus que suffisamment rapide pour recevoir des données et les traiter sans laisser les données s'accumuler. Juste pour le plaisir, j'ai utilisé la bibliothèque Teensy Threading pour séparer l'obtention des données du reste du code.
Étape 1: connexion de TFmini à Teensy 3.5 (similaire à Arduino Mega)
Cet exemple nécessite deux connexions série: une vers le TFmini et une pour afficher les résultats sur votre ordinateur. Pour cette raison, et pour autant que je sache, cette raison seulement, cet exemple particulier ne fonctionnera sur rien en dessous d'un Arduino Mega ou Teensy 3.x.
Cela étant dit, pour les applications ne nécessitant pas de sortie série pour imprimer sur un écran d'ordinateur, le même projet doit être adaptable.
Utilisation du faisceau de câbles inclus:
1) connectez le fil noir à Teensy GND (si vous utilisez une source de différence VDC, assurez-vous que la terre va également à GND sur Teensy)
2) connectez le fil rouge à Teensy Vin (ou source 5VDC)
3) connectez le fil blanc (TFmini RX) à la broche 1 sur Teensy (Serial1 TX)
4) connectez le fil vert (TFmini TX) à la broche 0 sur Teensy (Serial RX)
Le faisceau de câbles inclus était trop petit pour que je puisse travailler avec une planche à pain, j'ai donc coupé l'extrémité opposée au TFmini et soudé les fils à une planche à pain, ajouté un connecteur JST au panneau de rupture et fait un cavalier JST vers mâle faisceau de câbles.
Étape 2: Codez pour l'exécuter
Utilisez le code suivant (pour Teensy 3.5) ou téléchargez le fichier joint:
Pour Arduino Mega, le threading ne fonctionnera probablement pas. Déplacez le code de la fonction readLiDAR vers la boucle principale et supprimez tout ce qui concerne le threading.
#include #include "TeensyThreads.h"
// Utilisation du câble fourni:
// - Noir = GND (connecté à GND) // - Rouge = 5V (4,5 - 6,0V) (connecté à Vin sur Teensy 3.5, ou 5V sur Arduino) // - Blanc = TFmini RX (alias connecter au microcontrôleur TX, pin1 sur Teensy 3.5) // - Vert = TFmini TX (alias connecter au microcontrôleur RX, pin0 sur Teensy 3.5) // REMARQUE: pour ce croquis, vous avez besoin d'un microcontrôleur avec des ports série supplémentaires au-delà de celui connecté au câble USB / / Cela inclut Arduino MEGA (utilisez Serial1), Teensy (3.x) (utilisez l'une des connexions série HW disponibles)
int volatile liDARval = 0;
void readLiDAR(){
// Format de données pour Benewake TFmini // =============================== // 9 octets au total par message: // 1) 0x59 // 2) 0x59 // 3) Dist_L (bas 8 bits) // 4) Dist_H (haut 8 bits) // 5) Strength_L (bas 8 bits) // 6) Strength_H (haut 8 bits) // 7) Octets réservés // 8) Degré de qualité du signal d'origine // 9) Bit de parité de somme de contrôle (faible 8 bits), somme de contrôle = octet1 + octet2 +…+octet8. Ce n'est qu'un faible 8 bits cependant while(1){ // Continuez pour toujours while(Serial1.available()>=9) // Lorsqu'au moins 9 octets de données sont disponibles (nombre d'octets attendu pour 1 signal), alors read { if((0x59 == Serial1.read()) && (0x59 == Serial1.read())) // octet 1 et octet 2 { unsigned int t1 = Serial1.read(); // octet 3 = Dist_L unsigned int t2 = Serial1.read(); // octet 4 = Dist_H t2 <<= 8; t2 += t1; liDARval = t2; t1 = Serial1.read(); // octet 5 = Strength_L t2 = Serial1.read(); // octet 6 = Strength_H t2 <<= 8; t2 += t1; for(int i=0; i<3; i++)Serial1.read(); // les octets 7, 8, 9 sont ignorés } } } }
void setup()
{ Serial1.begin(115200); // HW Serial pour TFmini Serial.begin (115200); // Sortie série via USB vers délai d'ordinateur (100); // Donnez un peu de temps pour que les choses démarrent // Réglez sur le mode de sortie standard Serial1.write(0x42); Serial1.write (0x57); Serial1.write(0x02); Serial1.write(0x00); Serial1.write(0x00); Serial1.write(0x00); Serial1.write(0x01); Serial1.write(0x06); // Configuration du thread pour lire l'entrée série de TFmini threads.addThread(readLiDAR); }
boucle vide()
{ délai(10); // Je ne veux pas lire trop souvent des échantillons TFmini à 100 Hz Serial.println(liDARval); }
Étape 3: Utilisation d'Arduino IDE Afficher les résultats dans le traceur série
Vous pouvez utiliser la méthode de votre choix, mais l'IDE d'Arduino tracera bien les résultats.
Connectez-vous au Teensy et ouvrez Serial Monitor. Assurez-vous que le débit en bauds est défini sur 115 200.
Conseillé:
Modifier un microphone à condensateur LDC bon marché : 7 étapes (avec photos)
Modifier un microphone à condensateur LDC bon marché : Je suis un gars de l'audio depuis longtemps et un bricoleur passionné. Ce qui signifie que mes types de projets préférés sont liés à l'audio. Je suis également convaincu que pour qu'un projet de bricolage soit cool, il doit y avoir l'un des deux résultats pour que le projet en vaille la peine
Four de refusion CMS automatique à partir d'un four grille-pain bon marché : 8 étapes (avec photos)
Four de refusion CMS automatique à partir d'un four grille-pain bon marché : La fabrication de circuits imprimés par les amateurs est devenue beaucoup plus accessible. Les circuits imprimés qui contiennent uniquement des composants traversants sont faciles à souder, mais la taille de la carte est finalement limitée par la taille du composant. En tant que tel, l'utilisation de composants à montage en surface permet
Domotique bon marché et efficace avec Raspberry Pi : 11 étapes (avec photos)
Domotique bon marché et efficace avec Raspberry Pi : J'ai toujours voulu pouvoir contrôler les lumières sans fil, mais les options commerciales sont généralement chères. Les lampes Philips Hue coûtent environ 70 $, et les lampes connectées WiFi sont également chères. Ce tutoriel vous expliquera comment contrôler jusqu'à cinq lumières/l
CARTE ROBOT PICAXE BON MARCHÉ ET FACILE AVEC CÂBLE SÉRIE : 12 étapes (avec photos)
CARTE ROBOT PICAXE BON MARCHÉ ET FACILE AVEC CÂBLE SÉRIE : Voici les instructions sur la façon de construire une CARTE PICAXE facile, simple et bon marché pour contrôler un ROBOT SUMO ou à utiliser sur un certain nombre d'autres projets PICAXE 18M2+
Caméra de casque contrôlée par PIC bon marché utilisant Sony LANC (bon pour les sports extrêmes): 4 étapes
Caméra de casque contrôlée par PIC bon marché utilisant Sony LANC (bon pour les sports extrêmes): Ce Instructable vous montrera comment faire une caméra de casque bon marché qui peut être contrôlée via une télécommande afin que votre caméra principale puisse rester en toute sécurité dans votre sac à dos. Le contrôleur peut être attaché à l'une des bretelles de votre sac à dos, et wi