Cours:RobotArrex : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
m (Les premières vérifications se font {{Rouge|sans circuit intégré}} (amplificateur TL081))
({{Bleu|Code de test de DRV8830}})
 
(19 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
={{Rouge|Fabrication du robot}}=
 +
 
Le robot Arrex est composé de 2 cartes électronique, que vous allez fabriquer.
 
Le robot Arrex est composé de 2 cartes électronique, que vous allez fabriquer.
={{Bleu|Planning}}=
 
  
={{Bleu|Carte Principale}}=
+
Pour ces 2 cartes et assez naturellement, le côté :
'''la carte principale doit être routée à la fin de la seconde journée'''
+
*{{Rouge|TOP}} sera le côté vers le haut.
 +
*{{Rouge|BOTTOM}} sera le côté vers la table.
 +
 
 +
Il faudra donc nécessairement faire un "miroir" sur les photocoupleurs par réflexion CNY70.
 +
 
 +
 
 +
=={{Bleu|Consignes globales}}==
  
télécharger et décompresser le fichier suivant :[[media:Arexx-principal.zip|Arexx-principal.zip]]
+
Lors de la conception des cartes électroniques, vous devrez respecter les critères suivants :
  
Cette archive est composée de 2 fichiers :
+
*les pistes devront:
*Eagle :
+
**être {{Rouge|larges}}
**arexx-principal.sch : schéma électrique de la carte
+
***idéalement 0,8mm ou 0,6mm (ou plus si possible)
**arexx-principal.brd : circuit imprimé (PCB) de la carte
+
***0,4mm pour passer entre des pastilles
 +
***ponctuellement 0,3mm (voir 0,2mm sans garanti d'absences de coupures !)
 +
**être {{Rouge|courtes}}
 +
**être {{Rouge|espacées}}
 +
*autant de vias que nécessaires (dans la limite de votre courage !)
 +
*positionnement
 +
**ne pas sortir du contour
 +
**ne pas déplacer
 +
***le contour
 +
***les connecteurs
 +
***les 3 perçages de centrage
 +
*marquage
 +
**prévoir l'inscription de vos noms
 +
**vous pouvez éventuellement supprimer/réduire le texte proposé
  
={{Bleu|Carte Capteurs}}=
+
=={{Bleu|Carte "capteurs"}}==
  
Commencer par télécharger et décompresser le fichier suivant : [[media:ArrexCarteCapteur.zip|arrexCarteCapteur.zip]]
+
==={{Vert|Consignes}}===
  
Cette archive est composée de 3 fichiers :
+
Les recommandations suivantes sont spécifiques à la carte capteur, à savoir :
*Eagle :
 
**arrexCarteCapteur.sch : schéma électrique de la carte
 
**arrexCarteCapteur.brd : circuit imprimé (PCB) de la carte
 
*Target3001 v16:
 
**arrexCarteCapteur.T3001
 
  
=={{Vert|Permière étape}}==
+
*les {{Rouge|capteurs}} seront :
'''1 journée maximum'''
+
**disposés juste au dessus de la ligne horizontale
 +
**collés côte à côte
 +
**disposés symétriquement par rapport à la ligne verticale
 +
**{{Rouge|attention}} au bon positionnement des capteurs (droite, milieu, côté ...)
 +
*la carte doit être simple face (toutes les pistes sur {{Rouge|la face TOP}} )
  
Il s'agit de faire le routage de la carte électronique. Le circuit imprimé réalisé sera '''simple face'''.
+
==={{Vert|Documents}}===
  
Vous pouvez utiliser autant de "straps" que souhaité, il est cependant à noter que leur usage complique l'étape de fabrication.
+
Vous avez à disposition les 2 fichiers suivants :
 +
*[[Media:Arexx Carte base.sch]] : schéma électrique de la carte avec les connecteurs.
 +
*[[Media:Arexx Carte base.brd]] : circuit imprimé (PCB) de la carte avec le contour et les positions imposées.
 +
*[[Media:CNY70.lbr]] : librairie pour le photocoupleur par réflexion CNY70
  
{{Rouge|'''<big>Vous ne devez en aucun cas déplacer :</big>'''}}
+
==={{Vert|Composants}}===
* les traits de contour
+
 
* les 3 repères rouges permettant de percer des trous de centrage
+
{| class="wikitable sortable"
* le connecteur
+
|-
 +
! Type !! Composant/Boitier !! Librairie Eagle !! Référence eagle
 +
|-
 +
| Résistance || CMS : 1206 || rcl || R-EU_R1206
 +
|-
 +
| Photocoupleur || CNY70 || CNY70 ||  CNY70
 +
|-
 +
| Transistor NPN || CMS : SOT23 || transistor-npn || BC849SMD
 +
|-
 +
| Led || 5mm ou 3mm || led || LED5MM ou LED3MM
 +
|-
 +
| Connecteur || barrette femelle sécable || con-lstb || MA06-1
 +
|}
  
Enfin vous devrez préparer le typon de votre circuit imprimé en l'exportant comme une image (1200dpi, monochrome)
+
=={{Bleu|Carte "gestion"}}==
  
=={{Vert|Deuxième étape}}==
+
==={{Vert|Consignes}}===
  
Une fois le circuit imprimé, il convient de le percer et détourer. Vous utiliserez une fraiseuse à commande numérique (marque CharlyRobot) pour cette tâche.
+
Les recommandations suivantes sont spécifiques à la carte de gestion, à savoir :
  
[[Cours:ArrexCharly|<big>Les opérations nécessaires sont sur cette page</big>]]
+
*les {{Rouge|DRV8830}} :
 +
**seront alimentés par des pistes très larges ( GND / VDD )
 +
**les pistes allant des DRV8830 aux moteurs doivent être les plus courtes et les plus larges possibles
 +
**la pastille située au milieu du composant sert à évacuer la chaleur, il faut la relier à une piste de grande surface
 +
*le {{Rouge|TMA0505S}} :
 +
**sera raccordé à des pistes très larges ( alimentations )
 +
*les {{Rouge|condensateurs C2, C3, C4 }} :
 +
** devront être placés au plus près des DRV8830 et du microcontrôleur ( découplage des alimentations ) 
  
<br><br><br><br>
 
  
={{Bleu|Vérification avant réglages}}=
+
==={{Vert|Documents}}===
  
=={{Vert|Carte capteur}}==
+
Vous avez à disposition les 2 fichiers suivants :
 +
*[[Media:Arexx Carte gestion.sch]] : schéma électrique de la carte avec les connecteurs.
 +
*[[Media:Arexx Carte gestion.brd]] : circuit imprimé (PCB) de la carte avec le contour et les positions imposées.
  
{{Rouge|Il est impossible de faire des vérifications sans le schéma électrique, ni le "board" de la carte (avec l'emplacement, le nom et la valeur des composants).}}
+
Si besoin, le fichier de librairie suivant contient, entre autre, le composant DRV8830
 +
*[[Media:Troyesgeii.lbr]] : librairie eagle
  
 +
==={{Vert|Composants}}===
  
===Les premières vérifications se font {{Rouge|sans circuit intégré}} <small>(amplificateur TL082)</small>===
+
{| class="wikitable"
*Alimenter la carte en 6v continu :
+
|-
{|
+
! Bouton !! Arduino Pin !! Port !! Interruption !!  Niveau logique si bouton appuyé
 +
|-
 +
| Gauche ||  4 || PD4 ||  ||  0
 +
|-
 +
| Milieu ||  3 || PD3 || int1 ||  0
 
|-
 
|-
| [[fichier:Straps.jpg|gauche|150px]] ||  
+
| Droite || 2 || PD2 || int0 || 0
*'''Prendre''' 2 straps (cf ci contre) M/F (Mâle/Femelle), en placer
 
**un (noir de préférence) sur la patte AGND du connecteur
 
**un (rouge de préférence) sur la patte VCC du connecteur
 
*'''Prendre''' 2 pinces "crocodiles" ou 2 "grip-fils" (idéalement, adapter les couleurs)
 
*'''Prendre''' 1 alimentation continue réglable
 
*'''Relier''' l'ensemble avec des fils.
 
 
|}
 
|}
*A l'aide d'un voltmètre {{Vert|(relier la masse du voltmètre (GND) sur celle de l'alimentation, et mettre [http://www.lextronic.fr/P11965-pointe-de-touche-a-douille-isolante-flexible-4mm-en-acier-inox---noir-prf-2.html une pointe de touche] sur le ''fil de mesure'')}},<br> vérifier sur le support du CI :
 
**Présence de VCC sur la patte 8 (6V donc !)
 
**Présence de GND (0V !) sur la patte 4<br>(éventuellement vous pouvez couper l'alimentation et faire un test de continuité entre la patte AGND du connecteur et la patte 4 du CI)
 
*On vérifie ensuite le fonctionnement du capteur :
 
**En émission :
 
***Toujours avec le voltmètre (éventuellement avec un grip-fil à la place de la pointe de touche), mesurez la tension sur les 2 points tests
 
****LED_G
 
****LED_D
 
***Pour chacun, vous devez trouver une tension comprise entre 1V et 1,5V.
 
***{{Rouge|Si ce n'est pas le cas :}}
 
****vérifier la présence de la tension d'alimentation 6V.
 
****vérifier la valeur des résistances R1 et R4 (330 Ω)
 
****vérifier le sens du CNY70 (marquage du côté du photo-transistor)
 
****vérifier la présence de l'alimentation sur la résistance concernée
 
****vérifier la continuité et l'absence de court-circuit sur les pistes concernées.
 
**En réception :
 
*Couper l'alimentation
 
  
==={{Rouge|Mettre en place le circuit intégré}}===
+
={{Rouge|Programmation du robot}}=
*Alimenter la carte en 6v continu. (cf ci-dessus)
 
*A l'aide d'un voltmètre, mesurer la tension sur le signal DROIT, puis gauche<br>Tenir la carte à qques mm du sol
 
**au dessus d'une ligne blanche
 
**au dessus d'une ligne noire
 
**La tension doit varier dans une plage proche de 2V-4V
 
  
=={{Vert|Carte principale}}==
+
=={{Bleu|Code de test de DRV8830}}==
  
Une fois les composants soudés, vous allez suivre les étapes suivantes afin de valider le fonctionnement de votre carte :
+
==={{Vert|Librairie drv8830}}===
  
*Les premières vérifications se font {{Rouge|sans circuit intégrés}}
+
On utilise une librairie développée par sparkfun (https://github.com/sparkfun/SparkFun_MiniMoto_Arduino_Library)
**Alimenter la carte en 6v continu.
 
**vérifier sur chacun des CI :
 
***Présence de VCC sur la patte 7
 
***Présence de GND sur la patte 4<br>(éventuellement vous pouvez couper l'alimentation et faire un test de continuité)
 
**Présence de VCC/2 sur la patte
 
***3 de IC1
 
***2 de IC2
 
**Sur la patte 3 de IC5 (respectivement IC8): <br>La tension doit varier de 0 à VCC lorsque la résistance R7 (respectivement R11) varie.
 
  
*{{Rouge|Couper l'alimentation}} et mettre les circuits intégrés
+
*Télécharger le fichier suivant : [[Media:Minimoto.zip]]
**Visualiser la sortie oscTriangle et constater la présence d'un signal triangulaire (les oscilloscopes numériques permettent de faire des captures d'écran sur clé usb afin de documenter un rapport) entre 1/3 et 2/3 de VCC et de fréquences ...Hz.
+
*Sur arduino, menu Croquis, importer la bibliothèque puis add library
**Sur la borne RIGHT_SENSOR (puis LEFT_SENSOR)
+
*'''Attention''' : Sur certains postes, vérifier dans les {{Rouge|préférences}} que le répertoire par défaut est correct !
**#Mettre la tension VCC/2 sur cette borne (en conservant l'alimentation 6v !)
 
**#Régler R8 (respectivement R12) à mi-course
 
**#visualiser MLI_D (MLI_G)
 
**#Faire varier R7 (R11)
 
**#Le rapport cyclique de la sortie doit varier de 0 à 100%
 
  
=={{Vert|Assembler le robot}}==
+
Vous pouvez vérifier le bon fonctionnement du programmateur en exécutant la ligne suivante dans un terminal
 +
<source lang=bash>
 +
avrdude -c avrisp2 -P usb -p m328p
 +
</source>
  
{{Rouge|ne pas brancher les moteurs !!}}
+
==={{Vert|Utilisation}}===
  
Procéder aux réglages suivant :
+
<source lang=c>
 +
#include <SparkFunMiniMoto.h>  // Include the MiniMoto library
  
*mesurer la tension mini et maxi délivré par le capteur droit (puis gauche)
+
// Create two MiniMoto instances, with different address settings.
*régler les tensions ZERO_RIGHT (puis ZERO_LEFT) à la tension moyenne délivrée par le capteur avec les potentiomètres R7 ou R11.
+
MiniMoto motorG(0xC0); // moteur gauche
*pour chacune des voies (gauche et droite)<br>répéter :
+
MiniMoto motorD(0xD0); // moteur droit
*#se placer sur du noir.
 
*#à l'aide principalement du potentiomètre de gain (R8 ou R12) régler pour avoir un rapport cyclique de MLI de l'ordre de 90% (à peine moins que 100%)
 
*#se placer sur du blanc.
 
*#à l'aide principalement du potentiomètre de zéro (R7 ou R11) régler pour avoir un rapport cyclique de MLI de tout juste 0%
 
*jusqu'à obtenir le bon réglage à la fois sur le noir et sur le blanc. (le plus important étant le réglage du blanc)
 
*essayer d'équilibrer la valeur de MLI pour le noir sur les 2 voies.
 
  
 +
void setup()
 +
{
 +
  ....
 +
}
  
{{Rouge|Brancher les moteurs et tester sur une piste !!}}
+
void loop()
 +
{
 +
  ...
 +
  motorD.drive(i);
 +
  motorG.drive(j);
 +
  ...
 +
}
 +
</source>
 +
 
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Classe
 +
||MiniMoto
 +
|-
 +
! Méthodes
 +
||
 +
{| class="wikitable"
 +
|-
 +
| drive(v) || v (de type int) est la vitesse, dont le signe indique le sens de rotation, valeur dans l'intervalle [-63 63]
 +
|}
 +
|}

Version actuelle datée du 15 décembre 2016 à 12:42

Fabrication du robot

Le robot Arrex est composé de 2 cartes électronique, que vous allez fabriquer.

Pour ces 2 cartes et assez naturellement, le côté :

  • TOP sera le côté vers le haut.
  • BOTTOM sera le côté vers la table.

Il faudra donc nécessairement faire un "miroir" sur les photocoupleurs par réflexion CNY70.


Consignes globales

Lors de la conception des cartes électroniques, vous devrez respecter les critères suivants :

  • les pistes devront:
    • être larges
      • idéalement 0,8mm ou 0,6mm (ou plus si possible)
      • 0,4mm pour passer entre des pastilles
      • ponctuellement 0,3mm (voir 0,2mm sans garanti d'absences de coupures !)
    • être courtes
    • être espacées
  • autant de vias que nécessaires (dans la limite de votre courage !)
  • positionnement
    • ne pas sortir du contour
    • ne pas déplacer
      • le contour
      • les connecteurs
      • les 3 perçages de centrage
  • marquage
    • prévoir l'inscription de vos noms
    • vous pouvez éventuellement supprimer/réduire le texte proposé

Carte "capteurs"

Consignes

Les recommandations suivantes sont spécifiques à la carte capteur, à savoir :

  • les capteurs seront :
    • disposés juste au dessus de la ligne horizontale
    • collés côte à côte
    • disposés symétriquement par rapport à la ligne verticale
    • attention au bon positionnement des capteurs (droite, milieu, côté ...)
  • la carte doit être simple face (toutes les pistes sur la face TOP )

Documents

Vous avez à disposition les 2 fichiers suivants :

Composants

Type Composant/Boitier Librairie Eagle Référence eagle
Résistance CMS : 1206 rcl R-EU_R1206
Photocoupleur CNY70 CNY70 CNY70
Transistor NPN CMS : SOT23 transistor-npn BC849SMD
Led 5mm ou 3mm led LED5MM ou LED3MM
Connecteur barrette femelle sécable con-lstb MA06-1

Carte "gestion"

Consignes

Les recommandations suivantes sont spécifiques à la carte de gestion, à savoir :

  • les DRV8830 :
    • seront alimentés par des pistes très larges ( GND / VDD )
    • les pistes allant des DRV8830 aux moteurs doivent être les plus courtes et les plus larges possibles
    • la pastille située au milieu du composant sert à évacuer la chaleur, il faut la relier à une piste de grande surface
  • le TMA0505S :
    • sera raccordé à des pistes très larges ( alimentations )
  • les condensateurs C2, C3, C4  :
    • devront être placés au plus près des DRV8830 et du microcontrôleur ( découplage des alimentations )


Documents

Vous avez à disposition les 2 fichiers suivants :

Si besoin, le fichier de librairie suivant contient, entre autre, le composant DRV8830

Composants

Bouton Arduino Pin Port Interruption Niveau logique si bouton appuyé
Gauche 4 PD4 0
Milieu 3 PD3 int1 0
Droite 2 PD2 int0 0

Programmation du robot

Code de test de DRV8830

Librairie drv8830

On utilise une librairie développée par sparkfun (https://github.com/sparkfun/SparkFun_MiniMoto_Arduino_Library)

  • Télécharger le fichier suivant : Media:Minimoto.zip
  • Sur arduino, menu Croquis, importer la bibliothèque puis add library
  • Attention : Sur certains postes, vérifier dans les préférences que le répertoire par défaut est correct !

Vous pouvez vérifier le bon fonctionnement du programmateur en exécutant la ligne suivante dans un terminal

avrdude -c avrisp2 -P usb -p m328p

Utilisation

#include <SparkFunMiniMoto.h>   // Include the MiniMoto library

// Create two MiniMoto instances, with different address settings.
MiniMoto motorG(0xC0); // moteur gauche
MiniMoto motorD(0xD0); // moteur droit

void setup()
{
  ....
}

void loop()
{
  ...
  motorD.drive(i);
  motorG.drive(j);
  ...
}


Classe MiniMoto
Méthodes
drive(v) v (de type int) est la vitesse, dont le signe indique le sens de rotation, valeur dans l'intervalle [-63 63]