Arduino et les shields : demystification svp

Bonjour,

delirii:

  • l'idée est de faire une carte d'acquisition de données, qui échantillonnerait principalement des données analogiques à une fréquence entre 5Hz et 50Hz selon la nature des choses à mesurer.

Dans une plage de 5Hz/50Hz ça doit être jouable, à voir comment doit ce comporter le reste du montage.

delirii:
Maintenant un peu de piment. Dans la première version, la carte doit etre en mesure de :

  • collecter différentes mesures analogiques (5 tensions à priori, que je ferais en sorte d'être dans la plage 0-5V)
  • collecter des données provenant d'un accéléromètre (le nunchuk de wii me plait bien car cheap)
  • piloter un servo moteur
  • envoyer les données collectées via bluetooth, à la fréquence de l'échantillonnage à un périphérique externe (qui traite/aggrège ensuite tout ce joli monde)

Pour la collecte des 5 tensions entre 0-5v pas de probléme l'arduino sait faire ^^
Pour le nunchunk de wii, en I2C hardware avec les 5 tensions à mesurer ça va pas passer sur une arduino classique, par contre en software avec SoftI2CMaster ça passe sans probléme.
Pour le servomoteur, la aussi pas de probléme, avec la librairie officiel "servo" ce sera simple.
Pour l'envoi en bluetooth il y a deux solutions, la solution "low cost" à savoir un shield bluetooth @ebay pas chére mais qui marche nikel (les chinois, les taxes sur les normes bluetooth ils connaissent pas trop ^_^) ou la solution "gold" à savoir utiliser un bluesmirf/bluemodem de sparkfun.

delirii:
Dans une version ultime, full power, la carte évoluerait ainsi :

  • plus besoin de bluetooth finalement : on fait tout en local
  • besoin d'une unité pour stocker les données (genre SD card)
  • besoin d'un module GPS 5Hz ou plus (1Hz redhibitoire)
  • besoin d'un module d'affichage (matriciel retro eclairé taille 4" environ, c'est pas pour de la video hein, juste pour afficher des données de façon lisible)

Pour le stockage sur carte SD, il existe de nombreuse shield qui marche trés bien avec la librairie SD (ou avec sdfatlib).
Pour le module GPS, si il marche avec un port série NewSoftSerial devrait faire l'affaire.
Pour le module d'affichage, un petit glcd mono-couleur ou un écran TFT + shield à voir.

delirii:

  • il existe plein de jolis shields mais difficile de savoir précisément qui cohabite avec qui, dans quelle limite on peu fabriquer un empilement viable de tout ceci. => Quels conseils sur ce point ?

Pour avoir une idée des possibles problémes entre shield il existe le site shieldlist.org qui regroupe les "pinout" de beaucoup de shield du commerce, aprés c'est surtout une question d'expérience, un shield fonctionnant en spi peut marcher avec une autre shield en spi si les broches SS ne sont pas les même, de même pour l'i2c, ... au final il y a toujours un moyen de faire cohabiter deux shield ensemble moyennant quelques bidouillages.

delirii:

  • Entre une Arduino Uno et une Mega, la compatibilité avec les shields est elle strictement identique ? Y a t'il des pieges ?
  • Entre une Arduino Uno et une Mega, pour mon besoin, laquelle serait adaptée ?

La compatibilité arduino classique <> mega est relativement vicieuse, en faite tout est "identique", ou presque, le port spi n'est pas au même endroit, de même que le bus i2c, il n'y a pas de broche "comparateur/interruption", ... que des choses qui ne se vois pas quand on débute mais qui peuvent bloquer tout un projet des qu'en s'en rend compte.

Dans ton cas un board UNO semblerait suffire au niveau du nombre d'entrées / sorties, par contre pour la puissance de calcul derrière ça risque d'être limite niveau ram/timer, une carte chipkit pourrait être une solution envisageable mais pour un débutant passer directement sur une plateforme arduino PIC32 risque d'être un peu déstabilisant ...
Je pense que pour ta version 1 tu devrait prendre un carte UNO, de cette manière tu n'aura pas de probléme avec les shield SD (qui fonctionne en spi) et tu devrais pouvoir géré tout ce que tu cite dans la version 1, et avec un peu de temps pour optimiser le code la version 2 devrait pouvoir passer dessus.