Développeur>Tutoriels>Les capteurs de proximité

Dans ce tutorial vous allez apprendre à utiliser les capteurs de proximité du robot MRPi1. Ainsi vous pourrez  gérer les obstacles pendant le déplacement du robot.

Les capteurs de proximité

Le robot MRPi1 est équipé de six capteurs de proximité, ils sont situés à l’avant. Ces capteurs infrarouges à sortie analogique, fonctionnent selon le principe de la triangularisation.

tcrt1000

Voici le placement des six capteurs de la carte de contrôle du robot :

chassis

Lire un capteur

  • Lancez l’interpréteur python :
$ python

img1_led

  • importez la libraire mrpi1_lib :
>>> from mrpi1_lib import *
  • lire la valeur du capteur n°1:
>>> prox1 = proxSensor(1)
>>> print prox1

La valeur de retour est une valeur comprise entre 0 et 4095.

img2

Lire les capteurs

  • Ensuite, quittez l’interpréteur python afin de créer un script :
>>> exit() 

La commande exit() permet de quitter l’interpréteur python.

  • Vous pouvez créer un script  python avec l’éditeur de votre choix, pour ma part j’utilise Notepad++ et ensuite je transfert le fichier sur la Raspberry pi via le logiciel FileZilla.
  • Voici un petit script python pour lire les capteurs de proximité :

Nom du script : prox1.py

#!/usr/bin/python
from mrpi1_lib import *
import time

# boucle infini
while 1:
  p1 = proxSensor(1)
  p2 = proxSensor(2)
  p3 = proxSensor(3)
  p4 = proxSensor(4)
  p5 = proxSensor(5)
  p6 = proxSensor(6)

  # afficher les valeurs
  print "%d %d %d %d %d %d" %(p1,p2,p3,p4,p5,p6)

  time.sleep(1)

Algorithme du programme :

algo1

Ce programme permet de lire tous les capteurs de proximité du robot MRPi1.

Gestion des obstacles

Dans cette partie nous allons voir comment utiliser les capteurs de proximité pour gérer un obstacle placer devant le robot.

  • Voici un petit script python pour lire les capteurs de proximité :

Nom du script : prox2.py

#!/usr/bin/python
from mrpi1_lib import *
import time

# seuil de la detection obstacle
seuil = 300

while 1:
  p3 = proxSensor(3)
  p4 = proxSensor(4)
  print "%d %d " %(p3,p4)

  if ((p3 > seuil) or (p4 > seuil)):
    stop() # arreter le robot
  else:
    forward(30) # avancer le robot

  time.sleep(0.2)

Ce programme permet de faire avancer le robot quand il n’y a pas d’obstacles devant lui. Les capteurs n+3 et n°4 sont utilisés afin de détecter un obstacle devant le robot.

algo2

Voilà, maintenant vous savez utiliser les capteurs de proximité du robot MRPi1.