Ezmûna afirandina robotê yekem li ser Arduino (robot "nêçîr")

Hello.

Di vê gotarê de ez dixwazim pêvajoya komkirina yekem robotê xwe bi karanîna Arduino vebêjim. Materyal dê ji bo destpêkên din ên mîna min ên ku dixwazin cûreyek "kerteyek xwe-rêveber" çêbikin re kêrhatî be. Gotar danasîna qonaxên xebata bi pêvekên min re li ser nuwazeyên cihêreng e. Zencîreyek koda paşîn (bi îhtîmalek ne ya herî îdeal) di dawiya gotarê de tê dayîn.

Ezmûna afirandina robotê yekem li ser Arduino (robot "nêçîr")

Dema ku mimkun be, min kurê xwe (8 salî) beşdarî beşdariyê kir. Bi rastî çi bi wê re xebitî û çi nekir - min beşek ji gotarê ji vê re veqetand, dibe ku ew ê ji kesek re kêrhatî be.

Danasîna giştî ya robot

Pêşîn, çend gotin li ser robot bixwe (fikra). Min bi rastî nexwest ku di destpêkê de tiştek standard berhev bikim. Di heman demê de, komek pêkhateyan pir standard bû - şase, motor, senzorek ultrasonic, senzora rêzê, LED, tweeter. Di destpêkê de, robotek ji vê "koma şorbê" ku xaka wê diparêze hate îcadkirin. Ew ber bi sûcdarê ku xeta çemberê derbas kiriye ajotiye, û paşê vedigere navendê. Lêbelê, ji vê guhertoyê re xêzek xêzkirî, pêvek matematîkê jî hewce bû ku her dem di çemberê de bimîne.

Ji ber vê yekê, piştî ku hinekî fikirîm, min hinekî fikir guhert û biryar da ku ez robotek "nêçîr" çêkim. Di destpêkê de, ew li dora eksê xwe dizivire, armancek (kesek) nêzîk hilbijêrin. Heke "nêçîr" were dîtin, "nêçîr" çira û sîrena dibiriqîne û dest bi ajotinê ber bi wê dike. Dema ku mirov direve/direve, robot armanceke nû hildibijêre û li pey wê diçe û hwd. Robotek wusa ne hewceyê dorhêlek tixûbdar e, û ew dikare li deverên vekirî bixebite.

Wekî ku hûn dikarin bibînin, ev pir mîna lîstikek girtinê ye. Her çend di dawiyê de robot bi têra xwe bilez derneket jî, ew bi dilsozî bi mirovên li dora xwe re têkilî dike. Zarok bi taybetî jê hez dikin (carinan lê dixuye ku ew ê wê biperçiqînin, dilê wan ji lêdanê diherike...). Ez difikirim ku ev çareseriyek baş e ji bo populerkirina sêwirana teknîkî.

Avahiya robot

Ji ber vê yekê, me li ser ramanê biryar da, em biçin ser rêz. Navnîşa hêmanan ji tiştê ku robot karibe bike pêk tê. Li vir her tişt pir eşkere ye, ji ber vê yekê em tavilê li hejmarê binêrin:

Ezmûna afirandina robotê yekem li ser Arduino (robot "nêçîr")

"Mejiyê" robotê tabloyek arduino uno ye (1); di setek ku ji Chinaînê hatî ferman kirin de bû. Ji bo mebestên me, ew pir bes e (em balê dikişînin ser hejmara pinên têne bikar anîn). Me ji heman kîtê şensek amade (2) hilda, ku du çerxên ajotinê (3) û yek paşîn (bi serbestî dizivirin) (4) pê ve girêdayî ne. Kit di heman demê de parçeyek pîlê amadekirî jî hebû (5). Li pêşiya robotê senzorek ultrasonîk (HC-SR04) (6) heye, li paş ajokarek motorê (L298N) (7), di navendê de tîrêjek LED (8) heye, û piçek jî heye. aliyê wir tweeterek heye (9).

Di qonaxa plansaziyê de em lê dinêrin:

- da ku her tişt biqewime
- hevseng be
- bi awayekî rasyonel were danîn

