Pangalaman nyiptakeun robot munggaran dina Arduino (robot "hunter")

halo

Dina artikel ieu abdi hoyong ngajelaskeun prosés assembling robot munggaran kuring maké Arduino. Bahanna bakal kapaké pikeun pamula anu sanés sapertos kuring anu hoyong ngadamel sababaraha jinis "gerobak mandiri." Tulisan mangrupikeun pedaran ngeunaan tahapan damel sareng tambihan kuring dina sababaraha nuansa. Link ka kode final (paling dipikaresep teu paling idéal) dibikeun di ahir artikel.

Pangalaman nyiptakeun robot munggaran dina Arduino (robot "hunter")

Sabisana, kuring ngalibetkeun putra abdi (8 taun) dina ilubiung. Naon anu leres-leres damel sareng naon anu henteu - Kuring parantos ngadedikasikeun bagian tina tulisan pikeun ieu, sigana bakal mangpaat pikeun batur.

Katerangan umum ngeunaan robot

Kahiji, sababaraha kecap ngeunaan robot sorangan (gagasan). Kuring teu hayang pisan ngumpul hal baku dina mimiti. Dina waktu nu sarua, susunan komponén éta rada baku - chassis, mesin, sensor ultrasonic, sensor garis, LEDs, tweeter. Mimitina, robot diciptakeun tina "sup set" ieu anu ngajaga wilayahna. Anjeunna mana di palaku anu geus meuntas garis bunderan, lajeng mulih deui ka pusat. Sanajan kitu, versi ieu diperlukeun hiji garis digambar, tambah math tambahan pikeun salawasna tetep dina bunderan.

Ku alatan éta, sanggeus sababaraha pamikiran, abdi rada robah gagasan jeung mutuskeun nyieun robot "hunter". Dina mimiti, éta kabukti sabudeureun sumbu na, milih target caket dieu (jalma). Lamun "mangsa" dideteksi, "hunter" ngahurungkeun lampu kedip-kedip jeung sirineu sarta mimiti ngajalankeun arah eta. Lamun jalma nu ngalir jauh / lumpat jauh, robot milih target anyar jeung pursues eta, jeung saterusna. Robot sapertos kitu henteu peryogi bunderan kawates, sareng tiasa dianggo di daérah terbuka.

Sakumaha anjeun tiasa tingali, ieu pisan kawas kaulinan nyekel-up. Sanajan dina tungtungna robot teu tétéla cukup gancang, éta jujur ​​interaksi jeung jalma di sabudeureun éta. Barudak utamana resep eta (sakapeung, kumaha oge, sigana yén maranéhna rék trample eta, jantung skips a ngéléhkeun ...). Jigana ieu leyuran alus keur popularizing desain teknis.

Struktur robot

Janten, urang parantos mutuskeun ideu, hayu urang teraskeun perenah. Daptar elemen kabentuk tina naon robot kudu bisa ngalakukeun. Sadayana di dieu cukup atra, janten hayu urang tingali panomeran:

Pangalaman nyiptakeun robot munggaran dina Arduino (robot "hunter")

The "otak" tina robot mangrupa dewan arduino uno (1); éta dina set maréntahkeun ti Cina. Pikeun tujuan urang, éta cukup (urang difokuskeun jumlah pin dipaké). Ti kit sarua urang nyandak hiji chassis siap-dijieun (2), nu napel dua roda drive (3) jeung hiji pungkur (bebas puteran) (4). Kit ogé kalebet kompartemen batré anu siap-siap (5). Di hareup robot aya sensor ultrasonik (HC-SR04) (6), di tukang aya supir motor (L298N) (7), di tengahna aya lampu kilat LED (8), sareng sakedik samping aya tweeter (9).

Dina tahap tata perenah urang tingali:

- supados sadayana pas
- janten saimbang
- pikeun ditempatkeun sacara rasional

Kolega Cina urang parantos sawaréh ngalakukeun ieu pikeun urang. Janten, kompartemen batré beurat disimpen di tengah, sareng roda drive anu aya di handapeunna. Kabéh papan séjén anu lightweight sarta bisa disimpen dina periphery nu.

