Page 9 - Fister jr., Iztok, and Andrej Brodnik (eds.). StuCoSReC. Proceedings of the 2018 5th Student Computer Science Research Conference. Koper: University of Primorska Press, 2018
P. 9
kot merilnik razdalje uporabljen infrardeˇci senzor Sharp povzroˇcalo teˇzave pri obdelavi podatkov in regulaciji. Ko-
GP2Y0A21YK0F (10 – 80 cm), ki je bil zaradi prevelikih tna hitrost se je spreminjala nakljuˇcno zaradi trkov v stene
nihanj v izmerjeni razdalji, zamenjan z optiˇcnim senzorjem plastiˇcne cevi, zato ni bilo mogoˇce pridobiti uporabnih po-
STM VL53L0X. Slednji ima popolnoma linearno karakte- datkov, pospeˇskometer pa vraˇca zelo ˇsumne meritve, ki so
ristiko ter viˇsji domet (do 2 m), vendar komunicira preko same po sebi neprimerne za dvojno integracijo. Pri mikro-
protokola I2C. Regulacija se izvaja na raˇcunalniku, ki je s krmilniku (STM32F407VG), ki je skrbel za branje podatkov
krmilnikom povezan preko USB komunikacije. iz senzorja ˇcasa preleta (VL53L0X), je bila prav tako upo-
rabljena komunikacija I2C. Tudi ti podatki so bili poslani
na raˇcunalnik, tokrat preko USB povezave. Na raˇcunalniku
so bili podatki nato uporabljeni v regulaciji. Rezultat regu-
lacije je bil podatek za hitrost vrtenja ventilatorja, ki je bil
nato poslan nazaj na isti mikrokrmilnik. Na mikrokrmilniku
je bil napisan tudi program za generiranje pulzno-ˇsirinskega
signala, ki je bil namenjen krmilniku hitrosti vrtenja (ESC)
motorja, glej sliko 8.
Slika 7: 3D model zgornjega dela preizkuˇsevaliˇsˇca. Slika 8: Shematski prikaz regulacijske proge.
Kot orodje za prejemanje, poˇsiljanje in obdelavo podatkov
4.2 Priprava programske opreme na raˇcunalniku je bil uporabljen program LabVIEW. Za pre-
jemanje in poˇsiljanje podatkov je bilo v njem uporabljeno
Za namene projektne naloge so bili napisani programi, ki so orodje VISA, ki omogoˇca branje in pisanje podatkov iz/na
se izvajali na uporabljenih krmilnikih, kot tudi program, ki raˇcunalniˇski komunikacijski vmesnik. To orodje je bilo upo-
se je izvajal na osebnem raˇcunalniku in je skrbel za regula- rabljeno pri prejemanju podatkov iz Bluetooth povezave, kot
cijo. Za mikrokrmilnik z oznako STM32F103C8T6, ki se je tudi pri prejemanju in poˇsiljanju podatkov preko USB po-
nahajal v plovcu, ter za mikrokrmilnik serije STM32F407VG vezave s krmilnikom STM32F407. Sprva je bil program za
Discovery Board, je bil uporabljen programski jezik C. Pri regulacijo sestavljen s PID regulatorjem, ki ga je enostavno
programiranju je bil v pomoˇc namenski, brezplaˇcni program sestaviti z ustreznim blokom v programu LabVIEW, nato pa
CubeMX, ki omogoˇca laˇzjo konfiguracijo vseh enot mikro- je bil zaradi teˇzav implementacije ter pravilnega delovanja
krmilnika, pripravi vse potrebne knjiˇznice in ustvari grobo na vetrovniku ustvarjen mehki regulator tipa Mamdani.
zasnovo vseh programov [16]. Pisanje programa za oba mi-
krokrmilnika pa je bilo opravljeno v integriranem razvojnem Slika 9: Blok diagram regulacijske zanke v LabVIEW-u.
okolju (IDE) µVision programskega paketa Keil. Oba ome- V programu LabVIEW, glej sliko 9, je bil takˇsen regula-
njena programa sta namenjena delu in programiranju mikro- tor ustvarjen s pomoˇcjo orodja imenovanega Fuzzy System
krmilnikov z Arm Cortex procesorji [2]. Pri programiranju
krmilnikov so bile uporabljene tudi posebne visokonivojske
knjiˇznice, t.i. knjiˇznice HAL (angl. Hardware Abstraction
Layer ), ki so posebej namenjene programiranju krmilnikov
serije STM32. HAL knjiˇznice olajˇsajo in pospeˇsijo programi-
ranje, saj omogoˇcajo delo z laˇzje razumljivimi ukazi [15]. Za
mikrokrmilnik v plovcu (STM32F103C8T6) je bil napisan
program, ki je omogoˇcal branje pospeˇskov in kotnih hitrosti
iz pospeˇskometra. Za komunikacijo med senzorjem in krmil-
nikom je skrbel protokol I2C. Komunikacija je bila imple-
mentirana s pomoˇcjo ˇze napisanih prosto dostopnih knjiˇznic.
Vsi podatki so bili ustrezno obdelani in s pomoˇcjo Bluetooth
modula HC-05 poslani na raˇcunalnik. Podatki so bili sprva
prikazani s pomoˇcjo programa LabVIEW, kasneje pa je bilo
naˇcrtovano te podatke uporabiti v Kalmanovem filtru pri iz-
raˇcunu viˇsine plovca v vetrovniku. Ta naloga se je izkazalo
za zelo zahtevno, saj se za pravilno delovanje Kalmanovega
filtra priporoˇca zelo natanˇcen model sistema, poleg tega so
podatki iz senzorja MPU-6050 vsebovali preveˇc motenj in
ˇsuma, da bi se iz njih dalo razbrati uporabne meritve, kar bi
StuCoSReC Proceedings of the 2018 5th Student Computer Science Research Conference 9
Ljubljana, Slovenia, 9 October
GP2Y0A21YK0F (10 – 80 cm), ki je bil zaradi prevelikih tna hitrost se je spreminjala nakljuˇcno zaradi trkov v stene
nihanj v izmerjeni razdalji, zamenjan z optiˇcnim senzorjem plastiˇcne cevi, zato ni bilo mogoˇce pridobiti uporabnih po-
STM VL53L0X. Slednji ima popolnoma linearno karakte- datkov, pospeˇskometer pa vraˇca zelo ˇsumne meritve, ki so
ristiko ter viˇsji domet (do 2 m), vendar komunicira preko same po sebi neprimerne za dvojno integracijo. Pri mikro-
protokola I2C. Regulacija se izvaja na raˇcunalniku, ki je s krmilniku (STM32F407VG), ki je skrbel za branje podatkov
krmilnikom povezan preko USB komunikacije. iz senzorja ˇcasa preleta (VL53L0X), je bila prav tako upo-
rabljena komunikacija I2C. Tudi ti podatki so bili poslani
na raˇcunalnik, tokrat preko USB povezave. Na raˇcunalniku
so bili podatki nato uporabljeni v regulaciji. Rezultat regu-
lacije je bil podatek za hitrost vrtenja ventilatorja, ki je bil
nato poslan nazaj na isti mikrokrmilnik. Na mikrokrmilniku
je bil napisan tudi program za generiranje pulzno-ˇsirinskega
signala, ki je bil namenjen krmilniku hitrosti vrtenja (ESC)
motorja, glej sliko 8.
Slika 7: 3D model zgornjega dela preizkuˇsevaliˇsˇca. Slika 8: Shematski prikaz regulacijske proge.
Kot orodje za prejemanje, poˇsiljanje in obdelavo podatkov
4.2 Priprava programske opreme na raˇcunalniku je bil uporabljen program LabVIEW. Za pre-
jemanje in poˇsiljanje podatkov je bilo v njem uporabljeno
Za namene projektne naloge so bili napisani programi, ki so orodje VISA, ki omogoˇca branje in pisanje podatkov iz/na
se izvajali na uporabljenih krmilnikih, kot tudi program, ki raˇcunalniˇski komunikacijski vmesnik. To orodje je bilo upo-
se je izvajal na osebnem raˇcunalniku in je skrbel za regula- rabljeno pri prejemanju podatkov iz Bluetooth povezave, kot
cijo. Za mikrokrmilnik z oznako STM32F103C8T6, ki se je tudi pri prejemanju in poˇsiljanju podatkov preko USB po-
nahajal v plovcu, ter za mikrokrmilnik serije STM32F407VG vezave s krmilnikom STM32F407. Sprva je bil program za
Discovery Board, je bil uporabljen programski jezik C. Pri regulacijo sestavljen s PID regulatorjem, ki ga je enostavno
programiranju je bil v pomoˇc namenski, brezplaˇcni program sestaviti z ustreznim blokom v programu LabVIEW, nato pa
CubeMX, ki omogoˇca laˇzjo konfiguracijo vseh enot mikro- je bil zaradi teˇzav implementacije ter pravilnega delovanja
krmilnika, pripravi vse potrebne knjiˇznice in ustvari grobo na vetrovniku ustvarjen mehki regulator tipa Mamdani.
zasnovo vseh programov [16]. Pisanje programa za oba mi-
krokrmilnika pa je bilo opravljeno v integriranem razvojnem Slika 9: Blok diagram regulacijske zanke v LabVIEW-u.
okolju (IDE) µVision programskega paketa Keil. Oba ome- V programu LabVIEW, glej sliko 9, je bil takˇsen regula-
njena programa sta namenjena delu in programiranju mikro- tor ustvarjen s pomoˇcjo orodja imenovanega Fuzzy System
krmilnikov z Arm Cortex procesorji [2]. Pri programiranju
krmilnikov so bile uporabljene tudi posebne visokonivojske
knjiˇznice, t.i. knjiˇznice HAL (angl. Hardware Abstraction
Layer ), ki so posebej namenjene programiranju krmilnikov
serije STM32. HAL knjiˇznice olajˇsajo in pospeˇsijo programi-
ranje, saj omogoˇcajo delo z laˇzje razumljivimi ukazi [15]. Za
mikrokrmilnik v plovcu (STM32F103C8T6) je bil napisan
program, ki je omogoˇcal branje pospeˇskov in kotnih hitrosti
iz pospeˇskometra. Za komunikacijo med senzorjem in krmil-
nikom je skrbel protokol I2C. Komunikacija je bila imple-
mentirana s pomoˇcjo ˇze napisanih prosto dostopnih knjiˇznic.
Vsi podatki so bili ustrezno obdelani in s pomoˇcjo Bluetooth
modula HC-05 poslani na raˇcunalnik. Podatki so bili sprva
prikazani s pomoˇcjo programa LabVIEW, kasneje pa je bilo
naˇcrtovano te podatke uporabiti v Kalmanovem filtru pri iz-
raˇcunu viˇsine plovca v vetrovniku. Ta naloga se je izkazalo
za zelo zahtevno, saj se za pravilno delovanje Kalmanovega
filtra priporoˇca zelo natanˇcen model sistema, poleg tega so
podatki iz senzorja MPU-6050 vsebovali preveˇc motenj in
ˇsuma, da bi se iz njih dalo razbrati uporabne meritve, kar bi
StuCoSReC Proceedings of the 2018 5th Student Computer Science Research Conference 9
Ljubljana, Slovenia, 9 October