torstai 30. toukokuuta 2013

Raspberry Pi ja riistakamera

On helppo ratkaisu katsella maailmaa vain hyvin pienestä reiästä – näkee juuri sen minkä ansaitsee. Haasteellisempaa on ryömiä tuosta ikkunasta maailmaan.

Kirjoitan tätä blogia maaseudun rauhassa, ystävällisten ihmisten yhteisössä. Täällä ei ole vaaraa, että törmäisi yksityisyyden suojan varjolla kiukutteleviin haaskalintuihin tai pikkumaiseen nipottamiseen. On hyvä, että "Ystävyyden talo" (John Steinbeck, Tortilla Flat, 1935) on vieläkin jossain olemassa ja täälläkin tavoitettavissa. Katso vaikkapa Toini Havun kirjoitus nettiosoitteessa http://www.hs.fi/juttusarja/kritiikinklassikot/artikkeli/Steinbeckin+Tortilla+Flat/1135244928070

Minulla on kaksi Raspberry Pi model B -värkkiä. Laitteen on kehittänyt brittiläinen Raspberry Pi Foundation. Raspberry Pi Model B sisältää yhdellä piirilevyllä ARM11-ytimellä varustetun 700 megahertsin Broadcom-järjestelmäpiirin. Keskusmuistia laitteessa on 512 megatavua. Käytössä sähkön ottoteho on 3-4 wattia. On siis melkein vihreä laite. Tietokonehan se on toki tämäkin. Siinä on suurin piirtein käyttöön tarvittavat liitännät ja toiminnot. Käyttöresurssit ovat huomattavan niukat. Ajatuksenani on kokeilla raspia riistakameran palvelimena.

Valmiissa maailmassa on hyvinkin päteviä, monipuolisia riistakameroita, mutta minähän yritänkin nyt käyttää sitä pientä ikkunaa. Tälle kamerapalvelimelle tulee pääsemään vain ssh-yhteydellä. Kaikki tarpeelliset seuranta- ja ylläpitotoimet suoritetaan siis ”etänä, mustalla ruudulla”. Koska resurssien etäkäyttö on pudotettu minimiinsä, on vastapoolina kotona (tai maailmalla) älykkäampi ja suorituskykyisempi tietokone. Homma kaikkineen vaatii hieman ideointia ja kohtalaisen määrän tutkimista. Kokeilujen perusteella raspi pystyy juuri ja juuri tehtävään.

Kameraohjelmana käytän pientä sovellusta fswebcam. Käynnistän ohjelman bash-skriptillä, joka ensin siirtää käyttäjänsä sopivaan työhakemistoon. Kameran tarvitsemat ohjaustiedot voin sisällyttää kaikki samaan komentoon. Tallennus ohjataan tällä komennolla hakemistoon, josta havaintotiedot sitten löytyvät. Mainittu komento sisältää myös ajastustiedon. Malleja komennon kirjoittamiseksi löytyy netistä. Tällä sivulla on eräs:
Komento tallentaa kameran ottamia kuvia annetuin aikavälein. Toiminnon periaate on samantapainen kuin esimerkiksi tiehallinnon kelikameroissa. Live-videota voi tietenkin yrittää, mutta raspin resurssit eivät riitä siihen kunnolla.

Tallessa on siis aina viimeksi otettu kuva. Kuvaushistorian kerääminen vaatii omat keinonsa. Käytän tietojen keräämisessä taustaprosessia cron. Tämä on aivan perusväline, yksinkertainen käyttää. Rajoituksena on prosessin ”harvakäyntisyys”, joten kuvattava yökissa saattaa hyvinkin välttyä joutumasta kuvatuksi – tai olla onnekas ja päästä kuvaan. Kuva-aineiston kerääminen vaatii vähän muutakin, esimerkiksi cron:in käynnistämän pikku skriptin, jolla kuva siirretään havaintohakemistoon. Toinen skripti ryhmittelee myöhemmin, tunnin välein, aineiston tuntihakemistoihin, cron:in avulla tietenkin.

Kun raspissa on käytössä vain ssh-palvelin, pitää kuva-aineisto raspista käsin toimien siirtää käyttäjän tietokoneelle katseltavaksi. Grafiikkakuorman pitämiseksi kohtuullisena käytän raspissa komentoriviltä ajettavaa ftp asiakasohjelmaa. Sekin ajetaan pikku skriptillä, joka siirtää automaattisesti koko halutun sortimentin käyttämäni kaupallisen webhotellin palvelimelle. Sitä ennen aineisto vielä paketoidaan komentoriviohjelmalla tar (tape archiver – huomaa historian siipien havina). Tyypillinen vuorokauden paketin koko on tässä tapauksessa ehkä 20 MB ja kuvien määrä esimerkiksi 1440. Hotellipalvelimeni tallennustilat riittävät aika monellekin paketille. Kotikoneeni ftp:llä lataan aineiston katselua varten.

Aineiston katselu tapahtuu kotikoneelle asennetun php-koosteen minigal nano avulla. Tuntihakemistojen lisääminen ja poistaminen on helppoa ja se pystyy kätevällä tavalla näyttämään kuvia suurestakin kuva-aineistosta.

Jos olisin opettaja, antaisin arvoisalle lukijalleni tehtävän: ”Kokoa riistakamerajärjestelmä käyttäen enintään 10 euron usb-liityntäistä kirpputorikameraa, laitetta Raspberry Pi sekä tarpeellisia ulkoisia ja kodin sisäisiä palveluita. Aikaa on.”

Maaseudun rauhassa toukokuussa 2013
Hannu Haapasaari

tiistai 14. toukokuuta 2013


Cubox


Cubox Pro Miniature
Computer
Sain vinkin pienestä tehokkaasta minikoneesta nimeltä Cubox. Se on noin 5x5x5 senttimetrin kokoinen kuutio, jossa liitynnät ovat kaikki yhdellä sivutahkolla. Laitteessa on 800 MHz ARMv7 prosessori. Tiedot muistista: 32 bit, 800MHz Data Rate DDR3 - 1GB (CuBox), 2GB (CuBox Pro). Minulla on tuo pro-versio. Laitetta hankittaessa tulee mukana 4 G mikroSD-kortti jossa on asennettuna käyttöjärjestelmä. Kortilla oli muistaakseni Ubuntu 10.04. Siitä käyttöjärjestelmän voi päivittää uudempaan versioon. Muista ominaisuuksista kerron jotain jäljempänä.


Tilasin ihmeen ja sain vahvistuksen tilaukselle 22.3.2013. Sain seuraavaksi tiedon laitteen toimituksesta. Samalla tuli Israelin postilta tieto EMS-seurantajärjestelmän tunnuskoodista. Muutama viesti ilmoitti toimituksen vaiheista ja viimeinen lähetyksen pysähtymisestä Suomen tulliin. Viron matkamme jälkeen suoritin tullauksen netissä, Lomakkeisto ja proseduuri oli selkeä. Parin päivän päästä kuittasin kotiovellemme tuodun lähetyksen.

Aloitus

Laite ei tarvinnut ensikäynnistykseensä juuri mitään toimia. Pikkusormen kynnen kokoinen mikroSD-kortti paikalleen, johdot kiinni ja sähköt päälle. Ubuntu 10:n työpöytä ilmestyi käytettäväksi. Ensi kokeiluissa oli pientä juhlan tuntua siitäkin huolimatta, että olin jo ottanut tuntumaa pikku värkkeihin Raspberry Pi:n kanssa. Laite tuntui toimivan ihan säällisesti, mikä ettei kun resursseja oli Raspiin verrattuna ruhtinaallisesti. Arvelin itsekseni, että voisin saada ihmeestä melkein palvelinkäytössä olevan halvan pöytäkoneeni veroisen. Sähköä kuluisi huomattavasti vähemmän. Mittasin laitteen ottotehoa, joka vaihteli 3 ja 4 watin välillä. Yhdessä mobiiliverkkoisen tukiasemani kanssa laitteet kuluttaisivat maksimissaan 11 wattia, eräissä automaatiotoimissa näyttö ei ole edes kytkettynä. Eläköön vihreys. Ensivaikutelma oli todella positiivinen. Jotta en syyllistyisi liikaan ylistämiseen, haluan kuitenkin mainita, että vain vähäisen kokemuksen ja taidot omaavan kannattaa pysytellä yleiskäyttöisten laitteiden turvallisessa ja vaivattomassa ympäristössä. Jo Linux on monelle haaste, saati sitten aivan tyhjä tietokone.

Kokeiluja

On selvää etten hankkinut laitetta pelkästään uteliaisuudesta. Asunto-osakeyhtiömme hiljattaisten tapahtumien takia vältän täsmätietojen kertomista tässä blogissani. "Vaikka juorut tapetaan, niin juoruämmät jäävät", eli se mikä on meille loppuun käsiteltyä, ei välttämättä ole sitä heille. Toivon mukaan heidän myllynsä näin pysyvät vähävetisempinä. Summittainen laitteen kuvailu harrastajanäkökulmasta olkoon siis tarkan selostuksen vaihtoehtona.

Neljän gigan levytila on liian pieni. Käyttäjän ym. tallenteille jää siitä vain noin puolet. Päätin ensimmäiseksi kasvattaa levytilaa. Tuntui viisaalta aluksi pysyä esiasennetussa käyttisversiossa. Edessä oli tehtävä, josta ei vielä ollut kertynyt kokemusta. Käyttöjärjestelmä piti kloonata tilavammalle muistikortille, niin että kone käynnistyisi myös siltä. Jos joudut joskus tekemään moisen homman, joudut joka tapauksessa perehtymään täsmällisesti muutamiin asioihin. Siksi en kirjoita tätä vaihetta oppaana, vaan lähinnä kuvailen tapahtumaa. Sama pätee muuhunkin myöhemmin seuraavaan. Luultavasti kätevin tapa kloonaamiseen on käyttää komentoa dd. Siinä on myös vaaransa, kuten kaikki muinaisena DOS-aikana kopiointeja tehneet tietävät. Älä siis kirjoita tyhjää levyä lähdetiedostojesi päälle. Sen jälkeen on koneessa hiljaista, mutta lähiympäristössä ehkä ääntä sitäkin enemmän. En tehnyt virhettä. Jotta olet varma, mitä teet, tutki ensin huolellisesti, mikä on lähdelevyn nimi ja mikä kohteen. Kohdelevyyn kannattaa alustaa ensin pieni osio, esim. hiukan yli 4G tässä tapauksessa. Kloonauksen onnistuttua laajennat tulevan uuden isomman korttisi osion haluamaasi kokoon, esimerkiksi ohjelmalla gparted. Jos vielä muistit samalla ohjelmalla varmistaa, että boottauslippu on asetettuna, ovat mahdollisuudet käyttää cuboksiasi tilavammalla levyllä hyvät. Onnea yritykselle.

Netistä löytyy Cubox:ia varten muutamia asennuspaketteja eri linux-distroille. Kokeilulmahdollisuuksia siis on. Aikaa tarvitaan joissain tapauksissa huomattavan paljon – paljon enemmän kuin ”valmiissa maailmassa”. Erityisen paljon aikaa tarvitsin Arch-linuksin kanssa. Graafisen työpöydän käyttöönotto oli hieman haasteellinen homma, samoin niiden ohjelmien löytäminen, joita katsoin tarvitsevani. Käynnistysautomatiikan aikaansaaminen, verkkoyhteyksien varmistaminen tietokantojen asennukset ym. olivat hyvää harjoitusta tulevia haasteita varten. Tulos, Arch-alustalla työpöytää LXDE käyttävä värkki oli miellyttävän vikkelä. Totuuden nimissä pitää myöntää että haasteita vielä jäi, vaikka archin pakettienhallinta, pacman, jo tuntui olevan hallinnassa.

Entä Ubuntu

Debian-pohjainen Ubuntu on yksi suosituimmista Linux-jakeluista. Päätin kokeilla versiota 12.04. Minullekin tutussa ympäristössä asennukset sujuivat ”vaivattomasti”. Tuloksena oli hiukan tahmean oloinen työpöytä, mutta laitteen minulle tarpeelliset automaattiset toiminnat olivat kaikki kunnossa. Testattavana ja mahdollisesti kehiteltävänä on vielä mobiiliverkon varassa toimivan tukiaseman ja laitteen automaation synkronointi, jotta verkkoyhteyden toimivuus kaikissa olosuhteissa tulee varmistettua. Niin ja sitten se tahmeuden poisto. Työpöytä LXDE oli yksi kokeiltu – ihan hyvä. En ole ihan varma, mutta näyttää siltä, että työpöytä xfce sopii ehkä parhaiten joihinkin käyttötarkoituksiini – saa nähdä.

Lopuksi

Asensin Cuboxiini myös LibreOffice:n. Xfce4 alustalla toimiva LibreOffice Writer on tuottanut tämän tekstin, minun vähäisellä avustuksellani.

Toukokuussa 2013
Hannu Haapasaari