Cours:RobotArrex : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
({{Bleu|Code de test de DRV8830}})
 
(41 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|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}}==
 +
 
 +
Lors de la conception des cartes électroniques, vous devrez respecter les critères suivants :
 +
 
 +
*les pistes devront:
 +
**être {{Rouge|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 {{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"}}==
  
télécharger et décompresser le fichier suivant :[[media:Arexx-principal.zip|Arexx-principal.zip]]
+
==={{Vert|Consignes}}===
  
Cette archive est composée de 2 fichiers :
+
Les recommandations suivantes sont spécifiques à la carte capteur, à savoir :
*Eagle :
 
**arexx-principal.sch : schéma électrique de la carte
 
**arexx-principal.brd : circuit imprimé (PCB) de la carte
 
  
={{Bleu|Carte Capteurs}}=
+
*les {{Rouge|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
 +
**{{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}} )
  
Commencer par télécharger et décompresser le fichier suivant : [[media:ArrexCarteCapteur.zip|arrexCarteCapteur.zip]]
+
==={{Vert|Documents}}===
  
Cette archive est composée de 3 fichiers :
+
Vous avez à disposition les 2 fichiers suivants :
*Eagle :
+
*[[Media:Arexx Carte base.sch]] : schéma électrique de la carte avec les connecteurs.
**arrexCarteCapteur.sch : schéma électrique de la carte
+
*[[Media:Arexx Carte base.brd]] : circuit imprimé (PCB) de la carte avec le contour et les positions imposées.
**arrexCarteCapteur.brd : circuit imprimé (PCB) de la carte
+
*[[Media:CNY70.lbr]] : librairie pour le photocoupleur par réflexion CNY70
*Target3001 v16:
 
**arrexCarteCapteur.T3001
 
  
=={{Vert|Permière étape}}==
+
==={{Vert|Composants}}===
'''1 journée maximum'''
 
  
Il s'agit de faire le routage de la carte électronique. Le circuit imprimé réalisé sera '''simple face'''.
+
{| class="wikitable sortable"
 +
|-
 +
! 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
 +
|}
  
Vous pouvez utiliser autant de "straps" que souhaité, il est cependant à noter que leur usage complique l'étape de fabrication.
+
=={{Bleu|Carte "gestion"}}==
  
{{Rouge|'''<big>Vous ne devez en aucun cas déplacer :</big>'''}}
+
==={{Vert|Consignes}}===
* les traits de contour
 
* les 3 repères rouges permettant de percer des trous de centrage
 
* le connecteur
 
  
Enfin vous devrez préparer le typon de votre circuit imprimé en l'exportant comme une image (1200dpi, monochrome)
+
Les recommandations suivantes sont spécifiques à la carte de gestion, à savoir :
  
=={{Vert|Deuxième étape}}==
+
*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 ) 
  
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 étapes nécessaires sont [[Cours:CharlyPCB|disponibles sur cette page]].
+
==={{Vert|Documents}}===
  
Le travail est en partie préparé, et vous ne devez effectuer qu'une partie de ces étapes, soit :
+
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.
  
==={{Bleu|Sur votre poste}}}===
+
Si besoin, le fichier de librairie suivant contient, entre autre, le composant DRV8830
====Vous devez créer le fichier de perçage sur eagle====
+
*[[Media:Troyesgeii.lbr]] : librairie eagle
{|
+
 
 +
==={{Vert|Composants}}===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Bouton !! Arduino Pin !! Port !! Interruption !!  Niveau logique si bouton appuyé
 
|-
 
|-
| [[Fichier:EagleCAM.png|gauche|300px]] || [[Fichier:EagleExcellon.png|gauche|300px]]
+
| Gauche || 4 || PD4 || ||  0
 
|-
 
|-
| [[Fichier:EagleExcellonParams.png|gauche|400px]] || Pour générer le fichier de perçage, on lance l'outil "'''CAM processor'''".
+
| Milieu || 3 || PD3 || int1 ||  0
 +
|-
 +
| Droite ||  2 || PD2 || int0 ||  0
 +
|}
  
 +
={{Rouge|Programmation du robot}}=
  
On ouvre un nouveau "'''job'''" (image en haut à gauche) "'''excellon.cam'''".
+
=={{Bleu|Code de test de DRV8830}}==
  
 +
==={{Vert|Librairie drv8830}}===
  
Ajuster les paramètres en '''désélectionnant "pos_Coord"''', sous peine d'avoir un décalage entre contour et perçage.
+
On utilise une librairie développée par sparkfun (https://github.com/sparkfun/SparkFun_MiniMoto_Arduino_Library)
  
Puis "process job" => vous trouverez le fichier ".drd" dans le répertoire de votre projet eagle.
+
*Télécharger le fichier suivant : [[Media:Minimoto.zip]]
|}
+
*Sur arduino, menu Croquis, importer la bibliothèque puis add library
====Mettre sur une clé USB le fichier ".drd" généré====
+
*'''Attention''' : Sur certains postes, vérifier dans les {{Rouge|préférences}} que le répertoire par défaut est correct !
==={{Bleu|En salle G004}}===
 
====lancer le logiciel Target 3001 {{Rouge|v16}}====
 
====ouvrir le fichier arrexCarteCapteur.T3001====
 
disponible sur le bureau répertoire arexx de l'ordinateur, ou dans le ".zip", cf partie précédente.
 
  
Vous visualisez alors à l'écran le contour de la carte.
+
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>
  
====Insérer le fichier de perçage ".drd"====
+
==={{Vert|Utilisation}}===
{|
 
|-
 
| [[Fichier:TargetExcellon.png|gauche|400px]] || Dans le menu :
 
  
Fichier -> Utilitaires:Import-EXport -> Importer des fichiers XGERBER/EXCELLON
+
<source lang=c>
Sélectionner le fichier ".drd" créé avec Eagle
+
#include <SparkFunMiniMoto.h>   // Include the MiniMoto library
  
Choisir les options d'importation comme indiqué ci contre.
+
// Create two MiniMoto instances, with different address settings.
 +
MiniMoto motorG(0xC0); // moteur gauche
 +
MiniMoto motorD(0xD0); // moteur droit
  
|}
+
void setup()
 +
{
 +
  ....
 +
}
  
Vérifier que la position des perçages semble satisfaisante.
+
void loop()
 +
{
 +
  ...
 +
  motorD.drive(i);
 +
  motorG.drive(j);
 +
  ...
 +
}
 +
</source>
  
====Générer le fichier ".pcb"====
 
  
On va exporter un fichier de fabrication (type *.pcb) export-> production-> fichier gravure par fraisage
+
{| class="wikitable"
 
+
|-
{|
+
! Classe
 +
||MiniMoto
 
|-
 
|-
| [[Fichier:TargetCharly1.png]] || [[Fichier:TargetCharly2.png]]
+
! Méthodes
 +
||
 +
{| class="wikitable"
 
|-
 
|-
| [[Fichier:TargetCharly3.png]] || <big>'''Modifier les paramètres des fenêtres tel qu'indiqué sur les captures d'écran.
+
| drive(v) || v (de type int) est la vitesse, dont le signe indique le sens de rotation, valeur dans l'intervalle [-63 63]
 
+
|}
Se rendre ensuite dans l'onglet "Résultat" et lancer la création du fichier ".pcb"
 
'''</big>
 
 
|}
 
|}
 
====fabrication : Gpilote====
 
*Sur une perceuse manuelle, faire les trous de centrage sur la carte aux emplacements prévus, avec un forêt de 3mm.
 
*Positionner la carte dans la machine à l'aide des "piges" et en fixant un morceau de scotch double face sous la carte. Il n'est pas nécessaire et même déconseillé de recouvrir entièrement la carte de scotch.
 
*{{Rouge|<big>'''Attention au sens : Mettre le cuivre au dessus (visible) si vous avez, comme indiqué plus haut, sélectionné "Face soudure cuivre seulement" lors de la production du fichier pour charlyRobot'''</big>}}
 
*Lancer le logiciel GPILOTE.
 
*Charger votre fichier ".pcb"
 
*Normalement la machine est déjà préréglée. Se renseigner en cas de doute.
 
*Suivez les instructions
 
**Le logiciel doit vous demander d'insérer le premier outil
 
**{{Bleu|Le premier outil à insérer devrait être en toute logique un foret.}}
 
**{{Rouge|Attention, si le logiciel ne vous le demande pas, il faut faire une mesure de l'outil.}}
 
**Le logiciel est prêt et doit proposer de lancer le cycle d'usinage
 
**{{Rouge|<big>'''En cas de doute, demander !!!!'''</big>}}
 
**{{Rouge|<big>'''Fermer le capot avant de commencer !!!!'''</big>}}
 

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]