Optimisation de cartes de contrôle de robot mobile
Sommaire
Cahier des charges
Présentation générale du projet
Reprendre la carte du stage Plateforme robotique pour l'enseignement secondaire.
Remplacer l'ATMega328P traversant par un ATMega328P de surface mais soudable à la main. Trouvez un quartz de surface plus compact. Minimiser les via.
Réaliser deux mini-cartes pour réaliser des capteurs I2C. Les mini-cartes doivent comporter un connecteur RJ11 pour se connecter vers la carte mère et un connecteur RJ11 pour chaîner un autre capteur. L'un des capteurs doit être un capteur d'humidité et de température, le second doit être un capteur de pression. Si possible trouver des composants de surface pour les capteurs I2C. Une sonde étanche pour le capteur de température serait appréciée.
Ecrire les fonctions permettant de récupérer les valeurs des capteurs. Ces fonctions doivent être écrites pour avr-gcc. Pour la partie I2C vous pouvez vous baser sur le projet IMA4 ordonnanceur de 2014/2015 (Malette Arduino éducative I).
Créer un châssis unique pour les deux motorisations avec des fixations propres sans utilisation de fil de fer.
Avancement du Projet
Cahier des charges
Afin d'optimiser et améliorer le robot mobile dont il est question, nous allons chercher à réduire la taille de certains composants électroniques et ajouter la fonction suivante :
Possibilité d'ajouter des capteurs en chaîne.
Pour cela, il est convenu d'utiliser deux types de capteurs dans un premier temps : un capteur de pression et un capteur de temperature/humidité. Il est convenu qu'il serait appréciable d'avoir des capteurs étanche à la plongée dans l'eau (IP67 ou supérieure serait idéal).
Enfin, le châssis devra être retravaillé pour être en une seule pièce et contenir l'ensemble des composants déjà existants.
Possibilites Hardware
Mini-carte Temperature
Ce capteur repond a toutes les contraintes : I2C, SMD, temperature et humidite, de taille correcte. Il a besoin d'etre soude a l'aide d'un four a refusion.
2) http://fr.farnell.com/honeywell/hih6130-021-001/capteur-humidicon-5-soic-8/dp/1961727
Ce capteur repond au cahier des charges. il demande d'etre alimente en 3.3V et demande donc un regulateur de tension. Il est soudable a la main.
3) Une autre solution envisageable serait de differencier deux capteurs, un de temperature et un d'humidite, sur la meme carte avec des adresses I2C differentes. En regardant chez le fournisseur Farnell, le prix semble superieur a la seconde solution qui offre les memes fonctionnalites/caracteristiaues en un seul composant.
Si l'on souhaite eviter l'utilisation d'un four a refusion, le second capteur est la solution. Si l'utilisation de ce four est possible, la premiere solution semble la plus adapte avec un circuit simple et un prix inferieur.
Mini-carte Pression
1) http://fr.farnell.com/honeywell/asdxavx010ng2a5/capteur-jauge-10-in-h2o-axial/dp/1784667
Ce capteur offre une mesure de pression differentielle entre la pression atmospherique courante et la pression qu'on lui applique. Alimente en 5V et de taille raisonnable, il communique en I2C avec le systeme.
2) http://fr.farnell.com/honeywell/asdxacx030pa7a5/capteur-30psi-absolue-axial/dp/1784657
Ce capteur offre une mesure de pression absolue. Alimente en 5V et de taille raisonnable, il offre lui aussi une communication I2C.
3) http://fr.farnell.com/honeywell/sscmann060pg2a3/sensor-60psi-smd-axial-gauge/dp/1823239
Ce capteur offre une mesure de pression diffenretielle comme le premier. Alimente en 3.3V et de taille legerement inferieur au precedent, il permet de communiquer en I2C.
Parmi ces trois capteurs, les deux premiers sont traversants tandis que le dernier est SMD. Je pense que cela n'est pas un probleme si l'on considere que l'avantage du SMD est le gain de place et l'economie financiere du au percage. Notre carte comportant principalement deux connecteurs RJ11, ce nouveau capteur ne viendra pas augmenter la taille de la carte ni rajouter un surcout de percage.
Le troisieme composant, SMD, existe aussi en pression absolu mais n'est plus disponible chez Farnell. De plus, son prix eleve ne favorise pas ce choix.
Au vu de l'application voulu, je pense que le second capteur est le plus adapte : pression absolu, I2C, taille correcte, prix abordable. Son prix legerement superieur sera compense par la suppression des composants necessaires a l'adaptation en tension et la possibilite de faire la carte en une seule couche au lieu de deux.
Liste de composants
Carte principale
Carte Temperature/Humidite
Composant | Quantite | Lien |
---|---|---|
Capteur Temp/Humi | 1 | http://fr.farnell.com/sensirion/sht21/capteur-d-humidite-temp-3x3mm/dp/1855468 |
Regulateur de tension | 1 | http://fr.farnell.com/texas-instruments/tps79325dbvr/regulateur-ldo-2-5v-sot-23/dp/1460963 |
Resistances 10 Kohm | 2 | par 5000 : http://fr.farnell.com/multicomp/mc0063w0603110k/res-couche-epaisse-10k-1-0-063w/dp/2130939
par 50 : http://fr.farnell.com/multicomp/mc0063w0603110k/res-couche-epaisse-10k-1-0-063w/dp/9330399RL |
Resistances 100 Kohm | 1 | par 5000 : http://fr.farnell.com/multicomp/mc0063w06031100k/res-couche-epaisse-100k-1-0-063w/dp/2131019
par 10 : http://fr.farnell.com/multicomp/mc0063w06031100k/res-couche-epaisse-100k-1-0-063w/dp/9330402 |
Condensateur 0.1uF | 2 | par 10 : http://fr.farnell.com/walsin/0603b104k500ct/condensateur-mlcc-x7r-0-1uf-50v/dp/2496834 |
Condensateur 0.47 uF | 1 | par 5 : http://fr.farnell.com/tdk/c1608x7r1h474k080ac/condensateur-mlcc-x7r-470nf-50v/dp/2346908 |
RJ11 femelle | 2 | https://www.sparkfun.com/products/132 |
Carte Pression
Composant | Quantite | Lien |
---|---|---|
Capteur de pression | 1 | http://fr.farnell.com/honeywell/asdxacx030pa7a5/capteur-30psi-absolue-axial/dp/1784657 |
Resistances 10 Kohm | 2 | par 5000 : http://fr.farnell.com/multicomp/mc0063w0603110k/res-couche-epaisse-10k-1-0-063w/dp/2130939
par 50 : http://fr.farnell.com/multicomp/mc0063w0603110k/res-couche-epaisse-10k-1-0-063w/dp/9330399RL |
Condensateur 0.1uF | 1 | par 10 : http://fr.farnell.com/walsin/0603b104k500ct/condensateur-mlcc-x7r-0-1uf-50v/dp/2496834 |
RJ11 femelle | 2 | https://www.sparkfun.com/products/132 |
Divers
3 cables RJ11 male-male
Schématique
Carte principale
La carte principale est realisee en se basant sur celle deja realisee pour la plateforme robotique. L'atmega etant remplace par un atmega de surface, les pins sont quelques peu differentes. L'equivalence est visible sur l'image ci-dessous :
On remarque aussi le changement du quartz ainsi que l'ajout d'un connecteur RJ11 femelle pour la connection I2C. L'ajout de cette connection implique de changer le branchement de "capteur_ligne2" et "capteur_ligne3" qui etait branches sur les ports SDA et SCL de l'atmega.
On obtient alors le schematique suivant :
Carte temperature
Il est conseille d'integrer le capteur de temperature choisi dans le circuit suivant (la tension d'alimentation conseillee du nouveau capteur est 3.0V et non 1.8V) :
Pour cela, il faut donc se pencher sur un regulateur de tension afin d'avoir une tension fiable et sans variation en entree. Le regulateur choisi est quant a lui conseille dans le circuit suivant :
En prenant en compte ces elements, on obtient donc le schematique complet de la mini-carte temperature suivant :
Carte pression
D'apres la documentation du capteur, les pins SDA et SCL demandent un resistance pull-up superieur a 1kohm et l'alimentation doit etre reliee a la masse avec une capacite comprise entre 0.1uF et 0.47uF. Il est donc choisi d'utiliser des resistances de 10kohm et une capacite de 0.1uF pour etre sur le meme format que la carte de temperature.
En prenant ces specificites en compte, on obtient le schematique suivant pour cette mini carte :
PCB
Les mini-cartes seront normees en dimension et en placement. Les percages pour les fixations sont places en coordonnees (25.042, 1.943) et (2.027, 53.684). Les mini-cartes auront pour dimension 31x59.
Carte principale
Pistes : 16;il
Vias : 0.4mm diameter / ring 0.3mm
Mini-carte Temperature
Pistes : 16mil
vias : 0.4mm diameter / ring 0.3mm
De la place est prevu autour du capteur de temperature pour que ce dernier ne soit pas influence par la chauffe possible des composants alentours.
Mini-carte Pression
Pistes : 24mil
vias : 0.4mm / ring 0.3mm
Programme C
Dans un premier temps, les differentes connections sont initialisees : i2c, serie, capteurs.
Ensuite, une boucle infinie prend place. La lecture des capteurs se fait de facon alterne avec un delai de 100ms entre deux capteurs. Si un capteur ne repond pas 5 fois d'affiles, il est choisi d'envoyer un code d'erreur a la place de la reponse habituelle.
Initialisation
Le port serie est initialise a 9600 baud par seconde. Apres l'initialisation dues deux ports, un delai de 50ms est prevu afin de laisser le temps au differents capteurs de s'allumer.
Le capteur de pression ne necessite pas d'initialisation particuliere. Le capteur de temperature/humidite quant a lui peut etre parametre pour choisir la resolution voulue.
Une resolution de 11bit est choisi pour chacun. Avec une amplitude de 175.72 degre, la precision en temperature est de 0.172degre celsius. Le capteur d'humidite offre une precision de 0.002%.
Livrables
Schematique & PCB : Fichier:-2016-IMA4-EC1-Schematique&PCB.zip
Sources
Documentation sur l'I2C de Honeywell (capteur de pression) : http://forums.parallax.com/uploads/attachments/63206/81041.pdf