Nuansa:

  1. The chassis ti kit ngabogaan loba pabrik liang , Tapi kuring masih teu ilahar kaluar naon logika di aranjeunna. Mesin jeung batré pak anu diamankeun tanpa masalah, lajeng "adjustment" dimimitian ku pangeboran liang anyar pikeun ngamankeun ieu atawa dewan éta.
  2. The rak kuningan jeung fasteners séjén ti wewengkon gudang éta hiji pitulung badag (sakapeung urang kudu meunang aranjeunna kaluar).
  3. Kuring lulus busbars ti unggal dewan ngaliwatan clamps (deui, kuring kapanggih aranjeunna dina gudang). Kacida merenah, sadaya kawat bohong saé sareng henteu ngagantung.

Blok individu

Ayeuna kuring bakal ngaliwat blok sareng kuring bakal nyarioskeun ka anjeun pribadi ngeunaan masing-masing.

kompartemen batré

Éta jelas yén robot kedah gaduh sumber énergi anu saé. Pilihan bisa rupa-rupa, Kuring milih pilihan kalawan 4 accu AA. Dina total aranjeunna masihan ngeunaan 5 V, sarta tegangan ieu bisa langsung dilarapkeun ka pin 5V dewan arduino (bypassing penstabil).

Tangtu, kuring kungsi sababaraha caution, tapi solusi ieu rada bisa dipake.

Kusabab kakuatan diperlukeun madhab, pikeun genah kuring nyieun dua panyambungna di tengah robot: hiji "ngadistribusikaeun" taneuh (di katuhu), sarta kadua - 5 V (di kénca).

Pangalaman nyiptakeun robot munggaran dina Arduino (robot "hunter")

Motor jeung supir

Kahiji, ngeunaan ningkatna mesin. Gunung dijieun pabrik, tapi dijieun kalawan tolerances badag. Dina basa sejen, mesin bisa wobble sababaraha milimeter kénca jeung katuhu. Pikeun tugas urang ieu teu kritis, tapi di sababaraha tempat bisa boga pangaruh (robot bakal mimiti pindah ka gigir). Bisi waé, kuring nyetél mesin sacara paralel sareng ngalereskeunana nganggo lem.

Pangalaman nyiptakeun robot munggaran dina Arduino (robot "hunter")

Pikeun ngadalikeun motor, sakumaha kuring nyerat di luhur, supir L298N dianggo. Numutkeun kana dokuméntasi, éta ngagaduhan tilu pin pikeun tiap motor: hiji pikeun ngarobih laju sareng sapasang pin pikeun arah rotasi. Aya hiji titik penting di dieu. Tétéla yén lamun tegangan suplai 5 V, kontrol speed saukur teu jalan! Nyaéta, boh éta henteu ngancik pisan, atanapi janten maksimal. Ieu mangrupikeun fitur anu nyababkeun kuring "maéhan" sababaraha wengi. Tungtungna, kuring manggihan hiji nyebut wae dina salah sahiji panglawungan.

Sacara umum, kuring peryogi kagancangan rotasi anu rendah nalika ngarobih robot - supados gaduh waktos pikeun nyeken rohangan. Tapi, saprak euweuh datang ide ieu, kuring kungsi ngalakukeun hal eta béda: péngkolan leutik - eureun - péngkolan - eureun, jsb Deui, teu jadi elegan, tapi bisa dipake.

Kuring ogé bakal nambahan didieu yén sanggeus unggal ngungudag robot milih arah acak pikeun péngkolan anyar (jarum jam atawa counterclockwise).

Sénsor ultrasonik

Pangalaman nyiptakeun robot munggaran dina Arduino (robot "hunter")

Sapotong hardware anu sanés dimana urang kedah milarian solusi kompromi. Sénsor ultrasonik ngahasilkeun angka anu teu stabil dina halangan nyata. Sabenerna, ieu diperkirakeun. Ideally, gawéna dimana wae dina kompetisi dimana aya surfaces lemes, rata jeung jejeg, tapi lamun suku batur "flash" di hareup eta, perlu ngenalkeun processing tambahan.

