Mobilni robot na mikrokontrolerju, ki se odziva na svetlobo. Izbira mikrokrmilnika za izdelavo vašega robota. virov za ambicioznega robotika

Zagotovo ste si, potem ko ste si ogledali dovolj filmov o robotih, večkrat zaželeli ustvariti svojega lastnega bojnega tovariša, pa niste vedeli, kje začeti. Seveda ne boste mogli zgraditi dvonožnega Terminatorja, vendar to ni tisto, kar poskušamo doseči. Kdor ve, kako pravilno držati spajkalnik v rokah, lahko sestavi preprostega robota in to ne zahteva globokega znanja, čeprav ne bo škodilo. Amaterska robotika se ne razlikuje veliko od načrtovanja vezij, le veliko bolj zanimiva, saj vključuje tudi področja, kot sta mehanika in programiranje. Vse komponente so lahko dostopne in niso tako drage. Napredek torej ne miruje in izkoristili ga bomo sebi v prid.

Uvod

torej. Kaj je robot? V večini primerov to avtomatska naprava, ki se odziva na kakršna koli okoljska dejanja. Robote lahko nadzorujejo ljudje ali izvajajo vnaprej programirana dejanja. Običajno je robot opremljen z različnimi senzorji (razdalja, kot vrtenja, pospešek), video kamerami in manipulatorji. Elektronski del robota sestavlja mikrokrmilnik (MC) - mikrovezje, ki vsebuje procesor, taktni generator, različne periferne enote, operativne in trajni spomin. Na svetu je ogromno različnih mikrokontrolerjev za različne aplikacije in na njihovi osnovi lahko sestavite zmogljive robote. Široko se uporabljajo za amaterske zgradbe. AVR mikrokontrolerji. So daleč najbolj dostopni in na internetu lahko najdete veliko primerov, ki temeljijo na teh MK. Za delo z mikrokontrolerji morate znati programirati v asemblerju ali C ter imeti osnovno znanje digitalne in analogne elektronike. V našem projektu bomo uporabili C. Programiranje za MK se ne razlikuje veliko od programiranja v računalniku, sintaksa jezika je enaka, večina funkcij se praktično ne razlikuje, nove pa so precej enostavne za učenje in priročne za uporabo.

Kaj potrebujemo

Za začetek se bo naš robot lahko preprosto izognil oviram, torej ponovil običajno vedenje večine živali v naravi. Vse, kar potrebujemo za izdelavo takšnega robota, lahko najdemo v radijskih trgovinah. Odločimo se, kako se bo naš robot premikal. Mislim, da so najuspešnejše gosenice, ki se uporabljajo v tankih; to je najbolj priročna rešitev, saj imajo gosenice večjo okretnost kot kolesa vozila in jih je bolj priročno nadzorovati (za obračanje je dovolj, da zavrtite gosenice v različne smeri). Zato boste potrebovali katero koli igračo tank, katere gosenice se vrtijo neodvisno druga od druge, kupite jo lahko v kateri koli trgovini z igračami po razumni ceni. Od tega rezervoarja rabiš samo platformo z gosenicami in motorje z menjalniki, ostalo lahko mirno odviješ in zavržeš. Potrebujemo tudi mikrokrmilnik, moja izbira je padla na ATmega16 - ima dovolj priključkov za priklop senzorjev in perifernih naprav in na splošno je zelo priročno. Prav tako boste morali kupiti nekaj radijskih komponent, spajkalnik in multimeter.

Izdelava table z MK



Diagram robota

