» Elektronik » Arduino »Jarak jarak roda (curvimeter) pada Arduino melakukannya sendiri

Buat sendiri roda jarak jauh (curvimeter) pada Arduino

Hello semua! Sekarang saya akan cuba untuk membincangkan secara terperinci tentang cara membuat curvimeter yang paling mudah dan paling murah.

Tetapi pertama, mari kita fikirkan apa itu dan mengapa ia diperlukan. Malah, namanya memberitahu kita tujuannya. Ia terbentuk dari perkataan Latin curvus, yang bermaksud melengkung atau bergelombang. Iaitu, curvimeter adalah roda atau meter jarak rol. Dua jenis curvimeters dibezakan: kecil (kartografi), yang biasanya digunakan untuk pengukuran pada peta, dan besar (jalan), yang biasanya digunakan untuk mengukur panjang bahagian melengkung yang telah lebuh raya. Mereka boleh digunakan di mana sahaja ia menyusahkan atau tidak mungkin untuk mengukur dengan rolet standard, oleh itu projek itu menjanjikan menjadi menarik.

Perkara pertama yang perlu dijaga apabila membina curvimeter adalah roda atau roller. Ia mesti cukup kecil supaya ketepatan instrumennya tinggi, pada masa yang sama ia mesti cukup besar supaya nilai pembacaan tidak banyak dipengaruhi oleh ketidaksamaan permukaan yang diukur. Dalam kes saya, roda mempunyai diameter 14 sentimeter.

Sekarang anda perlu menentukan bahan dan saiz struktur. Saya menggunakan pokok.

Di bar saya membuat tanda dan membuat luka dan lubang yang diperlukan.

Kemudian saya memasang bahagian-bahagian mesin yang menggunakan skru mengetuk diri sendiri.
Sekarang mari kita tolak sedikit dari curvimeter itu sendiri dan fikirkan bagaimana hal ini dapat menentukan jarak? Semuanya sangat mudah. Kita hanya perlu mengira bilangan revolusi roda dan membiak dengan panjang lilinya yang luar, dan lebih mudah untuk menambah nilai panjang setiap kali roda membuat revolusi lain.

Untuk mengira setiap revolusi dalam kes yang paling mudah, anda boleh menggunakan "hubungan gelongsor". Bagaimanapun, saya tidak mengesyorkan menggunakan mekanisme rujukan tersebut. Lebih baik menggunakan suis buluh atau sensor Dewan.

Sudah tiba masanya untuk mencuba roda. Saya akan mengikatnya dengan bolt panjang. Kami dapati tempat di atas bingkai di mana rim roda hampir sama dengannya dan menandakan dengan pukulan. Sekitar kawasan ini, kita mesti memasang suis buluh.

Di roda, anda perlu memasang magnet kecil.Pastikan kekuatannya cukup untuk menutup hubungan suis buluh.
Sekarang kita akan terlibat dalam "otak" sistem. Dalam kes saya, ini adalah bayaran Arduino UNO. Ia akan membaca status suis buluh dan menghantar data melalui sambungan Bluetooth, menggunakan modul HC-05, ke telefon. Dengan cara ini, suis buluh disambungkan ke papan seperti butang biasa. Saya fikir tidak ada masalah dengan menyambungkan modul Bluetooth.

Bagi kod itu sendiri, ia adalah sangat mudah. Dan saya cuba mengulas tentangnya supaya semuanya menjadi jelas.

int gercon = 12; // menyambungkan suis buluh kepada 12 pin
jarak ganda = 0; / / mencipta pemboleh ubah berganda untuk menyimpan jarak
void setup () {
   Serial.begin (9600); // menyambung sambungan siri
 }
  kekosongan gelung () {
/ * Seterusnya ialah gelung jika. Jika suis buluh ditutup, maka pengiraan jarak seterusnya akan berlaku. Nilai 0.46472 sudah lama dikira satu revolusi roda. Untuk mengelakkan data "tambahan", tambahkan kelewatan 200 milisaat dan paparkan bacaan
* /
   jika (digitalRead (gercon) == TINGGI)
   {
 jarak = jarak + 0.46472;
 kelewatan (200);
 Serial.println (jarak);
}
  } 


Inilah curvimeter kami dan siap!

Mari buat beberapa perlumbaan ujian. Semuanya berfungsi hebat!


Anda boleh menonton video pada pemasangan peranti ini, mungkin anda akan mendapati sesuatu yang menarik.
[media = https: //youtu.be/kx_7ztPsLws]

Ulangi projek yang baik!
5
5
7

Tambah komen

    • senyumtersenyumxaxaokdontknowyahoonea
      bosawalbodohyaya-yaagresifrahsia
      maaftariandance2dance3pengampunanmembantuminuman
      berhentikawan-kawanbaikgoodgoodwiseltolaklidah
      asapbertepuk tangancraymengisytiharkanderisivejangan dengarmuat turun
      panasberalunketawa1mdamesyuaratmoskingnegatif
      not_ipopcornmenghukumbacamenakutkanmenakutkancarian
      mengejekterima kasihinito_clueumnikakutbersetuju
      burukbeeeblack_eyeblum3memerahbermegahkebosanan
      ditapiskesenanganrahsia2mengancamkemenanganyusun_bespectacled
      shokrespektloldiingatiselamat datangkrutoyya_za
      ya_dobryipembantune_huliganne_othodifludlarangantutup
1 ulasan
Sergey tetamu
Mengapa UNO apabila attiny13 cukup untuk mata ...
Bagi kod, sekurang-kurangnya anda perlu menambah cek magnet telah meninggalkan suis buluh, kerana dalam pelaksanaan ini, pada kelajuan tertentu, dan bahkan lebih-lebih lagi jika roda berhenti, ia dapat diproses lebih dari sekali atau tidak diproses sama sekali. Untuk melakukan ini, tambahkan pemboleh ubah global dan periksa keadaan sebelum mengira panjang, seperti:
int gercon = 12; // menyambungkan suis buluh kepada 12 pin
int i = true;
jarak ganda = 0; / / mencipta pemboleh ubah berganda untuk menyimpan jarak
void setup () {
Serial.begin (9600); // menyambung sambungan siri
}
kekosongan gelung () {
/ * Seterusnya ialah gelung jika. Jika suis buluh ditutup, maka pengiraan jarak seterusnya akan berlaku. Nilai 0.46472 sudah lama dikira satu revolusi roda. Untuk mengelakkan data "tambahan", tambahkan kelewatan 200 milisaat dan paparkan bacaan
*/
jika (digitalRead (gercon) == TINGGI)
{
jika (i <1)
{
jarak = jarak + 0.46472;
i = 1;
/ / kelewatan (200);
Serial.println (jarak);
}
}
jika (i> 0)
{
i ++;
kelewatan (1);
}
jika (digitalRead (gercon) == RENDAH)
{
jika (i> 30) // menghindari positif palsu kerana lantunan kenalan
{
i = 0;
}
}
}

Lebih baik lagi, letakkan dua suis buluh, ini akan membolehkan anda menentukan arah putaran (saya tidak pergi ke sana untuk mengukur - saya kembali, dan tidak bermula dari awal atau menggoncangkannya ke depan dan kembali bercakap dengan jiran, dll.). Anda juga boleh menambah magnet untuk menukar resolusi.
ZY Saya tidak menyemak perubahan dalam kod, mungkin ada ralat.

Kami menasihati anda untuk membaca:

Bawa ia untuk telefon pintar ...