Cuprins:

1975 Hitachi Pi Info-TV: 13 pași (cu imagini)
1975 Hitachi Pi Info-TV: 13 pași (cu imagini)

Video: 1975 Hitachi Pi Info-TV: 13 pași (cu imagini)

Video: 1975 Hitachi Pi Info-TV: 13 pași (cu imagini)
Video: Web Programming - Computer Science for Business Leaders 2016 2024, Noiembrie
Anonim
Image
Image
1975 Hitachi Pi Info-TV
1975 Hitachi Pi Info-TV
1975 Hitachi Pi Info-TV
1975 Hitachi Pi Info-TV
1975 Hitachi Pi Info-TV
1975 Hitachi Pi Info-TV

Acesta este un mic televizor portabil Hitachi I-89-311, pe care l-am transformat într-o stație de informații retro montată pe perete! Afișează conținut util într-o serie de file Chrome pe ecran complet și rotind cadranul de reglare comută între pagini, la fel cum ați schimba inițial canalele TV. Butonul de volum controlează derularea, butonul de pornire-oprire reîmprospătează pagina și are un senzor de mișcare PIR, astfel încât ecranul să se oprească când te îndepărtezi.

Folosește un ecran Pimoroni 8 4: 3 și un Raspberry Pi 3 pentru a afișa conținutul, iar unele comutatoare personalizate permit utilizarea tuturor comenzilor TV originale.

În cazul în care nu puteți vedea videoclipul încorporat, se află la:

Pasul 1: Demontare și decizii

Demontare și decizii
Demontare și decizii
Demontare și decizii
Demontare și decizii
Demontare și decizii
Demontare și decizii

Acest televizor m-a costat 5 lire sterline la o vânzare în timpul verii și abia așteptam să ajung acasă și să-l demontez. Am avut în vedere să-l desprind pur și simplu, să-l tai, să înlocuiesc ecranul cu vechea mea tabletă de 10 și să-l atârn pe perete - un proiect frumos și rapid! tavă nouă pentru piese magnetice Nu am pierdut niciunul dintre șuruburi pentru o dată. Odată ce am ținut tableta până la carcasa decupată, totuși era evident că nu se va potrivi niciodată, rama din jurul ecranului era mult prea groasă pentru a se potrivi în carcasă..

Mi-am imaginat doar să personalizez un ecran de pornire Android cu widget-uri pentru a afișa viitoarele întâlniri din calendar, vreme, știri și așa mai departe, dar cu asta din fereastră am apelat la opțiunile Raspberry Pi. Am început să mă uit la software-ul pentru a afișa mai întâi tablouri de bord, deoarece acest lucru părea să fie aproximativ ceea ce urmăream. Am încercat dashing.io după recomandări, dar mi s-a părut cam nepotrivit să-l configurez și să-l configurez. Multe dintre celelalte opțiuni erau mai axate pe afaceri, deci mai puțin probabil să aibă caracteristici precum afișarea unui flux de webcam live CCTV. După un timp, am decis cam să-mi construiesc propria pagină web pentru a afișa doar conținutul dorit - dar ideea a izbutit, de ce să nu am mai multe pagini web și să pot derula între ele folosind comenzile TV? Acest lucru ar însemna mai puține compromisuri în ceea ce privește ceea ce s-ar potrivi pe ecranul mic și ar facilita adăugarea sau eliminarea elementelor. După acest moment „Eureka” tot ce trebuia să fac era să fac ca acest lucru să se întâmple - și nu va fi prea complicat.

Pasul 2: Codul cromului

Codul cromului
Codul cromului

Pentru ca ideea paginilor web să funcționeze, primul lucru pe care trebuia să-l fac era să aflu cum să deschid ecranul complet al browserului Chromium la pornire, cu mai multe file predefinite. Datorită flexibilității Pi și Chromium, acest lucru a fost de fapt destul de ușor de realizat, doar un caz de editare a fișierului de pornire automată:

sudo nano.config / lxsession / LXDE-pi / autostart

… și adăugând

@ chromium-browser --noerrdialogs --start-fullscreen https:// url1 https:// url2 https:// url3

… Până la sfârșitul fișierului, salvând modificările.

