|
Piloter la Base
Robot 5AA-KT via le Réseau. -Montage électrique :
 Bornier pour le 12V, le
5V et la Masse et condensateur pour les parasites dus aux servos moteurs
Schéma électronique correspondant:


-Pilotage en mode autonome:
Description:
La base évolue dans un environnement sans aucune commandes de la part de l'ordinateur et
évite automatiquement les obstacles grâce aux capteurs infrarouges montés sur le control boy.
Démarche:
1- Détermination des commandes à
envoyer aux servos moteurs pour les différent mouvements.
Nous avons d'abord travaillé sur la fonction avancer. Les deux moteurs étant
inversés l'un par rapport à l'autre il faut donc les faire tourner dans le
sens opposé. Un servo moteur normal fonctionne de manière à se positionner à
un certain angle déterminé par la largeur de l'impulsion envoyé. Le servo
moteur contient un potentiomètre qui indique en permanence au servo moteur à
quel angle il se trouve.
Nous avons modifié nos servos moteurs en supprimant un ergot qui empeche les servos moteurs d'effectuer des tours complet.Le potentiomètre a était retirer du servo moteur afin que le servo moteur "crois" toujours qu'il est à une position d'angle zéro.
Ainsi, en envoyant une impulsion de largeur variable le servo moteur
tournera dans un sens ou dans l'autre de manière continue tant que les
impulsions seront envoyées.

Schéma des impulsions à envoyées aux servos moteurs pour les differents sens de rotation.
Nous avons programmés une routine Delay2 qui jouera le
rôle d'une temporisation.
Cette routine a été étalonnée à l'aide d'un oscilloscope afin de
déterminer un temps précis, une unité correspondant à 0,15ms..
Ex: Delay2(1) dure 0.15ms. Donc pour le sens 1 il faut mettre
Delay2(2)=0.30ms.
Attention ! Les valeurs passés en paramètre a la
fonction Delai2 ne correspondent pas aux valeur en millisecondes.
function delai2(t1)
for t = 1 to t1
for t2 = 1 to 9
next t2
next t
end function
2- Mise en place de séquence
préprogrammées. (avancer, reculer, tourner à droite à gauche)
A partir de ces mesures, nous avons programmé des sous routines pour les
fonctions de base, tel que avancer, reculer, tourner à gauche et tourner à droite.
Commande: Avancer.
avance:
PORTA.4=1 ' ROUE GAUCHE
PORTA.5=1 ' ROUE DROITE
delai2(2) ' ROUE GAUCHE (AVANCE)
PORTA.4=0 ' DÉSACTIVE LA ROUE GAUCHE
delai2(10) ' CONTINUE AVEC LA ROUE DROITE (AVANCE)
PORTA.5=0 ' DÉSACTIVE LA ROUE DROITE
delai2(80) ' ATTENTE
return

Commande: Reculer.
recule:
PORTA.4=1 ' ROUE GAUCHE
PORTA.5=1 ' ROUE DROITE
delai2(2) ' ROUE DROITE (RECULE) [temps plus court]
PORTA.5=0 ' DESACTIVE LA ROUE DROITE
delai2(10) ' CONTINUE AVEC LA ROUE GAUCHE (RECULE) [temps plus long]
PORTA.4=0 ' DESACTIVE LA ROUE GAUCHE
delai2(80) ' ATTENTE
return

Commande: Gauche.
gauche:
PORTA.4=1 ' ROUE GAUCHE
PORTA.5=1 ' ROUE DROITE
delai2(10) ' ROUE GAUCHE (RECULE) ROUE DROITE (AVANCE)
PORTA.4=0 ' DESACTIVE LA ROUE GAUCHE
PORTA.5=0 ' DESACTIVE LA ROUE DROITE
delai2(80) ' ATTENTE
return

Commande: Droite
droite:
PORTA.4=1 ' ROUE GAUCHE
PORTA.5=1 ' ROUE DROITE
delai2(2) ' ROUE GAUCHE (AVANCE) ROUE DROITE (RECULE)
PORTA.4=0 ' DESACTIVE LA ROUE GAUCHE
PORTA.5=0 ' DESACTIVE LA ROUE DROITE
delai2(80) ' ATTENTE
return

