X0 X1 Y
0 0 I0
0 1 I1
1 0 I2
1 1 I3
Multiplekserji pogosto vsebujejo še priključek za zagon (angl. Enable). Ko se bo le ta nahajal v visokem stanju, bo povezava med vhodi in izhodi omogočena.
2.2.4 Mikrokrmilniki
Mikrokrmilnik si lahko predstavljamo kot manjšo obliko računalnika. Gre za napravo malih dimenzij, ki nadzoruje, upravlja ali izvaja funkcije objetkov in različne procese. Vsebuje posplošen procesor, manjša pomnilnika (RAM in ROM), vhodno/izhodne enote, priključke in druge periferne naprave, kot so števniki, časovniki, A/D pretvorniki itd. Vsi elementi sestavljajo integrirano vezje [9]. Na sliki 2.14 je prikazan mikrokrmilnik ESP 32 S2.
Teoretične osnove in pregled literature
17 Slika 2.14: Primer mikrokrmilnika
Mikrokrmilnike najdemo v skoraj vseh izdelkih ali sistemih, ki vključujejo računanje, merjenje, shranjevanje ali podajanje informacij na ekranih. Posamezno napravo lahko sestavlja tudi več mikrokrmilnikov. Primer je avtomobil, kjer se lahko uporablja en krmilnik za nadzor motorja, drug za zaznavanje ovir v okolju itn. [9].
Na sliki 2.15 so prikazane glavne enote mikrokrmilnika. Glavna enota za računanje in obdelavo podatkov je centralno procesna enota ali CPE (angl. CPU). V njej se izvajajo ukazi iz programa, ki je shranjen v pomnilniku. Obstaja več vrst procesorjev. Lahko so enostavni 8 bitni ali pa bolj kompleksni 64 bitni. Mikrokrmilniki vsebujejo dve vrsti pomnilnikov:
‐ RAM, oziroma delovni pomnilnik, ki shranjuje vmesne izračune in podatke med delovanjem programa.
‐ ROM, oziroma bralni pomnilnik, ki vsebuje ukaze iz programa in vrednosti spremenljivk [9].
Branje podatkov iz senzorjev se izvaja preko A/D pretvornikov, kot kaže slika 2.15. Po drugi strani pa poteka krmiljenje aktuatorjev preko D/A pretvornikov. Mikrokrmilniki vsebujejo še mnogo drugih komunikacijskih sistemov, npr. komunikacija preko pulzno širinske modulacije (angl. Pulse Width Modulator), serijskega komunikacijskega vodila (angl. Serial Communication Interface), serijskega perifernega vodila (anlg. Serial Peripheral Interface), I2C protokola itd [9].
Pomembno vlogo imajo tudi časovniki in števniki. Ti štejejo/merijo čas med izvajanjem operacij, štejejo število ukazov in generirajo hitrost serijske komunikacije [9].
V registrih se nadzorujejo funkcije mikrokrmilnika. Ena vrsta registrov poskrbi za izvajanje aritmetičnih operacij. Ta je ponavadi nadzirana z večjimi programskimi jeziki, kot je C/C++.
Druga vrsta registrov pa se uporablja pri operacijah z ostalimi priključki [9].
Teoretične osnove in pregled literature
18
Slika 2.15: Shema notranje zgradbe mikrokrmilnikov [9]
2.2.4.1 Proženje prekinitvenih funkcij
Poseben način komunikacije predstavlja proženje prekinitvenih funkcij. Prožijo jih lahko zunanje naprave (senzorji) ali pa vgrajeni časovniki. Zunanji prekinitveni signali bodo prekinili trenutno aktivnost in izvedli prekinitveno operacijo. To določa program, ki ga uporabnik napiše. Prekinitve omogočajo nemoteno delovanje glavne zanke programa.
Pogosto se uporabljajo pri rotacijskih kodirnikih za podajanje obratov gredi [2].
2.3 Tiskana vezja
Tiskana vezja ali PCB (angl. Printed circuit boards) se uporabljajo za povezovanje elektronskih komponent. Sestavljena so iz baze in prevodniškega sloja. Baza je toga ali fleksibilna plošča izolacijskega materiala, ki omogoča nanos prevodniških materialov. Bazo iz togega materiala lahko uporabljamo tudi pri montaži drugih komponent. Prevodna plast je ponavadi sestavljena iz bakra. Omogoča tudi spajkanje in električno povezavo med elektronskimi komponentami [11]. Primer modela tiskanega vezja je prikazan na sliki 2.16.
Teoretične osnove in pregled literature
19 Slika 2.16: Primer tiskanega vezja
Tiskana vezja imajo vrsto prednosti v primerjavi z običajnim povezovanjem elektronskih komponent preko bakrenih žic:
‐ Izdelki so bolj kompaktni, zmanjšajo se dimenzije in teža izdelka.
‐ Zaradi velike proizvodnje so dostopne po nizkih cenah.
‐ Povezovanje in sestavljanje komponent lahko avtomatiziramo.
‐ Lastnosti vezja se ohranjajo tudi pri večjem številu povezav.
‐ Zagotavljajo visoko ponovljivost.
‐ Elektronske komponente so fiksirane, kar omogoča lažje identificiranje napak in vzdrževanje sistema.
‐ Napak pri notranji vezavi v tiskanih vezjih ni.
‐ Načrtovanje vezja je enostavno in ne zahteva naprednega znanja iz tega področja. Hkrati se zmanjšajo tudi možnosti za doseganje napačnih povezav med komponentami ali za nastanek kratkih stikov [11].
2.3.1 Vrste tiskanih vezij
Tiskana vezja so lahko toga ali fleksibilna. To lastnost določa izolacijski material (baza).
Fleksibilna tiskana vezja imajo bazo sestavljeno iz poliestrov ali poliamidov. V primerjavi s togimi vezji so bistveno tanjša. Debelina znaša okoli 0,1 mm. Pri obeh vrstah vezij se za prevodniški material uporablja baker [11].
Glede na kompleksnost vezja ločimo enostransko tiskana vezja in dvostransko tiskana vezja.
Enostransko tiskana vezja uporabljamo pri izdelavi enostavnih električnih shem. Zanje je značilno, da se ves prevodni material nahaja na eni strani baze. V primeru na sliki 2.17 vidimo, da je to spodnja plast, kjer tudi spajkamo elemente na vezje. Na zgornjo plast vezja pa postavljamo elektronske komponente. S temi dosegamo vezavo čez že obstoječe poti ki se nahajajo na spodnji strani plošče [11].
Teoretične osnove in pregled literature
20
Slika 2.17: Enostransko tiskano vezje [11]
V primeru, da imamo opravka s kompleksnejšim primerom vezja, se odločamo za dvostransko ali večplastna tiskana vezja. Na sliki 2.18 je prikazan primer dvostransko tiskanega vezja. Prevodni material se nahaja na spodnji in zgornji strani baze. Povezave med prevodniškimi vodniki na tiskanih vezjih so omogočene preko ozkega prevodniškega utora, via. Podoben temu, le nekoliko večjih dimenzij, je prevodniški utor za komponente (angl.
Plated through hole). Prevodniški material se nahaja na celotnem utoru, zato lahko sami zberemo mesto spajkanja komponent [11].
Slika 2.18: Dvostransko tiskano vezje [11]
2.3.2 Postopki načrtovanja tiskanih vezij
Tiskano vezje, kot ostale elektronske komponente, načrtujemo po sledečih korakih, ki so opisani na sliki 2.19. Vse se začne s konceptom. To je faza, kjer izbiramo nabor komponent, ki bodo ustrezale našim zahtevam, specifikacijam. Sledi faza dizajniranja, kjer izdelek oblikujemo glede na funkcionalnost. V naslednji fazi postavljamo elemente, da dosežemo najboljšo možno obliko. Sledi vezava elementov. Na koncu se izdela prototip in vzpostavi proizvodnjo. V primeru da prototip ne ustreza zahtevam ali ne deluje, se vrnemo v enega izmed predhodo našetih korakov (odvisno za katero vrsto napake gre) [11].
Slika 2.19: Glavne faze razvoja elektronske komponente [11]
Teoretične osnove in pregled literature
21 Postopek načrtovanja tiskanih vezij poteka v okoljih za načrtovanje električnih sistemov (EDA). Večinoma vsa od teh vsebujejo naslednja dva urejevalnika za načrtovanje vezij:
urejevalnik sheme in urejevalnik slojev PCB.
V urejevalniku sheme načrtujemo električno shemo po sledečih korakih:
‐ ustvarjanje simbolov,
‐ postavljanje simbolov,
‐ povezovanje simbolov [12].
Podoben postopek velja pri urejevalniku slojev PCB, kjer:
‐ ustvarjamo podnožja komponent,
‐ polagamo podnožja,
‐ povezujemo podnožja. Pri tem koraku že poznamo končne in začetne točke vezave vsakega elementa, saj smo te določili v urejevalniku sheme [12].
V večini primerov, imajo EDA okolja posebno orodje za ustvarjanje/sestavljanje novih simbolov in podnožij komponent, ki jih nato uporabljamo v urejevalnikih. Prav tako so določeni simboli in podnožja že prisotni v EDA programih. Nekatere simbole (ali podnožja) pa najdemo tudi na spletu.
Ko končamo načrtovanje tiskanega vezja v urejevalniku slojev, nam preostane še zadnji korak, oziroma izdelava vezja. Na trgu je veliko proizvajalcev vezij. Za vse pa je značilno, da sprejemajo stadardiziran format datoteke za izdelavo vezja, t.i. gerber format. Ta format zgeneriramo v EDA okolju in vsebuje vse potrebne podatke za izdelavo našega vezja [12].
2.3.2.1 Simboli komponent
Shematski simboli predstavljajo posplošene elektronske komponente. Lahko so poljubnih dimenzij in oblik, enostavni ali kompleksni, za vse pa veljajo določene lastnosti, ki so prikazane na sliki 2.20. Vsak simbol ima obliko, ki nakazuje funkcionalnost elementa. Prav tako je ta poimenovan, blizu njega je zapisana tudi referenca. Reference so sestavljene iz črke in številke. S črko poimenujemo komponento, s številko pa označimo količino. Vsi priključki so oštevilčeni. V primeru integriranih vezij so podana tudi imena priključkov [12].
Slika 2.20: Primeri shematskih simbolov [12]
Teoretične osnove in pregled literature
22
2.3.2.2 Podnožja komponent
Podnožje elementa (angl. footprint) je fizični opis komponente. Vsebuje podatke o vseh dimenzijah, ki so potrebne za izdelavo utorov, oblik in napisov na tiskanem vezju. Na sliki 2.21 so opisani glavni deli podnožja elementa. Priključki (angl. padstacks) so prikazani s črnimi krogi ali kvadrati. V bistvu krog predstavlja utor, okoli katerega je bakrena plast v obliki krožnega kolobarja. Ta ima lahko tudi obliko kvadrata. Ta služi za prepoznavanje usmerjenosti elementa na tiskanem vezju. S tanko črto je orisana zunanja oblika komponente. Ta ne bo vidna na končnem izdelku, a služi kot pripomoček za uporabnika (pri načrtovanju vezja) in proizvajalca (pri izdelavi vezja). Če želimo na tiskano vezje napisati imena komponent ali grafično prikazati njihovo obliko, položaj, se odločimo za uporabo t.i.
silkscreen-a. Gre za neprevodno plast tiskane barve, ki bo vidna na končnem izdelku [12].
Slika 2.21: Primer podnožja komponente [12]
2.3.2.3 Priporočila za postavljanje in vezavo komponent
Ko imamo pripravljene vse simbole komponent in njihova podnožja, moramo ta ustrezno povezati in postaviti na model tiskanega vezja. Končni postopek izvajamo v urejevalniku slojev PCB.
Polaganje komponent pri sestavi tiskanega vezja je poljubno. Kljub temu pa je priporočljivo, da so komponente čimbližje ena drugi, zato da bo izdelek kompakten. Pri naprejdnejših sistemih pa ta lastnost vpliva tudi na hitrost delovanja vezja. Nekateri programi prikazujejo tudi mrežo povezav med priključki podnožij elementov. Ta se nanaša na električno shemo.
Zaželjeno je, da so prikazane povezave čimkrajše. Lažje je, če postavimo prej večje komponente, nato manjše, ki so odvisne samo od teh. Sledi polaganje ostalih komponent, po zgornje navedeni metodi. Preden začnemo s povezovanjem, morajo biti vsa podnožja komponent na delovnem listu iz urejevalnika slojev PCB. Dobro postavljanje komponent vpliva na lažje povezovanje med njimi. Obstajajo tudi orodja za avtomatsko postavljanje komponent, a velikokrat ne ustrezajo našim idejam in zato niso priporočljiva [12].
Pri vezavi podnožij komponent imamo precej svobode, a kljub temu obstaja vrsta priporočil (tudi pravil), s katerimi se izognemo nepravilnemu delovanju vezja:
‐ poti bakrenih vodnikov morajo biti čimkrajše, saj s tem preprečimo nastanek električnih šumov,
‐ treba se je izogibati ostrih kotov pri poteh prevodnika,
Teoretične osnove in pregled literature
23
‐ prostor med potmi mora biti enako razporejen,
‐ smiselno je uporabiti čimmanj slojev na tiskanem vezju,
‐ potrebno je izbrati ustrezno širino poti, ki bo omogočala, da bo skozenj potoval dovolj velik tok, ki ga potrebujemo [11, 12].
Pri vezavi si lahko pomagamo z orodjem za avtomatsko vezavo podnožij (angl. autorooters).
Tovrstno orodje poveže vodniške poti, s tem da upošteva zgoraj opisana pravila. Prav tako lahko nastavimo tudi določene parametre, kot npr. širino poti, ki jih bo orodje upoštevalo pri vezavi. Za orodja se odločimo takrat, ko imamo pred sabo kompleksna vezja, polna elektronskih elementov [12].
2.4 Simulacijska okolja
Eksperimentalni poskusi krmilnih algoritmov na mobilnih robotih veljajo za obvezno prakso. Eksperimentacije z večjim številom robotskih različic pa zahtevajo veliko časa in denarja. Prav tako na področju pedagoškega procesa naletimo na težave, kot so: razporejanje večjih skupin študentov v laboratorije, neustreznost laboratorijev, pomanjkanje opreme v laboratorijih itd. Možna rešitev je uporaba programskih simulatorjev, ki simulirajo obnašanje robotov in omogočajo anlizo njihove kinematike. Nabor teh je bistveno večji kot si ga lahko izobraževalna ustanova privošči. Razvitih je veliko simulacijskih programov, kot so Webots, V-rep in MobotSim [13].
Simulacije so bistvenega pomena, bodisi na področju robotike (pri mobilnih robotih, robotskih rokah) kot na področju proizvodnega procesa v industriji. Simulatorji vsebujejo prostor, objekte in program v katerem programiramo naprave (robote). Poleg tega vsebujejo še konzolo, kjer spremljamo izhodne parametre. To so lahko podatki iz senzorjev ali aktuatorjev. Simulacijskih okolij je veliko. Razlikujejo se glede na nivo programiranja [13].
2.4.1 Webots simulator
Webots je odprtokodni program, ki se uporablja za simuliranje delovanja robotov. Gre za aplikacijo, ki se uporablja v industrijah in razvojno-izobraževalnih ustanovah. Omogoča nam uporabo že sestavljenih robotov ali pa sestavo novih. Program uporablja drevesno strukturo pri sestavi objektov. Zaradi tega postane sestavljanje prostora in objektov zelo pregledno in enostavno [14].
2.4.1.1 Prostor
Sprva je treba določiti karakteristike sveta (angl. World). To je okolje znotraj katerega se bodo naši objekti lahko premikali. Program omogoča, da ob novi simulaciji samostojno zgenerira okolje v obliki šahovnice. Vse dimenzije lahko spreminjamo preko uporabniškega meni-ja. Našemu okolju lahko določamo estetske in fizikalne lastnosti, npr. vpliv svetlobe, gravitacijsko silo, razne sile trenja in druge pojave [14].
2.4.1.2 Objekti
Simulator Webots nam omogoča sestavljanje poljubnega objekta, robota iz preprostih geometrijskih teles: vozlišč (angl. Nodes). Kolo robota sestavimo tako, da dodamo cilinder, ki mu nato določimo koordinate in dimenzije. Pri tem moramo biti pozorni na stike med
Teoretične osnove in pregled literature
24
trupom robota in njegovimi rotirajočimi deli, kolesi. Te označimo kot vezi (angl.
HingeJoint), ki lahko rotirajo okoli določene osi. Prav tako je lahko ustvarjen objekt tudi senzor [14].
Slika 2.22: Struktura enostavnega mobilnega robota
Kot je razvidno iz slike 2.22, je struktura robota lahko zelo enostavna. Sestavljen je iz dveh koles (rotirajoča dela), trupa-kvadra in kroglice, ki se lahko kotali v vse smeri.
2.4.1.3 Program
Program je tisti del simulatorja Webots, ki nam omogoča komunicirati s sestavljenim robotom. Za tega pišemo ukaze o premikanju in/ali branju podatkov iz senzorjev, kot kaže slika 2.23 [14].
Slika 2.23: Primer programa Webots
25
3 Metodologija raziskave
3.1 Razvoj mobilnega robota
Razvoj mobilnega robota smo začeli z opredeljevanjem funkcij in nalog, ki jih bo slednji izvajal:
‐ avtonomno premikanje po prostoru,
‐ zaznavanje ovir,
‐ branje talne črte,
‐ beleženje opravljene poti (odometrija).
3.1.1 Izbor komponent za sestavo mobilnega robota
Na podlagi opredeljenih funkcij smo pripravili seznam komponent, predstavljen v preglednici 3.1. Glavna komponenta pri našem robotu je mikrokrmilnik ESP32 S2 Saola 1R. Gre za integrirano vezje, ki vsebuje sledeče glavne lastnosti:
‐ 32-bitni mikroprocesor, ki deluje s frekvenco do 240 MHz,
‐ 128 kB notranjega pomnilnika, 4 MB delovnega pomnilnika,
‐ 43 priključkov GPIO, ki jih lahko uporabljamo:
‐ 20 je 13-bitnih ADC,
‐ 16 je 8-bitnih DAC,
‐ 8 priključkov, ki omogočajo PWM,
‐ 40 MHz kristal in 8 MHz notranji oscilator,
‐ nizka električna poraba,
‐ možnost uporabe Wi-Fi sistema.
‐ delovna napetost: 3,3 V.
Druga pomembna komponenta je DC motor z reduktorjem. Gre za krtačni elektromotor malih dimenzij z nizko porabo energije. Maksimalna hitrost, ki jo lahko dosega, znaša 450 obratov na minuto. Prestavno razmerje med izhodno in glavno gredjo je 1:29,86. To pomeni, da se bo izhodna gred vrtela skoraj 30-krat počasneje od glavne gredi. Za branje vrtljajev gredi uporabljamo magnetne kodirnike. Vsak ima dva Hallova senzorja, ki bereta podatke iz magnetnega diska s šestimi poli, ki je nameščen na glavni gredi DC motorja.
Metodologija raziskave
26
Za zaznavanje ovir uporabljamo IR senzorje razdalje z merilnim območjem od 10 cm do 150 cm. IR senzorji nastopajo tudi v modulu za sledenje talnim črtam. Ta je sestavljen iz vrste 15-ih IR senzorjev, ki so postavljeni drug ob drugem.
Za vse izbrane senzorje in integrirana vezja ustreza napetost 3,3 V, oziroma napetost s katero deluje naš ESP32 S2.
Preglednica 3.1: Izbor komponent za izdelavo mobilnega robota