Haku blogikirjoituksista termillä
"kotelo":

perjantai, 3. lokakuuta 2014

Kesällä 2013 istuskelimme isäni kanssa useampanakin päivänä kesämökimme pihassa kuuntelemassa ja katselemassa kuinka joku mikälie-peipponen kuljetti ruokaa mökkimme pihamäntyyn kiinnitettyyn linnunpönttöön. Aina emon ilmestyessä pöntön suuaukolle mato suussaan alkoi kova nälkäisten poikasten kiljunta. Mietimme kuinka mielenkiintoista olisikaan nähdä mitä pöntön sisällä oikeastaan tapahtuu ja siitä se idea sitten lähti. Päätimme, että kesällä 2014 pihan linnunpöntössä olisi kamera, joka striimaa kuvaa jatkuvasti nettiin, että vaikka töissä tai kaupungissa tai vaikka terassilla voisi tarkistaa mitä pöntössä tapahtuu 24/7. Mutta teknisesta toteutuksesta ei tuolloin vielä ollut mitään hajua, muuta kuin että Raspberry Pi:n ympärille se lähtisi kehkeytymään.
Tämä blogikirjoitus selittää alusta lähtien työvaiheet ja eteen ilmenneet ongelmat ratkaisuineen. Ohjetta voi helposti hyödyntää myös muunlaisen valvontakameran toteuttamiseen.
Pidin omasta pönttökamerastani myös facebook-sivua kesällä 2014, jonka löydät osoitteesta www.facebook.com/lintukoto2014 Facebook-sivulta löydät myös kuvia ja videoita pöntön sisältä.
--------------------------------------------------------------------

SISÄLLYSLUETTELO

Laitteisto
- Raspberry
- 16g SD
- RpiCam (NOir)
- Infrapuna-ledi
- wlan-palikka

Ohjelmistot
- Raspbian
- Rpi Cam Web Interface http://www.raspberrypi.org/forums/viewtopic.php?f=43&t=63276

Pöntön suunnittelu
- Valon määrä / lämpötila
- Välikaton suunnittelu
- Kameran kiinteän tarkennuksen muuttaminen

Fyysiset / Tekniset työt
- Led-valon virtapiuha (5V USB)
- Kameran uudelleen tarkennus
- Linnunpöntön rakentaminen
- Välikaton rakentaminen

Kameran kuvan jakaminen
- Sisäisessä verkossa (192.168.1.100)
- Internetissä
- Port Forwarding
- IP-osoitteen selvittäminen

Järjestelmän kustomointi
- Sivun layoutin suunnittelu ja toteutus

--------------------------------------------------------------------

Tarvittavat laitteistot ja härpäkkeet

- Raspberry Pi, B-malli
- 16g SD-kortti
- RpiCam (NOir)
- Infrapuna-ledi
- wlan usb-tikku
Raspberry Pi -tietokoneesta tarvitsemme siis B-mallin, joka on verkkoon kytkettävissä. SD-kortin ei ole pakko olla 16 gigainen, jopa 4 gigainen riittänee, mutta koska kortille tallennetaan tässä versiossa videokuvaa ja valokuvia on hyvä olla hiukan lisätilaa. Raspberry Pi:n oma kameramoduli on myös pakollinen hankinta ja siitä nimenomaan omassa projektissani olen käyttänyt NOir-versiota (no infrared filter), joka näyttää infrapunavalon. Infrapunavalolla valaisemme pöntön sisukset häiritsemättä lintujen elämää. Valaisuun tarvitaan myös infrapunaledi, joka viritetään ottamaan tarvitsemansa virran usb-liittimestä. Toiseen Raspberryn usb-liittimeen kytkemme wlan-tikun, jolla kone on yhteydessä verkkoon. Voi tietysti myös käyttää verkkopiuhaa, mutta itse en halunnut pönttöön vedellä kuin yhden pakollisen piuhan (virtapiuha).

Ohelmistot

