Esperienza di creazione di u primu robot in Arduino (robot "cacciatore")

Bonghjornu

In questu articulu vogliu descriverà u prucessu di assemblea u mo primu robot cù Arduino. U materiale serà utile à l'altri principianti cum'è mè chì volenu fà una sorta di "carrettu self-running". L'articulu hè una descrizzione di e tappe di u travagliu cù e mo aghjunte nantu à diverse sfumature. Un ligame à u codice finale (probabilmente micca u più ideale) hè datu à a fine di l'articulu.

Esperienza di creazione di u primu robot in Arduino (robot "cacciatore")

Sempre chì hè pussibule, aghju implicatu u mo figliolu (8 anni) à participà. Ciò chì hà travagliatu esattamente cun ellu è ciò chì ùn hà micca - aghju dedicatu una parte di l'articulu à questu, forsi serà utile à qualchissia.

Descrizzione generale di u robot

Prima, uni pochi di parolle nantu à u robot stessu (l'idea). Ùn vulia micca veramente assembleà qualcosa standard à u principiu. À u listessu tempu, u settore di cumpunenti era abbastanza standard - chassis, motori, sensor ultrasonic, sensor line, LEDs, tweeter. In principiu, un robot hè statu inventatu da stu "set di zuppa" chì guardà u so territoriu. Cunduce versu u delincutore chì hà attraversatu a linea di u circulu, è poi torna in u centru. In ogni casu, sta versione necessitava una linea tracciata, più una matematica extra per stà in u circhiu in ogni mumentu.

Dunque, dopu avè pensatu, aghju cambiatu un pocu l'idea è decisu di fà un robot "cacciatore". À u principiu, gira intornu à u so assi, scegliendu un mira vicinu (persona). Se a "preda" hè rilevata, u "cacciatore" accende e luci lampanti è a sirena è cumencia à guidà versu ellu. Quandu a persona si alluntanassi / scappa, u robot selezziunà un novu mira è persegue, è cusì. Un tali robot ùn hà micca bisognu di un circhiu limitatu, è pò travaglià in spazii aperti.

Comu pudete vede, questu hè assai cum'è un ghjocu di catch-up. Ancu s'ellu à a fine u robot ùn hè micca statu abbastanza veloce, interagisce onestamente cù e persone intornu. Li piacia soprattuttu à i zitelli (a volte, però, pare ch'elli s'appoghjanu à calpà, u so core sbatte un battitu...). Pensu chì questu hè una bona suluzione per popularizà u disignu tecnicu.

Struttura di u robot

Allora, avemu decisu nantu à l'idea, andemu layout. A lista di elementi hè furmatu da ciò chì u robot deve esse capace di fà. Tuttu quì hè abbastanza ovvi, cusì fighjemu immediatamente a numerazione:

Esperienza di creazione di u primu robot in Arduino (robot "cacciatore")

I "cervelli" di u robot sò una scheda arduino uno (1); era in un set urdinatu da a Cina. Per i nostri scopi, hè abbastanza abbastanza (focu nantu à u numeru di pins utilizati). Da u listessu kit avemu pigliatu un chassis ready-made (2), nantu à quale duie roti motrici (3) è una posteriore (rotazione libera) (4) sò attaccati. U kit includeva ancu un compartmentu di bateria pronta (5). Davanti à u robot ci hè un sensoru ultrasonicu (HC-SR04) (6), in u spinu ci hè un mutore di mutore (L298N) (7), in u centru ci hè un LED lampeggiante (8), è un pocu per u latu ci hè un tweeter (9).

In u stadiu di layout, guardemu:

- per chì tuttu si mette
- per esse equilibratu
- per esse pusatu raziunale

I nostri culleghi chinesi anu digià parzialmente fattu questu per noi. Allora, u compartmentu di a bateria pesante hè situatu in u centru, è i roti di mutore sò situati apprussimatamente sottu. Tutti l'altri tavulini sò ligeri è ponu esse posti nantu à a periferia.

Nuances:

  1. U chassis da u kit hà assai buchi di fabbrica, ma ùn aghju micca capitu chì a logica hè in elli. I mutori è u pacchettu di batterie sò stati assicurati senza prublemi, allora u "aghjustamentu" hà cuminciatu cù perforazione di novi buchi per assicurà questu o quellu bordu.
  2. I rack di ottone è altri fasteners da i spazii di almacenamentu eranu un grande aiutu (a volte avemu avutu da esce).
  3. Aghju passatu i busbars da ogni bordu per i clamps (di novu, l'aghju trovu in almacenamiento). Moltu còmuda, tutti i fili si trovanu bè è ùn sò micca penduli.

Blocchi individuali

Avà passaraghju blocchi è vi dicu personalmente di ognunu.

compartimentu di batterie

Hè chjaru chì u robot deve avè una bona fonte di energia. L'opzioni ponu varià, aghju sceltu l'opzione cù 4 batterie AA. In totale, dà circa 5 V, è sta tensione pò esse direttamente appiicata à u pin 5V di a scheda arduino (bypassing the stabilizer).

Di sicuru, aghju avutu qualchì prudenza, ma sta suluzione hè abbastanza pratica.

Siccomu u putere hè necessariu in ogni locu, per comodità aghju fattu dui connettori in u centru di u robot: unu "distribuisce" a terra (à a diritta), è u sicondu - 5 V (à a manca).

Esperienza di creazione di u primu robot in Arduino (robot "cacciatore")

Motori è driver

Prima, nantu à a muntagna di i motori. A muntagna hè fatta in fabbrica, ma fatta cù grande toleranza. In altre parolle, i mutori ponu vacillari un paru di millimetri à manca è à diritta. Per u nostru compitu ùn hè micca criticu, ma in certi lochi pò avè un effettu (u robot hà da cumincià à spustà à u latu). Solu in casu, aghju stabilitu i motori strettamente paralleli è fissi cù cola.

Esperienza di creazione di u primu robot in Arduino (robot "cacciatore")

Per cuntrullà i mutori, cum'è aghju scrittu sopra, u driver L298N hè utilizatu. Sicondu a documentazione, hà trè pins per ogni mutore: unu per cambià a vitezza è un paru di pin per a direzzione di rotazione. Ci hè un puntu impurtante quì. Risulta chì se a tensione di alimentazione hè 5 V, u cuntrollu di a velocità ùn hè micca solu! Vale à dì, o ùn gira micca in tuttu, o si gira à u massimu. Questa hè a funzione chì m'hà causatu à "ammazzà" un paru di serate. In fine, aghju trovu una menzione in qualchì locu in unu di i fori.

In generale, avia bisognu di una bassa velocità di rotazione quandu girava u robot - per avè u tempu di scansà u spaziu. Ma, postu chì nunda hè vinutu di sta idea, aghju avutu à fà in modu diversu: una piccula volta - stop - turn - stop, etc. In novu, micca cusì elegante, ma praticabile.

Aghju aghjustatu ancu quì chì dopu à ogni persecuzione u robot sceglie una direzzione aleatoria per un novu turnu (in senso orario o in senso antiorario).

Sensore ultrasonicu

Esperienza di creazione di u primu robot in Arduino (robot "cacciatore")

Un altru pezzu di hardware induve avemu avutu à circà una suluzione di cumprumissu. U sensoru ultrasonicu pruduce numeri instabili nantu à ostaculi reali. In fatti, questu era previstu. Ideale, travaglia in un locu in cuncorsi induve ci sò superfici lisce, uniformi è perpendiculari, ma se i gammi di qualcunu "flash" davanti à questu, ci hè bisognu di introduzione di processazione supplementaria.

Comu tali prucessu aghju stabilitu filtru medianu per trè cunti. Basatu nantu à e teste nantu à i zitelli veri (nisciunu zitelli sò stati feriti durante e teste!), Risultava abbastanza per nurmalizà e dati. A fisica quì hè simplice: avemu signali riflessi da necessariu l'uggetti (dendu a distanza necessaria) è riflesse da più distanti, per esempiu, i muri. Questi ultimi sò emissioni aleatorii in misurazioni di a forma 45, 46, 230, 46, 46, 45, 45, 310, 46... Hè questi chì u filtru medianu taglia.

Dopu tuttu u prucessu, avemu a distanza à l'ughjettu più vicinu. S'ellu hè menu di un certu valore di soglia, allora accendemu l'alarma è guidamu direttamente versu u "intrudu".

Lampe è sirena

Forsi l'elementi più simplici di tuttu ciò chì sopra. Puderanu esse vistu in i ritratti sopra. Ùn ci hè nunda di scrive nantu à u hardware quì, cusì avà andemu codice.

U prugramma di cuntrollu

Ùn vecu micca u puntu di discrizzione di u codice in dettagliu, quale hè bisognu - u ligame hè à a fine di l'articulu, tuttu hè abbastanza leggibile quì. Ma saria bellu spiegà a struttura generale.

A prima cosa chì avemu avutu à capisce era chì un robot hè un dispositivu in tempu reale. Più precisamente, per ricurdà, perchè sia prima è avà aghju sempre travagliatu in l'elettronica. Dunque, ci scurdemu immediatamente di a sfida delay (), chì li piace à utilizà in sketches d'esempiu, è chì simpricimenti "congela" u prugramma per un periudu di tempu. Invece, cum'è e persone esperte cunsiglianu, introducemu timers per ogni bloccu. L'intervallu necessariu hè passatu - l'azzione hè stata realizata (aumentatu a luminosità di u LED, accende u mutore, è cusì).

I timers ponu esse interconnessi. Per esempiu, u tweeter travaglia in sincronia cù u flasher. Questu simplifica un pocu u prugramma.

Naturalmente, avemu spartutu tuttu in funzioni separati (luci lampanti, sonu, vultà, avanzà, è cusì). Se ùn fate micca questu, allora ùn puderete micca capisce ciò chì vene da induve è induve.

Sfumature di pedagogia

Aghju fattu tuttu ciò chì hè descrittu sopra in u mo tempu liberu à a sera. In una manera piacevule, aghju passatu circa trè settimane nantu à u robot. Questu puderia esse finitu quì, ma aghju prumessu ancu di parlà di travaglià cù un zitellu. Chì pò esse fattu à questa età?

U travagliu secondu l'istruzzioni

Avemu prima verificatu ogni dettagliu separatamente - LED, tweeter, muturi, sensori, etc. Ci hè un gran numaru di esempi pronti - alcuni ghjustu in l'ambienti di sviluppu, altri ponu esse truvati in Internet. Questu certamente mi rende felice. Pigliemu u codice, cunnetta a parte, assicuratevi chì funziona, poi cuminciamu à cambià per adattà à u nostru compitu. U zitellu face e cunnessione secondu u diagramma è sottu un pocu di a mo tutela. Questu hè bonu. Avete ancu bisognu di pudè travaglià strettu secondu l'istruzzioni.

Ordine di travagliu ("da particulare à generale")

Questu hè un puntu difficiule. Avete bisognu di sapè chì un grande prughjettu ("fate un robot") hè custituitu di picculi travaglii ("cunnetta un sensor", "cunnetta i motori"...), è quelli, à u turnu, sò custituiti da passi ancu più chjuchi ("truvà un prugramma," "cunnetta una scheda." ", "scaricate firmware"...). A realizazione di più o menu capiscibili di u livellu più bassu, "chjudemu" i travaglii di u livellu mediu, è da elli u risultatu generale hè furmatu. Aghju spiegatu, ma pensu chì a realizazione ùn vene micca prestu. In qualchì locu, probabilmente, da l'adolescenza.

Assemblea

Perforazione, filamenti, viti, noci, saldatura è l'odore di colofonia - induve sariamu senza ellu? U zitellu hà ricivutu a cumpetenza basica "U travagliu cù un ferru di saldatura" - hà sappiutu di saldà parechje cunnessione (aghju aiutatu un pocu, ùn l'aghju micca ammucciatu). Ùn vi scurdate di a spiegazione di sicurità.

U travagliu di l'urdinatore

Aghju scrittu u prugramma per u robot, ma aghju ancu riesciutu à alcuni risultati favurevuli.

Prima: inglese. Avianu appena principiatu à a scola, cusì avemu avutu a lotta per capisce ciò chì pishalka, migalka, yarkost è altre traslitterazioni eranu. Almenu avemu capitu questu. Deliberatamente ùn aghju micca utilizatu parolle native in inglese, postu chì ùn avemu micca ancu ghjuntu à questu livellu.

Siconda: travagliu efficace. Avemu insignatu cumminazzioni di tasti di scelta rapida è cumu fà rapidamente operazioni standard. Periodicamente, quandu avemu scrittu u prugramma, u mo figliolu è aghju scambiatu i posti, è aghju dettu ciò chì ci vole à fà (sustituzione, ricerca, etc.). Aviu avutu a ripetiri una volta è una volta: "selezzione doppiu cliccà", "hold Shift", "hold Ctrl" è cusì. U prucessu di apprendimentu quì ùn hè micca veloce, ma pensu chì e cumpetenze saranu gradualmente dipositate "in a subcortica".

Testu oculatuPudete dì chì quì sopra hè quasi evidenti. Ma, onestamente, sta caduta aghju avutu l'uppurtunità di insignà l'informatica in a 9a scola in una scola. Hè horrible. I studienti ùn cunnosci micca e cose basi cum'è Ctrl + Z, Ctrl + C è Ctrl + V, selezziunendu u testu mentre mantenenu Shift o fate un doppiu clicu nantu à una parolla, è cusì. Questu hè malgradu u fattu chì eranu in u so terzu annu di studià l'informatica... Pigliate a vostra propria cunclusione.

Terzu: digitazione toccu. Aghju affidatu i cumenti in u codice à u zitellu per scrive (lasciate praticà). Immediatamenti pusonu e mani in modu currettamente per chì i nostri ditte si ricurdanu gradualmente u locu di e chjave.

Comu pudete vede, simu sempre principiatu. Continueremu à affinà e nostre cumpetenze è cunniscenze; ​​seranu utili in a vita.

A propositu di u futuru...

Ulteriore sviluppu

U robot hè fattu, conduce, lampeggia è bip. Chì avà ? Ispirati da ciò chì avemu ottinutu, pensamu di raffinà più. Ci hè una idea di fà un telecomando - cum'è un rover lunar. Saria interessante, seduta à un telecomando, per cuntrullà u muvimentu di un robot chì guida in un locu completamente diversu. Ma serà una storia diversa...

È à a fine, infatti, l'eroi di stu articulu (video clicchendu):

Esperienza di creazione di u primu robot in Arduino (robot "cacciatore")

Ti ringraziu per a vostra attenzione!

Link à u codice

Source: www.habr.com

Add a comment