Arduinoko lehen robota sortzeko esperientzia (robot "ehiztaria")

Kaixo

Artikulu honetan nire lehen robota Arduino erabiliz muntatzeko prozesua deskribatu nahi dut. Materiala baliagarria izango da "norberak ibiltzeko gurdi bat" egin nahi duten ni bezalako beste hasiberrientzat. Artikulua nire gehiketekin hainbat ñabardura lantzeko etapen deskribapena da. Azken koderako esteka (ziurrenik ez da idealena) artikuluaren amaieran ematen da.

Arduinoko lehen robota sortzeko esperientzia (robot "ehiztaria")

Ahal den guztietan, nire semea (8 urtekoa) parte hartu nuen parte hartzen. Zerk funtzionatu zuen zehazki eta zerk ez - Artikuluaren zati bat honi eskaini diot, agian norbaitentzat erabilgarria izango da.

Robotaren deskribapen orokorra

Lehenik eta behin, robotari berari buruzko hitz batzuk (ideia). Hasieran ez nuen ezer estandarrik muntatu nahi. Aldi berean, osagaien multzoa nahiko estandarra zen: xasisa, motorrak, ultrasoinu-sentsorea, linea-sentsorea, LED-ak, tweeter-a. Hasieran, bere lurraldea zaintzen duen “zopa multzo” horretatik robot bat asmatu zen. Zirkulu-lerroa zeharkatu duen delitugilearengana jotzen du, eta gero zentrora itzultzen da. Hala ere, bertsio honek marra marraztu bat behar zuen, gehi matematika gehigarria uneoro zirkuluan egoteko.

Horregatik, pentsatu ondoren, ideia zertxobait aldatu eta "ehiztari" robot bat egitea erabaki nuen. Hasieran, bere ardatzari buelta ematen dio, gertuko helburu bat (pertsona) aukeratuz. "Harrapakina" detektatzen bada, "ehiztaria" argi keinukariak eta sirena pizten ditu eta harantz gidatzen hasten da. Pertsona urruntzen denean/ihes egiten duenean, robotak helburu berri bat hautatzen du eta atzetik jarraitzen du, eta abar. Horrelako robot batek ez du zirkulu mugatu bat behar, eta eremu irekietan lan egin dezake.

Ikus dezakezunez, hau harrapatzeko joko baten antzekoa da. Azkenean robota nahikoa azkarra izan ez den arren, zintzotasunez elkarreragiten du inguruko jendearekin. Umeei bereziki gustatzen zaie (batzuetan, ordea, badirudi zapaltzeko zorian daudela, bihotzak taupada bat egiten duela...). Diseinu teknikoa zabaltzeko irtenbide ona dela uste dut.

Robotaren egitura

Beraz, ideia erabaki dugu, goazen diseinua. Elementuen zerrenda robotak egin beharko lukeenaren arabera osatzen da. Hemen dena nahiko begi-bistakoa da, beraz, ikus dezagun berehala zenbakira:

Arduinoko lehen robota sortzeko esperientzia (robot "ehiztaria")

Robotaren “garunak” arduino uno plaka bat dira (1); Txinari agindutako multzo batean zegoen. Gure helburuetarako, nahikoa da (erabilitako pin kopuruan zentratzen gara). Kit beretik prest egindako xasis bat (2) hartu genuen, zeinaren gainean bi gurpil eragile (3) eta atzeko bat (aske biratzen duena) (4) lotzen diren. Kitak prest egindako bateriaren konpartimentu bat ere barne hartzen zuen (5). Robotaren aurrean ultrasoinu sentsore bat dago (HC-SR04) (6), atzealdean motor gidari bat (L298N) (7), erdian LED keinukari bat dago (8), eta pixka bat alboan txiolari bat dago (9).

Diseinuaren fasean honako hauek aztertuko ditugu:

- dena egoki dadin
- orekatua izatea
- arrazionalki kokatuta egotea

Gure lankide txinatarrak dagoeneko partzialki egin digute hori. Beraz, bateriaren konpartimentu astuna erdian kokatzen da eta gidatzeko gurpilak azpian kokatzen dira gutxi gorabehera. Gainerako taula guztiak arinak dira eta periferian jar daitezke.

ñabardura:

  1. Kitaren txasisak fabrikako zulo asko ditu, baina oraindik ez dut asmatu zein den haien logika. Motorrak eta bateriak arazorik gabe bermatu ziren, gero "doikuntza" zulo berriak zulatzen hasi ziren taula hau edo hura ziurtatzeko.
  2. Biltegiratze guneetako letoizko euskarriak eta beste lokailuak laguntza handia izan zuten (batzuetan atera behar izaten genituen).
  3. Ohol bakoitzetik busbarrak pasau nituen besarkadenetatik (berriz, biltegian aurkitu ditut). Oso erosoa, hari guztiak ondo daude eta ez dira zintzilik.

Banakako blokeak

Orain pasako naiz blokeak eta pertsonalki kontatuko dizut bakoitzari buruz.

bateriaren konpartimendua

Argi dago robotak energia iturri ona izan behar duela. Aukerak alda daitezke, 4 AA pilekin aukeratu dut aukera. Guztira 5 V ematen dituzte gutxi gorabehera, eta tentsio hori zuzenean aplika daiteke arduino plakaren 5 V-ko pinean (egonkortzailea saihestuz).

Jakina, kontu handiz ibili nintzen, baina irtenbide hau nahiko bideragarria da.

Nonahi potentzia behar denez, erosotasunerako bi konektore egin nituen robotaren erdian: batek lurra "banatzen" du (eskuinean) eta bigarrena - 5 V (ezkerrean).

Arduinoko lehen robota sortzeko esperientzia (robot "ehiztaria")

Motorrak eta gidaria

Lehenik eta behin, motorrak muntatzeari buruz. Muntaia fabrikan egina da, baina tolerantzia handiekin egina. Beste era batera esanda, motorrak milimetro pare bat dabilen ezkerrera eta eskuinera. Gure zereginerako hori ez da kritikoa, baina leku batzuetan eragina izan dezake (robota albo batera mugitzen hasiko da). Badaezpada, motorrak zorrozki paralelo jarri eta kolarekin konpondu ditut.

Arduinoko lehen robota sortzeko esperientzia (robot "ehiztaria")

Motorrak kontrolatzeko, goian idatzi dudan bezala, L298N kontrolatzailea erabiltzen da. Dokumentazioaren arabera, hiru pin ditu motor bakoitzerako: bat abiadura aldatzeko eta biratze noranzkoaren pare bat. Hemen puntu garrantzitsu bat dago. Hornidura-tentsioa 5 V-koa bada, orduan abiadura kontrolak ez du funtzionatzen! Hau da, edo ez du batere bira ematen, edo maximoan biratzen da. Hau da arratsalde pare batean “hiltzea” eragin didan ezaugarria. Azkenean, aipamen bat aurkitu dut nonbait fororen batean.

Oro har, errotazio-abiadura baxua behar nuen robota biratzean, espazioa eskaneatzeko denbora izan zedin. Baina, ideia honetatik ezer ez zenez, beste era batera egin behar izan nuen: bira txiki bat - gelditu - buelta - gelditu, etab. Berriz ere, ez hain dotorea, baina egingarria.

Era berean, hemen gehituko dut, jazarpen bakoitzaren ondoren, robotak ausazko norabide bat aukeratzen duela bira berri baterako (erlojuaren orratzen noranzkoan edo erlojuaren kontra).

Ultrasoinu-sentsore

Arduinoko lehen robota sortzeko esperientzia (robot "ehiztaria")

