Turinys:

Technologijos jūsų seneliui: 13 žingsnių (su nuotraukomis)
Technologijos jūsų seneliui: 13 žingsnių (su nuotraukomis)

Video: Technologijos jūsų seneliui: 13 žingsnių (su nuotraukomis)

Video: Technologijos jūsų seneliui: 13 žingsnių (su nuotraukomis)
Video: 2 Nuotraukos įdėjimas į tinklalapį (images WordPress) 2024, Lapkritis
Anonim
Image
Image

Kiek kartų lankėtės senelių namuose, kad išspręstumėte „technologinę problemą“- galiausiai tai buvo atjungtas maitinimo kabelis, išsikrovusi nuotolinė baterija arba negalėjimas perjungti televizoriaus šaltinio? Žinau, kad man tai atsitinka gana dažnai. Nors dauguma jų problemų gali būti išspręstos paprasčiausiai nuvykus į parduotuvę ieškoti naujų AA, kartais jiems gali būti naudingas labiau pritaikytas sprendimas.

Pavyzdžiui, mano merginos senelis gavo naują televizorių ir mes bandėme jį išmokyti pakeisti šaltinį, kad jis galėtų perjungti DVD ir televizorių, bet jis tiesiog negalėjo to išsiaiškinti. Jis taip pat susiduria su pablogėjusiu regėjimu ir nėra labai suinteresuotas bandyti prisiminti sudėtingus procesus, jis tiesiog nori žiūrėti jo pasirodymus, kai to nori. Pasistengęs ramiai paaiškinti žingsnius per paskutinį mūsų vizitą be didesnės sėkmės, nusprendžiau tiesiog padaryti jam savo paprastą dviejų mygtukų nuotolinio valdymo pultą. Tai leistų jam neskausmingai pakeisti įvesties šaltinį savo televizoriuje, lengvai perjungiant tarp savo mylimų „Matlock“DVD ir „Price is Right“.

1 žingsnis: medžiagos

  • PhidgetIR
  • „PhidgetSBC4“(arba bet kuris vienos plokštės kompiuteris, pvz., „Raspberry Pi“)
  • Lituoklis
  • Šoniniai pjovikliai
  • Vielos nuėmikliai
  • Trumpieji laidai
  • USB kabelis
  • „Phidget“kabelis
  • Korpusas
  • Skylių antgaliai
  • Termiškai susitraukiantis vamzdis

2 žingsnis: planavimas

3D spausdinimas
3D spausdinimas

Norėdami sukurti nuotolinio valdymo pultą, man reikėjo galimybės siųsti televizoriui vartotojų infraraudonųjų spindulių (CIR) komandas. Šiai užduočiai nusprendžiau naudoti „PhigetIR“. „PhidgetIR“yra USB valdomas įrenginys, galintis siųsti ir gauti CIR komandas. Aš tai pasirinkau dėl kelių priežasčių:

  • Norėjau kuo greičiau užbaigti šį projektą ir jį panaudoti, todėl mintis išardyti osciloskopą ir duonos lentą nebuvo patraukli. Be to, kokia tikimybė, kad mano rankomis lituojamos grandinės vis tiek veiks po metų ar dviejų?
  • „PhidgetIR“turi galimybę „išmokti“CIR komandas, todėl kūrimas yra labai paprastas.
  • Su „PhidgetIR“galite naudoti beveik bet kokią įprastą programavimo kalbą. Tai reiškė, kad galėčiau naudoti „Java“ir greitai viską užbaigti.
  • Galiausiai dirbu „Phidgets“, todėl man patogu naudoti API ir visada yra atsarginių įrenginių.

Kadangi nusprendžiau naudoti „PhidgetIR“, man reikėjo kompiuterio, kad galėčiau jį paleisti. Norėjau, kad šis projektas būtų atskira programa, panaši į įprastą nuotolinio valdymo pultą, todėl stalinis kompiuteris ar nešiojamasis kompiuteris buvo išjungtas. Aš nusprendžiau naudoti „PhidgetSBC4“(vienos plokštės kompiuterį, kuriame veikia „Debian Linux“), nes tai leido man naudotis abiem mygtukais be jokios papildomos aparatūros. Juos galima tiesiog prijungti tiesiai prie įmontuoto „VINT Hub“. Pastaba: šiam projektui taip pat galite naudoti „Raspberry Pi“. Galiausiai norėjau, kad šis projektas atrodytų ne tik funkcionaliai, bet ir puikiai atrodytų, todėl nusprendžiau, kad reikės 3D spausdinto korpuso.

3 žingsnis: 3D spausdinimas

3D spausdinimas
3D spausdinimas
3D spausdinimas
3D spausdinimas

