Sziasztok,
készítettem egy digitális képkeretet hogy a nagymamám is tudja értékelni a digitális fényképezés örömeit.
Az eredeti ötlet innen származik.
Tulajdonságai:
- Nagy megjelenített fényképméretek (2db 21x14 és 2db 14x9)
Így viszonylag messziről is jól látható.
- Fekvő képben csak fekvőkép, állóban csak álló kép megjelenése.
Maximális helykihasználás :)
- Automatikus szinkronizáció a saját google drive és dropbox felhőtárhellyel (akár többel is)
Hát mert ki akar pendriveval, memóriakártyával futkosni, feltöltögetni, visszadugni...
- Képmegjelenítés offline módban is működik.
Így nem kell mindig a neten lógnia főleg ha valahol nincs.
- Automatikus fénykép átmásolás pendrive csatlakoztatásakor.
Ha már nincs net legyen elég rádugni ne kelljen még másolgatni ...
- A felső két képmegjelenítőn csak a frissen feltöltött képek jelennek meg.
Így könnyen észrevehető a friss képek érkezése. Főleg ha már több száz van rajta.
- Kettő vagy több helyen sosem jelenik meg egyszerre ugyanaz a kép.
Jól sem nézne ki meg értelme sem lenne.
- Automatikus status info (képek száma, üres tárhely,…) készítése pendrivera csatlakoztatásakor
- Internet kapcsolat: Wifi, Ethernet vagy 3G (opcionális)
- Szinkronizálás minden bekapcsoláskor és/vagy tetszőlegesen beállítható időközönként.
- 32gb tárhely
Vagy amennyit akarsz ill veszel bele az sd kártyának.
- Standard 40x50 képkeret
Csak mert az olcsó és sokféle van. így tényleg egyedi lesz.
- Teljesen egyedi megjelenés
Ha ezek után építenél te is egyet ezekre lesz szükséged:
- Raspberry pi3 (Valószínű a kettővel is elmegy. de ebbe már van wifi meg Bluetooth)
Táp
Sd-kártya
Ház
-Monitor
-Képkeret
Paszpartu
-Ragasztópisztoly
-Csatlakozó a monitor és a Pi közé (DVI-HDMI)
Először képekkel hogy áll össze:
Tehát fogunk egy monitort meg egy képkeretet.
A monitorról levesszük az első műanyag borítást. Ill kivesszük a képkeretből a hátsó falapot. Itt én 3mm-es bútorhátlapot használtam mert volt itthon és stabilabbnak tűnt.
Majd körberajzoljuk a monitort és a keretet is. Jó ha van segítség :DD
Majd kivágjuk és ráragasztjuk a monitorra (én ehhez ragasztópisztolyt használtam)
Mivel nem szerettem volna több madzagot kijönni a gépből, max. 1-et, így én a monitor tápkábel bemeneteléhez forrasztottam egy 230-as vezetéket, aminek a végére tettem egy dugót. Ebbe megy majd a pinek a tápja.
Így néz ki hátulról összeragasztva 230 kivezetve:
Paszpartu felragasztása (mind a 4 sarokba egy-egy csepp pillanatragasztóval) A "milliméter papír" (monitorral kivetítve) segített pontosan beállitani a vízszintest és függőlegest. Ill később is jól jön a képek pontos pozícióba hozásában.
És végül az elkészült hátulja és eleje a rendszernek:
Ha ezzel megvagyunk nincs más hátra mint feltölteni ill beállitani a programokat.
Szoftver lépésenként:
1. installáljuk a raspbiant (idő, időzóna, nyelv beállítás)
2. Képernyőkímélő ill a sleepmod kiiktatása
Megnyitjuk a config filet:sudo nano /etc/kbd/config
majd ezt két bejegyzést "0"-ra állítjuk
BLANK_TIME=0
POWERDOWN_TIME=0
3. Egérmutató, szemetes menü eltüntetése
Bár az egeret a képnézegető is tudja tüntetni, de én beállítottam alapból, hogy ha nem használjuk az egeret, tűnjön el. Azt hiszem így:
sudo apt-get install unclutter
unclutter -display :0 -noevents -grab
4. Programok installálása:
Először:sudo apt-get update
-feh Ez tulajdonképpen a képmegjelenítősudo apt-get install feh
-exiftool Ezzel olvassuk ki az exif adatokatsudo apt-get install exiftool
-convert Sajna a feh képmegjelenítő nem forgatja a képeket. Így ezt ezzel kell megtenni.sudo apt-get install imagemagick
-rclone Ez szinkronizál a google drive ill a dropboxal
http://rclone.org/install/
-crontab gui Ez csak akkor kell ha grafikus környezetben szeretnéd állogatni mondjuk a szinkronizálási időköztsudo apt-get install gnome-schedule
-mc Ez meg akkor ha ssh keresztül is egy felhasználó barátabb filekezelőt akarsz használni :)sudo apt-get install mc
5. Gdrive / Dropbox regisztráció
Azt hiszem ezt nem kell ecsetelni.
6. Rclone beállitása
http://rclone.org/docs/
7. Szinkronizáló szkript megírása/ helyére tevése (/home/pi/Script/)nano ~/Script/StartSync.sh
Tartalmát tekintve nálam igy néz ki:
http://pastebin.com/mrsaLS5y
Figyelem, ez a szkript csak egy irányba szinkronizálja a képeket. Tehát mindig csak az számít ami a neten van.
8. Képnézegető indító szkriptnano ~/Script/StartSlideshow.sh
Tartalma nem bonyolult:
#!/bin/sh
DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority /usr/local/bin/feh --zoom fill -B white -Y -r -g724x490+7+7 -D40 -x -z -f ~/Script/FrissFekvo &
DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority /usr/local/bin/feh --zoom fill -B white -Y -r -g325x490+948+7 -x -D45 -z -f ~/Script/FrissAllo &
DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority /usr/local/bin/feh --zoom fill -B white -Y -r -g724x490+550+531 -x -D30 -z -f ~/Script/RegiFekvo &
DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority /usr/local/bin/feh --zoom fill -B white -Y -r -g325x490+7+531 -x -D35 -z -f ~/Script/RegiAllo &
exit
a "-g" kapcsoló után adjuk meg a megjelenített képek pontos méretét illetve helyét a képernyőn.
A többi kapcsolót a feh manuáljából keresd ki ha érdekel...
9. Crontab beállítása hogy mikor szinkronizáljon.
10. Képnézegető automatikus indítás beállítása.
Képnézegető automatikus indítása induláskor:nano /home/pi/.config/autostart/startSlideShow.desktop
Tartalma:
[Desktop Entry]
Name=Slideshow
Type=application
Exec=/home/pi/Script/StartSlideshow.sh
Szinkronizálás automatikus inditása induláskor:nano /home/pi/.config/autostart/startSync.desktop
Tartalma:
[Desktop Entry]
Name=StartSync
Type=application
Exec=/home/pi/Script/StartSync.sh
11. Szkript indítás beállítása usb fogadásakor. Ill Szkript megírása.
Ehhez kell egy szkript, ami lekezeli a bedugott usb-t:
Ez mindig ugyanoda mountolja a bedugott pendrive-ot. Majd elindítja a "/home/pi/Script/Usb.sh" szkriptet. Kihúzáskor unmountolja a pendrive-ot.
sudo nano /etc/udev/rules.d/20-myusb.rules
Tartalma
ACTION=="add", KERNEL=="sd[a-d][0-9]", SYMLINK+="usbdisk%n"
ACTION=="add", KERNEL=="sd[a-d][0-9]", RUN+="/bin/mkdir -p /media/usb"
ACTION=="add", KERNEL=="sd[a-d][0-9]", RUN+="/bin/mount /dev/%k /media/usb"
ACTION=="add", KERNEL=="sd[a-d][0-9]", SUBSYSTEMS=="usb", RUN+="/home/pi/Script/Usb.sh"
ACTION=="remove", KERNEL=="sd[a-d][0-9]", RUN+="/bin/umount /media/usb"
ACTION=="remove", KERNEL=="sd[a-d][0-9]", RUN+="/bin/rmdir /media/usb"
Na innen kicsit belekeveredtem meg jött a határidő is szóval kusza lesz.
De figyel... :)
Szóval a fenti sorok biztosítják azt hogy ha bedug egy pendrive-ot, lefut egy szkript, de mint root.
A "/home/pi/Script/Usb.sh"
Tartalma:
#!/bin/sh
echo "Usb csatlakoztatva" > /tmp/usb.txt
chmod -R 777 /tmp/usb.txt
date >> /tmp/usb.txt
su - -c /home/pi/Script/UsbSync.sh pi
echo "Usb Sync végzet" >> /tmp/usb.txt
date >> /tmp/usb.txt
exit
Tehát ez csak annyit csinál, hogy elinditja a "/home/pi/Script/UsbSync.sh" -t, de a "pi" felhasználó nevében :)
A "/home/pi/Script/UsbSync.sh" tratalma:
#!/bin/sh
DATE=`date +%Y%m%d_%H%M%S`
mkdir /home/pi/Pictures/Local/$DATE
chown -R pi /home/pi/Pictures/Local/$DATE
find /media/usb/ -name '*' -exec file {} \; | grep -o -P '^.+: \w+ image' | cut -d':' -f1 | xargs -I{} cp -v {} /home/pi/Pictures/Local/$DATE
chown -R pi /home/pi/Pictures/Local/$DATE
chmod -R 777 /home/pi/Pictures/Local/$DATE
echo "----------------Digitális képkeret informásiós file.--------------------" > /media/usb/Info.txt
chmod -R 777 /media/usb/Info.txt
echo "Az Usb stick ekkor csatlakozott utoljára a képkerethez:" >> /media/usb/Info.txt
date >> /media/usb/Info.txt
echo "" >> /media/usb/Info.txt
echo "-------------------------Tárhely adatok---------------------------------" >> /media/usb/Info.txt
echo "" >> /media/usb/Info.txt
echo "Filesystem Size Used Avail Use% Mounted on" >> /media/usb/Info.txt
df -h | grep root >> /media/usb/Info.txt
echo "" >> /media/usb/Info.txt
echo "---------------------Részletes adatok a képekről------------------------" >> /media/usb/Info.txt
ls -C -s -h -R /home/pi/Pictures/ >> /media/usb/Info.txt
/home/pi/Script/StartSync.sh
exit
Tehát ez nem csinál egyebet, mint az összes képet a penről átmásolja egy frissen létrehozott könyvtárba. Majd ha végzett, ráindítja a szinkronizálást, hogy megjelenjenek a képek a kijelzőn.
Meg persze pár adatot kiir a pendrivera.
12. Örülés :)
Hát ennyi lenne az egész...
Ha valami nem megy, vagy bővebb magyarázatra szorul, kérdezzetek, próbálok segíteni.
Örülnék, ha többen építenétek hasonlót, szerintem az is aki kapja. Persze lehet kreativkodni, képkerettel elrendezéssel...stb.
Programon is van még mit fejleszteni. Ha van jobb, egyszerűbb megoldásod, esetleg beleirsz valami plusz dolgot, oszd meg velünk.
Pl eszembe jutott, hogy ennek a pinek van Bluetooth-ja is. Meg lehetne csinálni, hogy telefonnal rácsatlakozzunk. Bekér egy előre beállitott jelszót. Azt beütve automatikusan küldené a logfilet. Ill igy lehetne rá küldeni képeket is.
Erre már nem volt időm a "leadási határidő" miatt. :)
Mindenkinek sikeres megvalósítást.
2016.06.24