Kuten tavallista ensin asennamme SD-kortille käyttöjärjestelmän. Perus Raspbian sisältää tarpeellisen rungon, jonka päälle voimme asentaa sitten kameraohjelmistomme. Lataa Rasbpian TÄSTÄ. Raspbian imagen voit asentaa SD-kortillesi esim win32 diskimager-ohjelmalla. Tarkempia ohjeita löydät blogimme aiemmista teksteistä.
Ennen virran kytkemistä Raspberryysi kytke RPiCameraBoard kiinni omalle paikalleen, verkkoliittimen vieressä olevaan liittimeen. Kameran jäykkä johto kytketään liittimeen siten, että metalliset pinnat osoittavat pois päin verkkoliittimestä. Lukitse johto paikoilleen painamalla liittimen reunamuovit alas. Kytke USB-liittimeen myös näppäimistö tai vaihtoehtoisesti käytä SSH-yhteyttä esim pöytäkoneestasi asennusten tekemiseen. Asennuksen jälkeen koneesi pitäisi aueta automaattisesti Raspi-configiin (jos kone jostain syystä kysyy kirjautumista kirjaudu ensin tunnuksilla user: pi pass: raspberry ja sen jälkeen kirjoita
sudo raspi-config
Raspi configissa valitse expand filesystem, tämä laajentaa käyttiksen käyttämään koko muistikortin tilaa (eli jos sinulla on 16 gigainen kortti niin vasta tämän laajennuksen jälkeen raspberry pystyy käyttämään koko kortin kapasiteettia). Seuraavaksi valitse enable Camera, tämän jälkeen Raspberrysi osaa komennella RPiCameraBoardia. Lopuksi suosittelen vielä vaihtamaan pi-käyttäjän salasanan. SSH-yhteyden pitäisi automaattisesti olla päälle kytkettynä, joten sen asetuksiin ei tarvitse koskea. Poistu configista boottaamaan, tallentaen muutokset.
Boottauksen jälkeen kirjaudu sisään ja sen jälkeen on kaksi vaihtoehtoa: jos meinaat käyttää langallista internet-yhteyttä niin voit hypätä seuraavan kohdan yli, jos haluat kytkeä Raspberrysi langattomaan verkkoon niin jatka lukemista.
Kirjoita komentoriville:
startx
Tämä käynnistää varsinaisen Raspbian työpöytä-käyttöjärjestelmän, jonka avulla saamme helposti kytkettyä koneemme internetiin (HUOM! Raspberry pi 3 on varustettu sisäisellä wifi-liittimellä joten ulkoisia usb-tikkuja ei tarvita. Liittäminen verkkoon käy yksinkertaisesti ruudun oikeassa yläkulmassa olevasta wlan-kuvakkeesta. Vanhempii Raspberry-malleihin wifin asentamiseen löytyy yksityiskohtainen ohje aiemmasta blogitekstistäni TÄÄLTÄ.
HUOM! Voit lopettaa tuon ohjeen ennen wicd-asennusta ja palata tähän tekstiin. Raspbianin uusimman version wifi-config osaa käynnistyä automaattisesti koneen käynnistyessä, joten wicd-ohjelmistoa ei enää tarvitse asentaa ainakaan siitä syystä.
Nyt Raspberrymme on siis netissä ja valmis ottamaan vastaan kamera-ohjelmistoa, aloitetaan kuitenkin tarkistamalla onko käyttöjärjestelmään päivityksiä. Kirjoittele seuraavat rivit yksi kerrallaan komentoriville ja hyväksy asennettaessa mahdolliset yes/no -kysymykset klikkaamalla y-kirjainta.
sudo apt-get update
sudo apt-get dist-upgrade sudo rpi-update
Päivitysten jälkeen asennetaan kameraohjelmisto seuraavilla komennoilla (rivi kerrallaan!):
git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git
cd RPi_Cam_Web_Interface
chmod u+x *.sh
./install.sh
Kun asennukset ovat valmiina pitää Raspberry bootata ja se onnistuu kirjoittamalla:
Sudo reboot

Käynnistyksen jälkeen kamerasi pitäisi automaattisesti käynnistyä ja sen huomaat palamaan syttyvästä punaisesta valosta. Kirjaudu sisään ja jotta pääsemme katsomaan kuvaa meidän pitää käynnistää internet-selain jostain toisesta samassa verkossa olevasta koneesta ja kirjoitettava osoiteriville Raspberrymme IP-osoite. Selvitetään siis Raspberrymme IP-osoite. Kirjoita komentoriville
sudo ifconfig
Tämä avaa meille tiedot Raspberrymme verkosta ja sieltä löytyy osoite, joka on muotoa: 192.168.1.xxx Viimeiset kolme numeroa voivat olla mitä vain 1-255 väliltä. Kirjoita nyt tuo numerosarja esim. PC-pöytäkoneesi selaimen osoiteriville ja sinun pitäisi nähdä Raspberryn kameran kuva, sekä kameran ohjaus-käyttöliittymä. Käyttöliittymästä ja sen kustomoinnista lisää viimeisessä kappaleessa.

Pöntön suunnittelu

Tässä tapauksessa siis asennamme valvontakameran tarkkailemaan linnunpöntön sisäistä elämää, tämä asettaa tiettyjä vaatimuksia sekä pöntön rakenteelle, että itse kameralle. Ainoa järkevä suunta valvoa niinkin pienen ja putkimaisen tilan sisätilaa on ylhäältä, ellei käytössä ole erittäin laajakulmainen kamera, jota meillä ei tässä tapauksessa ole. Pöntössähän ei luonnostaan juuri valoa ole, joten vaihtoehtoina ovat ikkunat tai infrapunavalaisu, joista kummankaan oikein toteutettuna ei pitäisi lintujen elämää haitata. Tässä tapauksessa toteutimme näistä molemmat, jotta saamme hiukan luonnonvaloakin päivisin, mutta kuvaa pystyy seuraamaan halutessaan myös öisin. Jälkeenpäin ajateltuna ikkuna kannattaa ehkä jättää tekemättä sillä ledi riittää pöntön valaisuun vallan mainiosti eikä infrapunakamera päivänvalosta huolimatta pysty värejä oikein esittämään.
Linnunpönttöön pitää siis ensin suunnitella toinen kerros, johon Raspberry Pi, kamera ja valo sijoitetaan ja erottaa tämä kerros alemmasta sopivasti rei?itetyllä välipohjalla. Kuulostaa helpolta eikö? No sitä se onkin, kunhan vaan tarttuu toimeen. Raspberry Pi itsessään on kotelon kanssa kooltaan n.: K=3cm L:6,3cm P=10cm ja tähän päälle pitää laskea muutama sentti päästä törröttävälle SD-kortille, virtajohdolle sekä USB-johdolle. Onneksi normaalistikin linnunpönttö on tätä leveämpi ainakin toiseen suuntaan, joten tavallisesta poikkeava korkeus, pari piuhanreikää, tuuletusaukot ja mahdollinen ikkuna ovat ainoat tästä linnunpöntöstä erikoisen tekevät ulkoiset piirteet.
Tärkeimmät pöntön suunnitteluun vaikuttavat asiat ovat
  • 1. suoja sateelta / kosteudelta
  • 2. suoja liialta lämpenemiseltä
  • 3. ikkunan ja pöntön suuntaus
  • 4. suoja eläimiltä
Ensimmäinen kohta hoituu tarpeeksi isolla katolla ja asiassa auttaa myös kohdepuun valinta, sillä runsas- tai edes normaalioksaisen puun varressa olevaan pönttöön harvemmin edes sade osuu. Myös kohdan kolme onnistumista voimme edesauttaa valitsemalla pöntön paikaksi puun pohjoispuolen ja siten, ettei mahdollisesta ikkunasta pääse paistamaan kesäpäivän kuuma aurinko kuin esim aamulla. Kohdan kaksi toteuttamiseksi pitää käyttää jo hiukan mielikuvitusta jättämällä vaikka toisen kerroksen sivuseinien yläosaan ilma-aukot, jotka täytetään vaan pienisilmäisellä verkolla. Näin saamme ilman kiertämään ?konehuoneessa? ja vältämme tietokoneen ylikuumenemisen (toivottavasti). Se miksi pienisilmäistä verkkoa täytyy tuuletusreikiin laittaa on se, että emme halua mitään hyönteisiä tai muita tutkimaan ja tukkimaan koneiston toimintaa mahdollisesti kärventymällä mikropiireihin tai muuta, tämä siis selittää kohdan neljä.
Testatessani RaspbiCamBoardin soveltuvuutta pönttökameraksi törmäsin ongelmaan nimeltään fixed focus. Tämä tarkoittaa että kameran tarkennus on kiinteä, eikä sitä voi ohjelmallisesti muuttaa. Kameran kuva on aina tarkka n.1-2 metristä pidemmälle, eikä linnunpöntöstä saisi siis terävää kuvaa. Aloin miettiä että miten tarkennusta vaihdetaan muuten kuin ohjelmallisesti ja vastaus oli selkeä: Linsseillä. Keräsin erilaisia linssejä hajonneesta videotykistä, vanhoista silmälaiseista ja kaikista mitä käsiini sain. Sitten aloin asetella RasbpiCamBoardin eteen (kiinni kameran linssiin) eri linssejä ja voilá tarkennus muuttui. Jollain linssillä sain kameran tarkentamaan 2cm päähän kamerasta, toisilla kuva pyörähti ympäri ja vihdoin eräiden parin euron lukulasien linssillä kuva tarkentui sopivasti n.20cm päähän. Pöntön välipohjaan pitäisi siis vaan tehdä sen verran isompi reikä, että saamme silmälasin linssin kameran alle.

Fyysiset / tekniset työt

Koska pöntön sisällä päivänvalo on vähäistä (ilman ikkunaa olematonta) niin joudumme valaisemaan sisustan lampulla. Jotta emme taas häiritsisi pöntön asukkaiden vuorokausirytmiä pitää valon olla lintujen silmille näkymätöntä. Linnut näkevät inmisestä poiketen ultraviolettivaloa, mutta infrapunavaloa eivät linnutkaan näe. Käytämme siis infrapunavaloa tästä ja siitä syystä, että kameramme näkee infrapunavaloa myös.
Lampun valinnassa pitää miettiä lämpenemistä ja virrankulutusta, joten paras vaihtoehto on LED-lamppu. Netistä tai lähimmästä hyvinvarustetusta sähkötarvikeliikkeestä löydät eri tehoisia infrapunaledejä. Itse päädyin ostamaan ledin netistä, jossa sen hinta oli 3,5?. Ledin speksit ovat seuraavanlaiset:
Emitted Color: 850nm Infrared IR
Viewing Angle: 120 degrees
DC Forward Voltage (VF): 1.5-1.7V
DC Forward Current (IF): 500mA
Maximum Pulse Voltage: 2.2V
Maximum Pulse Current: 800mA

Selitykset:
Emitter Color: valon väri/aallonpituus. Kamerat näkevät yleensä jo n.750nm valon
Viewing Angle: valon osoituskulma. 120-astetta on juuri oikea, hiukan pienempikin ok
DC Forward Voltage (VF): Ledi toimii parhaiten tällä jännitevälillä
DC Forward Current (IF): Optimaalinen sähkövirran määrä
Maximum Pulse Voltage: 2.2 volttia on maksimi jännitteen hetkellinen määrä jota ledi kestää
Maximum Pulse Current: 800mA maksimi hetkellinen sähkövirran määrä jota ledi kestää

Mietiskelin lampun virtalähteeksi useita vaihtoehtoja AA-paristoista 9V-paristoihin tai mopon akkuun, kunnes keksin että tarvittavan määrän virtaa voisi saada USB-liitännästä. Tavallinen USB2-liitin jakaa 5V jännitettä ja virtaa 500mA, joten jännitteen määrää pitää laskea ettei lamppu rikkoudu. Sähkötarvikeliikkeet myyvät tähän hommaan suunniteltuja resistoreita (vastuksia), jotka vaan kolvataan kiinni ledin toisen navan ja USB-johdon väliin.
HUOM! Seuraava vaihe sisältää sähkön (tosin pienen määrän) käsittelyä, joten ainakin alle 18-vuotiaiden tai elektroniikka-alalle kouluttamattomien rakentajien on syytä pyytää avuksi joku aikuinen.
Eli aloitetaan homma etsimällä käsiin joku USB-johto. Leikkaa johto poikki n.30cm päästä isosta USB-liittimestä (ja tietysti johto on tässä vaiheessa irtonainen, eikä kiinni missään). Kuori johto ja löydät neljä johtoa. Punainen (+) ja Musta (- tai Maa) tulee kuoria n.1cm matkalta johdon päästä. Muut piuhat voit niputtaa ja teipata johdon varteen kiinni, niitä emme tule käyttämään.

Johdon kuoriminen ja kolvaaminen on tarkkaa puuhaa, valitse paikka jossa on tarpeeksi valoa ja alusta, joka kestää kuumuutta.
Punainen johto kolvataan suoraan kiinni Lediin ja musta vastukseen ja vastus lediin. Selkeää? No ei aivan minullekaan. Sopivan vastuksen löytämiseksi pitää osata laskea minkä kokoinen vastus rajoittaa jännitettä tarpeeksi, jotta usb-liittimen 5V jännitteestä jää jäljelle vain sallittu (minun tapauksessani) 1,5V-1,7V. Jos löydät jostain infrapunaledin, joka kestää 5V jännitteen, ei vastusta tarvita lainkaan. Koska itsekin olen vasta opettelemassa näitä sähkömaailman perusasioita en niitä ala teille opettamaan vaan annan tässä pari aiheeseen osuvaa linkkiä:
http://koti.mbnet.fi/~huhtama/ele/index.php?si=ml16.sis
Tuolta sähköasioiden perusteita
http://ledcalc.com/
Automaattinen laskuri joka kertoo minkä kokoisen vastuksen tarvitset ledillesi
Kun kytket lediä kiinni USB-johtoon olisi eduksi jos mukana olisi yksinkertainen sähkömittari, jolla voit mitata jännitteen määrää johdossa.

http://www.yeint.fi/index.php?main=64&productID=21092&productCode=CEM+DT-103&
Halpa yleismittari
Kun ledi on kolvattu kiinni kannattaa vielä varmistaa, ettei punaisen ja mustan johdon sisällä olevat ohuet johdot kosketa toisiaan ja sitten kiinnittää usb johto Raspberryn USB-porttiin. Kytke tämän jälkeen Raspberryyn virta ja katso syttyykö valo. Valon syttymistähän et sitten näe paljain silmin vaan käyttämällä esim. kännykkäsi kameraa, joka havaitsee infrapunavaloa sen verran, että näet onko ledi päällä vai ei. Jos (kun) ledi palaa niin sammuta järjestelmä ja viimeistele johdon liitinten suojaukset esim. teipillä.

Kameran uudelleen tarkentaminen

Kuten jo aiemmin mainitsin on Rasbperry Camera Board kiinteästi tarkennettu muutaman metrin etäisyydelle, joten jos asettaisimme sen ilman muokkaamista linnunpöntön kattoon kuvamaan pöntön lattiaa n.20-25cm etäisyydeltä olisi pohja epätarkka. Tarkka tarkennus on yksi valo- / videokuvauksen kulmakiviä, joten siihen tulisi aina pyrkiä. Nyt kun emme voi muuttaa tarkennusta koodia muuttamalla tai tarkennusrengasta pyörittämällä kuten järjestelmäkameroissa, niin tarkennus pitää hoitaa mekaanisesti asettamalla oikenalainen linssi kameran eteen.

Kuva testivaiheesta kun kokeilimme linssin alle erilaisia silmälaseja nähdäksemme niiden vaikutuksen tarkennukseen.
Itselläni ei ole varmuutta millainen tuo oikeanlainen linssi tarkalleen on, koska löysin vanhat lukulasit vanhempieni hyllystä eikä laseissa itsessään lue millaiseksi linssi on hiottu. Tiedän vaan että kyseessä on lukulasit jollaisia saa supermarketeista tai bensa-asemilta muutamalla eurolla. Suuresta sijoituksesta ei siis tässäkään kohtaa ole kyse, vaikka joutuisi ostamaan parit erilaiset ja testaamaan ennen oikean löytymistä. Itse kokeilin kaikenlaisia linssejä joita olin säästänyt esim. puretusta videotykistä, joilla sai aikaan hauskoja syvyysefektejä ja joiden käyttäminen voisi olla paikallaan erilaisessa projektissa.
Linssi asetetaan aivan kiinni RasbpiCamin linssiin kovera puoli kameraan päin. Koska kameramme tulee osoittamaan alaspäin lepää kamera siis linssin päällä ja linssi välikattoon tehdyn reiän päällä. Mutta nyt on aika rakentaa itse pönttö.

Linnunpöntön rakentaminen

Linnunpöntön rakentaminen on vuosikymmenten, ellei vuosisatojen aikana kehittynyt taito, joten pyörää ei kannata keksiä uudestaan vaan etsiä vaan hyvät valmiit ohjeet sellaisen rakentamiseen. Yhdet mukavan kattavat ohjeet löytyvät osoitteesta:
http://www.birdlife.fi/lintuharrastus/linnunponttojen_rakennusohjeet.shtml
Huomaa kuitenkin lukea myös seuraava kappale ?välikaton rakentaminen? ja soveltaa sitä valitsemaasi linnunpönttöohjeeseen, jotta saamme kameran asennettua pöntön sisälle.

Välikaton rakentaminen

Jotta saamme kameran asennettua pöntön sisälle pitää meidän rakentaa välikatto. Välikaton virkaa ajaa hyvin sopivan kokoiseksi sahattu vanerin pala, joka on asennettu pöntön seinissä olevien tukipilarien päälle. Tukipilareina voivat toimia pelkät naulat tai sitten liimatut pienet rimat, ihan miten haluat. Välikaton tulisi sijaita n.20-25cm korkeudella pöntön pohjasta, jotta saamme kameraan tarpeeksi näkyvyyttä ja tarkennuksen kohdalleen.
Vaneriin täytyy tehdä kaksi reikää, infrapunavalolle ja kameran linssille. Mitä keskemmälle saat nämä sijoitettua sen parempi. Muista että kameran eteen (siis tosiasiassa alle) sijoitetaan lukulaseista irroittamasi linssi, joten reiän tulee olla hiukan isompi n.3cm halkaisijaltaan. Voit testailla asemointia itse ja sen jälkeen porata reiät tai sahata lehtisahalla, tässä kohtaa kauneudella ei ole juuri roolia, sillä välikattoa ei mistään ulospäin näy.

Laitteiston kasaaminen välikaton päälle. Kamera on suojattu säätiloilta rei'itetyllä korurasialla.
Ledi ja kamera linsseineen on hyvä kiinnittää välikattoon sinitarralla ja teipillä, jotta ne eivät enää asemoinnin jälkeen pääse liikkumaan.

Lopuksi pönttöön kiinnitetään tässä tapauksessa nahanpalalla saranoitu kansi ja pönttö kiinnitetään puuhun narulla.

Kameran kuvan jakaminen

Sisäisessä verkossa
Kuten totesimme ohjelmistoja asennettaessa kameran kuvaa voidaan seurata lähiverkossa ja Internetin yli. Nyt kun ohjelmisto on jo asennettu on aika tutkailla hiukan sen asetuksia lähemmin.
Asetuksia pääsee tutkimaan/muokkaamaan kahdella tapaa, joko SSH-yhteydellä, jolloin selataan suoraan Raspberry Pi:n käyttöjärjestelmää linux-ympäristössä käyttäen samassa verkossa olevaa PC-konetta SSH-ohjelman alustana. Toinen tapa on ottaa FTP-yhteys Raspberryyn jolloin tiedostoja voidaan siirtää sen kansioista PC-koneelle ja muokata tutummassa PC-ympäristössä esim. notepad-ohjelmalla. FTP-tavassa muokatut tiedostot pitää tietysti lopuksi siirtää takaisin Raspberrylle ja tämä saattaa vaatia tiedosto-oikeuksien muokkaamista kohdekansioiden osalta. Suosittelisin itse kokeilemaan molempia tapoja, sillä ne auttavat ymmärtämään miten järjestelmä toimii.
Molempia yhteystapoja varten pitää selvittää mikä on Raspberrysi IP-osoite. Tämä onnistuu kirjoittamalla Raspberryn komentoriville
ifconfig
Tämän jälkeen Raspberry listaa tiedot käytössä olevista verkkoasetuksista ja näiden joukosta löydät seuraavanlaisen IP-osoitteen: 192.168.1.xxx, jossa xxx määräytyy joka boottauksen yhteydessä sen mukaan mitä muita laitteita sisäisessä verkossa on. Olkoon xxx tässä yhteydessä vaikka 101.

SSH-yhteys ja tiedostojen suora muokkaus

Lataa PC-koneellesi Putty-niminen SSH-ohjelma. Käynnistä se ja kirjoita SSH-osoitteeksi (Host name or IP-address) Raspberrysi IP-osoite ja klikkaa Open. Ruudullesi aukeaa uusi ikkuna jossa näet Raspberryn komentorivin, joka ensimmäisenä kysyy käyttäjätunnusta ja salasanaa. Oletuksena nämä ovat Käyttäjä: Pi, Salasana: Raspberry (HUOM! Jos aiot jakaa kamerasi kuvaa Internetissä kannattaa salasana vaihtaa RaspiConfigistä).
Kun olet kirjautunut sisään näet komentorivin aivan kuten näet sen suoraan Raspberryyn kytketystä monitorista. Huomaa, että tämä komentorivi toimii Linux-ympäristössä, eikä siinä toimi PC-ympäristön pikanäppäimet yms.

Kuvan jakaminen Internetiin

Jotta kuvan saisi näkyviin lähiverkon ulkopuolelta meidän täytyy tietää mikä on reitittimemme IP-osoite. Tämän saat helposti selville selaamalla jollain lähiverkon koneella esim. osoitteeseen www.whatismyip.com joka listaa sinulle heti että ?your IP: 84.250.77.151? tai jotain vastaavaa.
Seuraavaksi voit heti koittaa selata jollain ulkoisen verkon koneella, esim. älypuhelimella omaan IP-osoitteeseesi kirjoittamalla sen suoraan selaimen osoiteriville (HUOM! Windows-puhelimissa IE ei välttämättä hyväksy IP-osoitteita osoitteeksi joten viimeistään tässä vaiheessa kannattaa puhelimeesi ladata esim. Operan ilmainen ja laadukas selain. Jos et motion.conf -tiedostosta vaihtanut oletusporttia 8080 toiseksi pitäisi IP-osoitteen suoraan ohjata selaimesi videosivulle. Jos vaihdoit portin niin lisää se IP-osoitteen perään kaksoispisteellä erotettuna esim. näin jos portin numerosi on 1666:
84.250.77.151:1666
Jos vaihdoit portin eikä kuva näy niin älä huolestu, tämä luultavasti ratkeaa asettamalla reitittimesi asetuksista port forwarding-asetus siten, että reitittimesi sallii liikenteen kulkea kyseisestä portista. Kaikissa reitittimissä port forwarding asetus muutetaan hiukan erilailla, mutta pääasia on että kirjoitat sinne ohjattavaksi portiksi motion.conf -tiedostoon muuttamasi portin numeron.

Järjestelmän kustomointi

Katselusivun layoutin suunnittelu ja toteutus on toisaalta valinnainen osa pönttökamerakokonaisuuden rakentamista, mutta toisaalta erittäin merkittävä asia kamerasi personointia ajatellen. Jos siis haluat että kamerasivusi näyttää tekijältään niin jatka vielä hetki, tämä on viimeinen vaihe koko projektissa :)
Kun aiemmin tämän tutoriaalin aikana asensit kameraohjelmistot Raspberryllesi niin samalla asentui koneelle myös oletus-html-sivu, eli suomeksi sanottuna nettisivu, joka näkyy katsojille heidän saapuessaan kamerasi ip-osoitteeseen. sivu on erittäin yksinkertainen: otsikko, videoruutu, toimintonapit sekä niiden alla kameran säädöt. Sinänsä tuo sivu toimii ihan ok, jos tykkäät pelkistetystä tyylistä ja haluat että kaikilla sivulle saapuvilla on mahdollisuus säätää kamera ja komentaa sitä kuvaamaan kuvia ja videota. Itse järkeilin niin, että on kiva että muut ihmiset näkevät kuvan, mutta eivät voi (tahallaan tai tahattomasti) täyttää Raspberryn rajattua muistikorttitilaa kuvaamalla joutavia videoita. Oli siis tehtävä kaksi eri sivua, joista toinen olisi yleisölle ja toinen kaikkine nappeineen minulle.
Ensin pitäisi paikallistaa html-tiedosto, joka on nimeltään index.html (index.html on oletussivu, johon selain automaattisesti hakeutuu saavuttuaan mihin tahansa ip-osoitteeseen tai nettiosoitteeseen). Tässä tapauksessa tiedosto löytyy ftp-selaimella hakemistopolusta:
var/www
Siirrä index-sivu omalle koneellesi ja tee siihen haluamasi muutokset, esim. taustakuvan vaihtaminen, fontin vaihtaminen, värien säätäminen yms. htm-ohjelmointia en tässä tutoriaalissa ala opettaa, siihen löytyy lukuisia hyviä ohjeita muualta netistä. Kun olet saanut oman ns.admin-sivusi hyvän näköiseksi tee siitä kopio ja tallenna se vaikka ?admin.html?. Nyt sinulla on kaksi identtistä html-tiedostoa, toinen index ja toinen admin. Jatka index-sivun muokkaamista siten, että poista koodista kaikki videokuvan alapuolella olevat nappulat ja valinnat. Tämän jälkeen siirrä molemmat html-tiedostot sekä mahdollisesti tarvittavat taustakuvat yms takaisin Rasbperrysi kansioon ja testaa toimivatko ne käytännössä.
Nyt kamerasi on valmis tositoimiin, toivottavasti linnut löytävät pöntön ja kamerasi pääsee tositoimiin.

Onnistuessaan tämän projektin lopputulemaa, live-kuvaa linnunpöntöstä voi seurata takan lämmössä läppäriltä tai vaikka älypuhelimesta.




Kirjoittanut: klo    0 kommenttia

tiistai, 22. lokakuuta 2013

Tämä kuvapainotteinen tarina kertoo erään custom-kotelointivirityksen tarinan. Tarinan loppu ei välttämättä ole tässä tapauksessa se onnellisin, mutta niinkuin niin monessa muussakin asiassa ei se lopputulos ole tärkein vaan se matka jonka tekee sinne päästäkseen :)

Itse innoistuin ajatuksesta rakentaa retropelikoneen kotelo perinteisiin isoihin VHS-koteloihin. Tällä tavoin superhalvalla tehdyn paketin saisi vaikka kirja/videohyllyyn piiloon ja siihen saisi tyylikkäät kansipaperit tulostettua ja pujoteltua suoraan koteloiden muovitaskuihin. Suunnittelin vielä kotelon niin, että leikkaan ja liimaan kolmen kotelon kannet yhteen ja näin saan koteloon koneen lisäksi ohjaimet ja bluetooth-näppäimistön.


Ensin kävin videodivarista hakemassa kolme samanväristä isoa VHS-elokuvaa, nämä tuhoamista anovat kasetit maksoivat 1e/kpl. Mittasin kansien reunoista sopivan verran (alimpaan koteloon 5mm muita pienempi reikä, selitys myöhemmin tekstissä) ja sitten leikkeilin mattoveitsellä ja saksilla, huomaa että vain keskimmäisestä kannesta otettiin tietysti molemmat reunat pois ;)

