UNIVERZA V LJUBLJANI Fakulteta za strojništvo
Razvoj mobilnega robota in usklajenega virtualnega simulacijskega modela
Diplomsko delo visokošolskega strokovnega študijskega programa I. stopnje Strojništvo
Luka Gergolet
Ljubljana, september 2021
UNIVERZA V LJUBLJANI Fakulteta za strojništvo
Razvoj mobilnega robota in usklajenega virtualnega simulacijskega modela
Diplomsko delo visokošolskega strokovnega študijskega programa I. stopnje Strojništvo
Luka Gergolet
Mentor: doc. dr. Rok Vrabič, univ. dipl. inž.
Ljubljana, september 2021
v
Zahvala
Posebna zahvala gre doc. dr. Roku Vrabiču in asist. dr. Dominiku Kozjeku, ki sta mi bila z nasveti vedno v pomoč pri pisanju diplomske naloge.
Rad bi se zahvalil tudi družini, ki me je med celotnim študijskim obdobjem spodbujala in podpirala.
vi
vii
viii
ix
Izvleček
UDK 007.52:004.383.4(043.2) Tek. štev.: VS I/910
Razvoj mobilnega robota in usklajenega virtualnega simulacijskega modela
Luka Gergolet
Ključne besede: mobilni robot z diferencialnim pogonom simulator
krmiljenje tiskana vezja
uporabniški vmesnik
V diplomski nalogi je predstavljen razvoj mobilnega robota z diferencialnim pogonom in njegove virtualne različice. Napravi sta usklajeni in opremljeni z ustrezno senzoriko, ki omogoča avtonomno vožnjo po prostoru. Usklajenost programskih kod omogoča razviti uporabniški vmesnik. Mobilni robot smo sestavili iz ustrezno izbranih komponent in razvitega tiskanega vezja. Programirali smo ga v okolju Arduino IDE. Pripadajoči simulacijski model robota smo zasnovali v simulatorju Webots, kjer smo sprogramirali uporabniški vmesnik. Usklajenost gibanja med realno in virtualno napravo smo dokazali z analizo translatorne in rotacijske hitrosti robotov.
x
xi
Abstract
UDC 007.52:004.383.4(043.2) No.: VS I/910
Development of a mobile robot and its virtual counterpart
Luka Gergolet
Key words: differential wheeled robot simulator
control
printed circuit boards user interface
The work presented in this thesis is about the development of a differential drive robot and its virtual counterpart. The two parts are equiped with sensors which enable the autonomous drive of the robots in the space. A purpose developed user interface enables consistency across different program codes. The mobile robot was assembled using PCB and appropriate components. The robot was programmed using Arduino IDE. The virtual counterpart, as well as the user interface, were developed using Webots simulator. The simulation was validated by assessing the translational and rotational speeds of the physical model.
xii
xiii
Kazalo
Kazalo slik ... xv
Kazalo preglednic ... xvii
Seznam uporabljenih simbolov ... xix
Seznam uporabljenih okrajšav ... xxi
1 Uvod ... 1
1.1 Ozadje problema ... 1
1.2 Cilji ... 1
2 Teoretične osnove in pregled literature ... 3
2.1 Mobilni roboti ... 3
2.1.1 Kinematika mobilnega robota z diferencialnim pogonom ... 4
2.1.2 Odometrija ... 6
2.1.3 PID krmiljenje ... 8
2.2 Snovanje mehatronskega sistema ... 9
2.2.1 Snovanje mehanskega dela ... 9
2.2.2 Senzorji ... 10
2.2.2.1 Rotacijski kodirniki ... 11
2.2.3 Aktuatorji ... 12
2.2.3.1 Enosmerni elektromotorji ... 13
2.2.3.2 H-mostič ... 14
2.2.3.3 Multiplekser ... 15
2.2.4 Mikrokrmilniki ... 16
2.2.4.1 Proženje prekinitvenih funkcij ... 18
2.3 Tiskana vezja ... 18
2.3.1 Vrste tiskanih vezij ... 19
2.3.2 Postopki načrtovanja tiskanih vezij ... 20
2.3.2.1 Simboli komponent ... 21
2.3.2.2 Podnožja komponent ... 22
2.3.2.3 Priporočila za postavljanje in vezavo komponent ... 22
2.4 Simulacijska okolja ... 23
2.4.1 Webots simulator ... 23
2.4.1.1 Prostor ... 23
2.4.1.2 Objekti ... 23
2.4.1.3 Program... 24
xiv
3 Metodologija raziskave ... 25
3.1 Razvoj mobilnega robota ... 25
3.1.1 Izbor komponent za sestavo mobilnega robota ... 25
3.1.2 Načrtovanje tiskanega vezja ... 26
3.1.3 Spajkanje komponent na izdelano vezje in sestava robota ... 31
3.2 Preverjanje delovanja senzorjev in aktuatorjev ... 32
3.2.1 Preverjanje delovanja kodirnikov ... 33
3.2.2 Preverjanje delovanja IR senzorjev razdalje ... 33
3.2.2.1 ADC1 in ADC2 ... 34
3.2.3 Preverjanje delovanja multiplekserjev in modula za zaznavanje talne črte .. 34
3.2.4 Preverjanje delovanja DC motorjev ... 35
3.2.4.1 Merjenje maksimalne kotne hitrosti koles ... 36
3.3 Razvoj robota v simulatorju Webots ... 36
3.3.1 Sestavljanje okolja in mobilnega robota v simulatorju ... 36
3.4 Programiranje uporabniškega vmesnika ... 38
3.4.1 Razvoj Arduinovih funkcij ... 38
3.4.2 Branje uporabniškega vmesnika v Webots programu ... 39
3.5 Mobilni robot in virtualna različica ... 40
3.5.1 Translatorno gibanje ... 41
3.5.2 Rotacijsko gibanje ... 43
4 Rezultati in diskusija ... 45
4.1 Primerjava programske kode ... 46
4.2 Primerjava translatornega in rotacijskega gibanja ... 46
5 Zaključki ... 49
Literatura ... 51
Priloga A ... 53
xv
Kazalo slik
Slika 2.1: Izvedbe kolesnih robotov [2] ... 4
Slika 2.2: Gibanje mobilnega robota naravnost [2] ... 4
Slika 2.3: Obračanje mobilnega robota v desno smer [2] ... 5
Slika 2.4: Gibanje mobilnega robota okoli lastnega središča [2] ... 5
Slika 2.5: Mobilni robot v koordinatnem sistemu [5] ... 6
Slika 2.6: Blokovni diagram PID krmiljenja [2] ... 8
Slika 2.7: (a) Magnetni kodirnik [10] (b) Optični kodirnik[2] ... 11
Slika 2.8: Delovanje ultrazvočnega senzorja razdalje [2] ... 12
Slika 2.9: Princip delovanja infrardečega senzorja razdalje [2] ... 12
Slika 2.10: Princip delovanja DC motorja in izhodne veličine [2]... 13
Slika 2.11: Shematski prikaz H-mostiča [2] ... 15
Slika 2.12: Kombinacije stikal glede na smer vrtenja DC motorja [2] ... 15
Slika 2.13: Shema 4-kanalnega multiplekserja [9] ... 16
Slika 2.14: Primer mikrokrmilnika ... 17
Slika 2.15: Shema notranje zgradbe mikrokrmilnikov [9] ... 18
Slika 2.16: Primer tiskanega vezja ... 19
Slika 2.17: Enostransko tiskano vezje [11] ... 20
Slika 2.18: Dvostransko tiskano vezje [11] ... 20
Slika 2.19: Glavne faze razvoja elektronske komponente [11] ... 20
Slika 2.20: Primeri shematskih simbolov [12] ... 21
Slika 2.21: Primer podnožja komponente [12] ... 22
Slika 2.22: Struktura enostavnega mobilnega robota ... 24
Slika 2.23: Primer programa Webots ... 24
Slika 3.1: Shema napajanja vezja ... 27
Slika 3.2: Primer globalne oznake v urejevalniku sheme ... 27
Slika 3.3: Glavni del električne sheme z kodirniki in senzorji razdalje ... 28
Slika 3.4: Multiplekserja in modul za zaznavanje talne črte ... 29
Slika 3.5: Podnožja elementov v urejevalniku slojev ... 30
Slika 3.6: Izdelano tiskano vezje ... 30
Slika 3.7: Mobilni robot ... 31
Slika 3.8: Podvozje mobilnega robota ... 32
Slika 3.9: Umerjanje IR senzorja ... 33
Slika 3.10: Kombinacije prižiganja IR diod ... 35
Slika 3.11: Drevesna struktura komponent mobilnega robota ... 37
Slika 3.12: Mobilni robot v simulatorju ... 37
Slika 3.13: Uporabniški vmesnik ... 39
Slika 3.14: Preverjanje translatorne hitrosti robota ... 41
Slika 3.15: Vrtenje robota okoli lastne osi ... 43
xvi
Slika 4.1: (a) Realni primer mobilnega robota. (b) Virtualni primer mobilnega robota. ... 45 Slika 4.2: Primerjava translatornega gibanja mobilnega robota z virtualno različico ... 47 Slika 4.3: Primerjava rotacijskega gibanja mobilnega robota z virtualno različico ... 47
xvii
Kazalo preglednic
Preglednica 2.1: Vrsta izhodne veličine [2] ... 10
Preglednica 2.2: Pravilnostna preglednica 4-kanalnega multiplekserja ... 16
Preglednica 3.1: Izbor komponent za izdelavo mobilnega robota ... 26
Preglednica 3.2: Pravilnostna preglednica multiplekserja ADG408 ... 34
Preglednica 3.3: Izmerjeni časi fizičnega robota pri vožnji naravnost ... 42
Preglednica 3.4: Izmerjeni časi virtualnega robota vožnji naravnost ... 42
Preglednica 3.5: Izmerjeni časi fizičnega robota pri desetih obratih okoli osi motorjev ... 43
Preglednica 3.6: Izmerjeni časi virtualnega robota pri desetih obratih okoli osi motorjev ... 43
xviii
xix
Seznam uporabljenih simbolov
Oznaka Enota Pomen
i A električni tok
J kg m2 masni vztrajnostni moment
K kg m2 navorna konstanta
l m razdalja
M Nm navor, vrtilni moment
n Hz frekvenca
P W električna moč
R Ω upor
r m razdalja
s m pot
t s čas
U V električna napetost
v m s-1 hitrost
x,y,z / koordinate
α rad/s2 kotni pospešek
β / prestavno razmerje
γ / količina pulzov iz kodirnika
φ rad zasuk
π / grška konstanta
η % izkoristek
ω rad/s kotna hitrost
Indeksi
cel celotni
D desni/
diferencirni
I integrirni
ind inducirana
izh izhodni
L levi
M motor
P proporcionalni
xx
xxi
Seznam uporabljenih okrajšav
Okrajšava Pomen
ADC analogno digitalni pretvornik (angl. Analog to Digital Converter) CPE centralno procesna enota (angl. Central Process Unit)
DAC digitalno analogni pretvornik (angl. Digital to Analog Converter) DC enosmerni tok (angl. Direct Current)
EDA oprema za načrtovanje električnih sistemov (angl. Electronic Design Automation)
GPIO vhodi/izhodi za splošno uporabo (angl. General Purpose Input/Output)
GPS globalni sistem pozicioniranja (angl. Global Positioning System) I2C serijski komunikacijski protokol (angl. Inter-Integrated Circuit) IDE integrirano razvojno okolje (angl. Integrated Developement
Environment)
IR infrardeče valovanje (angl. Infrared)
PID proporcionalno integrirni diferencirni (angl. Proportional Integral Derivative)
PCB tiskano vezje (angl. Printed Circuit Boards)
PWM pulzno širinska modulacija (angl. Pulse Width Modulation) RAM delovni pomnilnik (angl. Random-access Memory)
ROM bralni pomnilnik (angl. Read-Only Memory)
USB univerzalno serijsko vodilo (angl. Universal Serial Bus)
xxii
1
1 Uvod
1.1 Ozadje problema
Robotika ima čedalje večjo vlogo pri avtomatizaciji podjetij in raznih ustanov. Veda sloni na robotih, samostojno delujočih napravah, ki so sposobne odločati se samostojno ali pa sprejemati odločitve na podlagi uporabnikovih zahtev. V razvitih industrijah se uporabljajo mobilni roboti z diferencialnim pogonom. Ti nadomeščajo človeka pri monotonih delih in omogočajo varno, učinkovito in zanesljivo izvajanje delovnih nalog. Običajno so to dvo ali več kolesne naprave, opremljene z ustrezno senzoriko, npr. s senzorji za določevanje razdalje in senzorji za zaznavanje talne črte.
Obnašanje mobilnih robotov določamo v fazi razvoja, kjer na mikrokrmilnike naložimo programsko kodo. Mikrokrmilniki so integrirana vezja, podobna računalnikom, ki vsebujejo procesor, pomnilnik in priključke, na katere lahko vežemo razne elektronske komponente.
Primer takih mikrokrmilnikov je serija ESP32. Gre za nizkocenovna, energetsko učinkovita integrirana vezja, ki jih lahko enostavno programiramo s pomočjo platforme Arduino.
Po uvedbi mobilnega robota v industrijo, lahko naletimo na nepričakovano obnašanje, ki se pojavi kot posledica neupoštevanja vseh fizikalnih pojavov, okolja, itd. Da se izognemo takim časovnim in stroškovnim izgubam, lahko delovanje našega robota predčasno simuliramo v določenem simulacijskem okolju, oziroma programu.
Simulatorji so odličen pripomoček pri izobraževanju, npr. pri učenju na daljavo. Na virtualnih različicah mobilnih robotov se uporabnik izobražuje od doma, osvaja znanja iz področja programiranja in mobilne kinematike. Na podlagi osvojenih kompetenc pa lahko znanje preizkusi v laboratoriju, na fizičnem modelu mobilnega robota.
1.2 Cilji
Cilj diplomske naloge je razvoj mobilnega robota in pripadajočega simulacijska modela.
Sprva bomo predstavili teoretične osnove iz področja robotov z diferencialnim pogonom.
Preučili bomo kinematiko in krmiljenje tovrstnih robotov. Predelali bomo delovanje ključnih
Uvod
2
elektronskih gradnikov, ki bodo nastopali v kasneje razvitem robotu. Predstavili bomo osnove načrtovanja tiskanega vezja (PCB) in simulacijsko okolje Webots.
Na podlagi predelanih teoretičnih osnov, bomo izbrali ustrezne komponente za razvoj tiskanega vezja. Ko bo to pripravljeno, bomo nanj spajkali izbrane električne komponente.
Ko bo robot sestavljen, bomo preverili delovanje senzorjev (kodirnikov, IR senzorjev za določevanje razdalje in IR senzorjev za zaznavanje talne črte) in DC motorjev. Robota bi programirali v okolju Arduino IDE.
Na podlagi zasnovanega primera naprave, bomo v simulatorju Webots sestavili podoben primer robota z diferencialnim pogonom. Njegova oblika in dimenzije se bodo ujemale z realnim razvitim robotom. Opremili ga bomo tudi z IR senzorji za določevanje razdalje.
Programirali bomo v programskem jeziku C++, ki se uporablja tudi v okolju Arduino IDE.
Da bi uporabniku omogočili programiranje robota v simulatorju na enak način kot v realnem primeru, bomo sprogramirali še uporabniški vmesnik. Cilj tega je omogočiti delovanje obeh robotov (realnega in virtualnega) preko enake programske kode.
Na koncu bomo primerjali delovanje razvitega mobilnega robota s teoretičnim modelom iz simulatorja in analizirali razlike med njima.
3
2 Teoretične osnove in pregled literature
2.1 Mobilni roboti
Robot je pametna naprava, ki deluje v stiku z okoljem in nadomešča človeka pri izvajanju specifičnih nalog. Obstaja veliko različnih robotskih sistemov. Večino teh povezujejo skupne lastnosti. Vsi roboti potrebujejo vir napajanja, npr. baterijo. Skoraj vsi se premikajo preko motoriziranih koles ali gibljivih členkov, ki jih premikajo aktuatorji. Glede na način izvajanja nalog, ločimo štiri vrste robotov:
‐ robote, ki uporabljajo električne motorje, aktuatorje,
‐ robote s hidravličnim sistemom,
‐ robote s pnevmatičnim sistemom,
‐ robote, ki uporabljajo vse tri vrste predhodno naštetih aktuatorjev [1].
V zadnjih letih se povpraševanje po robotiki povečuje. V preteklosti so se mobilni roboti nadzirali z dragimi računalniki velikih dimenzij, kjer je bilo potrebno reševati problem teže.
Danes poznamo majhne, kompaktne in cenovno ugodne robote, ki omogočajo, da jih povežemo z več aktuatorji in senzorji [2].
Najenostavnejši primer mobilnih robotov predstavljajo kolesni roboti. Sestavljeni so iz enega ali več pogonskih koles in dodatnih kolesc ali ležajnih kroglic, ki služijo kot opora.
Da se lahko robot premika, sta v večini primerov potrebna vsaj dva motorja. To vidimo na sliki 2.1, kjer so prikazane tri izvedbe kolesnih robotov. Kolesa obarvana v črnem so gnana.
Pri vseh primerih sta potrebna dva motorja. V primeru (a), se uporablja en motor za pogon sprednjega kolesa, drugi motor pa služi za njegovo rotacijo [2].
Oblika robota na sliki 2.1 (b) je ena izmed najbolj uporabljenih, in sicer gre za robota z diferencialnim pogonom. Zanj sta značilni dve fiksni kolesi, ki nimata možnosti rotacije.
Rotacijsko gibanje dosežemo tako, da spreminjamo hitrosti med dvema kolesoma.
Teoretične osnove in pregled literature
4
Primer iz slike 2.1 (c) pa prikazuje Ackermann-ov model vozila. Gre za sistem prisoten v nekaterih avtomobilih, kjer z enim motorjem poganjamo zadnji kolesi, z drugim pa poskrbimo za rotacijo sprednjih koles [2].
Slika 2.1: Izvedbe kolesnih robotov [2]
2.1.1 Kinematika mobilnega robota z diferencialnim pogonom
Diferencialni robot ima fiksno vpeta dva motorja, ki poganjata levo in desno kolo. Za samo stabilnost je potrebno zagotoviti še vsaj eno kontaktno točko. To predstavlja dodatno kolesce ali rotirajoči členek, kot je npr. ležajna kroglica [2].
Smer gibanja robota je odvisna od kombinacij hitrosti levega in desnega kolesa. Robot se bo premikal naravnost naprej, če sta hitrosti koles enaki in pozitivni, glede na smer gibanja:
𝑣L = 𝑣D , 𝑣L> 0 (2.1)
kjer sta vL in vD hitrosti levega, oziroma desnega kolesa.
Slika 2.2: Gibanje mobilnega robota naravnost [2]
Če bo hitrost enega kolesa večja od hitrosti drugega, npr. da se levo kolo vrti hitreje od desnega, bo robot stalno obračal in se vrtel v krogu, v našem primeru v desno stran. Veljala bo enačba (2.2).
𝑣L > 𝑣D , 𝑣D> 0 (2.2)
Teoretične osnove in pregled literature
5 Slika 2.3: Obračanje mobilnega robota v desno smer [2]
Če želimo, da se robot vrti okoli lastne osi, morata biti hitrosti koles nasprotno enaki. To dobimo v primeru, ko se desno kolo vrti z enako hitrostjo kot levo, a v nasprotni smeri.
Robot se bo vrtel v smeri urinega kazalca, kot opisujeta enačba (2.3) in slika 2.4 [2].
𝑣L= −𝑣D , 𝑣L > 0 (2.3)
Slika 2.4: Gibanje mobilnega robota okoli lastnega središča [2]
Podrobneje si lahko predstavljamo mobilni robot v koordinatnem sistemu, kot je predstavljen na sliki 2.5. Lego robota opisujejo trije parametri: x koordinata, y koordinata in zasuk robota φ. V izhodiščnem položaju dobimo x0, y0 in φ0. V končnem položaju, kjer želimo analizirati gibanje robota, pa so koordinate predstavljene kot xk, yk in φk.
Hitrost za levo kolo lahko zapišemo kot:
𝑣L= 𝑟 ∙ 𝜑̇L= 𝑟 ∙ 𝜔L , (2.4)
kjer r predstavlja radij kolesa, 𝜑̇L, oziroma ωL pa predstavljata kotno hitrost levega kolesa.
Analogno temu je hitrost desnega kolesa:
𝑣D= 𝑟 ∙ 𝜑̇D= 𝑟 ∙ 𝜔D (2.5)
Teoretične osnove in pregled literature
6
kjer 𝜑̇R, oziroma ωR predstavljata kotno hitrost levega kolesa.
Z upoštevanjem geometrijskih lastnosti in kinematike mobilnega robota ter enačb (2.4) in (2.5) izpeljemo enačbi (2.6) in (2.7):
𝑣 =𝑣D+ 𝑣L
2 (2.6)
𝜔 =𝑣D− 𝑣L
2𝑙 (2.7)
pri tem je l polovična razdalja med kolesoma. Translatorna (v) in kotna hitrost (ω) se nanašata na središčno točko med dvema kolesoma mobilnega robota [3, 4].
Slika 2.5: Mobilni robot v koordinatnem sistemu [5]
2.1.2 Odometrija
Avtonomna vožnja mobilnega robota zahteva natančno določevanje njegove lege v prostoru.
To dosežemo z odometrijo, merjenjem poti robota po prostoru. Meritve poti izvajamo z ustrezno izbrano frekvenco. Čas odčitamo iz mikrokrmilnika. Pot pa dobimo preko analize podatkov iz kodirnikov, ki so nameščeni na gredeh motorjev. Pri tem pa se moramo zavedati, da je možnih veliko napak pri samem merjenju in računanju poti. V splošnem ločimo dve vrsti napak, ki se pojavljajo pri odometriji: sistematične (deterministične) in nesistematične (stohastične). Sistematične napake vključujejo napake pri merjenju dimenzij robota (radij koles, razdalja med kolesoma, itd.), računanju hitrosti koles in druge kinematične napake.
Večino izmed teh lahko zmanjšamo in s tem vplivamo na zanesljivost odometrije.
Teoretične osnove in pregled literature
7 Nesistematične napake pa so odvisne od vpliva okolice. Hrapava in valovita površina lahko povzroči zdrse med kolesoma in posledično pridemo do napačnih rezultatov. Če se želimo izgoniti tem vrstam napak, moramo namestiti nove senzorje na našo napravo [3-5].
Na sliki 2.5 sta prikazana položaj mobilnega robota na začetku in položaj po določenem času t. Koordinate, ki nas zanimajo, se stalno spreminjajo. Čimvečji kot bosta frekvenci zajemanja podatkov in računanja poti, bolje bo opisana pot robota od točke (x0, y0, φ0) do točke (xk, yk, φk). Dobimo sosledje položajev po:
‐ x osi: x0, x1, x2, x3, x4, ... xk.
‐ y osi: y0, y1, y2, y3, y4, ... yk.
‐ zasuku: φ0, φ1, φ2, φ3, φ4, ... φk.
Translatorno (vk-1) in kotno (ωk-1) hitrost robota v prejšnjem koraku izračunamo po enačbah (2.8) in (2.9):
𝑣𝑘−1=𝜔L𝑘−1∙ 𝑟 + 𝜔R𝑘−1 ∙ 𝑟
2 (2.8)
𝜔𝑘−1=𝜔R𝑘−1∙ 𝑟 + 𝜔L𝑘−1∙ 𝑟
𝑑
kjer je d razdalja med dvema kolesoma.
(2.9)
Na podlagi tega lahko izračunamo še trenutne koordinate, kjer se robot nahaja:
𝑥𝑘= 𝑥𝑘−1+ 𝑣𝑘−1∙ ∆𝑡 ∙ cos(𝜑𝑡−1) (2.10)
𝑦𝑘= 𝑦𝑘−1+ 𝑣𝑘−1∙ ∆𝑡 ∙ sin(𝜑𝑡−1) (2.11)
𝜑𝑘 = 𝜑𝑘−1+ 𝜔𝑘−1∙ ∆𝑡 (2.12)
Opravljeno pot pa beležimo po enačbi (2.13):
𝑠𝑘 = 𝑠𝑘−1+ ∆𝑠 (2.13)
kjer je sk-1 opravljena pot v predhodnem koraku.
Δs naknadno izpeljemo:
∆𝑠 =∆𝑠L+ ∆𝑠R
2 (2.14)
∆𝑠L=𝑛L∙ 𝜋 ∙ 2 ∙ 𝑟
𝛽 ∙ 𝛾 (2.15)
Teoretične osnove in pregled literature
8
∆𝑠R=𝑛R∙ 𝜋 ∙ 2 ∙ 𝑟
𝛽 ∙ 𝛾 (2.16)
kjer n predstavlja število pulzov iz kodirnika, β predstavlja prestavno razmerje robota (npr.
30) in γ predstavlja količino pulzov, ki se sproži ob vsakem obratu gredi.
Odometrijo robota je potrebno preveriti. Sprva mobilnemu robotu nastavimo le translatorno hitrost. V prostoru izberemo dve točki. Robota postavimo na prvo izbrano točko in ga usmerimo proti drugi. Ko bo naprava dosegla drugo točko, jo ustavimo. Robot bo izpisal koordinate v katerih se nahaja. Preko teh in poznane prave razdalje, lahko preverimo točnost sistema [4].
2.1.3 PID krmiljenje
Za pogon koles mobilnega robota uporabljamo motorje. Njihova hitrost se spreminja glede na napetost, ki jo določamo. V industriji se za krmiljenje naprav uporablja proporcionalno integrirni diferencirni (PID) krmilni algoritem. Gre za enostavnejši sistem krmiljenja, ki zajema proporcionalni, integrirni in diferencirni gradnik. PID krmiljenje se uporablja v sistemih s povratno zanko, kot kaže slika 2.6. Delovanje pokažemo na primeru motorja z enosmernim tokom (DC). Pri vsakem ciklu dobivamo napako, ki predstavlja razliko med željeno referenčno hitrostjo in trenutno hitrostjo koles. To napako, oziroma razliko želimo v najkrajšem možnem času izničiti ali se približati vrednosti nič [2, 6].
Slika 2.6: Blokovni diagram PID krmiljenja [2]
Proporcionalni gradnik ima sledečo prenosno funkcijo:
𝑅(𝑡) = 𝐾P∙ (𝑣ref(𝑡) − 𝑣dej(𝑡)) (2.17)
kjer je vref referenčna hitrost, vdej pa dejanska hitrost.
KP je koeficient proporcionalnega ojačenja. S spreminjanjem njegove vrednosti vplivamo na obnašanje sistema. Višja kot bo vrednost koeficienta, hitrejši bo odziv sistema. Previsoke vrednosti vodijo do osciliranja sistema [2].
Integrirni gradnik le redkokdaj upodabljamo samostojno. Ponavadi se ga uporablja skupaj s proporcionalnim:
Teoretične osnove in pregled literature
9 𝑅(𝑡) = 𝐾P∙ (𝑣ref(𝑡) − 𝑣dej(𝑡)) + 𝐾I∙ ∫ (𝑣ref(𝑡) − 𝑣dej(𝑡)) 𝑑𝑡
𝑡 0
(2.18)
Namen integrirnega gradnika je zmanjšati napako P-gradnika. Večji kot je koeficient integrirnega ojačanja (KI), počasnejši bo odziv sistema, a hkrati postane sistem bolj stabilen.
Podobno kot integrirni gradnik, se tudi diferencirni gradnik ne uporablja samostojno, ampak skupaj s proporcionalnim in integrirnim gradnikom. Tako dobimo prenosno funkcijo PID krmiljenja:
𝑅(𝑡) = 𝐾P∙ 𝑒𝑟𝑟(𝑡) + 𝐾I∙ ∫ 𝑒𝑟𝑟(𝑡) 𝑑𝑡
𝑡 0
+ 𝐾D 𝜕
𝜕𝑡𝑒𝑟𝑟(𝑡) (2.19)
Člen KD (koeficient diferencirnega ojačenja) uporabljamo zato, da povečamo odzivnost P- člena [2], [7].
Nastavljanje PID konstant je lahko dolgotrajen postopek. Kljub temu pa se lahko ustreznim vrednostim približamo, če se zgledujemo po naslednjih priporočilih [2]:
‐ izberemo tipično hitrost, ki jo bo dosegal naš sistem. Koficienta KI in KD pustimo na ničelni vrednosti, medtem ko KP povečujemo, dokler ne dosežemo osciliranja.
‐ Ko sistem začne oscilirati, vrednost koeficienta KP razpolovimo.
‐ Povečamo vrednost koeficienta KD in opazujemo obnašanje sistema pri spreminjanju hitrosti za 5%. Izberemo vrednost, pri kateri dobimo dušen odziv (brez prenihajev).
‐ Povečamo koeficient KI dokler ne pridemo do oscilacije. KI nato delimo z 2 ali 3.
‐ Preverimo, če je odzivnost sistema zadovoljiva glede na naše aplikacije [2].
2.2 Snovanje mehatronskega sistema
Načrtovanje elektronskih sistemov zahteva dobro poznavanje komponent, ki jih želimo uporabiti. V glavnem vsak mehatronski sistem sestavljajo sledeči elementi:
‐ mehanski del,
‐ senzorji,
‐ aktuatorji,
‐ električno vezje,
‐ program [8].
2.2.1 Snovanje mehanskega dela
Začetek snovanja mobilnega robota se začne pri mehanskem delu. Upoštevati moramo ceno komponent, obliko robota, njegovo težo in dimenzije. Materiali za katere se odločamo, so odvisni od namena uporabe in okolja, v katerem bo robot deloval. Pri tem moramo imeti jasen izbor komponent, ki bodo našo napravo sestavljale. Oblika mora ustrezati montaži vseh senzorjev in aktuatorjev, ki jih želimo uporabiti. Sistem mora biti poenostavljen tako, da se ga da sestaviti in razstaviti [8].
Teoretične osnove in pregled literature
10
2.2.2 Senzorji
Senzorji so ključni elementi vsakega mehatronskega sistema. Senzor je naprava, ki pretvori fizikalne količine, kot so hitrost, pospešek, temperatura, pretok itd., v električni signal, ki ga lahko merimo, oziroma analiziramo. Senzor vsebuje pretvornik in enoto za obdelavo signala.
Pri izbiri ustrezne senzorike se inženirji zgledujejo po naslednjih točkah:
‐ napaki/natančnosti/resoluciji,
‐ merilnem območju,
‐ nelinearnosti,
‐ ponovljivosti,
‐ histerezi,
‐ stabilnosti,
‐ zanesljivosti,
‐ ceni,
‐ načinu uporabe.
Trg senzorjev je tako velik, da bi jih lahko delili glede na aplikacije ali namen uporabe. Med najpogosteje uporabljene uvrščamo: kodirnike, pospeškomere, žiroskope in kamere (slikovna zaznavala) [8].
Pri mobilnih robotih ločimo dve vrsti senzorjev:
‐ notranje senzorje (merijo stanja notranjih veličin robota),
‐ zunanje senzorje (podajanje meritev iz okolja). Slednje lahko delimo še na:
‐ aktivne, ki vplivajo na okolje preko opravljanja meritev, npr. infrardeči senzorji, laserski skenerji.
‐ pasivne, ki ne motijo okolja, npr. kamera [2].
Senzorje ločimo tudi glede na vrsto izhodnega signala, kot je prikazano v preglednici 2.1.
Preglednica 2.1: Vrsta izhodne veličine [2]
Izhodna veličina Primer aplikacije
Binarni signal (0 ali 1) Tipalni senzor Analogni signal (npr. 0…5V) Termopar Časovni signal (npr. PWM) Žiroskop Serijska povezava (USB) GPS modul Vzporedna povezava Digitalna kamera
Analogni senzorji nam vračajo analogni izhodni signal. Da lahko beremo vrednosti takih senzorjev, potrebujemo analogno digitalni (A/D) pretvornik, ki nam analogni signal spremeni v digitalno število. Gre za n-bitno število, ki je odvisno od natančnosti pretvornika.
Poleg natančnosti sta pri A/D pretvorniku pomembna še hitrost (izmenjava podatkov na sekundo) in območje razpona (npr. od 0 do 5 V). Podobno funkcijo imajo digitalno/analogni pretvorniki, ki digitalen signal zapišejo v izhodni analogni signal. Njihova resolucija je odvisna od digitalnega bitnega števila [2, 9].
Teoretične osnove in pregled literature
11
2.2.2.1 Rotacijski kodirniki
V mobilni robotiki se za nadzor vrtenja gredi DC motorjev uporabljajo kodirniki.
Uporabljamo jih v povratnih zankah, saj lahko preko teh krmilimo hitrosti motorjev.
Najpogosteje uporabljeni so magnetni in optični kodirniki. Lahko so rotacijski ali linearni.
Rotacijski so sestavljeni iz senzorja in diska, ki ga namestimo na gred motorja. Magnetni kodirniki uporabljajo Hallov senzor, ki zaznava spremembo napetosti zaradi spremembe magnetnega polja. Disk je magnetiziran, oziroma ima več magnetov nameščenih po krožnici.
Pri rotaciji diska dobimo pulze [2, 10].
Optični kodirniki delujejo analogno magnetnim. Diski so sestavljeni iz črno-belih območij.
Za senzor uporabljajo foto-diodo, ki na podlagi odboja svetlobe razlikuje črna področja od belih. Za vsako kombinacijo črne in bele barve, bodo optični senzorji sprožili pulz [2].
Na sliki 2.7 v primeru (a) ima magnetni kodirnik le en senzor. Ta zadošča za branje segmentov. Samo s tem pa ne moremo razločiti smeri vrtenja gredi motorja. V primeru (b) ima optični kodirnik nameščena dva senzorja (foto-diodi), ki sta nameščena tako, da je med njima fazni zamik. Smer vrtenja lahko ugotovimo s tem da preverimo kateri izmed senzorjev bo prej sprožil pulz. Če bo kodirnik 1 na sliki 2.7 (b) prej sprejel signal, se bo gred vrtela v smeri urinega kazalca [2].
Slika 2.7: (a) Magnetni kodirnik [10] (b) Optični kodirnik[2]
Pri mobilnih robotih je smer vrtenja koles (v ali proti smeri urinega kazalca) pomemben faktor. Zato se ponavadi odločamo za kodirnike z dvema senzorjema.
Senzorji za zaznavanje razdalje
Med najpomembnejšimi senzorji spadajo merilniki razdalje. Naprava s pomočjo teh zaznava ovire (stene in druge predmete), ki se nahajajo v prostoru. Najbolj se uporabljajo naslednje tri tipologije senzorjev: ultrazvočni, infrardeči in laserski senzor.
Ultrazvočni senzorji oddajajo akustične signale (po 1 ms) visoke frekvence (med 50 kHz in 250 kHz). Pri tem se meri čas od oddaje signala do sprejema signala. Ta čas zajema pot, ki ga zvok opravi do ovire in se nato odbije nazaj. Dobimo torej dva-kratnik merjene razdalje, kot kaže slika 2.8.
Teoretične osnove in pregled literature
12
Slika 2.8: Delovanje ultrazvočnega senzorja razdalje [2]
Ultrazvočni senzorji imajo močan sistem a hkrati lahko naletimo na nekaj težav. Odboji akustičnih signalov pod določenim kotom lahko zavedejo senzor in predstavijo objekt na daljši razdalji kot je v resnici. Drug problem nastane, če uporabljamo več senzorjev hkrati.
Zaradi interference se lahko zgodi, da nek senzor sprejme signal drugega.Tem težavam se izognemo z laserskimi in infrardečimi senzorji. Glede na to, da so laserski senzorji razdalje nekoliko večji in masivnejši, v mobilni robotiki prevladujejo infrardeči senzorji razdalje [2].
IR senzorji prožijo pulze infrardeče svetlobe s frekvenco okoli 40 kHz. Blizu emiterjev (izvora infrardeče svetlobe) se nahajajo sprejemniki (detektorji). Kot pod katerim se svetloba odbija nam določa napetost, ki jo posledično pretvorimo v razdaljo, kot kaže slika 2.9 [2].
Slika 2.9: Princip delovanja infrardečega senzorja razdalje [2]
Človeško oko ne zaznava infrardeče svetlobe. Njihovo delovanje pa lahko preverimo z uporabo kamer, ki so na tovrstno svetlobo občutljive. Slaba lastnost IR senzorjev je določanje razdalje oddaljenih predmetov. Izhodna napetost, ki jo dobimo iz senzorja se z oddaljevanjem od predmeta manjša in težko opredelimo točno razdaljo [2].
2.2.3 Aktuatorji
Aktuatorji so naprave, ki pretvorijo moč (npr. električno) v linearno ali rotacijsko gibanje.
Poznamo tri vrste aktuatorjev: električne, hidravlične in pnevmatske. Električni se
Teoretične osnove in pregled literature
13 uporabljajo za premikanje mehanskega dela mehatronskega sistema. Pogosti električni aktuatorji so: DC motorji, koračni motorji in stikala. [8]
2.2.3.1 Enosmerni elektromotorji
Enosmerni elektromotorji (angl. Direct Current Motors) ali DC motorji se veliko uporabljajo v mobilni robotiki. V večini primerov jih napajamo z baterijami preko enosmernega toka.
Imajo dovolj moči in navora, da zadoščajo za premikanje robotov z diferencialnim pogonom.
Sestavljeni so iz fiksnega dela, statorja, in iz rotirajočega dela, rotorja. Uporabljamo jih zaradi lahkega nadzora hitrosti, položaja in torzije. Njihova struktura je lahko zelo kompaktna in v splošnem imajo nizko ceno na trgu [2].
Ko gradimo mehanski del robota, moramo izbrati ustrezen sistem motorja. Ta zajema:
‐ DC motor,
‐ prestavno razmerje,
‐ optične ali magnetne kodirnike [2].
Prestavno razmerje skupaj z resolucijo kodirnika določata natančnost merjenja obratov izhodne gredi motorja. Za primer si lahko predstavljamo DC motor s prestavnim razmerjem 1:30. Na vhodno gred namestimo kodirnike, ki sprožijo 12 pulzov na vsak obrat. Za vsak obrat izhodne gredi elektromotorja, lahko na ta način dobimo 360 pulzov, kar pomeni da lahko razločimo vsako stopinjo zasuka gredi.
Na sliki 2.10 je prikazan shematski princip delovanja enosmernega motorja. Vsak motor ima določeno upornost R in navitje v obliki tuljave L. Napetost U bo sprožila električni tok i [A]
skozi motor. Preko tega dobimo navor gredi motorja (Mmotorja). Izhodni navor (Mizhodni) pa je odvisen še od vztrajnostnega momenta J [2].
Slika 2.10: Princip delovanja DC motorja in izhodne veličine [2]
Vrtilni moment na motorju je enak produktu toka i, ki teče skozi motor in navorne konstante KM:
𝑀motorja= 𝑖 ∙ 𝐾M (2.20)
Teoretične osnove in pregled literature
14
Pomembno je, da izberemo motor s primerno izhodno močjo. To definiramo kot produkt med izhodnim navorom (Mizhodni) in vrtilno hitrostjo gredi ω:
𝑃izhodna= 𝑀izhodni∙ 𝜔 (2.21)
Vhodna moč na motorju (Pvhodna) pa je odvisna od vhodne napetosti U in toka i, ki teče skozi motor.
𝑃vhodna= 𝑈 ∙ 𝑖 (2.22)
Za vsak motor je znan tudi izkoristek η. Tega izračunamo po enačbi (2.23).
𝜂 =𝑃izhodna
𝑃vhodna =𝑀izhodni∙ 𝜔
𝑈 ∙ 𝑖 (2.23)
Treba se je zavedati, da se izkoristek razlikuje glede na hitrost motorja.
Poleg tega je treba upoštevati še inducirano napetost Uind, ki nastane pri gibanju vodnikov po magnetnem polju. Električni tok lahko poenostavimo po enačbi (2.24).
𝑖 =𝑈ind 𝑅 +𝑈
𝑅 (2.24)
Pomemben je tudi kotni pospešek α, pri katerem upoštevamo navorno konstanto KM in masni vztrajnostni moment J.
𝛼 =𝑑𝜔 𝑑𝑡 =𝐾𝑀
𝐽 ∙ 𝑖 −𝑀izhodni
𝐽 (2.25)
Z naraščanjem navora na gredi, hitrost linearno pada, tok pa se linearno povečuje. Največjo moč dosežemo okoli srednje vrednosti navora. Najboljši izkoristek pa dobimo takrat, ko je vrtilni moment motorja čimmanjši [2].
2.2.3.2 H-mostič
Pri krmiljenju motorjev želimo nastavljati hitrosti naprej in nazaj. To vrsto nastavitev nam poenostavi H-mostič. Gre za vrsto integriranega vezja, ki omogoča vrtenje motorja v obe smeri. Z mikrokrmilnikom enostavno krmilimo H-mostič in posledično motor. Ne moremo pa priklopiti motorja direktno na krmilnik. Stikala na sliki 2.11 so izvedena s tranzistorji. V osnovnem stanju so vsa odprta, kar pomeni da ne prepuščajo električnega toka skozi motor.
Črki a in b opisujeta pole motorja. Motor lahko vrtimo v dve različni smeri, in sicer v smeri urinega kazalca ali v obratni smeri urinega kazalca, kot kaže slika 2.12.
Teoretične osnove in pregled literature
15 Slika 2.11: Shematski prikaz H-mostiča [2]
Za pretok električnega toka je potrebno, da sta zaprti po dve stikali. V primeru, da zapremo le stikali S1 in S4 ali pa stikali S3 in S2, bomo dobili kratek stik. Vrtenje motorja ustavimo tako da nastavimo napetost na mikrokrmilniku na 0 [2].
Slika 2.12: Kombinacije stikal glede na smer vrtenja DC motorja [2]
Integrirano vezje L293D je tipičen primer izvedbe dvojnega H-mostiča. Vezje omogoča istočasno krmiljenje dveh DC motorjev. Izhodni tok sega od 600 mAh do 1,2 A. Pri višjih električnih tokovih moramo zato uporabljati druge izvedbe vezja [8].
2.2.3.3 Multiplekser
Multiplekser je kombinatorno vezje. Pojavlja se v oblikah integriranega vezja z več vhodnimi in izbirnimi priključki ter z enim izhodnim priključkom. Uporabljamo ga za priključitev večjega števila senzorjev. Vezje deluje tako, da z izbiro binarnega števila določimo vhod, ki ga želimo upoštevati pri krmiljenju. Krmilimo torej izhodni priključek, ki je povezan z izbranim [9].
Teoretične osnove in pregled literature
16
Slika 2.13: Shema 4-kanalnega multiplekserja [9]
Na sliki 2.13 so prikazani štirje vhodi. Lahko si jih predstavljamo kot štiri led diode.
Posamezno diodo izbiramo s priključkoma x1 in x0. Izbor izvedemo z nastavljanjem napetosti na največjo (zapisana z logično številko 1) ali najmanjšo (zapisana z logično številko 0) vrednost. Izhod Y pa predstavlja priključek, s katerim upravljamo led diodo.
Kombinacije za primer na sliki 2.13 so prikazane v preglednici 2.2 [9].
Preglednica 2.2: Pravilnostna preglednica 4-kanalnega multiplekserja
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 Ime komponente Količina Opis komponente
ESP32 S2 SAOLA 1R 1 mikrokrmilnik
DC motor 2 elektromotor s prestavnim razmerjem (reduktorjem)
magnetni kodirnik 2 magnetni kodirnik
GP2Y0A60SZ 3 IR senzor razdalje
QTRX-HD-15A 1 modul z IR senzorji za sledenje talne črte
L293D 1 dvojni H-mostič
Li-ion 18650 1 litij-ionska baterija
adg408 2 multiplekser
kolo 2 kolo z možnostjo namestitve na gred elektromotorja
stikalo 1 stikalo za vklop/izklop napajanja
ležajna kroglica 1 rotirajoči členek, ki omogoča pomikanje v vse smeri nastavek za DC motor 2 nastavek za fiksiranje elektromotorja na površino nosilec za baterijo 1 nastavek za pritrditev baterije tipa 18650 na PCB
ploščo
keramični kondenzator 4 kondenzator s pritrditvenimi nogicami za tiskano vezje
nastavek za mikrokrmilnik 2 nastavek za pritrditev mikrokrmilnika na PCB električne žičke / večja količina žičk za povezovanje nekaterih
komponent
3.1.2 Načrtovanje tiskanega vezja
Na podlagi izbranih komponent smo se odločili za razvoj tiskanega vezja. PCB smo načrtovali v odprtokodnem okolju KiCad EDA. Sprva smo sestavili električno shemo v urejevalniku shem Eeschema. Nekatere simbole komponent smo poiskali v že obstoječih knjižnicah, ki nam jih program nudi. Ostale smo pa načrtovali sami, po zgledu iz podatkovnih listov komponent.
Metodologija raziskave
27 Da bi dosegli pregleden vpogled, smo električno shemo razdelili na tri dele. Prvi del prikazan na sliki 3.1 zajema enostavno shemo napajanja. Uporabili smo litij-ionsko baterijo z napetostjo 3,7 V. Napajanje lahko vklapljamo ali izklapljamo preko stikala S1. Oznaka VCC predstavlja pozitivni pol baterije, oziroma napetost. Oznaka GND pa predstavlja negativni pol baterije. Slednji je povezan z vsemi GND priključki ostalih komponent.
Slika 3.1: Shema napajanja vezja
Poleg simbolov VCC in GND se v shemi ponavljajo tudi ostale, t.i. globalne oznake.
Prepoznamo jih po obliki nepravilnega petkotnika, znotraj katerega je vpisano besedilo.
Primer je prikazan na sliki 3.2. Globalne oznake uporabljamo z namenom, da bi bila shema preglednejša. Vsi priključki, ki nosijo isto globalno oznako, so med seboj povezani.
Slika 3.2: Primer globalne oznake v urejevalniku sheme
Glavni del električne sheme je prikazan na sliki 3.3. Vsaka komponenta ima več priključkov, ki so označeni s številkami v rdeči barvi. Besedilo v zeleno-modrem je zgolj informativne narave. Gre za poljubno besedilo, ki nam pomaga pri vezavi komponent.
Mikrokrmilnik napajamo direktno z baterijo (preko simbola VCC) po priključku, označenem s 5V. Ta sprejema vhodno napetost do vrednosti 5 V. Preko regulatorjev napetosti se v mikrokrmilniku vzdržuje konstantno napetost 3,3 V. Tovrsten vir napajanja, ki izhaja iz mikrokrmilnika, je označen z omenjenim simbolom na sliki 3.2.
Na levi strani sheme na sliki 3.3 vidimo simbole treh IR senzorjev razdalje, označenih z referencami U1, U2 in U3. Poleg priključkov za napajanje (VCC in GND), vsebujejo še priključka EN in OUT. EN služi za vklop/izklop IR led diode, OUT pa uporabljamo za branje