Robotique : Construction d'un robot suiveur de lumière

boule_bl.gifPrésentation

boule_bl.gifCe robot s'oriente en fonction de l'intensité de la lumière qu'il reçoit. On peut le diriger avec une lampe.
2 diodes Pin I.R. permettent de comparer l'intensité lumineuse.

boule_bl.gifIl posséde 2 capteurs d'obstacles. Un bip sonore est émis lorqu'un obstacle est touché et le robot procéde à une procédure d'évitement.

boule_bl.gifIl est propulsé par 2 servos modifiés à rotation continue .

robot synoptique

boule_bl.gifL'électronique

boule_bl.gifLe coeur du montage était basé sur un microcontrôleur AT90S2313 de ATMEL désormais obsolète et remplacé maintenant par un ATtiny2313 compatible broche à broche.

boule_bl.gifLa programmation se fait en ISCP par l'intermédiaire du connecteur K1.

boule_bl.gifL'alimentation utilise 6 accus de 1,25 v NI- MH, type R6.

boule_bl.gifCI1 assure l'alimentation en 5V pour le microcontrôleur. Les servos fonctionnent en 7,5V.

boule_bl.gifD3 et D4 indiquent d'où provient la lumière.

boule_bl.gifS1 et S2 sont les 2 microswitchs détectant les obstacles.

boule_bl.gifLes servos modifiés peuvent être commandés sur le site de Robotshop .

boule_bl.gif

La construction

boule_bl.gifLe circuit étant peu complexe j'ai utilisé une plaquette d'expérimentation à trous pastillés.

boule_bl.gifLes diodes pin sont à placer vers l'avant et il faut prévoir une cloison pour bien séparer les 2 capteurs de lumière.

boule_bl.gifLe châssis est réalisé en PVC expansé 3 mm, les 2 côtés sont pliés et possédent des ouvertures pour laisser passer les servos .

boule_bl.gifLes servos sont fixés par des colliers de serrage pour câbles électriques.

boule_bl.gifEn dessous du châssis se placent les 2 microswitchs et les 2 servos.

boule_bl.gifUne roulette à bille permet la rotation aisée du robot.

boule_bl.gifLe coupleur de piles peut se placer sous le circuit. Il faut prévoir des entretoises assez longues.

boule_bl.gifSur les microswitchs, on peut coller une plaque métallique pour prolonger la lamelle.

boule_bl.gif La programmation

boule_bl.gifLa programmation se fait en basic avec le logiciel BASCOM AVR (version d'évaluation). Le fichier HEX n'occupe que 2 Ko. ce logiciel est disponible sur le site de MCS electronics.

boule_bl.gifLe microcontrôleur se programme aisément en Icsp, j'utilise un programmateur USB pour AVR de Mikroelectronika, voir la page de programmation.

boule_bl.gifLe programme utilise l'entrée de comparaison PB1 et règle le registre. Les servos sont mis en rotation avec 2 vitesses différentes en fonction de la source de lumière. Le robot avance en louvoyant. Si un interrupteur est actionné ( obstacle ), le programme exécute une routine d'évitement.

   
' Robot chercheur de lumière
' JMD 19/01/2026

$regfile = "2313DEF.dat"
Dim T As Integer

Ddrb.0 = 0                                                  'Comparateur Diode Pin
Ddrb.1 = 0                                                  'Comparateur référence
Ddrb.2 = 1                                                  'Led 1
Ddrb.3 = 1
Ddrb.4 = 1                                                  'Led 2
Ddrd.0 = 1                                                  'Servo 1
Ddrd.1 = 1                                                  'Servo 2
Ddrd.4 = 0                                                  'Inter 1
Ddrd.5 = 0                                                  'Inter 2


For T = 0 To 4
   Portb.2 = 0
   Portb.3 = 1
Waitms 300
   Portb.3 = 0
   Portb.2 = 1
   Sound Portb.4 , 50 , 4000
Waitms 300
Next T

Config Servos = 2 , Servo1 = Portd.0 , Servo2 = Portd.1 , Reload = 10

Enable Interrupts
$crystal = 8000000
Portd.4 = 1
Portd.5 = 1


' Servo (1) = 80, Servo(2)=170 Marche avant
Do
   If Pind.5 = 0 Then Gosub Retourd
   If Pind.4 = 0 Then Gosub Retourg

   If Acsr.5 = 1 Then                                       ' Bit 5 Registre  comparateur
      Servo(1) = 80
      Servo(2) = 170
      Portb.2 = 1
      Portb.3 = 0
      Waitms 50
      Servo(1) = 170
      Servo(2) = 170
      Waitms 20

   Else
      Servo(1) = 80
      Servo(2) = 170
      Portb.2 = 0
      Portb.3 = 1
      Waitms 50
      Servo(2) = 80
      Servo(1) = 80
      Waitms 20


   End If
Loop

Retourd:
   Servo(1) = 170
   Servo(2) = 80
   Sound Portb.4 , 100 , 250
   Waitms 300
   Servo(1) = 80
   Portb.2 = 1
   Portb.3 = 0
   Waitms 250
Return

Retourg:
   Servo(1) = 170
   Servo(2) = 80
   Sound Portb.4 , 100 , 250
   Waitms 300
   Servo(2) = 170
   Portb.2 = 1
   Portb.3 = 0
   Waitms 250
Return
		  

boule_bl.gifLes fichiers à télécharger

Dossier de réalisation en PDF, programme Bascom et fichier.hex
Le robot suiveur de lumière

Pour la programmation il faut télécharger le fichier .hex et utiliser un programmateur AVR comme expliqué sur cette page.