Pengalaman nggawe robot pisanan ing Arduino (robot "pamburu")

Hello

Ing artikel iki aku arep njlèntrèhaké proses ngrakit robot pisanan nggunakake Arduino. Materi kasebut bakal migunani kanggo pemula liyane kaya aku sing pengin nggawe "gerobak mandiri". Artikel kasebut minangka katrangan babagan tahapan nggarap tambahan babagan macem-macem nuansa. Link menyang kode final (paling kamungkinan ora paling becik) diwenehi ing mburi artikel.

Pengalaman nggawe robot pisanan ing Arduino (robot "pamburu")

Yen bisa, aku melu anakku (8 taun) melu. Apa sing bisa ditindakake lan apa sing ora - Aku wis darmabakti bagean saka artikel iki, mbok menawa bakal migunani kanggo wong.

Gambaran umum robot

Pisanan, sawetara tembung babagan robot dhewe (idea). Aku ora pengin ngumpul soko standar ing wiwitan. Ing wektu sing padha, set komponen cukup standar - sasis, mesin, sensor ultrasonik, sensor line, LED, tweeter. Wiwitane, robot diciptakake saka "set sup" iki sing njaga wilayahe. Dheweke nyopir menyang pelaku sing wis ngliwati garis bunder, banjur bali menyang tengah. Nanging, versi iki mbutuhake garis digambar, plus math ekstra kanggo tetep ing bunder ing kabeh kaping.

Mulane, sawise sawetara pamikiran, aku ngganti gagasan kasebut lan mutusake kanggo nggawe robot "pamburu". Ing wiwitan, nguripake sumbu, milih target sing cedhak (wong). Yen "mangsa" dideteksi, "pamburu" nguripake lampu sumunar lan sirine lan wiwit drive menyang. Nalika wong kasebut pindhah / mlayu, robot kasebut milih target anyar lan ngoyak, lan liya-liyane. Robot kasebut ora mbutuhake bunder sing winates, lan bisa digunakake ing wilayah sing mbukak.

Nalika sampeyan bisa ndeleng, iki akeh kaya game nyekel-up. Sanajan pungkasane robot kasebut ora cukup cepet, nanging kanthi jujur ​​​​interaksi karo wong-wong ing saubengé. Anak-anak utamane seneng (kadhang-kadhang, nanging kaya-kaya arep ngidak-idak, atine deg-degan ...). Aku iki solusi apik kanggo popularizing desain technical.

Struktur robot

Dadi, kita wis mutusake ide kasebut, ayo pindhah menyang tata letak. Dhaptar unsur dibentuk saka apa sing kudu ditindakake robot. Kabeh ing kene cukup jelas, mula ayo langsung ndeleng nomer kasebut:

Pengalaman nggawe robot pisanan ing Arduino (robot "pamburu")

"Otak" robot minangka papan arduino uno (1); ana ing set dhawuh saka China. Kanggo tujuan kita, cukup (kita fokus ing jumlah pin sing digunakake). Saka kit padha njupuk sasis siap-digawe (2), kang ditempelake loro wheel drive (3) lan siji mburi (free puteran) (4). Kit kasebut uga kalebu kompartemen baterei sing wis siap (5). Ing ngarep robot ana sensor ultrasonik (HC-SR04) (6), ing mburi ana driver motor (L298N) (7), ing tengah ana lampu kilat LED (8), lan sithik kanggo sisih ana tweeter (9).

Ing tataran tata letak kita katon ing:

- supaya kabeh cocog
- dadi imbang
- kanggo diselehake kanthi rasional

Kolega Tionghoa kita wis nindakake sebagian kanggo kita. Dadi, kompartemen baterei abot diselehake ing tengah, lan gembong drive dumunung kira-kira ing ngisor. Kabeh papan liyane entheng lan bisa diselehake ing pinggiran.

Nuansa:

  1. Sasis saka kit wis akeh bolongan pabrik, nanging aku isih durung ngerti apa logika ing wong. Mesin lan baterei diamanake tanpa masalah, banjur "penyesuaian" diwiwiti kanthi ngebor bolongan anyar kanggo ngamanake papan iki utawa kasebut.
  2. Rak kuningan lan fasteners liyane saka wilayah panyimpenan padha bantuan gedhe (kadhangkala kita kudu njaluk wong metu).
  3. Aku liwati busbars saka saben Papan liwat clamps (maneh, aku ketemu ing panyimpenan). Banget trep, kabeh kabel dumunung apik lan ora dangle.

Отдельные блоки

Saiki aku bakal ngliwati pamblokiran lan aku bakal pitutur marang kowe babagan saben wong.

kompartemen baterei

Sing jelas robot kudu duwe sumber energi sing apik. Pilihan bisa beda-beda, Aku milih pilihan karo 4 baterei AA. In total padha menehi kira-kira 5 V, lan voltase iki bisa langsung Applied menyang pin 5V saka Papan arduino (bypassing stabilizer).

Mesthi, aku kudu ati-ati, nanging solusi iki cukup bisa digunakake.

Wiwit daya dibutuhake ing endi wae, kanggo penak aku nggawe loro konektor ing tengah robot: siji "distribusi" lemah (ing sisih tengen), lan kaloro - 5 V (ing sisih kiwa).

Pengalaman nggawe robot pisanan ing Arduino (robot "pamburu")

Motor lan sopir

Pisanan, babagan pemasangan mesin. Gunung digawe pabrik, nanging digawe kanthi toleransi gedhe. Ing tembung liyane, mesin bisa wobble sawetara milimeter ngiwa lan nengen. Kanggo tugas kita iki ora kritis, nanging ing sawetara panggonan bisa duwe efek (robot bakal miwiti kanggo pindhah menyang sisih). Yen ngono, aku nyetel mesin kanthi sejajar lan tetep nganggo lem.

Pengalaman nggawe robot pisanan ing Arduino (robot "pamburu")

Kanggo ngontrol motor, kaya sing dak tulis ing ndhuwur, driver L298N digunakake. Miturut dokumentasi, ana telung pin kanggo saben motor: siji kanggo ngganti kacepetan lan sepasang pin kanggo arah rotasi. Ana siji titik penting ing kene. Pranyata yen voltase sumber 5 V, kontrol kacepetan mung ora bisa! Sing, salah siji ora nguripake ing kabeh, utawa dadi kanggo maksimum. Iki minangka fitur sing nyebabake aku "mateni" sawetara sore. Ing pungkasan, aku nemokake sebutno nang endi wae ing salah sawijining forum.

Umumé, aku butuh kacepetan rotasi sing sithik nalika ngowahi robot - supaya duwe wektu kanggo mindai spasi. Nanging, amarga ora ana sing teka saka ide iki, aku kudu nindakake kanthi cara sing beda: giliran cilik - mandheg - mandheg, lan liya-liyane.

Aku uga bakal nambah kene sing sawise saben nguber robot milih arah acak kanggo giliran anyar (clockwise utawa counterclockwise).

Sensor ultrasonik

Pengalaman nggawe robot pisanan ing Arduino (robot "pamburu")

Piranti hardware liyane sing kudu golek solusi kompromi. Sensor ultrasonik ngasilake nomer sing ora stabil ing alangan nyata. Bener, iki wis samesthine. Saenipun, kerjane ing endi wae ing kompetisi sing ana permukaan sing lancar, rata lan jejeg, nanging yen sikil wong "kelip" ing ngarepe, proses tambahan kudu dienalake.

Minangka Processing kuwi aku nyetel saringan median kanggo telung count. Adhedhasar tes ing bocah-bocah nyata (ora ana bocah sing cilaka sajrone tes!), Ternyata cukup kanggo normalake data kasebut. Fisika ing kene prasaja: kita duwe sinyal sing dibayangke perlu obyek (menehi jarak sing dibutuhake) lan dibayangke saka sing luwih adoh, contone, tembok. Sing terakhir yaiku emisi acak ing pangukuran saka wangun 45, 46, 230, 46, 46, 45, 45, 310, 46... Iki sing median Filter Cut mati.

Sawise kabeh proses, kita entuk jarak menyang obyek sing paling cedhak. Yen kurang saka nilai ambang tartamtu, banjur nguripake weker lan langsung menyang "intruder".

Flasher lan sirine

Mbok menawa unsur paling gampang saka kabeh ing ndhuwur. Dheweke bisa dideleng ing foto ing ndhuwur. Ora ana sing kudu ditulis babagan hardware ing kene, mula saiki ayo pindhah menyang kode.

Program kontrol

Aku ora weruh titik kanggo njlèntrèhaké kode ing rinci, sing perlu - link ing mburi artikel, kabeh cukup diwaca ana. Nanging luwih becik nerangake struktur umum.

Babagan pisanan sing kudu dingerteni yaiku robot minangka piranti wektu nyata. Luwih tepate, kanggo ngelingi, amarga sadurunge lan saiki aku isih kerja ing elektronika. Dadi, kita langsung lali babagan tantangan kasebut tundha (), sing padha seneng digunakake ing conto sketsa, lan mung "freezes" program kanggo wektu tartamtu. Nanging, kaya sing disaranake wong sing berpengalaman, kita ngenalake timer kanggo saben blok. Interval sing dibutuhake wis liwati - tumindak wis ditindakake (tambah padhang LED, nguripake mesin, lan liya-liyane).

Timer bisa disambungake. Contone, tweeter dianggo bebarengan karo flasher. Iki simplifies program sethitik.

Alami, kita ngilangi kabeh dadi fungsi sing kapisah (lampu sumunar, swara, ngowahi, maju, lan liya-liyane). Yen sampeyan ora nindakake iki, sampeyan ora bakal bisa ngerteni apa sing teka saka ngendi lan ing ngendi.

