Go Down

Topic: analog inputs shield (Read 4085 times) previous topic - next topic

Xplorer

Bonjour !
je débute avec Arduino, et j'apprend petit à petit le fonctionnement de cet environnement.
Mais par contre je ne comprends pas encore quelque chose de crucial pour mon projet et j'aimerais vous demander votre avis si vous le voulez bien.

je vais partir d'un exemple assez clair concernant les contrôles. Imaginez un ampli avec des contrôles :  basse, medium, aïgues, volume ..
Ils utilisent chacun une entrée analogue si on veut, indépendante des autres. Maintenant avec l'environnement Arduino je commence à percevoir que cela fonctionne très différement ..
Pour mon projet j'aurais besoin d'au moins 48 entrées analogues, à priori grâce à ce shield :

http://shieldlist.org/appliedplatonics/analoginput

j'aurais besoin d'utiliser au moins 48 potentiomètres ou encoders pour indiquer à l'arduino des valeurs différentes pour un programme, et chacune doit être indépendante.

J'ai fini par comprendre qu'il y avait une sorte de sample rate, 9500, qui se divise selon le nombre d'entrées. donc là, 9500/48 = 197...  cela affecte t-il donc uniquement la vitesse à laquelle l'arduino comprendra le changement de valeur ?
Et est-ce que cela affectera l'indépendance des contrôles ? 
( dans mon exemple avec l'ampli, on ne pourrait vraiment pas utiliser une entrée analogue si il y a quatre types d'informations différentes, vous voyez ? chacune doit travailler indépendemment les unes par rapport aux autres )

donc si jusque là je ne me suis pas trop trompé ( ? ) j'aurais maintenant besoin de comprendre le sample rate nécessaire pour une telle opération. 197 samples/ seconde, ça veut dire quoi concrêtement ? Le potentiomètre devra faire varier combien de samples ? ça me donnerait une idée de la vitesse à laquelle le changement de valeur induit par une rotation du potentiomètre ( ou encoder ? ) sera compris par l'arduino uno R3.

Merci !

barbudor

Xplorer

Que fait-donc ce shield ?

Il utilise 6 multiplexeur analogique 8 vers 1, 1 pour chaque entrée de ta carte Arduino.
Un multipléxeur, c'est un composant à 8 entrées et 1 sortie. En fonction du nombre binaire (3 bit) sur ses entrées de commande, il va choisir 1 des signaux d'entrée et l'envopyer vers sa sortie. C'est la version électronique de 8 relais dont 1 seul est actif en même temps.

Ce shield va donc te permettre de mesurer les unes après les autres les 48 entrées.

Il est apparemment fournit avec une bibliothèque qui fait tout cela pour toi et qui mémorise les valeurs dans des variables globales où tu n'a plus qu'à les lire:
Quote
This shield gets you 48 analog inputs, and the provided Arduino libraries allow you to query each input manually, or have the system update shared variables for you up to 186 times a second (33S/s available over serial)


Ce que dit ce texte c'est que effectivemment, si tu utilises 48 entrées, chaque entrée sera mise à jour 186 fois par seconde.

La performance globale d'échantillonnage d'environ 9000 mesures par seconde doit être partagée entre toutes les entrées.

Tu nous prépare une table de mixage numérique ?   :)


Xplorer

ha ha ! pas loin, c'est appliqué à la musique effectivement, merci pour tes explications. Je n'ai pas super bien compris celles du début avec les 6 multiplexeur analogique 8 vers 1 et les 3 bits. Mais je comprends mieux maintenant, la table de mixage est un super bon exemple ! en gros, si je voulais que les 48 entrées soient utilisées pour une table de mixage, chaque valeur sera mise à jour 186 fois par seconde, et c'est plus qu'il n'en faut non ?   c'est tout de suite plus clair pour moi, et si j'ajuste plusieurs contrôles en même temps, même si un seul est actif à la fois selon ce rythme, j'aurai quand même l'illusion qu'ils fonctionnent tous en même temps !

