Erfarung fir den éischte Roboter op Arduino ze kreéieren (Robot "Jeeër")

Hallo

An dësem Artikel wëll ech de Prozess beschreiwen fir mäin éischte Roboter mat Arduino ze montéieren. D'Material wäert nëtzlech sinn fir aner Ufänger wéi ech, déi eng Zort "selbsträifend Weenchen" maache wëllen. Den Artikel ass eng Beschreiwung vun den Etappe vun der Aarbecht mat mengen Ergänzunge fir verschidden Nuancen. E Link zum Schlusscode (wahrscheinlech net deen idealen) gëtt um Enn vum Artikel uginn.

Erfarung fir den éischte Roboter op Arduino ze kreéieren (Robot "Jeeër")

Wa méiglech, hunn ech mäi Jong (8 Joer) matgemaach. Wat genau domat geschafft huet a wat net - ech hunn en Deel vum Artikel fir dëst gewidmet, vläicht wäert et fir een nëtzlech sinn.

Allgemeng Beschreiwung vum Roboter

Als éischt e puer Wierder iwwer de Roboter selwer (Iddi). Ech wollt am Ufank net wierklech eppes Standard zesummestellen. Zur selwechter Zäit war de Set vu Komponenten ganz Standard - Chassis, Motoren, Ultraschallsensor, Line Sensor, LEDs, Tweeter. Am Ufank gouf e Roboter aus dësem "Zoppset" erfonnt, deen säin Territoire bewaacht. Hie fiert op den Täter, deen d'Kreeslinn iwwerschratt huet, a geet dann zréck an d'Mëtt. Wéi och ëmmer, dës Versioun erfuerdert eng gezeechent Linn, plus extra Mathematik fir ëmmer am Krees ze bleiwen.

Dofir, no e puer Gedanken, hunn ech d'Iddi e bësse geännert an decidéiert e "Jeeër" Roboter ze maachen. Am Ufank dréit et ëm seng Achs, wielt en nooste Zil (Persoun). Wann de "Prouf" erkannt gëtt, dréit de "Jeeër" d'Blëtzluuchten an d'Sirene un a fänkt un dohinner ze fueren. Wann d'Persoun fortgeet / fortleeft, wielt de Roboter en neit Zil a verfolgt et, a sou weider. Esou e Roboter brauch net e limitéierten Krees, an et kann an oppe Beräicher schaffen.

Wéi Dir gesitt kann, ass dëst vill wéi e Spill vu Fanger. Och wann de Roboter um Enn net séier genuch erausgestallt huet, interagéiert en éierlech mat de Leit ronderëm. Besonnesch Kanner gefällt et (heiansdo schéngt et awer, datt se amgaang sinn et ze trampelen, hiert Häerz spréngt e Schlag...). Ech mengen dat ass eng gutt Léisung fir d'populär technesch Design.

Roboter Struktur

Also, mir hunn d'Iddi decidéiert, loosst eis weidergoen Layout. D'Lëscht vun den Elementer gëtt geformt aus deem wat de Roboter maache soll. Alles hei ass ganz offensichtlech, also loosst eis direkt d'Nummeréierung kucken:

Erfarung fir den éischte Roboter op Arduino ze kreéieren (Robot "Jeeër")

De "Gehir" vum Roboter sinn en Arduino Uno Board (1); war an engem Set aus China bestallt. Fir eis Zwecker ass et ganz genuch (mir konzentréieren eis op d'Zuel vun de benotzte Pins). Aus deemselwechte Kit hu mir e fäerdege Chassis (2) geholl, op deem zwee Fuertrieder (3) an eng Heck (fräi rotéierend) (4) befestigt sinn. De Kit enthält och e fäerdege Batterieraum (5). Virun dem Roboter gëtt et en Ultraschallsensor (HC-SR04) (6), am Réck ass e Motorfuerer (L298N) (7), am Zentrum ass en LED-Blitzer (8), an e bëssen der Säit do ass en tweeter (9).

An der Layoutphase kucke mir op:

- sou datt alles passt
- equilibréiert ze sinn
- rational placéiert ginn

Eis chinesesch Kollegen hunn dat schonn deelweis fir eis gemaach. Also ass de schwéier Batterieraum am Zentrum plazéiert, an d'Rieder sinn ongeféier drënner. All aner Brieder si liicht a kënnen op der Peripherie plazéiert ginn.

Nuances:

  1. De Chassis aus dem Kit huet vill Fabréck Lächer, mee ech hunn nach net erausfonnt wat d'Logik an hinnen ass. D'Motoren an d'Batteriepack waren ouni Probleemer geséchert, duerno huet d'"Upassung" ugefaang mat neie Lächer ze bueren fir dësen oder deen Bord ze sécheren.
  2. D'Messing Racken an aner fasteners aus Stockage Beräicher waren eng grouss Hëllef (heiansdo hu mir hinnen eraus).
  3. Ech hunn d'Busbars vun all Brett duerch d'Klammen passéiert (erëm, ech hunn se an der Lagerung fonnt). Ganz bequem, all d'Drähte leien schéi a hänken net.

Eenzel Blocks

Elo ginn ech duerch spären an ech soen Iech perséinlech iwwer all eenzel.

Batterie Fach

Et ass kloer datt de Roboter eng gutt Energiequell muss hunn. Optiounen kënne variéieren, ech hunn d'Optioun mat 4 AA Batterien gewielt. Am Ganzen gi se ongeféier 5 V, an dës Spannung kann direkt op den 5V Pin vum Arduino Board applizéiert ginn (de Stabilisator ëmgoen).

Natierlech hat ech e puer Vorsicht, awer dës Léisung ass ganz funktionéierbar.

Well d'Kraaft iwwerall gebraucht gëtt, hunn ech fir d'Bequemlechkeet zwee Stecker am Zentrum vum Roboter gemaach: een "verdeelt" de Buedem (riets), an déi zweet - 5 V (lénks).

Erfarung fir den éischte Roboter op Arduino ze kreéieren (Robot "Jeeër")

Motoren a Chauffeur

Éischtens iwwer d'Montage vun de Motoren. De Mount ass Fabréck gemaach, awer mat groussen Toleranzen gemaach. An anere Wierder, d'Motoren kënnen e puer Millimeter lénks a riets wackelen. Fir eis Aufgab ass dëst net kritesch, awer op e puer Plazen kann et en Effekt hunn (de Roboter fänkt un op d'Säit ze plënneren). Just am Fall hunn ech d'Motoren strikt parallel gesat an se mat Klebstoff fixéiert.

Erfarung fir den éischte Roboter op Arduino ze kreéieren (Robot "Jeeër")

Fir d'Motoren ze kontrolléieren, wéi ech uewen geschriwwen hunn, gëtt de L298N Chauffer benotzt. Laut der Dokumentatioun huet et dräi Pins fir all Motor: een fir d'Geschwindegkeet z'änneren an e Paar Pins fir d'Rotatiounsrichtung. Et gëtt ee wichtege Punkt hei. Et stellt sech eraus datt wann d'Versuergungsspannung 5 V ass, da funktionnéiert d'Geschwindegkeetskontroll einfach net! Dat ass, entweder et dréit guer net, oder et gëtt op de Maximum. Dëst ass d'Feature, déi mech e puer Owender "killen" huet. Zum Schluss hunn ech iergendwou eng Ernimmung op engem vun de Foren fonnt.

Am allgemengen hunn ech eng geréng Rotatiounsgeschwindegkeet gebraucht wann ech de Roboter dréinen - sou datt et Zäit hat fir de Raum ze scannen. Mee well näischt aus dëser Iddi komm ass, hunn ech et missen anescht maachen: e klengen Tour - stoppen - dréinen - stoppen, asw, erëm net sou elegant, awer funktionell.

Ech wäert och hei bäidroen, datt no all Verfollegung de Roboter eng zoufälleg Richtung fir en neien Tour wielt (Auer oder géint d'Auer).

Ultraschall Sensor

Erfarung fir den éischte Roboter op Arduino ze kreéieren (Robot "Jeeër")

En anert Stéck Hardware wou mir no enger Kompromissléisung hu misse sichen. Den Ultraschallsensor produzéiert onbestänneg Zuelen op echte Hindernisser. Eigentlech war dëst erwaart. Ideal funktionéiert et iergendwou a Concoursen, wou et glat, gläichméisseg a senkrecht Flächen ass, awer wann iergendeen seng Been "flash" virun him, muss zousätzlech Veraarbechtung agefouert ginn.

Als esou Veraarbechtung setzen ech Mëttelfilter fir dräi zielt. Baséierend op Tester op echte Kanner (keng Kanner goufe während den Tester verletzt!), Et huet sech erausgestallt, datt et ganz genuch ass fir d'Donnéeën ze normaliséieren. D'Physik hei ass einfach: mir hunn Signaler reflektéiert vun néideg Objeten (déi erfuerderlech Distanz ginn) a reflektéiert vu méi wäit ewech, zum Beispill Maueren. Déi lescht sinn zoufälleg Emissiounen a Miessunge vun der Form 45, 46, 230, 46, 46, 45, 45, 310, 46 ... Et sinn déi, déi de Medianfilter ofschneiden.

No der Veraarbechtung kréie mir d'Distanz zum noosten Objet. Wann et manner wéi e bestëmmte Schwellwäert ass, da schalten mir den Alarm un a fueren direkt op den "Intruder".

Blëtz a Sirène

Vläicht déi einfachst Elementer vun all vun der uewen. Si kënnen op de Fotoen uewen gesi ginn. Et gëtt näischt iwwer Hardware hei ze schreiwen, also loosst eis elo weidergoen Code.

Kontrollprogramm

Ech gesinn net de Punkt fir de Code am Detail ze beschreiwen, wien et brauch - de Link ass um Enn vum Artikel, alles ass ganz liesbar do. Mee et wier flott déi allgemeng Struktur ze erklären.

Dat éischt wat mir hu misse verstoen war datt e Roboter en Echtzäitapparat ass. Méi präzis, fir ze erënneren, well virdrun an elo schaffen ech nach ëmmer an der Elektronik. Also, mir vergiessen direkt d'Erausfuerderung Verspéidung (), déi se gären an Beispill Skizzen benotzen, an déi einfach de Programm fir eng spezifizéierter Zäit "afréiert". Amplaz, wéi erfuerene Leit beroden, stellen mir Timer fir all Block vir. Den erfuerderlechen Intervall ass passéiert - d'Aktioun ass ausgefouert ginn (d'Hellegkeet vun der LED erhéicht, de Motor ageschalt, a sou weider).

Timer kënne matenee verbonne sinn. Zum Beispill schafft den Tweeter synchron mam Flasher. Dëst vereinfacht de Programm e bëssen.

Natierlech zerbriechen mir alles an getrennte Funktiounen (Blitzluuchten, Toun, dréinen, weidergoen, a sou weider). Wann Dir dëst net maacht, da kënnt Dir net erausfannen wat vu wou a wou kënnt.

Nuancen vun der Pädagogik

Ech hunn alles uewen beschriwwen a menger Fräizäit owes gemaach. Op eng gemittlech Manéier hunn ech ongeféier dräi Wochen um Roboter verbruecht. Dëst hätt kënnen hei ophalen, mee ech hunn och versprach Iech iwwer d'Aarbecht mat engem Kand ze soen. Wat kann an dësem Alter gemaach ginn?

Aarbecht no Uweisungen

Mir hunn all Detail getrennt iwwerpréift - LEDs, Tweeter, Motoren, Sensoren, asw. Dëst mécht mech sécher frou. Mir huelen de Code, verbannen den Deel, stellen sécher datt et funktionnéiert, da fänken mir un et z'änneren fir eis Aufgab ze passen. D'Kand mécht d'Verbindungen no dem Diagramm an ënner menger Iwwerwaachung. Dëst ass gutt. Dir musst och fäeg sinn strikt no Uweisungen ze schaffen.

Aarbechtsuerdnung ("vu speziell op allgemeng")

Dëst ass e schwéiere Punkt. Dir musst léieren datt e grousse Projet ("Maacht e Roboter") aus klengen Aufgaben besteet ("een Sensor verbannen", "Motoren verbannen" ...), an déi, am Tour, aus nach méi klenge Schrëtt bestinn ("e fannen eng Programm," "Connect a Board." ", "Download Firmware"...). Andeems Dir méi oder manner verständlech Aufgaben vum ënneschten Niveau ausféiert, "schloe" mir d'Aufgaben vum Mëttelstuf zou, a vun hinnen gëtt d'Gesamtresultat geformt. Ech hunn erkläert, awer ech mengen, datt d'Realiséierung net geschwënn wäert kommen. Iergendwou, wahrscheinlech, duerch Adoleszenz.

Mount

Bueraarbechten, Fuedem, Schrauwen, Nëss, Löt an de Geroch vu Harz - wou wiere mir ouni et? D'Kand krut d'Basisfäegkeet "Schaffen mat engem Löt Eisen" - hien huet et fäerdeg bruecht e puer Verbindungen ze solderen (ech gehollef e bëssen, ech wäert et net verstoppen). Vergiesst net iwwer d'Sécherheetserklärung.

Computer Aarbecht

Ech hunn de Programm fir de Roboter geschriwwen, awer ech hunn et ëmmer fäerdeg bruecht e puer favorabel Resultater z'erreechen.

Éischt: Englesch. Si haten et just an der Schoul ugefaangen, also hu mir kämpfen erauszefannen wat Pishalka, Migalka, Yarkost an aner Transliteratiounen waren. Op d'mannst hu mir dat verstanen. Ech hunn bewosst keng gebierteg Englesch Wierder benotzt, well mir dësen Niveau nach net erreecht hunn.

Zweetens: efficace Aarbecht. Mir geléiert Hotkey Kombinatiounen a wéi séier Standard Operatiounen Leeschtunge. Periodesch, wa mir de Programm geschriwwen hunn, hunn mäi Jong an ech Plazen ausgetauscht, an ech hu gesot, wat muss gemaach ginn (Ersatz, Sich, etc.). Ech hu missen ëmmer erëm widderhuelen: "Duebelklickt auswielen", "Halt Shift", "halt Ctrl" a sou weider. De Léierprozess hei ass net séier, awer ech mengen datt d'Fäegkeeten no an no "an der Subcortex" deposéiert ginn.

Verstoppt TextDir kënnt soen datt dat uewe bal evident ass. Mee, éierlech gesot, ech hat dësen Hierscht d'Geleeënheet fir Informatik am 9. Schouljoer an enger Schoul ze léieren. Dat ass schrecklech. D'Studenten wëssen net sou grondsätzlech Saachen wéi Ctrl + Z, Ctrl + C an Ctrl + V, Text auswielen wärend Dir Shift hält oder op e Wuert duebelklickt, asw. Dëst trotz der Tatsaach, datt si an hirem drëtte Joer Informatik studéieren ... Maacht Är eege Conclusioun.

Drëttens: Touch Tippen. Ech hunn d'Kommentaren am Code dem Kand uvertraut fir ze tippen (loosst him üben). Mir hunn eis Hänn direkt richteg geluecht, sou datt eis Fanger sech lues a lues un d'Plaz vun de Schlësselen erënneren.

Wéi Dir gesitt, si mir nach just unzefänken. Mir wäerte weiderhin eis Fäegkeeten a Wësse verschäerfen; si wäerten am Liewen nëtzlech sinn.

Iwwregens, iwwer d'Zukunft ...

Weider Entwécklung

De Roboter gëtt gemaach, fiert, blénkt a piept. Waat elo? Inspiréiert vun deem wat mir erreecht hunn, plangen mir et weider ze verfeineren. Et gëtt eng Iddi eng Fernsteierung ze maachen - wéi e Moundrover. Et wier interessant, bei enger Fernsteierung ze sëtzen, d'Bewegung vun engem Roboter ze kontrolléieren, deen op eng ganz aner Plaz fiert. Awer dat wäert eng aner Geschicht sinn ...

An um Enn, tatsächlech, d'Helden vun dësem Artikel (Video andeems Dir klickt):

Erfarung fir den éischte Roboter op Arduino ze kreéieren (Robot "Jeeër")

Merci fir Är Opmierksamkeet!

Code Link

Source: will.com

Setzt e Commentaire