Мазмұны:

Атаңызға арналған технология: 13 қадам (суреттермен)
Атаңызға арналған технология: 13 қадам (суреттермен)

Бейне: Атаңызға арналған технология: 13 қадам (суреттермен)

Бейне: Атаңызға арналған технология: 13 қадам (суреттермен)
Бейне: Оригами жүрегі бар қорап 2024, Қараша
Anonim
Image
Image

Сіз қанша рет ата -әжелеріңіздің үйіне бардыңыз, технологиялық ақаулықты шешуге көмектесесіз, ол электр кабелін ажыратады, қашықтағы батареяны өшіреді немесе теледидардағы көзді ауыстыра алмайды? Мен үшін бұл жиі болатынын білемін. Олардың мәселелерінің көпшілігін дүкенге жаңа АА үшін жүгіру арқылы шешуге болады, бірақ кейде олар неғұрлым бейімделген шешімнің пайдасын көруі мүмкін.

Мысалы, менің дос қызымның атасы жаңа теледидар алды, біз оған DVD мен теледидар арасында ауысу үшін көзді қалай өзгерту керектігін үйретуге тырыстық, бірақ ол оны түсінбеді. Ол сондай -ақ көру қабілетінің нашарлауымен айналысады және күрделі процестерді еске түсіруге онша қызығушылық танытпайды, ол қалаған кезде өз шоуларын көргісі келеді. Біздің соңғы сапарымыздағы қадамдарды байсалды түрде түсіндіруге тырысқаннан кейін, мен оны екі түйменің қарапайым басқару пультіне айналдырамын деп шештім. Бұл оған теледидардың кіріс көзін ауыртпалықсыз өзгертуге мүмкіндік береді, сүйікті Matlock DVD дискілері мен Price is Right оңай ауысады.

1 -қадам: материалдар

  • PhidgetIR
  • PhidgetSBC4 (немесе Raspberry Pi сияқты кез келген тақталы компьютер)
  • Пісіру темірі
  • Бүйірлік кескіштер
  • Сым тартқыштар
  • Jumper Wires
  • USB кабелі
  • Phidget кабелі
  • Қоршау
  • Тесік тесіктері
  • Жылуды төмендететін құбырлар

2 -қадам: Жоспарлау

3D басып шығару
3D басып шығару

Қашықтан басқару пультін жасау үшін маған теледидарға инфрақызыл (CIR) тұтынушылық командаларды жіберу мүмкіндігі қажет болды. Мен бұл тапсырманы орындау үшін PhigetIR қолдануды шештім. PhidgetIR - бұл CIR командаларын жіберуге де, қабылдауға да болатын USB басқарылатын құрылғы. Мен мұны бірнеше себептерге байланысты таңдадым:

  • Мен бұл жобаны тезірек аяқтап, пайдалануға бергім келді, сондықтан осциллограф пен нан тақтасын сындыру туралы ой тартымды болмады. Сонымен қатар, менің қолмен дәнекерленген тізбектерім бір-екі жылдан кейін де жұмыс істей алады ма?
  • PhidgetIR CIR командаларын «үйрену» мүмкіндігіне ие, бұл дамуды өте қарапайым етеді.
  • Сіз PhidgetIR көмегімен кез келген негізгі бағдарламалау тілін қолдана аласыз. Бұл мен Java -ны қолдана алатынымды және істерді тез аяқтай алатынымды білдірді.
  • Ақырында, мен Phidgets -те жұмыс жасаймын, сондықтан мен API -мен өте ыңғайлымын, және әрқашан қосалқы құрылғылар бар.

Мен PhidgetIR қолдануды таңдағандықтан, оны өшіру үшін маған компьютер қажет болды. Мен бұл жобаның кәдімгі қашықтан басқару пульті сияқты дербес бағдарлама болғанын қаладым, сондықтан жұмыс үстелі немесе ноутбук істемей қалды. Мен PhidgetSBC4 (Debian Linux-пен жұмыс істейтін бір тақталы компьютер) қолдануды таңдадым, себебі бұл қосымша батырмасыз екі түймені қосуға мүмкіндік берді. Оларды тікелей кіріктірілген VINT хабына қосуға болады. Ескерту: бұл жоба үшін Raspberry Pi де қолдануға болады. Ақырында, функционалдылықтан басқа, мен бұл жобаның керемет болғанын қалаймын, сондықтан 3D басып шығарылған корпус қажет деп шештім.