Génial ! me faut ce shiel maintenant ! Est-ce que tu penses que les 6 entrées analogiques d'origine s'additionneront aux 48 entrées ? ça me serait utilie ...
Et est-ce que tu penses qu'on peut mettre deux shields comme ça pour en avoir encore plus ? ( après, je ne sais pas comment ça se calcule, et quelles entrées sont sacrifiées )

toujours avec la table de mixage, on peut même imaginer que 30 réactualisation par seconde pour chaque contrôle seraient suffisantes non ?

me faudrait peut-être même plus que 48 entrées analogiques ...

merci barbudor !

barbudor

Non les 6 entrées sont utilisées et reçoivent chacune la sortie d'un des multiplexeurs

Imagine un multiplexeur électronique comme un bon vieux commutateur mécanique rotatif genre :


Sauf qu'au lieu de tourner à la main pour choisir le signal c'est le logiciel fournit qui le fait.

Il y en a 6 comme çà sur le shield ce qui permet pour chacune des 6 entrées de l'arduino de lire 1 parmi 8 signaux. Donc 6 * 8 = 48.

Xplorer

oui c'est vrai, j'avais oublié.

Et est-ce qu'à ta connaissance je pourrais rediviser encore quelques unes de ces 48 entrées en quelques unes de plus ? un petit shield de shield ? ^^

barbudor

En théorie oui.

Par défaut tu ne peux pas empiler 2 de ces shields sans les modifier. Ce qui est possible au vue du schéma.
Il suffit de "lever la patte" INH de chacun des multiplexeur 4051 et de la relier à un port Digital du connecteur de shield.
Idem sur le 2ème shield mais en le reliant à un port Digital out différent.
En mettant le bon Digital out à 0, tu active l'un ou l'autre des shields.

Par contre le logiciel founi ne sera pas utilisable directement et devra être modifié en conséquence.

Une autre solution serait de remettre des multiplexer 4051 en amont d'une ou plusieurs entrées du shield mais je dirait que c'est encore pire d'un point de vue logiciel puisqu'il faut gérer 2 niveaux de mulitpléxage en cascade.

Je serait tenté par la 1ère solution. J'ai jeté un coup d'oeil au code fournit. C'est basic donc facile à ajouter le support d'un 2eme shield.

Par contre : 2 fois plus d'entrées = 2 fois plus lent : ~90 mesures par seconde par entrée.

Au fait, la doc complète du shield en question est là : http://www.appliedplatonics.com/anshield/

Xplorer

ouh là !!!  c'est balèze ! et il faut le fabriquer soi-même ce shield ? C'est pas que je ne puisse pas mais bon si je peux juste l'acheter quelques part ...

comme modifier un code du logiciel fourni, ou ajouter des multiplexers en cascade etc est un petit peu au dessus de ma compréhension de cet environnement, à moins d'être assisté et éduqué, je pense aussi à une troisième solution :

avec une entrée digitale, switcher quelques unes des entrées analogiques pour une autre affectation. C'est moins confort mais bon ...

mais même 30 ou 40 mesures par seconde je crois que ça m'irait toujours ! c'est comparable à l'ajustement momentané que l'on peut faire sur un ampli en tournant le bouton des aïgues , le volume ...  sauf que là il y aurait juste une bonne cinquantaine de volumes si on veut ! ^^

mais je compte prendre plusieurs mois pour faire ce projet, puisque j'en ai plein d'autres ( j'ai cinq amplis marshall des 60' à construire !  et des effets guitare etc ... )

barbudor

Je pense qu'il s'achete en kit de toute façon. A 20$ c'est le circuit imprimé, les connecteurs shield, les supports de circuit et les circuits.
Pour moi c'est a toi de faire les soudures des connecteurs et des supports de circuits.
Puis tu enfiche les circuits.
De toute façon, si tu suis le lien "Buy now", ca te dit : produit plus disponible...

Ce que je propose est une modification mineure du hardware ainsi que du logiciel.

On ne fait pas de la mécanique dans se salir les mains.
On ne fait pas de l'électronique sans échapper un jour ou l'autre au fer à souder.

Quote
avec une entrée digitale, switcher quelques unes des entrées analogiques pour une autre affectation. C'est moins confort mais bon ...


Mais ??? C'est justement ce que fait ce shield !
C'est la réponse la plus simple a ton besoin.

Xplorer

oui oui , je le concois bien et d'ailleurs ça ne me dérange pas de souder, mais je ne saurai pas bien ce que je fais par contre.
mais si tu me guides, pas de problème !
Quote

avec une entrée digitale, switcher quelques unes des entrées analogiques pour une autre affectation. C'est moins confort mais bon ...

Mais ??? C'est justement ce que fait ce shield !
C'est la réponse la plus simple a ton besoin.


oui oui, mais je disais juste que certains de ces contrôleurs multiplexés pourraient être "multiplexés" par un contrôle digital, juste pour choisir la fonction d'un contrôleur : fonction A, ou fonction B en appuyant sur un bouton.

barbudor

Pas de problème pour te guider.
Si par hasard tu es dans le coin de Velizy - Meudon - Clamart - Bièvres, je peux t'aider en personne.

Bon, en attendant je te suggère de regarder si ce shield est achetable puisque sur le site il disent pas dispo. Contacte les.
ou cherche un shield éqivalent.

Quand tu sera prêt, on finalise les étapes théoriques avant de passer à la pratique  :D

Michel_B

Bonsoir,

Il me semble que c'est ce que tu veux : http://www.sparkfun.com/products/9832
++

barbudor

+1

En plus celui-ci utilise des multiplexeurs 16 vers 1.
Ce qui veut dire qu'il offre toujours 48 entrées mais en utilisant que 3 entrées analogiques. (3 x 16 = 48)
Donc il te reste toujours 3 autres entrées dispo pour autre chose.

D'une façon similaire à ce que je te suggérais pour l'autre shield tu peux aussi en empiler un 2eme pour autant que tu le bricole :
1) 1ere solution pour en empiler 2 :
- Comme précédement, il faut dégager la broche ENable de chacun des circuits multiplexeur, les relier ensemble et relier à une pin Digital out.
- Le faire sur les 2 shields en utilisant un pin Digital out différente pour chaque shield.

2) 2eme solution
- "Charcuter" (couper 3 pistes) un seul shield pour qu'il utilise les 3 entrées analogiques suivantes.

La 2eme solution semble plus facile car lever les pattes sur des CMS c'est pas forcément à la portée d'un débutant.

Xplorer

Vous êtes top les mecs ! merci !
oui, deux shields mux comme ça et c'est bon !
mais ça sera un projet de longue haleine que je mettrai parfois longtemps en standbye parceque j'ai des amplis marshall à construire, des effets etc ... soulever des pattes de CMS je sais pas ça devrait aller je pense, ajuster toutes ces boards ça devrait aller, mais je vais aussi avoir besoin d'un shield midi.

j'ai vu cet adaptateur de shield, ça devrait être intéressant ..

http://www.sparkfun.com/products/11002

donc mettons qu'en gros il y ait 90 lectures par seconde pour 48 entrées , et peut-être 48 autres entrées d'ailleurs ..

donc 11 ms entre chaque lecture. si je met une seconde à tourner le bouton , ça va largement non ? ^^

merci les mecs, et Barbudor oui pourquoi pas, moi je suis dans l'ouest de paris.
je vais déjà patienter avant de recevoir les shields nécessaires, faire des tests pour me rendre compte avec des potentiomètres etc , expérimenter la théorie .. et essayer de programmer mon architecture déjà avec six entrées analogiques. il me faut aussi pas mal d'entrées digitales.

barbudor

Effectivement, ce genre de shield permet de "re-mapper" (on dit comment en français ?) les pin entre dessus et dessous.
Mais bon, l'empilage de trop de shield, j'aime pas trop.
Moi je prend le cutter et le fer à souder  ]:D

Go Up