» Elektronika » Arduino »Arduino riteņu attāluma mērītāju (izliekumu) izdari pats

Riteņu attāluma mērītājs (izliekums) uz „Arduino”

Sveiki visiem! Tagad es centīšos detalizēti runāt par to, kā padarīt vienkāršāko un pieejamāko izliekuma mērītāju.

Bet vispirms izdomāsim, kas tas ir un kāpēc tas ir vajadzīgs. Faktiski tā nosaukums mums saka tā mērķi. Tas ir veidots no latīņu vārda curvus, kas nozīmē izliektu vai viļņotu. Tas ir, izliekums ir riteņu vai veltņu attāluma mērītājs. Izšķir divus izliekuma mērītāju veidus: mazos (kartogrāfiskos), kurus parasti izmanto mērījumiem kartē, un lielos (ceļu), kurus parasti izmanto, lai izmērītu jau šoseju izliektu posmu garumu. Tos var izmantot visur, kur ir neērti vai neiespējami izmērīt ar standarta ruleti, tāpēc projekts solās būt interesants.

Pirmā lieta, kas jārūpējas, veidojot izliekumu, ir ritenis vai veltnis. Tam jābūt pietiekami mazam, lai instrumenta precizitāte būtu augsta, tajā pašā laikā tam jābūt pietiekami lielam, lai izmērītās virsmas nevienmērīgumu lielā mērā neietekmētu nolasījumu vērtību. Manā gadījumā riteņa diametrs ir 14 centimetri.

Tagad jums ir jānosaka struktūras materiāls un izmērs. Es izmantoju koku.

Uz stieņiem es izdarīju marķējumu un veicu nepieciešamos griezumus un caurumus.

Tad es saliecu apstrādātas detaļas, izmantojot mazas pašvītņojošās skrūves.
Tagad mazliet atkāpsimies no paša izliekuma un domāsim, kā šī lieta var pat noteikt attālumu? Viss ir diezgan vienkārši. Mums vienkārši jāaprēķina riteņa apgriezienu skaits un jāreizina ar tā ārējā perimetra garumu, un ir vēl vieglāk pievienot garuma vērtību katru reizi, kad ritenis veic jaunu apgriezienu.

Lai saskaitītu katru apgriezienu visvienkāršākajā gadījumā, varat izmantot "bīdāmo kontaktu". Tomēr es neiesaku izmantot šādu atsauces mehānismu. Daudz labāk ir izmantot niedru slēdzi vai Hall sensoru.

Ir pienācis laiks izmēģināt pie stūres. Es to piestiprināšu ar garu skrūvi. Mēs atrodam vietu uz rāmja, kur riteņa mala ir pēc iespējas tuvāk tai, un atzīmējam ar gājieniem. Ap šo zonu mums jāinstalē niedru slēdzis.

Uz riteņa jums jāinstalē mazs magnēts.Pārliecinieties, ka viņa spēks būs pietiekams, lai aizvērtu niedru slēdža kontaktus.
Tagad mēs nodarbosimies ar sistēmas "smadzenēm". Manā gadījumā tā ir maksa Arduino UNO. Tas nolasīs niedru slēdža statusu un pārsūtīs datus uz tālruni, izmantojot Bluetooth savienojumu, izmantojot moduli HC-05. Starp citu, niedru slēdzis ir savienots ar dēli tāpat kā parasta poga. Es domāju, ka ar Bluetooth moduļa savienošanu nevajadzētu būt nekādām problēmām.

Pats kods ir ļoti vienkāršs. Un es centos to komentēt, lai viss būtu pēc iespējas skaidrāks.

int gercon = 12; // savienoja niedru slēdzi ar 12 tapām
dubultā distance = 0; // izveidoja dubultā mainīgo lielumu, lai saglabātu attālumu
Nederīga iestatīšana () {
   Sērijas.begin (9600); // savienots seriālais savienojums
 }
  tukšs cilpa () {
/ * Nākamais ir if cilpa. Ja niedru slēdzis ir aizvērts, tiek veikts nākamais attāluma aprēķins. Vērtība 0.46472 jau ir aprēķinātais riteņa vienas apgrieziena garums. Lai izvairītos no "papildu" datiem, pievienojiet kavēšanos 200 milisekundēs un parādiet nolasījumus
* /
   if (digitalRead (gercon) == HIGH)
   {
 distance = distance + 0.46472;
 kavēšanās (200);
 Serial.println (distance);
}
  } 