Hevalên me yên Çînî jixwe ev yek ji bo me qismî kirine. Ji ber vê yekê, beşa battera giran li navendê tête danîn, û çerxên ajotinê bi qasî di binê wê de ne. Hemî tabloyên din sivik in û dikarin li derdor werin danîn.

Nuans:

  1. Şasiya ji kîtê gelek kunên fabrîkayê hene, lê min hîn jî fam nekiriye ka mantiq di wan de çi ye. Motor û pakêta bataryayê bê pirsgirêk hatin ewlekirin, dûv re "serrastkirin" bi kolandina kunên nû dest pê kir da ku ev an wê panelê ewle bike.
  2. Refikên tûnc û pêgirên din ên ji deverên hilanînê arîkariyek mezin bûn (carinan me neçar ma ku wan derxînin).
  3. Min otobûsên ji her panelê di nav kelepçeyan re derbas kirin (dîsa, min ew di hilanînê de dîtin). Pir rehet e, hemî têl xweş radizên û naqedin.

Blokên takekesî

Niha ez ê derbas bikim blokên û ez ê ji we re bi xwe li ser her yekê bibêjim.

beşa pîlê

Eşkere ye ku divê robot xwedî çavkaniyeke baş a enerjiyê be. Dibe ku vebijark cûda bibin, min vebijarka bi 4 bataryayên AA vebijart. Bi tevahî, ew bi qasî 5 V didin, û ev voltaj dikare rasterast li pîneya 5V ya panela arduino were sepandin (ji stabîlîzkerê re derbas dibe).

Bê guman, hin hişyariya min hebû, lê ev çareserî pir bikêr e.

Ji ber ku hêz li her derê hewce ye, ji bo rehetiyê min di navenda robotê de du girêdan çêkir: yek erdê (li milê rastê) "belav dike" û ya duyemîn - 5 V (li milê çepê).

Ezmûna afirandina robotê yekem li ser Arduino (robot "nêçîr")

Motor û ajokar

Pêşîn, li ser sazkirina motoran. Çiya ji fabrîkayê hatî çêkirin, lê bi toleransên mezin têne çêkirin. Bi gotineke din, motor dikarin çend milîmetre çep û rast bilivînin. Ji bo peywira me ev ne krîtîk e, lê li hin deveran dibe ku bandorek hebe (robot dê dest pê bike ku ber bi alîkî ve biçe). Tenê di rewşê de, min motoran bi hişkî paralel danî û wan bi çîçek rast kir.

Ezmûna afirandina robotê yekem li ser Arduino (robot "nêçîr")

Ji bo kontrolkirina motoran, wekî ku min li jor nivîsî, ajokera L298N tê bikar anîn. Li gorî belgeyê, ji bo her motorê sê pin hene: yek ji bo guheztina lezê û cotek pîne ji bo arastekirina zivirandinê. Li vir xalek girîng heye. Derket holê ku heke voltaja dabînkirinê 5 V be, wê hingê kontrolkirina lezê bi hêsanî naxebite! Yanî yan qet nazivire, yan jî dizivire herî zêde. Ev taybetmendiya ku bû sedem ku ez çend êvaran "bikujim". Di dawiyê de, min li deverek li ser yek ji foruman behsek dît.

Bi gelemperî, gava ku robot dizivire, hewcedariya min bi leza zivirîna hindik hebû - da ku wextê wê hebe ku cîhê bişopîne. Lê, ji ber ku tiştek ji vê ramanê derneket, ez neçar bûm ku wê bi rengekî din bikim: zivirînek piçûk - raweste - zivir - raweste, hwd. Dîsa ne ew qas xweşik, lê bikêrhatî.

Ez ê li vir jî lê zêde bikim ku piştî her şopandinê, robot ji bo zivirînek nû rêgezek bêserûber hildibijêre (li gorî demjimêr an berevajî wê).

Sensor Ultrasonic

Ezmûna afirandina robotê yekem li ser Arduino (robot "nêçîr")

Parçeyek din a hardware ku em neçar bûn ku li çareseriyek lihevhatinê bigerin. Sensorê ultrasonic li ser astengên rastîn hejmarên bêbawer çêdike. Bi rastî, ev hêvî bû. Bi îdeal, ew li cîhek di pêşbaziyan de dixebite ku li wir rûberên nerm, hevûdu û perpendîkuler hene, lê heke lingên yekî li ber wê "bibiriqe", pêdivî ye ku pêvajoyek zêde were danîn.

