2. maja, 2012

Programirajmo Android naprave z Basic programom (4)

Revija 197 197 40d - Programirajmo Android naprave z Basic programom (4)V prvih treh nadaljevanjih smo veliko pozornosti namenili uporabniškemu vmesniku. Sedaj je prišel čas, da se posvetimo nekoliko bolj praktičnemu elektronskemu projektu. Posvetili se bomo komunikaciji med mikrokontrolerjem in Androidno napravo preko Bluetooth povezave.

Zakaj Bluetooth

Revija 197 197 40a - Programirajmo Android naprave z Basic programom (4)

KLIK

Ker je bil namen ukvarjanja z Androidom uporaba tablic in telefonov v elektronskih projektih, je seveda bistven element povezava naprave z Androidom in z mikrokontrolerskim sistemom. V našem primeru bo šlo za povezavo z MiniPin mikrokontrolerskim sistemom podjetja AX elektronika. Pri povezovanju PC računalnika in MiniPin-a je rešitev povsem enostavna – uporabimo povezavo preko USB priključka. Pri Androidu to ni več tako enostavno. Večina naprav podpira delovanje telefona samo kot USB klienta, Nekateri proizvajalci so dodali podporo za USB strežnik, vendar je potrebno uporabljati tudi njihove gonilnike. Sam Android podpira delovanje USB strežnika, vendar šele od verzije 3.2 dalje. Razvijalci mikrokontrolerskih sistemov se zavedajo tega problema, zato so nastale številne rešitve, ki na eni plošči združujejo tako USB strežnik kot tudi USB klienta (n.pr. IOIO ali Electric Sheep podjetja SparkFun Electronics). Jure Mikeln je predlagal, naj raje poskusimo komunikacijo preko Bluetooth protokola. Potrudil se je in razvil modul za MiniPin/MegaPin, ki sem ga uporabil za ta projekt.

Bluetooth in Android

Bluetooth je posebna vrsta omrežne povezave, tako imenovano osebno omrežje (personal area network ali PAN). Bluetooth je načrtovan za povezovanje največ osmih (8) naprav s hitrostjo največ 3 Megabite na sekundo. Povezane naprave morajo biti dovolj blizu, najpogosteje do 10 metrov narazen. Bluetooth deluje z majhno oddajno močjo, ki ne presega nekaj milivatov. Na ta način lahko baterije dolgo trajajo. Običajno preko Bluetooth protokola uporabljamo druge protokole (npr. TCP/IP in podobne), kar prinese precejšnjo kompleksnost. Na srečo si lahko predstavljamo, da Bluetooth protokol zamenja serijsko povezavo. To je tudi način, kako Basic4Android uporablja Bluetooth, saj se objekt za vzpostavitev povezave imenuje kar Serial. Podatke lahko beremo in zapisujemo s pomočjo objektov InputStream in OutputStream.

Zasnova programa

Revija 197 197 40b - Programirajmo Android naprave z Basic programom (4)

Moja prva ideja je bila narediti program, ki bo podoben daljinskemu upravljalniku za televizijo in bo prižigal in ugašal lučke na MiniPin-u ter bral pritisnjene tipke. Vendar se je pokazalo, da bom za začetek potreboval univerzalen program za testiranje. Odločil sem se za terminalski program, ki bo imel vse svoje funkcije na eni sami ekranski maski (slika 1). Na ta način bom lahko raziskal možnosti Bluetooth vmesnika v Androidu, testiral komunikacijo z dvema tabletkama, in ko bom prepričan, da vse deluje kot je treba, se povežem še z MiniPin modulom. Funkcionalnost, ki jo bom razvil, pa bo v bodoče uporabna tudi z daljinskimi upravljalniki in odjemalci podatkov.

Sama maska programa je zelo preprosta: v spodnji vrstici so trije gumbi, ki so namenjeni vzpostavitvi povezave z drugo napravo, nad njimi je oznaka za izpisovanje sporočil o statusu programa, na vrhu je vnosno polje kamor vnašamo besedilo, ki ga želimo poslati, ob njem je gumb za pošiljanje, pod njima pa polje kamor izpisujemo dnevnik komunikacije.

Revija 197 197 40c - Programirajmo Android naprave z Basic programom (4)

Ob startu programa so vsi gumbi in vsa polja onemogočeni. Ko ugotovimo, da je Bluetooth vmesnik prisoten in omogočen, program omogoči uporabo spodnjih treh gumbov. Prvi gumb nam omogoči, da se povežemo z napravo, s katero smo bili pred tem že povezani. Drugi gumb sproži iskanje naprav, ki so v dosegu naše naprave in imajo omogočeno iskanje. Ponudi nam seznam vseh najdenih naprav in lahko se povežemo z eno od njih. S tretjim gumbom sprožimo pošiljanje signala za 300 sekund, ki omogoča drugim napravam v dosegu, da se povežejo z našo napravo. Ko smo se povezali z eno od naprav, postanejo ti gumbi nedosegljivi in omogočeno je pošiljanje ter sprejemanje podatkov.

Revija 197 197 40 - Programirajmo Android naprave z Basic programom (4)

Glede postavitve kontrol pri različnih velikostih programa in zasukih naprave, si tokrat stvari nekoliko poenostavimo. Narišemo ekran v pokončni postavitvi za velikost 320 x 480 (slika 2). Vrtenje slike onemogočimo tako, da v meniju »Project -> Orientations Supported« izberemo »Portrait«. Spreminjanje velikosti bomo izvedli s podprogramom »PrilagodiDimenzije«, ki je tokrat narejen bolj splošno (sam poišče kontrole, ki jih je potrebno premakniti in jim spremeniti velikost). Na ta način ga bomo lahko uporabili v bodočih programih samo s pomočjo kopiranja in lepljenja.

V tokratnem programu bomo uporabili tudi nekaj več prestrezanja napak. Ne sicer dovolj, da bi lahko program razglasili za profesionalen izdelek, vendar pa dovolj za ilustracijo principa, ne da bi zameglili bistvo samega projekta.

 

Ogled celotnega članka je možna le z nakupom letnika v PDF obliki.

Avtor: Ludvik Medvešek

2012_SE197_40

Tags: