Оглавление:
- Шаг 1: материалы
- Шаг 2: планирование
- Шаг 3: 3D-печать
- Шаг 4: Сборка - Снимите светодиоды
- Шаг 5: Сборка - добавление заголовков сквозных отверстий
- Шаг 6: Сборка - прикрепите светодиоды
- Шаг 7: Сборка - прикрепите PhidgetIR
- Шаг 8: Сборка - добавление кнопок
- Шаг 9: Сборка - Собираем все вместе
- Шаг 10: Программное обеспечение - Код
- Шаг 11: Программное обеспечение - Команды CIR
- Шаг 12: Запуск программы
- Шаг 13: Результат
Видео: Технологии для вашего дедушки: 13 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Сколько раз вы приходили в дом своих бабушек и дедушек, чтобы помочь с «технологической проблемой», которая заканчивалась отключением кабеля питания, разряженной батареей пульта дистанционного управления или невозможностью переключить источник на их телевизоре? Знаю, что со мной такое случается довольно часто. Хотя большинство их проблем можно решить, просто побежав в магазин за новыми AA, иногда они могут извлечь выгоду из более индивидуального решения.
Например, дедушка моей девушки купил новый телевизор, и мы пытались научить его, как менять источник, чтобы он мог переключаться между DVD и телевизором, но он просто не мог этого понять. У него также проблемы со зрением, и он не слишком заинтересован в запоминании сложных процессов, он просто хочет смотреть свои шоу, когда хочет. После попытки спокойно объяснить шаги во время нашего последнего визита без особого успеха, я решил, что просто сделаю его собственный простой двухкнопочный пульт дистанционного управления. Это позволило бы ему безболезненно менять источник входного сигнала на своем телевизоре, легко переключаясь между его любимыми DVD Matlock и Price is Right.
Шаг 1: материалы
- PhidgetIR
- PhidgetSBC4 (или любой одноплатный компьютер, например Raspberry Pi)
- Паяльник
- Боковые фрезы
- Инструмент для зачистки проводов
- Провода перемычки
- USB-кабель
- Кабель Phidget
- Вложение
- Заглушки для сквозных отверстий
- Термоусадочная трубка
Шаг 2: планирование
Чтобы создать пульт, мне нужна была возможность отправлять на телевизор команды через инфракрасный порт (CIR). Я решил использовать для этой задачи PhigetIR. PhidgetIR - это управляемое через USB устройство, которое может отправлять и получать команды CIR. Я выбрал это по нескольким причинам:
- Я хотел закончить этот проект как можно скорее и пустить его в ход, поэтому мысль о том, чтобы вытащить осциллограф и макетную плату, не была привлекательной. Кроме того, насколько вероятно, что мои запаянные вручную схемы все еще будут работать через год или два?
- PhidgetIR обладает способностью «изучать» команды CIR, что делает разработку чрезвычайно простой.
- Вы можете использовать практически любой основной язык программирования с PhidgetIR. Это означало, что я мог использовать Java и быстро закончить работу.
- Наконец, я работаю на Phidgets, поэтому мне нравится API, и всегда есть запасные устройства.
Поскольку я решил использовать PhidgetIR, мне понадобился компьютер, чтобы запустить его. Я хотел, чтобы этот проект был автономным приложением, очень похожим на обычный пульт, поэтому настольный компьютер или ноутбук отсутствовали. Я решил использовать PhidgetSBC4 (одноплатный компьютер под управлением Debian Linux), потому что он позволял мне взаимодействовать с обеими кнопками без какого-либо дополнительного оборудования. Их можно просто подключить напрямую к встроенному VINT Hub. Примечание: вы также можете использовать Raspberry Pi для этого проекта. Наконец, я хотел, чтобы этот проект был не только функционально надежным, но и отлично смотрелся, поэтому решил, что потребуется корпус, напечатанный на 3D-принтере.
Шаг 3: 3D-печать
В этом проекте Geomagic использовалась для моделирования корпуса. Как для PhidgetIR, так и для PhidgetSBC4 доступны файлы трехмерных шагов, которые упростили процесс. На этом этапе были приняты некоторые решения относительно размера и функциональности корпуса:
- PhidgetIR имеет два ИК-светодиода, которые должны быть направлены в сторону телевизора для отправки команд. Вместо того, чтобы строить корпус вокруг платы PhidgetIR, ИК-светодиоды можно было распаять и вклеить в отверстия на боковой стороне корпуса. После этого плату PhidgetIR можно было установить отдельно от светодиодов, используя пустое пространство.
- Разъемы VINT Hub на PhidgetSBC4 можно было согнуть вверх, что по-прежнему обеспечило бы доступ для кнопочных соединений, а также предотвратило бы необходимость создания большего корпуса.
Я также решил добавить метку для кнопок и метку, указывающую направление, в котором они должны быть повернуты, чтобы ИК-светодиоды были направлены в правильном направлении. Я распечатал корпус локально из черного АБС-пластика.
Шаг 4: Сборка - Снимите светодиоды
ИК-светодиоды в конечном итоге будут вклеены в отверстия на боковой стороне корпуса. Это означает, что их сначала нужно распаять.
Шаг 5: Сборка - добавление заголовков сквозных отверстий
Затем на место светодиодов были добавлены сквозные разъемы, что упростило их подключение с помощью 4-контактной перемычки. Используйте термоусадочную трубку, чтобы предотвратить случайный контакт.
Шаг 6: Сборка - прикрепите светодиоды
Приклейте светодиоды к боковой стенке корпуса.
Шаг 7: Сборка - прикрепите PhidgetIR
Присоедините PhidgetIR к корпусу и подключите светодиоды.
Шаг 8: Сборка - добавление кнопок
Кнопки необходимо подключить к встроенному VINT Hub на PhidgetSBC, поэтому я разрезал кабель Phidget пополам и припаял концы к кнопкам. Обратите внимание, что требуются только белый провод (сигнал) и черный (земля).
Шаг 9: Сборка - Собираем все вместе
Чтобы собрать все вместе, потребовалось некоторое управление кабелями, однако корпус работал хорошо.
Шаг 10: Программное обеспечение - Код
Для этого проекта требуется только один файл Java, который вы можете найти здесь. Программа использует один объект PhidgetIR и два объекта DigitalInput. Вы можете создать эти объекты следующим образом:
PhidgetIR ir = новый PhidgetIR ();
DigitalInput tvButton = новый DigitalInput (); DigitalInput otherButton = новый DigitalInput ();
Объекты цифрового ввода отображаются на физическую кнопку на VINT Hub. События присоединения, отсоединения, ошибки и изменения состояния также подписываются на:
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 = new 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 ());}}};
Когда кнопка активирована, выполняется код события и устанавливается флаг. На эти флаги будут ссылаться и они будут сброшены в основном цикле. Основной цикл просто ожидает изменения состояния кнопки, а затем отправляет ИК-команды, используя функцию передачи, доступную в 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);} если (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
Вот пример того, как создать команду (в данном случае команду увеличения громкости):
// ИК-код
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
Рекомендуемые:
Выберите заголовок и ключевые слова для вашего руководства: 6 шагов (с изображениями)
Выберите заголовок и ключевые слова для вашего руководства: выбор правильного заголовка и ключевых слов может быть разницей между инструктируемым переходом на первую страницу результатов поиска Google или сбоем и вылетом в ужасную страну без просмотров в Интернете. Хотя ключевые слова и заголовок - не единственные
Люциферин, Беспроводное смещенное освещение для вашего ПК: 6 шагов (с изображениями)
Люциферин, беспроводное смещение освещения для вашего ПК: Люциферин - это общий термин для светоизлучающего соединения, обнаруженного в организмах, которые генерируют биолюминесценцию, таких как светлячки и светлячки. Firefly Luciferin - это компьютерное программное обеспечение Java Fast Screen Capture, разработанное для прошивки Glow Worm Luciferin, которые
Система с ионным охлаждением для вашего игрового сервера Raspberry Pi !: 9 шагов (с изображениями)
Система с ионным охлаждением для игрового сервера Raspberry Pi! Привет, создатели! Некоторое время назад у меня был Raspberry Pi, но я действительно не знал, что с ним делать. В последнее время популярность Minecraft вернулась, поэтому я решил создать сервер Minecraft, чтобы я и мои друзья могли наслаждаться им. Что ж, это оказался только я:
D4E1 - Сделай сам - Вспомогательные технологии: регулируемый поднос для инвалидной коляски: 7 шагов (с изображениями)
D4E1 - Сделай сам - Вспомогательные технологии: регулируемый поднос для инвалидной коляски: Кьелл имеет врожденную инвалидность: дискинетический квадрипарез и не может самостоятельно есть. Ему нужна помощь наблюдателя, эрготерапевта, который его кормит. Здесь возникают две проблемы: 1) Эрготерапевт стоит за рулем
Использование переменного тока со светодиодами (часть 4) - Новые технологии: 6 шагов (с изображениями)
Использование переменного тока со светодиодами (Часть 4) - Новые технологии: Некоторыми препятствиями на пути к всеобщему принятию светодиодов в домашних условиях были относительная высокая стоимость люмена и сложные и неуклюжие системы преобразования энергии. В последние месяцы ряд новых разработок обещает приблизить нас к