Съдържание:

Нощна хокейна светлина на NHL и LCD: 4 стъпки (със снимки)
Нощна хокейна светлина на NHL и LCD: 4 стъпки (със снимки)

Видео: Нощна хокейна светлина на NHL и LCD: 4 стъпки (със снимки)

Видео: Нощна хокейна светлина на NHL и LCD: 4 стъпки (със снимки)
Видео: В США пропал русский хоккеист | Таинственное исчезновение звезды НХЛ Валерия Ничушкина 2024, Ноември
Anonim
Image
Image
Нощна хокейна светлина и LCD дисплей на NHL
Нощна хокейна светлина и LCD дисплей на NHL

Въведение

"NHL Light" е за фенове на хокея, които искат да следят своя отбор, но не могат да гледат всеки мач. Най -добрата му характеристика е, че симулира гол с хокеен рог (персонализиран за вашия отбор) и лек.

В допълнение към хоккейния клаксон и светлината, "NHL Light" има дисплей, който предоставя текущ или най -новия резултат на играта, време или час на следващия мач, както и текуща дата и час.

"NHL Light" работи с прост списък с части, които са лесни за сглобяване на електроника, и код, който е свободно достъпен.

Характеристика

  1. Конфигурация, базирана на уеб страница за избор на вашия екип и wifi
  2. Пуска светлина и клаксон, когато отборът ви отбележи (дори когато сте отбор за гости)
  3. Възпроизвежда звук, за да обяви началото на играта
  4. Възпроизвежда звук за обявяване на края на играта
  5. Предоставя час и дата на следващата игра, ако не е в ход.
  6. Показва текущия час и период на игра, ако играта е в ход.
  7. Показва текущата дата и час.

Стъпка 1: Стъпка 1: Сглобете вашите части

Стъпка 1: Съберете вашите части
Стъпка 1: Съберете вашите части

Ето списък с части.

  1. Raspberry Pi W*

    1. Amazon
    2. Предпочитам да получа моя от Microcenter, но може да се намери онлайн за по -малко на други места.
    3. $10
  2. SD карта (минимум 4 gb)*
  3. високоговорител - Amazon - ~ $ 2 *
  4. усилвател - PAM8403* - Amazon - ~ $ 1 всеки
  5. светлина - Amazon - ~ $ 5
  6. Калъф - $ 1*

    1. На Майкъл
    2. Препоръчвам малка дървена кутия за занаяти от занаятчийския магазин на Майкъл, но ще оставя на вас!
  7. I2C 2004 LCD - $ 3-7

    1. Amazon
    2. Кодът поддържа 3 типа LCD, но I2C 2004 е този, на който се спрях като най -добра стойност и размер. (SSD1306 също е възможен)
  8. 2 транзистора - 2N2222A- Amazon
  9. Разни проводници / спойка 12V
  10. захранване - Amazon
  11. 12V -> 5V долар конвертор - Amazon

*Има гъвкавост при избора на тази част.

ЗАБЕЛЕЖКА: Можете да започнете по -голямата част от този проект само с вашия малинов Pi, докато чакате други артикули да бъдат доставени.

Стъпка 2: Стъпка 2: Окабеляване и електроника

Стъпка 2: Окабеляване и електроника
Стъпка 2: Окабеляване и електроника
Стъпка 2: Окабеляване и електроника
Стъпка 2: Окабеляване и електроника
  1. Съберете светлина

    1. Окабеляването на светлината е да преминава 12 + към светлината.
    2. Прекарайте отрицателно от светлината през един от транзисторите.
    3. Еметърът на транзистора отива към земята.
    4. Колекторът на транзистора отива към Raspberry Pi.
  2. Съберете звук

    1. Пуснете десен или ляв звук от PI към усилвателя
    2. Пуснете +5V към усилвателя
    3. Изпълнете усилвателя на земята към 2 -рия транзистор.
    4. Пуснете еметъра на 2 -рия транзистор към земята
    5. Пуснете колектора на транзистора към Raspberry Pi
  3. Сглобете окабеляването към PI
  4. Това са инструкциите за извеждане на PI (някои от тях се конфигурират чрез JSON)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Светлина 10 (GPIO15)
    4. Звук вдясно - GPIO 18

Стъпка 3: Стъпка 3: Настройка на софтуера на операционната система

  1. Пригответе Raspberry Pi W

    1. Rasberry pi трябва да работи с последна версия на Raspbian (или друг Debian).
    2. Препоръчва се да следвате тези инструкции:
    3. Не забравяйте да включите wifi wpa_supplicant файл.
    4. Поставете ssh файл на sdcard, за да разрешите ssh достъп.
  2. Подгответе софтуера на трета страна:

    1. Автоматизирах този процес, за да изтегля всички необходими инструменти на трети страни, но не се колебайте да ги изпълните ръчно и да прегледате, за да сте сигурни, че стъпките не се провалят.
    2. Изтеглете и стартирайте следния скрипт:

Ето разбивка на това, което прави инсталационният скрипт за настройка на операционната система. Най -добре е тези редове да се изпълняват ръчно, за да можете да следите за грешки.

Заглавна част на скрипта:

#!/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, който задвижва транзистора за усилвателя

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