3 -қадам: 3D басып шығару

3D басып шығару
3D басып шығару
3D басып шығару
3D басып шығару

Бұл жоба үшін қоршауды модельдеу үшін Geomagic қолданылды. PhidgetIR үшін де, PhidgetSBC4 үшін де процесті жеңілдететін 3D қадамдық файлдар бар. Бұл қадамда қоршаудың көлемі мен функционалдығына қатысты кейбір шешімдер қабылданды:

  • PhidgetIR -де пәрмендерді жіберу үшін теледидарды көрсететін екі ИК жарық диоды бар. PhidgetIR тақтасының айналасындағы қоршауды жобалаудың орнына, ИҚ -диодты шамдарды түссіздендіріп, корпустың бүйіріндегі тесіктерге жабыстыруға болады. PhidgetIR тақтасын бос орынды пайдалана отырып, светодиодтардан алыс орнатуға болады.
  • PhidgetSBC4 -тегі VINT Hub қосқыштары жоғары қарай бүгілуі мүмкін, бұл әлі де түйме қосылымдарына қол жеткізуге мүмкіндік береді, сонымен қатар үлкен қоршауды құруға жол бермейді.

Мен сондай -ақ түймелерге арналған жапсырманы және IR светодиоды дұрыс бағытта бағытталуы үшін оның бағытын көрсететін белгіні қосуды шештім. Мен қоршауды қара ABS пластиктен басып шығардым.

4 -қадам: құрастыру - жарық диодтарын алып тастаңыз

Құрастыру - жарық диодтарын алып тастаңыз
Құрастыру - жарық диодтарын алып тастаңыз
Құрастыру - жарық диодтарын алып тастаңыз
Құрастыру - жарық диодтарын алып тастаңыз
Құрастыру - жарық диодтарын алып тастаңыз
Құрастыру - жарық диодтарын алып тастаңыз

IR жарық диодтары ақырында корпустың бүйіріндегі тесіктерге жабыстырылады. Бұл дегеніміз, алдымен олардың қабығын босату керек.

5 -қадам: Жинау - тесік тақырыптарын қосу

Құрастыру - тесік тақырыптарын қосу
Құрастыру - тесік тақырыптарын қосу
Құрастыру - тесік тақырыптарын қосу
Құрастыру - тесік тақырыптарын қосу

Әрі қарай, светодиодтар бар тесіктердің үстіңгі тақталары қосылды, бұл оларға 4 істікшелі секіргіш сым арқылы қосылуды жеңілдетті. Кездейсоқ байланыстың алдын алу үшін жылуды төмендететін құбырды қолданыңыз.

6 -қадам: құрастыру - жарықдиодты бекітіңіз

Құрастыру - жарық диодты бекітіңіз
Құрастыру - жарық диодты бекітіңіз
Құрастыру - жарықдиодты бекітіңіз
Құрастыру - жарықдиодты бекітіңіз

Светодиодтарды корпустың бүйіріне жабыстырыңыз.

7 -қадам: Ассамблея - PhidgetIR тіркеңіз

Ассамблея - PhidgetIR тіркеңіз
Ассамблея - PhidgetIR тіркеңіз
Ассамблея - PhidgetIR тіркеңіз
Ассамблея - PhidgetIR тіркеңіз
Ассамблея - PhidgetIR тіркеңіз
Ассамблея - PhidgetIR тіркеңіз

PhidgetIR -ді корпусқа бекітіп, жарықдиодты қосыңыз.

8 -қадам: құрастыру - түймелерді қосу

Құрастыру - түймелерді қосу
Құрастыру - түймелерді қосу
Құрастыру - түймелерді қосу
Құрастыру - түймелерді қосу
Құрастыру - түймелерді қосу
Құрастыру - түймелерді қосу

Түймешіктерді PhidgetSBC кіріктірілген VINT хабына қосу керек, сондықтан мен Phidget кабелін екіге бөліп, ұштарын түймелерге дәнекерледім. Назар аударыңыз, тек ақ сым (сигнал) және қара (жерге қосу) қажет.

9 -қадам: Ассамблея - бәрін біріктіру