3- Détection
et contournement des obstacles via l'infrarouge.
La détection des obstacles
s'effectue grâce au 2 capteurs infrarouge inclus sur la carte
microcontrôleur.
Si un obstacle est détecté à droite ou a gauche du robot, une routine
spécifique de contournement est déclanché pour contourner l'obstacle.

Partie de la Routine de détection et de contournement
d'obstacle:
if irr>IRRLIMIT and irl>IRLLIMIT
then ' Si obstacle détecté
print"#0 Obstacle !!!" ' Informe l'utilisateur
tictac = 1000 ' durée de la marche arrière
do
gosub recule ' Appel de la routine de marche arrière
loop while tictac > 0 ' jusqu'a que la durée soit terminée
tictac = 875 ' durée de la rotation à droite pour
tourner de 90°
do
gosub droite ' Appel de la routine de rotation à droite
loop while tictac > 0 ' jusqu'a que la durée soit terminée
print "#0 AVANCE" ' Informe l'utilisateur de la reprise du cycle
normal
end if
-Pilotage par ordinateur
via le port parallèle:
Description:
La Base attend les ordres de l'ordinateur. L'utilisateur contrôle la Base par l'intermédiaire de l'ordinateur avec les
flèches du clavier ou le joystick.
Protocole de Communication utilisé:
L'envoi des informations à la base s'effectue par le port parallèle du PC sur 4 fils de commandes, soit 2^4=16 commandes possibles.
Le programme de contrôle n'en utilise que 9.
- 4 de commandes: Connexion Base, Déconnexion, Contrôle par ordinateur, contrôle
autonome.
- 5 de contrôle: Avance, Recule, Droite, Gauche, Stop.

Prise Parallèle branché au PC.
La base récupère les différents signaux sur différent bits du port E:
- le bit 1 correspondant au bit 0 du signal: D0 sur le port parallèle du PC
- le bit 3 correspondant au bit 1 du signal: D1 sur le port parallèle du PC
- le bit 4 correspondant au bit 2 du signal: D2 sur le port parallèle du PC
- le bit 5 correspondant au bit 3 du signal: D3 sur le port parallèle du PC

Les fils du port parallèle PC branchés sur les différentes entrées
du Port E de la Base.
La Base lit en boucle les différents bits du port E et recompose le signal d'origine
envoyé par le port
parallèle grâce à une petite routine de conversion Binaire >> Décimal sur 4 bits.
Routine:
decodevalue:
value=0
if PORTE.1=1 then
value=value+1
end if
if PORTE.3=1 then
value=value+2
end if
if PORTE.4=1 then
value=value+4
end if
if PORTE.5=1 then
value=value+8
end if
return
La Base effectue en suite la commande approprié suivant le signal reçu.
-Pilotage du programme de contrôle du robot via le
réseau
Description:
L'utilisateur contrôle la Base grâce à l'ordinateur Client qui envoi
chacun des ordres à l'ordinateur serveur par l'intermédiaire du Réseau.
L'ordinateur serveur reçois les commandes de l'ordinateur client et les envois
à la Base par le port
parallèle.
Le programme est constitué d'un mini programme de discussion pour dialoguer entre le serveur et le client.
Programme de contrôle
PC:

L'interface de contrôle PC a été programmé en langage de programmation Delphi 5 version Professionnel.
Le programme utilise la technologie DirectX pour la gestion Clavier et
Graphique, et les composants NetMaster pour la communication Réseau.
Les commandes de deplacement par bouton (voir photo) on été rajouté suite
à des problèmes de clavier sur certain ordinateur ne possédant pas
DirectX.
Vue d'ensemble de la base finale.

Télécharger le
programme de contrôle PC.
Télécharger le
programme de la Base en Basic11 pour le Control Boy Robot F1
Télécharger
les sources Delphi 5 du programme de contrôle PC.
|