Table des matières:
- Étape 1: Pièces et composants
- Étape 2: L'encodeur
- Étape 3: Sensibilité
- Étape 4: Mesure
- Étape 5: Assemblage
- Étape 6: Coder
- Étape 7: Schémas
- Étape 8: Du PoC à la production
- Étape 9: Galerie d'images
Vidéo: Measurino : une preuve de concept de roue de mesure : 9 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
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
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é
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
É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é:
Une façon d'utiliser une unité de mesure inertielle ? : 6 étapes
Une façon d'utiliser une centrale inertielle ? : Le contexte : Je construis pour le plaisir un robot que je souhaite déplacer de manière autonome à l'intérieur d'une maison. C'est un long travail et je le fais étape par étape. J'ai déjà publié 2 instructables sur ce sujet : un sur la fabrication d'un encodeur de roue un sur
Robot de suivi des couleurs basé sur une roue omnidirectionnelle et OpenCV : 6 étapes
Robot de suivi des couleurs basé sur une roue omnidirectionnelle et OpenCV : j'utilise un châssis de roue omnidirectionnel pour implémenter mon suivi des couleurs, et j'utilise un logiciel mobile appelé OpenCVBot. Merci aux développeurs de logiciels ici, merci. OpenCV Bot détecte ou suit en fait tout objet en temps réel via le traitement d'image
Robot à une roue : 3 étapes
Robot à une roue : Dans ce projet, je vais vous montrer comment fabriquer un robot ou un monocycle à une roue étape par étape afin que vous puissiez créer le vôtre. Ce robot peut s'équilibrer automatiquement en calculant l'inclinaison à l'aide du capteur MPU6050, il est composé de deux
Le Manta Drive : Preuve de concept pour un système de propulsion ROV. : 8 étapes (avec photos)
Le Manta Drive : Preuve de concept pour un système de propulsion ROV. : Chaque véhicule submersible a des faiblesses. Tout ce qui perce la coque (porte, câble) est une fuite potentielle, et si quelque chose doit à la fois percer la coque et bouger en même temps, le potentiel de fuite est multiplié. Ce Instructable décrit
Construisez un générateur aléatoire de musique et de lumière et apercevez la preuve de DIEU : 4 étapes
Construisez un générateur aléatoire de musique et de lumière et apercevez la preuve de DIEU : générer des nombres vraiment aléatoires semble être impossible. Il est cependant assez facile d'utiliser un microcontrôleur pour générer des nombres pseudo-aléatoires puis de les utiliser pour afficher des sons et des lumières de différentes couleurs. Alors que la musique qui est générée est n