Salaku processing misalna kuring diatur saringan median pikeun tilu cacah. Dumasar tés dina barudak nyata (euweuh barudak anu cilaka salila tés!), Tétéla cukup cukup pikeun normalize data. Fisika di dieu basajan: kami ngagaduhan sinyal anu dipantulkeun diperlukeun objék (méré jarak diperlukeun) jeung reflected ti leuwih jauh, contona, tembok. Anu terakhir nyaéta émisi acak dina ukuran tina bentuk 45, 46, 230, 46, 46, 45, 45, 310, 46... Ieu ieu nu median filter neukteuk off.

Sanggeus sagala processing, urang meunang jarak ka objék pangcaketna. Lamun kirang ti nilai bangbarung nu tangtu, urang ngahurungkeun alarm tur ngajalankeun lempeng ka arah "intruder".

Flasher jeung sirineu

Panginten unsur pangbasajanna sadaya di luhur. Éta tiasa ditingali dina poto-poto di luhur. Henteu aya anu nyerat perkawis hardware di dieu, janten ayeuna hayu urang teraskeun kode.

Program kontrol

Kuring henteu ningali titik dina ngajelaskeun kode sacara rinci, anu peryogina - tautanna aya dina tungtung tulisan, sadayana tiasa dibaca di dinya. Tapi éta hadé pikeun ngajelaskeun struktur umum.

Hal kahiji urang kedah ngartos éta robot mangrupakeun alat real-time. Langkung tepatna, kanggo émut, sabab sateuacan sareng ayeuna kuring masih damel di éléktronika. Ku kituna, urang langsung poho ngeunaan tantangan reureuh (), anu aranjeunna resep dianggo dina conto sketsa, sareng anu ngan saukur "freezes" program pikeun waktos anu ditangtukeun. Gantina, salaku jalma ngalaman nasehat, urang ngenalkeun timers pikeun tiap blok. Interval diperlukeun geus kaliwat - aksi geus dipigawé (ningkatkeun kacaangan LED, ngahurungkeun mesin, jeung saterusna).

Timer tiasa dihubungkeun. Contona, tweeter jalan sinkron jeung flasher. Ieu simplifies program saeutik.

Alami, urang megatkeun sagalana kana fungsi misah (lampu kedip-kedip, sora, péngkolan, pindah ka hareup, jeung saterusna). Upami anjeun henteu ngalakukeun ieu, maka anjeun moal tiasa terang naon anu asalna ti mana sareng dimana.

Nuances of pedagogy

Kuring ngalakukeun sagalana ditétélakeun di luhur dina waktu luang kuring di soré. Dina ragam leisurely, abdi spent ngeunaan tilu minggu on robot. Ieu bisa geus réngsé di dieu, tapi kuring ogé jangji pikeun ngabejaan Anjeun tentang gawé bareng anak. Naon anu tiasa dilakukeun dina umur ieu?

Gawé nurutkeun parentah

Urang mimiti dipariksa unggal bagian misah - LEDs, tweeter, motor, sensor, jsb Aya angka nu gede ngarupakeun conto siap-dijieun - sababaraha katuhu dina lingkungan ngembangkeun, batur bisa kapanggih dina Internet. Ieu pasti ngajadikeun kuring senang. Kami nyandak kodeu, sambungkeun bagian éta, pastikeun yén éta tiasa dianggo, teras urang ngawitan ngarobih pikeun nyocogkeun tugas urang. Anak ngajadikeun sambungan nurutkeun diagram jeung dina sababaraha pangawasan kuring. Ieu alus. Anjeun oge kedah tiasa dianggo ketat nurutkeun parentah.

Urutan gawé ("ti husus ka umum")

