» elettronica » Arduino »Misuratore di distanza ruota (curvimetro) su Arduino fai da te

Distanziometro da ruota fai-da-te (curvimetro) su Arduino

Ciao a tutti! Ora proverò a parlare in dettaglio di come realizzare il curvimetro più semplice ed economico.

Ma prima, cerchiamo di capire di cosa si tratta e perché è necessario. In effetti, il suo nome ci dice il suo scopo. È formato dalla parola latina curvus, che significa curvo o ondulato. Cioè, un curvimetro è un misuratore di distanza ruota o rullo. Si distinguono due tipi di curvimetri: piccolo (cartografico), che di solito viene utilizzato per le misurazioni sulla mappa, e grande (strada), che di solito vengono utilizzati per misurare la lunghezza delle sezioni curve di già autostrade. Possono essere utilizzati ovunque sia scomodo o impossibile misurare con la roulette standard, quindi il progetto promette di essere interessante.

La prima cosa di cui occuparsi quando si costruisce il curvimetro è una ruota o un rullo. Deve essere abbastanza piccolo in modo che l'accuratezza dello strumento sia elevata, allo stesso tempo deve essere abbastanza grande in modo che il valore delle letture non sia fortemente influenzato dall'irregolarità della superficie misurata. Nel mio caso, la ruota ha un diametro di 14 centimetri.

Ora devi determinare il materiale e le dimensioni della struttura. Ho usato un albero.

Sulle barre ho fatto una marcatura e ho fatto i tagli e i fori necessari.

Quindi ho assemblato le parti lavorate usando piccole viti autofilettanti.
Ora divagiamo un po 'dal curvimetro stesso e pensiamo a come questa cosa può persino determinare la distanza? È tutto abbastanza semplice. Dobbiamo solo calcolare il numero di giri della ruota e moltiplicare per la lunghezza della sua circonferenza esterna, ed è ancora più facile aggiungere un valore di lunghezza ogni volta che la ruota fa un'altra rivoluzione.

Per contare ogni giro nel caso più semplice, è possibile utilizzare il "contatto scorrevole". Tuttavia, non consiglio di utilizzare un tale meccanismo di riferimento. È molto meglio usare un interruttore reed o un sensore Hall.

È tempo di provare una ruota. Lo fisserò con un lungo bullone. Troviamo un posto sul telaio in cui il cerchione è il più vicino possibile e segniamo con delle pennellate. Intorno a quest'area, dobbiamo installare l'interruttore reed.

Sulla ruota è necessario installare un piccolo magnete.Assicurati che la sua forza sia sufficiente per chiudere i contatti dell'interruttore reed.
Ora saremo impegnati nei "cervelli" del sistema. Nel mio caso, questa è una commissione Arduino UNO. Leggerà lo stato dell'interruttore reed e trasmetterà i dati tramite connessione Bluetooth, utilizzando il modulo HC-05, al telefono. A proposito, l'interruttore reed è collegato alla scheda come un normale pulsante. Penso che non ci dovrebbero essere problemi con il collegamento del modulo Bluetooth.

Per quanto riguarda il codice stesso, è molto semplice. E ho provato a commentarlo in modo che tutto fosse il più chiaro possibile.

int gercon = 12; // ha collegato l'interruttore reed a 12 pin
doppia distanza = 0; // ha creato una doppia variabile per memorizzare la distanza
void setup () {
   Serial.begin (9600); // ha collegato una connessione seriale
 }
  void loop () {
/ * Il prossimo è il ciclo if. Se l'interruttore reed è chiuso, viene eseguito il calcolo della distanza successiva. Il valore 0.46472 è già la lunghezza calcolata di un giro della ruota. Per evitare dati "extra", aggiungere un ritardo di 200 millisecondi e visualizzare le letture
* /
   if (digitalRead (gercon) == HIGH)
   {
 distanza = distanza + 0,46472;
 ritardo (200);
 Serial.println (distanza);
}
  } 


Ecco il nostro curvimetro e pronto!

Facciamo un paio di gare di prova. Funziona tutto alla grande!


Puoi guardare un video sull'assemblaggio di questo dispositivo, forse troverai qualcosa di interessante.
[media = https: //youtu.be/kx_7ztPsLws]

Buona ripetizione del progetto!
5
5
7

Aggiungi un commento

    • sorrideresorrisiXaxabeneDONTKNOWyahoonea
      capozeroimbrogliaresìSì-sìaggressivosegreto
      scusaballaredance2dance3perdonoaiutobevande
      arrestoamicibuonogoodgoodfischiodeliquiolinguetta
      fumobattimanicraydeclarederisoriodon-t_mentionscaricare
      caloreadiratolaugh1mdaincontromoskingnegativo
      not_ipopcornpunireleggerespaventarespaventacerca
      schernirethank_youquestoto_clueumnikacutoconcordare
      cattivobeeeblack_eyeblum3arrossirevanterianoia
      censuratospiritosagginesecret2minacciarevittoriayusun_bespectacled
      ShokRespektlolPrevedbenvenutoKrutoyya_za
      ya_dobryiaiutantene_huliganne_othodiFludbandovicino
1 commento
Ospite Sergey
Perché UNO quando attiny13 è sufficiente per gli occhi ...
Per quanto riguarda il codice, almeno è necessario aggiungere un controllo che il magnete ha lasciato l'interruttore reed, perché in questa implementazione, a una certa velocità, e ancora di più se la ruota si ferma, può riuscire a essere elaborato più di una volta o non elaborato affatto. Per fare ciò, basta aggiungere una variabile globale e verificarne lo stato prima di calcolare la lunghezza, qualcosa del tipo:
int gercon = 12; // ha collegato l'interruttore reed a 12 pin
int i = true;
doppia distanza = 0; // ha creato una doppia variabile per memorizzare la distanza
void setup () {
Serial.begin (9600); // ha collegato una connessione seriale
}
void loop () {
/ * Il prossimo è il ciclo if. Se l'interruttore reed è chiuso, viene eseguito il calcolo della distanza successiva. Il valore 0.46472 è già la lunghezza calcolata di un giro della ruota. Per evitare dati "extra", aggiungere un ritardo di 200 millisecondi e visualizzare le letture
*/
if (digitalRead (gercon) == HIGH)
{
se (i <1)
{
distanza = distanza + 0,46472;
i = 1;
// ritardo (200);
Serial.println (distanza);
}
}
se (i> 0)
{
i ++;
ritardo (1);
}
if (digitalRead (gercon) == LOW)
{
if (i> 30) // evita i falsi positivi dovuti al rimbalzo del contatto
{
i = 0;
}
}
}

Meglio ancora, metti due interruttori reed, questo ti permetterà di determinare la direzione di rotazione (non sono andato lì per misurare - sono tornato indietro e non sono partito dall'inizio o l'ho scosso in posizione avanti e indietro parlando con un vicino, ecc.). Puoi anche aggiungere magneti per modificare la risoluzione.
ZY Non ho verificato le modifiche al codice, potrebbero esserci degli errori.

Ti consigliamo di leggere:

Passalo per lo smartphone ...