Šeit ir mūsu izliekums un gatavs!

Izgatavosim pāris testa braucienus. Viss strādā lieliski!


Varat noskatīties video par šīs ierīces montāžu, varbūt tur atradīsit kaut ko interesantu.
[medijs = https: //youtu.be/kx_7ztPsLws]

Labi atkārtojiet projektu!
5
5
7

Pievienojiet komentāru

    • smaidismaidaxaxalabinezinuYahoonea
      priekšniekssaskrāpētmuļķisjājā-jāagresīvsslepeni
      žēldejotdeja2deja3apžēlošanapalīdzētdzērieni
      apstātiesdraugilabilabsirdīgssvilpegulbismēle
      smēķētaplaudēkrauklispaziņodrausmīgsdon-t_mentionlejupielādēt
      karstumsdrausmīgssmieties1mdasapulceņirgāšanāsnegatīvs
      not_ipopkornssodītlasītnobiedētbiedēmeklēt
      ņurdētpaldiesšoto_clueumņikakūtapiekrītu
      sliktibēmelnā acsblum3sarktlielītiesgarlaicība
      cenzētspleasantryslepens2draudētuzvarajusun_bespectacled
      šoksrespektlolprevedlaipni gaidītikrutojsya_za
      ya_dobryipalīgsne_huliganne_othodifludsaizliegumstuvu
1 komentārs
Viesis Sergejs
Kāpēc UNO, ja acīm pietiek ar Attiny13 ...
Kas attiecas uz kodu, jums vismaz jāpievieno pārbaude, vai magnēts ir atstājis niedru slēdzi, jo šajā ieviešanā ar noteiktu ātrumu un vēl jo vairāk, ja ritenis apstājas, to var apstrādāt vairāk nekā vienu reizi vai arī to vispār nevar apstrādāt. Lai to izdarītu, vienkārši pievienojiet globālo mainīgo un pirms garuma aprēķināšanas pārbaudiet tā stāvokli:
int gercon = 12; // savienoja niedru slēdzi ar 12 tapām
int i = patiess;
dubultā distance = 0; // izveidoja dubultā mainīgo lielumu, lai saglabātu attālumu
Nederīga iestatīšana () {
Sērijas.begin (9600); // savienots seriālais savienojums
}
tukšs cilpa () {
/ * Nākamais ir if cilpa. Ja niedru slēdzis ir aizvērts, tiek veikts nākamais attāluma aprēķins. Vērtība 0.46472 jau ir aprēķinātais riteņa vienas apgrieziena garums. Lai izvairītos no "papildu" datiem, pievienojiet kavēšanos 200 milisekundēs un parādiet nolasījumus
*/
if (digitalRead (gercon) == HIGH)
{
ja (i <1)
{
distance = distance + 0.46472;
i = 1;
// kavēšanās (200);
Serial.println (distance);
}
}
ja (i> 0)
{
i ++;
kavēšanās (1);
}
if (digitalRead (gercon) == LOW)
{
if (i> 30) // izvairās no viltus pozitīviem kontaktkontaktu lieluma dēļ
{
i = 0;
}
}
}

Vēl labāk, ielieciet divus niedru slēdžus, tas ļaus jums noteikt rotācijas virzienu (es negāju tur mērīt - es devos atpakaļ, un nesācu ​​no paša sākuma vai satricināju to vietā uz priekšu un atpakaļ, runājot ar kaimiņu utt.). Lai mainītu izšķirtspēju, varat pievienot arī magnētus.
ZY Es nepārbaudīju koda izmaiņas, iespējams, ir kļūdas.

Mēs iesakām izlasīt:

Nododiet to viedtālrunim ...