Apoi a trebuit să găsesc o modalitate de a folosi cumva butoanele televizorului pentru a controla filele browserului. Am planificat să am o tastatură wireless separată și o combinație de mouse în apropiere, așa că nu am folosit modul Kiosk și nu am fost interesat de mișcările mouse-ului sau de clicuri, dar am vrut să pot să fac informațiile de bază „Sunt la serviciu” -prindeți doar folosind comenzile TV originale. Știam că probabil voi conecta comutatoarele la GPIO-ul lui Pi și le voi controla în Python, așa că am căutat în jur un cod care să imite apăsarea tastelor, astfel încât să pot folosi un script pentru a le trimite prin intrarea de la un comutator fizic.

După câteva trauluri, am dat peste xdotool, care era perfect pentru sarcină, deoarece vă permite să simulați apăsări de taste folosind cod care poate fi încorporat cu ușurință în Python. Mai întâi l-am instalat …

sudo apt-get install xdotool

… Apoi, folosind terminalul, a jucat o comandă pentru a comuta filele din Chrome, imitând comanda rapidă de la tastatură CTRL-TAB:

xdotool search --onlyvisible --class window "chromium" focus && xdotool key ctrl + Tab

Apoi am făcut același lucru pentru a crea o bucată de cod pentru a efectua acțiunea „Reîmprospătare”, imitând o apăsare de tastă F5:

căutare xdotool --onlyvisible --class "crom" windowfocus && xdotool key F5

Acum, când aveam bucățile de bază de cod care funcționau, următorul job a fost să sortez butoanele fizice, să le conectez la GPIO și să creez un script Python pentru a le face să controleze browserul.

Pasul 3: Comenzi TV

Comenzi TV
Comenzi TV
Comenzi TV
Comenzi TV
Comenzi TV
Comenzi TV

Vedeta spectacolului din punct de vedere al butoanelor a fost minunatul cadran de reglare mare, așa că am lucrat mai întâi la asta. Am avut nevoie de acțiunea rotativă a cadranului pentru a se traduce în apăsări de taste GPIO pentru a declanșa comutatorul de filă al browserului, astfel încât rotirea acestuia să schimbe „canalul”. În mod convenabil am mai făcut ceva similar înainte, pentru proiectul meu Neon Infinity Television, așa că am decis să folosesc aceeași metodă.

Pentru început, am luat un comutator rotativ cu 12 poli cu o singură aruncare și am lipit terminalele alternative între ele, astfel încât 6 dintre ele au fost conectate la un singur fir. Celălalt fir a fost conectat la nodul comutatorului, astfel încât fiecare clic rotativ să-l mute între o stare deschisă și închisă. Aceasta însemna că fiecare modificare a canalului va dura 2 „clicuri”, unul pentru a face clic pe comutatorul „închis” și unul pentru a-l deschide din nou.

După ce l-am testat cu un multimetru, am trecut la următorul buton (Pornit / Oprit) - Am vrut doar ca acest lucru să „reîmprospăteze” pagina, așa că am folosit un comutator push-to-make standard.

Cu ambele lucruri terminate, le-am lipit la o mică bucată de protoboard alături de un antet jumper, astfel încât cablarea să fie mai ușoară. Apoi le-am conectat la Pi (GPIO6, GPIO26 și 3v) și am pus împreună un script Python pentru a traduce mișcările lor fizice în apăsări de taste pentru a controla fereastra browserului. Scriptul pe care l-am folosit este destul de simplu și este disponibil pe GitHub. Odată ce a funcționat complet, l-am setat să pornească automat adăugând linia …

@sudo python /home/pi/tabswitch.py

… la fișierul de pornire automată, chiar sub locul în care aș fi adăugat comanda @ chromium-browser mai devreme.

Deci asta a fost cu două butoane jos, unul pentru a merge!

Pasul 4: Derulați în jur

Derulând în jur
Derulând în jur

Mi-am dorit foarte mult ca al treilea buton (Volumul) să deruleze pagina browserului în sus și în jos pentru scanarea titlurilor și a perspectivelor meteo - acesta a fost un concept minunat, dar dificil de realizat! Am explorat diferite opțiuni, dar am revenit la unul dintre preferatele mele - șoareci USB ieftini. O călătorie la portbagajul mașinii a dat patru stropi vechi în diferite stări (în jur de 50p fiecare) și am sperat că unul dintre ei va avea o placă de circuit hackable pe care aș putea să o arunc în carcasă, conectând roata de derulare la butonul de volum și Cablu USB către Pi.

Cu toate acestea, nu a fost chiar atât de ușor, deoarece toți șoarecii aveau rotița de defilare fixată la 90 de grade pe placa principală, ceea ce este perfect logic pentru un mouse, dar nu este bun pentru a se potrivi într-o carcasă TV strânsă! Pentru a face lucrurile mai flexibile, am smuls comanda rotativă de pe un mouse și l-am conectat la placa de circuit a celei de-a doua, lăsând cabluri între ele, astfel încât să o pot repara în orice unghi doream. Chiar dacă șoarecii provin de la diferiți producători, acest lucru a funcționat bine!

Pasul 5: Somn și trezire

Dormit și trezit
Dormit și trezit
Dormit și trezit
Dormit și trezit

Știam că televizorul va fi pe peretele holului, așa că nu am vrut să fie pornit 24/7, dar în același timp am vrut să-l pot privi în trecere și să nu trebuiască să apăsați un buton pentru a porni ecranul. Am decis să folosesc un senzor PIR pentru a detecta mișcarea din apropiere, astfel încât ecranul să rămână oprit (sau cel puțin pe un screensaver gol), cu excepția cazului în care cineva se afla în fața acestuia.

Nu mai folosisem un senzor PIR cu Pi, așa că am urmat împreună cu excelentul tutorial Parent Detector și am primit codul de care aveam nevoie pentru a lucra destul de repede, cel puțin în terminal.

Senzorul PIR s-a conectat direct la GPIO-ul lui Pi (5v, GND și GPIO4), dar a făcut unele experimente cu „trimpoturile” dificile pentru a obține întârzierea și sensibilitatea corect.

Următorul pas a fost acela de a face ecranul să se aprindă atunci când a fost detectată mișcarea. Din nou, există diverse opțiuni pentru acest lucru, dar am decis să o fac astfel încât mișcarea detectată de senzorul PIR să oprească screensaverul. Presupuneam că voi putea folosi xdotool din nou pentru a trimite orice tastă veche și asta va trezi ecranul, dar, din păcate, acest lucru nu a funcționat.

Pentru a-mi oferi mai mult control asupra tipului și opțiunilor de screensaver, am instalat xscreensaver:

sudo apt-get install xscreensaver

Acest lucru a fost perfect, deoarece acum am putut controla complet timpul de întârziere a screensaver-ului prin meniul Preferences - ceea ce era și mai la îndemână este că xscreensaver are multe opțiuni din linia de comandă, ceea ce înseamnă că aș putea folosi codul …

xscreensaver-command -deactivate

… pentru a trezi ecranul. Am adăugat această comandă la scriptul PIR (de asemenea, pe GitHub) și odată ce a funcționat, am adăugat în …

@sudo python /home/pi/PIR.py

… la fișierul de pornire automată, chiar sub intrările anterioare pentru comenzile Chromium și tabswitch.

Așadar, acum cea mai mare parte a lucrărilor Pi a fost finalizată și, cu senzor PIR, buton, comutator rotativ și mouse USB măcelar, toate m-am conectat la partea dificilă - făcându-l să funcționeze cu un ecran mic și montând totul în carcasă.

Pasul 6: Timpul ecranului

Timpul ecranului
Timpul ecranului
Timpul ecranului
Timpul ecranului
Timpul ecranului
Timpul ecranului

Găsirea unui ecran adecvat pentru acest proiect a fost întotdeauna dificil, deoarece "gaura" avea atât o dimensiune incomodă la 9-10 inci, cât și în format 4: 3.

După o vânătoare de vânătoare de chilipiruri infructuoase, am decis să cumpăr noi - în principal din motivul că am vrut ca acesta să fie un plus practic pentru casa mea și așa că trebuia să am încredere în faptul că este conectat de cele mai multe ori. În cele din urmă am început să caut panouri LCD de 800x600 și 1024x768 și am afișat ecranul Pimoroni de 8 . Aceasta a fost opțiunea ideală, deoarece mi-a plăcut retailerul, ecranul a fost bine revizuit și forma perfectă - singurul compromis a fost că era puțin mai mic decât mi-aș fi dorit, dar asta nu a afectat cu adevărat construcția finală.

