Съдържание:
- Стъпка 1: Стъпка 1: Сглобете вашите части
- Стъпка 2: Стъпка 2: Окабеляване и електроника
- Стъпка 3: Стъпка 3: Настройка на софтуера на операционната система
- Стъпка 4: Стъпка 4: Актуализирайте JSON конфигурацията
Видео: Нощна хокейна светлина на NHL и LCD: 4 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Въведение
"NHL Light" е за фенове на хокея, които искат да следят своя отбор, но не могат да гледат всеки мач. Най -добрата му характеристика е, че симулира гол с хокеен рог (персонализиран за вашия отбор) и лек.
В допълнение към хоккейния клаксон и светлината, "NHL Light" има дисплей, който предоставя текущ или най -новия резултат на играта, време или час на следващия мач, както и текуща дата и час.
"NHL Light" работи с прост списък с части, които са лесни за сглобяване на електроника, и код, който е свободно достъпен.
Характеристика
- Конфигурация, базирана на уеб страница за избор на вашия екип и wifi
- Пуска светлина и клаксон, когато отборът ви отбележи (дори когато сте отбор за гости)
- Възпроизвежда звук, за да обяви началото на играта
- Възпроизвежда звук за обявяване на края на играта
- Предоставя час и дата на следващата игра, ако не е в ход.
- Показва текущия час и период на игра, ако играта е в ход.
- Показва текущата дата и час.
Стъпка 1: Стъпка 1: Сглобете вашите части
Ето списък с части.
-
Raspberry Pi W*
- Amazon
- Предпочитам да получа моя от Microcenter, но може да се намери онлайн за по -малко на други места.
- $10
- SD карта (минимум 4 gb)*
- високоговорител - Amazon - ~ $ 2 *
- усилвател - PAM8403* - Amazon - ~ $ 1 всеки
- светлина - Amazon - ~ $ 5
-
Калъф - $ 1*
- На Майкъл
- Препоръчвам малка дървена кутия за занаяти от занаятчийския магазин на Майкъл, но ще оставя на вас!
-
I2C 2004 LCD - $ 3-7
- Amazon
- Кодът поддържа 3 типа LCD, но I2C 2004 е този, на който се спрях като най -добра стойност и размер. (SSD1306 също е възможен)
- 2 транзистора - 2N2222A- Amazon
- Разни проводници / спойка 12V
- захранване - Amazon
- 12V -> 5V долар конвертор - Amazon
*Има гъвкавост при избора на тази част.
ЗАБЕЛЕЖКА: Можете да започнете по -голямата част от този проект само с вашия малинов Pi, докато чакате други артикули да бъдат доставени.
Стъпка 2: Стъпка 2: Окабеляване и електроника
-
Съберете светлина
- Окабеляването на светлината е да преминава 12 + към светлината.
- Прекарайте отрицателно от светлината през един от транзисторите.
- Еметърът на транзистора отива към земята.
- Колекторът на транзистора отива към Raspberry Pi.
-
Съберете звук
- Пуснете десен или ляв звук от PI към усилвателя
- Пуснете +5V към усилвателя
- Изпълнете усилвателя на земята към 2 -рия транзистор.
- Пуснете еметъра на 2 -рия транзистор към земята
- Пуснете колектора на транзистора към Raspberry Pi
- Сглобете окабеляването към PI
-
Това са инструкциите за извеждане на PI (някои от тях се конфигурират чрез JSON)
-
LCD
- 3 - SDA
- 5 - SCL
- 5 - VCC (+5)
- AMP 8 (GPIO 14)
- Светлина 10 (GPIO15)
- Звук вдясно - GPIO 18
-
Стъпка 3: Стъпка 3: Настройка на софтуера на операционната система
-
Пригответе Raspberry Pi W
- Rasberry pi трябва да работи с последна версия на Raspbian (или друг Debian).
- Препоръчва се да следвате тези инструкции:
- Не забравяйте да включите wifi wpa_supplicant файл.
- Поставете ssh файл на sdcard, за да разрешите 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: настройка на wifi # TODO: настройка на парола и оторизирани ключове # бележки:
Актуализирайте софтуера на ниво операционна система:
#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
Настройка на мрежа. Част от целта тук беше да се позволи на системата да бъде конфигурирана чрез точка за достъп, да се свърже с вашия собствен wifi, но това все още не е напълно тествано. Понастоящем се препоръчва използването на метода wpa_supplicant за настройка на wifi.
#networking setupecho nhllight>/etc/hostname #TODO: поправете/etc/hosts #TODO: настройка 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: прави ли sym връзка за двоичен възел? apt -get remove -y --purge npm възел nodejs
#Настройка на възелmkdir/opt/nhl mkdir/opt/nhl/logs mkdir/opt/nhl/рога mkdir/opt/nhl/node_modules/
#update Node
#инсталирайте зависимости от възел в директорията nhl експортирайте NODE_PATH =/usr/local/lib/node_modules
#HACK - TODO - поправете това куцо няма да се инсталира в световен мащаб
cd/opt/nhl npm инсталиране lame # lame, е куца, няма да се инсталира глобално cp -R/opt/nhl/node_modules/lame $ NODE_PATH npm инсталиране на високоговорител # не се инсталира глобално cp -R/opt/nhl/node_modules/speaker $ NODE_PATH npm инсталирайте i2c-bus #не искате да инсталирате глобално cp -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm инсталирате oled-i2c-bus #няма да инсталирате глобално cp -R/opt/nhl/node_modules/oled-i2c-bus $ NODE_PATH npm инсталиране на lcd #не се инсталира глобално cp -R/opt/nhl/node_modules/lcd $ NODE_PATH npm инсталиране на lcdi2c #няма да се инсталира глобално 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 инсталирайте onoff #не се инсталира глобално
cp -R/opt/nhl/node_modules/onoff $ NODE_PATH
#npm инсталиране pm2 #не се инсталира глобално
#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm инсталирайте експресни #няма да инсталирате глобално #cp -R/opt/nhl/node_modules/express $ NODE_PATH
# всякакви глобални модули
npm install express body -parser 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 изход 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 инсталиране -g pm2 pm2 стартиране cd /opt /nhl pm2 старт NHL_work.js --node-args = "-max_old_space_size = 100 expose-gc" pm2 старт webserver.js --node -args = "-max_old_space_size 100M" pm2 запазване на pm2 стартиране изход 0
Стъпка 4: Стъпка 4: Актуализирайте JSON конфигурацията
Настройте вашия JSON конфигурационен файл за предпочитания от вас екип и т.н. Този файл се намира в /opt /nhl GO CAPITALS! config JSON файл
Софтуерът използва JSON файл за конфигуриране на хардуера и екипа, които следвате. Екипът може да бъде настроен чрез уеб сървъра, който ще работи, но хардуерната настройка трябва да бъде зададена ръчно:
Ето обяснение на всяка възможна стойност:
- myteam: това е 3 -буквеният код на екипа, който искате да следвате
- отстраняване на грешки: Възможните стойности са 1 (вярно) или 0 (невярно) и ще контролират колко записване е записано.
-
изход: това е методът, по който се показват резултатите/детайлите. Възможните стойности са:
- lcd: това е lcd от 2004 г.
- конзола: това ще пише само в терминала (за изпълнение на командния ред)
- oled: поддръжка за SSD6404 oled дисплей
-
светлина: поддържат се два вида светлини
- аларма: това ще задейства един GPIO за включване/изключване на транзистор
- multi-led: поддържа многоцветен или множество светодиоди
- няма: няма включена светлина
- усилвател: това е GPIO, който задвижва транзистора за усилвателя
Препоръчано:
Ръчна нощна светлина: 7 стъпки (със снимки)
Ръчна нощна светлина: Моето 5-годишно дете продължаваше да ни събужда през нощта и ние непрекъснато му изнасяхме лекции, оставяйки мама и татко да спят, докато не разбрах, че той всъщност не е в състояние сам да определи дали е време за сън или игра Плюс, той ще ни помоли да включим светлината
Автоматична нощна светлина за коридор на IoT с ESP8266: 4 стъпки (със снимки)
Автоматична нощна светлина за коридора на IoT с ESP8266: Започнах този проект, вдъхновен от стълбищна светлина от друга публикация. Разликата е, че мозъкът на веригата използва ESP8266, което означава, че ще дойде IoT устройство. Това, което имам предвид, е да има нощна светлина в коридора за
Направи си сам автоматично легло с чувствителност към движение LED нощна светлина: 6 стъпки (със снимки)
LED нощно осветление за легло с автоматично разпознаване на движение: Здравейте, момчета, добре дошли в още една инструкция, която винаги ще ви помогне в ежедневието и добавя удобство, за да направи живота ви лесен. Това понякога може да бъде спасител на живота в случай на хора в напреднала възраст, които трябва да се борят да станат в леглото
Анимирана светлина за настроение и нощна светлина: 6 стъпки (със снимки)
Animated Mood Light & Night Light: Имайки очарование, което граничи с манията по светлината, реших да създам селекция от малки модулни печатни платки, които могат да се използват за създаване на RGB светлинни дисплеи от всякакъв размер. След като направих модулната платка, се натъкнах на идеята да ги подредя в
Направи си сам евтина хокейна маса: 27 стъпки (със снимки)
Направи си сам евтина хокейна маса: Професионалната настройка за въздушен хокей обикновено е достъпна само в аркади поради сложните системи, които са необходими за работата с нея. Нашата цел беше да изградим маса за въздушен хокей „направи си сам“, която да донесе това игрово изживяване у дома. Използвайки общодостъпни