Ассамблея - бәрін біріктіру
Ассамблея - бәрін біріктіру
Ассамблея - бәрін біріктіру
Ассамблея - бәрін біріктіру

Барлығын біріктіру үшін кейбір кабельдік басқару қажет болды, бірақ қоршау жақсы жұмыс істеді.

10 -қадам: Бағдарламалық қамтамасыз ету - код

Бұл жобаға тек бір ғана Java файлы қажет, оны мына жерден табуға болады. Бағдарлама бір PhidgetIR объектісін және екі DigitalInput нысанын қолданады. Сіз бұл нысандарды келесідей жасай аласыз:

PhidgetIR ir = жаңа PhidgetIR ();

DigitalInput tvButton = жаңа DigitalInput (); DigitalInput otherButton = жаңа DigitalInput ();

Сандық енгізу объектілері VINT хабындағы физикалық батырмамен салыстырылады. Қосу, ажырату, қате және күйді өзгерту оқиғалары да жазылады:

tv.setIsHubPortDevice (шын);

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

Жоғарыда келтірілген күй өзгерісінің тыңдаушысы келесідей:

жеке статистикалық DigitalInputStateChangeListener onStateChangeListener = жаңа DigitalInputStateChangeListener () {@OverridepublicvoidonStateChange (DigitalInputStateChangeEvent ажырату) {

DigitalInput ch = (DigitalInput) disce.getSource (); көріңіз {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true;} if (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActivated = true;}} аулау (PhidgetException ex) {System.out.println («Қате:»+ ex.getDescription ());}}};

Түйме іске қосылған кезде оқиға коды орындалады және жалауша орнатылады. Бұл жалаулар сілтеме болады және негізгі циклде қалпына келтіріледі. Негізгі цикл түйме күйінің өзгеруін күтеді, содан кейін PhidgetIR API -де қол жетімді жіберу функциясын қолдана отырып IR пәрмендерін жібереді.

while (true) {if (tvButtonActivated) {

tvButtonActivated = жалған; Log.log (LogLevel. INFO, «CHANGING SOURCE - TV»); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (rightButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} if (otherButtonActivated) {otherButtonActivated = false; Log.log (LogLevel. INFO, «CHANGING SOURCE - DVD»); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (leftButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}

11 -қадам: Бағдарламалық қамтамасыз ету - CIR командалары

Бағдарламалық қамтамасыз ету - CIR командалары
Бағдарламалық қамтамасыз ету - CIR командалары

Міне, пәрменді құрудың мысалы (бұл жағдайда дыбыс деңгейін жоғарылату пәрмені):

// IR коды

IRCodeInfo sourceButtonCI = жаңа IRCodeInfo (); String volumeUp = «77e1d0f0»; // 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;

Бұл пәрмен туралы ақпарат алу үшін мен жай ғана Phidget кітапханаларымен бірге келетін PhidgetIR мысалын қолдандым. Қашықтан басқару пультін PhidgetIR -ге көрсетіп, дыбыс деңгейін жоғарылату түймесін басып тұрғаннан кейін, ИҚ кодты «үйренеді» және мысалды толтырады, содан кейін бұл ақпаратты кодқа көшіруге болады.

12 -қадам: Бағдарламаны іске қосу

Java файлын сыртқы компьютерде жазуға және құрастыруға болады. PhidgetRemote.java және phidget22.jar файлдарын бір қалтаға орналастырып, келесі пәрменді орындаңыз:

Windowsjavac -classpath.; Phidget22.jar PhidgetRemote.java

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

Компиляциядан кейін құрылған класс файлдарын PhidgetSBC4 -ке көшіріп, оны жүктеу кезінде іске қосу үшін конфигурациялаңыз.

13 -қадам: Нәтиже

Мен қашықтан басқару пультін құрбымның атасына беріп, оны қалай қолдану керектігін көрсеткенімде, ол оның қарапайымдылығына таң қалды. Оның әрекетін көру үшін бейнені қараңыз!

Қашықтан басқару сайысы 2017 ж
Қашықтан басқару сайысы 2017 ж
Қашықтан басқару сайысы 2017 ж
Қашықтан басқару сайысы 2017 ж

2017 жылы қашықтан басқару пультінің байқауының үшінші жүлдесі

Ұсынылған: