Rakensimme Nuori2017 -tapahtumaan Raspberry Pi -valokuva-automaatin. Pahvilaatikkoon oli asennettu Raspberry Pi -keskusyksikkö, kamera sekä kosketusnäyttö. Ohikulkijan koskettaessa ruutua, alkoi kolmen sekunnin laskenta kuvan laukaisuun. Raspberryn otettua valokuvan, se tallentui langatonta verkkoa pitkin Verken omaan Google Photos -albumiin ja kuvattu kohde pystyi halutessaan kirjoittamaan kosketusnäytölle sähköpostiosoitteensa, johon valokuva lähti automaattisesti ”postikorttina”.
Idea automaattiin tuli Maker-lehden numeron 52 (syyskuu/2016) artikkelista ”Raspberry Pi Wi-Fi Party Photo Booth” (http://makezine.com/projects/raspberry-pi-photo-booth/). Oheisen linkin takaa löytyy alkuperäinen ohje kaikkine tarvittavine koodeineen, joten ohjelmointitaitoja tämä projekti ei edellyttänyt. Joitain muokkauksia alkuperäiseen koodiin teimme, jotta saimme automaatin toimimaan omaan tarkoitukseemme sopivalla tavalla.
Valokuva-automaatin rakennusohjeet:
Tarvikkeet:
Tuotteen nimi | Hintaesimerkki (https://vadelmapii.com/) |
|
1 | Raspberry Pi 3 Model B -keskusyksikkö | 56€ |
2 | Raspberry Pi Camera v2 | 34€ |
3 | Raspberry Pi 7″ Touchscreen Display | 84€ |
4 | EU & UK Power Supply | 11€ |
5 | 16 GB NOOBS SD Card | 12€ |
Yhteensä | 197€ |
Muut ei-pakolliset tarvikkeet
Litteät salkkumaiset pakkauslaatikot | 2 kpl |
Läppäri + virtajohto | 1 kpl |
Musta kontaktimuovi | laatikoiden pinta-alan perusteella |
Raspberry Pi 3 Model B -pohjapiirustus
Vaihe 1. Kosketusnäytön ja kameran liittäminen keskusyksikköön
- Kiinnitä Raspberry Pi -keskusyksikkö kosketusnäyttöön pakkauksen mukana tulevilla ruuveilla.
- Kiinnitä kosketusnäytön lattakaapeli keskusyksikön ”Display DSI”-liittimeen. Kiinnitys on toteutettu jousilukituksella ja ei edellytä työkaluja. Valkoista osaa nostetaan sormin ja samalla lattakaapeli ujutetaan aukeavaan koloon pohjaan asti. Lopuksi valkoinen osa painetaan tiukasti pohjaan, jolloin kaapeli lukittuu. On tärkeää laittaa lattakaapeli oikein päin: kaapelin sininen puoli ja valkoinen lukitsin vastakkain.
- Kytke punainen (5V/virta) ja musta (GND/maa) johto keskusyksikön ja kosketusnäytön piirilevyjen GPIO-pinneihin alla olevan kuvan mukaisesti. HUOM! Tarkista kytkentä kosketusnäytön pakkauksen ohjekirjasesta ennen verkkovirran kytkemistä!
- Kiinnitä kameran lattakaapeli keskusyksikön Camera CSI -liittimeen samoin kuin yllä, eli kaapelin sininen puoli ja valkoinen lukitsin vastakkain.
- Kytke virtalähde verkkovirtaan ja sen USB-liitin Raspberry Pin ”Micro USB Power in” -porttiin.
GPIO-johtojen kiinnitys: Punainen johto keskusyksikön 5V-pinnistä kosketusnäytön piirilevyn 5V-pinniin, musta johto keskusyksikön GND (maa) -pinnistä kosketusnäytön piirilevyn GND-pinniin. Kaksi muuta mukana tullutta johtoa (vihreä ja keltainen) ovat tässä projektissa tarpeettomia ja niitä ei tarvitse kiinnittää.
Vaihe 2. Asennus Raspberry Pi:n seitsemän tuuman näytöltä vs. etähallinta toiselta tietokoneelta suuremman näytön avulla
On kaksi tapaa hallita Raspberry Pi -tietokonetta:
Tapa 1. Suora hallinta: Kiinnitä Raspberry Pi -keskusyksikköön hiiri ja näppäimistö ja käytä näyttönä Raspberryn omaa kosketusnäyttöä.
Edut: Et tarvitse erillistä tietokonetta Raspberryn lisäksi.
Haitat: Huono ergonomia ja hitaus; Selaimen käyttö, ohjelmien lataus ja ohjeiden luku seitsemän tuuman näytöltä ei ole mukavaa, et voi lukea ohjeita ja pitää Raspberry Pin käyttöjärjestelmää näkyvillä samanaikaisesti. Lisäksi sinulla pitää olla erillinen hiiri ja näppäimistö Raspberry Pi:ssä kiinni koko asennuksen ajan.
Jos haluat suorittaa asennuksen ilman toista tietokonetta ja etäyhteyttä, jätä huomiotta VNC-etäyhteyden asennusohjeet ja hyppää ohjeissa suoraan kohtaan ”Vaihe 3”.
Tapa 2. Raspberryn hallinta VNC-etäyhteydellä toisella tietokoneella suurelta näytöltä (suositeltu)
Edut: Voit hyödyntää kannettavan tai suurinäyttöisen työpöytäkoneen ergonomiaa sekä näyttöä Raspberry Pi:n asennukseen ja hallintaan; voit pitää selainta auki suuren näytön toisella puoliskolla, josta voit lukea ohjeita ja samalla pitää samalla näytöllä Raspberry Pi:n näyttöä VNC-etäyhteysohjelman avulla ja täysin hallita Raspberry Pi -laitetta. Raspberry Pi -laite voi olla asennuksen ajan pois tieltä ihan vaikkapa kaapin päällä ja siinä ei tarvitse olla kytkettynä omaa hiirtä tai näppäimistöä. Riittää kun Raspberry on päällä ja kirjautuneena samaan WiFi-verkkoon kuin tietokone jolla sitä hallitset.
Haitat: Tarvitset erillisen tietokoneen etähallintaa varten.
Ota selville Raspberry Pi:n IP-osoite
- Liitä Raspberry Pi paikalliseen WiFi-verkkoon
- Raspberryn IP-osoitteen saat selville kirjoittamalla Raspberryn komentorivillä (CTRL+ALT+T).
ifconfig wlan0
Vinkki: Katso artikkelin lopusta kohta ”Näin tehdään Raspberry Pi:ssä suoritettava sh-tiedosto”, jos haluat lukea IP-osoitteen ilman komentorivin käyttöä.
Päivitä ja kytke päälle Raspberry Pi:n VNC-palvelin
- Päivitä ja kytke päälle Raspbianiin esiasennettu etäyhteyspalvelin (RealVNC Server), jotta siihen voi ottaa yhteyden toiselta koneelta:
- RealVNC-päivitys
sudo apt-get update
sudo apt-get install realvnc-vnc-server realvnc-vnc-viewer - Enabloi VNC server
Menu -> Preferences ->Raspberry Pi Configuration -> Interfaces
Valitse ”Enabled” kohdassa VNC - Avaa VNC Server-asetukset taskbariin ilmestyneestä kuvakkeesta:
More… > Options > Security -> Authentication -> ”VNC password”
Laita haluttu salasana.
- RealVNC-päivitys
Asenna VNC-viewer ja ota yhteyttä Raspberry Pi:hin (Windows / Mac OS X / Ubuntu)
- Kytke PC-, Mac tai Linux -tietokoneesi samaan WiFi-verkkoon Raspberry Pi:n kanssa.
- PC- tai Mac: lataa koneellesi ilmainen RealVNC viewer ja avaa se: https://www.realvnc.com/download/viewer/
Ubuntu: Avaa esiasennettu Remmina-etätyöpöytäsovellus - Laita VNC Vieweriin/Remminaan Raspberryn IP, joka ylempänä hankittiin tietoon
- VNC Viewer/Remmina kysyy salasanaa, kirjoita se salasana, jonka määrittelit ylempänä Raspberry Pi:n VNC-palvelimen asetuksiin.
- Nyt Raspberry Pi:n työpöydän pitäisi aueta etäyhteydellä uuteen ikkunaan ja voit tästä lähtien hallita Raspberry Pi:tä omalla tietokoneellasi. Voit irroittaa Raspberry Pi:stä hiiren ja näppäimistön sekä sijoittaa sen sopivaan paikkaan pois tieltä.
Vaihe 3. Käyttöjärjestelmän säätö ja TouchSelfie-skriptin yhdistäminen Google Photos -albumiin
Seuraa Maker-lehden ohjeita 1-9 (http://makezine.com/projects/raspberry-pi-photo-booth/), joiden avulla asennat ja säädät Raspberry Pin Raspbian-käyttöjärjestelmän ja TouchSelfie -skriptin:
Maker-lehden artikkelin ohjeiden vaihe: | Suomenkielinen selite |
|
Säädä Raspbian -käyttöjärjestelmän asetukset. |
|
Asenna Raspbian-käyttöjärjestelmään projektin edellyttämät ohjelmistopaketit Raspbianin omasta ohjelmistoarkistosta. |
|
Lataa ja asenna TouchSelfie-skripti, jolla valokuva-automaatin kameraa ja käyttöliittymää hallitaan. |
|
Valmistele Google Photos -valokuva-albumin projektin tarpeisiin. |
|
Luo sovelluskohtainen salasana, jolla TouchSelfie saa pääsyn Googlen valokuva-albumiin. |
|
Luo API-avain, jonka avulla TouchSelfie -skripti saa pääsyn Google -valokuva-albumiin. |
|
Yhdistä TouchSelfie Google Photos -palveluun. |
|
Muokkaa TouchSelfien käyttöliittymän viestit ja valokuvaan upotettavat logot haluamiksesi. |
|
Aseta koko ruudun näyttötila päälle, jolloin ruudulla näkyy ainoastaan TouchSelfie -käyttöliittymä ja Raspbian-käyttöjärjestelmä on piilotettu. |
Huomioita Maker-sivujen ohjeisiin:
Kohdat 4. ja 5.
Googlen hallintasivujen käyttöliittymä on ehtinyt hieman muuttua artikkelin julkaisun jälkeen, mutta kaikki tarvittava siellä on.
Kohta 3. ja 9.
Ladatussa TouchSelfie-skriptissä on oletuksena jäänyt koko ruudun näyttötila päälle, se kannattaa ottaa pois päältä rakentamisen ja testaamisen ajaksi. Eli tee kohdassa 3. päinvastoin kuin kohdassa 9. sanotaan eli laita #-merkki seuraavan rivin alkuun photobooth_gui.py -tiedostossa, jos se sieltä puuttuu:
#root.attributes(“-fullscreen”,True)
Kohta 8.
Halutut valokuvan päällä näkyvät logot, kuvakehys tai muut kuvaelementit asetetaan laittamalla valokuvan päälle samankokoinen läpinäkyvä PNG-kuva, jossa logot on asemoitu halutulla tavalla. Tee kuvankäsittelyohjelmalla 1366×768 kokoinen PNG-tiedosto ja tallenna haluamallasi nimellä se samaan kansioon TouchSelfie-skriptin kanssa.
Avaa openselfie.conf ja etsi siitä rivi: ”logopng = logo.png”. Korvaa logo.png oman kuvasi tiedostonimellä ja tallenna.
Jos seinä nousee vastaan ja et pääse ohjeissa eteenpäin, ota yhteyttä allekirjoittaneeseen, niin katsotaan osaanko mahdollisesti auttaa: timi.hagelberg@hel.fi
Vaihe 4. Valokuva-automaatin kotelon rakentaminen
Käytä luovuuttasi! Itse teimme kotelon ja telineen käyttäen kahta hieman eri kokoista kierrätykseen menossa olevaa kartonkipakkausta, jotka olivat salkun muotoisia.
HUOM! Valokuva-automaatin yhteyteen on hyvä laittaa selkeästi tieto siitä, minne kuvat tallennetaan ja mihin niitä mahdollisesti jatkokäytetään.
Vaihe 5. Ota selfie!
Onneksi olkoon! Projekti on valmis ja voit ottaa valokuva-automaatin käyttöön.
Vaihe 6. Hifistelyä: Luo päättymätön diashow valokuva-automaatin kuvista
Laitoimme valokuva-automaatin yhteyteen kannettavan tietokoneen, joka automaattisesti esitti selaimessa https://slidesome.com -palvelussa diaesityksenä kaikkia automaatin nappaamia valokuvia loputtomasti ympäri. Uudet kuvat ilmestyivät diaesityksen loppuun automaattisesti sitä mukaa kun niitä otettiin.
Slidesome-palveluun piti rekisteröityä ja sen ilmaisversio osaa hakea kuvat automaattisesti halutusta Google Photos -albumista. Maksullisessa versiossa pystyi hallitsemaan mm. esitystapaa ja esitettyjen valokuvien kokoa, mutta tähän projektiin maksuttoman version ominaisuudet olivat ihan riittäviä.
Vaihe 7. Hifistelyä: Tee Raspberry Pi:n työpöydälle pikakuvakkeet TouchSelfien käynnistämiseen ja IP-osoitteen näyttämiseen.
Komentojen suorittaminen komentoriviltä käsin on epäkäytännöllistä kosketusnäytön avulla, siksi usein tarvittavat komennot kannattaa toteuttaa shell-skripteinä (eli sh-skripteinä), jotka voi suorittaa työpöydälle sijoitettua pikakuvaketta klikkaamalla.
sh-skripti pitää sisällään tavallisia Linux-komentoja.
Tässä projektissa tarvetta sh-skripteille on näissä tilanteissa:
- Halutaan käynnistää TouchSelfie -skripti
- Halutaan saada selville Raspberry Pi:n WiFi-verkon IP-osoite, jotta siihen voidaan ottaa etäyhteys.
Näin tehdään Raspberry Pi:ssä suoritettava sh-tiedosto, joka käynnistää TouchSelfien:
- Avaa komentoterminaali painamalla <CTRL+ALT+T>, hakemisto on oletuksena kotihakemistosi
- Luo uusi sh-tiedosto työpöydällesi käyttäen Nano-tekstieditorilla seuraavaa komentoa
nano ~/Desktop/TouchSelfie.sh
Vinkki: ~ eli tilde-merkki kirjoitetaan PC-näppäimistöllä painamalla Å-näppäimen oikealla puolella olevaa näppäintä pitäen <ALT GR> pohjassa.
- Kirjoita seuraavat rivit editorilla ja tallenna+sulje lopuksi painamalla <CTRL-X>
#!/bin/bash
python /home/pi/git/TouchSelfie/scripts/photobooth_gui.py - Kirjoita komentorivillä seuraava komento, jotta skripti voidaan suorittaa
chmod 774 ~/Desktop/TouchSelfie.sh
- Suorita sh-tiedosto klikkaamalla työpöydälle ilmestynyttä pikakuvaketta.
- Varmista, että sh-tiedosto suoritetaan komentoina terminaalissa klikkaamalla työpöydän TouchSelfie.sh -tiedostoa oikealla hiirenpainikkeella ja valitsemalla ”Properties” ja valitsemalla ”Open with” kohtaan ”Terminal” alla olevan kuvan mukaisesti.
Näin tehdään Raspberry Pi:ssä suoritettava sh-tiedosto, joka kertoo nykyisen WiFi-verkon IP-osoitteen:
- Avaa komentoterminaali painamalla <CTRL+ALT+T>, hakemisto on oletuksena kotihakemistosi
- Luo uusi sh-tiedosto työpöydällesi käyttäen Nano-tekstieditorilla seuraavaa komentoa
nano ~/Desktop/ShowIP.sh
- Kirjoita seuraavat rivit editorilla ja tallenna+sulje lopuksi painamalla <CTRL-X>
#!/bin/bash
ifconfig wlan0 | grep
inetsleep 15 - Kirjoita komentorivillä seuraava komento, jotta skripti voidaan suorittaa
chmod 774 ~/Desktop/ShowIP.sh
- Suorita sh-tiedosto klikkaamalla työpöydälle ilmestynyttä pikakuvaketta.
- Varmista, että sh-tiedosto suoritetaan komentoina terminaalissa samalla tavalla kuin edellisen osion kohdassa 6.