Konpromiso-konponbide bat bilatu behar genuen beste hardware pieza bat. Ultrasoinu-sentsoreak zenbaki ezegonkorrak sortzen ditu benetako oztopoetan. Egia esan, hori espero zen. Egokiena, gainazal leun, parekatu eta perpendikularrak dauden lehiaketetan nonbait funtzionatzen du, baina norbaiten hankak aurrean "distintzen" badira, prozesamendu osagarria sartu behar da.

Prozesamendu gisa ezarri nuen mediana iragazkia hiru kontuetarako. Benetako umeei egindako probetan oinarrituta (probetan ez zen umerik kaltetu!), nahikoa izan zen datuak normalizatzeko. Hemen fisika erraza da: seinaleak ditugu islatuta beharrezkoak objektuak (beharrezko distantzia emanez) eta urrunago daudenetatik islatuta, adibidez, hormetatik. Azken hauek ausazko isuriak dira 45, 46, formako neurketetan. 230, 46, 46, 45, 45, 310, 46... Hauek dira mediana-iragazkiak mozten dituena.

Prozesamendu guztiaren ondoren, hurbilen dagoen objektuarekiko distantzia lortzen dugu. Atalase-balio jakin bat baino txikiagoa bada, orduan alarma piztuko dugu eta zuzen gidatzen dugu "intrusorantz".

Flasher eta sirena

Agian, aurreko guztiaren elementurik sinpleenak. Goiko argazkietan ikus daitezke. Hemen ez dago hardwareari buruz idazteko ezer, beraz, orain joan gaitezen kodea.

Kontrol-programa

Ez dut zentzurik ikusten kodea zehatz-mehatz deskribatzeari, nork behar duen - esteka artikuluaren amaieran dago, dena nahiko irakurgarria da bertan. Baina polita litzateke egitura orokorra azaltzea.

Ulertu behar genuen lehenengo gauza robot bat denbora errealeko gailu bat dela izan zen. Zehatzago esanda, gogoratzeko, bai lehen eta bai orain oraindik elektronikan lan egiten dudalako. Beraz, berehala ahazten zaigu erronka delay (), adibidez zirriborroetan erabiltzea gustatzen zaiena, eta programa denbora-tarte jakin batean "izozten" besterik ez du egiten. Horren ordez, esperientziadunek aholkatzen dutenez, bloke bakoitzeko tenporizadoreak sartzen ditugu. Beharrezko tartea igaro da - ekintza egin da (LEDaren distira handitu, motorra piztu eta abar).

Tenporizadoreak elkarrekin konekta daitezke. Esaterako, txio-erreparadoreak flasher-arekin sinkronoki funtzionatzen du. Honek programa apur bat errazten du.

Berez, dena funtzio bereizietan banatzen dugu (argi keinuak, soinua, biratzea, aurrera egitea, eta abar). Hau egiten ez baduzu, ezin izango duzu asmatu zer datorren nondik eta nondik.

Pedagogiaren ñabardurak

Goian azaldutako guztia egin nuen nire denbora librean arratsaldeetan. Modu lasaian, hiru aste inguru eman nituen robotean. Hau hemen buka zitekeen, baina ume batekin lan egiteaz ere kontatuko nizula agindu nizuen. Zer egin daiteke adin honetan?

Argibideen arabera lan egin

Lehenik eta behin xehetasun bakoitza banan-banan egiaztatu genuen - LEDak, tweeter-a, motorrak, sentsoreak, etab. Prestatutako adibide ugari daude - batzuk garapen-ingurunean bertan, beste batzuk Interneten aurki daitezke. Horrek pozten nau, zalantzarik gabe. Kodea hartzen dugu, pieza konektatu, funtzionatzen duela ziurtatzen dugu, gero aldatzen hasten gara gure zereginaren arabera. Haurrak diagramaren arabera eta nire gainbegiratze batzuen pean egiten ditu konexioak. Hau ona da. Argibideen arabera zorrotz lan egiteko gai izan behar duzu.

Lanaren ordena ("partikularretik orokorrera")

Hau puntu zaila da. Ikasi behar duzu proiektu handi bat (“robot bat egin”) zeregin txikiz osatuta dagoela (“sentsore bat konektatu”, “motorrak konektatu”...), eta horiek, aldi berean, urrats are txikiagoz osatuta (“bilatu bat programa", "plaka bat konektatu". ", "firmwarea deskargatu"...). Behe-mailako zeregin gutxi-asko ulergarriak eginez, erdi-mailako zereginak “ixten” ditugu, eta horietatik emaitza orokorra osatzen da. Azaldu nuen, baina uste dut konturatzea ez dela laster etorriko. Nonbait, ziurrenik, nerabezarorako.

Instalazioa

Zulaketak, hariak, torlojuak, fruitu lehorrak, soldadurak eta kolofoniaren usaina - non egongo ginateke hori gabe? Haurrak oinarrizko trebetasuna jaso zuen "Soldagailu batekin lan egitea" - hainbat konexio soldatzea lortu zuen (pixka bat lagundu nuen, ez dut ezkutatuko). Ez ahaztu segurtasunaren azalpena.

Ordenagailu lana

Roboterako programa idatzi nuen, baina hala ere emaitza onak lortzea lortu nuen.

Lehenengoa: ingelesa. Eskolan hasi berri ziren, beraz, pishalka, migalka, yarkost eta beste transliterazio batzuk zer ziren asmatzen ari ginen. Guk behintzat hori ulertu genuen. Nahita ez nuen ingelesezko jatorrizko hitzak erabili, oraindik ez baikara maila honetara iritsi.

Bigarrena: lan eraginkorra. Laster-tekla konbinazioak eta eragiketa estandarrak azkar nola egin irakatsi genituen. Aldian behin, programa idazten ari ginela, semea eta biok lekuz trukatzen genuen, eta egin beharrekoa esaten nuen (ordezkapena, bilaketa, etab.). Behin eta berriz errepikatu behar izan nuen: “sakatu bikoitza hautatu”, “Shift sakatu”, “Ktrl sakatu” eta abar. Hemen ikasteko prozesua ez da azkarra, baina trebetasunak apurka-apurka "azpikortexean" metatuko direla uste dut.

Ezkutuko testuaAurrekoa ia begi-bistakoa dela esan dezakezu. Baina, egia esan, udazken honetan 9. mailan informatika irakasteko aukera izan dut ikastetxe batean. Hori izugarria da. Ikasleek ez dakite oinarrizko gauza hauek: Ctrl + Z, Ctrl + C eta Ctrl + V, testua hautatuz Shift sakatuta edo hitz batean klik bikoitza eginez, etab. Hau da informatika ikasketak hirugarren mailan zeudela arren... Atera ezazu zeure ondorioa.

Hirugarrena: ukipen-idazketa. Kodeko iruzkinak umearen esku utzi nizkion idazteko (lantzen utzi). Berehala eskuak behar bezala jarri genituen, hatzak pixkanaka giltzen kokapena gogoratu zezan.

Ikusten duzuenez, oraindik hasi berriak gara. Gure gaitasunak eta ezagutzak hobetzen jarraituko dugu; bizitzan erabilgarriak izango dira.

Bide batez, etorkizunari buruz...

Garapen gehiago

Robota eginda dago, gidatzen du, keinu egiten du eta bip egiten du. Orain zer? Lortutakoak bultzatuta, gehiago fintzeko asmoa dugu. Badago ideia bat urrutiko aginte bat egiteko, ilargi-rover bat bezala. Interesgarria litzateke, urrutiko aginte batean eserita, leku guztiz ezberdin batean gidatzen ari den robot baten mugimendua kontrolatzea. Baina hori beste istorio bat izango da...

Eta amaieran, hain zuzen ere, artikulu honen heroiak (bideoa klik eginez):

Arduinoko lehen robota sortzeko esperientzia (robot "ehiztaria")

Eskerrik asko zure arreta!

Kodearen esteka

Iturria: www.habr.com

Gehitu iruzkin berria