Cours:ChenillardShield : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
m (Câblage)
 
(4 révisions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
  
 
[[Cours:ChenillardShieldCorrection|{{Vert|<big>'''Éléments de correction'''</big>}}]]
 
[[Cours:ChenillardShieldCorrection|{{Vert|<big>'''Éléments de correction'''</big>}}]]
 
+
[[Fichier:ArduinoNanoPinout.png|right|600px]]
  
 
Vous allez fabriquer une carte d'extension arduino (appelée communément "shield") que vous programmerez par la suite pour réaliser [https://fr.wikipedia.org/wiki/Chenillard un chenillard].
 
Vous allez fabriquer une carte d'extension arduino (appelée communément "shield") que vous programmerez par la suite pour réaliser [https://fr.wikipedia.org/wiki/Chenillard un chenillard].
 
={{Rouge|Fabrication de la carte}}=
 
=={{Bleu|Cahier des charges}}==
 
 
Cette carte aura pour contraintes de :
 
*permettre la programmation d'un chenillard sur {{Rouge|6 leds}}
 
*permettre de changer le sens de défilement
 
*proposer un moyen d’arrêter/démarrer le défilement
 
*permettre de changer la vitesse
 
 
 
 
=={{Bleu|Composants et position}}==
 
 
Nous trouverons sur la carte les composants suivants, avec le numéro de patte (pin) arduino associée permettrant d'observer/modifier l'état du capteur/actionneur
 
 
{| class="wikitable"
 
|-
 
! Composants !! position arduino !! Fonction
 
|-
 
| 6 leds  || pattes 8 à 13 || affichage du chenillard
 
|-
 
| 1 potentiomètre || A1 || modification de la vitesse
 
|-
 
| 1 bouton poussoir || A2 || start/stop
 
|-
 
| 1 interrupteur || A3 || changement du sens
 
|}
 
 
 
=={{Bleu|Contraintes de routage}}==
 
 
*PCB simple face
 
 
*la dimension du "shield" ne devra pas dépasser celle de la carte arduino UNO sur la hauteur et être la moins large possible
 
*piste de largeur maximale (extra-large)
 
*ne pas utiliser la borne GND du bornier côté entrées/sorties de la carte arduino
 
 
*nom de l'étudiant inscrit en cuivre "côté cuivre"
 
 
*leds alignées et dans l'ordre des sorties
 
*interrupteur, bouton poussoir et potentiomètre facilement accessibles
 
  
  
 +
=Matériel nécessaire=
 +
[[Fichier:CathodesCommunes.png|right|200px]]
  
 +
Nous utiliserons :
 +
*1 carte arduino nano
 +
*1 plaque à essais
 +
*1 sachet fils M-M
 +
*6 leds de même couleur
 +
*6 résistances de 330Ω
 +
*1 potentiomètre avec fils M
 +
*1 interrupteur
 +
*1 bouton poussoir (carré gris)
 +
*2 résistances de 10kΩ
  
=={{Bleu|Critères de notation}}==
+
=Câblage =
 +
[[Fichier:potentiometreArduino.png|right|200px]]
  
 +
{{Todo|Vous ferez le câblage des différents composants en respectant les contraintes suivantes}}
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Critères !! pénalités 
+
! Composants !! numéro de broche arduino !! direction !! Fonction
|-
 
| Non respect de la date de remise du typon  || - 1pt/jour
 
 
|-
 
|-
| Fichier non exploitable (mauvais fichier ou échelle modifiée) || - 3pts
+
| 6 leds  || 8 à 13 || sortie ! || affichage du chenillard
 
|-
 
|-
| Nom de l’étudiant non lisible côté piste || - 3pts
+
| 1 potentiomètre || A1 || entrée || modification de la vitesse
 
|-
 
|-
| Erreur de routage / pistes du mauvais côté / raccordement aux mauvaises bornes …. || -3 pts / faute
+
| 1 bouton poussoir || 2 || entrée || start/stop
 
|-
 
|-
| Non respect des dimensions imposées pour le PCB  || - 3pts
+
| 1 interrupteur || A3 || entrée || changement du sens
|-
 
| Non respect de la largeur des pistes (largeur = extra larges) || - 2pts
 
|-
 
| Esthétique (composants non alignés / en biais / mal répartis) || - 2pts maxi
 
|-
 
| Pistes trop rapprochées (des pistes ou des pastilles) || - 2pts maxi
 
|-
 
| Pistes trop longues || - 2 pts maxi
 
 
|}
 
