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

Helo

Yn yr erthygl hon rwyf am ddisgrifio'r broses o gydosod fy robot cyntaf gan ddefnyddio Arduino. Bydd y deunydd yn ddefnyddiol i ddechreuwyr eraill fel fi sydd eisiau gwneud rhyw fath o “drol hunan-redeg.” Mae'r erthygl yn ddisgrifiad o'r camau o weithio gyda fy ychwanegiadau ar wahanol arlliwiau. Rhoddir dolen i'r cod terfynol (nid y mwyaf delfrydol yn ôl pob tebyg) ar ddiwedd yr erthygl.

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

Pryd bynnag y bo modd, fe wnes i gynnwys fy mab (8 oed) wrth gymryd rhan. Beth yn union weithiodd ag ef a beth na wnaeth - rwyf wedi cysegru rhan o'r erthygl i hyn, efallai y bydd yn ddefnyddiol i rywun.

Disgrifiad cyffredinol o'r robot

Yn gyntaf, ychydig eiriau am y robot ei hun (syniad). Doeddwn i ddim wir eisiau cydosod rhywbeth safonol ar y dechrau. Ar yr un pryd, roedd y set o gydrannau yn eithaf safonol - siasi, peiriannau, synhwyrydd ultrasonic, synhwyrydd llinell, LEDs, tweeter. I ddechrau, dyfeisiwyd robot o'r “set gawl” hon sy'n gwarchod ei diriogaeth. Mae'n gyrru tuag at y troseddwr sydd wedi croesi'r llinell gylch, ac yna'n dychwelyd i'r canol. Fodd bynnag, roedd angen llinell wedi'i thynnu ar y fersiwn hon, ynghyd â mathemateg ychwanegol i aros yn y cylch bob amser.

Felly, ar ôl peth meddwl, newidiais y syniad rhywfaint a phenderfynu gwneud robot “helwr”. Ar y dechrau, mae'n troi o gwmpas ei echel, gan ddewis targed cyfagos (person). Os canfyddir yr “ysglyfaeth”, mae'r “helwr” yn troi'r goleuadau sy'n fflachio a'r seiren ymlaen ac yn dechrau gyrru tuag ato. Pan fydd y person yn symud i ffwrdd / yn rhedeg i ffwrdd, mae'r robot yn dewis targed newydd ac yn ei ddilyn, ac ati. Nid oes angen cylch cyfyngedig ar robot o'r fath, a gall weithio mewn mannau agored.

Fel y gwelwch, mae hon yn debyg iawn i gêm dal i fyny. Er nad oedd y robot yn ddigon cyflym yn y diwedd, mae'n rhyngweithio'n onest â'r bobl o'i gwmpas. Mae plant yn ei hoffi'n arbennig (weithiau, fodd bynnag, mae'n ymddangos eu bod ar fin sathru arno, mae eu calon yn methu curiad...). Rwy'n credu bod hwn yn ateb da ar gyfer poblogeiddio dylunio technegol.

Strwythur robot

Felly, rydym wedi penderfynu ar y syniad, gadewch i ni symud ymlaen i gosodiad. Mae'r rhestr o elfennau yn cael ei ffurfio o'r hyn y dylai'r robot allu ei wneud. Mae popeth yma yn 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); Roedd mewn set a archebwyd o China. At ein dibenion ni, mae'n eithaf digon (rydym yn canolbwyntio ar nifer y pinnau a ddefnyddir). O'r un cit cymerasom siasi parod (2), y mae dwy olwyn yrru (3) ac un cefn (yn cylchdroi'n rhydd) (4) ynghlwm wrtho. Roedd y pecyn hefyd yn cynnwys adran batri parod (5). O flaen y robot mae synhwyrydd ultrasonic (HC-SR04) (6), yn y cefn mae gyrrwr modur (L298N) (7), yn y canol mae fflachiwr LED (8), ac ychydig i yr ochr mae trydarwr (9).

Ar y cam gosodiad rydym yn edrych ar:

- fel bod popeth yn ffitio
- i fod yn gytbwys
- i'w gosod yn rhesymegol

Mae ein cydweithwyr Tsieineaidd eisoes wedi gwneud hyn yn rhannol i ni. Felly, mae'r adran batri trwm yn cael ei osod yn y canol, ac mae'r olwynion gyrru wedi'u lleoli oddeutu oddi tano. Mae'r holl fyrddau eraill yn ysgafn a gellir eu gosod ar yr ymylon.

