Sisällysluettelo:
- Vaihe 1: Katsaus ratkaisuun
- Vaihe 2: Hahmon luominen
- Vaihe 3: Asenna OSMC
- Vaihe 4: Määritä lukija
- Vaihe 5: Asenna solmu ja luo projekti
- Vaihe 6: Koodi, selitetty
- Vaihe 7: Kokeile
- Vaihe 8: Käynnistä automaattisesti
Video: Käynnistä lomakuviesi diaesitys ripauksella taikuutta!: 9 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Vuosien mittaan minulla on ollut tapana ottaa pieni hahmo mukanani matkoilla: ostan usein pienen, tyhjän artoyn (kuten kuvassa) ja maalaan sen vastaamaan maan lippua ja teemaa '' m vierailen (tässä tapauksessa Sisilia).
Ajatuksena on ottaa kuvia hahmosta kohtausten tai kuuluisien muistomerkkien edessä mainitusta maasta: Minusta on paljon hauskempaa kuin ottaa kuvia, joissa on vain patsas (siellä on Google ja se on paljon halvempaa), mutta silti helpompaa kuin ottaa olla jokaisessa kuvassa itse (ei fani, ollakseni rehellinen)
Koska on aina hauskaa kerätä ihmiset, joille lähdit lomalle muutaman päivän kuluttua siitä, kun palasit katsomaan kuvia, ajattelin, että olisi hienoa, jos jokainen hahmo voisi jotenkin automaattisesti käynnistää diaesityksen kuvista matkalta, jolle he olivat tehneet.
Tämä opettavainen selittää, miten tein sen käyttämällä NFC: tä, vadelmapiä, nodejsia ja osmc: tä
Vaihe 1: Katsaus ratkaisuun
Koska koko kokoonpano sisältää muutamia asioita, tässä on yleiskatsaus asiaan liittyvistä asioista, jotta voit ymmärtää kaiken seuraavan:
Laitteisto
- hahmo on kotitekoinen: koska kirjoitan tämän ohjeen keskellä viikon pituista matkaa Kööpenhaminassa/Oslossa/Tukholmassa/Helsingissä, sisällytän muutamia otoksia tähän matkaan tehdystä hahmosta
- jokaisen hahmon alla on NFC -siru: Käytän pyöreitä tarroja, jotka mahtuu jokaisen hahmon alle, mutta voit käyttää mitä tahansa muuta muotoa - varmista, että käyttämäsi siru on yhteensopiva lukijan kanssa
- Kuvien näyttämiseen käytän vadelmapiä, johon on asennettu OSMC: se on paras mediasoitin TV -ohjelmille ja elokuville, joten se on jo kytketty televisioon
- Jotta vadelmapi lukisi NFC -tunnisteita, lisäsin NFC -lukijan - jota käytin, on NXP: n Explore -NFC, joka on saatavilla monilla verkkosivustoilla: se kytketään Pi: hen ja toimii suojana
Ohjelmisto
Raspberry Pi -laitteessa NodeJS -skripti odottaa NFC -tunnisteen lukemista: kun tämä on tehty, komentosarja tarkistaa tunnuksensa arvo-/pariluettelosta jokaisen OSMC: n kuvalähteen kansion ja vastaavan NFC -tunnuksen kanssa käyttäjä.
Kun tunniste luetaan, jos tunnus on luettelossa, solmukomentosarja kehottaa OSMC: tä käynnistämään diaesityksen tälle kansiolle. Luettelon luomiseksi/määrittämiseksi sama NodeJS -komentosarja käynnistää skannaustoiminnon 5 minuutin välein: it etsii jokaisen hakemiston OSMC: n "Kuvat" -lähteen sisällä (käyttäen Kodi: n tarjoamaa JSON-RPC-sovellusliittymää) ja lisää sen luetteloon, joka tallennetaan sitten levylle. Muokkaamalla tätä tekstitiedostoa suoraan käyttäjä voi lisätä vastaavan NFC -tunnuksen jokaiselle albumille.
Vaihe 2: Hahmon luominen
Voit käyttää hahmoosi melkein mitä tahansa: pidän näiden vinyylitaidelelujen käytöstä, koska niitä on suhteellisen helppo piirtää jopa kaltaiselleni, joka ei pidä piirtämisestä, ja melko helppo kuljettaa mukana. Tilaan ne tyhjänä, itse tehtyinä versioina, pienimmässä koossa, jota he tulevat, ja piirrän niihin Posca -merkkejä käyttäen. Täältä näet matkan, jonka olen tehnyt tälle matkalle, neljän käymämme maan lippujen kanssa - ne sattuivat olemaan tarpeeksi samanlaisia, jotta voisin yhdistää ne vierekkäin. Voit käyttää useita maalikerroksia, kunhan annat jokaisen kuivua ennen seuraavan maalaamista. Kun olen maalannut, haluan käyttää maalipistoolia muutaman minuutin ajan, koska olen lukenut, että Posca -maalisarjaa auttaa lämpö.
Viimeisessä kuvassa näet Svenin - annan heille aina nimet - tauon Oslossa melko pitkän aamun jälkeen. Hänellä ei ole alkuperäisen lelun päätä, koska onnistuin sotkemaan sen minuutti ennen lähtöä: minun oli purettava edellinen lelu käyttääkseni sen päätä. En voi sanoa, ettei sitä ole koskaan tapahtunut…
Vaihe 3: Asenna OSMC
Ensimmäinen asia, jonka tein, oli asentaa OSMC Micro SD -kortille Raspberry Pi -laitteelle: kokoonpanossamme se toimii mediasoittimena kuvien katseluun. En mene tähän yksityiskohtiin paljon yksityiskohtia, koska se on melko hyvin dokumentoitu (jos tarvitset apua, saatavilla on muutamia Instructable -ohjelmia). Lataa vain asennusohjelma tietokoneellesi ja noudata ohjeita. Kun olin valmis, liitin vain näppäimistön ja hiiren ja HDMI -liitännän televisioon ja seurasin ohjattua asennustoimintoa aikavyöhykkeen määrittämiseksi.
Lopuksi lisäsin kuvien tallentamisen hakemistoon lähteisiin: minun tapauksessani ne on tallennettu NAS -verkkoon, jolla on kiinteä IP -osoite samassa verkossa, mutta voit myös tallentaa ne USB -asemaan tai itse kotikansioon, edellyttäen, että micro SD on riittävän suuri.
Kun lisäät lähdettä, sinua pyydetään antamaan sille nimi: voit jättää oletusarvon tai muuttaa sitä, mutta muista kirjoittaa se muistiin, koska tarvitsemme sitä myöhemmin. Minun tapauksessani kutsuin sitä "MyPictures"
Sinun pitäisi nyt nähdä lisäämäsi hakemiston sisältö ja selata kuviasi: minun tapauksessani minulla on alihakemisto jokaiselle matkalle.
Onnittelut, sinulla on nyt mediakeskus, jossa on kuviasi, ja voit käynnistää diaesityksen tietystä kansiosta (bonuksena voit myös käyttää sitä videoidesi tai musiikkisi toistamiseen)
Vaihe 4: Määritä lukija
Muiden ohjeiden osalta muodostamme yhteyden Pi: hen SSH: n komentorivillä. Voit tehdä tämän yhdistämällä Pi verkkoon Ethernet -kaapelilla ja käyttämällä päätelaitetta tai erillistä sotwarea muodostaaksesi yhteyden Pi: hen. Mac OS- ja Linux -käyttöjärjestelmissä komento on
Sinua pyydetään antamaan salasana, se on osmc uudelleen
Jotta lukija voi toimia, SPI on otettava käyttöön: useimmissa jakeluissa, kuten Raspbianissa, tämä voidaan tehdä käyttämällä raspi-config-määritystyökalua, jonka avulla voit muuttaa joitain määritysarvoja.
OSMC ei kuitenkaan sisällä raspi-configia oman turvallisuutesi vuoksi sitä käytettäessä. Sen sijaan sammuta Raspberry, poista micro SD -kortti ja kiinnitä se tietokoneeseen: "käynnistys" -osion pitäisi nyt näkyä. Siellä, aseman juuressa, näet tiedoston nimeltä "config.txt" - avaa se ja lisää tämä rivi loppuun:
"dtparam = spi = päällä"
Voit nyt tallentaa tiedoston, käynnistää uudelleen ja SPI: n pitäisi olla käytössä.
Sen jälkeen sinun on ladattava liitteenä oleva ZIP -tiedosto ja purettava se vadelmasta - suosittelen luomaan Projects -kansion ja purkamaan sen pakkauksen siellä. Tätä varten voit joko muodostaa yhteyden Raspberryyn käyttämällä FTP: tä SSH: n kautta (käytän sitä CyberDuckilla) tai laittaa tiedoston USB -asemaan ja kopioida se Kodin tiedostonhallinnan avulla Raspberry Pi: hen.
Joka tapauksessa, kun olet kopioinut zip -tiedoston Pi: hen, voit navigoida kansioon, johon olet kopioinut sen, ja purkaa sen, purkaa sen, siirtyä tuloksena olevaan kansioon ja asentaa paketin:
unzip SW2827.zipcd SW2827sudo dpkg -i libneardal0_0.14.3-1_armhf.deb neard-explorenfc_1.2-1_armhf.deb
Jos kaikki menee hyvin, sinun pitäisi pystyä kytkemään lukija, käynnistä se uudelleen ja astu sitten sisään
explorenfc-basic
Jos lähestyt NFC -sirua lukijaan, sen pitäisi nyt näyttää joukko sirun tietoja (muun muassa sen tunnus)
Vaihe 5: Asenna solmu ja luo projekti
Seuraavaksi asennamme NodeJS: n vadelmalle kirjoittaaksemme sovelluksemme.
Haluamme asentaa nodejs: n, mutta oletussäilön versio on todella vanha, joten sinun on suoritettava ensimmäinen vaihe ennen: kirjoita komentorivikäyttöliittymään
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Voit sitten kirjoittaa
sudo apt asentaa nodejs
asentaaksesi uusimman saatavilla olevan nodejs- ja npm -version.
KODI: n hallitsemiseksi nodejs: n sisältä aiomme käyttää npm-pakettia nimeltä kodi-ws.
Aloitetaan luomalla uusi projekti: kirjoita komento
npm init
Sinulta kysytään useita kysymyksiä: useimmissa tapauksissa voit jättää oletusasetuksen, valitse sovelluksellesi nimi ja kirjoita oma nimi loppuun. Kun sinulta kysytään aloituspistettä, jätä vain index.js
Tämä luo paketin.json -tiedoston, joka tiivistää paketin ominaisuudet, kuten sen riippuvuudet.
Voit nyt syöttää
sudo npm install kodi-ws sudo npm install jsonfilesudo npm install cronsudo npm install child_process
Jos avaat package.json sen jälkeen, huomaat, että kaikki nämä paketit lisättiin riippuvuuksiin.
Vaihe 6: Koodi, selitetty
Tähän vaiheeseen on liitetty sovelluksen koodi.
Olen jättänyt kohtuullisen määrän kirjautumista, jota ei voi kommentoida käsikirjoituksen ymmärtämiseksi, mutta jaamme sen yhdessä.
Huomaat, että kaikista ilmoitetuista toiminnoista huolimatta koodi tekee aluksi vain muutamia asioita:
kodi ('localhost', 9090). then (toiminto (yhteys) {
Skripti yrittää muodostaa yhteyden OSMC JSON-RPC -sovellusliittymään. Kun se onnistuu (ja vasta sitten), se jatkuu muun tiedoston kanssa.
Jos jostain syystä et käytä tätä Raspberry Pi -laitteestasi, vaihda localhost IP -osoitteeseesi. Varmista myös, että OSMC: n (Asetukset/Palvelut) -palvelun asetuksissa valintaruutu "Salli kaukosäädin muiden järjestelmien sovelluksista" (katso kuva)
Loput tiedostosta ovat lähinnä toimintojen ilmoituksia, joita käytämme myöhemmin: kaksi toimintoa, jotka todella käynnistetään täältä, ovat (rivit 172/173)
scanAndSetCron (); listenForTag ();
ScanAndSetCronissa:
- scanPictures -toiminto käynnistyy. Sen sisällä tarkistamme, onko muuttuja "mypicturedirectory", joka pitää polkumme kuviin, tyhjä. Jos on, pyydämme OSMC: tä antamaan meille kaikki kuvasisällön lähteet (getPictureDirectory -funktion rivillä 11):
var piclist = odota yhteyttä. Files. GetSources ("kuvat");
OSMC antaa meille taulukon vastineeksi: tarkistamme jokaisen kohteen kohdalla, onko lähteen nimessä "My": jos näin on, tallennamme sen kuvalähteeksemme (rivi 16 ja sitä seuraavat). Tässä haluat vaihtaa merkkijonon "Oma" -merkkijonosta mihin tahansa, jonka annoit aiemmin kuvalähteesi nimeksi
if (piclist.sources .label.includes ("Oma")) {console.log (">>> Löytyi hakemisto" + piclist.sources .tiedosto); mypicturedirectory = piclist.sources .file; }
Nyt kun meillä on polku lähteeseen (lähinnä juurikansio albumeihimme), pyydämme OSMC: tä skannaamaan sen ja lisäämään jokaisen kansion polun albumin_hakemistoon (jos se ei ole jo olemassa). Koska tämä toiminto suoritetaan X sekunnin välein, tarkistamme, että hakemisto ei ole jo luettelossa ennen sen lisäämistä ja NFC -tunnus on asetettu tyhjäksi merkkijonoksi - näin jokainen uusi kansio, jonka lisäät kuviin, tulee automaattisesti lisätty - rivi 46
for (var j = 0; j <hakemistot.pituus; j ++) {if (hakemistot [j].filetype.includes ("hakemisto")) {if (searchDirectory (hakemistot [j].tiedosto, albumin_hakemistot)) {konsoli. log (hakemistot [j].file +"jo olemassa"); } else {console.log (">> dir lisääminen" + hakemistot [j].tiedosto); album_hakemistot.push ({hakemisto: hakemistot [j].tiedosto, nfc: ""}); }}}
Lopuksi tallennamme album_directories-matriisin json-tiedostoon Pi: ssä, jota yritämme ladata aina, kun toiminto suoritetaan: tämä tapahtuu scanAndSetCron-funktion lopussa, jossa käytämme cron-kaltaista pakettia toiminnon suorittamiseksi 15 sekunnin välein.
Luomamme JSON -tiedosto, album_directories.json, voidaan avata millä tahansa muistilehtiö -sovelluksella. Kun olet tehnyt niin, sinulle näytetään luettelo valokuva -albumeistasi, joista jokaisessa on tyhjä "nfc" -kenttä:
[{"directory": "/home/osmc/Pictures/Mada 2016/", "nfc": ""}, {"directory": "/home/osmc/Pictures/NewFolder/", "nfc": "" }, {"hakemisto": "/home/osmc/Kuvat/Testi/", "nfc": ""}]
Tähän kenttään sinun on nyt liitettävä tunniste, jonka haluat liittää tähän albumiin. Saadaksesi tämän tunnuksen, siirry SW2827-kansioon, suorita explorenfc-basic ja skannaa haluamasi tagi. Etsi saamastasi tuotoksesta ISO14443A UID: n vieressä oleva arvo. Kopioi se albumiin, jonka haluat määrittää. Minun tapauksessani esim.
[{"directory": "/home/osmc/Pictures/Mada 2016/", "nfc": "040A12EAFC3881"}, {"directory": "/home/osmc/Pictures/NewFolder/", "nfc": " "}, {" hakemisto ":"/home/osmc/Kuvat/Testi/"," nfc ":" "}]
Tallenna tiedosto ja sen sisältö ladataan, kun käynnistät sovelluksen seuraavan kerran.
ListenForTag -toiminnossa teemme juuri sen: koska NodeJS: n lukijakirjastoon ei näytä olevan omaa porttia, luotamme lapsiprosesseihin käynnistääksesi binäärin lukijalle:
var spawn = vaatia ('child_process'). spawn, child = spawn ('/usr/bin/explorenfc-basic', );
Luotamme tapahtumakuuntelijaan, joka vastaanottaa tämän suorituksen tuloksen: child.stdout.on ('data', function (data) -soittopyynnön sisällä jäsennämme tämän komennon tuloksen käyttämällä analysointitoimintoa: etsimme aiemmin näkemämme rivi, joka alkaa "ISO14443A UID:", koska sinne tallennetaan skannatun tunnisteen tunnus. Kun löydämme kyseisen rivin, leikataan se alas ja tallennetaan tunnus objektiin (nimeltään ID, miten alkuperäinen).
Lopuksi yritämme yhdistää tämän tunnuksen album_directories -objektiryhmään syötettyihin tunnuksiin (ladattu albumin_directories.json tiedoston kautta). Jos osuma löytyy, kehotamme OSMC: tä käynnistämään diaesityksen kyseistä kansiota varten:
var nfcid = analysoi lähtö (data); console.log ("nfcid on" + nfcid.id); varrespondingalbum = searchTag (nfcid.id, albumin_hakemistot); if (respondingalbum) {console.log ("Löytynyt albumi" + JSON.stringify (respondingalbum) + "tälle tunnisteelle"); var args = [{'polku': kirjeenvaihtopiste.hakemisto}]; connection.run ('Player. Open', args); } listenForTag ();
Huomaatko, kuinka toiminnon lopussa käynnistämme listenForTagin uudelleen? Tämä on ainoa ratkaisu, jonka olen löytänyt sovelluksen toimimiseksi: explorenfc-basic odottaa oletuksena tagia, lukee sen ja poistuu. Sovelluksella on jatkuva tila, jonka voimme kutsua käyttämällä explorenfc -basic -k, mutta tässä tilassa lapsiprosessi ei koskaan lähetä tunnisteen sisältöä, koska se ei koskaan lopu (toisin sanoen child.stdout.on ('data') ei koskaan laukaista). Koska en ole löytänyt muuta tapaa käyttää tätä lukijaa, teemme täällä pohjimmiltaan explorenfc-basicin käynnistämisen yhden tunnisteen tilassa, ja kun tunniste luetaan, käynnistämme listenForTag ja käynnistämme sen vuoksi uudelleen explorenfc-basic.
Jos minun pitäisi palata (ja luulen, että aion), valitsisin NFC -lukijan, joka tarjoaa enemmän vaihtoehtoja: esimerkiksi Adafruit (olet ehkä huomannut, että pidän niistä paljon) on tämä lukija https:// www..adafruit.com/product/789, joka on yhteensopiva libnfc: n kanssa, mikä mielestäni tarkoittaa sitä, että lukija on paljon puhtaampi käyttää kuin kutsua aliprosessi solmusta ja jäsentää stdout!
Vaihe 7: Kokeile
Voit käynnistää sovelluksen siirtymällä kyseiseen kansioon ja kirjoittamalla "node index.js" (tai npm start, koska olemme määrittäneet sen aiemmin paketissa.json). Lokeissa sinun pitäisi nähdä sovellus, joka muodostaa yhteyden OSMC/Kodiin ja skannaa ensimmäistä kertaa. Muutaman sekunnin kuluttua tiedosto album_directories.json luodaan projektihakemistoon; Voit sitten syöttää NFC -tunnistetunnukset edellä kuvatulla tavalla ja liittää ne haluamiisi albumeihin.
Vaihe 8: Käynnistä automaattisesti
Yhteenvetona, olemme luoneet Node-sovelluksen, joka (1) etsii KODI-kuvakirjastoasi ja yrittää löytää kansion, johon tallennat lomakuvasi, (2) kuuntelee NCF-tunnisteita käyttämällä explorenfc-basic ja sitten (3) käynnistää tähän NFC -tunnukseen liittyvän albumin.
Jotta koko prosessi toimisi taustalla, käytämme PM2: ta, solmun prosessinhallintaa.
Siirry komentoriviltä projektikansioosi (jossa index.js -tiedosto sijaitsee) ja kirjoita seuraavat rivit:
sudo npm install pm2 -gpm2 aloita index.js
PM2 valvoo sovellustasi ja se käynnistyy automaattisesti uudelleen! Varmistaaksesi, että se on todella käynnistetty, kirjoita pm2 -luettelo ja sinun pitäisi nähdä se luettelossa. Jos haluat nähdä lokit, kirjoita vain pm2 -lokit.
Suositeltava:
Käynnistä LED Internetin kautta [MagicBlocks]: 10 vaihetta
Ota LED -valo käyttöön Internetin välityksellä [MagicBlocks]: Tämä opetusohjelma opettaa sinua ohjaamaan Magicbitin LED -valoja Magicblocksin avulla
Käynnistä ohjelma automaattisesti, kun kytket kannettavan tietokoneen telakointiasemaan: 5 vaihetta
Käynnistä ohjelma automaattisesti, kun kytket kannettavan tietokoneen telakointiasemaan: Tämä ohje koskee ohjelman tai sovelluksen suorittamista, kun kytket kannettavan tietokoneen telakointiasemaan. Tässä esimerkissä käytän Lenovo T480 Windows 10 -käyttöjärjestelmää
Käynnistä LED Watson -keskustelun avulla: 6 vaihetta
Käynnistä LED Watson -keskustelun avulla: Mitä tarvitset: Zagrosin tekoäly Raspberry Pi -sarja
Käynnistä radioasema tietokoneesta: 6 vaihetta (kuvilla)
Suorita radioasema tietokoneesta: Tämä opas näyttää, kuinka voit luoda oman Internet -radioaseman aivan kotitietokoneesi lähellä
Tee dynaaminen diaesitys otoksistasi Photo Story 3: 16 -vaiheilla
Tee dynaaminen diaesitys napsautuksistasi Photo Story 3: Tämä on yksi tapa tehdä nice.wmv -valokuvaesitys, jossa on panorointi- ja zoomaustehosteita käyttämällä lähinnä ilmaista ohjelmistoa. Odotan, että on olemassa helpompia tapoja, mutta en löytänyt opastettavaa aihetta. Menetelmäni kiertää hieman taloja, mutta se toimii