Professional Documents
Culture Documents
1503
1503
Bakalrska prca
2014
Miroslav Benkovsk
Bakalrska prca
Bratislava 2014
Miroslav Benkovsk
Miroslav Benkovsk
ID tudenta:
44080
Nzov prce:
pecifikcia zadania:
Linux, ako vone riten operan systm, pracuje na vvojovom modeli Open Source. Umouje najviac
monost prispsobenia sa uvateovi. Jeho vyuitenos je vhodn implementova nielen na profesionlne
a osobn ely, ale aj na edukan. Miniatrny PC Raspberry Pi vzbudil pozornos irokej verejnosti, e
napriek vskutku miniatrnym rozmerom a nzkej cene je schopn plni lohy plnohodnotnho potaa.
Prve spojenm miniatrneho potaa Raspberry Pi s modulom BrickPi vznikne programovaten robot, ktor
je schopn pracova motormi a senzormi LEGO Mindstorm stavebnice.
lohy:
- o je BrickPi, zloenie komponentov a el
- Preskma monosti konektivity BrickPi, vzdialen ovldanie
- Programovanie BrickPi
- Navrhn proces jednoduchho riadenia
- Zloenie LEGO robota pre potreby procesu
- Naprogramovanie robota pre automatick riadenie jednoduchho procesu
Rozsah prce:
30
2013.
Miroslav Benkovsk
tudent
vedci pracoviska
Abstrakt
Tto prca rozober projekt BrickPi od jeho zaiatku, ktor sa spene uchytil v rznych
sfrach. Najrozrenejm vyuitm je nepochybne pri vzdelvan. Vaka nadstavbm na u
znme minipotae Raspberry Pi sa otvraj nov monosti, ktor treba preskma. Nastva
dostaton priestor pre deti, iakov, uiteov ale aj dospelch osvoji si zklady robotiky,
programovania a riadenia. Vaka fyzickej podobe tohto projektu je pre loveka ahie
nadobudn potrebn znalosti. Jedn sa pritom o uenie hrou, o je v dnenom svete vemi
kladn prstup k vzdelvaniu. Mojou lohou je pochopi a sprevdzkova jednoduchho robota.
Nsledne navrhn zariadenie, zsobnk kvapaliny, ktor bude pomocou robota ovldan
a bude vedie riadi jednoduch proces.
Kov slov: Raspberry Pi; BrickPi; LEGO; zsobnk kvapaliny; riadenie
Abstract
This paper analyze the project BrickPi from the beginning, which was successfully established
in different areas. Undoubtedly the most widespread use is in education. Thanks to extensions
to already known minicomputers Raspberry Pi there are new possibilities to be explored. Occurs
sufficient space for children, students, teachers and adults to learn the basics of robotics,
programming and control. Thanks to the physical form of this project is easier for a person to
acquire the necessary knowledge. Nowadays it is a very positive attitude to learning. My
assignment is to understand and control a simple robot. Then design a device with properties of
liquid reservoir, which will be operated by a robot. Also this robot must be able to control a
simple process.
Obsah
Zoznam pouitch skratiek ........................................................................................................ 9
1.
vod .................................................................................................................................. 10
1.1 Zaiatok projektu BrickPi na KICKSTARTER ............................................................. 10
1.2 BrickPi je open source .................................................................................................... 10
2.
3.
Teoretick as .................................................................................................................. 13
3.1 Poskladanie skrinky BrickPi ........................................................................................... 13
3.2 Prprava SD karty ........................................................................................................... 15
3.2.1 SD karta od Dexter Industries .................................................................................. 15
3.2.2 Stiahnutie a pouitie modifikovanho obrazu wheezy ......................................... 15
3.2.3 Modifikovanie vlastnho obrazu .............................................................................. 17
3.2.3.1 Zhrnutie komunikcie ....................................................................................... 17
3.2.3.2 Nastavenie WiringPi ......................................................................................... 18
3.2.3.3 Nastavenie UART Clock Speed ........................................................................ 18
3.2.3.4 I2C nastavenie ................................................................................................... 18
3.2.3.5 Aktivcia Serial Pinov ....................................................................................... 19
3.2.3.6 Serial pre Python ............................................................................................... 19
3.2.3.7 Povolenie GPIO Pin prstupu ............................................................................ 20
3.2.3.8 Nastavenie piateho senzoru ............................................................................... 20
3.3 Zapnutie .......................................................................................................................... 21
3.4 Nastavenie pripojenia ku robotovi .................................................................................. 23
3.4.1 Nastavi ako Desktop............................................................................................... 23
Praktick as .................................................................................................................... 36
4.1 Zsobnk kvapaliny......................................................................................................... 40
4.2 Programovanie zsobnku v Scratch............................................................................... 43
5.
Zver ................................................................................................................................. 49
Literatra .................................................................................................................................. 50
Prlohy ...................................................................................................................................... 51
GPIO
General-Purpose Input/Output
HDMI
I2C
Inter-Integrated Circuit
IP
Internet Protocol
LAN
LED
Light-Emitting Diode
RAM
SD karta
Secure Digital
SMBus
SSID
UART
USB
WiFi/WLAN
1. vod
1.1 Zaiatok projektu BrickPi na KICKSTARTER
Tento projekt odtartoval v mji 2013 pomocou kampane na strnke Kickstarter. Bola
vyzbieran suma od 1702 podporovateov alebo kupcov, v celkovej hodnote 127 537 dolrov.
Tm bola niekokonsobne presiahnut poadovan iastka 1889 dolrov. Neskr v jni, po
uplynut limitovanho asu na finann podporu, nadobudol projekt relne rozmery. Vaka
hodnotnm sptnm reakcim od kupcov, pracuj zakladatelia projektu stle na alom vvoji
robota BrickPi. Na novch nadstavbch na Raspberry Pi, senzoroch merajcich hodnoty
fyziklnych velin, funkcich BrickPi a na preden ivotnosti na batrich.
2. Ako zaa
2.1 Zakpenie BrickPi
Najlepou cestou ako sa zaa vzdelva hrou s robotom, je zakpenie BrickPi
tartovacieho balku z oficilnej strnky vrobcu Dexter Industries. Balk v hodnote $140
obsahuje vetko potrebn pre zaatie s BrickPi. Zaha BrickPi pokroil modul, skrinku, zdroj
energie, SD kartu, WiFi prijma a minipota Raspberry Pi Model B. Pre potreby bakalrskej
prce mi boli alej poskytnut dva NXT LEGO motory zo stavebnice Mindstorms, kad
v hodnote $19,99, ultrazvukov senzor $33,99.
512 MB RAM
2 x USB2.0 Porty
Video vstup cez Composite (PAL and NTSC), HDMI alebo Raw LCD (DSI)
loisko SD/MMC/SDIO
8 x GPIO
UART
I2C bus
11
12
3. Teoretick as
3.1 Poskladanie skrinky BrickPi
1. V balku od Dexter Industries sa nachdzaj dva oddelen vaky. V jednom s dve
akrylov dosky, v druhom potrebn skrutky. Vrchn doska m logo Dexter Industries,
spodn je bez loga.
2. Odlepte ochrann papier z oboch dosiek.
stpikom.
13
5. Pripevnite tyri dlh stpiky na spodn dosku. Nechajte skrutky mierne uvonen.
14
7. Nastavte vrchn dosku s logom na dlh stpiky a naskrutkujte skrutky, ktor ete
neutiahnete plne.
15
Kroky:
1. Stiahnu najnov obraz z odkazu:
http://sourceforge.net/projects/dexterindustriesraspbianflavor/
2. Stiahnu a intalova program Win32DiskImager do potaa z odkazu:
http://sourceforge.net/projects/win32diskimager/
3. Rozbali obraz zo skomprimovanho sboru.
4. Pripojenie SD karty do potaa.
5. Otvori Win32DiskImager, vybra obraz, vybra systmov oznaenie SD karty
16
5. Spustte skript.
sudo ./install.sh
I2C (AKA SMBUS) Pouva sa na riadenie senzoru pre port 5. I2C posiela a prijma
na GPIO0 (I2C0-SDA) a GPIO1 (I2C0-SCL) na doske Raspberry Pi.
Postup:
1. Rozbate sbor na plochu a otvorte terminl.
2. Zmete svoj adresr na wiringPi.
cd /home/pi/Desktop/wiringPi
4. Spustite sbor.
./build
18
19
20
3.3 Zapnutie
Nasledujce obrzky ukazuj niekoko monosti napjania robota BrickPi. Je mon
poui dva zdroje napjania, priom sa daj skombinova troma spsobmi. Kad spsob je
pecifick pre zvolen lohu.
Spsoby s nasledovn:
1. 9-12 V zdroj naptia.
Pri individulnej objednvke je si mon vybra medzi zdrojom energie na 6xAA
(9 V) batri alebo 8xAA (12 V) batri. Zo sksenost vvojrov je zisten, e vdr
robota je podstatne preden akoby bol napjan len obyajnou 9 V batriou.
2. USB kbel.
Tto monos umouje nepretrit napjanie robota avak nemonos vyui napr.
motory na pln vkon. Jej vyuitie sa najviac hod poas programovania robota.
3. USB kbel + 9-12 V zdroj naptia.
Skombinovanm tchto dvoch monost zskame dlh ivotnos na batrich ale zas
s obmedzenou mobilitou robota. Pri testovan robota alebo prevdzke stacionrneho
robota je tto monos najlepou vobou.
21
Kbel, ktor smeruje zo zdroja energie do BrickPi m dva vodie, ierny a erven. ierny
vodi je uzemnenie (-) a erven je napjac (+):
1. Njdite napjac konektor umiestnen na BrickPi. Je to biela plastov siastka
konektor len jednou cestou. Pri zlej manipulcii a opanom umiestnen konektoru
mu vznikn pokodenia na Raspberry Pi alebo BrickPi. Pre kontrolu mus by
22
23
24
Mac:
1. Pre nastavenie pripojenia k potau Mac, kliknite na ikonku WiFi umiestnen
25
26
SSID (nzov siete), PASSWORD (heslo siete, v prpade siete bez hesla ostane miesto
medzi vodzovkami nevyplnen), IP adresu a ostatn konfiguran nastavenia
potrebn na pripojenie k sieti WiFi. Ostatn nastavenia mete vidie napsanm
27
3.5.1 Putty
Tento spsob je pre sksenejch uvateov, ktorm je pohodlnejie programova
v prkazovom riadku:
28
na Open.
29
30
31
Kad motor alebo senzor sa ku konektoru na doske BrickPi pripoj vlastnm EV3
kblom. Sprvne pripojenie je vtedy, ke je pou zacvaknutie.
3.7 Programovanie
3.7.1 Scratch
Scratch je grafick programovac jazyk dostupn na Raspberry Pi, ktor u ud
prema kreatvne, postupova systematicky a spolupracova. Tento spsob programovania
je vemi jednoduch a porad si snm kad zaiatonk.
Pre fungovanie s BrickPi treba spravi nastavenia cez prkazov riadok. Otvorte prkazov
riadok kde postupne napete prkazy. Zvolte prieinok plochy.
cd Desktop
32
Tento postup pre naintalovanie programu sa vykon iba raz. Ale pre komunikciu
Scratch s BrickPi treba pri kadom spusten spravi nasledujce kroky.
Spustite Scratch. Kliknite na Sensing v hornom avom rohu.
Prejdite dole vavo na Sensor Value a uistite sa, e s zapnut senzory. Ak nie, urobte tak
kliknutm na text enable remote sensor connections.
33
Teraz treba spusti program BrickPiScratch, ktor bude pracova na pozad a umon
komunikciu medzi Raspberry Pi a BrickPi. Preto otvorte terminl, v ktorom sa nastavte do
sprvneho prieinku a nsledne spustte program.
cd Desktop/BrickPi_Scratch/
Nezatvrajte terminl, pretoe program mus bea na pozad. Tento krok je za potreby spravi
pri kadom spusten novho projektu.
34
3.7.2 Python
alou monosou ako naprogramova robota BrickPi je jazykom Python. Je uren
pokroilejm uvateom. Po napsan spustitenho programu je ho mone cez terminl
spusti. Najprv si vak treba Raspberry Pi nastavi.
Stiahnite si sbor potrebn na intalaciu zadanm prkazu, alebo manulne zo strnky.
git clone https://github.com/DexterInd/BrickPi_Python.git
import BrickPi
35
4. Praktick as
Moje prv stretnutie s projektom BrickPi bolo prve poas kampane na Kickstarter,
kedy som ho pri surfovan na tejto strnke spozoroval a zaujal ma svojim propaganm videom.
O necel rok neskr, ke som si volil tmu na bakalrsku prcu, som bol milo
prekvapen, e sa mi naskytla monos spracova s spsa tmu o BrickPi. S radosou som sa
pustil do prce. V kole som dostal kompletn vybavenie, ktor je mon kpi od vrobcu.
K tomu som potreboval ete motory a senzory zo stavebnice Mindstorms. Tie mme taktie
k dispozcii na naej fakulte.
Na zaiatku je obyajne prvm krokom poskladanie skrinky pre BrickPi, a potom
samotn oboznmenie sa so zariadenm. Tento krok som absolvova nemusel, pretoe BrickPi
som dostal u poskladan.
Zariadenie som spal na priloenom operanom systme, aktualizovan 7.2013.
Neskr som si kvli nefunknost niektorch prvkov stiahol a pracoval s novm systmom,
aktualizovanm 20.1.2014. Dodnes bola dom 13.3.2014 bola vydan zatia posledn
aktualizcia.
Krok po kroku som skal monosti konektivity Raspberry Pi. Ako prv som pripojil
televziu cez HDMI kbel, do USB portu som vsunul Bluetooth prijma k bezdrtovej myke
a a potom som zapol Raspberry Pi pripojenm nabjaky pre Smartfny. Poas tartovania sa
naintaloval driver pre komunikciu s bezdrtovou myou. Vetko fungovalo ako malo. Avak
pre dlhodob potreby pouvania, ako je hlavne programovanie, bolo pre ma vhodnejie zvoli
in spsob ovldania Raspberry Pi.
Druhm spsobom je vzdialen ovldanie pomocou Notebooku cez Ehternetov kbel.
Vyskal som dva programy poskytujce vzdialen ovldanie: VNC Viewer a Putty. Operan
systm naintalovan na Notebooku je Windows 7. Pre moje pouvanie mi viac vyhovoval
program VNC Viewer, pretoe umouje zobrazenie grafickho prostredia ako na regulrnom
potai. Zatia o cez program Putty mem ovlda Raspberry Pi iba cez prkazy psan
v terminly. Tu nastal problm pri pouvan pvodnej verzie operanho systmu Raspberry
36
V systme Windows som nastavil pre Internet Protocol Version 4 (TCP/IPv4) adresu o jeden
viu.
V Internet Protocol Version 4 (TCP/IPv4) treba zaklikn automatick zistenie IP adresy. Teraz
som sa mohol pohodlne vzdialene prihlsi na Raspberry Pi cez oba programy.
38
Cel mj sbor interfaces je na obrzku (obr. 4.4). Pre nastavenie WiFi siete som zadal
parameter dhcp, nzov siete HOME a heslo vo vybielenom polku.
39
skrutky do dreva
tepeln burka
per
sahovacie psky
LEGO motory
Notebook
BrickPi
AA batrie
Moje zariadenie sa sklad z niekoko ast. Je to jeden zsobnk v strede a dve pomocn
ndre, umiestnen na podstavcoch v rozdielnych vkach. Dvodom je, aby sa mohla
prelieva voda z najvyej ndre do zsobnku a z neho zase do spodnej ndre vyuitm
gravitanej sily.
Hlavnou asou tohto zariadenia je stredn zsobnk. Na om je driak pre ultrazvukov
senzor, ktor meria vzdialenos od senzoru k povrchu hladiny. Znamen to, e m je menia
hodnota vzdialenosti senzora, tm je hladina vody v zsobnku vyie. Prve v tomto zsobnku
je mojou lohou regulova vku hladiny na zvolen hodnotu.
41
42
Zariadenie som sa rozhodol napja externou batriou pre mobiln telefny. Konkrtne
sa zdroj pripja na Raspberry Pi do micro USB portu. T zaru dlhodob zdroj energie pre
chod. Sekundova jej mus druh zdroj energie. 9V set batri sa pripoj ku konektoru na
BrickPi. Je to z dvodu vyuitia plnho vkonu u senzoru a hlavne motorov.
43
44
Stage:
VYSKA:
45
VYSKAGR:
UzaverA, UzaverB:
Manulne riadenie sa zapne ihne pre ventil, ktorm je vykonan zmena polohy ventilu
stlaenm prslunej klvesy zo vzdialenho potaa.
46
Tieto tyri bloky maj za lohu vypisova do avho dolnho rohu vizualizcie, o sa
prve deje so strednm zsobnkom v ktorom riadime vku hladiny vody. Bu sa voda
napa, vypa sa, hladina je ustlen alebo s oba ventily otvoren.
47
AMAN, BMAN:
Sprite1, Sprite2:
Vizualizcia vpravo hore. Prslun pka zmizne pri nastaven hraninej dovolenej
hodnoty.
48
5. Zver
V prci som sa venoval projektu BrickPi, ktor je vaka svojej cene a dostupnosti na
trhu vinikajcou edukanou pomckou. Spsal som podrobn nvod od kpy robota, ktorho je
treba posklada z objednanej skladaky. Venoval som sa podrobnejie hardawaru, od oho
slia niektor sasti BrickPi a softwarovm poiadavkam. Cie bol postavi, naprogramova
a vzdialene ovlda robota. Ten mal by schopn vykonva automatick riadenie navrhnutho
procesu.
V praktickej asti som zostavil zsobnk kvapaliny. Mojim cieom je riadi jednoduch
proces, ktor pozostva z merania vzdialenosti od senzoru k povrchu hladiny. Otvranm dvoch
ventilov sa ureguluje poadovan vka. Pri testovan som zistil, e ultrazvukov senzor nieje
spoahliv pri meran v celom rozsahu vky vaniky. Relatvne spolahlivo meral, ke vka
vody v zsobnku bola za polovicou vaniky a do samotnho vrchu. Me to by zaprinen
malm objemom vaniky a nslednmi ruivmi vplyvmi na meran signl v senzore
v dsledku odrazu zvuku od stien. V dovolenom rozsahu vak zariadenie spolahlivo reguluje
vku hladiny.
So zskanmi vedomostami som dokzal vytvori funknho robota na lohu riadenia.
Mem poveda, e som podmienku splnil. Tto sksenos mi je dobrm zkladom pre mon
budci projekt. Samotn bakalrska prca me sli ako pomcka pre tudenta
zaujmajceho sa o BrickPi.
49
Literatra
1. Oficilna strnka o BrickPi, dostupn na internete:
<http://www.dexterindustries.com/BrickPi/>
50
Prlohy
CD nosi s Bakalrskou prcou
51