Table des matières:

Measurino : une preuve de concept de roue de mesure : 9 étapes
Measurino : une preuve de concept de roue de mesure : 9 étapes

Vidéo: Measurino : une preuve de concept de roue de mesure : 9 étapes

Vidéo: Measurino : une preuve de concept de roue de mesure : 9 étapes
Vidéo: Smart Money Concepts Fr - LA TRADING RANGE (TR) : Wyckoff Avancé. RÉACCUMULATION / REDISTRIBUTION. 2024, Décembre
Anonim
Measurino: une preuve de concept de roue de mesure
Measurino: une preuve de concept de roue de mesure

Measurino compte simplement le nombre de rotations d'une roue et la distance parcourue est directement proportionnelle au rayon de la roue elle-même. C'est le principe de base d'un odomètre et j'ai commencé ce projet principalement pour étudier comment garder le circuit (géré par un microcontrôleur Arduino), compatible avec plusieurs gammes de distances, des millimètres aux kilomètres, et pour évaluer d'éventuels problèmes ou améliorations.

Étape 1: Pièces et composants

  • Arduino Nano rev.3
  • Écran OLED 128 × 64 (SSD1306)
  • Encodeur rotatif photoélectrique incrémental (400P/R)
  • Roue en caoutchouc pour modèle réduit d'avion (51 mm de diamètre)
  • 2 boutons poussoirs
  • pile 9v

Étape 2: L'encodeur

L'encodeur
L'encodeur
L'encodeur
L'encodeur

Pour ce projet, j'ai testé plusieurs encodeurs rotatifs bon marché, mais je les ai immédiatement rejetés en raison de problèmes de précision/sensibilité. Je suis donc allé à l'encodeur rotatif photoélectrique incrémental de DFRobot - 400P/R SKU: SEN0230. Il s'agit d'un codeur rotatif photoélectrique incrémental industriel avec un matériau en aluminium, une coque en métal et un arbre en acier inoxydable. Il génère un signal d'impulsion orthogonal biphasé AB par la rotation du disque de réseau et de l'optocoupleur. 400 impulsions/tour pour chaque phase et 1600 impulsions/tour pour la sortie biphasée 4 fois. Cet encodeur rotatif prend en charge une vitesse maximale de 5000 tr/min. Et il peut être utilisé pour la mesure de la vitesse, de l'angle, de la vitesse angulaire et d'autres données.

L'encodeur rotatif photoélectrique a une sortie à collecteur ouvert NPN, vous devez donc utiliser des résistances de rappel ou activer le rappel interne de l'Arduino. Il utilise une puce de régulateur de tension 750L05, qui a une entrée d'alimentation à large plage DC4.8V-24V.

Étape 3: Sensibilité

Sensibilité
Sensibilité

Cet encodeur rotatif optoélectrique a vraiment une grande sensibilité, ce qui le rend parfait pour les applications de contrôle et de positionnement d'arbre. Mais pour mon propos, c'était trop sensé. Avec une molette de 51 mm, cet encodeur a une sensibilité de 0,4 mm, ce qui signifie que si votre main a des tremblements minimes, ils seront enregistrés. J'ai donc baissé la sensibilité en ajoutant une hystérésis dans la routine d'interruption:

annuler l'interruption()

{ car je; i = digitalRead(B_PHASE); si (i == 1) compte +=1; sinon compte -=1; if (abs(count) >= hystérésis) { flag_A = flag_A+count; compte = 0; } }

Cette astuce suffisait à donner une bonne stabilité à la mesure.

Étape 4: Mesure

Sélectionnez votre unité de mesure (décimale ou impériale) puis positionnez simplement la molette avec son point de contact sur le début de votre mesure, appuyez sur le bouton poussoir Reset et maintenez-le en rotation jusqu'à la fin. De gauche à droite la mesure augmente et s'additionne, de droite à gauche elle diminue et soustrait. Vous pouvez également mesurer des objets courbes (la forme de votre voiture, la main courante d'un escalier en colimaçon, la longueur de votre bras de l'épaule au poignet avec le coude plié, etc.).

Une rotation complète d'une roue de diamètre=D mesurera une longueur de D*π. Dans mon cas, avec une roue de 51 mm, cela fait 16,02 cm et chaque tick mesure 0,4 mm (voir paragraphe Sensibilité).

Étape 5: Assemblage

Le PoC a été réalisé sur une maquette pour démontrer les circuits. Chaque composant a été fixé sur la carte et l'encodeur rotatif est connecté à un bornier à vis 2x2 pôles. La batterie est une batterie standard 9v et la consommation électrique totale du circuit est d'environ 60mA.

Étape 6: Coder

Pour l'affichage, j'ai utilisé la U8g2lib qui est très souple et puissante pour ce genre d'écrans OLED, permettant un large choix de polices et de bonnes fonctions de positionnement. Je n'ai pas perdu trop de temps à remplir l'écran d'informations, car il ne s'agissait que d'un Poc.

Pour lire l'encodeur, j'utilise des interruptions générées par l'une des 2 phases: chaque fois que l'axe de l'encodeur se déplace, il génère une interruption vers Arduino liée à la montée de l'impulsion.

attachInterrupt(digitalPinToInterrupt(A_PHASE), interruption, RISING);

L'affichage passe automatiquement des millimètres, aux mètres, aux kilomètres et (si sélectionné à partir du bouton-poussoir) des pouces, aux yards, aux miles, tandis que le bouton-poussoir RST remet la mesure à zéro.

Étape 7: Schémas

Schémas
Schémas

Étape 8: Du PoC à la production

Pourquoi est-ce une preuve de concept ? En raison de nombreuses améliorations qui pourraient/devraient être apportées avant de construire un équipement pleinement fonctionnel. Voyons en détail toutes les améliorations possibles:

  • Roue. La sensibilité/précision de Measurino dépend de la roue. Une roue plus petite pourrait vous donner une meilleure précision dans la mesure de petites longueurs (de l'ordre du millimètre au centimètre). Une roue beaucoup plus grande avec une flèche d'extension permettra de marcher sur la route et de mesurer des kilomètres. Pour les petites roues, le matériau doit être pris en compte: une roue tout en caoutchouc pourrait légèrement se déformer et affecter la précision, donc dans ce cas je proposerai une roue en aluminium/acier avec juste un ruban fin pour éviter les glissades. Avec un montage logiciel trivial (sélectionnez le bon diamètre de roue avec un interrupteur), vous pouvez envisager des roues interchangeables pour s'adapter à n'importe quelle mesure, en utilisant un connecteur à 4 broches (c'est-à-dire: port usb).
  • Logiciel. En ajoutant un autre bouton poussoir, le logiciel pourrait également s'occuper de mesurer des surfaces de rectangles ou d'amplitude d'angles. Je conseille également d'ajouter un bouton poussoir "Hold" pour figer la mesure à la fin, en évitant de déplacer la molette par inadvertance avant de lire la valeur sur l'afficheur.
  • Remplacez la roue par une bobine. Pour les mesures courtes (à quelques mètres près), la roue peut être remplacée par une bobine à ressort contenant du fil ou du ruban adhésif. De cette façon, il vous suffit de tirer le fil (en faisant tourner l'arbre du codeur), de prendre votre mesure et de regarder l'affichage.
  • Ajouter l'affichage de l'état de la batterie. La broche de référence Arduino 3.3v (précision à moins de 1%) peut être utilisée comme base pour le convertisseur ADC. Ainsi, en effectuant une conversion analogique-numérique sur la broche 3,3 V (en la connectant à A1), puis en comparant cette lecture à la lecture du capteur, nous pouvons extrapoler une lecture réaliste, quel que soit le VIN (tant qu'il est au-dessus de 3,4 V). Un exemple de travail pourrait être trouvé dans cet autre de mes projets.

Étape 9: Galerie d'images

Conseillé: