4.3.1. Opis funkcij aplikacije
Ko uporabnik odpre aplikacijo, se najprej pojavi »začetni zaslon«, nato po nekaj sekundah preide na zaslon z navodili. Na tem zaslonu so zapisana navodila za uporabnika, kakšne funkcije ima aplikacija in kako se povezati na Bluetooth. Po uspešni povezavi zaslon preide v glavni zaslon in lahko začnemo uporabljati aplikacijo. Zaradi funkcionalnosti in
20
preglednosti sta začetni zaslon in zaslon z navodili v stoječi (angl. portrait) postavitvi, glavni zaslon pa v ležeči (angl. landscape) orientaciji.
Ko se nam odpre glavni zaslon, aplikacija preveri, ali je naprava povezana z Bluetoothom pametne table. V primeru, da naprava ni pravilno povezana, nam aplikacija preusmeri nazaj na »zaslon z navodili«, kjer še enkrat sledi postopek povezovanja. V primeru uspešne povezave lahko upravljamo vse funkcije pametne table.
Na zaslonu aplikacije, ki je pravilno povezana, se sedaj nahaja aktualna slika table, ki se pridobi ob prehodu na glavni zaslon. Ob vrhu zaslona se nahaja polje z vsemi gumbi, ki imajo sledeče funkcije:
• »pobriši vse« – s tem gumbom uporabnik pošlje ukaz za brisanje celotne table;
• »piši/briši« – gumb spreminja med načinoma piši in briši:
o v načinu »piši« lahko uporabnik riše neomejeno dolge krivulje, vendar je njihovo število omejeno na deset. V primeru, da bi uporabnik želel narisati še eno krivuljo, se pojavi obvestilo, ki ga obvesti, da je dosegel limit;
o v načinu »briši« lahko uporabnik izbriše poljubne dele table, ki jih označi.
Poljubni del označi tako, da položi prst na recimo zgornji levi kot območja, ki ga želi pobrisati, in ga povleče v spodnji desni kot območja ter odmakne prst;
• »nariši sledeče«, »pobriši sledeče« – tej tipki se prikazano besedilo spreminja glede na način, v katerem je aplikacija. V načinu »piši« se ob pritisku gumba na tablo začne zapisovanje narisanega na aplikaciji. V primeru, da v aplikaciji ni elementa za risanje, se pojavi obvestilo. V načinu »briši« pa se pobrišejo označena območja brisanja;
• »stop« – je izklop v sili in je sprožen virtualno.
V času delovanja, torej ko tabla briše ali piše, bodo vsi ostali vnosi razen izklopa v sili, ki deluje kadarkoli, neveljavni.
4.3.2. Shranjevanje in pošiljanje vnosov
Aplikacija beleži vnose uporabnika in jih pošilja Python skripti prek Bluetootha, ki je vezan na serijsko povezavo Raspberry Pi. Ob pritisku gumbov stop in pobriši vse pošlje tekstovni sporočili z ustreznimi ukazi, če pa je pritisnjen gumb nariši sledeče ali pobriši sledeče, aplikacija pošlje ustrezen ukaz in podatke o lokaciji narisanih elementov ali območij za brisanje.
Podatke o lokacijah narisanih elementov dobimo v obliki koordinat X in Y, ki predstavljata relativno oddaljenost od zgornjega levega kota območja za vnose. Ta oddaljenost je številsko usklajena, da ustreza realnim dimenzijam table. Aplikacija si ob pritisku zapomni koordinate začetne točke, nato pa si vsak osveževalni cikel zapomni in shrani trenutne vrednosti, vse
21 dokler ne dvignemo prsta z zaslona. Podatke začasno shranjuje pod spremenljivko
»temp_write« v obliki seznama (list), ki se ob trenutku, ko dvignemo prst, zapišejo v prvi prazni objekt za pošiljanje prek Bluetootha. Prvemu objektu se pred začetkom doda indikacija, ki Python skripti sporoči, da gre za način pisanja.
Začetne koordinate območij za brisanje se pridobijo, ko s prstom pritisnemo na zaslon, ob dvigu prsta pa končne koordinate. Z omenjenih koordinat pridobimo točke pravokotnika, ki predstavlja območje za brisanje. Prav tako se tudi tu sprotne koordinate zapisujejo v začasno spremenljivko in šele ob dvigu prsta shranijo v objekt, za pošiljanje prvemu objektu pa je dodana posebna indikacija.
4.3.3. Pridobivanje slike
Za pošiljanje novih slik aplikaciji je bila potrebna razširitvena skripta, imenovana KIO_Base641, ki sporočilo v obliki bytov spremeni v datoteko in obratno. Pridobivanje slike se začne s poslanim sporočilom Python skripti, ta pa v odgovor pošlje slikovno datoteko, zakodirano kot »Base64«, v obliki bytov. Aplikacija sliko odkodira in shrani na napravo ter jo nastavi za ozadje območja za vnose. Zaradi neznane dolžine paketa, v katerem je slika, je dolžina ob prejemu označena kot neskončna. Da pa aplikacija ve, kdaj zaključiti prenos, se 0,5 sekunde po zaključku prenosa slike pošlje znak “*”, ki je nastavljen kot ločilni byte
Python skripta je napisana z namenom povezovanja uporabniške aplikacije in krmilnika PlanetCNC, ki upravlja mehanizem pametne table. Za svoje delovanje skripta uporablja sledeče knjižnice, ki omogočajo:
• »os« – odpiranje in urejanje datotek,
• »sys« – dostop do USB-portov,
• »time« – ustvarjanje časovnih zamikov,
• »ctypes« – uporaba »tng« knjižnice,
• »serial« – vzpostavitev serijske komunikacije,
• »picamera« – uporaba modula kamere,
• »base64« – pretvarjanje datotek,
• »tng« – upravljanje API-ja PlanetCNC-ja.
22
V uvodnem delu skripta po uvozu vseh naštetih knjižnic nastavi serijsko komunikacijo s hitrostjo prenosa podatkov (baud rate) 115.200 bitov na sekundo na serijskem portu ttys0.
Kameri doda ime »camera« in nastavi njeno resolucijo na 430 x 140 pikslov, definira funkcijo »runPlanetCNC«, ki poskusi zagnati program PlanetCNC in preveri, ali API deluje.
4.4.2. Glavni del
Pred glavnim delom skripte se izvede klic omenjene funkcije, nato pa skripta skoči v neskončno zanko, kjer preverja dosegljivost podatkov prek serijske povezave. Prejete podatke shrani, preveri prvi znak v nizu in izvede ustrezni if stavek. Izbira med brisanjem cele table, ustavitvijo v sili, risanjem, brisanjem dela table in pošiljanjem slike.
Pri izbiri brisanja celotne table odpre datoteko z ustrezno kodo G in jo zažene. Skripta gre po vklopu kode G v zanko, kjer ostane do zaključka njenega izvajanja.
Prisilna zaustavitev mehanizma table se zgodi, kadar ob izbiri if stavka sledi ustavitev v sili.
V spodaj prikazanem delu kode skripta preveri, da podatki ustrezajo izbiri pisanja ali brisanja, ter podatke pretvori v obliko za uporabo v kodi G. Nato odpre prazno datoteko v načinu za pisanje in vanjo zapiše ustrezne ukaze ter datoteko po koncu zapre. Sedaj jo odpre in zažene v programu PlanetCNC ter tako kot pri brisanju celotne table v zanki počaka do zaključka izvajanja.
V delu if stavka za pošiljanje slike kamera najprej zajame in shrani sliko, jo odpre za branje v obliki bytov in jo zašifrira v obliko »base64«, ki je primerna za pošiljanje prek serijske povezave. Sliko pošlje in doda še znak za zaključek prenosa.
23
4.4.3. Pretvarjanje podatkov v kodo G
Aplikacija pošilja podatke o narisanih elementih prek povezave Bluetooth v obliki besedila (string), ob prejemu podatkov na serijsko povezavo Raspberry Pi prebere te podatke in jih shrani v spremenljivko z ukazom rawdata = serial.readline(). Ta ukaz prebrane podatke nezaželeno pretvori v byte, zato jih je treba s funkcijo rawdata.decode() pretvoriti nazaj v besedilo, ki je primernejše za obdelavo. S pomočjo ukazov replace in split odstranimo nepotrebne znake ter ustrezno razčlenimo uporabne podatke in tako dobimo ustrezno število skupin podatkov. To število je enako številu narisanih krivulj. V tej skupini se nahajajo pari številskih vrednosti, ki predstavljajo koordinate točk na krivulji. Pare v skupini razdremo na posamezne elemente in jih lahko uporabimo v kodi G. Opisano se zgodi v spodaj prikazanem delu kode.
Zaradi unikatnosti predstavljenega izdelka je težko najti izdelke, ki bi bili primerljivi. Večina ostalih mehanizmov ima le funkcijo brisanja table ali pa samo pisanja. Funkcija brisanja je povečini omejena le na brisanje celotne table in ne omogoča izbire poljubnega dela, ki ga želimo izbrisati. Brisanje poljubnega dela table je sicer uporabno, vendar je na mobilnem zaslonu težko natančno določiti točno določeno območje. Čas brisanja je primerljiv brisanju table z roko, žal pa je počasnejši od ostalih avtomatskih brisalcev. Kakovost brisanja je ob redni menjavi krpe za brisanje dobra, saj pobriše vse sveže zapise in večino zasušenih.
Funkcija pisanja/risanja omogoča risanje z eno barvo in do deset krivulj, kar omogoča zapis med pet do deset tiskanih črk ali pa pet do deset besed, napisanih s pisanimi črkami, prav tako pa velikost mobilnega zaslona otežuje pisanje stavkov in natančno risanje.
Na aplikaciji se ob zagonu pojavi zaslon z navodili, ki so kratka in lahko zapomnljiva, prav tako pa so dostopna tudi med uporabo aplikacije. Aplikacija je ob le nekaj gumbih z dostopnimi navodili enostavna za uporabo, vendar, kot omenjeno, velikost zaslona otežuje njeno uporabnost. Dostopna je le za uporabnike mobilnih naprav z operacijskim sistemom Android.
24
Težavo z velikostjo mobilnega zaslona se lahko reši z uporabo tablice, še vedno pa ostajata problema omejenega risanja krivulj in upravljanje table z mobilno napravo z operacijskim sistemom IOS ali Windows, ki bi zahtevala izdelavo aplikacije v drugem programskem okolju.
Kljub številnim dobrim lastnostim avtomatskega brisalca table obstaja še precej možnih izboljšav, ki bi jih bilo mogoče implementirati. Vseeno sem z izdelkom zadovoljen, saj menim, da lahko v veliki meri pripomore k izboljšanju izvajanja pouka.
25
5. Zaključek
Namen diplomskega dela je bil izdelati interaktivno pametno tablo, ki izvajalcem učnih vsebin omogoča enostavno uporabo, hkrati pa je finančno dostopna.
Pri izdelavi mehanizma smo ugotovili, da večji del stroškov predstavljata linearna in pogonska tehnika, montaža pa je zaradi dolžine zahtevna. Skoncentrirana masa na vrhu mehanizma je pripomogla k zmanjšanju nepravilnosti, vendar so te zaradi velikega upora gobe za brisanje še vedno prisotne in se večajo z bližanjem spodnjega roba table. Za odpravo takih napak bi bila potrebna pritrditev mehanizma še na spodnjem delu, vendar bi ta zahtevala povečanje stroškov in veliko spremembo v obliki in strukturi mehanizma.
Za krmiljenje računalniško vodenih strojev sta programska in strojna oprema PlanetCNC kljub nizki ceni odlični in enostavni za uporabo, hkrati pa ponujata ogromno prostora za kostumiziranje in nadziranje iz skript, napisanih v programskih jezikih.
Ugotovimo tudi, da je Raspberry Pi kos zadanim nalogam in brez težav poganja Python skripto in programsko opremo PlanetCNC. Edina opažena slabost je vgrajeni Bluetooth, ki ne omogoča preprostega povezovanja z napravami in branja podatkov.
Programsko okolje MIT App Inventor je primeren in enostaven program za hitro izdelavo aplikacij. Poleg velike izbire programskih blokov, iz katerih je mogoče sestaviti raznolike aplikacije, ponuja možnosti preprostega spreminjanja videza. Zaradi specifike aplikacije, ki zahteva pošiljanje velike količine podatkov v obliki, primerni za predelavo v kodo G, je bilo programiranje zahtevno in predvsem zamudno, saj programsko okolje ne ponuja klica funkcij, ki bi zelo olajšale in skrajšale urejanje podatkov.
26
6. Viri
[1] “Šolska tabla [Online].” Dosegljivo: http://bor.czp- vecer.si/VECER2000_XP/2006/09/23/2006-09-23_STR%2044-44_MX-01_IZD-01-02-03-04-05-06_PAG-SOBOTNA-PR.PDF. [dostopano: 02.08.2021].
[2] M. Kramar, “Pouk,” Educa 2009.
[3] upklyak, “freepik [Online]. ” Dosegljivo: https://www.freepik.com/free-vector/green-
chalkboard-classroom-with-white-wall-wooden-floor_12900224.htm#page=4&query=blackboard%20black%20board&position=42.
[dostopano: 02.08.2021].
[4] macrovector “freepik [Online]. ” Dosegljivo: https://www.freepik.com/free-vector/blank-
white-board-with-colored-markers-billboard-business-education-empty-space_10601965.htm#&position=1. [dostopano: 02.08.2021].
[5] nvidiaa ,”IMGBIN [Online]. ” Dosegljivo: https://imgbin.com/png/pT1P9BhH/laptop-interactive-whiteboard-smart-board-dry-erase-boards-projector-png#. [dostopano:
02.08.2021].
[6] U. Bučar, Magistersko delo: Uporaba interaktivne table pri pouku geometrije v prvem razredu osnovne šole. Ljubljana: Univerza v Ljubljani, Pedagoška fakulteta, 2011.
[7] K. Pirih, Diplomsko delo: Konkretna ponazorila pri matematiki na razredni stopnji.
Ljubljana: Univerza v Ljubljani, Pedagoška fakulteta, 2003.
[8] M. Blažič, M. Ivanuš Grmek, M. Kramar in F. Strmičnik, Didaktika. Novo mesto:
Visokošolsko središče, Inštitut za raziskovalno in razvojno delo, 2003.
[9] M. Kramar, “Didaktika pouka [Online].” Dosegljivo:
https://studentski.net/gradivo/umb_fif_pe1_osd_sno_studijsko_gradivo_01. [dostopano:
02.08.2021].
[10] M. Žužel, “Uporaba in učinkovitost medijev pri pouku,” v Zbornik Mediji v izobraževanju (M Blažič),Visokošolsko središče Novo mesto 2004, str. 559 – 564.
[11] JANEZ, “Tablica tako in drugače [Online].” doseglivo:
27 [13] The Editorial Team, “The History of the Classroom Blackboard [Online].” Dosegljivo:
https://resilienteducator.com/classroom-resources/the-history-of-the-classroom-blackboard/. [Dostopano: 7.2.2022].
[14] s. Chiazzari, Barve. Ljubljana: Slovenska knjiga, 2000.
[15] The WORKPLACE Depot. (2014) “Whiteboards' History, Materials and Buying Tips [Online].” Dosegljivo: https://www.theworkplacedepot.co.uk/news/whiteboards-history/.
[Dostopano: 7.2.2022].
[16] TRANSCONTINENTAL. (2019). “The Evolution of Whiteboards [Online].”
Dosegljivo: https://www.transcontinentaladvancedcoatings.com/the-evolution-of-whiteboards/. [Dostopano: 7.2.2022].
[17] M. Zadravec. Diplomsko delo: Uporaba interaktivne table pri pouku v prvem in drugem triletju osnovne šole. Maribor: Univerza v Mariboru, Pedagoška fakulteta, 2011.
[18] D. Glover, D. Miller, D. Averis in V. Door, The interactive whiteboard: a literature survey. Technology, Pedagogy and Education, 2005, str. 155-170.
[19] T. Ušeničnik, Diplomsko delo: Vpliv interaktivnih table na poučevanje in učenje educational technology, št. 1, str. 543-544, 2007.
[22] A. M. Sultan, “ Teaching: An Evidence Based Study,” Journal of the College of Physicians and Surgeons Pakistan, vol. 23, št. 1, str. 47-50, 2013.
[23] E. M. Richard, (2003). The promise of multimedia learning: using the same instructional design methods across different media [Online]. (13)2, str. 125-139 Dostopno: www.elsevier.com/locate/learning and structure,. [dostopano: 02.08.2021].
[24] S. McCrummen, (2010). Some educators question if whiteboards, other high-tech tools raise achievement[Online]. Dostopno: https://www.washingtonpost.com/wp-dyn/content/article/2010/06/10/AR2010061005522.html. [Dostopano: 7.2.2022].
[25] C. N. Giannikas, (2016). “The use of interactive whiteboards: enhancing the nature of teaching young language learners.” Call communities and culture short papers from Euro call [Online]. str.160-166. Dosegljivo: https://www.Researchpublishing.net. [dostopano:
02.08.2021].
28
[26] M. Stefik, G. Foster, D. G. Bobrow, K. Kahn, S. Lanning in L. Suchman, “Beyond the chalkboard,” Communications of the ACM, vol. 30, št. 1, str. 32-47, 1987.
[27] M. O’Hare, “Talk and chalk: The blackboard as an intellectual tool,” Journal of Policy Analysis and Management, vol. 12, št. 1,str. 238-246, 1993.
[28] E. D. Mynatt, T. Igarashi, W. K. Edwards in A. La Marca, “Flatland: New dimensions in office whiteboard,” In Proceedings of CHI’99, str. 346-353, 1999.
[29] C. Greiffenhagen, (2000). “From traditional blackboards to interactive whiteboards: a pilot study to inform system design [Online].” Loughborough University. Conference contribution. Dostopno: https://hdl.handle.net/2134/14309. [dostopano: 02.08.2021].
[30] M. K. Kennedy, (2010). “Whiteboards' Impact on Teaching Seen as Uneven [Online].”
EducationWeek, Dostopno: https://www.edweek.org/teaching-learning/whiteboards-impact-on-teaching-seen-as-uneven/2010/01. [Dostopano: 7.2.2022].
[31] R. Balažič, Računalniško podprta proizvodnja, Murska Sobota: Podjetje za promocijo kulture Franc-Franc d.o.o., 2012.
[32] D. Miljavec, in P. Jereb, Električni stroji, temeljna znanja. 1. izdaja. Ljubljana:
samozaložba, 2005.
[33] PlanetCNC, “Hardware [Online],” Dostopno: Hardware - PlanetCNC (planet-cnc.com).
[Dostopano: 7.2.2022].
[34] PlanetCNC, “Software [Online],” Dostopno: Software - PlanetCNC (planet-cnc.com).
[Dostopano: 7.2.2022].
[35] Raspberry Pi, “Raspberry Pi 3 Model B+ [Online],” Dostopno: Buy a Raspberry Pi 3 Model B+ – Raspberry Pi. [Dostopano: 7.2.2022].
[36] D. Friedman, M. Wand in C. T. Haynes, Essentials of Programming Languages, University of Minnesota: MIT Press, 1992.
[37] R. D. Tennent, Semantics of Programming Languages, US: Prentice Hall, 1991
[38] MIT App inventor, “About Us [Online],” Dostopno: https://appinventor.mit.edu/about-us. [Dostopano: 7.2.2022].
[39] W3Schools, “Python Tutorial [Online],” Dostopno:
https://www.w3schools.com/python/default.asp. [Dostopano: 7.2.2022].
[40] STŠ koper, “Drsna Vodila [Online],” Dostopno:
http://www2.sts.si/arhiv/tehno/projekt4/drsna_vodila.htm [Dostopano: 7.2.2022].