Wekî pêvajoyek wusa min destnîşan kir Parzûna navîn ji bo sê hejmaran. Li ser bingeha ceribandinên li ser zarokên rastîn (di dema ceribandinan de zarok zirarê nebûn!), derket holê ku ew ji bo normalîzekirina daneyan pir bes e. Fîzîk li vir hêsan e: îşaretên me hene ku ji wan têne xuyang kirin pêwist tiştan (dûrahiya hewce dide) û ji yên dûrtir têne xuyang kirin, mînakî, dîwaran. Evên paşîn di pîvandinên 45, 46 de emîsyonên rasthatî ne, 230, 46, 46, 45, 45, 310, 46... Ev e ku parzûna navîn qut dike.

Piştî hemî pêvajoyê, em dûrahiya heya tiştê herî nêzîk digirin. Ger ew ji nirxek hindek hindiktir be, wê hingê em alarmê vedikin û rasterast berbi "daxilkar" dimeşin.

Flasher û sîren

Dibe ku hêmanên herî hêsan ên hemî jorîn. Ew di wêneyên jorîn de têne dîtin. Li vir tiştek tune ku li ser hardware binivîsin, ji ber vê yekê naha em biçin ser navê dizî.

Bernameya kontrolê

Ez xala danasîna kodê bi hûrgulî nabînim, kê jê re hewce dike - girêdan di dawiya gotarê de ye, her tişt li wir tê xwendin. Lê wê xweş be ku em avahiya giştî rave bikin.

Yekem tiştê ku divê em fêm bikin ev bû ku robot amûrek rast-dem e. Bi rastî, ji bîr mekin, ji ber ku hem berê û hem jî niha ez hîn jî di elektronîkê de dixebitim. Ji ber vê yekê, em tavilê dijwariyê ji bîr dikin derengxistin(), ya ku ew hez dikin ku di nexşeyên nimûne de bikar bînin, û ya ku bi tenê bernameyê ji bo demek diyarkirî "cemidîne". Di şûna wê de, wekî mirovên pispor şîret dikin, em ji bo her blokê demjimêran destnîşan dikin. Navbera pêwîst derbas bû - çalakî hate kirin (ronahiya LED zêde kir, motorê vekir, û hwd.)

Demjimêr dikarin bi hev ve girêdayî bin. Mînakî, tweeter bi flasher re hevdem dixebite. Ev bernameyê hinekî hêsan dike.

Bi xwezayî, em her tiştî di nav fonksiyonên cihêreng de vediqetînin (çiqandin, deng, zivirandin, pêş ve diçin, û hwd.). Ger hûn vê yekê nekin, wê hingê hûn ê nikaribin fêm bikin ka çi ji ku û li ku tê.

Nuances of pedagogy

Min her tiştê ku li jor hatî diyar kirin di dema xwe ya vala de êvaran dikir. Bi rengek bêhnfireh, min sê hefte li ser robot derbas kir. Ev dikaribû li vir biqede, lê min soz da ku ez ji we re qala xebata bi zarokek re jî bikim. Di vî temenî de çi dikare were kirin?

Li gorî talîmatan bixebitin

Me pêşî her hûrgulî ji hev cuda kontrol kir - LED, tweeter, motor, senzor, hwd. Gelek mînakên amade hene - hin di hawîrdora pêşkeftinê de, yên din dikarin li ser Înternetê werin dîtin. Ev bê guman min kêfxweş dike. Em kodê digirin, parçeyê girêdidin, pê ewle dibin ku ew dixebite, dûv re em dest bi guheztina wê dikin ku li gorî peywira xwe biguhezînin. Zarok li gorî diyagramê û di bin çavdêriya min de hin pêwendiyan çêdike. Ev baş e. Her weha hûn hewce ne ku hûn li gorî rêwerzan bi hişkî bixebitin.

Rêza xebatê ("ji taybetî berbi giştî")

Ev xalek dijwar e. Pêdivî ye ku hûn fêr bibin ku projeyek mezin ("robotek çêbikin") ji karên piçûk pêk tê ("sensorek ve girêdin", "motoran girêdin"...), û ew jî ji gavên piçûktir pêk tên ("bibînin a bername," "lijneyekê girêbide." ", "firmware dakêşin"...). Bi pêkanîna karên kêm-zêde yên têgihîştî yên asta jêrîn, em karên asta navîn "girtî" dikin, û ji wan encamek giştî pêk tê. Min rave kir, lê ez difikirim ku têgihiştin dê zû neyê. Li deverek, dibe ku, ji hêla xortaniyê ve.

Meclîsa

Sondakirin, têl, çîp, gwîz, zeliqandin û bêhna rosin - em ê bêyî wê li ku bin? Zarok jêhatîbûna bingehîn "Xebatkirina bi hesinê lêdanê" wergirt - wî karî çend pêwendiyan zeft bike (min hinekî alîkariya min kir, ez ê venaşêrim). Li ser ravekirina ewlehiyê ji bîr nekin.

Karê kompîturê

Min bername ji bo robot nivîsand, lê dîsa jî min karî hin encamên xweş bi dest bixim.

Yekem: Îngilîzî. Wan nû li dibistanê dest pê kiribû, ji ber vê yekê em têdikoşin ku em fêr bibin ka pişalka, migalka, yarkost û wergêrên din çi ne. Qe nebe me ev fêm kir. Min bi zanetî peyvên xwemalî yên îngilîzî bi kar neanîn, ji ber ku em hîn negihiştine vê astê.

Duyem: karê bikêrhatî. Me berhevokên bişkojka germ û meriv çawa zû karûbarên standard pêk tîne fêr kir. Dem bi dem, dema ku me bernameyê dinivîsand, min û kurê xwe cîhên xwe guhezandin, û min got ku divê çi were kirin (guheztin, lêgerîn, hwd.). Diviya bû ku ez dîsa û dîsa dubare bikim: "hilbijêre du-bitikîne", "Shift bigire", "Ctrl bigire" û hwd. Pêvajoya fêrbûnê li vir ne bilez e, lê ez difikirim ku jêhatî dê hêdî hêdî "di binkorteksê de" werin razandin.

Nivîsa veşartîHûn dikarin bêjin ku li jor hema hema eşkere ye. Lê, bi rastî, vê payizê min fersend dît ku ez di pola 9-an de li yek dibistanê fêrî zanistiya komputerê bikim. Ew tirsnak e. Şagirt tiştên bingehîn ên wekî Ctrl + Z, Ctrl + C û Ctrl + V nizanin, dema ku Shift digirin an jî du caran li ser peyvekê klîk dikin û hwd. Ev tevî wê yekê ye ku ew di sala sêyem a xwendina zanistiya kompîturê de bûn... Encama xwe derxînin.

Sêyem: destnivîsandina dest. Min şîroveyên di kodê de spartin zarokê ku binivîsîne (bila ew pratîkê bike). Me tavilê destên xwe rast danî da ku tiliyên me gav bi gav cihê kilîtan bînin bîra xwe.

Wekî ku hûn dibînin, em hîn nû dest pê dikin. Em ê jêhatîbûn û zanîna xwe bidomînin; ew ê di jiyanê de bikêr bin.

Bi awayê, di derbarê pêşerojê de ...

Pêşveçûna bêtir

Robot tê çêkirin, diajot, diqelişe û bip. Niha çi? Bi îlhama tiştên ku me bi dest xistine, em plan dikin ku wê bêtir safî bikin. Fikirek heye ku meriv kontrolek ji dûr ve çêbike - mîna roverek heyvê. Dê balkêş be, rûniştina li ser kontrolek dûr, kontrolkirina tevgera robotek ku li cîhek bi tevahî cûda ajot dike. Lê ew ê çîrokek cûda be ...

Û di dawiyê de, bi rastî, lehengên vê gotarê (vîdyo bi tikandina):

Ezmûna afirandina robotê yekem li ser Arduino (robot "nêçîr")

Ji bo baldariya te spas!

Girêdana kodê

Source: www.habr.com

Add a comment