» Electronics » Arduino »Wheel distance meter (curvimeter) sa Arduino gawin mo mismo

Do-it-yourself wheel distance meter (curvimeter) sa Arduino

Kamusta sa lahat! Ngayon susubukan kong makipag-usap nang detalyado tungkol sa kung paano gawin ang pinakasimpleng at pinaka-abot-kayang curvimeter.

Ngunit una, alamin natin kung ano ito at kung bakit kinakailangan ito. Sa katunayan, ang pangalan nito ay nagsasabi sa atin ng layunin nito. Ito ay nabuo mula sa salitang Latin na curvus, na nangangahulugang curved o kulot. Iyon ay, ang isang kurbada ay isang gulong o meter na distansya ng gulong. Ang dalawang uri ng mga curvimeter ay nakikilala: maliit (cartographic), na karaniwang ginagamit para sa mga sukat sa mapa, at malaki (kalsada), na kadalasang ginagamit upang masukat ang haba ng mga hubog na mga seksyon ng mga daanan na daan. Maaari silang magamit kahit saan ito ay abala o imposible upang masukat gamit ang karaniwang roulette, samakatuwid ang proyekto ay nangangako na maging kawili-wili.

Ang unang bagay na dapat alagaan kapag ang pagbuo ng curvimeter ay isang gulong o roller. Dapat itong maliit na maliit upang ang katumpakan ng instrumento ay mataas, sa parehong oras dapat itong sapat na malaki upang ang halaga ng mga pagbasa ay hindi lubos na naapektuhan ng hindi pagkakapantay-pantay ng sinusukat na ibabaw. Sa aking kaso, ang gulong ay may diameter na 14 sentimetro.

Ngayon kailangan mong matukoy ang materyal at sukat ng istraktura. Gumamit ako ng isang puno.

Sa mga bar ay gumawa ako ng pagmamarka at ginawa ang mga kinakailangang pagbawas at butas.

Pagkatapos ay tinipon ko ang mga makinang mga bahagi gamit ang maliit na self-tapping screws.
Ngayon maghukay tayo nang kaunti mula sa curvimeter mismo at isipin kung paano ang bagay na ito ay maaaring matukoy ang distansya? Ang lahat ay medyo simple. Kailangan lang nating kalkulahin ang bilang ng mga rebolusyon ng gulong at dumami sa haba ng panlabas nitong sirkulasyon, at mas madali itong magdagdag ng isang haba ng halaga sa bawat oras na ang gulong ay gumawa ng isa pang rebolusyon.

Upang mabilang ang bawat rebolusyon sa pinakasimpleng kaso, maaari mong gamitin ang "sliding contact". Gayunpaman, hindi ko inirerekumenda ang paggamit ng naturang mekanismo ng sanggunian. Mas mahusay na gumamit ng reed switch o isang sensor ng Hall.

Panahon na upang subukan sa isang gulong. I-fasten ko ito ng mahabang bolt. Nakakahanap kami ng isang lugar sa frame kung saan ang wheel rim ay malapit na hangga't maaari at markahan na may mga stroke. Sa paligid ng lugar na ito, dapat nating i-install ang switch ng tambo.

Sa gulong kailangan mong mag-install ng isang maliit na magnet.Tiyaking ang kanyang lakas ay sapat upang isara ang mga contact ng reed switch.
Ngayon kami ay makikibahagi sa "talino" ng system. Sa aking kaso, ito ay isang bayad Arduino UNO. Babasahin nito ang katayuan ng reed switch at magpadala ng data sa pamamagitan ng koneksyon sa Bluetooth, gamit ang HC-05 module, sa telepono. Sa pamamagitan ng paraan, ang switch ng tambo ay konektado sa board tulad ng isang regular na pindutan. Sa palagay ko ay hindi dapat magkaroon ng anumang mga problema sa pagkonekta sa module ng Bluetooth.

Tulad ng para sa code mismo, napaka-simple. At sinubukan kong magkomento tungkol dito upang ang lahat ay malinaw hangga't maaari.

