Osvetlitve z LED-icami se danes uporabljajo praktično povsod. Predvsem v zimskem času, ko so noči dolge in imamo prižgane luči dalj časa, je to idealna zamenjava za klasične luči, saj se to pozna pri porabi električne energije. S pojavom LED svetil se je poraba električne energije zmanjšala praktično na vseh področjih našega življenja, s pametnimi telefoni pa uporaba in nadzor naprav poenostavila. Če želimo posebno razsvetljavo, imamo na tržišču neskončno paleto luči v raznovrstnih izvedbah in oblikah. V tem prispevku vam želim predstaviti lučko, ki je z nekega stališča posebna, saj jo krmilimo preko Android aplikacije GUI-O.
Avtor: Matjaž Skubic
email: gammda@gmail.com
2021/296
V trgovinah in na spletu boste našli na milijone verzij LED luči različnih cenovnih kategorij. Mi pa smo elektroniki in bomo to naredili sami. Prednost tega je, da si bomo lučko lahko izdelali po lastnih željah in potrebah. Z malo domišljije lahko poleg klasične lučke naredimo modni dodatek pohištvu, dodatek napravam, kot dekoracijo v našem stanovanju,…
Posebnost naše lučke je ta, da je krmiljena preko Android aplikacije GUI-O na pametnem telefonu preko Bluetooth povezave. To pomeni, da je njen domet cca. 20 m. Preko te razdalje, bo lučka ostala v trenutni nastavitvi in jo bo možno pri ponovni vzpostavitvi povezave ponovno krmiliti. Ima osnovni dve funkciji: lahko jo vključimo, izključimo in nastavimo njeno svetilnost.
Ta vsebina je samo za naročnike
Koncept lučke je zasnovan z mikrokontrolerjem Atmel MEGA 328PU. Sestavljena je iz LED-ic, za kar lahko uporabimo LED trakove, LED luč, ali navadno LED-ico. Vezje je zelo enostavno z nekaj dodatki, ki jih bomo lahko uporabili v nadaljevanju, ko bomo želeli vključiti še kakšno novo funkcionalnost.
Za krmiljenje LED lučke je uporabljen izhod PB1 (OC1A), ki je krmiljen z MOSFET-om. Ta izhod omogoča izhod PWM za nastavitev svetilnosti.
Sistem napajanja je izveden preko micro USB konektorja (5V) ali preko zunanjega DC 12V napajalnika. USB konektor je v tem primeru namenjen zgolj napajanju. Elektroniko povežemo s pametnim telefonom preko Bluetooth povezave. Za to uporabimo modul HC06 ali SPP-C. V našem primeru smo uporabili znani HC06. Deluje pa tudi z Bluetooth module drugih proizvajalcev, tudi Bluetooth BLE. V kolikor bi uporabili serijsko USB pretvorbo kot npr. FT232RL, CP 2102, CH340, … , bi morali telefonski aparat povezati preko USB serijskega adapterja. Ta povezava je v nekaterih primerih lahko celo bolj praktična, ker preko USB konektorja istočasno lahko polnimo tudi nekatere telefone ali tablice.
Hardver sem sestavil po svojem trenutnem navdihu, kar pa ne pomeni, da ne morete uporabiti kakšno svoje že izdelano vezje, ki si ga predelate ali preprosto posežete po že izdelanih rešitvah, kot je npr. Arduino (Arduino UNO ali Arduino Nano).
Tiskano vezje je dvostransko in zelo majhno. Vsi elementi so SMD. Zaradi majhnosti elektronika niti ne potrebuje posebnega ohišja. Lahko jo zaščitimo s termoskrčljivo bužirko ustreznih dimenzij. Lučka se priključi na 5V napajalno napetost. To je lahko napajalnik, polnilnik za telefon, ali kar enostavno USB priključek računalnika. Tiskano vezje je narejeno tako, da se na njem nahaja micro USB konektor, je pa možno napajalne priključke prispajkati direktno na TIV (Con3). Uporabljen je Atmelov ATMEGA328P, bi pa seveda tukaj lahko uporabili manjšega brata ATMEGA8, ker ne zasedamo celotnega Flash pomnilnika. Na tiskanini je konektor za LCD prikazovalnik, predviden je SSD1306 32×128 s priklopom I2C, ki sicer v tej izvedbi niti ni potreben. Če boste uporabili ta prikazovalnik, se vam lahko zgodi, da vam bo pri ATMEGA8 zmanjkalo Flash pomnilnika. Znotraj tega vezja je možnih še nekaj kombinacij, ki jih nastavimo preko SMD jumperjev. S tem sem naredil nekaj dodatnih možnosti za nadaljnji razvoj. Vse je razvidno iz sheme.
Na spodnji strani tiskanine je predviden Bluetooth modul HC-06 ali SPP-C. Lahko je tudi kateri drugi, ki je PIN kompatibilen. Preizkusil sem tudi SPP-C. Opozoriti moram, da so se slednji pri meni izkazali za manj zanesljive, ker so se pri večjih Baudrate-ih izgubljali znaki. To se dogaja tudi z nekaterimi Bluetooth moduli, zlasti BLE (Bluetooth Low Energy). Uporabnost teh seže maksimalno do hitrosti 19200bps. Pri testiranjih se je najbolj obnesel klasični modul HC-06, ki je dobro delal tudi pri hitrostih 115200bps.
Program za mikrokontroler in za Android aplikacijo GUI-O je napisan z Bascom-AVR. Pravzaprav to niti ni toliko pomembno. Lahko ga napišemo z Arduino, C++, ali s katerim drugim orodjem. Pri GUI-O aplikaciji je namreč zanimivo to, da na strani telefona ne potrebujemo narediti ničesar – ni nam potrebno programirati Android aplikacije posebej. Ja, prav ste prebrali. Vse aktivnosti so narejene samo na strani mikrokontrolerja. To pa ne pomeni, da aplikacija deluje samo v povezavi z mikrokontrolerjem. Uporabna je prav tako za krmiljenje in kontrolo PLC-jev, Raspberry PI, Arduino, embedded PC, TV box, PC in še bi se kaj našlo. Torej povsod tam, kjer razpolagamo s serijsko komunikacijo in zgoraj opisanimi vmesniki. Na strani pametnega telefona je potrebno le instalirati aplikacijo GUI-O www.gui-o.com. Njeno univerzalnost uporabimo na začetku pri pripravi projekta, kasneje pa jo porabljajo vsi uporabniki te naprave. Enostavno povedano, telefon postane veliko več kot LCD touch screen za našo elektroniko.
Naj bo jasno, da aplikacija GUI-O ni narejena samo za krmiljenje naše lučke, ampak z njo lahko krmilimo ali kontroliramo katero koli drugo napravo. Uporaba ni omejena samo na eno napravo. Povežemo se lahko na več različnih naprav. Seveda pa GUI-O deluje tudi kot IoT, ampak to pustimo za naslednjič.
Kako uporabljamo GUI-O?
GUI-O aplikacijo instaliramo na naš pametni telefon za verzije Android 5.2 in več. Dostopna je preko Google store https://play.google.com/store/apps/details?id=com.guio.guioapp , na uradni internetni strani www.gui-o.com pa lahko najdete še kaj več o tem produktu – https://www.gui-o.com/assets/gui-o_developer_manual.pdf
Gre za zelo dober primer rešitve povezovanja elektronskih naprav z Android napravami. Uporablja svoj enostaven protokol za delovanje v obliki tekstovnih ukazov. Posamezni ukaz ponazarja objekt, ki se izriše na zaslonu telefona, oz. se z ukazom aktivira naprava / senzor v telefonu (accelerometer, compass, lightsensor, tilt sensor, rtc-ura, GPS, …)
Celoten ukaz za posamezen objekt se izvede samo enkrat, na začetku ob inicializaciji, potem pa lahko po potrebi poljubno spreminjamo posamezne atribute objektov neodvisno, enega za drugim ali več hkrati.
Če na kratko povzamem: delo s prikazom je podobno pisanju na alfanumerični zaslon 16×2 z veliko več možnostmi.
Kako to praktično izvedemo?
S startom aplikacije se na telefonu pokaže slika s stikalom za vklop, Slika 3.
Pred uporabo moramo opraviti še nekaj osnovnih nastavitev in se povezati z našo napravo. Izberemo menu nastavitve. To izvedemo lahko na dva načina in sicer:
– Podrsamo iz leve proti desni na ekranu telefona
– Izberemo meni
Prikaz menijev je izveden pregledno in sicer:
– Settings
– Connections
– Quick pair
– General settings
– Pro unlocked
– Info
– Share
Za povezovanje z našo lučko bomo uporabili menu Settings > Connections > Default connection >Bluetooth and Iot >
Available devices, kjer startamo »Search« in izberemo naš Bluetooth modul, ki mora biti priključen na napajalno nepetost (3,3V). Potrebno je vnesti še PIN številko. V večini primerov je prednastavljen PIN 1234. Vsi moduli Bluetooth, ki sem jih uporabljal so bili privzeto nastavljeni na 9600bps. V kolikor želite spremeniti te nastavitve, je potrebno uporabiti AT ukaze za module in nastaviti enak baudrate v Bascom programu. Te nastavitve najdete v datasheetu, primer pa je zakomentiran tudi v Bascom kodi.
https://www.olimex.com/Products/Components/RF/BLUETOOTH-SERIAL-HC-06/resources/hc06.pdf
https://roboticafacil.es/datasheets/SPP.pdf
Ko je naprava povezana se vrnemo na osnovno stran. Gumb na osnovni maski programa ima funkcijo štarta inicializacije, kar pomeni, da telefon pošlje napravi inicializacijski ukaz »@init«. To je tudi ukaz s katerim »zbudimo« naš mikrokontroler. Pravzaprav se vsi ukazi s telefona proti mikrokontrolerju začnejo z ASCII znakom »@«, prav tako posamezni ukazi iz kontrolerja na telefon, razen inicializacijski del, ki se začne z znakom »|«- pipe. Pri pritisku na gumb start, telefon proti naši napravi pošlje:
@init
To pomeni vklop naše aplikacije. Seveda moramo na strani našega mikrokontrolerja ta ukaz »ujeti« in s tem izvesti inicializacijski postopek. Kako to izvedemo je navedeno v nadaljevanju.
Če želimo naše vezje upravljati na različnih Android napravah (pametni telefon, tablica, TV Box, PC,…) je priporočljivo, da v aplikaciji GUI-O na telefonu preberemo ločljivost ekrana, ki jo najdemo v meniju:
Setup > Info > Developer mode > Display properties.
Tukaj lahko preberemo podatek ASR: xxxxx, ki pomeni razmerje stranic X proti Y. Na mojem telefonu se izpiše ASR: 0.4497. Ta podatek nam pride prav le, če bomo aplikacijo uporabljali tudi na drugih telefonih/ napravah različnih resolucij (dpi), da se bo slika povsod videla v pravilnem sorazmerju.
To uporabimo samo enkrat, potem tega praktično ne potrebujemo več do trenutka, ko bomo zamenjali telefon, na katerem smo razvili našo aplikacijo. Mogoče se tole sliši prekomplicirano, ampak, ko boste preizkusili, boste videli, da to le ni neka raketna znanost.
Parameter vključimo v začetni del inicializacije, kjer poleg barve ozadja (BGC) nastavimo razmerje stranic ekrana (ASR):
Print “@guis BGC:#000000 ASR:0.449671”
Ta del na štartu niti ni potreben, v kolikor boste do naprave dostopali samo s pametnim telefonom, na katerem ste razvijali aplikacijo, je pa dobro, da ga začnete uporabljati, ker vam bo to prišlo prav pri večjih projektih.
Vrnimo se sedaj na naš mikrokontroler – lučko in program napisan v Bascom-AVR.
Mikrokontroler komunicira s telefonom preko serijske komunikacije RS232 TTL -pin Rx in Tx.
Objekti se na zaslon pozicionirajo po X in Y osi, kot je prikazano na Sliki 5. To je tudi obvezni podatek vsakega objekta.
Programiranje aplikacije in prikaz na zaslonu v Bascomu izvedemo na sledeči način:
IfIscharwaiting()= 1 Then
DisableTimer0
Gosub Read_data
EnableTimer0
EndIf
Ischarwaiting sprejme znake iz serijskega porta in jih shrani v Buffer.
Ischarwaiting() ukaz lahko izvedemo v glavni zanki. Zaradi boljšega odziva sem jo uporabil v Timer0 interrupt rutini.
Ko na serijski port prispe znak @, preberemo še ostali del sporočila.
Read_data:
A =Inkey()
If A =”@”ThenInput Rdata Noecho’ check “@”
.
.
.
Init =Mid(rdata , 1 , 4)
If Init =”init”Then
Gosub Init_gui
EndIf
Rdata =””
Return
Torej pri pritisnjeni tipki (sprejeli smo @init), štartamo podprogram Init_gui, s katerim se izvede celotna inicializacija in se s tem narišejo vsi objekti na zaslon telefona ali tablice. Proceduro Init_gui sem pognal tudi že pred glavno zanko. To pomeni, da se bo pri povezani napravi inicializacija izvedla tudi brez pritiska na startni gumb.
Posvetimo se sedaj bolj podrobno »Init_gui« inicializacijskem delu tega programa. S tem delom programa »narišemo« in pobarvamo vse objekte na zaslonu telefona ali tablice.
Vsak ukaz parametra je ločen s presledkom ali vejico, vsi teksti pa se pišejo med dvojne narekovaje. V Bascom-u to predstavlja manjši problem, ker moramo dodati narekovaje v ASCII vrednosti, primer CHR(34).
Vsi atributi so navedeni z VELIKIMI tiskanimi črkami.
Na začetku je dobro pobrisati ekran @cls in vse hardware-ske komponente @clh.
Ukaza @sls500 na začetku in @hls250 na koncu pa pomenita, da se izris objektov zakasni, da se vsi objekti pojavijo na ekranu hkrati. V nasprotnem primeru bo pri večjem številu objektov vidno, kako se vsak objekt posebej pojavlja na ekranu. Proceduro lahko izvedete tudi brez tega dela.
‘–GUI-O Init—————————————————————–
Init_gui:
DisableTimer0
Print”@sls 500″
Print”@cls”‘ brisem display
Print”@clh”
Print”@guis BGC:#FFFFFF ASR:0.449671″
Print”|IM UID:im1 X:20 Y:51 W:100 H:90 ROT:0 SHE:0 IP:”;Chr(34);”LightC1.png”;Chr(34)
Print”|LB UID:lb1 X:68 Y:4 ROT:0 SHE:1 FGC:#1C1C95 FSZ:4 TXT:”;Chr(34);”LIGHT”;Chr(34)’Labela
Print”|LB UID:lb2 X:75 Y:8 ROT:0 SHE:1 FGC:#1C1C95 FSZ:4 TXT:”;Chr(34);”Control”;Chr(34)’Labela
Print”|CB UID:cb1 X:53 Y:58 W:55 ROT:0 HAH:8 HAW:8 SHE:1 BGC:#CACFD2 FGC:#DC7633 VAL:0 RCA:1 LVAL:0 HVAL:100 STA:-245 ENA:65 BTH:8 SHN:0 NC:#A0A0A4 NT:0.2 CE:1 SHT:0 XTC:10 FSZ:0.1 UD:1″‘Circular BAR
Print”|TG UID:tg1 X:53 Y:48 W:20 H:3.5 VIS:1 HAH:8 HAW:8 ROT:270 SHE:1 RAD:2 BGC:#CACFD2 FGC:#DC7633 EN:0″‘Togle switch
Print”|LB UID:lb7 X:50 Y:98 SHE:1 ROT:0 SHE:1 FGC:#1C1C95 FSZ:2 URL:1 TXT:”;Chr(34);”https://www.gui-o.com/”;Chr(34)
Print”|BT UID:bt2 X:30 Y:16 W:15 H:5 VIS:1 ROT:0 RAD:1 SHE:1 BGC:#00A0A0A4 FGC:#00FFFF00 BTH:0.2 SVAL:”;Chr(34);”R”;Chr(34)’ Button
Print”@tg1 EN:0″
Pwm1a= 0
Print”@hls 250″
EnableTimer0
Return
‘——————————————–
Znotraj inicializacijskega dela nisem navedel samo objektov, ampak sem postavil PWM1A na 0, to pomeni, da je lučka ob štartu ugasnjena.
Zgornji ukazi »narišejo« objekte na zaslon telefona:
Vrstni red ukazov je pomemben, ker s tem dosežemo prekrivanje objektov enega čez drugega. Objektom lahko nastavljamo tudi transparentnost.
Tekstovni del ukazov zgleda na prvi pogled sicer kompliciran, toda takoj bomo videli, da je sistem zelo enostaven. Pa pojdimo lepo po vrsti.
Na zaslon telefona lahko zrišemo različne objekte: TG-toggle switch, SL- slider, CH-Graph, SI-status indicator (LED), BT- Button, TI – Text input, CB – Circular bar, IM – Image, …
Za naš primer smo uporabili naslednje objekte:
LB – labela
Print”|LB UID:lb1 X:68 Y:4 ROT:0 SHE:1 FGC:#1C1C95 FSZ:4 TXT:”;Chr(34);”LIGHT”;Chr(34)’Labela
Print”|LB UID:lb2 X:75 Y:8 ROT:0 SHE:1 FGC:#1C1C95 FSZ:4 TXT:”;Chr(34);”Control”;Chr(34)’Labela
|LBpomeni, da bo aplikacija izvedla izpis labele. Vsak objekt ima svoje ime in se začne z znakom | – pipe – glej Tabelo 1.
UID:lb1je indentifikacijski primarni ključ labele (v našem primeru jih imamo več). Ime si lahko izberemo, najbolje pa je, da izberemo kar ime objekta in zaporedno številko, ali kakšno drugo smiselno ime. Imena se ne smejo ponavljati.
X: pozicija sredine teksta X os, velja za vse objekte. Privzeta je sredina objekta, razen za izris črt, kjer je pozicija začetek linije, poravnavo nastavimo z (ALP:1)
Y: pozicija sredine teksta Y os.
Podatka X in Y sta navedena v %, vrednosti od 0-100
VIS: – ali se tekst oz. objekt vidi ali ne – je skrit
ROT:- Pod kakšnim kotom bo prikazan tekst- velja tudi za vse ostale objekte. Posamezen objekt lahko poljubno vrtimo po zaslonu.
FGC:- barvo teksta določimo s pomočjo definicije barv. Kot npr. https://www.color-hex.com/
SHE:- efekt sence
FZS: – velikost črk
TXT:”Tekst” -Vpišemo tekst, lahko je tudi vrednost spremenljivke
URL: – Dodamo tekstu – Labeli HTTP pridih. To pomeni, da se z dotikom tega teksta štarta Internet browser in nas postavi na navedeno stran.
ALP:0 – tekst je poravnan na sredino
Parametrov je še veliko več, opisani so v navodilih GUI-O aplikacije.
IM – image
Objekt, kjer določimo katero sliko (*.jpg, *.bmp *.png) bomo prikazali na zaslonu. Slike ne hrani mikrokontroler, ampak jo shranimo na telefon npr. V direktorij Pictures oz. Androiddatacom.guio.guioappfilesPictures
V tem primeru smo uporabili tulipanček »LightC.png«, ki se lepo poda naši lučki.
Print”|IM UID:im1 X:20 Y:51 W:100 H:90 ROT:0 SHE:0 IP:”;Chr(34);”LightC.png”;Chr(34)
Tukaj sta dodana še parametra W: in H:, kar v originalu pomenita velikost slike na zaslonu širina / višina.
CB – circular bar
Objekt je predvidoma namenjen prikazu določenih analognih vrednostih, kot nekakšen inštrument. Mi ga bomo uporabili kot drsnik, s katerim bomo nastavljali svetilnost. Obrnjen je navzdol, kar na nek način skupaj s »Toggle switch-em« ponazarja znak za vklop in izklop naprave: Zasuk objekta je izveden s parametri SRA:- start angle in ENA: end angle (STA:-245 ENA:65) Podatek je v stopinjah (od 0 do +/-360).
Print”|CB UID:cb1 X:53 Y:58 W:55 ROT:0 HAH:8 HAW:8 SHE:1 BGC:#CACFD2 FGC:#DC7633 VAL:0 RCA:1 LVAL:0 HVAL:100 STA:-245 ENA:65 BTH:8 SHN:0 NC:#A0A0A4 NT:0.2 CE:1 SHT:0 XTC:10 FSZ:0.1 UD:1″‘Circular BAR
Ta objekt ima veliko možnosti. Lahko mu narišemo kazalec. Za to uporabimo parametre:
SHN: kazalec je viden ali skrit
NC: barva kazalca
NT: debelina kazalca
Lahko mu narišemo tudi skalo.
Ko podrsamo po CB-ju, se nam izriše bargraf, telefon pa mikrokontrolerju pošlje določeno vrednost, ki smo jo nastavili v inicializacijskem delu (LVAL:0 HVAL:100). Telefon nam vrne string npr. @cb1 57 pri čemer je @ prvi znak stringa, cb1 identifikacijski znak, številka 57 pa trenutna vrednost /pozicija bar grafa na tem objektu.
V Bascomu takšno branje sporočila najenostavneje izvedemo z ukazom SPLIT, ki je v standardnem naboru Bascom knjižnice. Za naprednejšo, predvsem enostavnejšo uporabo pa lahko posežemo po drugih načinih »parsanja« s katerim lahko izločimo posamezni tekst v znakovnem nizu. Zanimiva je funkcija Gettoken, ki opravi ravno to.
Prebrano vrednost pretvorimo v število in jo pomnožimo z 10, da lahko potem direktno krmilimo PWM izhod, ki ga določimo med 0 in 1000.
Zaradi boljšega odziva sem tukaj uporabil malo matematike, lahko pa branje izvedete tudi direktno- brez množenja.
If Znak =”cb1″Then’ circular bar
Sep =&H20
Pozicija = 2
Sl1 = Gettoken(rdata , Sep , Pozicija)
Sl1v =Val(sl1)
If Sl1v > Sl1u Then
For Ii = Sl1u To Sl1v Step 1
Slii = Ii * 10
Pwm1a= Slii
‘Waitms 10
Next
Sl1u = Sl1v
Writeeeprom Sl1v ,&H40
EndIf
If Sl1v < Sl1u Then
For Ii = Sl1u To Sl1v Step-1
Slii = Ii * 10
Pwm1a= Slii
‘Waitms 10
Next
Sl1u = Sl1v
Writeeeprom Sl1v ,&H40
EndIf
If Sl1v < 2 Then
Print”@tg1 EN:0″
EndIf
If Sl1v > 2 Then
Print”@tg1 EN:1″
EndIf
EndIf
Tukaj poleg nastavitve svetilnosti avtomatsko vključimo stikalo, v kolikor je svetilnost večja od 2 (Print”@tg1 EN:1″)
Torej, ko s prstom podrsamo po objektu, se avtomatsko vključi tudi stikalo.
TG- toggle switch
To je stikalo, ki nam vrne vrednost @tg1 1, ali @tg1 0. Št. 1 ali 0 pomeni, ali je stikalo vključeno ali izključeno. Pri inicializaciji tega objekta se prav tako lahko igramo z velikostjo, barvami obliko, orientacijo, senčenjem, …
V našem primeru smo uporabili stikalo tg1. Stikalo je uporabljeno za vklop in izklop lučke.
BT – button
Tipka bt2 s katero naredimo »refresh« ekrana- pobrišemo ekran in izvedemo ponovno inicializacijo. Tipka je postavljena na sliko, na nitko žarnice in označena z barvo BGC:#00A0A0A4 FGC:#00FFFF00 . Barve so določene TTRRGGBB, pri čemer pomeni TT transparentnost, RR rdeča, GG zelena in BB modra. Izbral sem transparentnost 00, kar pomeni, da se tipka na zaslonu ne vidi. Če jo želite videti kje je pozicionirana, spremenite parametra na: BGC:#A0A0A4 FGC:#FFFF00.
Nekateri parametri so podobni, kot pri ostalih objektih. Tukaj bi izpostavil naslednje:
BGC: je barva ozadja, FGC: je barva, ko je vključen, EN:0 pomeni ali je objekt izključen ali vključen (1). RAD: je parameter s katerim izvedemo zaobljenost pravokotnika, ROT: zasuk objekta, BTH: pa debelina črte (obrobe) stikala.
Za tiste, ki si boste želeli objekte na pametni telefon narisati direktno preko računalnika, še nasvet za lažje delo.
Za sam začetek oziroma test GUI-O aplikacije svetujem uporabo terminalskega programa.
Za test potrebujete le USB/RS232/Bluetooth adapter, ki ga priključite na PC računalnik in zaženete terminal emulator. Spodnja shema prikazuje koncept izvedbe, verjamem pa, da boste podoben poceni adapter našli tudi v kakšnih kitajskih trgovinah. Jaz sem ga izdelal sam – Slika 7
Z njim boste lahko brez dodatne elektronike preizkusili vsak objekt, ter njegov odziv. Priporočam https://realterm.sourceforge.io/ terminal emulator, ker lahko celotno Init proceduro naredite na navadnem tekst urejevalniku, preizkusite izgled objektov in njihove odzive. Terminal omogoča tudi izpis celotne datoteke na serijski port.
Začnite s preprostimi stringi: |TG UID:tg1 X:53 Y:48 (inicializacija preklopnika)
Preverite odziv GUI-O aplikacije na dotik preklopnika @tg1 1
@cls pobrišete ekran … itd,
Lahko pa pošljete celotno inicializacijo v obliki tekstovne datoteke in preverite izgled.
Init.txt
@sls 500
@cls
@clh
@guis BGC:#FFFFFF ASR:0.449671
|IM UID:im1 X:20 Y:51 W:100 H:90 ROT:0 SHE:0 IP:”LightC1.png”
|LB UID:lb1 X:68 Y:4 ROT:0 SHE:1 FGC:#1C1C95 FSZ:4 TXT:”LIGHT”
|LB UID:lb2 X:75 Y:8 ROT:0 SHE:1 FGC:#1C1C95 FSZ:4 TXT:”Control”
|CB UID:cb1 X:53 Y:58 W:55 ROT:0 HAH:8 HAW:8 SHE:1 BGC:#CACFD2 FGC:#DC7633 VAL:0 RCA:1 LVAL:0 HVAL:100 STA:-245 ENA:65 BTH:8 SHN:0 NC:#A0A0A4 NT:0.2 CE:1 SHT:0 XTC:10 FSZ:0.1 UD:1
|TG UID:tg1 X:53 Y:48 W:20 H:3.5 VIS:1 HAH:8 HAW:8 ROT:270 SHE:1 RAD:2 BGC:#CACFD2 FGC:#DC7633 EN:0
|LB UID:lb7 X:50 Y:98 SHE:1 ROT:0 SHE:1 FGC:#1C1C95 FSZ:2 URL:1 TXT:”https://www.gui-o.com/”
|BT UID:bt2 X:30 Y:16 W:15 H:5 VIS:1 ROT:0 RAD:1 SHE:1 BGC:#00A0A0A4 FGC:#00FFFF00 BTH:0.2 SVAL:”R”
@hls 250
Tukaj je bila poslana Init.txt datoteka na serijski port – v našem primeru preko Bluetooth modulčka na telefon. Odziv na stikalo tg1 in cb1 je viden na sliki terminal emulatorja. Zagledali boste sliko (Slika 6) na ekranu vašega pametnega telefona. Naj poudarim, da je ta način le pripomoček za delo, ni pa obvezen, pri izdelavi posameznih rešitev.
To je za naš primer za enkrat pravzaprav vse. Vsekakor pa Android aplikacija GUI-O ponuja veliko več. Najbolje bo, da si preberete originalna navodila na strani www.gui-o.com, ali jih preberete direktno preko menija aplikacije:
Settings > Info > Developer manual
Prepričan sem, da sem vam bo ob branju teh navodil in članka ponudilo neskončno idej za vaše rešitve, kaj vse bi lahko naredili, katere objekte bi v vašem posameznem primeru uporabili. To je bil v tem prispevku tudi moj glavni namen – prikazati uporabo aplikacije GUI-O na enostavnem primeru.
Sedaj vemo že dovolj, zato hitro na delo. Za tiste najbolj neučakane še informacija, da lahko nekaj tiskanih vezij in celoten Bascom program dobite v uredništvu revije Svet Elektronike. Tako boste lahko zelo hitro naredili in preizkusili delovanje.
Verjamem, da se vam bo ob tej ideji pojavila neka nova in boste tole izboljšali in prilagodili svojim potrebam. Uporabite lahko npr. senzor svetilnosti (hardware-ska komponenta telefona) s katerim lučki nastavite avtomatsko svetilnost.
In pa iz interneta www.gui-o.com si čimprej naložite program in celotna navodila ter tudi Bascom primere. Prepričan sem, da vas bodo ob branju zagotovo zasrbeli prsti, kajti tam je še veliko stvari za preizkusiti. Med drugim tudi to, kako elektroniko enostavno povezati z vašim telefonom preko interneta z modulom ESP8266.
Priložen program je sicer narejen za Bascom uporabnike, kar pa ne pomeni, da GUI-O aplikacije ne morete uporabljati tudi mojstri PIC, ST, … mikrokontrolerjev. Še več, aplikacija je lepo uporabna tudi pri programiranju PLC-jev, ali kot dodatek aplikacije na PC. Skratka povsod tam, kjer želimo na našo elektroniko/napravo med drugim enostavno priključiti veliko več kot samo LCD Touch screen zaslon.
In na koncu še: »Se vidimo na Rogli na IKTEM konferenci 16. in 17. junija 2021«. Tam bomo lahko tudi kaj zanimivega videli in GUI-O aplikacijo praktično preizkusili«
Pri GUI-O aplikaciji je namreč zanimivo to, da na strani telefona ne potrebujemo narediti ničesar – ni nam potrebno programirati Android aplikacije posebej