COMPOSANTS ARDUINO. (2011)
Un peu plus de détails sur ce composant "ARDUINO UNO" et ses
shields (cartes interfaces),
en général livré dans une petite boite en carton customisée (mais non ESD).
Le site d'origine donne beaucoup d'explications en Anglais, heureusement il
existe une version officielle en Français.
Il existe aussi différents forums, bref beaucoup d'aide et d'idées en
perspective.
- Arduino Uno
- Les instructions particulières
- Arduino Ethernet Shiel
- Arduino Ethernet
- Arduino Mega 2560
- Platine ProtoShield Kit
- Affichage 4Display
- Affichage Graphique Nokia5110
- Adaptation VRBOT
- Platine Joystick
- Réalisation(s)
- Fin.
Donc petite platine à base de ATMega328
dont le bootloader vous permet de charger vos programmes issu du logiciel spécifique
de programmation
Arduino. Le langage est un C/C++ évolué dans le sens ou il a été complété
par des instructions spécifiques permettant de gérer les E/S du processeur.
A l'image du module Mbed, j'ai réalisé
une cartographie visuelle des entrée/sorties, c'est plus "parlant"
lorsque l'on prépare un projet :
On voit directement les broches qui servent à plusieurs
fonctions et de ce fait doivent être l'objet d'un choix...
De même certaines broches et ou fonctions ne peuvent être utilisées en même temps.
Ceci s'explique en partie lorsque l'on voit que les broches sont
"multifonctions".
De même pour des fonctions tel que tone qui ne peut s'exécuter en même temp
que le pwm sur certaines broches par exemple.
Une petite chose qui n'est pas clairement décrite à mon goût et qui a justifié mes interrogations sur l'absence de résistances de Pull-Up ou Pull-Down sur les entrées logiques de l'Arduino, est qu'une résistance de pull-up peut être programmée dans l'ATméga328, il suffit de déclarer la broche en entrée puis de donner l'instruction de mettre cette broche au niveau haut, la mettre au niveau bas désactive la résistance, encore faut-il le savoir ! Cette résistance de pull-up fait dans les 20Kohm.
Activation de la résistance de pull-up : | Désactivation de la résistance de pull-up : |
pinMode(1,INPUT); digitalWrite(1,HIGH); |
pinMode(1,INPUT); digitalWrite(1,LOW); |
ARDUINO ETHERNET SHIELD de ARDUINO.
Platine d'adaptation Ethernet pour Arduino Uno, Mega, .... Elle s'enfiche directement sur la platine processeur, attention donc aux E/S que vous souhaitez utiliser, voici aussi une cartographie des E/S utilisées :
Attention la photo de la platine ne correspond pas à celle reçue,
il semble que celle-ci soit une nouvelle version !
Les broches utilisées/réservées ne sont plus que les 2, 4, 10 et ICSP.
Petite note négative, l'embase Ethernet qui est largement plus haute sur ce
circuit et qui peut gêner l'empilage d'une nouvelle carte, le mieux est
d'utiliser un connecteur male/femelle en entretoise pour surélever la platine
suivante...
L'adresse MAC recommandée/réservée est sur une étiquette au dos de la
platine.
En cours d'essais sur mon application de télécommande de
télescope...
Un mixe de Arduino Uno et de Ethernet shield, cette platine regroupe donc les deux en une seule, bien pratique pour les applications utilisant l'Ethernet. Ici encore ma petite "Map" des signaux utilisés :
Note importante, l'embase USB de programmation n'est plus sur la
platine, il faut utiliser un adaptateur qui se branche en bout de carte sur un
connecteur 6 points.
Attention il faut penser que l'adresse "COM" du port USB change avec
l'adaptateur et ne pas oublier de le changer au niveau du logiciel de
programmation.
Ici de même l'embase Ethernet est largement plus haute sur ce circuit et peut gêner
l'empilage d'une nouvelle carte, le mieux est d'utiliser un connecteur
male/femelle en entretoise pour surélever la platine suivante...
L'adresse MAC recommandée/réservée est sur une étiquette au dos de la
platine.
En cours d'essais sur mon application de télécommande de
télescope...
Je n'ai pas encore utilisé le port uSD...
Pas encore essayé !!.
ARDUINO PROTOSHIELD KIT de SPARKFUN.
Le Kit livré : | |
Puis monté : |
Cette petite platine permet d'adjoindre à la platine de base
Arduino un montage personnel soit en brasant directement dans la plaque à trou
ses propres composants ou en collant sur la place centrale une plaque d'essais
dans laquelle on peut monter des composants sans brasage...
La platine peut aussi être utilisée sans les composants joints (boutons, leds,
...) pour y câbler simplement son propre montage.
Première remarque la longueur des pattes des connecteurs sont
trop courtes d'au moins 1mm, en effet une fois enfichée sur le module Arduino,
la patte active du switch S2 entre en contact avec le corps du connecteur USB de
la platine, ce qui n'est pas très bon !
J'avais aussi prit la petite plaque d'essai à insertion nulle pour cette platine, mais elle n'est pas pratique du tout, ce n'est que deux rangées de 17 bandes de 5 trous, il n'y a pas de barres d'alimentation/masse à l'extérieur, ce qui n'est pas très pratique.
ARDUINO 4Display-Shield-144 4D SYSTEMS
Une catastrophe pour l'instant...
Une information de "dernière minute", cette platine n'est plus au catalogue de 4Dsystème, elle est remplacée par une autre, alors un bon conseil ne l'achetez pas chez notre "revendeur Français" au prix fort elle est obsolète et n'aura pas de suivit...
AFFICHEUR GRAPHIQUE NOKIA 5110 SPARKFUN
Attention une fois de plus, contrairement à ce qui est annoncé par le
vendeur, il faut un montage d'adaptation pour utiliser cet afficheur, celui-ci
fonctionnant sous 3,3V ainsi que les nivaux logiques.
Il faut donc
adapter si vous souhaitez le connecter à l'Arduino.
Voici le petit schéma
d'adaptation que j'ai réalisé et qui fonctionne (pour des raison pratiques -
vous verrez lors du câblage - il est préférable de permuter les fils 3 à 7
en 7 à 3 coté Arduino et dans le programme) :
Si vous testez le programme fournit en exemple sur
le site Arduino, vérifiez bien que les fils soient branchés dans le bon
ordre sur les bonnes sorties.
Il semble suivant échange de courriels avec le vendeur d'origine Sparkfun,
que l'entrée "LED" soit aussi à alimenter en 3,3V, mais j'ai un
doute !
Doute confirmé ce jour, j'ai passé le "module" aux rayons X et il y
a bien 4 LED, mais en parallèles reliées entre la broche LED et 2-GND, donc prévoir
une résistance série pour les alimenter, le tout étant de savoir quel est le
courant d'alimentation...
L'alimentation 3,3V est prise directement sur la
platine Arduino vu la faible consommation.
Après avec les
programmes proposés via le site officiel d'Arduino on comprend assez vite
le fonctionnement de l'afficheur, dommage qu'il soit nécessaire de définir
tous les caractères pour afficher de l'ASCII, par contre pour du graphisme
c'est au pixel près.
Voir dans la page précédente, pas encore testé avec Arduino !!
Platine existante en deux versions, celle reçue et une autre avec une place
pastillée pour l'adjonctions de composants supplémentaires...
Elle accueille un joystick et 4 boutons poussoirs + un petit pour le reset, ces
composants étant vendus à part.
Petit regret de prime abord, on ne peux gérer sur quel port(s) on relie les
bouton ni la façon dont ont les utilise,
tel qu'il sont câblés ils sont obligatoirement reliés aux port 3 à 6, alors
qu'avec un jeu résistances il aurait été possible de n'utiliser qu'une entrée
analogique.
De même le joystick utilise les deux entrées analogiques A0 & A1 plus
l'entrée 2 pour son bouton poussoir.
J'aurais bien vu l'adjonction sur cette platine de leds de retour d'information,
peut être la seconde version comporte une zone pastillée dans ce sens, dommage
de ne pas l'avoir su avant !
La platine comporte aussi deux trous en diagonale qui peuvent servir à une
fixation dans un boîtier, voir à la fixation d'une façade.
Son montage est simple, après avoir brasé les différents boutons, le joystick
et les connecteurs il suffit de monter la platine sur l'Arduino et de passer aux
joies de la programmation.
A propos des connecteurs, ici pas besoin de male/femelle, des males suffisent,
en effet aucune platine ne viendra s'enficher dessus.
Si l'on souhaite modifier les liaisons boutons/ports, il faudra le faire avec
une bonne loupe, les fils sont fins, le mieux est d'effectuer la coupure du fil
au près du connecteur et de reprendre un fil de modification sur la broche du
bouton poussoir.
Voici un petit schéma si le coeur vous en dit de modifier le circuit imprimé
pour pouvoir entrer d'un coup les 5 boutons poussoirs sur une entrée analogique
d'Arduino, évidement il ne sera possible d'utiliser qu'un bouton à la fois et
il faut écrire une petite routine de lecture/conversion pour savoir quel bouton
est utilisé :
Si vous souhaitez l'utiliser sur les entrées
"digitales" pensez soit à mettre des résistances de pull-up (voir
la photo de la platine équipé ci-dessus), soit à programmer les résistances
de Pull-up dans l'Arduino, sinon
les résultats risquent d'être fort aléatoires...
Je ne comprenais pas
l'absence d'emplacement sur les platines pour un tel réseau de résistance (directement sur la platine Arduino, avec un réseau CMS que l'on peut
activer via des plots à braser, par exemple), puis je suis tombé par hasard
sur une application qui utilisait cette fonction, après
recherche dans la doc je compris le pourquoi.
Donc passé ce premier émoi, la platine fonctionne bien, le manche à balais varie bien de 0 à 1023 en retour de valeur lue par analogRead(), par contre méfiance avec la valeur médiane, celle-ci semble se situer à 499/500 ou 513 suivant l'axe, en pure théorie on devrait se trouver autour de 512, attention donc à l'utilisation lors de la programmation, il faut prévoir un "étalonnage".
Première utilisation sur mon application de télécommande de télescope...
REALISATION(s)
A suivre...
A suivre...