–
Mise à jour le 23/07/2019 : Documentation de chez Arobose Le télémètre laser (« laser range finder ») SF02/F de Lightware permet d’obtenir des mesures précises et rapides jusqu’à 40 m de distance, dans un environnement intérieur (indoor) ou extérieur (outdoor) .
Sommaire :
- Description du laser SF02
- Caractéristiques et spécificités
- Principe de fonctionnement
- 3 façons de connecter le télémètre laser le SF02 à l’Arduino.
- Exemple de programme Arduino sur le laser SF02
- Pour tout probléme
- Retour au menu tutoriel .
Description du laser SF02 |
Le laser utilisé SF02 est de la classe 1M, ce qui signifie qu’il est moins puissant que la plupart des pointeurs laser bon marché, qui sont la plupart du temps de classe 2. Le secret se trouve dans l’optique et l’électronique du récepteur, ce qui signifie que la puissance du laser est limitée à un niveau très bas.
C’est un produit idéal pour les drones, UAV (unmanned aerial vehicles), ou tout type de robots. Fonctionnant à partir d’une pile de 9 V ou 5 V CC régulée, le SF02 comprend une interface analogiques et une interfaces numériques et série qui peuvent être facilement connecté à un contrôleur embarqué ou une plate-forme de traitement standard tel que Arduino ® ou Raspberry Pi ®.
.
Caractéristiques et spécificités du laser SF02 |
- Distance de mesure : 0 à 40 m
- Résolution : 1 cm
- Fréquence d’acquisition : 12 lectures / seconde
- Précision : ±(0.1 + 1%) m
- Tension d’alimentation : 6.5 V à 9.0 V oo 5.0 V ± 0.5 V DC
- Courant nominal : 150 mA (maximum)
- Sorties et interfaces : Analogique, série et numérique
- Dimensions : 27 x 59 x 86 mm
- Poids : 69 g
- Fixation : 4 x M3 (3.2 mm diamètre)
- Connections : bornier à vis à pas de 2,54 mm
- Puissance Laser : 14 W (pic), 6 mW (moyenne), Classe 1M
- Température de fonctionnement : 0 à 40°C
- Accréditation : FDA: 1310953-000 (2013/12)
.
Principe de fonctionnement |
Chaque interface sur l’SF02 peut être configuré à l’aide d’un menu simple le logiciel est accessible par l’intermédiaire du port USB intégré. Le SF02 fonctionne en mesurant le temps qu’il faut pour un très court flash de lumière laser pour se rendre à un objet et revenir. la précision de la mesure n’est pas affectée par la couleur de la surface de l’objet ou de l’angle d’incidence du faisceau laser à l’surface. Le SF02 est pratiquement à l’abri de la lumière de fond, le vent, le bruit et autres perturbations de l’environnement. La plage de mesure maximale de la SF02 est de 40 mètres .Les lectures sont mis à jour 12 fois par seconde. Il ya une option pour lisser les mesures de distance, si une résolution plus élevée est requise
3 façons de connecter le télémètre laser le SF02 à l’Arduino : 1. Connexion de l’UART auxiliaire de la SF02 à un second port série de l’Arduino. 2. Raccordement de la sortie analogique de la SF02 à l’un des canaux de l’ADC de l’Arduino. 3. Raccordement de la sortie d’alarme du SF02 à une entrée numérique de l’Arduino.
La méthode que vous choisissez d’utiliser dépend du type de projet sur lequel vous travaillez. Pour plus de précision utiliser la connexion série . Pour une estimation de distance rapide en utilisant un minimum de code le signal analogique est le plus facile à utiliser. Si vous avez besoin d’un avertissement quand quelque chose se rapproche alors le signal d’alarme est parfaite pour ce travail.
Alimentation du Laser SF02 4 options possible
Option d’alimentation 1: USB
La première option consiste à alimenter l’appareil directement depuis le port USB d’un PC ou ordinateur portable. Ceci est particulièrement utile pour tester la SF02 avant qu’il ne soit installé sur votre système et aussi pour changer les paramètres de l’état de préparation pour l’application finale.
Option d’alimentation 2: Batterie
La deuxième option d’alimentation est de se connecter à une batterie avec une tension de 6,5 à 9 V entre les bornes 1 et 2 Dans cette configuration une puissance de sortie 4,7 V DC régulée devient disponible sur la borne s 3 et ce qui peut être utilisé par un circuit externe en tant que source de puissance régulée.
Option d’alimentation 3: Alimentation régulé
La troisième option d’alimentation est d’utiliser une alimentation 5 V régulé et connecté entre les bornes 2 et 3 Dans cette configuration le terminal 1 n’est pas utilisé.
ATTENTION: L’entrée d’alimentation +5 V sur le bornier 3 n’est pas protégée contre les inversions de polarité. Une destruction du laser se produirait.
Tension de sortie analogique
L’interface analogique de tension sur la borne 7 produit une tension linéaire comprise entre 0,0 V et 3,3 V, qui est proportionnelle à la distance mesurée. Les distances réelles des points d’extrémité 0,0 V et 3,3 V peuvent être ajusté par le système de menu. La tension peut être mesurée par l’unité de commande de la centrale en utilisant une conversion analogique-numérique du convertisseur (ADC) disponible. La tension est mise à jour 12 fois par seconde et possède une résolution de 10 bits.
Sortie d’alarme
La sortie d’alarme se trouve sur la borne 6 est un signal numérique qui devient actif quand un objet se trouve à moins d’une distance prédéterminée. La distance de l’alarme peut être réglée en utilisant le système de menu. L’alarme est active une tension de 3,3 V. Ce signal d’alarme peut être connecté à une broche du port numérique disponible sur le contrôleur hôte.
Port série auxiliaire
Le port série auxiliaire et présent sur la bornes 8 et 9 .Le signale de sorties présente une chaîne ASCII codé comme une représentation en virgule flottante de la distance mesuré. Le port série utilise comme tension 0 V / 3,3 V est conçu pour une connexion directe à un port série similaire sur le contrôleur hôte. La vitesse de transmission peut être sélectionnée en utilisant le système de menu.
L’interface USB
Le SF02 peut être connecté via le port USB à un programme d’émulation fonctionnant sur un PC. Lightware fournit un programme terminal disponible en téléchargement à partir de son site Web ci-joint le lien -> l’http://www.lightware.co.za/index.php/lib-docs! Une fois la connexion USB réalisé, la fenêtre du Terminal affiche la valeur de la distance du laser SF02. Appuyez sur la barre <ESPACE> le processus de mesure et modifie l’affichage à un menu qui répertorie tous les paramètres disponibles et les options de configuration. En appuyant de nouveau sur la barre <ESPACE> on redémarre la lecture du laser
.
Documentation de chez Lightware à télécharger
Retour au sommaire
Exemple de programme Arduino
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
//***************************************************************************** // Traduction par RedOhm //*************************************************************************** // ******************* Inclure les fichiers ********************************* // Cette bibliothèque est nécessaire pour créer le deuxième port série // de l’Arduino // bibliothèque originale Arduino SofwareSerial.h #include <SoftwareSerial.h> // ******************* Les définitions du système *************************** //Cette vitesse de transmission doit correspondre aux paramètres //de l’application de terminal #define terminal_baud_rate 115200 //***************** Définitions des broches de l’Arduino ******************** // Les définitions des broches peuvent être modifiés #define serial_port_rxd_pin 10 #define serial_port_txd_pin 11 #define analog_input_pin 0 #define alarm_input_pin 12 // ************************ définitions Paramètres SF02 ********************* //Les paramètres SF02 doivent être modifiés pour correspondre aux valeurs //entrées dans le Télémètre laser SF02/F #define sf02_select_the_uart_baud_rate 9600 #define sf02_set_the_0_0V_distance 0.0 #define sf02_set_the_3_3V_distance 33.00 //***************** Affectations des broches Arduino ************************ // Il faut définir les broches à utiliser pour le second port série SoftwareSerial sf02_serial(serial_port_rxd_pin, serial_port_txd_pin); // Définir la broche qui peut être utilisé pour l’entrée analogique de l’ADC int sf02_analog_pin = analog_input_pin; / / Définir la broche à utiliser pour l’entrée d’alarme int sf02_alarm_pin = alarm_input_pin //**************************** Variables ************************************ // Distance de lecture à travers le second port série float dist_meters_serial; //Distance calculée à partir de la mesure analogique float dist_meters_analog; //La valeur analogique brute float analog_voltage; //La variable d’alarme int alarm; //Ceux-ci sont utilisés pour chercher la chaîne de caractères ASCII de //le SF02 en utilisant le second port série char sf02_string[16], c; //Variables diverses int i, analog; float slope; //Un programme Arduino doit impérativement contenir cette fonction . //Elle ne sera exécuter une seule fois au démarrage du microcontroleur //Elle sert à configurer globalement les entrées sorties // etc… ( void setup ) void setup() { //Ouvrez le port série USB principal sur l’Arduino //prêt pour l’application du terminal Serial.begin(terminal_baud_rate); //Attendre que le port série ce connecte while (!Serial); //Ouvrez le second port série pour se connecter à la SF02 sf02_serial.begin(sf02_select_the_uart_baud_rate); //Préparer la broche d’entrée numérique pour l’alarme SF02 pinMode(sf02_alarm_pin, INPUT); //La valeur de la pente est utilisée ultérieurement //pour convertir la tension analogique en une distance slope = (sf02_set_the_3_3V_distance-sf02_set_the_0_0V_distance)/3.3; //Imprimer un message de test à la borne Arduino Serial.println(“\r\nSF02 interface test 01\r\n”); } // Le programme principal s’exécute par une boucle infinie appelée Loop () // Il est possible de définir d’autres fonctions void loop() { //Il s’agit d’un délai de 0,5 secondes pour fixer le taux //de mise à jour à environ deux lectures par seconde delay(500); //Lire l’UART auxiliaire de la SF02 en utilisant le second // port série de l’Arduino // Déclencher l’UART auxiliaire sur le SF02 sf02_serial.write(“d”); //Attendez jusqu’à ce que la mesure de distance suivante est prête while (!sf02_serial.available()); //Préparez-vous à lire le port série //i est un indexeur de la variable de stockage de chaîne i=0; //détient le dernier caractère ASCII de la SF02 c=0; //Lire la chaîne ASCII de la SF02 jusqu’à un caractère //de saut de ligne (\ n) est détecté while(c != 10) { //Attendez ici pour le caractère suivant while (!sf02_serial.available()); //Chercher le caractère et le stocker dans c c = sf02_serial.read(); //Ajouter le caractère de la chaîne existante de la SF02 sf02_string[i] = c; //Pointe à l’emplacement de stockage du caractère //suivant dans la chaine i++; //la chaîne a été capturé } //Créer une chaîne à zéro terminée et ensuite supprimer les \ r \ n caractères de fin sf02_string[i-2] = 0; //Convertir la chaîne ASCII de la SF02 dans un nombre à virgule flottante dist_meters_serial = atof(sf02_string); //*************************************************************************** //* Lire la sortie analogique telemetre SF02 via une entrée ADC de l'Arduino* //*************************************************************************** // //Lire la valeur ADC de la broche d'entrée analogique analog = analogRead(sf02_analog_pin); //Convert this into a voltage analog_voltage = analog * 0.0049: //Conversion de la tension dans une distance à l'aide des paramètres SF02 dist_meters_analog=analog_voltage*slope+sf02_set_the_0_0V_distance; //****************************************************************** //* lire la sortie d'alarme du SF02 * //****************************************************************** // //Lire l'alarme SF02 alarm = digitalRead(sf02_alarm_pin); //****************************************************************** //* Afficher les résultats sur le terminal * //****************************************************************** // //Imprimer les résultats sur le port série de l'arduino via le terminal Serial.print("Serial = ["); Serial.print(sf02_string); Serial.print("] "); Serial.print(dist_meters_serial, 2); //Imprimer les résultats analogiques Serial.print("m :: Analog = ["); Serial.print(analog_voltage); Serial.print("V] "); Serial.print(dist_meters_analog, 2); //Imprimer l'état d'alarme via le terminal Serial.print("m :: Alarm = ["); Serial.print(alarm); Serial.print("] "); if(alarm == 0) Serial.print("OFF\r\n"); else Serial.print("ON\r\n"); } // fin du programme |
.
Retour au sommaire
Pour tout probléme |
Pour tout probléme de téléchargement ou pour nous suivre sur les réseaux sociaux voici les plateformes sur lesquels nous éditons
.
Retour au sommaire