» Électronique » Arduino »Mesureur de distance de roue (curvimètre) sur Arduino faites-le vous-même

Mesureur de distance de roue à faire soi-même (curvimètre) sur Arduino

Bonjour à tous! Maintenant, je vais essayer de parler en détail de la façon de créer le curvimètre le plus simple et le plus abordable.

Mais d'abord, découvrons ce que c'est et pourquoi c'est nécessaire. En fait, son nom nous dit son but. Il est formé du mot latin curvus, qui signifie courbe ou ondulé. Autrement dit, un curvimètre est un compteur de distance à roues ou à rouleaux. Deux types de courbures sont distingués: les petits (cartographiques), qui sont généralement utilisés pour les mesures sur la carte, et les grands (route), qui sont généralement utilisés pour mesurer la longueur des sections courbes des autoroutes déjà existantes. Ils peuvent être utilisés partout où cela est gênant ou impossible à mesurer avec la roulette standard, donc le projet promet d'être intéressant.

La première chose à prendre en compte lors de la construction du curvimètre est une roue ou un rouleau. Elle doit être suffisamment petite pour que la précision de l'instrument soit élevée, en même temps, elle doit être suffisamment grande pour que la valeur des lectures ne soit pas grandement affectée par l'inégalité de la surface mesurée. Dans mon cas, la roue a un diamètre de 14 centimètres.

Vous devez maintenant déterminer le matériau et la taille de la structure. J'ai utilisé un arbre.

Sur les barres, j'ai fait un marquage et fait les coupes et les trous nécessaires.

J'ai ensuite assemblé les pièces usinées à l'aide de petites vis autotaraudeuses.
Maintenant, s'écartons un peu du curvimètre lui-même et réfléchissons à la façon dont cette chose peut même déterminer la distance? Tout est assez simple. Nous avons juste besoin de calculer le nombre de tours de la roue et de le multiplier par la longueur de sa circonférence extérieure, et il est encore plus facile d'ajouter une valeur de longueur à chaque fois que la roue fait une autre révolution.

Pour compter chaque révolution dans le cas le plus simple, vous pouvez utiliser le "contact coulissant". Cependant, je ne recommande pas d'utiliser un tel mécanisme de référence. Il est préférable d'utiliser un interrupteur à lames ou un capteur à effet Hall.

Il est temps d'essayer sur une roue. Je vais le fixer avec un long boulon. Nous trouvons un endroit sur le cadre où la jante de roue est aussi proche que possible de celle-ci et marquons avec des traits. Autour de cette zone, nous devons installer le commutateur à lames.

Sur la roue, vous devez installer un petit aimant.Assurez-vous que sa force sera suffisante pour fermer les contacts du commutateur à lames.
Maintenant, nous serons engagés dans des "cerveaux" de système. Dans mon cas, ce sont des frais Arduino UNO. Il lira l'état du commutateur à lames et transmettra des données via la connexion Bluetooth, en utilisant le module HC-05, au téléphone. À propos, l'interrupteur à lames est connecté à la carte comme un bouton ordinaire. Je pense que la connexion du module Bluetooth ne devrait pas poser de problème.

Quant au code lui-même, il est très simple. Et j'ai essayé de le commenter pour que tout soit le plus clair possible.

int gercon = 12; // connecté l'interrupteur reed à 12 broches
double distance = 0; // a créé une double variable pour stocker la distance
void setup () {
   Serial.begin (9600); // connecté une connexion série
 }
  boucle vide () {
/ * Ensuite est la boucle if. Si l'interrupteur à lames est fermé, le calcul de distance suivant a lieu. La valeur 0,46472 est déjà la longueur calculée d'un tour de roue. Pour éviter les données "supplémentaires", ajoutez un délai de 200 millisecondes et affichez les lectures
* /
   if (digitalRead (gercon) == HIGH)
   {
 distance = distance + 0,46472;
 retard (200);
 Serial.println (distance);
}
  } 


Voici notre curvimètre et prêt!

Faisons quelques courses d'essai. Tout fonctionne très bien!


Vous pouvez regarder une vidéo sur l'assemblage de cet appareil, peut-être y trouverez-vous quelque chose d'intéressant.
[media = https: //youtu.be/kx_7ztPsLws]

Bonne répétition du projet!
5
5
7

Ajoutez un commentaire

    • souriresouritxaxaokne sais pasYahoonea
      patronse gratterfououioui-ouiagressifsecret
      désolédansedanse2danse3pardonaiderles boissons
      arrêteramisbonbonsifflerévanouirla langue
      fumerapplaudircraydéclarermoqueurdon-t_mentiontélécharger
      chaleurirritérire1mdaréunionmasquagenégatif
      not_ipop-cornpunirlireeffrayerfait peurrecherche
      railleriemerci_vousçato_clueumnikaigud'accord
      mauvaisabeilleblack_eyeblum3rougirse vanterennui
      censuréplaisanteriesecret2menacervictoireyusun_bespectacled
      shokrespektlolprévalubienvenuekrutoyya_za
      ya_dobryiaidene_huliganne_othodifludinterdirefermer
1 commentaire
Invité Sergey
Pourquoi UNO quand attiny13 suffit pour les yeux ...
Quant au code, vous devez au moins ajouter une vérification que l'aimant a quitté l'interrupteur à lames, car dans cette implémentation, à une certaine vitesse, et plus encore si la roue s'arrête, elle peut réussir à être traitée plus d'une fois ou pas du tout traitée. Pour ce faire, ajoutez simplement une variable globale et vérifiez son état avant de calculer la longueur, quelque chose comme:
int gercon = 12; // connecté l'interrupteur reed à 12 broches
int i = vrai;
double distance = 0; // a créé une double variable pour stocker la distance
void setup () {
Serial.begin (9600); // connecté une connexion série
}
boucle vide () {
/ * Ensuite est la boucle if. Si l'interrupteur à lames est fermé, le calcul de distance suivant a lieu. La valeur 0,46472 est déjà la longueur calculée d'un tour de roue. Pour éviter les données "supplémentaires", ajoutez un délai de 200 millisecondes et affichez les lectures
*/
if (digitalRead (gercon) == HIGH)
{
si (i <1)
{
distance = distance + 0,46472;
i = 1;
// délai (200);
Serial.println (distance);
}
}
si (i> 0)
{
i ++;
retard (1);
}
if (digitalRead (gercon) == LOW)
{
if (i> 30) // évite les faux positifs dus au rebond de contact
{
i = 0;
}
}
}

Mieux encore, mettez deux interrupteurs à lames, cela vous permettra de déterminer le sens de rotation (je ne suis pas allé là-bas pour mesurer - je suis retourné, et je n'ai pas recommencé depuis le début ou je l'ai secoué en avant et en arrière en discutant avec un voisin, etc.). Vous pouvez également ajouter des aimants pour changer la résolution.
ZY Je n'ai pas vérifié les modifications du code, il peut y avoir des erreurs.

Nous vous conseillons de lire:

Donnez-le au smartphone ...