|}
  
 +
'''Remarques :'''
 +
*les leds seront connectées en cathodes communes (cf figure)
 +
*on utilisera une résistance de 330Ω avec les leds
 +
*pour le bouton et l'interrupteur, on mettra une résistance de pull-up de 10kΩ
 +
*[https://openclassrooms.com/fr/courses/2778161-programmez-vos-premiers-montages-avec-arduino/3285224-le-bouton-poussoir pour retrouver le câblage d'une résistance de tirage, lire cette page]
 +
*se référer à l'image ci-contre pour le câblage d'un potentiomètre (valeur analogique !!)
  
=={{Bleu|Réalisation des typons}}==
+
=Programmation=
 
 
Une fois le routage terminé, après avoir vérifié que les pistes sont du bon côté et que votre nom apparaît bien "côté cuivre", suivre la procédure suivante :
 
 
 
*1- faire Fichier / Exporter / pour la Production / créer en (SVG)... puis définir un emplacement pour la sauvegarde
 
*2- ouvrir un document texte de type .odt (LibreOffice) ou .docx (Word)
 
*3- a partir de l'emplacement ou vous avez sauvegardé vos fichiers .SVG, sélectionner le fichier nomFichier_etch_copper_bottom et placez-le sur le document texte SANS EN CHANGER L'ECHELLE
 
*4- vérifiez que votre nom apparaît bien en transparence (écrit à l'envers), sinon il faut le changer de face sur le typon (sur Fritzing) et recommencer la procédure ...
 
*5- transmettez ce fichier à votre enseignant, il servira pour imprimer le typon sur un calque<br>
 
 
 
 
 
*6- ouvrez le fichier nomFichier_etch_silk_top et faites-en une photo ou une copie, il vous sera nécessaire pour implanter vos composants lors de la réalisation du shield.
 
 
 
 
 
={{Rouge|Dossier de conception}}=
 
 
 
Voici un contenu type pour le dossier de conception que vous devez rédiger. Ce dossier doit permettre à quiconque de refaire votre carte à l'identique et/ou de la dépanner en un minimum de temps. Il doit donc contenir toutes les informations et les documents nécessaires pour remplir ces objectifs  :<br>
 
 
 
 
 
'''Présentation du produit'''<br>
 
 
 
 
 
'''Prérequis''' <br>
 
liste des connaissances et compétences nécessaires pour réaliser le chenillard<br>
 
 
 
 
 
'''Fabrication des cartes PCB'''<br>
 
 
 
 
 
-liste du matériel nécessaire (outillage)<br>
 
 
 
-typons (routage)<br>
 
 
 
-nomenclature (liste des composants)<br>
 
 
 
-implantation<br>
 
 
 
-conseils de fabrication<br>
 
 
 
 
 
 
 
'''Simulation sur Tinkercard'''<br>
 
 
 
insérer vues des différents tests
 
 
 
'''Tests'''<br>
 
 
 
 
 
-procédure de tests<br>
 
 
 
-procédures de dépannage<br>
 
 
 
 
 
'''Foire aux questions'''<br>
 
 
 
 
 
 
 
 
 
={{Rouge|Programmation}}=
 
  
=={{Bleu|Gestion des leds}}==
+
==Gestion des leds==
  
==={{Vert|Notion de port}}===
+
===Notion de port===
  
[[Fichier:ArduinoPinout.png|right|400px]]
+
[[Fichier:ArduinoNanoPinout|right|400px]]
 
En observant attentivement la figure ci-contre, on constate que les pattes utilisées pour commander les leds n'ont pas été choisies au hasard.
 
En observant attentivement la figure ci-contre, on constate que les pattes utilisées pour commander les leds n'ont pas été choisies au hasard.
  

Version actuelle datée du 15 novembre 2019 à 16:26

Retour à la liste des Tps

Éléments de correction

ArduinoNanoPinout.png

Vous allez fabriquer une carte d'extension arduino (appelée communément "shield") que vous programmerez par la suite pour réaliser un chenillard.


Matériel nécessaire

CathodesCommunes.png

Nous utiliserons :

  • 1 carte arduino nano
  • 1 plaque à essais
  • 1 sachet fils M-M
  • 6 leds de même couleur
  • 6 résistances de 330Ω
  • 1 potentiomètre avec fils M
  • 1 interrupteur
  • 1 bouton poussoir (carré gris)
  • 2 résistances de 10kΩ

Câblage

PotentiometreArduino.png

Todo.jpg Vous ferez le câblage des différents composants en respectant les contraintes suivantes

Composants numéro de broche arduino direction Fonction
6 leds 8 à 13 sortie ! affichage du chenillard
1 potentiomètre A1 entrée modification de la vitesse
1 bouton poussoir 2 entrée start/stop
1 interrupteur A3 entrée changement du sens

Remarques :

  • les leds seront connectées en cathodes communes (cf figure)
  • on utilisera une résistance de 330Ω avec les leds
  • pour le bouton et l'interrupteur, on mettra une résistance de pull-up de 10kΩ
  • pour retrouver le câblage d'une résistance de tirage, lire cette page
  • se référer à l'image ci-contre pour le câblage d'un potentiomètre (valeur analogique !!)

Programmation

Gestion des leds

Notion de port

En observant attentivement la figure ci-contre, on constate que les pattes utilisées pour commander les leds n'ont pas été choisies au hasard.

En effet, nous utilisons les pattes 8 à 13, qui correspondent pour le µcontrôleur au PORTB (PB0, PB1, PB2, ...).

Info.jpg Ainsi, il devient possible de modifier l'état de toutes ces sorties/leds, en une seule instruction :

void setup()
{
   // déclarer toutes les pattes en sortie :

}

void loop()
{
   //mettre toutes les sorties à '1'
   PORTB = 0b00111111;  
   delay(200);
   //mettre toutes les sorties à '0'
   PORTB = 0b00000000;  // ou PORTB = 0x00; ou encore PORTB = 0;
   delay(200);
}

Utilisation

Lede.png Lede.png Lede.png Lede.png Leda.png Leda.png
Leda.png Leda.png Leda.png Leda.png Lede.png Leda.png

Question.jpg En vous inspirant du programme précédent, faire un programme affichant successivement ces 2 motifs pendant 0,5s.

Chenillard

Question.jpg Écrire le programme du chenillard

Il s'agit d'allumer une seule led et de faire en sorte qu'elle se "déplace" de droite à gauche :

Lede.png Lede.png Lede.png Lede.png Lede.png Leda.png
Lede.png Lede.png Lede.png Lede.png Leda.png Lede.png
...
Leda.png Lede.png Lede.png Lede.png Lede.png Lede.png

Remarque : Rappelez-vous qu'il y a déjà une "boucle" dans votre programme .... la fonction loop !

Bluebg.png
Aidesmall.png
À propos de cette image

Une boucle bien sûr !


Pour réaliser un chenillard simple, nous devons envoyer successivement les valeurs suivantes sur le port :

Binaire Décimal
val1 = 0 0 0 0 0 0 0 1 1
val2 = 0 0 0 0 0 0 1 0 2
val3 = 0 0 0 0 0 1 0 0 4
val4 = 0 0 0 0 1 0 0 0 8
val5 = 0 0 0 1 0 0 0 0 16
val6 = 0 0 1 0 0 0 0 0 32

Remarque : Une solution élégante consiste à utiliser les opérateurs de décalage

Changer la vitesse

Question.jpg Modifier votre programme pour que la vitesse du chenillard dépende du potentiomètre

Remarque : il s'agit bien évidemment de faire une lecture analogique.


Changer le sens de "rotation"

Question.jpg Modifier votre programme pour que le sens de rotation dépende de la position de l'interrupteur

Mise en route/arrêt

On souhaite pouvoir arrêter/démarrer le chenillard à chaque appui sur le bouton poussoir.

Question.jpg Faire les modifications nécessaires pour répondre à ce nouveau cahier des charges.

Allons plus loin

Pour les 2 programmes suivants, en cas de besoin, vous pouvez chercher des informations sur cette page.

Chenillard double

Pour un chenillard double, 2 leds se déplacent en sens opposé.

Question.jpg Écrire le programme correspondant.


Chenillard à entassement

un chenillard à entassement est un chenillard simple avec une led qui se déplace, mais une fois arrivée à l'extrémité la led reste allumée et on en rajoute une au départ, qui se déplace et s'empile sur la précédente ....

Question.jpg Écrire le programme correspondant.


Plusieurs mode

Question.jpg Faire en sorte que chaque appui sur le bouton poussoir change le type de chenillard :

  • arrêté
  • simple
  • double
  • entassement