V našem primeru bo mikrokrmilnik opravljal funkcije možganov, vendar ne bomo začeli z njim, temveč z napajanjem robotovih možganov. Pravilna prehrana je ključ do zdravja, zato bomo začeli s tem, kako pravilno nahraniti našega robota, saj prav tu začetniki robotograditelji največkrat delajo napake. In da bi naš robot normalno deloval, moramo uporabiti stabilizator napetosti. Raje imam čip L7805 - zasnovan je za izhod stabilna napetost 5V, kar potrebuje naš mikrokontroler. Toda zaradi dejstva, da je padec napetosti na tem mikrovezju približno 2,5 V, je treba nanj napajati najmanj 7,5 V. Skupaj s tem stabilizatorjem se elektrolitski kondenzatorji uporabljajo za izravnavo napetostnih valov in dioda je nujno vključena v vezje za zaščito pred obračanjem polarnosti.
Zdaj lahko preidemo na naš mikrokrmilnik. Ohišje MK je DIP (primernejše je za spajkanje) in ima štirideset zatičev. Na krovu je ADC, PWM, USART in še veliko več, ki jih trenutno ne bomo uporabljali. Oglejmo si nekaj pomembnih vozlišč. Zatič RESET (9. krak MK) potegne navzgor upor R1 do "plus" vira napajanja - to je treba storiti! V nasprotnem primeru se lahko vaš MK nenamerno ponastavi ali, preprosteje rečeno, pride do napake. Drug zaželen ukrep, vendar ne obvezen, je povezava RESET prek keramičnega kondenzatorja C1 z maso. Na diagramu lahko vidite tudi elektrolit 1000 uF, ki vas reši pred padci napetosti pri delujočih motorjih, kar bo ugodno vplivalo tudi na delovanje mikrokontrolerja. Kvarčni resonator X1 in kondenzatorja C2, C3 morajo biti nameščeni čim bližje zatičem XTAL1 in XTAL2.
Ne bom govoril o tem, kako utripati MK, saj lahko o tem preberete na internetu. Program bomo napisali v C-ju, za programsko okolje sem izbral CodeVisionAVR. To je dokaj uporabniku prijazno okolje in je uporabno za začetnike, saj ima vgrajen čarovnik za ustvarjanje kode.


Moja robotska plošča

Nadzor motorja

Enako pomembna komponenta našega robota je gonilnik motorja, ki nam olajša njegovo upravljanje. Nikoli in pod nobenim pogojem ne smete priključiti motorjev neposredno na MK! Na splošno močnih bremen ni mogoče nadzorovati neposredno iz mikrokrmilnika, sicer bo izgorelo. Uporabite ključne tranzistorje. Za naš primer obstaja poseben čip - L293D. Pri tako preprostih projektih vedno poskusite uporabiti ta čip z indeksom "D", saj ima vgrajene diode za zaščito pred preobremenitvijo. To mikrovezje je zelo enostavno nadzorovati in ga je enostavno dobiti v radijskih trgovinah. Na voljo je v dveh paketih: DIP in SOIC. V paketu bomo uporabili DIP zaradi enostavne montaže na ploščo. L293D ima ločeno napajanje za motorje in logiko. Zato bomo samo mikrovezje napajali iz stabilizatorja (vhod VSS), motorje pa neposredno iz baterij (vhod VS). L293D zdrži obremenitev 600 mA na kanal in ima dva od teh kanalov, se pravi na en čip lahko povežemo dva motorja. Ampak zaradi varnosti bomo kanale združili in potem bomo potrebovali eno micro za vsak motor. Iz tega sledi, da bo L293D zdržal 1,2 A. Da bi to dosegli, morate združiti noge micra, kot je prikazano na diagramu. Mikrovezje deluje na naslednji način: ko je logična "0" uporabljena za IN1 in IN2 ter logična ena za IN3 in IN4, se motor vrti v eno smer, in če so signali obrnjeni in je uporabljena logična ničla, takrat se bo motor začel vrteti v drugo smer. Nožici EN1 in EN2 sta odgovorni za vklop vsakega kanala. Povežemo jih in jih priključimo na "plus" napajalnika iz stabilizatorja. Ker se mikrovezje med delovanjem segreje in je namestitev radiatorjev na to vrsto ohišja problematična, je odvod toplote zagotovljen z GND nogami - bolje jih je spajkati na široki kontaktni plošči. To je vse, kar morate vedeti o gonilnikih za prvič.

Senzorji za ovire