int gercon = 12; // konektado ang tambo ng switch sa 12 pin
dobleng distansya = 0; // lumikha ng isang dobleng variable upang maimbak ang distansya
walang pag-setup () {
   Serial.begin (9600); // konektado ang isang serye na koneksyon
 }
  walang bisa na loop () {
/ * Susunod ay kung ang loop. Kung ang switch ng tambo ay sarado, pagkatapos maganap ang susunod na pagkalkula ng distansya. Ang halaga ng 0.46472 ay na ang kinakalkula na haba ng isang rebolusyon ng gulong. Upang maiwasan ang "dagdag" na data, magdagdag ng pagkaantala ng 200 millisecond at ipakita ang mga pagbasa
* /
   kung (digitalRead (gercon) == HIGH)
   {
 distansya = distansya + 0.46472;
 pagkaantala (200);
 Serial.println (distansya);
}
  } 


Narito ang aming curvimeter at handa na!

Gumawa tayo ng ilang mga karera sa pagsubok. Lahat gumagana mahusay!


Maaari kang manood ng isang video sa pagpupulong ng aparatong ito, marahil ay may makikita kang kagiliw-giliw na bagay.
[media = https: //youtu.be/kx_7ztPsLws]

Magkaroon ng isang mahusay na ulitin ang proyekto!
5
5
7

Magdagdag ng isang puna

    • ngitinakangitixaxaok langhindi alamyahoonea
      bosskumamottangaoooo-ooagresibolihim
      sorrysayawsayaw2sayaw3kapatawarantumulonginumin
      humintomga kaibiganmabutigoodgoodsipolswoondila
      usokpumapalakpakkrayolaipahayagnakakainisdon-t_mentionpag-download
      initnakakainistumawa1mdapagpupulongnakikipag-usapnegatibo
      hindi_ipopcornparusahanbasahintakottakotpaghahanap
      panunuyasalamat_youitoto_clueumniktalamaksumang-ayon
      masamabeeeblack_eyeblum3namulamagyabanginip
      censoredkaaya-ayalihim2nagbabantatagumpayyusun_bespectacled
      shokrespektlolnagustuhanmaligayang pagdatingkrutoyya_za
      ya_dobryikatulongne_huliganne_othodimapusokpagbabawalmalapit
1 komentaryo
Panauhin Sergey
Bakit UNO kapag attiny13 ay sapat na para sa mga mata ...
Tulad ng para sa code, hindi bababa sa kailangan mong magdagdag ng isang tseke na ang magnet ay naiwan ang switch ng tambo, sapagkat sa pagpapatupad na ito, sa isang tiyak na bilis, at higit pa kaya kung ang gulong ay huminto, maaari itong pamahalaan upang maproseso nang higit sa isang beses o hindi naproseso nang una. Upang gawin ito, magdagdag lamang ng isang global variable at suriin ang estado nito bago makalkula ang haba, tulad ng:
int gercon = 12; // konektado ang tambo ng switch sa 12 pin
int i = totoo;
dobleng distansya = 0; // lumikha ng isang dobleng variable upang maimbak ang distansya
walang pag-setup () {
Serial.begin (9600); // konektado ang isang serye na koneksyon
}
walang bisa na loop () {
/ * Susunod ay kung ang loop. Kung ang switch ng tambo ay sarado, pagkatapos maganap ang susunod na pagkalkula ng distansya. Ang halaga ng 0.46472 ay na ang kinakalkula na haba ng isang rebolusyon ng gulong. Upang maiwasan ang "dagdag" na data, magdagdag ng pagkaantala ng 200 millisecond at ipakita ang mga pagbasa
*/
kung (digitalRead (gercon) == HIGH)
{
kung (i <1)
{
distansya = distansya + 0.46472;
i = 1;
// pagkaantala (200);
Serial.println (distansya);
}
}
kung (i> 0)
{
ako ++;
pagkaantala (1);
}
kung (digitalRead (gercon) == LOW)
{
kung (i> 30) // umiiwas sa mga maling positibo dahil sa pakikipag-ugnay sa bounce
{
i = 0;
}
}
}

Mas mabuti pa, maglagay ng dalawang switch ng tambo, ito ay magpapahintulot sa iyo na matukoy ang direksyon ng pag-ikot (hindi ako pumunta doon upang masukat - bumalik ako, at hindi nagsimula mula sa simula o umiling ito sa lugar nang pasulong at bumalik sa pakikipag-usap sa isang kapit-bahay, atbp.). Maaari ka ring magdagdag ng mga magnet upang baguhin ang resolusyon.
ZY Hindi ko nasuri ang mga pagbabago sa code, maaaring may mga pagkakamali.

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...