LUX-ryhmän loppuraportti löytyy nyt linkistä:
https://drive.google.com/file/d/0B1G2imDKHG_9bkMteDlHb0JKbm8/view?usp=sharing
Morse-miehet 2.0
perjantai 18. joulukuuta 2015
maanantai 7. joulukuuta 2015
lauantai 28. marraskuuta 2015
Mobiiliapplikaation vaiheita (OSA II)
Tässä
blogisarjassa käymme lävitse Morse-miehet 2.0 ryhmän
mobiiliapplikaation kehitystä. Tämä on sarjan toinen kirjoitus.
Yritämme luoda
Android-sovellusta, joka kykenee lähettämään viestejä käyttäen
matkapuhelimen salamavaloa ja myös tunnistamaan viestejä käyttäen
kameraa. Viestit koostuvat ”viivoista” ja ”pisteistä”,
joiden esiintymisjärjestys kertoo viestin sisällön. Viesti voi
olla esimerkiksi ”-..----..-.-.-..” ja merkkien järjestyksestä
voidaan muodostaa selkokielinen viesti. Säännöt tähän luomme
myöhemmin, sillä se on erittäin yksinkertaista toteuttaa.
Hankalinta projektissa on pisteiden ja viivojen lukeminen
video-kuvalta.
Aloitimme
Android-sovelluksen tekemisen lokakuun alussa. Ensimmäisessä
versiossa tavoitteena oli luoda pisteiden ja viivojen lähettäminen
käyttäen salamavaloa. Käyttöliittymän tuli olla hyvin
yksinkertainen ja sitä käytettäisiin vain kehityksessä. Vielä
ensimmäisessä versiossa emme tavoitelleet videokuvan näyttämistä
saati sen tunnistamista.
Emme vielä
tienneet, millä tavalla viestejä kannattaa salamavalolla lähettää
. Vaihtoehtoja on kaksi. Ensimmäinen on vilkuttaa valoa tasaisin
väliajoin siten, että valo päällä tulkitaan viivaksi ja valo
pois päältä pisteeksi. Toinen vaihtoehto on lähettää viestejä
siten, että viiva kestää kolme aikayksikköä ja piste yhden.
Valon näkymisen kesto kertoo, mikä merkki on kyseessä.
Teknisesti aloitimme
toteuttamaan valon vilkuttamista käyttäen Androidin Camera1 API:a.
Tiedostimme API:n olevan hieman vanha ja tulevaisuudessa saattaisi
tulla yhteensopivuusongelmia. Camera1 on kuitenkin erittäin
helppokäyttöinen ja se sopi oivasti ensimmäiseen versioon, missä
tarkoituksena oli tukea vain muutamaa puhelinta. Toteutimme
yksinkertaiset luokat valojen hallintaan ja yksinkertaisen
käyttöliittymän.
Ensimmäinen
toimiva versio valmistui huomattavan nopeasti ilman suurempia
ongelmia. Applikaatio pystyi lähettämään pisteiksi ja viivoiksi
koodattua tekstiä edellä mainituilla lähetystavoilla.
Kehitystarpeisiin luotu käyttöliittymä
Huomasimme nopeasti,
että Camera1 API ei tue edes meidän kaikkien henkilökohtaisia
puhelimia, mikä tekisi kehittämisestä huomattavasti hankalampaa.
Ainoa ratkaisu oli tämän jälkeen siirtyä käyttämään Camera2
API:a. Tämä ei osoittautunut triviaaliksi ja käytimme
huomattavasti aikaa Camera2 käyttöönottoon. Lopulta sekin saatiin
toimimaan! Koodista tuli sekavaa, mutta sovellus toimi.
Seuraavaksi päätimme
parantaa käyttöliittymää, koska nykyisessä on huomattavan vaikea
esittää videokuvaa sen ahtauden takia. Suunnittelimme hienon
käyttöliittymän ja toteutimme sen. Käyttöliitymä ei kuitenkaan
toimi vielä kaikilla puhelimilla, joten hienosäätöä tarvitaan
vielä.
Tällä hetkellä
yritämme liittää C++:lla tehtyä tunnistusalgoritmia kiinni
Android-sovellukseen. Se on osoittautunut erittäin vaikeaksi. Hiomista löytyy vielä myös viestien lähetyksen kanssa, sillä
salamavalon ajoitukset ovat vielä vähän sekaisin. Olemme kuitenkin
optimistisia, että saamme toteutettua yksinkertaisen
Android-sovelluksen ennen kurssin päättymistä.
Tilaa:
Blogitekstit (Atom)