Lectures rapides du capteur

Morten Y

Lectures rapides du capteur


Je développe un enregistreur de données pour une utilisation dans les écoles secondaires comme ( http://www.pasco.com ). La principale différence est que le mien est principalement censé être utilisé avec un iPad. J’ai une connexion entre un micro contrôleur et un iPad opérationnel, mais j’ai une question concernant la communication entre les capteurs et le «  hub  » qui est la partie qui permet de connecter jusqu’à 3 capteurs à l’iPad.

Au niveau du prototype, mon hub se compose d’un Atmega328 (arduino) et les capteurs sont simplement connectés directement aux broches du convertisseur A / N.

Mais comme ce système est censé prendre en charge une variété de capteurs, cette solution n’est pas assez générique (c’est-à-dire que si un capteur de distance doit être connecté, il ne fonctionnerait pas sur la broche anlog, car ce serait la différence entre 2 horodatages). Je pense donc à ajouter un microcontrôleur dans chaque capteur et laisser ce microcontrôleur communiquer avec le microcontrôleur du hub, qui transmettra ensuite les données à l’iPad.

Quels protocoles utiliser pour communiquer entre ces microcontrôleurs? Et est-ce qu’il reste du chemin à parcourir?

  1. La longueur du fil serait au maximum de 2 m.
  2. Le nombre maximum de fils est de 4 et il devrait inclure +5 et GND au capteur.
  3. Les lectures doivent dans certains cas être rapides de 20 Hz ou de préférence encore plus.
  4. Il devrait être possible d’envoyer une sorte d’identification le long du concentrateur, afin que le concentrateur sache quel type de capteurs est connecté.

Il est possible de voir une vidéo du prototype ici .

Réponses


 Anindo Ghosh

Pour plusieurs capteurs, un assortiment d’analogiques et numériques, une solution simple serait d’utiliser un Arduino Mega avec un  » Mega Sensor Shield  » ( bas de page ) (11-12 $) qui lui est attaché. DfRobot propose un Mega Sensor Shield avec un connecteur XBee à bord (18-20 $), ce qui pourrait être encore plus utile:

Blindage Mega Sensor avec connecteur xBee

Cette combinaison permet de brancher différents capteurs, car chacun des 54 E / S numériques et 16 analogiques de l’Arduino Mega est mis en évidence dans des en-têtes à 3 broches séparés constitués de signal, de masse et de Vcc (5 volts). Ainsi, les capteurs qui ont besoin d’énergie le recevraient également du bouclier de capteur.

Comme les cartes Arduino elles-mêmes ne peuvent pas fournir plus de 200 à 500 mA par carte, selon les spécificités de la carte, le Shield Shield possède également un connecteur pour accepter l’alimentation d’une verrue murale. L’Arduino est ensuite éteint du bouclier, comme tous les capteurs.

La raison de recommander le connecteur XBee est que l’intégration de l’enregistrement à distance des données, via un module Bluetooth ou WiFi XBee, devient facile. Cela est particulièrement utile dans un environnement où les longs câbles reliant l’emplacement du capteur / enregistreur à un ordinateur pour la visualisation des données ou le stockage à long terme présentent des risques de dommages.

Les blindages des capteurs sont également disponibles avec un module de carte SD à bord ou des connecteurs fournis pour un. Cela peut également être utile si l’enregistreur de données doit stocker localement de gros volumes de données.


 pjc50

20 Hz n’est pas particulièrement rapide – 20 kHz devraient être réalisables dans des conditions normales.

Les options évidentes sont:

  • Série générique
  • I2C
  • Dallas 1-Wire (en fait un fil + terre)
  • USB

Les deux premiers sont disponibles sur la plupart des microcontrôleurs. I2C n’a pas été vraiment conçu pour faire descendre les fils, mais fonctionne quand même assez bien. Vous pouvez mettre plusieurs appareils sur une même ligne avec différentes techniques. Certains capteurs (par exemple, la température) sont disponibles avec des interfaces I2C intégrées. Il est conçu pour être interrogé par le périphérique maître, qui choisit également la vitesse d’horloge pour la transmission.

UART série est le plus facile à utiliser et à déboguer.

1-Wire est propriétaire et plus difficile à mettre en œuvre vous-même, mais rend le câblage trivial. C’est plus lent que I2C.

L’USB a toute la détection automatique et la facilité d’interfaçage avec un PC, mais nécessite un matériel spécial sur le microcontrôleur et est généralement beaucoup plus exigeant. C’est aussi le plus rapide de loin.

Morten Y

Merci. À quelle vitesse serait-il possible d’obtenir les données de 3 capteurs sur I2C?

pjc50

Je m’attends à ce qu’une vitesse de bus de 100 kHz fonctionne correctement; le nombre de lectures qui se traduit dépend du protocole, mais ce sera plusieurs milliers par seconde.

Morten Y

J’ai essayé de le configurer avec un réseau I2C avec deux Arduinos qui fonctionnent bien. Mais comme il existe une variété de capteurs, comment pourrais-je demander des données aux 3 ports du concentrateur? Ils devraient avoir un identifiant à partir duquel je peux demander des données, et ceux-ci devraient être uniques. Je ne vois pas vraiment comment il serait possible d’utiliser I2C.

pjc50

Si chaque lien du concentrateur était point à point, tous les périphériques esclaves pouvaient avoir le même ID I2C. (IE trois bus séparés, dont chacun n’a que deux périphériques. Le périphérique maître devrait faire son implémentation de bus dans le logiciel pour certains des ports)

 

capteur, du, lectures, rapides

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *