Microcontrôleur avec encodeur rotatif et capacités Bluetooth [fermé]

user973671

Microcontrôleur avec encodeur rotatif et capacités Bluetooth [fermé]


Je cherche des conseils sur (ce qu’il faut utiliser / comment faire) un encodeur rotatif auquel je peux me connecter via Bluetooth. J’écris une application qui doit afficher à l’écran en temps réel à l’utilisateur le nombre de rotations pendant qu’il la tourne. De plus, j’ai besoin que le micro-contrôleur enregistre les révolutions par jour afin que je puisse garder une trace des révolutions si leur ordinateur est endormi.

Critères:

  1. Doit être autonome
  2. Doit être compatible Bluetooth avec un PC, Mac, Android et iPhone.
  3. Doit être capable de stocker jusqu’à 7 jours de données (ce serait une très petite quantité de données, juste le nombre de rotations par jour et l’horodatage).
  4. Doit être petit et effronté.

Je pensais à un microcontrôleur avec juste un encodeur rotatif et des capacités Bluetooth.

J’ai vu des microcontrôleurs comme l’Arduino et je pense qu’ils seraient bien pour commencer, mais je cherchais quelque chose qui pourrait réellement être utilisé dans un produit final.

jippie

Utilisez un module Bluetooth comme celui-ci: sparkfun.com/products/10559 Il apparaît comme un port série régulier pour le PC et comme un UART normal pour le microcontrôleur. Ensuite, tout ce dont vous avez besoin est un microcontrôleur qui peut décoder un encodeur rotatif (2 entrées numériques) et communiquer en utilisant UART (deux broches supplémentaires) et quelques octets EEPROM pour stocker les révolutions.

jippie

Quelle est la différence entre un Arduino et un « quelque chose qui pourrait effectivement être utilisé dans un produit final »?

user973671

L’impression que j’ai est qu’un Arduino est un outil d’apprentissage, pas quelque chose que vous verriez dans un vrai produit que vous achèteriez, comme un Fitbit.

user973671

Je constate que le WRL-10559 que vous avez mentionné est compatible avec Bluetooth v2.0. Savez-vous quelle version de Bluetooth il utilise? Merci

jippie

Non, c’est juste un coup aléatoire sur un moteur de recherche aléatoire. Recherchez «  éclatement de module Bluetooth  » et vous trouverez plusieurs modules à des prix variables.

Réponses


 Oli Glaser

Tout petit micro et un module BT bon marché devraient convenir à cela.

Par exemple, un PIC 12 ou 16F , avec quelque chose comme ce module BT (j’ai utilisé avec succès une version à montage en surface de l’un de ceux-ci dans un prototype récent) plus l’encodeur pourrait être assemblé très rapidement à des fins de preuve de concept. Côté PC, Java serait le meilleur pour que vous puissiez porter sur Android, Mac, Linux, etc.

user973671

Peu importe la langue avec laquelle le microcontrôleur est programmé? J’allais écrire le programme qui lit les données en c # pour windows, Objective C pour mac et java pour Android. Merci

jippie

J’irais pour un langage portable comme C ++. Vous n’êtes pas sûr des avantages / inconvénients de Java. L’avantage d’utiliser un langage portable (comme C ++) est que vous n’avez qu’à écrire (et maintenir) une seule arborescence source. Toutes les plates-formes prennent en charge C ++ (Win, Mac, Linux, AVR, PIC, …)

user973671

Parlez-vous d’utiliser C ++ pour le microcontrôleur? Merci

user973671

Désolé si c’est une question stupide, mais je n’ai jamais programmé de microcontrôleur. Merci

Oli Glaser

C est le langage si le choix pour les petits micros (ou assembleur) Certains des plus grands micros ont des compilateurs C ++ disponibles, mais pas quelque chose comme le PIC12 / 16/18 mentionné ci-dessus. @jippie parlait de C ++ pour votre côté PC.


 Gustavo Litovsky

TI vend une solution complète bluetooth + microcontrôleur (CC256x + MSP430 ou Stellaris). Découvrez leurs plateformes d’évaluation . La solution EZ430 est très agréable et devrait fonctionner pour vous car elle est compacte et vous pouvez connecter un encodeur rotatif.

user973671

Si je devais écrire un programme de démonstration sur l’Arduino, savez-vous si je pourrais le porter sur le CC256x + MSP430 ou Stellaris? Merci

Gustavo Litovsky