Nuansa pedagogi

Aku nindakake kabeh sing kasebut ing ndhuwur ing wektu luang ing wayah sore. Kanthi cara sing santai, aku ngenteni telung minggu ing robot. Iki bisa rampung ing kene, nanging aku uga janji bakal ngandhani sampeyan babagan nggarap bocah. Apa sing bisa ditindakake ing umur iki?

Kerja miturut instruksi

Kita pisanan mriksa saben rinci kanthi kapisah - LED, tweeter, motor, sensor, lan liya-liyane. Ana akeh conto sing wis siap - sawetara ing lingkungan pangembangan, liyane bisa ditemokake ing Internet. Iki mesthi nggawe aku seneng. Kita njupuk kode kasebut, sambungake bagean kasebut, priksa manawa kerjane, banjur kita miwiti ngganti supaya cocog karo tugas kita. Anak kasebut nggawe sambungan miturut diagram lan ing sawetara pengawasanku. Iki apik. Sampeyan uga kudu bisa kerja kanthi ketat miturut pandhuane.

Urutan kerja ("saka khusus nganti umum")

Iki minangka titik sing angel. Sampeyan kudu sinau manawa proyek gedhe ("nggawe robot") kalebu tugas-tugas cilik ("nyambung sensor," "nyambung motor" ...), lan sing uga kalebu langkah-langkah sing luwih cilik ("golek a. program," "nyambung papan." "," download firmware"...). Kanthi nindakake tugas sing luwih utawa kurang dingerteni saka tingkat ngisor, kita "nutup" tugas ing tingkat tengah, lan saka asil sakabèhé kawangun. Aku nerangake, nanging aku mikir yen kawujudan ora bakal teka. Nang endi wae, mbokmenawa, dening remaja.

Instalasi

Pengeboran, benang, sekrup, kacang, solder lan mambu rosin - ing endi kita bakal tanpa? Anak kasebut entuk katrampilan dhasar "Nggarap wesi solder" - dheweke bisa solder sawetara sambungan (aku nulungi sethithik, aku ora bakal ndhelikake). Aja lali babagan panjelasan safety.

Kerja komputer

Aku nulis program kanggo robot, nanging aku isih bisa entuk sawetara asil sing apik.

Pisanan: Inggris. Padha mung miwiti ing sekolah, supaya kita padha berjuang kanggo tokoh metu apa pishalka, migalka, yarkost lan transliterations liyane. Paling ora kita ngerti iki. Aku sengaja ora nggunakake tembung asli Inggris, amarga kita durung tekan tingkat iki.

Kapindho: karya sing efisien. We mulang kombinasi hotkey lan carane cepet nindakake operasi standar. Secara periodik, nalika nulis program, aku lan anakku ngganti papan, lan aku ujar apa sing kudu ditindakake (panggantos, telusuran, lsp.). Aku kudu mbaleni maneh lan maneh: "klik kaping pindho pilih", "terus Shift", "terus Ctrl" lan ing. Proses sinau ing kene ora cepet, nanging aku mikir yen katrampilan kasebut bakal disimpen "ing subkorteks."

Teks sing didhelikakeSampeyan bisa ngomong sing ndhuwur meh ketok. Nanging, jujur, musim gugur iki aku entuk kesempatan mulang ilmu komputer ing kelas 9 ing salah sawijining sekolah. Sing nggegirisi. Siswa ora ngerti dhasar kaya Ctrl + Z, Ctrl + C lan Ctrl + V, milih teks nalika terus Shift utawa klik kaping pindho ing tembung, lan liya-liyane. Iki senadyan kasunyatan sing padha ing taun katelu sinau ilmu komputer ... Tarik kesimpulan dhewe.

Katelu: ngetik tutul. Aku dipasrahake komentar ing kode kanggo anak kanggo ngetik (ayo latihan). Kita langsung nyelehake tangan kanthi bener supaya driji mboko sithik ngelingi lokasi kunci kasebut.

Minangka sampeyan bisa ndeleng, kita isih mung miwiti. Kita bakal terus ngasah katrampilan lan kawruh, bakal migunani ing urip.

Ngomong-ngomong, babagan masa depan ...

Pangembangan luwih

Robot digawe, drive, blinks lan bip. Apa saiki? Diilhami dening apa sing wis digayuh, kita rencana kanggo nyaring maneh. Ana ide kanggo nggawe remot kontrol - kaya rover lunar. Iku bakal menarik, lungguh ing remot kontrol, kanggo ngontrol gerakan robot sing nyopir ing panggonan temen beda. Nanging bakal dadi crita sing beda ...

Lan ing pungkasan, nyatane, pahlawan artikel iki (video kanthi ngeklik):

Pengalaman nggawe robot pisanan ing Arduino (robot "pamburu")

Matur suwun!

Kode link

Source: www.habr.com

Add a comment