Оглавление:
- Шаг 1: Шаг 1: Соберите детали
- Шаг 2: Шаг 2: Электромонтаж и электроника
- Шаг 3: Шаг 3: Настройка программного обеспечения операционной системы
- Шаг 4. Шаг 4. Обновите конфигурацию JSON
Видео: Прикроватный хоккейный светильник и ЖК-экран НХЛ: 4 ступени (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Вступление
NHL Light - для любителей хоккея, которые хотят следить за своей командой, но не могут смотреть каждую игру. Его лучшая особенность заключается в том, что он имитирует результат с помощью хоккейного рожка (индивидуального для вашей команды) и света.
Помимо хоккейного рожка и света, «NHL Light» имеет дисплей, на котором отображается текущий или последний счет игры, время игры или время следующей игры, а также текущая дата и время.
«NHL Light» работает на простом списке деталей, который легко собрать, электроника и код, который находится в свободном доступе.
Функции
- Конфигурация на основе веб-страницы для выбора вашей команды и Wi-Fi
- Играет световой сигнал и гудок, когда ваша команда забивает (даже если вы на выезде)
- Воспроизводит звук, чтобы объявить о начале игры
- Воспроизводит звук, чтобы объявить о завершении игры.
- Предоставляет время и дату следующей игры, если игра не ведется.
- Отображает текущее время и период игры, если игра продолжается.
- Отображает текущую дату и время.
Шаг 1: Шаг 1: Соберите детали
Вот список запчастей.
-
Raspberry Pi W *
- Амазонка
- Я предпочитаю получать свои в Microcenter, но их можно найти в Интернете по более низкой цене в других местах.
- $10
- SD-карта (минимум 4 ГБ) *
- спикер - Amazon - ~ 2 доллара *
- amp - PAM8403 * - Amazon - ~ 1 доллар за штуку
- свет - Amazon - ~ 5 долларов
-
Кейс - 1 доллар *
- Майкла
- Я рекомендую небольшой деревянный чемоданчик из магазина для рукоделия Майкла, но оставлю его вам!
-
I2C 2004 LCD - 3-7 долларов
- Амазонка
- Код поддерживает 3 типа ЖК-дисплеев, но я выбрал I2C 2004 как лучшее соотношение цены и размера. (Возможен SSD1306)
- 2 транзистора - 2N2222A - Amazon
- Разное Провода / припой 12 В
- блок питания - Amazon
- Понижающий преобразователь 12 В -> 5 В - Amazon
* Существует гибкость при выборе этой части.
ПРИМЕЧАНИЕ. Вы можете начать большую часть этого проекта, используя только свой Raspberry Pi, пока вы ждете отправки других предметов.
Шаг 2: Шаг 2: Электромонтаж и электроника
-
Собрать свет
- Электропроводка для света - 12+ к свету.
- Запустить минус от света через один из транзисторов.
- Эмметр транзистора идет на массу.
- Коллектор транзистора идет на Raspberry Pi.
-
Собрать звук
- Запустите правый или левый звук от PI к усилителю
- Запускаем + 5В на усилок
- Подключите заземление усилителя ко 2-му транзистору.
- Заземлите эмметр 2-го транзистора на массу.
- Запускаем коллектор транзистора к Raspberry Pi
- Собираем проводку к ИП.
-
Это инструкции по распиновке для PI (некоторые из них настраиваются через JSON)
-
ЖК-дисплей
- 3 - ПДД
- 5 - SCL
- 5 - VCC (+5)
- AMP 8 (GPIO 14)
- Light 10 (GPIO15)
- Правильный звук - GPIO 18
-
Шаг 3: Шаг 3: Настройка программного обеспечения операционной системы
-
Подготовьте Raspberry Pi W
- На rasberry pi должна быть установлена последняя версия Raspbian (или другой Debian).
- Рекомендуется следовать этим инструкциям:
- Обязательно включите файл wifi wpa_supplicant.
- Поместите файл ssh на SD-карту, чтобы разрешить доступ по ssh.
-
Подготовьте стороннее программное обеспечение:
- Я автоматизировал этот процесс, чтобы получить все необходимые сторонние инструменты, но не стесняйтесь запускать их вручную и проверять, чтобы убедиться, что ни один шаг не завершился ошибкой.
- Загрузите и запустите следующий скрипт:
Вот подробное описание того, что делает сценарий установки для настройки операционной системы. Лучше всего запускать эти строки вручную, чтобы вы могли следить за ошибками.
Заголовок скрипта:
#! / bin / sh -e # можно вызвать через #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: автоматизируйте этот скрипт с помощью чего-то вроде: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: setup wifi # TODO: setup passwd and authorized keys # notes:
Обновление ПО на уровне ОС:
# apt-get stuff (apt-get update && apt-get -y upgrade)> / dev / null apt-get dist-upgrade -y #General Dev apt-get install -y git build-essential python-dev python-pip python-smbus libasound2-dev nodejs # GPIO apt-get install -y raspi-gpio python-imaging python-smbus libasound2-dev #networking apt-get install -y bridge-utils hostapd dnsmasq apt-get clean -y
Настройка сети. Частично цель здесь заключалась в том, чтобы позволить системе быть настроенной через точку доступа для подключения к вашему собственному Wi-Fi, но это еще не было полностью протестировано. В настоящее время рекомендуется использовать метод wpa_supplicant для настройки Wi-Fi.
#networking setupecho nhllight> / etc / hostname #TODO: исправить / etc / hosts #TODO: setup br0 mkdir / etc / hostapd / # примечание: другие настройки выполняются через файлы конфигурации и оболочку как часть обновления
Обновление узлов и библиотек узлов
#update nodecd / tmp export nodeversion = 8.9.0 #wget https://nodejs.org/dist/v7.4.0/node-v7.4.0-linux-… #wget https://nodejs.org/dist/v7. 4.0 / node-v7.4.0-linux-… wget https://nodejs.org/dist/v7.4.0/node-v7.4.0-linux-… tar -xvf node-v $ {nodeversion} -linux-armv6l. tar.xz cd node-v $ {nodeversion} -linux-armv6l rm -f *.md rm -f ЛИЦЕНЗИЯ cp -R * / usr / local / rm -R / tmp / node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: сделать символьную ссылку для двоичного файла узла? apt-get remove -y --purge npm node nodejs
# Настройка узлаmkdir / opt / nhl mkdir / opt / nhl / logs mkdir / opt / nhl / horns mkdir / opt / nhl / node_modules /
#update Node
# установить зависимости узлов в каталог nhl export NODE_PATH = / usr / local / lib / node_modules
#HACK - TODO - исправьте этот хромой, который не устанавливается глобально
cd / opt / nhl npm install lame # lame, is lame, не будет устанавливать глобально cp -R / opt / nhl / node_modules / lame $ NODE_PATH npm install динамик # не устанавливать глобально cp -R / opt / nhl / node_modules / динамик $ NODE_PATH npm install i2c-bus # не устанавливать глобально cp -R / opt / nhl / node_modules / i2c-bus $ NODE_PATH npm install oled-i2c-bus # не устанавливать глобально cp -R / opt / nhl / node_modules / oled-i2c-bus $ NODE_PATH npm install lcd # не устанавливать глобально cp -R / opt / nhl / node_modules / lcd $ NODE_PATH npm install lcdi2c #wont install global cp -R / opt / nhl / node_modules / lcdi2c $ NODE_PATH
npm install oled-font-5x7 # не устанавливать глобально
cp -R / opt / nhl / node_modules / oled-font-5x7 $ NODE_PATH
npm install onoff # не устанавливать глобально
cp -R / opt / nhl / node_modules / onoff $ NODE_PATH
#npm install pm2 # не устанавливать глобально
#cp -R / opt / nhl / node_modules / pm2 $ NODE_PATH #npm install express #wont install global #cp -R / opt / nhl / node_modules / express $ NODE_PATH
# любые глобальные модули
npm установить экспресс-анализатор тела child_process pm2 -g
Получите последний код:
#pull git codecd / opt / nhl #JSON - одноразовое создание wget --no-cache -O /opt/nhl/nhl_config.json https://raw.githubusercontent.com/wga22/nodejs/ma… #wget -O /opt/nhl/NHL_work.js https://raw.githubusercontent.com/wga22/nodejs/ma… #call автоматический скрипт для установки всего остального для NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs / ма… | sudo -E bash -
Скачай рога!
#pull hornscd / opt / nhl / horns curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -
обновите файлы конфигурации Raspberry pi - - может потребоваться изменить для вашей системы
# обновления файла конфигурации # добавить звук cp /boot/config.txt /boot/config.txt.bak printf '\ ndtoverlay = pwm-2chan, pin = 18, func = 2, pin2 = 13, func2 = 4' >> / boot / config.txt # включить i2c printf '\ n / ndtparam = i2c1 = on / n' >> /boot/config.txt printf '\ n / ndtparam = i2c_arm = on / n' >> / boot / config. текст
#TODO: это необходимо? Cp / etc / modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> / etc / modules
amixer cset numid = 1
#TODO: установить громкость, 60%?
Автоматизируйте автоматизацию, например загрузку и обновление кода:
# update rc.local # ПРИМЕЧАНИЕ: перемещение файла, потому что стандартный включает "выход" в последней строке, поэтому нельзя просто добавить mv /etc/rc.local /etc/rc.local.bak touch /etc/rc.local chmod u + x /etc/rc.local printf '#! / bin / sh'> /etc/rc.local printf '\ n /etc/bootup_nhl.sh> /tmp/rclocal.log' >> / etc / rc.local printf '\ n exit 0' >> /etc/rc.local
#TODO: нужно добавить что-то, чтобы делать регулярные обновления программного обеспечения еженедельно, как это # Может быть, просто скопировать этот файл прямо в папку rc.weekly? rm /etc/cron.weekly/nhl_updater printf '#! / bin / sh / ncurl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - '> /etc/cron.weekly/nhl_updater chmod u + x /etc/cron.weekly/nhl_updater
Разное, например, установка часового пояса:
ln -sf / usr / share / zoneinfo / America / New_York / etc / localtime
# обновить переменную среды с помощью node_path
cp / etc / environment /etc/environment.bak printf '\ nexport NODE_PATH = / usr / local / lib / node_modules / n' >> / etc / environment #TODO: определите это для узла self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;
Используйте PM2 для настройки сервера узла:
#TODO: тестовая установка PM2cd / tmp / npm install -g pm2 pm2 startup cd / opt / nhl pm2 start NHL_work.js --node-args = "- max_old_space_size = 100 expose-gc" pm2 start webserver.js --node -args = "- max_old_space_size 100M" pm2 сохранить pm2 при запуске, выход 0
Шаг 4. Шаг 4. Обновите конфигурацию JSON
Настройте свой файл конфигурации JSON для команды, которую вы предпочитаете, и т. Д. Этот файл находится в / opt / nhl GO CAPITALS! config файл JSON
Программное обеспечение использует файл JSON для настройки оборудования и команды, за которой вы следите. Команда может быть настроена через веб-сервер, который будет работать, но настройку оборудования необходимо выполнить вручную:
Вот объяснение каждого возможного значения:
- myteam: это трехбуквенный код команды, за которой вы хотите следовать
- debug: возможные значения: 1 (истина) или 0 (ложь), и будут контролировать, сколько записей будет записано.
-
вывод: это метод, с помощью которого должны отображаться оценки / детали. Возможные значения:
- жк: это жк 2004 г.
- консоль: это будет писать только в терминал (для запуска командной строки)
- oled: поддержка oled-дисплея SSD6404
-
свет: поддерживаются два типа огней
- тревога: это будет управлять одним GPIO для включения / выключения транзистора
- multi-led: поддерживает многоцветный или несколько светодиодов
- нет: свет не подключен
- amp: это GPIO, который управляет транзистором для усилителя
Рекомендуемые:
Светодиодный светильник DIY для веб-камеры (C920): 10 шагов (с изображениями)
LED LIGHT DIY for Webcam (C920): Освещение необходимо для веб-камеры. Это маленькое светодиодное кольцо помогает вашей лицевой камере хорошо воспринимать вас. Вы можете снимать видео без какого-либо света, кроме этого светодиода. Я использовал 3D-принтер и светодиодный модуль WS2812b (совместимый с Neopixel)
Светодиодный светильник для умного стола - Умное освещение с Arduino - Рабочая область Neopixels: 10 шагов (с изображениями)
Светодиодный светильник для умного стола | Умное освещение с Arduino | Neopixels Workspace: в наши дни мы проводим много времени дома, учимся и работаем виртуально, так почему бы не сделать наше рабочее пространство больше с помощью настраиваемой интеллектуальной системы освещения на основе Arduino и светодиодов Ws2812b. Здесь я покажу вам, как построить ваш Smart Настольный светодиодный светильник, который
Светильник Vegvisír: 3 ступени
Светильник Vegvisír: Vegvisir (смотрите путь) - это компас викингов. Руна защиты, производная от Æ gishj á lmr - шлем благоговения - самого популярного защитного символа эпохи викингов. Вегвизир обладает силой защищать людей, путешествующих через вас
Мини светодиодный прикроватный ночник / лампа: 5 шагов
Мини-светодиодный ночник / лампа для прикроватной тумбочки: Во-первых, я должен сказать, что это было вдохновлено отдельно стоящей мини-светодиодной лампой от Sunbanks. Вместо того, чтобы использовать биро для удержания светодиода от стола, я использовал прозрачный плексиглас, чтобы проецировать свет от основания. Этот небольшой проект является прототипом
Настольный светильник со светодиодами: 4 ступени
Настольный светильник со светодиодами: мы сделали их настольными светильниками или украшением ужина. Используя идею LED Throwies, мы поместили светодиоды с батареями в старые каменные кувшины, наполненные стеклянными бусинами. Свет выглядел великолепно. Они были супер дешевыми и относительно быстро производились