Profiad o greu'r robot cyntaf ar Arduino ("helwr robot")

Helo

Yn yr erthygl hon, hoffwn ddisgrifio'r broses o adeiladu fy robot Arduino cyntaf. Bydd y deunydd hwn yn ddefnyddiol i ddechreuwyr eraill fel fi sydd eisiau adeiladu rhyw fath o "gart hunanyredig". Mae'r erthygl hon yn disgrifio'r camau dan sylw, gyda fy ychwanegiadau fy hun i fynd i'r afael â gwahanol naws. Darperir dolen i'r cod terfynol (sydd efallai ddim yn berffaith) ar ddiwedd yr erthygl.

Profiad o greu'r robot cyntaf ar Arduino ("helwr robot")

Fe wnes i gynnwys fy mab 8 oed yn y prosiect pryd bynnag y bo modd. Rydw i wedi neilltuo adran o'r erthygl hon i'r hyn a weithiodd a'r hyn na weithiodd, ac efallai y bydd o ddefnydd i eraill.

Disgrifiad cyffredinol o'r robot

Yn gyntaf, ychydig o eiriau am y robot ei hun (syniad). Doeddwn i ddim yn arbennig o awyddus i adeiladu rhywbeth generig ar y dechrau. Ar yr un pryd, roedd y set gydrannau yn eithaf safonol—siasi, moduron, synhwyrydd uwchsonig, synhwyrydd llinell, LEDs, a swnyn. I ddechrau, defnyddiwyd y "pecyn cawl" hwn i greu robot sy'n gwarchod ei diriogaeth. Byddai'n gyrru tuag at unrhyw ymwthiwr a groesai linell y cylch ac yna'n dychwelyd i'r canol. Fodd bynnag, roedd y dyluniad hwn angen llinell wedi'i llunio, ynghyd â'r mathemateg ychwanegol sydd ei hangen i aros o fewn y cylch.

Felly, ar ôl meddwl ychydig, addasais y syniad ychydig a phenderfynais wneud robot "heliwr". Pan fydd yn cychwyn, mae'n cylchdroi o amgylch ei echel, gan chwilio am darged cyfagos (dyn). Os canfyddir y "dioddefwr", mae'r "heliwr" yn troi ei oleuadau fflachio a'i seiren ymlaen ac yn dechrau symud tuag atynt. Pan fydd y dyn yn symud i ffwrdd, mae'r robot yn dewis targed newydd ac yn ei ddilyn, ac yn y blaen. Nid oes angen ystod gyfyngedig ar y robot hwn a gall weithredu mewn mannau agored.

Fel y gallwch weld, mae'n atgoffa rhywun yn fawr o gêm o dag. Er nad yw'r robot mor ystwyth ag y mae'n ymddangos, mae'n rhyngweithio'n deg â'r bobl o'i gwmpas. Mae plant yn arbennig o hoff ohono (er weithiau mae'n teimlo fel eu bod nhw ar fin ei sathru, ac mae wir yn gwneud i'ch calon guro'n gyflym). Dw i'n meddwl bod hwn yn ateb da ar gyfer hyrwyddo dylunio technegol.

Strwythur robot

Felly, rydym wedi penderfynu ar y syniad, gadewch i ni symud ymlaen i cynllunMae'r rhestr o elfennau yn seiliedig ar yr hyn y mae angen i'r robot allu ei wneud. Mae popeth yma'n eithaf amlwg, felly gadewch i ni edrych ar y rhifo ar unwaith:

Profiad o greu'r robot cyntaf ar Arduino ("helwr robot")

"Ymennydd" y robot yw bwrdd Arduino Uno (1); cafodd ei gynnwys mewn pecyn a archebwyd o Tsieina. Mae'n ddigonol iawn at ein dibenion ni (yn seiliedig ar nifer y pinnau a ddefnyddiwyd). O'r un pecyn, fe wnaethon ni hefyd gymryd siasi parod (2), y mae dwy olwyn yrru (3) ac un gefn (troelli'n rhydd) (4) ynghlwm wrtho. Roedd y pecyn hefyd yn cynnwys adran batri barod (5). Mae gan y robot synhwyrydd uwchsonig (HC-SR04) (6) yn y blaen, gyrrwr modur (L298N) (7) yn y cefn, LED sy'n fflachio (8) yn y canol, a swnyn (9) ychydig i'r ochr.

Yn ystod y cam cynllunio rydym yn edrych ar:

— fel bod popeth yn ffitio
- fel ei fod yn gytbwys
- fel ei fod wedi'i osod yn rhesymol

Mae ein cydweithwyr Tsieineaidd eisoes wedi gwneud hyn yn rhannol i ni. Er enghraifft, mae'r adran batri drwm wedi'i lleoli yn y canol, gyda'r olwynion gyrru wedi'u lleoli fwy neu lai oddi tano. Mae'r holl fyrddau eraill yn ysgafn a gellir eu gosod o amgylch yr ymylon.

Nuances:

  1. Mae gan siasi'r pecyn lawer o dyllau wedi'u torri ymlaen llaw yn y ffatri, ond dydw i dal ddim wedi deall y rhesymeg y tu ôl iddyn nhw. Cafodd y moduron a'r pecyn batri eu sicrhau heb broblem, ond yna daeth y rhan "addasu", drilio tyllau newydd i sicrhau gwahanol fyrddau cylched.
  2. Roedd y pyst pres a chau eraill o'r rhannau sbâr o gymorth mawr (weithiau roedd yn rhaid i mi fynd heibio gyda rhai triciau).
  3. Rhedais y bariau bysiau o bob bwrdd drwy glampiau (fe'u ceis i yn fy rhannau sbâr). Mae'n gyfleus iawn; mae'r holl wifrau'n gorwedd yn daclus ac nid ydynt yn hongian.

Blociau ar wahân

Nawr byddaf yn mynd drwodd blociau a byddaf yn dweud wrthych chi'n bersonol am bob un.

adran batri

Mae'n amlwg bod angen ffynhonnell bŵer dda ar y robot. Mae yna amryw o opsiynau, ond dewisais un gyda phedair batri AA. Gyda'i gilydd, maen nhw'n darparu tua 5 V, a gellir bwydo'r foltedd hwn yn uniongyrchol i bin 5V y bwrdd Arduino (gan osgoi'r rheolydd).

Wrth gwrs, roeddwn i ychydig yn amheus, ond mae'r ateb hwn yn eithaf ymarferol.

Gan fod angen pŵer ym mhobman, er hwylustod gwnes i ddau gysylltydd yng nghanol y robot: mae un yn "dosbarthu" y ddaear (ar y dde), a'r ail - 5 V (ar y chwith).

Profiad o greu'r robot cyntaf ar Arduino ("helwr robot")

Peiriannau a gyrrwr

Yn gyntaf, ynglŷn â'r mowntiau modur. Mae'r mowntiau wedi'u gosod yn y ffatri, ond maen nhw wedi'u gwneud gyda goddefiannau mawr. Mewn geiriau eraill, gall y moduron siglo cwpl o filimetrau i'r chwith neu'r dde. At ein dibenion ni, nid yw hyn yn hanfodol, ond gallai effeithio ar gymwysiadau eraill (gallai'r robot ddechrau drifftio). Rhag ofn, fe wnes i alinio'r moduron yn union yn gyfochrog a'u sicrhau â glud.

Profiad o greu'r robot cyntaf ar Arduino ("helwr robot")

Fel y soniais uchod, defnyddir y gyrrwr L298N i reoli'r moduron. Yn ôl y ddogfennaeth, mae ganddo dri phin ar gyfer pob modur: un ar gyfer rheoli cyflymder a phâr o binnau ar gyfer cyfeiriad cylchdroi. Mae un mater pwysig yma. Mae'n ymddangos, os yw'r foltedd cyflenwi yn 5V, nad yw'r rheolaeth cyflymder yn gweithio! Naill ai nid yw'n troelli o gwbl neu mae'n troelli ar ei uchafswm. Dyma'r mater a dreuliodd gwpl o nosweithiau yn ceisio ei ddatrys. Yn y diwedd, des i o hyd i sôn amdano yn rhywle ar fforwm.

Yn gyffredinol, roeddwn i angen cyflymder cylchdro isel wrth droi'r robot—i roi amser iddo sganio'r gofod. Ond gan nad oedd y syniad hwnnw'n gweithio, roedd yn rhaid i mi ei wneud yn wahanol: troi ychydig, stopio, troi, stopio, ac yn y blaen. Unwaith eto, nid mor gain, ond mae'n gweithio.

Byddaf hefyd yn ychwanegu yma, ar ôl pob ymlid, fod y robot yn dewis cyfeiriad ar hap ar gyfer tro newydd (clocwedd neu wrthglocwedd).

Synhwyrydd ultrasonic

Profiad o greu'r robot cyntaf ar Arduino ("helwr robot")

Darn arall o galedwedd lle roedd yn rhaid dod o hyd i gyfaddawd. Mae'r synhwyrydd uwchsonig yn cynhyrchu darlleniadau anghyson ar rwystrau go iawn. Roedd hyn yn ddisgwyliedig, mewn gwirionedd. Mae'n gweithio'n berffaith mewn cystadlaethau lle mae arwynebau llyfn, gwastad a pherpendicwlar, ond os yw traed rhywun yn "fflachio" o'i flaen, mae angen prosesu ychwanegol.

Fel prosesu o'r fath, rhoddais hidlydd canolrifol ar gyfer tri darlleniad. Yn seiliedig ar brofion ar blant go iawn (ni chafodd unrhyw blant eu niweidio yn ystod y profion!), roedd yn ddigonol iawn ar gyfer normaleiddio'r data. Mae'r ffiseg yma'n syml: mae gennym signalau'n cael eu hadlewyrchu o angenrheidiol gwrthrychau (gan roi'r pellter gofynnol) a'r rhai sy'n cael eu hadlewyrchu o rai mwy pell, fel waliau. Mae'r olaf yn cynrychioli allanolion ar hap mewn mesuriadau o'r math 45, 46, 230, 46, 46, 45, 45, 310, 46… Eu hidlydd canolrifol yn union sy'n eu torri i ffwrdd.

Ar ôl yr holl brosesu, rydym yn cael y pellter i'r gwrthrych agosaf. Os yw'n llai na throthwy penodol, rydym yn actifadu'r larwm ac yn gyrru'n syth tuag at y "troseddwr".

Fflachiwr a seiren

Dyma efallai'r rhai symlaf o'r holl gydrannau a restrir. Gellir eu gweld yn y lluniau uchod. Does dim byd i'w ysgrifennu am y caledwedd yma, felly gadewch i ni symud ymlaen i cod.

Rhaglen reoli

Dydw i ddim yn gweld pwynt disgrifio'r cod yn fanwl; os oes ei angen ar unrhyw un, mae dolen ar ddiwedd yr erthygl; mae'r cyfan yn eithaf darllenadwy. Fodd bynnag, byddai'n braf egluro'r strwythur cyffredinol.

Y peth cyntaf roedd yn rhaid i mi sylweddoli oedd bod robot yn ddyfais amser real. Neu yn hytrach, roedd yn rhaid i mi gofio hynny, oherwydd rwy'n dal i weithio gydag electroneg, bryd hynny a nawr. Felly, anghofion ni am yr her ar unwaith. oedi(), a ddefnyddir yn aml mewn brasluniau enghreifftiol ac sy'n syml yn "rhewi" y rhaglen am gyfnod penodol o amser. Yn lle hynny, fel mae defnyddwyr profiadol yn ei argymell, rydym yn cyflwyno amseryddion ar gyfer pob bloc. Ar ôl i'r cyfnod gofynnol fynd heibio, perfformir gweithred (cynyddu disgleirdeb yr LED, troi'r modur ymlaen, ac yn y blaen).

Gall amseryddion fod yn gydgysylltiedig. Er enghraifft, gall y bipiwr weithredu'n gydamserol â'r golau sy'n fflachio. Mae hyn yn symleiddio'r rhaglen ychydig.

Wrth gwrs, rydyn ni'n rhannu popeth yn swyddogaethau unigol (golau'n fflachio, sain, signal troi, symud ymlaen, ac yn y blaen). Os na wnewch chi hyn, bydd hi'n amhosibl darganfod beth sy'n mynd ble a ble.

Naws addysgeg

Gwneuthum bopeth a ddisgrifiwyd uchod yn fy amser rhydd, gyda'r nos. Ar gyflymder hamddenol, treuliais tua thair wythnos ar y robot. Gallwn fod wedi gorffen yno, ond addewais hefyd ddweud wrthych chi am weithio gyda phlentyn. Beth sy'n ymarferol yn yr oedran hwnnw?

Gweithio yn ôl y cyfarwyddiadau

Yn gyntaf, fe wnaethon ni brofi pob cydran yn unigol—LEDs, swnyn, moduron, synwyryddion, ac ati. Mae yna lawer o enghreifftiau parod—rhai yn yr amgylchedd datblygu, gellir dod o hyd i eraill ar-lein. Mae hyn yn bendant yn fantais. Rydyn ni'n cymryd y cod, yn cysylltu'r gydran, yn sicrhau ei bod hi'n gweithio, ac yna'n dechrau ei haddasu i weddu i'n hanghenion. Mae'r plentyn yn gwneud y cysylltiadau yn ôl y diagram a, gyda rhywfaint o oruchwyliaeth gen i, yn eu gwneud eu hunain. Mae hynny'n dda. Mae gweithio'n llym yn ôl y cyfarwyddiadau hefyd yn hanfodol.

Gorchymyn gwaith ("o'r penodol i'r cyffredinol")

Mae hwn yn bwynt anodd. Mae angen i ni ddysgu ein plant bod prosiect mawr ("gwneud robot") yn cynnwys tasgau llai ("cysylltu synhwyrydd," "cysylltu moduron," ac ati), sydd yn eu tro yn cynnwys camau hyd yn oed yn llai ("dod o hyd i raglen," "cysylltu bwrdd," "uwchlwytho cadarnwedd," ac ati). Drwy gwblhau tasgau lefel is sy'n fwy neu lai ddealladwy, rydym yn "cwblhau" y rhai lefel ganol, sydd wedyn yn adio i fyny i'r canlyniad cyffredinol. Rwyf wedi egluro hyn, ond rwy'n credu y bydd y ddealltwriaeth yn cymryd peth amser. Rhywle, mae'n debyg, erbyn llencyndod.

mowntio

Drilio, edafedd, sgriwiau, cnau, sodro, ac arogl rosin—beth allech chi ei wneud hebddyn nhw? Dysgodd y plentyn sgil sylfaenol "Sodro"—llwyddodd i sodro ychydig o gymalau (helpais i ychydig, wna i ddim gwadu). Peidiwch ag anghofio esbonio rhagofalon diogelwch.

Gweithio ar gyfrifiadur

Ysgrifennais y rhaglen ar gyfer y robot, ond llwyddais i gyflawni rhai canlyniadau o hyd.

Yn gyntaf: Saesneg. Roedden ni newydd ddechrau ei dysgu yn yr ysgol, felly roedden ni'n cael trafferth darganfod beth oedd "pishalka," "migalka," "yarkost," a thrawslythreniadau eraill yn ei olygu. O leiaf roedden ni'n deall hynny. Fe wnes i osgoi defnyddio geiriau Saesneg brodorol yn fwriadol, gan nad oedden ni wedi cyrraedd y lefel honno eto.

Yn ail: gwaith effeithlon. Dysgon ni lwybrau byr bysellfwrdd i gyflawni gweithrediadau cyffredin yn gyflym. O bryd i'w gilydd, tra roedden ni'n ysgrifennu rhaglen, bydden ni a fy mab yn newid lleoedd, a byddwn i'n egluro beth oedd angen ei wneud (disodli, chwilio, ac ati). Roedd yn rhaid i mi ailadrodd dro ar ôl tro: "cliciwch ddwywaith i ddewis," "daliwch Shift," "daliwch Ctrl," ac yn y blaen. Nid yw'r broses ddysgu yma'n gyflym, ond rwy'n credu y bydd y sgiliau'n dod yn rhan annatod o'r broses.

Testun cuddEfallai y byddech chi'n dweud bod yr uchod bron yn amlwg. Ond a dweud y gwir, yr hydref hwn roedd rhaid i mi ddysgu cyfrifiadureg i fyfyrwyr gradd 9 mewn un ysgol. Roedd yn ofnadwy. Doedd y myfyrwyr ddim yn gwybod pethau sylfaenol fel Ctrl + Z, Ctrl + C, a Ctrl + V, sut i ddewis testun wrth ddal Shift i lawr neu glicio ddwywaith ar air, ac yn y blaen. Mae hyn er gwaethaf y ffaith eu bod nhw yn eu trydedd flwyddyn o gyfrifiadureg... Tynnwch eich casgliadau eich hun.

Yn drydydd: teipio cyffwrdd. Gadewais i fy mhlentyn deipio'r sylwadau yn y cod (gadewch iddo ymarfer). Gosodon ni ei ddwylo'n gywir ar unwaith fel y byddai ei fysedd yn cofio safleoedd yr allweddi'n raddol.

Fel y gallwch weld, dim ond newydd ddechrau yr ydym ni. Byddwn yn parhau i fireinio ein sgiliau a'n gwybodaeth; byddant yn ddefnyddiol yn ddiweddarach mewn bywyd.

Gyda llaw, ynglŷn â'r rhagolygon...

Datblygiad pellach

Mae'r robot wedi'i adeiladu, mae'n symud, yn blincio, ac yn bipio. Felly beth nawr? Wedi'i ysbrydoli gan yr hyn rydyn ni wedi'i gyflawni, rydyn ni'n bwriadu ei fireinio ymhellach. Rydyn ni'n meddwl am ei wneud yn rheolydd o bell, fel y crwydryn lleuad. Byddai'n ddiddorol eistedd wrth reolaeth o bell a rheoli symudiad robot sy'n gyrru mewn lle hollol wahanol. Ond mae hynny'n stori hollol wahanol...

Ac yn olaf, arwyr yr erthygl hon (fideo trwy glicio arno):

Profiad o greu'r robot cyntaf ar Arduino ("helwr robot")

Diolch am eich sylw!

Dolen i'r cod

Ffynhonnell: hab.com

Ychwanegu sylw