Un télémètre optique USB

Un télémètre optique USB

En nous promenant sur internet, nous sommes tombés sur un petit capteur analogique sympathique: un capteur de distance optique fabriqué par Sharp. Les spécialistes de robotique le connaissent bien, c'est le capteur le plus répandu pour détecter les obstacles. Or, nous n'offrons pour l'instant pas dans notre assortiment de capteur de distance (télémètre). Nous allons donc vous montrer, en guise d'exemple, comment vous pourriez déjà interfacer aujourd'hui des capteurs analogiques de ce type grâce à un module Yoctopuce.

Ce petit capteur à infra-rouge est composé de deux parties: un émetteur de lumière d'infra-rouge à LED, et un récepteur qui mesure la réflexion. La subtilité de ce modèle est qu'il est capable d'opérer automatiquement une triangulation pour déterminer la distance de l'obstacle, plutôt que de mesurer simplement la réflexion, dont l'intensité varierait trop en fonction de le couleur de l'obstacle pour pouvoir en déduire une distance.

 télémètre optique 20-150cm (Sharp GP2Y0A02YK0F)
télémètre optique 20-150cm (Sharp GP2Y0A02YK0F)



Le capteur a besoin d'être alimenté en 5V, et retourne sur le 3e fil une tension inversement proportionnelle à la distance de l'obstacle. Pour cet exemple, nous allons donc utiliser un Yocto-Volt, notre voltmètre très polyvalent. En utilisant les contacts sur le Yocto-Volt (derrière le connecteur Micro-USB), on dérive directement du bus USB la source de 5V nécessaire à faire marcher le capteur, on met le 3e fil à mesurer dans le bornier prévu pour, et le matériel est prêt: nous avons fabriqué un minuscule télémètre USB.

Reste à calculer la distance. Le capteur existe en trois variantes, selon la l'intervalle de mesure couvert:
- 4cm à 40 cm (modèle GP2Y0A41SK0F)
- 10cm à 80cm (modèle GP2Y0A21YK0F)
- 20cm à 150cm (modèle GP2Y0A02YK0F)
Vous trouverez ces trois modèkes en stock sur le site de Farnell (ou Pololu) par exemple, pour une dizaine d'Euros environ, ce qui en fait un capteur très bon marché pour une mesure de distance.

Pour notre petit exemple, nous avons choisi le modèle portant jusqu'à 1m50. Selon la fiche de spécification du capteur, on obtient la distance (en centimètres) en divisant 60 par la tension sur la sortie de mesure du capteur. Par exemple, si la tension est 1V, l'obstacle est à 60cm. Si la tension est 2V, l'obstacle est à 30cm. Voici donc le code Python d'un télémètre fait avec un module Yoctopuce:

dcVoltageSensor= YVoltage.FindVoltage('.voltage1')
if not(dcVoltageSensor.isOnline()):
    sys.exit('No Yocto-Volt found (check USB cable)')

while True:
    voltage = dcVoltageSensor.get_currentValue()
    if voltage <= 0:
        voltage = 0.001
    distanceInCm = 60 / voltage;
    print("Distance: %3.2f cm   (%3.2f V) " % (distanceInCm,voltage))
    YAPI.Sleep(500);



Et voilà, c'est tout ! Il ne reste plus qu'à en faire quelque chose d'un peu utile. Par exemple on peut équiper un garage d'une balise lumineuse signalant le moment où le véhicule s'approche du mur.

On peut utiliser ce montage comme aide au parking
On peut utiliser ce montage comme aide au parking



Pour cela, nous ajoutons une Yocto-PowerLed, et quelques lignes de code pour changer la couleur de la LED et la faire flasher, selon la distance. Voilà le résultat en vidéo:

  



Le code complet avec la gestion de la PowerLed est disponible ici. Si cela vous intéresse, ne traînez pas trop pour acheter votre capteur de distance: Sharp a décidé de stopper leur fabrication. Si vous avez du temps ou si vous cherchez une solution permettant des mesures plus longues ou plus précises, contactez-nous: nous réfléchissons actuellement à fournir un module télémètre, un plus professionnel que le bricolage de cette semaine. A suivre...

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.