» Elektronika » Arduino »Miernik odległości koła (krzywymetr) w Arduino zrób to sam

Miernik odległości koła (krzywizny) zrób to sam w Arduino

Witam wszystkich! Teraz postaram się szczegółowo omówić, jak zrobić najprostszy i najbardziej przystępny cenowo krzywymetr.

Ale najpierw dowiedzmy się, co to jest i dlaczego jest potrzebne. W rzeczywistości jego nazwa mówi nam o jego celu. Powstaje z łacińskiego słowa curvus, co oznacza zakrzywione lub faliste. Oznacza to, że krzywymetr jest miernikiem odległości koła lub rolki. Wyróżnia się dwa rodzaje krzywymetrów: mały (kartograficzny), które są zwykle używane do pomiarów na mapie, i duży (drogowy), które są zwykle używane do pomiaru długości zakrzywionych odcinków już istniejących autostrad. Można ich używać wszędzie tam, gdzie mierzenie za pomocą standardowej ruletki jest niewygodne lub niemożliwe, dlatego projekt zapowiada się interesująco.

Pierwszą rzeczą, na którą należy zwrócić uwagę przy budowaniu krzywizny, jest koło lub wałek. Musi być wystarczająco mały, aby dokładność przyrządu była wysoka, a jednocześnie musi być wystarczająco duży, aby nierówność mierzonej powierzchni nie wpływała znacząco na wartość odczytów. W moim przypadku koło ma średnicę 14 centymetrów.

Teraz musisz określić materiał i rozmiar konstrukcji. Użyłem drzewa.

Na prętach zrobiłem znak i wykonałem niezbędne cięcia i dziury.

Następnie zmontowałem obrabiane części za pomocą małych śrub samogwintujących.
Teraz odejdźmy trochę od samego krzywizny i pomyślmy, jak ta rzecz może nawet określić odległość? Wszystko jest bardzo proste. Musimy tylko obliczyć liczbę obrotów koła i pomnożyć przez długość jego zewnętrznego obwodu, a jeszcze łatwiej jest dodać wartość długości za każdym razem, gdy koło wykonuje kolejny obrót.

Aby policzyć każdy obrót w najprostszym przypadku, możesz użyć „przesuwnego kontaktu”. Nie polecam jednak używania takiego mechanizmu referencyjnego. O wiele lepiej jest użyć kontaktronu lub czujnika Halla.

Czas spróbować na kole. Zamocuję go długą śrubą. Na ramie znajdujemy miejsce, w którym obręcz koła jest jak najbliżej i zaznaczamy pociągnięciami. W tym obszarze musimy zainstalować kontaktron.

Na kole musisz zainstalować mały magnes.Upewnij się, że jego siła wystarczy do zamknięcia styków kontaktronu.
Teraz będziemy zaangażowani w „mózgi” systemu. W moim przypadku jest to opłata Arduino UNO. Odczyta status kontaktronu i prześle dane do telefonu za pośrednictwem połączenia Bluetooth za pomocą modułu HC-05. Nawiasem mówiąc, kontaktron jest podłączony do płyty jak zwykły przycisk. Myślę, że nie powinno być żadnych problemów z podłączeniem modułu Bluetooth.

Jeśli chodzi o sam kod, jest bardzo prosty. Próbowałem to skomentować, aby wszystko było jak najbardziej jasne.

int gercon = 12; // podłączono kontaktron do 12 pinów
podwójna odległość = 0; // utworzył podwójną zmienną do przechowywania odległości
void setup () {
   Serial.begin (9600); // podłączył połączenie szeregowe
 }
  void loop () {
/ * Następna jest pętla if. Jeśli kontaktron jest zamknięty, następuje następne obliczenie odległości. Wartość 0,46472 jest już obliczoną długością jednego obrotu koła. Aby uniknąć „dodatkowych” danych, dodaj opóźnienie 200 milisekund i wyświetl odczyty
* /
   if (digitalRead (gercon) == HIGH)
   {
 odległość = odległość + 0,46472;
 opóźnienie (200);
 Serial.println (odległość);
}
  } 


Oto nasz curvimeter i gotowy!

Zróbmy kilka wyścigów testowych. Wszystko działa świetnie!


Możesz obejrzeć wideo na temat montażu tego urządzenia, może znajdziesz tam coś interesującego.
[media = https: //youtu.be/kx_7ztPsLws]

Miłej powtórki z projektu!
5
5
7

Dodaj komentarz

    • uśmiechnij sięuśmiecha sięxaxaoknie wiemyahoonea
      szefiezadrapaniegłupiectaktak-takagresywnysekret
      przepraszamtańczyćdance2dance3przebaczeniepomocnapoje
      przestańprzyjacieledobrzegoodgoodgwizdaćomdlećjęzyk
      palićklaskanierakdeklarowaćdrwiącydon-t_mentionpobierz
      ciepłożałujęśmiech 1mdaspotkaniemoskingnegatywne
      niepopcornukaraćczytaćprzestraszyćstraszyszukaj
      drwinadziękujętoto_clueumnikostryzgadzam się
      źlepszczołablack_eyeblum3rumienić sięchwalić sięnuda
      ocenzurowaneuprzejmośćsekret2grozićzwycięstwoyusun_bespectacled
      shokrespektlolprevedwitamykrutoyya_za
      ya_dobryipomocnikne_huliganne_othodifludzakazzamknij
1 komentarz
Gość Siergiej
Dlaczego UNO, gdy attiny13 wystarczy dla oczu ...
Jeśli chodzi o kod, musisz przynajmniej sprawdzić, czy magnes opuścił kontaktron, ponieważ w tej implementacji, przy określonej prędkości, a nawet więcej, jeśli koło się zatrzyma, może być przetwarzane więcej niż raz lub wcale. Aby to zrobić, po prostu dodaj zmienną globalną i sprawdź jej stan przed obliczeniem długości, na przykład:
int gercon = 12; // podłączono kontaktron do 12 pinów
int i = true;
podwójna odległość = 0; // utworzył podwójną zmienną do przechowywania odległości
void setup () {
Serial.begin (9600); // podłączył połączenie szeregowe
}
void loop () {
/ * Następna jest pętla if. Jeśli kontaktron jest zamknięty, następuje następne obliczenie odległości. Wartość 0,46472 jest już obliczoną długością jednego obrotu koła. Aby uniknąć „dodatkowych” danych, dodaj opóźnienie 200 milisekund i wyświetl odczyty
*/
if (digitalRead (gercon) == HIGH)
{
jeśli (i <1)
{
odległość = odległość + 0,46472;
i = 1;
// opóźnienie (200);
Serial.println (odległość);
}
}
jeśli (i> 0)
{
i ++;
opóźnienie (1);
}
if (digitalRead (gercon) == LOW)
{
if (i> 30) // unika fałszywych trafień z powodu odskoku kontaktu
{
i = 0;
}
}
}

Jeszcze lepiej, umieść dwa kontaktrony, pozwoli to określić kierunek obrotu (nie poszedłem tam, aby zmierzyć - wróciłem i nie zacząłem od początku ani nie potrząsnąłem nim do przodu i do tyłu rozmawiając z sąsiadem itp.). Możesz także dodać magnesy, aby zmienić rozdzielczość.
ZY Nie sprawdziłem zmian w kodzie, mogą wystąpić błędy.

Radzimy przeczytać:

Podaj go do smartfona ...