Съдържание:

Технология за вашия дядо: 13 стъпки (със снимки)
Технология за вашия дядо: 13 стъпки (със снимки)

Видео: Технология за вашия дядо: 13 стъпки (със снимки)

Видео: Технология за вашия дядо: 13 стъпки (със снимки)
Видео: Стоян колев се кара с яница 2024, Ноември
Anonim
Image
Image

Колко пъти сте ходили в къщата на баба и дядо, за да помогнете за „технологичен проблем“, който в крайна сметка беше изключен захранващ кабел, изтощена батерия за дистанционно управление или не можете да превключите източника на телевизора си? Знам, че за мен това се случва доста често. Въпреки че повечето от техните проблеми могат да бъдат решени, като просто изтичат до магазина за някои нови AA, понякога те биха могли да се възползват от по -персонализирано решение.

Например дядото на приятелката ми получи нов телевизор и се опитахме да го научим как да променя източника, за да може да превключва между DVD и телевизор - но той просто не можеше да го разбере. Той също се занимава с нарушено зрение и не се интересува твърде много от опитите да запомни сложни процеси, той просто иска да гледа неговите предавания, когато пожелае. След като се опитах спокойно да обясня стъпките по време на последното ни посещение без особен успех, реших, че просто ще му направя неговото просто дистанционно управление с два бутона. Това би му позволило да променя безболезнено входящия източник на телевизора си, превключвайки между любимите си DVD -та на Matlock и Price is Right с лекота.

Стъпка 1: Материали

  • PhidgetIR
  • PhidgetSBC4 (или всеки едноплатен компютър като Raspberry Pi)
  • Поялник
  • Странични фрези
  • Машини за сваляне на тел
  • Джъмперни проводници
  • USB кабел
  • Phidget кабел
  • Корпус
  • Хедери през отвори
  • Термосвиваеми тръби

Стъпка 2: Планиране

3D печат
3D печат

За да създам дистанционното, имах нужда от способността да изпращам потребителски инфрачервени (CIR) команди към телевизора. Реших да използвам PhigetIR за тази задача. PhidgetIR е USB контролирано устройство, което има възможност да изпраща и получава CIR команди. Избрах това по няколко причини:

  • Исках да завърша този проект възможно най -скоро и да го използвам, така че мисълта да разбия осцилоскопа и макета не беше привлекателна. Също така, колко е вероятно моите ръчно запоени схеми да продължат да работят след година или две?
  • PhidgetIR има способността да „учи“CIR команди, което прави разработката изключително проста.
  • Можете да използвате почти всеки основен език за програмиране с PhidgetIR. Това означаваше, че мога да използвам Java и да свърша нещата бързо.
  • И накрая, аз работя за Phidgets, така че съм доволен от API и винаги има резервни устройства.

Тъй като избрах да използвам PhidgetIR, имах нужда от компютър, от който да го стартирам. Исках този проект да бъде самостоятелно приложение, подобно на нормално дистанционно, така че десктоп или лаптоп беше излязъл. Избрах да използвам PhidgetSBC4 (едноплатен компютър с Debian Linux), защото ми позволи да взаимодействам с двата бутона без допълнителен хардуер. Те могат просто да бъдат свързани директно към вградения VINT концентратор. Забележка: можете също да използвате Raspberry Pi за този проект. И накрая, освен функционално здрав, исках този проект да изглежда страхотно, затова реших, че ще е необходим 3D отпечатан корпус.

Стъпка 3: 3D печат

3D печат
3D печат
3D печат
3D печат

За този проект Geomagic беше използван за моделиране на заграждението. Налични са 3D стъпкови файлове както за PhidgetIR, така и за PhidgetSBC4, което опрости процеса. По време на тази стъпка бяха взети някои решения относно размера и функционалността на заграждението:

  • PhidgetIR има два IR светодиода, които трябва да са насочени към телевизора, за да изпращат команди. Вместо да проектират кутията около платката PhidgetIR, инфрачервените светодиоди могат да бъдат разпаени и залепени в отворите отстрани на корпуса. След това платката PhidgetIR може да бъде монтирана далеч от светодиодите, като се използва празното пространство.
  • Съединителите на VINT Hub на PhidgetSBC4 могат да бъдат огънати нагоре, което все пак би позволило достъп за връзките с бутони и също така би предотвратило необходимостта от създаване на по -голям корпус.

Реших също да добавя етикет за бутоните и етикет, посочващ посоката, в която трябва да бъде обърната, така че инфрачервените светодиоди да са насочени в правилната посока. Отпечатах корпуса локално от черна ABS пластмаса.

Стъпка 4: Монтаж - Отстранете светодиодите

Монтаж - Отстранете светодиодите
Монтаж - Отстранете светодиодите
Монтаж - Отстранете светодиодите
Монтаж - Отстранете светодиодите
Монтаж - Отстранете светодиодите
Монтаж - Отстранете светодиодите

IR светодиодите в крайна сметка ще бъдат залепени в отвори отстрани на корпуса. Това означава, че първо трябва да бъдат разпаени.

Стъпка 5: Сглобяване - Добавяне на заглавки през отвори

Монтаж - Добавяне на заглавки през отвори
Монтаж - Добавяне на заглавки през отвори
Сглобяване - Добавяне на заглавки през отвори
Сглобяване - Добавяне на заглавки през отвори

След това към местата, където са били светодиодите, са добавени заглавки с проходни отвори, което улеснява свързването им с помощта на 4-пинов джъмпер. Използвайте термосвиваеми тръби, за да предотвратите случаен контакт.

Стъпка 6: Монтаж - Прикрепете светодиоди

Монтаж - Прикрепете светодиоди
Монтаж - Прикрепете светодиоди
Монтаж - Прикрепете светодиоди
Монтаж - Прикрепете светодиоди

Залепете светодиодите отстрани на корпуса.

Стъпка 7: Монтаж - Прикрепете PhidgetIR

Монтаж - Прикрепете PhidgetIR
Монтаж - Прикрепете PhidgetIR
Монтаж - Прикрепете PhidgetIR
Монтаж - Прикрепете PhidgetIR
Монтаж - Прикрепете PhidgetIR
Монтаж - Прикрепете PhidgetIR

Прикрепете PhidgetIR към кутията и свържете светодиодите.

Стъпка 8: Сглобяване - Добавяне на бутони

Сглобяване - Добавяне на бутони
Сглобяване - Добавяне на бутони
Сглобяване - Добавяне на бутони
Сглобяване - Добавяне на бутони
Сглобяване - Добавяне на бутони
Сглобяване - Добавяне на бутони

Бутоните трябва да бъдат свързани към вградения VINT концентратор на PhidgetSBC, така че отрязах наполовина кабел на 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 ();

Посоченият по -горе слушател за промяна на състоянието изглежда така:

privatestatic DigitalInputStateChangeListener onStateChangeListener = нов DigitalInputStateChangeListener () {@OverridepublicvoidonStateChange (DigitalInputStateChangeEvent disce) {

DigitalInput ch = (DigitalInput) disce.getSource (); опитайте {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true;} if (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActivated = true;}} catch (PhidgetException ex) {System.out.println ("Грешка:"+ ex.getDescription ());}}};

Когато бутонът е активиран, кодът на събитието ще се изпълни и ще зададе флаг. Тези флагове ще бъдат препращани и нулирани в главния цикъл. Основният цикъл просто чака промяна в състоянието на бутона и след това изпраща IR команди, използвайки функцията за предаване, която е достъпна от API на PhidgetIR.

while (true) {if (tvButtonActivated) {

tvButtonActivated = false; Log.log (LogLevel. INFO, "ИЗМЕНЯЩ ИЗТОЧНИК - ТВ"); 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, "ИЗМЕНЯЩ ИЗТОЧНИК - 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;

За да получа информацията за тази команда, просто използвах примера на PhidgetIR, който идва с библиотеките на Phidget. След като насочи дистанционното към PhidgetIR и задържи бутона за увеличаване на звука, IR „научава“кода и попълва примера. След това тази информация може просто да бъде копирана в кода.

Стъпка 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

Препоръчано: