Inhoudsopgave:

Dynaframe - een functierijk foto- / videoframe! - Ajarnpa
Dynaframe - een functierijk foto- / videoframe! - Ajarnpa

Video: Dynaframe - een functierijk foto- / videoframe! - Ajarnpa

Video: Dynaframe - een functierijk foto- / videoframe! - Ajarnpa
Video: Dynaframe 2 - Ultimate Raspberry Pi Photo AND Video Frame (Updated!) 2024, Juli-
Anonim
Image
Image
Dynaframe - een functierijk foto- / videoframe!
Dynaframe - een functierijk foto- / videoframe!

Opmerking: ik heb besloten dit in de remix-inhoud op te nemen! Overweeg me alsjeblieft als je dit project leuk vindt!

Hoi! Dynaframe is een digitale fotolijst die anders wil zijn. Ik heb de tientallen implementaties bekeken die er zijn, maar ze voelden allemaal aan als verheerlijkte diavoorstellingen, en velen van hen waren moeilijk te updaten (bijvoorbeeld omdat de MicroSD-kaart moest worden verwijderd). Dus ik leerde een beetje python en gaf er mijn eigen draai aan. Dit zijn de functies die Dynaframe heeft (de meeste zijn gedemonstreerd in de trailervideo hierboven)

  • Externe uploads - Eerst en vooral wilde ik geen SD-kaart aanraken om deze bij te werken. Dynaframe ondersteunt het updaten van de media via een bestandsshare, en als je Allsync gebruikt, kun je het updaten via de cloud. Ik kan (en moet) wachten op een olieverversing en zoeken naar illustraties om mijn digitale lijst thuis bij te werken!
  • Video-ondersteuning - Het ondersteunt zowel afbeeldingen als video's. Dit betekent dat het ook ondersteunt:

    • Plotagrafen - Deze worden gemaakt wanneer u video-elementen toevoegt aan stilstaande beelden (Plotaverse/Werble-apps kunnen dit bijvoorbeeld doen)
    • Cinemagraphs - Dit zijn wanneer je delen van een video bevriest om het bijna als een geanimeerde-g.webp" />
  • Ondersteuning voor domotica (MQTT met besturing via Node-Red)

    Dynaframe kan MQTT-berichten ontvangen om te vertellen welke afspeellijst moet worden afgespeeld. Hierdoor kan het worden bestuurd via veel domoticasystemen en zijn verbazingwekkende scenario's mogelijk, zoals het tonen van filmposters wanneer je Netflix start, of het tonen van gamekunst wanneer je je aanmeldt bij Xbox Live. Dit kan ook worden gebruikt om aanwezigheidsdingen te doen, zodat wanneer een persoon de kamer binnenloopt, hun favoriete kunstwerk wordt weergegeven

  • Ondersteuning voor afspeellijsten - Dynaframe ondersteunt het afspelen van media in mappen en behandelt elke map als een 'afspeellijst'. Dus als je je media zo organiseert dat je stripillustraties in de ene map hebt, sportillustraties in een andere en filmposterillustraties in nog een andere… je kunt selecteren welke mediamap je wilt afspelen en het zal er doorheen bladeren. Hierdoor kan de ruimte waarin Dynaframes zich bevinden 'stemmingen' hebben. Soms stel ik de mijne in om game-artwork te spelen, soms film-artwork. Soms sciencefiction, soms fantasy. Als ik in een 'maker-modus' ben, zet ik het op een map met patentillustraties en schema's. Ik heb geprobeerd om het flexibel, maar gemakkelijk te gebruiken te maken.
  • Afstandsbediening - Elk Dynaframe ondersteunt een webserver, zodat u naar het frame kunt bladeren en een gehoste webpagina krijgt die de afspeellijsten toont. Je kunt dan eenvoudig afspeellijsten wijzigen. Omdat het een webserver is, kunt u dit doen vanaf elk besturingssysteem met een browser of apparaat. Dit betekent dat je het tegenwoordig kunt bedienen met telefoons, tablets, pc's en zelfs sommige televisies.
  • Energiezuinig - Dit heb ik opgelost via Zwave en domotica, maar in wezen is Dynaframe ontworpen om op geen enkele zinvolle manier naar de SD-kaart te schrijven (het logt alleen hier en daar). Dus je kunt het plotseling uitschakelen en opnieuw opstarten en het komt goed. Ik heb maandenlang zonder problemen meerdere frames gebruikt en ze gaan uit met mijn lichten als ik de kamer verlaat. Desondanks, als je de frames een heel jaar aanhoudt, kost het ongeveer $ 13,00 per stuk, uitgaande van $ 0,08 per KW/h. (Met Zwave en 3 uur per dag komt het neer op ongeveer $ 1,50 per jaar!
  • Open source / gratis software - Ik had een aantal oplossingen gevonden die maandelijkse betalingen / servicecontracten vereisten. Ik ben gewoon een hobbyist en was op zoek naar iets waar ik, zodra ik de hardware had, gewoon software kon laden en gaan. Ik heb de software op GitHub gezet zodat anderen ze kunnen gebruiken, bijwerken en functies kunnen toevoegen als ze dat willen.

Hopelijk begrijp je met die lijst waarom ik het werk heb gedaan om het wiel opnieuw uit te vinden. Ik ga dit in de Remix-wedstrijd doen, maar het is niet zozeer een remix van één ding, maar een remix van een stuk of tien:)

Stap 1: Stap 1: Wat heb je nodig om dit te doen!?

Ok, de eerste dingen eerst..wat hebben we nodig?

  1. Raspberry pi 3 - het brein van de operatie
  2. Een korte HDMI-kabel
  3. LG MK430H-B IPS 27-inch monitor (Je kunt elke monitor gebruiken die je wilt, maar dit is wat ik heb gebruikt)
  4. Micro SD kaart
  5. Ophangset voor fotolijstjes van draad
  6. Superlijm

Optioneel, maar handig voor uitgebreide functies of een strakker uiterlijk:

  1. Z Wave-stekkers (voor in-/uitschakelen via home-automaion) -
  2. Een opstelling voor huisautomatisering die MQTT ondersteunt (zoals HomeSeer, Home Assistant of Smart Things
  3. Kabel die leidingen verbergen (meestal alleen een plastic rail om draden door te leiden … dit helpt de draden te verbergen die van de frames komen)
  4. Verf - Dit is om de verhullende leiding af te stemmen op uw muren. Ik vind dat als je de tijd neemt om dit te doen, het helpt bij de illusie dat de frames gewoon zweven. De andere manier om dit te doen is natuurlijk om de draad in/door de muur te laten lopen, maar dat valt buiten het bestek van deze instructable

Stap 2: Stap 2: Het frame in elkaar zetten

Stap 2: Het frame in elkaar zetten
Stap 2: Het frame in elkaar zetten
Stap 2: Het frame in elkaar zetten
Stap 2: Het frame in elkaar zetten

Er is hier eerlijk gezegd niet veel magie. Bekijk de afbeeldingen om te zien wat ik gebruikte… Ik heb de ophanghardware aan beide zijden van de achterkant van de monitor superlijmde, de draad erdoorheen gehaald en vervolgens met één spijker in een stijl in de muur gemonteerd. De monitoren zijn niet erg zwaar, maar als dat nodig is, gebruik dan een schroef met een anker. Je kunt elke monitor gebruiken die je wilt, monteer hem gewoon dienovereenkomstig … als je bijvoorbeeld een 37-inch tv gebruikt, wil je daarvoor een muurbevestigingsset maken (ik gebruik eigenlijk een tv aan de muur als een van mijn kozijnen!)

Het enige andere waar je je zorgen over hoeft te maken, is de Raspberry pi … Ik heb hem gewoon dubbel op de achterkant van de monitor geplakt. Er hoeft niet veel finesse te zijn. Ik voeg geen ventilatoren of actieve koeling toe … de frames drijven de Pi niet te hard aan.

Het voordeel van ophangen aan een enkele spijker is dat je er gemakkelijk voor kunt zorgen dat alles waterpas staat zonder dat je nog meer gaten in de muur hoeft te maken. Houd er ook rekening mee dat er een versie hiervan is waarbij je de lijst uit elkaar kunt halen en je eigen lijst van hout kunt maken om dit meer op een fotolijst te laten lijken… een van mijn doelen toen ik dit maakte, was om het in zo'n manier dat ik de monitor niet vernietigde, voor het geval ik besloot dat ik het effect niet leuk vond (ik vond het uiteindelijk geweldig!). Ik heb om deze reden gekozen voor monitoren met dunne, eenvoudige bezels. Ik monteer ze ook verticaal om ze zoveel mogelijk op fotolijsten te laten lijken!

Stap 3: Stap 3: Gebruik de kant-en-klare Raspberry Pi-afbeelding

Image
Image

Er zijn twee opties om dit te bouwen. Ik zal beginnen met de eenvoudige, namelijk om een Raspberry Pi af te beelden met een afbeelding die ik heb voorbereid en die de meeste andere stappen voor je doet. Als je echter meer controle over de afbeelding wilt, zal ik de stappen bespreken van wat je nodig hebt om het handmatig in te stellen. Dat zou u in staat stellen om dit toe te voegen aan een afbeelding die mogelijk andere functies heeft die u wenst, zoals domoticasoftware, MQTT-servers, enz.

Houd er rekening mee dat de video u door de stappen voor het 'kant-en-klaar'-gedeelte leidt. Ik zal de andere stappen in deze instructable doornemen, zodat deze echter volledig is gedocumenteerd.

Om de kant-en-klare versie te gebruiken, gebruikt u Etcher om de volgende afbeelding naar een MicroSD-kaart te schrijven:

1drv.ms/u/s!AqxjM4_uBDJguOsrwD3z4ovMJwFF9g (bijgewerkt 6/7/2019)

Die afbeelding is een volledige Raspberry pi-afbeelding die één ding mist, een python-bibliotheek. Om alles in te stellen wat u wilt:

  1. Start die afbeelding op een raspberry pi 3 of hoger (3B+ zou goed moeten werken)
  2. Start een opdrachtregel en voer raspi-config. uit
  3. Stel het wachtwoord in op iets veiligs
  4. Stel je wifi in
  5. Stel de hostnaam in op iets unieks maar beschrijvends voor elk frame dat u instelt
  6. Als je klaar bent, sla je op en start je opnieuw op. Voer 'ifconfig' uit om het IP-adres van het frame te krijgen (dit moet worden weergegeven als WLAN0)
  7. Voer het commando uit: "sudo pip3 install paho-mqtt". Hiermee wordt een kritieke bibliotheek geïnstalleerd die buiten de afbeelding is weggelaten
  8. Opnieuw opstarten

Volgende: Kopieer bestanden naar de raspberry pi door naar het ip-adres te navigeren, zoals: \{ipaddress}\Frame

Maak in die map een submap aan voor elke 'playlist' die je wilt en plaats er minimaal één bestand in (jpg, mov of mp4). Vervolgens kunt u naar https://{ipaddress}:8000 navigeren om de web-UI te zien, en u zou de vermelde mappen moeten zien. Zo ja, dan heb je alles goed ingesteld en ben je klaar om te rocken en rollen! Makkelijk.. toch? Nou, zo simpel als ik het voor nu kon maken:)

Opmerkingen over de afbeelding:

1) Samba is geïnstalleerd en geconfigureerd, maar geconfigureerd voor gast. Je zult dat willen vergrendelen als je wilt dat het beveiligd is.

2) Het standaard wachtwoord/login is pi / raspberry. Dat is het standaard Raspbian OS-wachtwoord. Daar wil je zeker verandering in brengen!

3) SSH EN VNC zijn ingeschakeld, dus u kunt de pi op afstand beheren om deze indien nodig te beheren.

4) De map 'logs' in de Frame-share bevat een cronlog… als er iets ontploft, is dat waar het logboek zich bevindt.

5) Samba deelt de map 'Frame'. Dit is waar uw media naartoe moeten gaan..in submappen!

6) Er staat een webserver op die geen auth heeft. Dit maakt het gemakkelijk om naar het IP-adres (poort 8000) van het frame te navigeren om het te bedienen, maar ik zou het niet extern blootstellen zoals het nu is ingesteld.

7) De standaardinstelling voor deze afbeelding is de portretmodus (verticaal). Als je dit wilt veranderen naar horizontale modus, kijk dan op: https://www.ceos3c.com/open-source/rotate-screen-r… om de juiste instelling te wijzigen.

Op dit punt ben je op de 'gemakkelijke manier' aan de slag. Er zijn twee bonussen die u misschien wilt toevoegen:

1) Een slimme domotica-stekker is handig als je al een Zwave-schakelaar hebt in de kamer waar je deze installeert. Vervolgens kunt u automatiseringen instellen om dingen te doen om het frame synchroon te houden met de kamerverlichting. Als ik bijvoorbeeld mijn lichten in mijn makerspace aanzet, gaan mijn frames mee aan. Als ik ze uitzet, gaan de frames uit. Om dit te doen, voedt u de monitor zelf eenvoudig met de stekker. Je kunt er ook voor kiezen om de pi van stroom te voorzien … het voordeel als je dat doet, zijn snelle opstarttijden … maar je verliest het stroomverbruik van de pi. Om echt 'groen' te zijn houd ik mijn pi's en mijn monitoren aan de stekker, en zet ik beide uit, maar het is echt jouw keuze.

2) Allwayssync (https://allwaysync.com/). Ik gebruik deze software om mijn onedrive / cloudopslag te synchroniseren met de Dynaframe samba-shares. Deze software kan in twee richtingen synchroniseren, conflictbeheer en meer. Ik vind het handig en het heeft voor mij heel goed gewerkt.

De rest van deze instructable zal praten over de 'handmatige' manier om dit in te stellen, en waar nodig dieper ingaan op de Zwave setup / Allwayssync.

-

Stap 4: Stap 4: Stappen voor handmatige installatie

Als je de stappen ver doorloopt, ga ik ervan uit dat je een beetje weet over Linux en hoe je een raspberry pi kunt configureren. In dat geval is hier de lijst met dingen die u wilt doen. Wat geweldig is aan deze lijst, is dat ik Instructables hier heb gebruikt om dit uit te zoeken, dus ik zal direct teruglinken naar de Instructables die dit mogelijk hebben gemaakt:)

1) Kloon de repository op: https://github.com/Geektoolkit/Dynaframe in een map met de naam "Frame". Ik zal naar deze Frame-map verwijzen voor de rest van de instructable om consistent te zijn, zodat als je het iets anders wilt noemen, je weet over welke map ik het heb. Dit is waar het show.py-bestand moet staan.

2) Stel show.py in als uitvoerbaar

3) Installeer Python 3, evenals feh, Samba en omxplayer. Deze zijn nodig voor het uitvoeren van de scripts

4) U wilt pip3 gebruiken om paho-mqtt (sudo pip3 install paho-mqtt) te installeren, evenals de HTTP-bibliotheken voor python.

5) Stel een bash-script in om show.py te starten bij het opstarten. Ik gebruikte dit instructable:

www.instructables.com/id/Raspberry-Pi-Laun…

6) Als u wilt dat het in de portretmodus staat, stelt u de juiste waarde in voor schermrotatie. Zorg ervoor dat OpenGL-stuurprogramma's NIET zijn ingeschakeld (anders wordt de rotatie genegeerd … dit heeft me enkele uren van mijn leven gekost om te debuggen:))

www.ceos3c.com/open-source/rotate-screen-r…

7) Stel Samba in om de Frame-map te delen. Ik weet niet meer wat ik hiervoor deed, maar deze stappen zijn goed beschreven;

everyday-tech.com/samba-share-on-your-rasp…

8) Configureer VNC en SSH zodat u de pi op afstand kunt beheren (raad dit ten zeerste aan, tenzij u met toetsenborden wilt rondlopen om ze later te beheren)

Op dit punt zou het python-script moeten starten bij het opstarten, je zou in staat moeten zijn om de pi op afstand te beheren, het python-bestand te laten draaien en afbeeldingen en video's te zien laden.

9) Een optioneel onderdeel … u zult waarschijnlijk het IP-adres statisch willen instellen. Stel de hostnaam zeker in op iets unieks als er niets anders is, zodat u het kunt gebruiken om het apparaat te pingen / naar de webpagina te navigeren voor controle

Als er veel vragen zijn, kan ik dit meer invullen. Ik heb de afbeelding gemaakt zodat de meeste mensen niet al deze stappen opnieuw hoeven te doorlopen!

Laten we nu een beetje door de code lopen, zodat u weet waar u deze moet bewerken als u ervoor kiest …

Stap 5: Stap 6: Codedoorloop

De code staat op:

github.com/Geektoolkit/Dynaframe

Ik zal het niet allemaal doornemen, maar ik wil wel wijzen op enkele belangrijke onderdelen:

In 'show.py' zijn er gedeelten die de MQTT-server instellen. Deze moet je configureren als je domotica gaat gebruiken om je schermen te bedienen. Dit gedeelte staat bovenaan, dus het is gemakkelijk te bewerken en ziet er als volgt uit:

# pas aan voor gebruik! brokeraddress = "test.mosquitto.org" # u kunt dit gebruiken als testbroker, of msoquitto op een rpi instellen als interne broker

mqttclient = "dynaframe1" # moet uniek zijn voor elk frame…

makelaarspoort = 1883

abonnementsnaam = "jfarro/house/makerspace/display" # dit moet een tekenreeks zijn die uniek is en beschrijft waar uw frame is

De "Webpagebody" die in de code wordt genoemd, is een lange reeks die wordt teruggestuurd wanneer een browser naar het frame navigeert. In die string zie je de CSS die moet worden bewerkt als je de webpagina wilt configureren die wordt geserveerd om … mooier te zijn:) Ik ben soms niet zo goed in ontwerpen. Het kan zeker verbeterd worden.

Deze variabele:

refreshInterval = 30 # aantal seconden tussen afbeeldingen in een diavoorstelling

is hoe u de tijdsduur instelt dat de afbeeldingen worden weergegeven. Het is een van de dingen die je misschien wilt configureren als je niet wilt dat pagina's om de 30 seconden worden omgedraaid (hoewel ik het verfrissend vind … ik heb altijd nieuwe kunst te zien!)

Oké, dit zijn de belangrijkste codesecties die je wilt bewerken om deze 'van jou' te maken. Het is geheel vrijblijvend, maar ik wilde het er toch even op wijzen.

Stap 6: Stap 7: Wat nu? en enkele tips…

Stap 7: Wat nu? en enkele tips…
Stap 7: Wat nu? en enkele tips…
Stap 7: Wat nu? en enkele tips…
Stap 7: Wat nu? en enkele tips…

Hopelijk is alles goed gegaan en, als je dit aan het bouwen bent, heb je een werkende Raspberry Pi aangedreven digitale fotolijst die video's en een heleboel andere gadgets en gimmicks ondersteunt! Ik ben nog bezig om hier functies aan toe te voegen.. Vervolgens wil ik de mogelijkheid toevoegen om web-urls te gebruiken voor afbeeldingen, RSS-feeds of websites zoals verkeer/weer. Ik zou kunnen zien dat dit kunstdisplays zijn die in een oogwenk functioneel kunnen worden … zelfs tijdelijke game- / emulatieschermen worden (via een Bluetooth-controller). Ik zal dit instructable bijwerken als ik dingen toevoegen.

Enkele snelle tips:

1) Dit is ontworpen om op 1080p te draaien. 4K zou geweldig zijn, maar dan stijgen de kosten van alles, en ik werkte met een richtprijs van $ 150 (die ik een beetje miste)

2) De Raspberry Pi 3 A+ was niet uit toen ik deze maakte. Het is een veel beter geschikte module en verlaagt de prijs met 10 dollar!

3) Omdat het is ontworpen voor 1080p, werken alle illustraties het beste als je het formaat wijzigt naar 16:9 (of 9:16 als portret) en 1080p. Daar krijg je de scherpste beelden

4) Om uitstekende leuke inhoud te maken die beweegt (waar dit echt uitblinkt), kun je Werble (iPhone) of Plotaverse (of Enlight's suite) gebruiken. Als u zoekt op 'plotoagraph' en 'cinemagraph', kunt u hier een aantal geweldige inhoud voor maken die ze echt laat schitteren.

5) Als u zoekt naar illustraties van 9:16 / 1080p, komt u misschien op een aantal sites die achtergrondbehang voor mobiele telefoons ontwerpen … dat is een geweldige bron van kunst. DeviantArt was ook geweldig.

6) Als je op youtube zoekt naar 1080x1920, zul je videocontent vinden die goed werkt op deze frames!

Ik denk dat dat het voor nu is. Ik blijf gaandeweg toevoegen. Ik hoop dat je de video's kunt zien die ik heb gemaakt en wat ik hier heb gedeeld … dit zijn IMO een stap ver boven alle fotolijsten die er zijn! Bedankt, en tot de volgende keer…

Overweeg alsjeblieft om op mij te stemmen voor de 'remix'-wedstrijd als je dit leuk vindt!

Aanbevolen: