Мазмұны:
- 1 -қадам: 1 -қадам: бөлшектерді жинаңыз
- 2 -қадам: 2 -қадам: Сымдар мен электроника
- 3 -қадам: 3 -қадам: Операциялық жүйенің бағдарламалық жасақтамасын орнату
- 4 -қадам: 4 -қадам: JSON конфигурациясын жаңартыңыз
Бейне: NHL төсек үстіндегі хоккей жарығы мен СКД: 4 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Кіріспе
«NHL Light» өз командасын ұстанғысы келетін, бірақ әр ойынды көре алмайтын хоккей жанкүйерлеріне арналған. Оның ең жақсы ерекшелігі - бұл гол соғуды хоккей мүйізімен (сіздің командаға арналған) және жарықпен имитациялау.
Хоккей мүйізі мен жарығынан басқа, «NHL жарығы» дисплейі бар, ол ағымдағы немесе соңғы ойынның ұпайын, келесі ойынның уақыты мен уақытын, ағымдағы күн мен уақытты көрсетеді.
«NHL Light» қарапайым бөлшектер тізімінде жұмыс істейді, бұл электрониканы жинауға оңай және еркін қол жетімді код.
Мүмкіндіктер
- Команда мен wifi таңдау үшін веб -бетке негізделген конфигурация
- Сіздің команда гол соққан кезде жеңіл және мүйіз ойнайды (сіз қонақта болсаңыз да)
- Ойынның басталуын хабарлау үшін дыбыс шығады
- Ойынның аяқталғанын хабарлау үшін дыбыс шығарады
- Келесі ойынның уақыты мен күнін көрсетеді, егер ойын жүргізілмесе.
- Егер ойын жүріп жатса, ағымдағы ойын уақыты мен кезеңін көрсетеді.
- Ағымдағы күн мен уақытты көрсетеді.
1 -қадам: 1 -қадам: бөлшектерді жинаңыз
Міне, бөліктер тізімі.
-
Таңқурай Pi W*
- Амазонка
- Мен өзімді Микроцентрден алғым келеді, бірақ оны басқа жерлерде онлайнда табуға болады.
- $10
- SD картасы (ең азы 4 Гб)*
- динамик - Amazon - ~ $ 2 *
- амп - PAM8403* - Amazon - әрқайсысы ~ 1 доллар
- жарық - Amazon - ~ 5 доллар
-
Корпус - $ 1*
- Майклдікі
- Мен Майкл қолөнер дүкенінен ағаштан жасалған қолөнер қорабын ұсынамын, бірақ сізге қалдырады!
-
I2C 2004 СКД - 3-7 доллар
- Амазонка
- Код СКД -нің 3 түрін қолдайды, бірақ I2C 2004 - бұл мен ең жақсы баға мен өлшем. (SSD1306 де мүмкін)
- 2 транзистор - 2N2222A- Амазонка
- Әр түрлі сымдар / дәнекерлеу 12В
- қуат көзі - Amazon
- 12В -> 5В кернеу түрлендіргіші - Amazon
*Бұл бөлікті таңдауда икемділік бар.
ЕСКЕРТПЕ: Сіз бұл жобаның көп бөлігін таңқурай Pi -мен бастай аласыз, ал сіз басқа заттарды жіберуді күтесіз.
2 -қадам: 2 -қадам: Сымдар мен электроника
-
Жарық жинау
- Жарық сымдары жарыққа 12 + қосылады.
- Транзисторлардың бірінен жарықтан теріс өтіңіз.
- Транзистордың эмметрі жерге түседі.
- Транзистордың коллекторы Raspberry Pi -ге барады.
-
Дыбысты жинау
- PI -ден күшейткішке оңға немесе солға дыбыс шығарыңыз
- +5В күшейткішке қосыңыз
- 2 -ші транзисторға амперді қосыңыз.
- 2 -ші транзистордың эмметрін жерге қосыңыз
- Raspberry Pi транзисторының коллекторын іске қосыңыз
- PI сымдарын жинаңыз
-
Бұл PI үшін анықтама нұсқаулары (олардың кейбіреулері JSON арқылы конфигурацияланады)
-
СКД
- 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 қатынасына рұқсат беру үшін ssh файлын sdcard қойыңыз.
-
Үшінші тарап бағдарламалық жасақтамасын дайындаңыз:
- Мен бұл процесті үшінші тараптың барлық қажетті құралдарын алу үшін автоматтандырдым, бірақ оларды қолмен іске қосып, қадамдардың сәтсіз екеніне көз жеткізіңіз.
- Келесі сценарийді жүктеңіз және іске қосыңыз:
Мұнда амалдық жүйені орнатуға арналған орнату сценарийі не істейтіні көрсетілген. Бұл жолдарды қолмен іске қосу жақсы, сондықтан сіз қателерді бақылай аласыз.
Сценарий тақырыбы:
#!/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: passwd мен рұқсат етілген кілттерді орнату # ескертулер:
Бағдарламалық жасақтаманы ОЖ деңгейінде жаңартыңыз:
#apt-get заттары (apt-get update && apt-get -y upgrade)> /dev /null apt-get dist-upgrade -y #General Dev apt-get install -y git-build python-dev python-pip python-smbus libasound2-dev nodejs # GPIO apt-get install -y raspi-gpio python-визуализация python-smbus libasound2-dev #networking apt-get install -y bridge-utils hostapd dnsmasq apt-get clean -y
Желіні орнату. Мұндағы мақсаттың бір бөлігі жүйені кіру нүктесі арқылы конфигурациялауға, жеке Wi -Fi желісіне қосылуға мүмкіндік беру болды, бірақ бұл әлі толық тексерілмеген. Қазіргі уақытта WiFi орнату үшін wpa_supplicant әдісін қолдану ұсынылады.
#торапты орнатуechecho nhllight>/etc/hostname #TODO:/etc/hosts түзету #TODO: br0 mkdir/etc/hostapd/ #ескертуін реттеу: басқа конфигурация файлдары мен қабық жаңартудың бір бөлігі ретінде шығарылады
Түйін мен түйін кітапханаларын жаңартыңыз
#жаңарту nodecd/tmp экспорттау түйінін өзгерту = 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 LICENSE 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 nodejs түйіндері
#Түйінді орнату
#түйінді жаңарту
#түйінге тәуелділікті 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/динамик $ NODE_PATH npm i2c-bus орнату #жаһандық түрде орнатылмайды cp -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm орнату oled-i2c-шина #жаһандық түрде орнатылмайды cp -R/opt/nhl/node_modules/oled-i2c-шина $ NODE_PATH npm install 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 install onoff #жаһандық деңгейде орнатылмайды
cp -R/opt/nhl/node_modules/off $ NODE_PATH
#npm install pm2 #жаһандық деңгейде орнатылмайды
#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm install express #жаһандық түрде орнатылмайды #cp -R/opt/nhl/node_modules/express $ NODE_PATH
# кез келген жаһандық модуль
npm express body -analyzer 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… #NHL curl -sL үшін қалғанның бәрін орнату үшін автоматтандырылған сценарийге қоңырау шалыңыз https://raw.githubusercontent.com/wga22/nodejs /мама | | sudo -E bash -
Мүйіздерді жүктеп алыңыз!
#тартыңыз hornscd/opt/nhl/horns curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -
Raspberry pi конфигурациялық файлдарын жаңартыңыз - сіздің жүйеңіз үшін өзгерту қажет болуы мүмкін
#config файлын жаңарту#дыбысты қосу cp /boot/config.txt /boot/config.txt.bak printf '\ ndtoverlay = pwm-2chan, pin = 18, func = 2, pin2 = 13, func2 = 4' >> / boot/config.txt #turn 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%?
Жүктеу мен кодты жаңарту сияқты автоматтандыруды автоматтандырыңыз:
# жаңарту 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 экспозиция-gc» pm2 іске қосу webserver.js-түйін -args = «-max_old_space_size 100M» pm2 сақтау pm2 іске қосудан 0 шығу
4 -қадам: 4 -қадам: JSON конфигурациясын жаңартыңыз
JSON конфигурация файлын өзіңіз қалаған топқа орнатыңыз және т.б. Бұл файл /opt /nhl GO CAPITALS ішінде орналасқан! JSON файлын конфигурациялаңыз
Бағдарламалық жасақтама сіз бақылайтын жабдық пен команданы конфигурациялау үшін JSON файлын пайдаланады. Топты жұмыс істейтін веб -сервер арқылы орнатуға болады, бірақ аппараттық құралдарды қолмен орнату қажет:
{«myteam»: «WSH», «debug»: «1», «output»: «lcd», «light»: {«type»: «multiled», «gpio»: [«10», «13»]}, «amp»: {«gpio»: «14»}, «lcdaddress»: «0x3F», «lightid»: «22»}
Мұнда әрбір мүмкін мәннің түсіндірмесі берілген:
- myteam: бұл сіз ұстанғыңыз келетін команданың 3 әріптік коды
- отладка: Мүмкін мәндер 1 (ақиқат) немесе 0 (жалған) болады және олар тіркеудің қанша жазылғанын бақылайды.
-
нәтиже: бұл ұпайларды/мәліметтерді көрсету әдісі. Мүмкін мәндер:
- lcd: бұл 2004 ж
- консоль: бұл тек терминалға жазылады (пәрмен жолын іске қосу үшін)
- oled: SSD6404 экранды дисплейге қолдау
-
жарық: қолдау көрсетілетін шамдардың екі түрі бар
- дабыл: бұл транзисторды қосу/өшіру үшін жалғыз GPIO жүргізеді
- көп жарықдиодты: көп түсті немесе бірнеше жарықдиодты қолдайды
- жоқ: жарық қосылмайды
- амп: бұл күшейткіш үшін транзисторды басқаратын GPIO
Ұсынылған:
СКД -мен 8051 мен IR сенсоры бар келушілердің есептегіші: 3 қадам
СКД -мен 8051 мен IR сенсорын пайдаланатын келушілердің есептегіші: Құрметті достар, мен келушілердің есептегішін 8051 және IR сенсорының көмегімен қалай жасау керектігін түсіндірдім және оны СКД -де көрсеттім. 8051 - бұл бүкіл әлемде коммерциялық қосымшалар мен хобби жасау үшін қолданылатын ең танымал микроконтроллердің бірі. Мен визаны жасадым
DIY хоккей хоккей кестесі: 27 қадам (суреттермен)
Әуе хоккейінің DIY арзан кестесі: Хоккейдің кәсіби қондырғысы әдетте оны жұмыс істеу үшін қажет күрделі жүйелердің арқасында аркадтарда ғана қол жетімді. Біздің мақсат - үйдегі ойын тәжірибесін әкелетін DIY хоккей үстелін құру. Жалпыға қол жетімді
WiFi мен IR қашықтан басқару пульті мен Android қосымшасын қолданатын NodeMCU мен IR қабылдағышымен 8 релелік басқару: 5 қадам (суреттермен)
WiFi мен IR қашықтан басқару пульті мен Android қосымшасын пайдаланатын NodeMCU мен IR қабылдағышымен 8 релелік басқару: wifi мен қашықтан және андроид қосымшасы арқылы nodemcu мен IR қабылдағышты қолданатын 8 релелік қосқышты басқару. Қашықтан басқару құралы wifi қосылымына тәуелсіз жұмыс істейді. МҰНДА
Жақын бейне жарығы/ қолмен түсірілетін фотосурет жарығы: 7 қадам (суреттермен)
Жақын бейне жарығы/ қолмен түсірілетін фотосурет жарығы: Мен сенің не ойлағаныңды білемін. &Quot; жақын, " арқылы Мен қиын жарық жағдайларында жақыннан жарықтандыруды айттым-бұл міндетті түрде " жақын жағдайлар " үшін емес. (Алайда, бұл үшін де қолдануға болады …) Нью-Йорктегі бейнекамер ретінде-немесе
Пернетақта / тышқан тірегі мен төсек: 5 қадам
Пернетақта / тінтуір тірегі мен сырғанау матасы: Мен жаңа сымсыз пернетақтаны алдым және айналасында жоғары көтерілген пернетақта мен тышқанға арналған мата түрін іздедім. Мен оның орнына осы уақытқа дейін өте жақсы жұмыс жасауды шештім! Бұл жеңіл және Жерге өте қолайлы, толығымен жасалған