Nuances:

  1. Mae gan y siasi o'r cit lawer o dyllau ffatri, ond dwi dal heb ddarganfod beth yw'r rhesymeg ynddynt. Sicrhawyd yr injans a'r pecyn batri heb broblemau, yna dechreuodd yr “addasiad” trwy ddrilio tyllau newydd i sicrhau'r bwrdd hwn neu'r bwrdd hwnnw.
  2. Roedd y raciau pres a'r caewyr eraill o ardaloedd storio yn help mawr (weithiau roedd yn rhaid i ni eu tynnu allan).
  3. Pasiais y bariau bysiau o bob bwrdd trwy'r clampiau (unwaith eto, deuthum o hyd iddynt yn y storfa). Cyfleus iawn, mae'r holl wifrau'n gorwedd yn braf ac nid ydynt yn hongian.

Blociau unigol

Nawr byddaf yn mynd drwy blociau a dywedaf wrthych yn bersonol am bob un.

adran batri

Mae'n amlwg bod yn rhaid i'r robot fod â ffynhonnell dda o egni. Gall opsiynau amrywio, dewisais yr opsiwn gyda 4 batris AA. Yn gyfan gwbl maent yn rhoi tua 5 V, a gellir cymhwyso'r foltedd hwn yn uniongyrchol i pin 5V y bwrdd arduino (gan osgoi'r sefydlogwr).

Wrth gwrs, roeddwn yn ofalus iawn, ond mae'r ateb hwn yn eithaf ymarferol.

Gan fod angen pŵer ym mhobman, er hwylustod, gwnes ddau gysylltydd yng nghanol y robot: 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")

Moduron a gyrrwr

Yn gyntaf, am osod y peiriannau. Mae'r mownt wedi'i wneud mewn ffatri, ond wedi'i wneud â goddefiannau mawr. Mewn geiriau eraill, gall yr injans siglo cwpl o filimetrau i'r chwith ac i'r dde. Ar gyfer ein tasg nid yw hyn yn hollbwysig, ond mewn rhai mannau gall gael effaith (bydd y robot yn dechrau symud i'r ochr). Rhag ofn, rwy'n gosod y peiriannau'n gwbl gyfochrog a'u gosod â glud.

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

Er mwyn rheoli'r moduron, fel yr ysgrifennais uchod, defnyddir y gyrrwr L298N. Yn ôl y ddogfennaeth, mae ganddo dri phin ar gyfer pob modur: un ar gyfer newid y cyflymder a phâr o binnau ar gyfer cyfeiriad cylchdroi. Mae un pwynt pwysig yma. Mae'n ymddangos, os yw'r foltedd cyflenwad yn 5 V, yna nid yw'r rheolaeth cyflymder yn gweithio! Hynny yw, naill ai nid yw'n troi o gwbl, neu mae'n troi at yr uchafswm. Dyma’r nodwedd a achosodd i mi “ladd” cwpl o nosweithiau. Yn y diwedd, deuthum o hyd i gyfeiriad yn rhywle ar un o'r fforymau.

A siarad yn gyffredinol, roedd angen cyflymder cylchdroi isel arnaf wrth droi'r robot - fel bod ganddi amser i sganio'r gofod. Ond, gan na ddaeth dim o'r syniad hwn, roedd yn rhaid i mi ei wneud yn wahanol: tro bach - stop - tro - stop, ac ati Unwaith eto, nid mor gain, ond yn ymarferol.

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

Synhwyrydd ultrasonic

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

Darn arall o galedwedd lle bu'n rhaid i ni chwilio am ateb cyfaddawd. Mae'r synhwyrydd ultrasonic yn cynhyrchu niferoedd ansefydlog ar rwystrau go iawn. Mewn gwirionedd, roedd disgwyl hyn. Yn ddelfrydol, mae'n gweithio yn rhywle mewn cystadlaethau lle mae arwynebau llyfn, gwastad a pherpendicwlar, ond os yw coesau rhywun yn “fflachio” o'i flaen, mae angen cyflwyno prosesu ychwanegol.

Fel prosesu o'r fath yr wyf yn gosod hidlydd canolrif am dri chyfrif. Yn seiliedig ar brofion ar blant go iawn (ni chafodd unrhyw blant eu niweidio yn ystod y profion!), daeth yn eithaf digonol i normaleiddio'r data. Mae'r ffiseg yma yn syml: mae gennym signalau wedi'u hadlewyrchu o angenrheidiol gwrthrychau (gan roi'r pellter gofynnol) ac wedi'u hadlewyrchu o rai mwy pell, er enghraifft, waliau. Mae'r olaf yn allyriadau ar hap mewn mesuriadau o'r ffurflen 45, 46, 230, 46, 46, 45, 45, 310, 46... Dyma'r rhain y mae'r hidlydd canolrif yn eu torri i ffwrdd.

Ar ôl yr holl brosesu, rydym yn cael y pellter i'r gwrthrych agosaf. Os yw'n llai na gwerth trothwy penodol, yna rydyn ni'n troi'r larwm ymlaen ac yn gyrru'n syth tuag at y “tresmaswr”.

Flasher a seiren

Efallai mai'r elfennau symlaf o bob un o'r uchod. Maent i'w gweld yn y ffotograffau uchod. Nid oes unrhyw beth i'w ysgrifennu am galedwedd yma, felly nawr gadewch i ni symud ymlaen ato côd.

Rhaglen reoli

Dydw i ddim yn gweld y pwynt wrth ddisgrifio'r cod yn fanwl, pwy sydd ei angen - mae'r ddolen ar ddiwedd yr erthygl, mae popeth yn eithaf darllenadwy yno. Ond byddai'n braf esbonio'r strwythur cyffredinol.

Y peth cyntaf roedd yn rhaid i ni ei ddeall oedd bod robot yn ddyfais amser real. Yn fwy manwl gywir, i gofio, oherwydd cyn ac yn awr rwy'n dal i weithio ym maes electroneg. Felly, rydym yn anghofio am yr her ar unwaith oedi (), y maent wrth eu bodd yn eu defnyddio mewn brasluniau enghreifftiol, ac sydd yn syml yn “rhewi” y rhaglen am gyfnod penodol o amser. Yn lle hynny, fel y mae pobl brofiadol yn ei gynghori, rydym yn cyflwyno amseryddion ar gyfer pob bloc. Mae'r cyfnod gofynnol wedi mynd heibio - mae'r weithred wedi'i pherfformio (cynyddu disgleirdeb y LED, troi'r injan ymlaen, ac ati).

Gall amseryddion fod yn rhyng-gysylltiedig. Er enghraifft, mae'r tweeter yn gweithio'n gydamserol â'r fflachiwr. Mae hyn yn symleiddio'r rhaglen ychydig.

Yn naturiol, rydym yn torri popeth i lawr yn swyddogaethau ar wahân (fflachio goleuadau, sain, troi, symud ymlaen, ac ati). Os na wnewch hyn, yna ni fyddwch yn gallu darganfod beth sy'n dod o ble ac o ble.

Naws addysgeg

Fe wnes i bopeth a ddisgrifiwyd uchod yn fy amser rhydd gyda'r nos. Yn hamddenol, treuliais tua tair wythnos ar y robot. Gallai hyn fod wedi dod i ben yma, ond fe wnes i addo dweud wrthych chi hefyd am weithio gyda phlentyn. Beth ellir ei wneud yn yr oedran hwn?

Gweithio yn unol â chyfarwyddiadau

Fe wnaethom wirio pob manylyn ar wahân yn gyntaf - LEDs, tweeter, moduron, synwyryddion, ac ati Mae yna nifer fawr o enghreifftiau parod - rhai yn iawn yn yr amgylchedd datblygu, gellir dod o hyd i eraill ar y Rhyngrwyd. Mae hyn yn sicr yn fy ngwneud i'n hapus. Rydyn ni'n cymryd y cod, yn cysylltu'r rhan, yn gwneud yn siŵr ei fod yn gweithio, yna rydyn ni'n dechrau ei newid i weddu i'n tasg. Mae'r plentyn yn gwneud y cysylltiadau yn ôl y diagram ac o dan rywfaint o'm goruchwyliaeth. Mae hyn yn dda. Mae angen i chi hefyd allu gweithio'n llym yn unol â chyfarwyddiadau.

Trefn y gwaith (“o benodol i gyffredinol”)

Mae hwn yn bwynt anodd. Mae angen i chi ddysgu bod prosiect mawr (“gwneud robot”) yn cynnwys tasgau bach (“cysylltu synhwyrydd,” “cyswllt moduron”...), ac mae’r rheini, yn eu tro, yn cynnwys camau hyd yn oed yn llai (“dod o hyd i rhaglen," "cysylltu bwrdd." ", "lawrlwytho firmware"...). Trwy gyflawni tasgau mwy neu lai dealladwy ar y lefel is, rydym yn “cau” tasgau'r lefel ganol, ac oddi wrthynt mae'r canlyniad cyffredinol yn cael ei ffurfio. Esboniais, ond rwy'n credu na fydd y sylweddoliad yn dod yn fuan. Rhywle, mae'n debyg, erbyn glasoed.

mowntio

Drilio, edafedd, sgriwiau, cnau, sodro ac arogl rosin - ble fydden ni hebddo? Derbyniodd y plentyn y sgil sylfaenol "Gweithio gyda haearn sodro" - llwyddodd i sodro sawl cysylltiad (fe wnes i helpu ychydig, ni fyddaf yn ei guddio). Peidiwch ag anghofio am yr esboniad diogelwch.

Gwaith cyfrifiadurol

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

Cyntaf: Saesneg. Roedden nhw newydd ddechrau yn yr ysgol, felly roedden ni'n cael trafferth darganfod beth oedd pishalka, migalka, yarkost a thrawslythreniadau eraill. O leiaf roeddem yn deall hyn. Ni ddefnyddiais eiriau Saesneg brodorol yn fwriadol, gan nad ydym wedi cyrraedd y lefel hon eto.

Ail: gwaith effeithlon. Fe wnaethom ddysgu cyfuniadau hotkey a sut i berfformio gweithrediadau safonol yn gyflym. O bryd i'w gilydd, pan oeddem yn ysgrifennu'r rhaglen, roedd fy mab a minnau'n cyfnewid lleoedd, a dywedais beth oedd angen ei wneud (amnewid, chwilio, ac ati). Roedd yn rhaid i mi ailadrodd drosodd a throsodd: “dewis clic dwbl”, “dal Shift”, “dal Ctrl” ac ati. Nid yw’r broses ddysgu yma yn gyflym, ond rwy’n meddwl y bydd y sgiliau’n cael eu hadneuo’n raddol “yn yr isgortecs.”

Testun cuddGallwch ddweud bod yr uchod bron yn amlwg. Ond, a dweud y gwir, y cwymp hwn ges i gyfle i ddysgu cyfrifiadureg yn y 9fed gradd mewn un ysgol. Mae hynny'n ofnadwy. Nid yw myfyrwyr yn gwybod pethau sylfaenol fel Ctrl + Z, Ctrl + C a Ctrl + V, gan ddewis testun wrth ddal Shift neu glicio ddwywaith ar air, ac ati. Mae hyn er gwaethaf y ffaith eu bod yn eu trydedd flwyddyn o astudio cyfrifiadureg... Dewch i'ch casgliad eich hun.

Trydydd: cyffwrdd teipio. Ymddiriedais y sylwadau yn y cod i'r plentyn eu teipio (gadewch iddo ymarfer). Fe wnaethon ni osod ein dwylo'n gywir ar unwaith fel bod ein bysedd yn raddol yn cofio lleoliad yr allweddi.

Fel y gallwch weld, rydym yn dal i ddechrau arni. Byddwn yn parhau i fireinio ein sgiliau a’n gwybodaeth; byddant yn ddefnyddiol mewn bywyd.

Gyda llaw, am y dyfodol...

Datblygiad pellach

Mae'r robot yn cael ei wneud, yn gyrru, yn amrantu ac yn bîp. Beth nawr? Wedi’n hysbrydoli gan yr hyn yr ydym wedi’i gyflawni, rydym yn bwriadu ei fireinio ymhellach. Mae yna syniad i wneud teclyn rheoli o bell - fel rover lunar. Byddai’n ddiddorol, wrth eistedd wrth reolydd o bell, rheoli symudiad robot sy’n gyrru mewn lle hollol wahanol. Ond stori wahanol fydd honno...

Ac ar y diwedd, mewn gwirionedd, arwyr yr erthygl hon (fideo trwy glicio):

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

Diolch am eich sylw!

Dolen cod

Ffynhonnell: hab.com

Ychwanegu sylw