D’une certaine manière oui. Les deux sont programmés à l’aide de C, mais le CC256x + MSP430 a une certaine manière de faire les choses pour pouvoir envoyer les données. Le code Arduino n’est pas directement traduisible en code MSP430 / Stellaris.


 akohlsmith

quel est le taux de rotation? Pour combien de rotations par jour envisagez-vous?

Vous pourrez peut-être vous en sortir avec la puce Bluetooth et écrire pour son microcontrôleur pour surveiller votre encodeur. Le (ancien) BC4 a des options où vous pouvez écrire votre code pour une puce « virtuelle » fonctionnant à l’intérieur. Cela vous amènerait à une seule puce pour tout faire.

La manière traditionnelle de procéder consiste à utiliser n’importe lequel des modules Bluetooth facilement disponibles qui s’exposent comme des ports série Bluetooth, puis à utiliser un petit micro pour parler à leurs « vrais » ports série. D’autres ont déjà répondu avec des exemples de modules. Assurez-vous que vous utilisez un module avec lequel votre micro peut simplement parler, sinon vous devrez peut-être implémenter un protocole de niveau inférieur tel que H4, BCSP ou quelque chose pour l’utiliser. (et si vous empruntez cette voie, essayez l’excellent btstack de Matthias Ringwald ; j’ai réussi à le parer pour tenir dans un LPC2100 et parler à des téléphones portables.


 Ben Mordecai

La principale caractéristique que vous devriez probablement rechercher dans le microcontrôleur est les entrées haute vitesse. Votre encodeur sera complètement inutile si votre microcontrôleur ne peut pas suivre et tout cela ressemblera à du bruit (en supposant que vous utilisez un encodeur en quadrature). Vous devriez également faire des recherches sur les codeurs de filtrage du bruit pour la même raison.

Cela étant dit, si vous cherchez à créer un prototype (sans avoir vérifié la vitesse des entrées), allez avec l’Arduino car la plupart du travail est déjà fait pour vous et obtenez simplement un bouclier Bluetooth. Vous pouvez toujours chercher à créer vos propres Arduinos (ils sont open source après tout) et vous pouvez obtenir le prix autour de 3 $ par planche.

Si vous ne suivez pas la voie Arduino, il s’agit de découvrir un module Bluetooth et de voir quelles options d’interface sont disponibles.

[Modifier] Il ressort des commentaires que j’ai l’habitude d’utiliser des encodeurs à résolution plus élevée que de nombreuses applications générales l’exigent, donc j’ai peut-être surestimé la nécessité d’entrées à haute vitesse. Quoi qu’il en soit, vous devriez au moins vous poser la question de savoir quel type de résolution vous avez besoin et si vos entrées perdront des impulsions.

Chris Stratton

Vous auriez du mal à trouver un micro-contrôleur qui ne disposait pas d’entrées assez rapides. Cependant, une avec au moins deux interruptions de bord bidirectionnelles (idéalement lorsque les deux bords peuvent être activés en même temps) simplifiera le logiciel, bien que cela ne soit pas nécessaire.

Ben Mordecai

@ChrisStratton Cela ne devrait-il pas dépendre de la résolution de l’encodeur? Je viens du côté PLC des pistes et nous utilisons généralement des encodeurs à très haute résolution, de sorte que vous devez vous assurer que vous utilisez les entrées haute vitesse désignées, sinon vous perdrez le compte. Il est également sensible au temps d’analyse si vous n’utilisez pas d’interruptions ou de traitement parallèle pour trouver des transitions entre les analyses.

Chris Stratton

Les entrées sur un processeur sont généralement beaucoup plus rapides que celles que vous pourriez trouver sur un module intégré, surtout s’il a un multiplexage ou un filtrage générique. Ou travaillez-vous généralement avec des encodeurs ayant des taux de sortie MHz?

akohlsmith

vous n’avez pas vraiment besoin d’entrées haute vitesse; quoi que ce soit avec des compteurs d’événements de minuterie ou des broches d’interruption sur changement fonctionnerait (la meilleure solution étant la première). S’il compte des rotations de taux incroyablement élevées, il peut avoir besoin d’un meilleur micro mais à peu près tout devrait être capable de gérer cette partie de la conception.

Ben Mordecai

Je suis habitué aux encodeurs MHz, principalement dans les applications de mouvement servo industriel. Il est courant d’avoir des millions d’impulsions par révolution.

 

[fermé], #et, avec, Bluetooth, capacités, encodeur, microcontrôleur, rotatif

 

google

Laisser un commentaire

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