Da bo naš robot lahko navigiral in se ne bo zaletel v vse, mu bomo namestili dva infrardeča senzorja. Najenostavnejši senzor je sestavljen iz IR diode, ki seva v infrardečem spektru in fototranzistorja, ki bo sprejel signal iz IR diode. Načelo je naslednje: ko pred senzorjem ni ovire, IR žarki ne zadenejo fototranzistorja in se ta ne odpre. Če je pred senzorjem ovira, se žarki odbijajo od njega in zadenejo tranzistor - odpre se in tok začne teči. Pomanjkljivost takšnih senzorjev je, da se lahko različno odzivajo na različne površine in niso zaščiteni pred motnjami - senzor lahko po nesreči sprožijo tuji signali iz drugih naprav. Modulacija signala vas lahko zaščiti pred motnjami, vendar se s tem za zdaj ne bomo obremenjevali. Za začetek je dovolj.


Prva različica senzorjev mojega robota

Robot firmware

Da bi robot zaživel, morate zanj napisati vdelano programsko opremo, torej program, ki bi odčitaval senzorje in krmilil motorje. Moj program je najpreprostejši, ne vsebuje zapletenih struktur in bo razumljiv vsem. Naslednji dve vrstici vključujeta datoteke glave za naš mikrokontroler in ukaze za generiranje zakasnitev:

#vključi
#vključi

Naslednje vrstice so pogojne, ker so vrednosti PORTC odvisne od tega, kako ste gonilnik motorja povezali z mikrokrmilnikom:

PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;

Vrednost 0xFF pomeni, da bo izhod dnevnik. “1” in 0x00 je dnevnik. "0".

Z naslednjo konstrukcijo preverimo, ali je pred robotom ovira in na kateri strani je:

Če (!(PINB & (1< {
...
}

Če svetloba IR diode zadene fototranzistor, se na nogi mikrokrmilnika namesti dnevnik. »0« in robot se začne premikati nazaj, da se odmakne od ovire, nato se obrne, da ne bi znova trčil v oviro, nato pa se znova premakne naprej. Ker imamo dva senzorja, prisotnost ovire preverimo dvakrat – na desni in na levi in ​​tako lahko ugotovimo, na kateri strani je ovira. Ukaz "delay_ms(1000)" pomeni, da bo minila ena sekunda, preden se bo naslednji ukaz začel izvajati.

Zaključek

Pokril sem večino vidikov, ki vam bodo pomagali zgraditi vašega prvega robota. Toda robotika se tu ne konča. Če sestavite tega robota, boste imeli veliko možnosti, da ga razširite. Izboljšate lahko robotov algoritem, na primer kaj storiti, če ovira ni na neki strani, ampak tik pred robotom. Prav tako ne bi škodilo, če namestite kodirnik - preprosto napravo, ki vam bo pomagala natančno pozicionirati in poznati lokacijo vašega robota v prostoru. Zaradi jasnosti je možno namestiti barvni ali enobarvni zaslon, ki lahko prikazuje koristne informacije - raven napolnjenosti baterije, razdaljo do ovir, različne informacije o odpravljanju napak. Ne bi škodilo izboljšati senzorje - namestiti TSOP (to so IR sprejemniki, ki zaznavajo signal le določene frekvence) namesto običajnih fototranzistorjev. Poleg infrardečih senzorjev obstajajo ultrazvočni senzorji, ki so sicer dražji in imajo tudi svoje slabosti, a so v zadnjem času med izdelovalci robotov vse bolj priljubljeni. Da bi se robot odzival na zvok, bi bilo dobro namestiti mikrofone z ojačevalcem. Toda tisto, kar se mi zdi res zanimivo, je namestitev kamere in programiranje strojnega vida na njeni podlagi. Obstaja niz posebnih knjižnic OpenCV, s katerimi lahko programirate prepoznavanje obraza, gibanje glede na barvne svetilnike in številne druge zanimive stvari. Vse je odvisno le od vaše domišljije in spretnosti.
Seznam komponent:
  • ATmega16 v paketu DIP-40>
  • L7805 v paketu TO-220
  • L293D v ohišju DIP-16 x2 kos.
  • upori z močjo 0,25 W z ocenami: 10 kOhm x 1 kos., 220 Ohm x 4 kos.
  • keramični kondenzatorji: 0,1 µF, 1 µF, 22 pF
  • elektrolitski kondenzatorji: 1000 µF x 16 V, 220 µF x 16 V x 2 kos.
  • dioda 1N4001 ali 1N4004
  • 16 MHz kvarčni resonator
  • IR diode: dovolj sta kateri koli dve.
  • fototranzistorji, tudi kakršni koli, vendar se odzivajo samo na valovno dolžino infrardečih žarkov
Koda vdelane programske opreme:
/*****************************************************
Firmware za robota

Tip MK: ATmega16
Taktna frekvenca: 16.000000 MHz
Če je vaša frekvenca kvarca drugačna, morate to določiti v nastavitvah okolja:
Projekt -> Konfiguracija -> Zavihek "Prevajalnik C".
*****************************************************/

#vključi
#vključi

Void main(void)
{
//Konfiguriraj vhodna vrata
//Preko teh vrat sprejemamo signale senzorjev
DDRB=0x00;
//Vklopi vlečne upore
PORTB=0xFF;

//Konfiguriraj izhodna vrata
//Prek teh vrat krmilimo motorje
DDRC=0xFF;

//Glavna zanka programa. Tukaj beremo vrednosti s senzorjev
//in nadzor motorjev
medtem ko (1)
{
//Gremo naprej
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
če (!(PINB & (1< {
//Pojdi nazaj 1 sekundo
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
zamuda_ms(1000);
//Zavij
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
zamuda_ms(1000);
}
če (!(PINB & (1< {
//Pojdi nazaj 1 sekundo
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
zamuda_ms(1000);
//Zavij
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
zamuda_ms(1000);
}
};
}

O mojem robotu

Trenutno je moj robot skoraj dokončan.


Opremljen je z brezžično kamero, senzorjem razdalje (kamera in ta senzor sta nameščena na vrtljivem stolpu), senzorjem za ovire, kodirnikom, sprejemnikom signala z daljinskega upravljalnika in vmesnikom RS-232 za povezavo z računalnik. Deluje v dveh načinih: avtonomnem in ročnem (sprejema krmilne signale z daljinskega upravljalnika), kamero lahko vklopimo/izklopimo tudi na daljavo ali s pomočjo robota samega za varčevanje z baterijo. Pišem firmware za varnost stanovanja (prenos slik na računalnik, zaznavanje gibanja, sprehod po prostorih).

Po vaših željah objavljam video:

UPD. Ponovno sem naložil fotografije in naredil nekaj manjših popravkov besedila.

Če želite ustvariti svojega robota, vam ni treba diplomirati ali prebrati tone. Samo uporabite navodila po korakih, ki jih mojstri robotike ponujajo na svojih spletnih straneh. Na internetu lahko najdete veliko koristnih informacij o razvoju avtonomnih robotskih sistemov.

10 virov za ambicioznega robotika

Informacije na spletnem mestu vam omogočajo, da samostojno ustvarite robota s kompleksnim vedenjem. Tukaj lahko najdete primere programov, diagrame, referenčna gradiva, že pripravljene primere, članke in fotografije.

Na spletnem mestu je ločen razdelek, namenjen začetnikom. Ustvarjalci vira dajejo velik poudarek mikrokontrolerjem, razvoju univerzalnih plošč za robotiko in spajkanju mikrovezij. Tukaj lahko najdete tudi izvorne kode programov in številne članke s praktičnimi nasveti.

Na spletnem mestu je poseben tečaj "Korak za korakom", ki podrobno opisuje postopek ustvarjanja najpreprostejših robotov BEAM, pa tudi avtomatiziranih sistemov, ki temeljijo na mikrokontrolerjih AVR.

Stran, kjer lahko ambiciozni ustvarjalci robotov najdejo vse potrebne teoretične in praktične informacije. Tukaj je objavljenih tudi veliko uporabnih tematskih člankov, posodabljajo se novice in na forumu lahko postavljate vprašanja izkušenim robotikom.

Ta vir je namenjen postopnemu potopitvi v svet ustvarjanja robotov. Vse se začne s poznavanjem Arduino, nato pa začetniku povejo o mikrokontrolerjih AVR in sodobnejših analogih ARM. Podrobni opisi in diagrami zelo jasno pojasnjujejo, kako in kaj storiti.

Stran o tem, kako narediti robota BEAM z lastnimi rokami. Obstaja cel razdelek, posvečen osnovam, pa tudi logičnim diagramom, primerom itd.

Ta vir zelo jasno opisuje, kako sami ustvarite robota, kje začeti, kaj morate vedeti, kje iskati informacije in potrebne dele. Storitev vsebuje tudi razdelek z blogom, forumom in novicami.

Ogromen forum v živo, posvečen ustvarjanju robotov. Tukaj so odprte teme za začetnike, razpravlja se o zanimivih projektih in idejah, opisujejo se mikrokontrolerji, že pripravljeni moduli, elektronika in mehanika. In kar je najpomembneje, lahko postavite kakršno koli vprašanje o robotiki in prejmete podroben odgovor strokovnjakov.

Vir amaterskega robotika je namenjen predvsem njegovemu lastnemu projektu "Domači robot". Vendar pa lahko tukaj najdete veliko uporabnih tematskih člankov, povezav do zanimivih spletnih mest, se seznanite z avtorjevimi dosežki in razpravljate o različnih oblikovalskih rešitvah.

Strojna platforma Arduino je najprimernejša za razvoj robotskih sistemov. Informacije na spletnem mestu vam omogočajo, da hitro razumete to okolje, obvladate programski jezik in ustvarite več preprostih projektov.

Izbira mikrokrmilnika za izdelavo vašega robota. Najprej morate razumeti, kaj je mikrokrmilnik in kaj počne?

Mikrokrmilnik je računalniška naprava, ki je sposobna izvajati programe (to je zaporedje ukazov).

Pogosto se imenuje "možgani" ali "nadzorni center" robota. Običajno je mikrokrmilnik odgovoren za vse izračune, sprejemanje odločitev in komunikacije.

Za komunikacijo z zunanjim svetom ima mikrokrmilnik vrsto zatičev ali zatičev za električno zaznavanje signala. Tako je mogoče signal obrniti na maksimum (1/C) ali minimum (0/izklop) z uporabo navodil za programiranje. Ti zatiči se lahko uporabljajo tudi za branje električnih signalov. Prihajajo iz senzorjev ali drugih naprav in določajo, ali so signali visoki ali nizki.

Večina sodobnih mikrokontrolerjev lahko meri tudi napetost analognih signalov. To so signali, ki imajo lahko celoten obseg vrednosti namesto dveh jasno definiranih ravni. To se zgodi z uporabo analogno-digitalnega pretvornika (ADC). Posledično lahko mikrokrmilnik signalu dodeli številčno vrednost v obliki analogne napetosti.Ta napetost ni ne visoka ne nizka in je tipično v območju od 0 do 10 voltov.

Kaj zmore mikrokrmilnik?

Čeprav se mikrokrmilniki na prvi pogled morda zdijo precej omejeni, je mogoče izvesti veliko zapletenih dejanj z uporabo zatičev z visokim in nizkim signalom za programiranje algoritma. Vendar ustvarjanje zelo kompleksnih algoritmov, kot je inteligentno vedenje ali zelo veliki programi, morda preprosto ne bo mogoče za mikrokrmilnik zaradi omejenih virov in omejitev hitrosti.

Na primer, lahko programirate ponavljajoče se zaporedje, da lučke utripajo. Tako mikrokrmilnik vklopi visoko raven signala, počaka sekundo, jo zniža, počaka še eno sekundo in začne znova. Lučka je priključena na izhodni pin mikrokontrolerja in bo v cikličnem programu neskončno utripala.


Prav tako lahko mikrokontrolerje uporabljamo za krmiljenje drugih električnih naprav. Predvsem kot so pogoni (ko so povezani s krmilnikom motorja), naprave za shranjevanje (kot so kartice SD), vmesniki WiFi ali bluetooth itd. Kot posledica te neverjetne vsestranskosti lahko mikrokrmilnike najdemo v vsakdanjem življenju.

Skoraj vsak gospodinjski aparat ali elektronska naprava uporablja vsaj en mikrokrmilnik. Čeprav se pogosto uporablja več mikrokontrolerjev. Na primer v televizorjih, pralnih strojih, nadzornih ploščah, telefonih, urah, mikrovalovnih pečicah in številnih drugih napravah.

Za razliko od mikroprocesorjev (kot je centralna procesna enota v osebnih računalnikih) mikrokrmilnik ne potrebuje perifernih naprav. Na primer zunanji RAM ali zunanja naprava za shranjevanje za delo. To pomeni, da je lahko mikrokrmilnik manj zmogljiv od primerkov v osebnem računalniku. Skoraj vedno je veliko lažje in ceneje razvijati vezja in izdelke, ki temeljijo na mikrokontrolerjih, ker je potrebnih zelo malo dodatnih komponent strojne opreme.

Pomembno je vedeti, da lahko mikrokrmilnik oddaja le zelo majhno količino električne energije prek svojih izhodnih zatičev. To pomeni, da na mikrokrmilnik ni mogoče neposredno priključiti močnega elektromotorja, solenoida, velike razsvetljave ali katerega koli drugega velikega bremena. Poskus tega lahko poškoduje krmilnik.

Katere so bolj specializirane funkcije mikrokrmilnika?

Posebna strojna oprema, vgrajena v mikrokontrolerje, omogoča tem napravam več kot preprost digitalni V/I, osnovne izračune in sprejemanje odločitev. Številni mikrokontrolerji brez težav podpirajo najbolj priljubljene komunikacijske protokole, kot so UART (RS232 ali drug), SPI in I2C. Ta funkcija je izjemno uporabna pri komunikaciji z drugimi napravami, kot so računalniki, senzorji ali drugi mikrokontrolerji.

Medtem ko je te protokole mogoče implementirati ročno, je vedno bolje imeti namensko vgrajeno strojno opremo, ki poskrbi za podrobnosti. To omogoča, da se mikrokrmilnik osredotoči na druge naloge in ohranja program čist.


Analogno-digitalni pretvorniki (ADC) se uporabljajo za pretvorbo analognih napetostnih signalov v digitalne. Tam je količina sorazmerna z velikostjo napetosti in to številko lahko nato uporabimo v programu mikrokrmilnika. Da se vmesna izhodna energija razlikuje od visoke in nizke, imajo nekateri mikrokrmilniki možnost uporabe modulacije širine impulza (PWM). Na primer, ta metoda vam omogoča gladko spreminjanje svetlosti LED.

Končno imajo nekateri mikrokontrolerji vgrajen regulator napetosti. To je precej priročno, saj mikrokrmilniku omogoča delo s širokim razponom napetosti. Zato vam ni treba zagotoviti zahtevanih vrednosti napetosti. Omogoča tudi enostavno povezavo različnih senzorjev in drugih naprav brez dodatnega zunanjega reguliranega napajanja.

Analogno ali digitalno?

Katere vhodne in izhodne signale je treba uporabiti, je odvisno od naloge in pogojev. Na primer, če je vaša naloga preprosto vklopiti ali izklopiti nekaj, potem je vse, kar potrebujete, da je signal na vhodnem pinu mikrokontrolerja digitalen. Binarno stanje stikala je 0 ali 1. Visoka raven signala je lahko 5 voltov, nizka pa 0. Če morate izmeriti na primer temperaturo, potem potrebujete analogni vhodni signal. Nato ADC na mikrokrmilniku interpretira napetost in jo pretvori v številsko vrednost.


Kako programirati mikrokontrolerje?

Programiranje mikrokontrolerjev je postalo lažje zaradi uporabe sodobnih integriranih razvojnih okolij (IDE) s knjižnicami s polnimi funkcijami. Z lahkoto pokrivajo vsa najpogostejša opravila in imajo veliko že pripravljenih primerov kode.

Dandanes je mogoče mikrokrmilnike programirati v različnih jezikih visoke ravni. To so jeziki, kot so C, C++, C#, Java, Python, Basic in drugi. Seveda lahko vedno napišete program v zbirnem jeziku. Čeprav je to za bolj napredne uporabnike s posebnimi zahtevami (s kančkom mazohizma). V tem smislu bi moral biti vsakdo sposoben najti programski jezik, ki najbolj ustreza njegovemu okusu in prejšnjim izkušnjam s programiranjem.

Programiranje mikrokontrolerjev postaja še lažje, saj proizvajalci ustvarjajo grafična programska okolja. To so ikone, ki vsebujejo več vrstic kode. Piktogrami so med seboj povezani. Posledično nastane program, ki je vizualno preprost, a vsebuje veliko kode. Na primer, ena slika bi lahko predstavljala nadzor motorja. Uporabnik mora samo postaviti ikono, kjer je potrebno, in označiti smer vrtenja in hitrost.


Razvite mikrokontrolerske plošče so zelo priročne za uporabo. In jih je lažje uporabljati dolgo časa. Zagotavljajo tudi priročno napajanje USB in vmesnike za programiranje. Zato se je možno povezati s katerimkoli sodobnim računalnikom.

Zakaj ne bi uporabili standardnega računalnika?

Očitno je mikrokrmilnik zelo podoben računalniškemu procesorju. Če je temu tako, zakaj ne bi preprosto uporabili računalnika za nadzor robota? Bi torej morali izbrati namizni računalnik ali mikrokrmilnik?


V bistvu je pri naprednejših robotih, zlasti tistih, ki vključujejo kompleksne izračune in algoritme, mikrokrmilnik pogosto nadomeščen (ali dopolnjen) s standardnim računalnikom. Namizni računalnik vsebuje matično ploščo, procesor, RAM naprave (na primer trdi disk) in video kartico (vgrajeno ali zunanjo).

Poleg tega obstajajo periferne naprave, kot so monitor, tipkovnica, miška itd. Ti sistemi so običajno dražji, fizično večji in porabijo več energije. Glavne razlike so poudarjene v spodnji tabeli. Poleg tega imajo pogosto več funkcionalnosti, kot je potrebno.

Kako izbrati pravi mikrokontroler?

Če študirate robotiko, potem boste za vsak robotski projekt potrebovali mikrokrmilnik. Za začetnika se lahko izbira pravega mikrokontrolerja zdi zastrašujoča naloga. Predvsem glede na obseg, tehnične lastnosti in področja uporabe. Na trgu je na voljo veliko različnih mikrokontrolerjev:

  • Arduino
  • BasicATOM
  • BasicX
  • Lego EV3
  • in mnogi drugi

Če želite izbrati pravi mikrokrmilnik, si zastavite naslednja vprašanja:

Kateri je najbolj priljubljen mikrokrmilnik za mojo aplikacijo?

Seveda ustvarjanje robotov in elektronskih projektov nasploh ni tekmovanje v priljubljenosti. Zelo dobro je, če ima mikrokrmilnik veliko podpore skupnosti. In se uspešno uporablja v podobnih ali celo enakih situacijah. Posledično lahko to močno poenostavi fazo načrtovanja. Tako bi lahko izkoristili izkušnje drugih uporabnikov, tako amaterjev kot profesionalcev.

Člani skupnosti za načrtovanje robotov med seboj delijo rezultate, kode, slike, videe in podrobno govorijo o uspehih in celo neuspehih. Vse to so dostopni materiali in možnost prejemanja nasvetov bolj izkušenih uporabnikov. Zato se lahko izkaže za zelo dragoceno.

Ali ima vaš robot kakšne posebne zahteve?

Mikrokrmilnik mora biti sposoben izvajati vsa posebna dejanja vašega robota, da se funkcije pravilno izvajajo. Nekatere funkcije so skupne vsem mikrokontrolerjem (na primer prisotnost digitalnih vhodov in izhodov, zmožnost izvajanja preprostih matematičnih operacij, primerjava vrednosti in sprejemanje odločitev).

Drugi krmilniki lahko zahtevajo posebno strojno opremo (npr. ADC, PWM in podporo za komunikacijski protokol). Upoštevati je treba tudi zahteve glede pomnilnika in hitrosti ter število zatičev.

Katere komponente so na voljo za določen mikrokrmilnik?

Morda ima vaš robot posebne zahteve ali potrebuje poseben senzor ali komponento. In to je ključnega pomena za vaš projekt. Zato je izbira kompatibilnega mikrokontrolerja seveda zelo pomembna.

Večina senzorjev in komponent lahko neposredno komunicira s številnimi mikrokrmilniki. Čeprav so nekatere komponente zasnovane za interakcijo z določenim mikrokrmilnikom. Morda bodo edinstveni in nezdružljivi z drugimi vrstami mikrokontrolerjev.

Kaj nam prinaša prihodnost?

Cene računalnikov strmo padajo, zaradi tehnološkega napredka so manjši in učinkovitejši. Posledično so računalniki z eno ploščo postali privlačna možnost za robote. Poganjajo lahko celoten operacijski sistem (najpogostejša sta Windows in Linux).

Poleg tega se lahko računalniki povežejo z zunanjimi napravami, kot so naprave USB, LCD zasloni itd. Za razliko od svojih prednikov ti računalniki z eno ploščo običajno porabijo bistveno manj energije.

Praktični del

Za izbiro mikrokontrolerja naredimo seznam kriterijev, ki jih potrebujemo:

  • Stroški mikrokontrolerja naj bodo nizki
  • Biti mora enostaven za uporabo in dobro podprt
  • Pomembna je dostopnost dostopne dokumentacije
  • Programiran mora biti v grafičnem okolju
  • Biti mora priljubljen in imeti aktivno skupnost uporabnikov
  • Ker bo naš robot uporabljal dva motorja in različne senzorje, bo mikrokrmilnik potreboval vsaj dva priključka za krmiljenje motorjev in več priključkov za priklop senzorjev. V prihodnosti naj bi bilo mogoče razširiti tudi število povezanih naprav.

Izpolnjuje ta merila EV3 modul iz kompleta Lego Mindstorms EV3.


Pregled kocke EV3

26.01.2011, 09:18
Vir:

Običajno se v člankih trudim predstaviti gradivo po vrstnem redu razvoja, vendar menim, da temu ni tako. Zato bomo preskočili faze oblikovanja sheme vezja, postavitve PCB in vsega drugega. Na sliki 1 vidimo, kakšno "sramoto" sem dobil.

Na prvi pogled se zdi le kup železa, elektronike in žic. To je verjetno zato, ker so bili uporabljeni kosi različnih materialov. Ugotovimo.

Zdaj je vse v redu. Mikrokrmilnik Attiny2313 sprejema signal ovire (logična ena ali nič) iz dveh infrardečih senzorjev. Nato v skladu z vdelano programsko opremo mikrokrmilnik krmili čip gonilnika motorja L293D (krmilni tok do 1 ampera). Slika 3 prikazuje fotografijo obrnjenega robota.

Osnova zasnove domačega robota je kovinski trak, upognjen v trapez. Upogibni kot je približno 120 °. Bistveno je pomembno, da se na obeh straneh doseže enak upogib, sicer se robot ne bo premikal v ravni črti. Čeprav po drugi strani lahko tisto, kar je mehanik ali elektronik naredil slabo, včasih popravi programer, na primer s pomočjo PWM za doseganje linearnega gibanja robota

Iz šolskega tečaja geometrije vsi vemo, da ravnino tvorijo bodisi tri točke bodisi premica in točka v prostoru. Tretja točka je prosto vrteče se valjčno kolo.

Sprejemniki IR senzorjev in fototranzistorjev so nameščeni na dnu, da zmanjšajo osvetlitev in zmanjšajo lažne pozitivne rezultate. Sami IR senzorji so nameščeni na premičnih tečajih, kar vam omogoča nastavitev območja skeniranja. Mimogrede, zanimiva je bila reakcija moje mačke na plazečega robota na hodniku? Moja mačka je črna. IR senzorje sem nastavil na sivo ozadje, tako da se je robot skoraj v zadnjem trenutku obrnil pred mačko, mačka pa je z glasnim piskanjem odskočila korak nazaj.

Naslednja modifikacija za robota so bili IR senzorji na njegovem trebuhu, ki so robotu omogočali, da sledi črni črti, narisani na belem papirju z markerjem. Izvedba je zahtevala tri senzorje in primerjalnik na čipu LM339N za razbremenitev mikrokontrolerja. Pomembna pomanjkljivost se je izkazala kot potrebna predhodna nastavitev senzorjev s pomočjo trimerskih uporov glede na osvetlitev v prostoru.

P.S. Nagrada za izgubo časa za ustvarjanje nesmiselne naprave bo morda jasnost delovanja mikrokontrolerja in pomnilnik, ki bo nabiral prah na polici, dokler se zanj ne bo zanimal otrok.




Vrh