Ieu titik hésé. Anjeun kedah diajar yén proyék ageung ("nyieun robot") diwangun ku tugas-tugas alit ("nyambungkeun sensor," "nyambungkeun motor" ...), sareng éta, kahareupna diwangun ku léngkah-léngkah anu langkung alit ("manggihan a. program," "nyambungkeun papan." "," unduh firmware"...). Ku ngalaksanakeun tugas anu langkung seueur atanapi kirang kaharti tina tingkat anu langkung handap, urang "nutup" tugas tingkat tengah, sareng tina éta hasil sadayana kabentuk. Kuring ngajelaskeun, tapi kuring pikir realisasi moal pas. Wae, meureun, ku rumaja.

Pamasangan

Pangeboran, benang, screws, kacang, soldering jeung bau rosin - dimana urang bakal tanpa eta? Anak narima skill dasar "Gawe kalawan beusi soldering" - anjeunna junun solder sababaraha sambungan (Kuring mantuan saeutik, abdi moal nyumputkeun eta). Ulah poho ngeunaan katerangan kaamanan.

Karya komputer

Kuring nulis program pikeun robot, tapi kuring masih junun ngahontal sababaraha hasil nguntungkeun.

Kahiji: Inggris. Aranjeunna nembé ngamimitian éta di sakola, janten kami berjuang pikeun terang naon pishalka, migalka, yarkost sareng transliterasi anu sanés. Sahenteuna urang ngartos ieu. Kuring ngahaja henteu ngagunakeun kecap basa Inggris asli, sabab urang henteu acan ngahontal tingkat ieu.

Kadua: pagawéan éfisién. Kami ngajarkeun kombinasi hotkey sareng kumaha gancang ngalakukeun operasi standar. Périodik, nalika urang nulis program, kuring jeung putra swapped tempat, sarta kuring ngomong naon kudu dipigawé (ngagantian, pilarian, jsb). Kuring kungsi ngulang deui sarta leuwih deui: "ganda-klik pilih", "tahan Shift", "tahan Ctrl" jeung saterusna. Prosés diajar di dieu henteu gancang, tapi kuring nyangka kaahlian éta laun-laun disimpen "dina subcortex."

téks disumputkeunAnjeun tiasa disebutkeun yen di luhur ampir atra. Tapi, jujur, usum gugur ieu kuring ngagaduhan kasempetan pikeun ngajar élmu komputer di kelas 9 di hiji sakola. Éta pikareueuseun. Murid henteu terang hal-hal dasar sapertos Ctrl + Z, Ctrl + C sareng Ctrl + V, milih téks bari nahan Shift atanapi ngaklik dua kali dina kecap, sareng sajabana. Ieu sanajan kanyataan yén maranéhanana éta dina taun katilu maranéhanana diajar elmu komputer... Tarik kacindekan anjeun sorangan.

Katilu: ngetikkeun touch. Kuring dipercayakeun koméntar dina kode ka budak pikeun ngetik (hayu anjeunna latihan). Urang langsung nempatkeun leungeun urang leres ambéh ramo urang saeutik demi saeutik inget lokasi konci.

Sakumaha anjeun tiasa tingali, urang masih ngan ngamimitian. Urang bakal terus ngasah kaahlian sareng pangaweruh urang; aranjeunna bakal mangpaat dina kahirupan.

Ku jalan kitu, ngeunaan masa depan ...

Kamekaran salajengna

Robot dijieun, drive, blinks jeung bip. Naon ayeuna? Diideuan ku naon anu urang laksanakeun, kami ngarencanakeun pikeun nyaring deui. Aya ide pikeun ngadamel kadali jauh - sapertos rover lunar. Éta bakal pikaresepeun, linggih dina kadali jauh, pikeun ngontrol gerakan robot anu nyetir di tempat anu béda. Tapi éta bakal janten carita anu béda ...

Sarta dina tungtungna, dina kanyataanana, pahlawan artikel ieu (video ku ngaklik):

Pangalaman nyiptakeun robot munggaran dina Arduino (robot "hunter")

Hatur nuhun kanggo nengetan!

Tumbu ka kode

sumber: www.habr.com

Tambahkeun komentar