Šiam projektui „Geomagic“buvo naudojamas gaubto modeliavimui. Tiek „PhidgetIR“, tiek „PhidgetSBC4“yra 3D žingsnių failai, kurie supaprastino procesą. Šio žingsnio metu buvo priimti kai kurie sprendimai dėl korpuso dydžio ir funkcionalumo:

  • „PhidgetIR“turi du IR šviesos diodus, kurie turi būti nukreipti į televizorių, kad būtų galima siųsti komandas. Užuot suplanavę korpusą aplink „PhidgetIR“plokštę, infraraudonųjų spindulių šviesos diodus galima išardyti ir priklijuoti prie skylių korpuso šone. Tada „PhidgetIR“plokštę galima montuoti toliau nuo šviesos diodų, naudojant tuščią vietą.
  • „VINT Hub“jungtys „PhidgetSBC4“gali būti sulenktos į viršų, o tai vis tiek leistų pasiekti mygtuko jungtis, taip pat neleistų sukurti didesnio gaubto.

Taip pat nusprendžiau pridėti mygtukų etiketę ir etiketę, nurodančią kryptį, kuria ji turėtų būti nukreipta, kad IR šviesos diodai būtų nukreipti teisinga kryptimi. Korpusą atspausdinau iš juodo ABS plastiko.

4 žingsnis: Surinkimas - pašalinkite šviesos diodus

Surinkimas - pašalinkite šviesos diodus
Surinkimas - pašalinkite šviesos diodus
Surinkimas - pašalinkite šviesos diodus
Surinkimas - pašalinkite šviesos diodus
Surinkimas - pašalinkite šviesos diodus
Surinkimas - pašalinkite šviesos diodus

Galiausiai IR šviesos diodai bus priklijuoti prie skylių korpuso šone. Tai reiškia, kad pirmiausia juos reikia išardyti.

5 žingsnis: Surinkimas - pridėkite skylių antraštes

Surinkimas - pridėkite skylių antraštes
Surinkimas - pridėkite skylių antraštes
Surinkimas - pridėkite skylių antraštes
Surinkimas - pridėkite skylių antraštes

Tada, kur buvo šviesos diodai, buvo pridėtos skylių antraštės, todėl jas buvo lengva prijungti naudojant 4 kontaktų jungiamąjį laidą. Norėdami išvengti atsitiktinio sąlyčio, naudokite termiškai susitraukiančius vamzdelius.

6 žingsnis: Surinkimas - pritvirtinkite šviesos diodus

Surinkimas - pritvirtinkite šviesos diodus
Surinkimas - pritvirtinkite šviesos diodus
Surinkimas - pritvirtinkite šviesos diodus
Surinkimas - pritvirtinkite šviesos diodus

Klijuokite šviesos diodus į korpuso šoną.

7 žingsnis: Surinkimas - pritvirtinkite „PhidgetIR“

Surinkimas - pritvirtinkite „PhidgetIR“
Surinkimas - pritvirtinkite „PhidgetIR“
Surinkimas - pritvirtinkite „PhidgetIR“
Surinkimas - pritvirtinkite „PhidgetIR“
Surinkimas - pritvirtinkite „PhidgetIR“
Surinkimas - pritvirtinkite „PhidgetIR“

Pritvirtinkite „PhidgetIR“prie korpuso ir prijunkite šviesos diodus.

8 žingsnis: Surinkimas - mygtukų pridėjimas

Surinkimas - mygtukų pridėjimas
Surinkimas - mygtukų pridėjimas
Surinkimas - mygtukų pridėjimas
Surinkimas - mygtukų pridėjimas
Surinkimas - mygtukų pridėjimas
Surinkimas - mygtukų pridėjimas

Mygtukai turi būti prijungti prie „PhidgetSBC“įmontuoto „VINT Hub“, todėl perpjoviau „Phidget“kabelį per pusę ir galus lituojau prie mygtukų. Atminkite, kad reikalingas tik baltas laidas (signalas) ir juodas (įžeminimas).

9 žingsnis: Surinkimas - viską sudėkite

Surinkimas - viską sudėti
Surinkimas - viską sudėti
Surinkimas - viską sudėti
Surinkimas - viską sudėti

Norint viską sutvarkyti, reikėjo šiek tiek valdyti kabelį, tačiau korpusas veikė gerai.

10 veiksmas: programinė įranga - kodas

Šiam projektui reikalingas tik vienas „Java“failas, kurį galite rasti čia. Programa naudoja vieną „PhidgetIR“objektą ir du „DigitalInput“objektus. Šiuos objektus galite sukurti taip:

PhidgetIR ir = naujas PhidgetIR ();

„DigitalInput tvButton“= naujas „DigitalInput“(); DigitalInput otherButton = naujas DigitalInput ();

Skaitmeninės įvesties objektai susieti su fiziniu VINT koncentratoriaus mygtuku. Prisijungimo, atjungimo, klaidų ir būsenos keitimo įvykiai taip pat yra prenumeruojami:

tv.setIsHubPortDevice (tiesa);

tvButton.setHubPort (4); tvButton.addAttachListener (onAttachListener); tvButton.addDetachListener (onDetachListener); tvButton.addErrorListener (onErrorListener); tvButton.addStateChangeListener (onStateChangeListener); tvButton.open (); otherButton.setIsHubPortDevice (tiesa); otherButton.setHubPort (5); otherButton.addAttachListener (onAttachListener); otherButton.addDetachListener (onDetachListener); otherButton.addErrorListener (onErrorListener); otherButton.addStateChangeListener (onStateChangeListener); otherButton.open ();

Aukščiau pateiktas būsenos pokyčių klausytojas atrodo taip:

privatestatic DigitalInputStateChangeListener onStateChangeListener = new DigitalInputStateChangeListener () {@OverridepublicvoidonStateChange (DigitalInputStateChangeEvent disce) {

DigitalInput ch = (DigitalInput) disce.getSource (); pabandykite {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true;} if (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActivated = true;}} catch (PhidgetException ex) {System.out.println ("Klaida:"+ ex.getDescription ());}}};

Kai mygtukas yra įjungtas, įvykio kodas bus įvykdytas ir nustatys vėliavą. Šios vėliavos bus nurodytos ir iš naujo nustatytos pagrindinėje grandinėje. Pagrindinė kilpa tiesiog laukia, kol pasikeis mygtuko būsena, ir tada siunčia IR komandas naudodami perdavimo funkciją, kurią galima gauti iš „PhidgetIR“API.

while (tiesa) {if (tvButtonActivated) {

tvButtonActivated = klaidinga; „Log.log“(„LogLevel. INFO“, „KEIČIANTIS ŠALTINIS - TV“); ir.transmit (sourceButtonString, codeInfo); Siūlai.miegoti (500); ir.transmit (rightButtonString, codeInfo); Siūlai.miegoti (500); ir.transmit (enterButtonString, codeInfo);} if (otherButtonActivated) {otherButtonActivated = false; „Log.log“(„LogLevel. INFO“, „CHANGING SOURCE - DVD“); ir.transmit (sourceButtonString, codeInfo); Siūlai.miegoti (500); ir.transmit (leftButtonString, codeInfo); Siūlai.miegoti (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}

11 veiksmas: programinė įranga - CIR komandos

Programinė įranga - CIR komandos
Programinė įranga - CIR komandos

Štai pavyzdys, kaip sukurti komandą (šiuo atveju - garsumo didinimo komanda):

// IR kodas

IRCodeInfo sourceButtonCI = naujas IRCodeInfo (); String volumeUp = "77e1d0f0"; // Nustatyti šaltinio mygtuko sourceButtonCI.bitCount = 32; sourceButtonCI.encoding = IRCodeEncoding. SPACE; sourceButtonCI.gap = 108921; sourceButtonCI.trail = 549; sourceButtonCI.zero = newint [2]; sourceButtonCI.zero [0] = 549; sourceButtonCI.zero [1] = 627; sourceButtonCI.one = newint [2]; sourceButtonCI.one [0] = 549; sourceButtonCI.one [1] = 1755; sourceButtonCI.header = newint [2]; sourceButtonCI.header [0] = 9084; sourceButtonCI.header [1] = 4600; sourceButtonCI.repeat = newint [3]; sourceButtonCI.repeat [0] = 9084; sourceButtonCI.repeat [1] = 2308; sourceButtonCI.repeat [2] = 549; sourceButtonCI.length = IRCodeLength. CONSTANT;

Norėdami gauti informacijos apie šią komandą, aš tiesiog panaudojau „PhidgetIR“pavyzdį, pateiktą kartu su „Phidget“bibliotekomis. Nukreipęs nuotolinio valdymo pultą į „PhidgetIR“ir nuspaudęs garsumo didinimo mygtuką, IR „išmoksta“kodą ir užpildo pavyzdį. Šią informaciją galima tiesiog nukopijuoti į kodą.

12 veiksmas: paleiskite programą

„Java“failą galima rašyti ir kompiliuoti išoriniame kompiuteryje. Įdėkite „PhidgetRemote.java“ir „phidget22.jar“į tą patį aplanką ir paleiskite šią komandą:

„Windowsjavac“klasės kelias.; Phidget22.jar „PhidgetRemote.java“

macOS/Linuxjavac -classpath.: phidget22.jar PhidgetRemote.java

Po kompiliavimo nukopijuokite sukurtus klasės failus į „PhidgetSBC4“ir sukonfigūruokite, kad jie būtų paleisti.

13 žingsnis: rezultatas

Kai atidaviau nuotolinio valdymo pultą savo merginos seneliui ir parodžiau, kaip juo naudotis, jis stebėjosi, kaip tai paprasta. Peržiūrėkite vaizdo įrašą, kad pamatytumėte jo veikimą!

Nuotolinio valdymo konkursas 2017 m
Nuotolinio valdymo konkursas 2017 m
Nuotolinio valdymo konkursas 2017 m
Nuotolinio valdymo konkursas 2017 m

Trečiasis prizas nuotolinio valdymo konkurse 2017 m

Rekomenduojamas: