Sie sind auf Seite 1von 7

Projet PCSI

Projet Rover Arduino

1. Architecture
1.1. Système de commande
Eléments  Image Description constructeur
MKR1000  is  one  of  the  Arduino 
boards,  based  on  the  Atmel 
ATSAMW25  SoC,  it  has  prominent 
Le  Rover  est  commandé  par  une 
features  such  as  Wi‐Fi  connectivity 
carte Arduino modèle MKR1000 
and  a  Li‐Po  charging  circuit.  It  is  an 
effective  board  for  projects 
concerning the Internet of Things 

The  MKR  Motor  Carrier  is  an 


Une  carte  de  puissance :  la  MKR  expansion  board  specially  tailored 
Motor Carrier permet de commander  for  MKR  family  of  boards  aimed  at 
4 moteurs à courant continu par des  extending  their  functionality.  This 
hacheurs et des servos moteurs ainsi  carrier  enables  the  MKR1000  to 
que des moteurs pas à pas.  easily control servos, DC motors, and 
stepper motors. 

The IMU (Inertial Measurement Unit) 
shield is specially tailored for the MKR 
Une  carte  d’acquisition  pour  une 
family  of  boards,  though  it  has  a 
centrale  inertielle  permettant  de 
connector to use it with other boards 
mesurer  des  accélérations  (et  donc 
over  I2C.  The  integrated  3‐axis  gyro 
vitesses et positions) 
and  accelerometer  sensor  provides 
Non utilisée dans ce projet 
orientation and velocity inputs to the 
MKR board. 
 

Lycée Joffre Rover Arduino Page 1 sur 7


Projet PCSI

1.2. Actionneurs
Eléments  Image Description constructeur
Deux  moteurs  à  courant  continu  The  DC  Motor  with  Encoder  can  spin  in 
associé  à  un  réducteur  ainsi  qu’un  both  directions  with  a  control  over  the 
codeur  incrémental  pour  actionner  angle  of  rotation  and  rotation  step 
les deux roues arrières  counts. 

The  Standard  Micro  Servo  is  a  type  of 


motor  that  can  be  controlled  from  an 
Arduino  board  without  a  need  of  any 
Un  servomoteur  pour  actionner  la 
other components. Standard servos have 
fouche du rover 
a  rotation  angle  limited  to  180  degrees 
with  a  precise  control  over  the  angle  of 
rotation 

1.3. Capteurs
Eléments  Image Description constructeur
Les  deux  codeurs  associés  aux  The  DC  Motor  with  Encoder  can  spin  in 
moteurs  des  roues  pour  permettre  both  directions  with  a  control  over  the 
d’asservir  ceux‐ci  en  position  ou  en  angle  of  rotation  and  rotation  step 
vitesse  counts. 

Ultrasonic  Sensor  Module  is  a  digital 


distance  reading  device.  By  calculating 
Un capteur de distance à ultrasons à  the time it takes to receive back the echo 
l’avant du rover  of a high frequency sound wave it sends, 
the  ultrasonic  sensor  can  detect  the 
distance to an object in front of it. 

2. Moyens de programmation
Nous allons commander le rover à l’aide du logiciel Matlab et des bibliothèques de fonction pour Arduino. 
 Dans un premier temps nous travaillerons en rentrant du code avec des fichiers au format « .mlx » 
 Dans un second temps nous travaillerons sous Simulink afin de faire de la programmation graphique 
avec des fichiers « .slx » 
Attention à lancer le logiciel Matlab en mode Administrateur (appeler le prof si besoin) 
Choisir comme « Current folder » le dossier (dézipper) contenant tous les modèles  

3. Commande des moteurs (par code)


3.1. Commande des moteurs à courant continu
Les moteurs à continus sont commandés à l’aide d’un hacheur. Il suffira donc de donner la valeur du rapport 
cyclique 𝛼 qui nous intéresse pour les commander : 
 𝛼 0 : la tension moyenne envoyée au moteur est nulle : pas de rotation  
 𝛼 1 : la tension moyenne envoyée au moteur est maximale : rotation à vitesse maximale dans un 
sens 
 𝛼 1 :  la  tension  moyenne  envoyée  au  moteur  est  maximale  (et  négative) :  rotation  à  vitesse 
maximale dans l’autre sens 

Lycée Joffre Rover Arduino Page 2 sur 7


Projet PCSI

Ouvrir le modèle « a_avancer_rover.mlx » 
Activité 1. Expérimenter : 

a. Connecter le rover en USB à l’ordinateur 

b. Mettre l’interrupteur de la carte de puissance à ON 

c. Renseigner le bon port com 

d. Placer le rover sur un support pour éviter que les roues ne soient en contact avec le sol 

e. Choisir un rapport cyclique pour chacun moteurs 

f. Exécuter le code 

Activité 2. Renouveler l’expérience en posant le moteur sur la table et en cherchant à aller en ligne 
droite. Que remarquez‐vous ? 

3.2. Commande du servomoteur


Problématique : Prise en main de la commande des actionneurs et découverte de leurs comportement 
Un  servomoteur  est  un  moteur  asservi,  la  commande  se  fait  donc  différemment  d’un  moteur  à  courant 
continu classique. 
Ouvrir le modèle « b_bouger_fourche.mlx » 
Activité 3. Expérimenter : 

a. Connecter le rover en USB à l’ordinateur 

b. Mettre l’interrupteur de la carte de puissance à ON 

c. Renseigner le bon port com 

d. Renseigner deux (ou plus) positions pour faire évoluer la fourche 

e. Exécuter le code 

Activité 4. Expliquer brièvement la différence de commande entre vos deux expérimentations ainsi 
que la différence de comportement des moteurs 

4. Modélisation cinématique en vue de la commande des moteurs


Problématique : Nous cherchons ici à déterminer les lois entrées/sorties en cinématique pour commander 
la rotation des deux moteurs (gauche et droit) afin de maîtriser le mouvement du rover par rapport au sol 
Paramétrage : 
 Soient les points : 
o 𝐼  et 𝐼  points de contact des roues droite et gauche avec le sol 
o 𝑂  et 𝑂  points sur l’axe de rotation des roues droite et gauche par rapport au rover, à la 
vertical des points de contact avec le sol 
o 𝑂  point milieu de 𝑂  et 𝑂  
o 𝐼 /  centre instantané de rotation du mouvement du Rover par rapport au sol 
 Soit  𝐿 88𝑚𝑚 empâtement du robot (distance entre les roues) et 𝑟 45𝑚𝑚 rayon des roues 
 Soit 𝑅 rayon du virage 

Lycée Joffre Rover Arduino Page 3 sur 7


Projet PCSI

 Soient 𝑉 , _ /
⃗ et 𝑉 , _ /
⃗ vitesses des points situés sur l’axe de rotation des 
roues dans le mouvement de la roue par rapport au sol 
 Soient Ω _ /
⃗ et Ω _ /
⃗ vitesses de rotations des roues par rapport au rover 
 Soient 𝑉 , /
⃗ vitesse du point situé sur l’axe de rotation des roues dans le mouvement du rover 
par rapport au sol 
 Soient Ω /
⃗ vitesse de rotation du rover par rapport au sol 

Hypothèse : 
On supposera un mouvement de roulement sans glissement entre les roues et le sol 

𝑉 , /
⃗ 

𝑦⃗

𝑉 , _ /

Ω /

𝐼 /
𝑂 𝑧⃗ 𝑥⃗

𝑂
𝑂 𝑉 ⃗
𝛺 _ /
⃗ 𝐼 , _ /
𝐼

𝛺 _ /

 
Activité 5. Ecrire une relation entre le rayon de virage, 𝛀𝑹𝒐𝒗𝒆𝒓/𝒔𝒐𝒍⃗ et 𝑽𝑶𝑹 ,𝑹𝒐𝒗𝒆𝒓/𝒔𝒐𝒍⃗ 

Activité 6. Montrer que l’on peut écrire les deux relations : 
𝑉 , _ / 𝑉 , _ / 𝛺 _ / 𝛺 _ /
Ω / 𝑟.  
𝐿 𝐿
𝛺 _ / 𝛺 _ /
𝑉 , / 𝑟.  
2
Activité 7. En déduire l’expression des vitesses de rotation des moteurs en fonction des paramètres 
géométriques et de la cinématique du rover par rapport au sol 

Activité 8. Montrer que l’on peut écrire ces relations sous la forme matricielle : 

𝛺 _ / 1 𝑉 , /
 . .  
𝛺 _ / 1 Ω /

Activité 9. Montrer que l’on peut écrire les relations géométriques suivantes : 
𝜃 𝜃 𝜃 𝜃
𝐷 / 𝑟. 𝐷   𝜃 / 𝑟. 𝜃  
2 𝐿
   

Lycée Joffre Rover Arduino Page 4 sur 7


Projet PCSI

5. Comportement des motoréducteurs et codeurs associés


Problématique : Nous cherchons ici à déterminer les caractéristiques du bloc motoréducteur + codeurs afin 
de pouvoir par la suite exploiter les mesures et choisir la commande du hacheur. 
Des expérimentations ont été réalisées en commandant le moteur avec un rapport cyclique allant de ‐1 à 1 
et en relevant la vitesse mesurée par le codeur. 
 Le rapport de réduction du réducteur à engrenage est de 100 
 Le codeur, monté sur le moteur, donne 12 points par tour 
Vitesse de rotation (pts/sec)

 
Activité 10. Proposer une loi linéaire permettant de relier la vitesse de la roue au rapport cyclique.  

Lycée Joffre Rover Arduino Page 5 sur 7


Projet PCSI

6. Nécessité d’asservissement en vitesse des deux roues


Problématique :  Connaître  les  lois  de  comportement  cinématiques  nous  garant  il  de  pouvoir  obtenir  le 
comportement attendu ? 
Dans  la  fenêtre  de  commande  Matlab,  taper  l’instruction  « clear »  pour  effacer  toutes  les  variables  du 
Workspace et supprimer les connections entre les modèles précédents et le rover. 

6.1. Commande directe


Nous allons ici commander les moteurs en imposant une loi temporelle pour les rapports cycliques des 
deux moteurs (droit et gauche) 
Ouvrir le modèle « c_Commande_Moteurs_BO.slx » 
Activité 11. Expérimenter : 

a. Connecter le rover en USB à l’ordinateur 

b. Vous pouvez modifier l’allure des courbes de commande de chaque rapport cyclique (droit 
et gauche) en cliquant sur les blocs rouges 

c. Deux procédures possibles : 

Tester le programme  Vérifier le comportement réel 
i. Mettre  l’interrupteur de  la  carte  de  puissance  à  i. Mettre l’interrupteur de la carte de puissance à 
ON  OFF 

ii. Placer le rover sur un support pour éviter que les  ii. Dans  l’onglet  « Hardware »,  cliquer  sur  « build, 


roues ne soient en contact avec le sol  deploy,start » 

iii. Dans  l’onglet  « Hardware »,  cliquer  sur  « build,  iii. Une  fois  le  programme  chargé,  débrancher  le 
deploy,start »  câble USB et poser le Rover par terre 

iv. Observer le comportement des roues  iv. Mettre  l’interrupteur de  la  carte  de  puissance  à 


ON 

  v. Observer le comportement du rover 

Activité 12. Essayer de commander le rover pour aller en ligne droite. Qu’en pensez‐vous ? 

Activité 13. Essayer de répondre aux différents « défis » discuter avec le prof 

a. Avancer en ligne droite sur 1m 

b. Suivre un virage de rayon 1m sur ¼ de cercle 

c. Avancer en ligne droite, faire ½ tour autour d’un tabouret et revenir au point de départ 

   

Lycée Joffre Rover Arduino Page 6 sur 7


Projet PCSI

6.2. Commande inverse


Nous allons ici commander le déplacement du rover à partir des lois cinématiques définies précédemment 
Ouvrir le modèle « d_Simul_deplacement_BO.slx » 

Activité 14. Compléter le modèle en rentrant les bonnes données pour le système matricielle calculé 
précédemment dans le bloc « conversion en vitesse moteur » 

Activité 15. Proposer des lois de commandes pour répondre aux mêmes défis que précédemment. 
Pour  chaque  défi,  observer  la  simulation,  une  fois  satisfaits,  ouvrir  le  modèle  suivant  et 
programmer le rover. 

a. Avancer en ligne droite sur 1m 

b. Suivre un virage de rayon 1m sur ¼ de cercle 

c. Avancer en ligne droite, faire ½ tour autour d’un tabouret et revenir au point de départ 

Ouvrir le modèle « e_Commande_Rover_BO.slx » 

Activité 16. Compléter le modèle en rentrant les bonnes données pour le système matricielle calculé 
précédemment dans le bloc « conversion en vitesse moteur » 

Activité 17. Utiliser  les  lois  définies  par  simulation  et  expérimenter  en  suivant  les  procédures  de 
l’activité 10. Conclure 

7. Acquisition par les codeurs incrémentaux de la position et/ou la vitesse


des moteurs
Ouvrir le modèle « f_Commande_moteur_mesure.slx » 
Activité 18. Décortiquer le modèle 

8. Commande séquentielle
Ouvrir le modèle « g_Simul_stateflow.slx » 
 

9. Capteur à ultrasons
 

Lycée Joffre Rover Arduino Page 7 sur 7

Das könnte Ihnen auch gefallen