Seuraavaksi suunnittelin laitteiston osille paikat, alimmaisen kotelon sisään piti saada mahtumaan RaspberryPi, usb-hubi sekä rca-liittimet (halusin koneesta pelikoneen mökille, matkatelkkariin yms, joten HDMI-oli pois laskuista tällä kertaa), jotta koteloni saisi analogisesti kytkettyä ilman kansien avaamista (tässä vaiheessa onnellisen lopun mahdollisuus jäi pois laskuista, mutta siitä lisää artikkelin lopussa). Ostin Bebekistä 3kpl RCA liittimen, pätkän stereopiuhaa sekä 3,5mm urosliittimen (hintaa näille tuli yhteensä 3e).


RCA-liittimelle piti mittailla paikka kotelon kylkeen siten, että kaikki piuhat mahtuisivat kääntymään ongelmitta. VHS-koteloon sai reiät porattua melko helposti, muovin kanssa on mukava askarrella ainakin niin kauan kun se halkeaa (onneksi ei isoja halkeamia tullut).

Kun koteloiden rakenteet oli kunnossa oli aika ottaa liima käteen ja yhdistää kannet yhdeksi upeaksi paketiksi.


Siitä vaan osat paikoilleen ja kansista alussa irtileikatuista palasista sai liiman kera hyvin rakenneltua korokkeita ja pidikkeitä osille. Kun kone on alimmassa lokerossa, päätin jo alkuvaiheessa leikata alimmaisen kotelon reiän 5mm joka reunasta pienemmäksi, jolloin sain käytettyä toisesta kotelosta leikattua palasta välikantena konetilan ja varastotilan välillä. Kun välikansi oli paikoillaan sai kahden kotelon kokoiseen varastoon 2kpl SNES-ohjaimia, BlueTooth-näppäimistön, verkkovirtamuuntajan ja rca-piuhan huolellisesti pakattuna mahtumaan.

Tein testejä rca-piuhalla ainoastaan puhelimeni kanssa, eli kytkin 3,5mm plugin Nokialaiseen ja soitin musiikkia ja totesin että omat lukiopohjalta tehdyt juotokset olivat toimivia. Myöhemmin selvisi että tämä ei ollut tarpeeksi pätevä testaustapa, mutta ennen kuin päästään loppuratkaisuun täytyy koteloon vielä saada tyylikkäät kannet.


Ensin suunniteltiin ja toteutettiin kannen keskeiset grafiikat 3d-/kuvankäsittelyohjelmistoilla, tämän jälkeen googletettiin hyviä pelikuvia (nämähän olisi tosi-retro-mies kaapannut itse pelitilanteista, mutta enpä saanut aikaiseksi opetella tätä (ehkä opettelen ja kirjoitan siitä myöhemmin blogin)). Sen jälkeen vetävä takakansiteksti ja logot yms. Mitat on tietysti tärkeä saada oikein, joten huolellisuutta siinä. Sitten tulostin laulamaan ja kannet koteloon.

Lopputuloksena tyylikäs ja toimiva paketti. Niin, toimiva pakettina, mutta pelikoneena ei niinkään. Kolvaamani RCA-potikka nimittäin toimi hyvin puhelimessa, jossa on ilmeisesti parempi signaalien esivahvistus kuin Raspberryssä, sillä en koskaan saanut RCA-liittimistä kuvaa kuulumaan tai ääntä näkymään (en omista sähkömittauslaitteita, mutta tämänlaisen diagnoosin tein päättelemällä). Tämän johdosta aina pelatessa koneen piti olla auki ja pienen pelihetken jälkeen koko sisältö oli usein sekaisin lattialla/pöydällä ja piuhat solmussa. Pian totesin että toimivinta tässä paketissa oli se, että pelaamisen jälkeen sai pakattua kaikki osat yksiin kansiin ja piilotettua näkyvistä.

Silti, kuten alussa jo totesin oli kotelon rakentaminen hauskaa puuhaa ja suosittelen sitä kaikille kenellä ei ole Raspberrylleen mitään koteloa. Kehittäkää erilaisista purkeista/koteloista omannäköisenne paketti ja postatkaa vaikka kuva Arcade Overdriven Facebook-seinälle. Mutta jos aiotte RCA-liittimiä koteloihinne kiinnittää niin varmistakaa ensin jokin keino vahvistaa Raspberryn lähettämiä signaaleja :)

Kirjoittanut: klo    0 kommenttia

keskiviikko, 9. lokakuuta 2013

Pimamen rinnalla on hyvä käsitellä toinen retropelaajan RaspberryPi-vaihtoehto. Graafisen superhienon käyttöliittymän ja selkeiden sisäisten menujen vuoksi käyttömukavuudeltaan loistava ChameleonPi jäi ainakin allekirjoittaneelle PImamen korvaajaksi pysyvästi. Ehkä päätökseen vaikutti käyttöliittymän kuvat emuloitavista koneista ? hieno fiilis ?nähdä? millä pelaa. ChameleonPi:n viralliset nettisivut täällä. Havainnollinen YouTube video täällä.

MITÄ TARVITAAN

RaspberryPi on näennäisesti halpa hankinta. Viidenkympin hintaan se on helppo hankinta varmastikin kaikille. Se kuitenkin tarvitsee rinnalleen jonkin verran lisätarvikkeita ? jos näitä ei entuudestaan ole, saattaa hinta nousta helposti kokonaisuudessa jopa pariin sataan euroon. Seuraavat tarvikkeet ovat kuitenkin välttämättömiä ChameleonPi:n kanssa:
  • USB-hiiri (langaton on helpoin)
  • USB-näppäimistö (langaton on helpoin)
  • USB-hub (lisävirralla, on myös hyvä, jos hubi pystyy antamaan virran Pi:lle)
  • MicroUSB-virtalähde (ei välttämätön, jos virran saa hubista)
  • USB-ohjaimet (2 kpl, alkuun riittää yksikin)

Omassa kokoonpanossa on seuraavat lisälaitteet, joista kaikki voin vahvistaa toimiviksi:
  • Rapoo E2700 - langaton USB hiiri- + USB mininäppisyhdistelmä, todellä näppärä laite
  • D-LINK H7 USB hub, johon kytketään kaikki laitteet ja joka antaa virran myös RPi:lle
  • 2 kpl Retronicdesignin joystick USB-konvertteri - täydellinen pelaajan valinta, jossa ei lainkaan lagia! Pelituntuma on kuin aidoilla yksiköillä! Ehdottomasti suositeltava hankinta joystick-pelaajille!
  • 2 kpl QuickShot II Turbo-joystickia

ALOITUS

ChameleonPi:n sivuilla on ohjeet käyttöön ja aloittamiseen, mutta käydään tässä läpi suomeksi kevyt ohjeistus muutamine ongelmanratkaisuineen. ChameleonPi:n käyttöjärjestelmä kirjoitetaan SD-kortille samoin, kuin muissakin RPi käyttiksissäkin. Tarkemmin kortin kirjoittamisesta tässä blogikirjoituksessa. Windows-puolella Win32DiskImager on toiminut itselläni parhaiten. Mac puolella terminaalin komentorivit toimivat yhtä hyvin ? vaikkakin kirjoituksen hitaus on ilman edistymisindikaattoria aika tuskaista.

Kun SD-kortti on valmiina, käynnistetään RPi. Kun käyttis on pienen odottelun jälkeen ladannut (kyllä, käynnistys on huomattavasti pidempi kuin Pimamessa) ja ruudulla näkyy Spectrumin kuva, on syytä tehdä kortin sekä RPi:n ?modaukset?. Nämä toiminnot pitää tehdä vain kerran.

Päävalikossa painetaan O-kirjainta ? ChameleonPi:n menuvalikko avautuu. Valitse ?RESIZE ROMS PARTITION?. ChameleonPi laajentaa tällöin SD-kortin koko kapasiteetin pelien käyttöön.

Sitten on vuorossa muistin asetukset. Valitse ADVANCED SETTINGS > MEMORY SPLIT. Täältä asetetaan muistin määräksi 256MB. HUOM! Asetusta voit vaihtaa kokeilusi perusteella - itse olen huomannut, että ChameleonPi:llä pelaaminen toimii parhaiten kun muistin jakaa suorittimelle maksimiarvolla.

Tämän jälkeen asetetaan ylikellotus, minkä ainakin osa graafisemmista MAME-peleistä vaatii. Valitse samasta menusta RASPBIAN CONFIG ? ChameleonPi siirtyy RaspberryPi:n asetusvalikkoon. Valitse OVERCLOCKING. HUOM! TURBO on aivan liian kova ylikellotus ? ChameleonPi on tällä kellotuksella nurin jatkuvasti ja harvoin edes latautuu. Valinta HIGH sen sijaan toimii hyvin. Jos nyt kuitenkin valitsit Turbon ja startti näyttää mustaa ruutua, ei hätää. Raspberry Pi:n ohjein pidä startissa SHIFT-näppäin pohjassa, ja pääset säätämään uudelleen asetusta. Jos tämä ei auta, on asennus korruptoitunut ja uusi asennus on välttämätön. Mikäli ylikellotus ei riitä, suosittelen rinnakkaiskorttia, jossa Pimame ja MAME-pelit ? sen ylikellotuskesto on parempi.

PELAAMISEN ALOITTAMINEN

Tämän jälkeen on vuorossa pelien, eli ROMien lisääminen. HUOM! Tämä blogikirjoitus on kirjoitettu siltä pohjalta, että ROMit ovat laillisesta lähteestä eivätkä riko tekijänoikeuslakia!MACilla SD-kortilla näkyy ROMS-kansio (laajentamisen jäljeen folderin nimi voi olla myös NO NAME ? eli nimetön partitio), jolloin pelit voi pudotella kansioon ilman erillisiä toimenpiteitä. Windowsilla joutuu käyttämään etä- tai FTP-yhteyttä, joka tietysti on RPi:n ominaisuus. Ohjeet tähän siirtoon löytyvät ChameleonPi:n kotisivulta.

KÄYTTÖ

ChameleonPi:n käyttö on todella helppoa. Sivuttaisvalinnoilla valitaan käytettävä emulointialusta ja enterillä startataan. Voiko helpompaa olla? Ei. Tämä onkin ChameleonPi:n hienous ? emulaattorit toimivat upeasti ja käyttöliittymä on selkeä ja hienon näköinen. Fiilis on kuin pelaisi ?oikealla? pelikoneella. Jokainen emulaattori on toki omanlaisensa ja asetuksia kannattaa tehdä etenkin ohjaimien osalta. Vaikka ohjeet ohjainkonfigurointiin ovat hieman kiven alla, ei kannata lannistua... Jokaiseen emulaattoriin löytyy netistä ohjeistus, kun aluksi tutustuu mitä emulaattoreita ChameleonPi käyttää (tässä lista käytetyistä emulaattoreista).
Kun pelaaminen lopetetaan, kannattaa tehdä sammutus hallitusti. Poistu emulaattorista ChameleonPi:n päävalikkoon ja paina Q-kirjainta (Quit). Tämän jälkeen odottele, kunnes ruudulta ei enää näy mitään ja kytke virta pois. Tällä toiminnalla pidät kortin asennuksen hyvässä vedossa - ja vältyt ärsyttäviltä bugituksilta ja asennuskorruptiolta.

CHAMELEONPI JA COMMODORE 64 - PROJEKTIN LÄHEMPI TARKASTELU

Usein preferenssi retropelaamiselle on se lapsuudesta tuttu pelikone. Omassa tapauksessani se on 80-luvun legendaarinen Commodore 64, jonka pelaamiselle on uhrattu satoja tunteja... Ja uhrataan edelleen! Halusin rakentaa RaspberryPistä "kannettavan" C64-systeemin, jossa on kaikki pelaamisen kannalta olennainen valmiina kannettavaksi oluenhuuruisiin peli-iltoihin. Ohessa muutama kuva projekstista:

Kaikki on paketoituna pieneen Curverin työkalupakkiin, jossa on myös USB-virralla (välissä 150OHM resistori) toimiva punainen led virtaindikaattorina. Samaan pakettiin tuli myös tehtyä muutama tarra - selkeämmin nostamaan halvan kotelon profiilia.

Kokonaisuus on juuri niin kotikutoinen, kuin voisi kuvitellakin, mutta ainakin omasta mielestäni tässä yhdistyy onnistuneen projektin kaksi aspektia: toiminnallisuus ja... No... Ei siitä hienoa saa silmälle vaikka kuinka yrittäisi itseään huijata. Kompakti paketti se on ainakin - saa nopeasti piilotettua.

ChameleonPi:n asetusten lisäksi C64-emulaattoriin tarvitaan muutama muutos, jotka tarvitsee tehdä vain kerran. Tärkeimpänä lienee ohjainten asetus. F12 avaa Vice-emulaattorin päämenun. Valitaan MACHINE SETTINGS >JOYSTICK SETTINGS. Asetetaan JOYSTICK DEVICE IN PORT 1 & 2 arvoiksi Joystick. Tämän jälkeen tehdään JOYSTICK 1 & 2 MAPPING. Asetusten tekeminen on helppoa - valitaan joystickeista up, down, left, right ja fire. Tämä toistetaan molemmilla ohjainporteilla. Sitten asetus tallennetaan. Siirrytään oikealla nuolinäppäimellä päävalikossa kohtaan SETTINGS MANAGEMENT > SAVE JOYSTICK MAP. Se on siinä.

Tämän jälkeen on hyvä säätää hieman C64-ominaisuuksia. Päävalikosta siirrytään jälleen MACHINE SETTINGS > MODEL SETTINGS. Itselläni on käytössä uusimman C64C:n emulointi, eli C64C PAL ja SID-settinginä (ääniasetus) MOS-piirin 8580 RESID + DIGIBOOST-asetus. Tämän jälkeen jälleen siirrytään SETTINGS MANAGEMENTiin ja valitaan SAVE CURRENT SETTINGS. Se on siinä! Kannattaa tehdä tässä vaiheessa emulaattorin hallittu sammutus, eli päävalikosta QUIT EMULATOR - ja käynnistää se tämän jälkeen uudelleen. Kaiken pitäisi toimia nyt defaultina sillä kokoonpanolla mikä sinulla on käytössäsi - ilman lagia tai pätkimisiä!

Pelit ladataan valitsemalla AUTOSTART IMAGE, jonka jälkeen - jos olet laittanut ROMit oikeaan kasioon - pelit valitaan lataamastasi kansiorakenteesta. Pelit latautuvat nopeasti ja VICE emuloi Commodore 64:ää todella hyvin!

HUOMAUTUS! Joskus emulaattori ei tunnista käynistyttyään ohjaimia - tämä ratkeaa sulkemalla emulaattori ja käynnistämällä se uudelleen! Tätä käy harvoin. Ohjainten löydyttyä ne eivät enää "putoa" pois, vaan toimivat koko pelisession ajan. Ilmeisesti kyseessä ChameleonPi:n "ominaisuus", josta kuitenkin laitoin s-postia tekijätiimille. Lupasivat selvittää asiaa.

LOPUKSI

Tällä hetkellä ei parempaa aidon C64.n korviketta ole. HDMI-kuva toistuu tarkkana ilman haamukuvia, mikä tekeekin laitteesta ehdottomasti hankkimisen arvoisen kaikille C64-diggareille! Joystick-adapterit tekevät laitteesta alkuperäisenveroisen myös pelituntumassa - saattaa olla, että tämä jää pysyvästi olohuoneeseen vanhan "klassikkokoneen" siirtyessä lasivitriiniin myöhempien polvien ihmeteltäviksi.

Kirjoittanut: klo    0 kommenttia