Setul de ecran a venit cu propria sa placă de driver și butoane de meniu, iar acestea au fost conectate cu ușurință pentru un pic de test pe bancul de lucru. Aș fi citit spre încântarea mea că ecranul ar putea fi alimentat de la Pi în sine, deci alimentat și - nimic! Am încercat diferite porturi USB pentru alimentare, apoi diferite cabluri HDMI, dar pur și simplu nu a pornit. După multe zgârieturi în cap, am găsit soluția online - deoarece era alimentată de USB-ul lui Pi, nu era suficient de devreme în procesul de boot pentru ca Pi să-și dea seama că era acolo. Tot ce trebuia să fac era să editez fișierul

/boot/config.txt

și decomentați opțiunea

hdmi_force_hotplug = 1

și Hei Presto! A funcționat imediat. Mă uimește întotdeauna cât de simple pot fi unele soluții, am fost convins că am prăjit cumva ecranul, dar o mică modificare a făcut diferența. Acum, că totul a funcționat pe bancă, am avut nevoie doar să-l încadrez în carcasă și cumva să-l mențin.

Deși era de dimensiunea ideală, existau câteva probleme - rama panoului LCD era argintiu strălucitor și, de asemenea, existau goluri care arătau în exterior, în cazul în care tubul TV original fusese curbat. M-am gândit mai întâi să vopsesc spray-ul bezelului negru, mai ales că încă mai avea protectorul de ecran la locul său, ceea ce ar fi fost o mascare ideală. După câteva gânduri, am reușit să ucid două păsări cu o singură piatră și am adăugat benzi groase de pâslă neagră autoadezivă în jurul marginilor ecranului, care acopereau benzile argintii și se suprapuneau suficient pentru a umple golurile.

Pasul 7: Șabloane translucide

Șabloane translucide
Șabloane translucide
Șabloane translucide
Șabloane translucide
Șabloane translucide
Șabloane translucide
Șabloane translucide
Șabloane translucide

Cu ecranul fixat, butoanele, Pi și cablurile au fost următorul!

Pentru a fixa ecranul, aș decupa o secțiune de plastic translucid de pe capacul unei lăzi de depozitare vechi, folosind șuruburile și șuruburile TV originale pentru ao fixa ferm, așa că am decis să fac același lucru pentru a ține butoanele. Frumusețea realizării parantezelor cu acest tip de plastic este că o puteți așeza deasupra carcasei și a vedea prin ea pentru a marca exact unde trebuie să fie găurile pentru șuruburi!

Am decupat o mică secțiune de plastic pentru a ține comenzile televizorului și am marcat și forat mai întâi găurile pentru a-l fixa la dispozitivele originale de fixare ale televizorului. Apoi, cu înșurubat la carcasă, am marcat centrul găurilor pentru butoane din exterior pentru a mă asigura că vor fi aliniate corect atunci când aruncați carcasa. Acest lucru a mers destul de ușor pentru comutatoarele rotative și push, a trebuit doar să apelez la lipiciul fierbinte pentru a seta „roata mouse-ului” în locul potrivit.

Apoi am construit o altă „punte” pentru a sta deasupra întrerupătoarelor și a ține Raspberry Pi, folosind aceeași metodă ca înainte și mai multe dintre posturile șurub originale. Acest lucru a funcționat bine, dar, din păcate, partea din spate a comutatorului rotativ s-a blocat prea sus, așa că a trebuit să o re-lipesc după ce am îndoit terminalele cu baza sa. În cele din urmă, am lipit ușor senzorul PIR în spatele unui orificiu de ventilare, încă nesigur dacă va funcționa fără a fi expus complet.

Acum că toate piesele au fost fixate în pozițiile lor „finale”, a trebuit să adaug în butoanele de control. Comutatorul rotativ a fost ușor, deoarece are o formă standard și avea nevoie doar de o garnitură pentru a se potrivi cadranului. Pentru comutatorul de pornire / oprire am folosit o parte din axul original de la televizor și l-am lipit la comutatorul cu apăsare. Roata mouse-ului era ceva mai complicată, din nou am folosit un fus original de la televizor, atașat la fusul roții mouse-ului cu o „manșetă” din plastic.

Pasul 8: Mai multe butoane

Mai multe butoane
Mai multe butoane
Mai multe butoane
Mai multe butoane

Ați crede că asta ar fi fost destul de încurcat cu butoane, dar mai aveau să vină! Ecranul LCD avea propriul set de 5 microîntrerupătoare pe o placă pentru controlul luminozității, culorilor etc, așa că am vrut ca acestea să fie accesibile fără a fi nevoie să scoateți televizorul de pe perete.

Cu niște tocare ușoară, a existat doar suficient spațiu pentru a se potrivi placa la marginea carcasei „interioare”, tot ce trebuia să fac atunci a fost tăierea găurilor în carcasa „exterioară” pentru a face microîntrerupătoarele accesibile. De asemenea, trebuia să găsesc un fel de butoane fizice pentru a trece prin carcasă și a mă alinia cu microîntrerupătoarele. În trecut, am folosit „pixuri” de argint pentru acest lucru, dar de această dată nu am avut noroc să le găsesc pe cele ieftine. În cele din urmă am smuls picioarele de pe niște LED-uri vechi și le-am încorporat în găurile pe care le-am forat în carcasă - acestea erau perfecte, deoarece baza evazată a LED-ului le-a împiedicat să alunece și aveau forma și dimensiunea potrivite. Fără să mai forez, am inspirat adânc și am trecut la „tăietura mare”.

Pasul 9: Tocarea carcasei

Tocând carcasa
Tocând carcasa
Tocând carcasa
Tocând carcasa
Tocând carcasa
Tocând carcasa

Cu toate plăcile, ecranul și comutatoarele instalate, am putut vedea acum cât de adâncă trebuia să fie carcasa exterioară a televizorului sau, mai degrabă, cât de subțire aș putea să o fac. Lăsând un spațiu de câteva centimetri între plăcile de circuite și ceea ce ar fi peretele, am marcat carcasa și am tăiat-o folosind un instrument rotativ. Acesta a fost de departe cel mai nervos moment, deoarece a fost foarte zgomotos și o alunecare ar fi putut să distrugă cazul. Decuparea finală a fost destul de bună și a avut nevoie doar de șlefuire și tăiere în jurul marginilor pentru a o termina înainte de a vopsi - televizorul „din spate” a fost inițial alb, dar se îngălbenise de-a lungul anilor.

Pasul 10: un mâner suspendat

Un mâner agățat
Un mâner agățat
Un mâner agățat
Un mâner agățat
Un mâner agățat
Un mâner agățat
Un mâner agățat
Un mâner agățat

Următoarea problemă a fost cum să agățați televizorul de perete, asigurându-vă că acesta este nivelat și sigur, dar în același timp ușor de îndepărtat pentru întreținere. Am citit despre utilizarea „crampoanelor franceze” sau „parantezelor Z” pentru a agăța imagini mari înainte, dar nu le-am încercat niciodată, așa că am comandat unele de la Amazon - s-au dovedit a fi absolut ideale! Pachetul a venit chiar cu propriul nivel de spirit mic.

Fixarea suportului de perete a fost ușoară, am pus-o înșurubată pe peretele atelierului pentru testare în câteva minute, apoi a trebuit să-mi dau seama cum să se potrivească numărul său opus televizorului. Carcasa exterioară ar fi înșurubată în partea din față a televizorului în patru locuri, deci a fost destul de robustă, am decis că acesta ar fi cel mai bun loc pentru suport. Dificultatea a fost fixarea suportului în locul potrivit, astfel încât să nu interfereze cu plăcile sau firele. De asemenea, nu am vrut să apară șuruburi prin partea superioară a carcasei.

La un moment dat, creierul meu și-a dat seama că aș putea reutiliza mânerul original al televizorului, să-i fac o caracteristică și, de asemenea, să-l folosesc pentru a menține consola în locul potrivit. După măsurarea atentă, am forat noi găuri pentru mâner, apoi l-am montat pe suportul Z folosind câteva paranteze mici cu unghi drept și o tăietură de pardoseală din lemn, toate înșurubate împreună.

Pasul 11: Touch-Ups și asamblare

Retușuri și asamblare
Retușuri și asamblare
Retușuri și asamblare
Retușuri și asamblare
Retușuri și asamblare
Retușuri și asamblare

Pentru ultimele atingeri, am șlefuit și am vopsit spray-ul carcasei exterioare și mânerului, făcându-l pe acesta din urmă în roșu pentru contrast și ca un semn către Zmeura din interior. Odată ce vopseaua a întărit toate piesele asamblate frumos, butoanele și capacul ecranului etichetat „Solid State” au fost introduse ultima dată la locul lor. Capacul ecranului a fost ușor afumat, dar după o ajustare a luminozității și a contrastului (bucuros că am inclus acele butoane LCD), afișajul arăta la fel de luminos ca înainte.

Pasul 12: Selectarea site-ului

Selectarea site-ului
Selectarea site-ului
Selectarea site-ului
Selectarea site-ului

În scurt timp am mutat suportul Z de la peretele atelierului la „ultima” sa casă pe hol și am atârnat televizorul, adăugând niște conducte subțiri din plastic pentru a ordona cablul de alimentare al lui Pi. Acum, când a fost instalat, a venit partea amuzantă - să decidem ce pagini web să afișăm!

În timp ce cercetam opțiunile tabloului de bord, am dat peste Dakboard - un tablou de bord web pe care îl puteți conecta la calendarul dvs. online pentru a afișa întâlniri, un flux de știri și vreme. La momentul respectiv l-am redus ca fiind prea simplu, dar acest lucru a fost ideal pentru una dintre paginile mele. Lucrul meu preferat în acest sens este să pot afișa propriul meu album de fotografii Google - mai ales că afișează cu bucurie GIF-uri animate.

Următoarele două decizii de filă au fost destul de previzibile, BBC News și BBC Weather, ambele fiind esențiale de verificat înainte de a părăsi casa.

Apoi am adăugat într-un link către fluxul live de la una dintre camerele mele Pi Zero - acest lucru s-a dovedit deja util pentru a păstra căutarea poștașului sau pentru livrările de cumpărături.

În cele din urmă, am adăugat în lista noastră de cumpărături Google - avem obiceiul de a folosi interfonul Google Pi pentru a adăuga articole pe listă, așa că merită o verificare înainte de a ieși.

Am strâns adresele URL de pe laptop într-un document de notepad și le-am copiat în Pi, apoi le-am adăugat la linia @Chromium din fișierul de pornire automată (vezi Pasul 2 de mai sus).

Pasul 13: Gânduri finale

Gânduri finale
Gânduri finale
Gânduri finale
Gânduri finale
Gânduri finale
Gânduri finale

Mi-a plăcut foarte mult această construcție, făcând ceva ce știu că voi folosi zilnic, mă oprește cu adevărat din tăierea colțurilor - chiar dacă durează mult mai mult. Lucrul meu preferat este acel cadran mare pentru schimbarea canalelor, este foarte satisfăcător să folosești mecanismul original.

Lucrul care a mers mult mai bine decât era de așteptat a fost senzorul PIR, care eram convins că nu va funcționa înfipt într-o gură de aerisire a carcasei - nu am vrut cu adevărat să expun întregul senzor, așa că mă bucur foarte mult că a funcționat. Este destul de sensibil și cu toții ne bucurăm să încercăm să trecem pe lângă el fără ca ecranul să se aprindă. S-a dovedit cu adevărat provocator să fotografiez, însă, că capacul ecranului afumat este atât de reflectorizant!

Îmi place aspectul ei pe hol și funcționează așa cum aș fi sperat - câteva clicuri înainte și înapoi și un pic de sul sunt de obicei suficiente pentru a mă scoate din ușă dimineața cu toate informațiile de care am nevoie.

Dacă vă place acest proiect și doriți să vedeți mai multe, puteți consulta site-ul meu web pentru actualizări ale proiectului în curs la bit.ly/OldTechNewSpec, înscrieți-vă pe Twitter @OldTechNewSpec sau abonați-vă la canalul YouTube în creștere la bit.ly/oldtechtube - dați unele dintre tehnicile dvs. vechi o specificație nouă!

Recomandat: