Mundarija:
- 1 -qadam: 1 -qadam: ehtiyot qismlaringizni yig'ing
- 2 -qadam: 2 -qadam: Bolalar va elektronika
- 3 -qadam: 3 -qadam: Operatsion tizim uchun dasturiy ta'minotni sozlash
- 4 -qadam: 4 -qadam: JSON konfiguratsiyasini yangilang
Video: NHL to'shakda xokkey nuri va LCD: 4 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Kirish
"NHL Light" - bu o'z jamoasini kuzatmoqchi bo'lgan, lekin har bir o'yinni ko'ra olmaydigan xokkey muxlislari uchun. Uning eng yaxshi xususiyati shundaki, u xokkey shoxi (sizning jamoangiz uchun odatiy) va yengil gol urishni taqlid qiladi.
Xokkey shoxi va nuridan tashqari, "NHL Light" displeyi mavjud yoki oxirgi o'yinning hisobini, keyingi o'yinning o'yin vaqti yoki vaqtini, joriy sana va vaqtni ko'rsatadigan displeyga ega.
"NHL Light" oddiy qismlar ro'yxatida ishlaydi, bu elektronikani yig'ish oson va kod bepul mavjud.
Xususiyatlari
- Sizning jamoangizni va wifi -ni tanlash uchun veb -sahifalarga asoslangan konfiguratsiya
- Jamoangiz gol urganida engil va shoxli o'ynaydi (siz mehmon jamoa bo'lganingizda ham)
- O'yin boshlanishini e'lon qilish uchun ovoz eshitiladi
- O'yin yakunini e'lon qilish uchun ovoz chiqaradi
- Agar o'yin davom etmasa, keyingi o'yin vaqti va sanasini ko'rsatadi.
- Agar o'yin davom etayotgan bo'lsa, joriy o'yin vaqti va vaqtini ko'rsatadi.
- Joriy sana va vaqtni ko'rsatadi.
1 -qadam: 1 -qadam: ehtiyot qismlaringizni yig'ing
Bu erda qismlar ro'yxati.
-
Raspberry Pi W*
- Amazon
- Men o'zimni Microcenter -dan olishni ma'qul ko'raman, lekin uni boshqa joylarda kamroq topish mumkin.
- $10
- SD -karta (minimal 4 Gb)*
- dinamik - Amazon - ~ $ 2 *
- amp - PAM8403* - Amazon - har biri ~ 1 dollar
- yorug'lik - Amazon - ~ 5 dollar
-
Koson - $ 1*
- Mayklniki
- Men Mayklning hunarmandchilik do'konida yog'ochdan yasalgan kichkina sumkani tavsiya qilaman, lekin sizga qoldiradi!
-
I2C 2004 LCD - 3-7 dollar
- Amazon
- Kod 3 turdagi LCD displeylarni qo'llab -quvvatlaydi, lekin I2C 2004 men uchun eng yaxshi qiymat va o'lchamga ega. (SSD1306 ham mumkin)
- 2 ta tranzistor - 2N2222A - Amazon
- Har xil simlar / lehim 12V
- quvvat manbai - Amazon
- 12V -> 5V kuchlanishli konvertor - Amazon
*Bu qismni tanlashda moslashuvchanlik bor.
ESLATMA: Siz ushbu loyihaning ko'p qismini malina Pi bilan boshlashingiz mumkin, shu bilan birga boshqa narsalar jo'natilishini kutasiz.
2 -qadam: 2 -qadam: Bolalar va elektronika
-
Nurni yig'ish
- Chiroqning simlari nurga 12 + dan oshadi.
- Yorug'likdan tranzistorlardan biri orqali salbiy harakat qiling.
- Transistorning emmetrasi erga tushadi.
- Tranzistorni yig'uvchi Raspberry Pi ga boradi.
-
Ovoz yig'ish
- O'ng yoki chap tovushni PIdan kuchaytirgichga o'tkazing
- Ampga +5V yoqing
- 2 -tranzistorga kuchaytirgichni ishga tushiring.
- 2 -tranzitorning emmetrini erga o'tkazing
- Raspberry Pi uchun tranzistor kollektorini ishga tushiring
- PIga simlarni yig'ing
-
Bu PI uchun aniq ko'rsatmalar (ularning ba'zilari JSON orqali sozlanishi mumkin)
-
LCD
- 3 - SDA
- 5 - SCL
- 5 - VCC (+5)
- AMP 8 (GPIO 14)
- Yorug'lik 10 (GPIO15)
- To'g'ri ovoz - GPIO 18
-
3 -qadam: 3 -qadam: Operatsion tizim uchun dasturiy ta'minotni sozlash
-
Raspberry Pi W ni tayyorlang
- Rasberry pi Raspbian (yoki boshqa Debian) ning so'nggi versiyasini ishlatishi kerak.
- Quyidagi ko'rsatmalarga amal qilish tavsiya etiladi:
- Wifi wpa_supplicant faylini qo'shganingizga ishonch hosil qiling.
- Ssh -ga kirishga ruxsat berish uchun ssh -faylini sdcard -ga qo'ying.
-
Uchinchi tomon dasturlarini tayyorlang:
- Men bu jarayonni uchinchi tomonning barcha kerakli vositalarini tortib olish uchun avtomatlashtirdim, lekin ularni qo'lda ishlating va hech qanday qadam bajarilmasligiga ishonch hosil qiling.
- Quyidagi skriptni yuklab oling va ishga tushiring:
Mana, operatsion tizimni o'rnatish uchun o'rnatish skriptining bajaradigan ishlari. Ushbu satrlarni qo'lda ishlatish eng yaxshisidir, shuning uchun siz xatolarni kuzatishingiz mumkin.
Skript sarlavhasi:
#!/bin/sh -e #ga #curl -sL orqali qo'ng'iroq qilish mumkin https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: bu skriptni quyidagicha avtomatlashtirish: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: wifi sozlash # TODO: passwd va ruxsat berilgan kalitlarni sozlash # eslatmalar:
OS darajasida dasturiy ta'minotni yangilang:
#apt-get narsalar (apt-get update && apt-get -y upgrade)> /dev /null apt-get dist-upgrade -y #General Dev apt-get install -y git build-muhim python-dev python-pip python-smbus libasound2-dev nodejs # GPIO apt-get install -y raspi-gpio python -aging python-smbus libasound2-dev #networking apt-get install -y bridge-utils hostapd dnsmasq apt-get clean -y
Tarmoqni sozlash. Maqsadning bir qismi tizimni kirish nuqtasi orqali konfiguratsiya qilish, o'z Wi -Fi tarmog'iga ulanish edi, lekin bu hali to'liq tekshirilmagan. Hozirgi vaqtda wifi -ni sozlash uchun wpa_supplicant usulidan foydalanish tavsiya etiladi.
#networking setupecho nhllight>/etc/hostname #TODO:/etc/hosts #TODO ni tuzatish: br0 mkdir/etc/hostapd/ #eslatma: boshqa sozlashlar konfiguratsiya fayllari orqali amalga oshiriladi va qobiq yangilanishning bir qismi sifatida o'chiriladi.
Tugun va tugun kutubxonalarini yangilang
#nodecd/tmp eksport 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 LICENSE cp -R */usr/local/rm -R/tmp/node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: ikkilik tugun uchun simli havola qilinsinmi? apt -get remove -y --purge npm node nodejs
#Tugunni o'rnatishmkdir/opt/nhl mkdir/opt/nhl/logs mkdir/opt/nhl/shoxlar mkdir/opt/nhl/node_modules/
#tugunni yangilang
#tugun bog'liqliklarini nhl katalogiga eksport qilish NODE_PATH =/usr/local/lib/node_modules
#HACK - TODO - bu cho'loq butun dunyo bo'ylab o'rnatilmaydi
cd/opt/nhl npm lame # lame o'rnatish, cho'loq, butun dunyo bo'ylab o'rnatilmaydi c -R/opt/nhl/node_modules/lame $ NODE_PATH npm karnayni o'rnatish # butun dunyo bo'ylab o'rnatilmasin c -R/opt/nhl/node_modules/karnay $ NODE_PATH npm i2c-bus-ni o'rnatish #butun dunyo bo'ylab o'rnatilmaydi c -R/opt/nhl/node_modules/i2c-bus $ NODE_PATH npm oled-i2c-busni o'rnatish #butun dunyo bo'ylab o'rnatilmaydi c--R/opt/nhl/node_modules/oled-i2c-avtobus $ NODE_PATH npm o'rnatish lcd #butun dunyo bo'ylab o'rnatilmaydi c -R/opt/nhl/node_modules/lcd
npm install oled-font-5x7 #butun dunyo bo'ylab o'rnatilmaydi
cp -R/opt/nhl/node_modules/oled-font-5x7 $ NODE_PATH
npm install onoff #butun dunyo bo'ylab o'rnatilmaydi
cp -R/opt/nhl/node_modules/off $ NODE_PATH
#npm install pm2 #butun dunyo bo'ylab o'rnatilmaydi
#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm express express #butun dunyo bo'ylab o'rnatilmaydi #cp -R/opt/nhl/node_modules/express $ NODE_PATH
# har qanday global modul
npm express body -parser child_process pm2 -g ni o'rnating
Oxirgi kodni oling:
#pull git codecd/opt/nhl #JSON -bu bir martalik 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 uchun hamma narsani o'rnatish uchun avtomatik qo'ng'iroq qiling https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -
Shoxlarni yuklab oling!
#torting hornscd/opt/nhl/shoxlar -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -
Raspberry pi konfiguratsiya fayllarini yangilang - tizimingiz uchun o'zgartirish kerak bo'lishi mumkin
#config fayl yangilanishlari boot/config.txt #turn i2c printf '\ n / ndtparam = i2c1 = on / n' >> /boot/config.txt printf '\ n / ndtparam = i2c_arm = on / n' >>/boot/config. txt
#TODO: bu kerakmi? Cp /etc /modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> /etc /modules
amixer cset numid = 1
#TODO: ovoz balandligi 60%?
Avtomatlashtirishni avtomatlashtirish, masalan, yuklash va kodni yangilash:
# yangilash rc.local# QAYD: faylni ko'chirish, chunki standart qator oxirgi satrda "chiqish" ni o'z ichiga oladi, shuning uchun mv /etc/rc.local /etc/rc.local.bak touch /etc/rc.local qo'shib bo'lmaydi. 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 chiqish 0' >> /etc/rc.local
#TODO: har hafta dasturiy ta'minotni muntazam yangilab turish uchun biror narsa qo'shish kerak# Balki bu faylni rc.weekly jildiga to'g'ridan -to'g'ri ko'chirib olish kerakmi? 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
Vaqt mintaqasini sozlash kabi boshqa narsalar:
ln -sf/usr/share/zoneinfo/America/New_York/etc/localtime
node_path bilan # muhitni o'zgartirish
cp/etc/environment /etc/environment.bak printf '\ nexport NODE_PATH =/usr/local/lib/node_modules / n' >>/etc/environment #TODO: buni self.ipaddress = process.env. NODEJS_IP tugunlari uchun belgilang.; #TODO: self.port = process.env. NODEJS_PORT || 80;
Tugun serverlarini sozlash uchun PM2 -dan foydalaning:
#TODO: PM2cd /tmp /npm testini o'rnatish -g pm2 pm2 ishga tushirish cd /opt /nhl pm2 start NHL_work.js --node-args = "-max_old_space_size = 100 expose-gc" pm2 start webserver.js-tugun -args = "-max_old_space_size 100M" pm2 saqlash pm2 ishga tushirish 0 dan chiqish
4 -qadam: 4 -qadam: JSON konfiguratsiyasini yangilang
JSON konfiguratsiya faylini o'zingiz yoqtirgan jamoa va boshqalar uchun o'rnating. Bu fayl /opt /nhl GO CAPITALS -da joylashgan! JSON faylini sozlash
Dastur siz kuzatayotgan uskuna va jamoani sozlash uchun JSON faylidan foydalanadi. Jamoani ishlaydigan veb -server orqali sozlash mumkin, lekin apparatni sozlash qo'lda o'rnatilishi kerak:
Mana, har bir mumkin bo'lgan qiymatning izohi:
- myteam: bu siz kuzatmoqchi bo'lgan jamoaning 3 harfli kodi
- disk raskadrovka: Mumkin bo'lgan qiymatlar 1 (to'g'ri) yoki 0 (noto'g'ri) bo'lib, qancha jurnal yozilganligini nazorat qiladi.
-
chiqish: bu ballar/tafsilotlar ko'rsatiladigan usul. Mumkin bo'lgan qiymatlar:
- LCD: bu 2004 yilgi LCD
- konsol: bu faqat terminalga yoziladi (buyruq satrini ishga tushirish uchun)
- oled: SSD6404 oled displeyini qo'llab -quvvatlash
-
yorug'lik: ikki turdagi chiroqlar qo'llab -quvvatlanadi
- signal: bu tranzistorni yoqish/o'chirish uchun bitta GPIOni boshqaradi
- ko'p nurli: ko'p rangli yoki bir nechta LEDni qo'llab-quvvatlaydi
- yo'q: yorug'lik ulanmagan
- amp: bu kuchaytirgich uchun tranzistorni boshqaradigan GPIO
Tavsiya:
DIY arzon xokkey stoli: 27 qadam (rasmlar bilan)
Havo xokkeyining arzon DIY stoli: professional xokkey moslamasi odatda uni ishlatish uchun zarur bo'lgan murakkab tizimlar tufayli faqat o'yin maydonlarida mavjud. Bizning maqsadimiz o'z qo'llarimiz bilan xokkey bo'yicha stol yaratish edi, bu o'yin tajribasini uyda olib keldi. Umumiy foydalanish orqali
Karton, RGB chiroqlar va datchikli DIY magnitli stolli xokkey: 11 qadam (rasmlar bilan)
Karton, RGB chiroqlar va datchikli DIY magnitli stolli xokkey: Siz havo xokkeyini o'ynagan bo'lsangiz kerak! O'yin zonasiga bir necha $$ dollar $$ to'lang va shunchaki do'stlaringizni mag'lub etish uchun gol urishni boshlang. Juda qo'shadi emasmi? Siz uyda bitta stol saqlash haqida o'ylagan bo'lsangiz kerak, lekin hey! Siz buni o'zingiz qilishni o'ylab ko'rganmisiz?
Bolalar uchun yoritilgan soat - yashil demakdir! Qizil, to'shakda qol !!!: 5 qadam (rasmlar bilan)
Bolalar uchun yoritilgan soat - yashil demakdir! Qizil, yotoqda qoling !!!: Biz uyqusiz aqldan ozgan edik !!! Bizning 2 yoshli bolakay qanday " 7-ni kutish " ertalabdan keyin xonasidan chiqishdan oldin. U erta uyg'ongan bo'lardi (men aytmoqchimanki, soat 5:27 - "7 bor !!!"
Stol nuri bezaklari va eshik nuri belgisi: 8 qadam (rasmlar bilan)
Stol nuri bezaklari va eshik nuri belgisi: Bu darslik sizga stol usti bezaklarini qanday dasturlash va yasashni ko'rsatib beradi. Bu chiroqlar bir soat ichida rangini o'zgartiradi. Shuningdek, siz yonib turgan eshik belgisini dasturlashni va qurishni o'rganasiz. Siz eshikdan foydalanishingiz mumkin
Intim video nuri/ portativ fotografiya nuri: 7 qadam (rasmlar bilan)
Samimiy video nuri/ portativ fotografiya nuri: Men nima o'ylayotganingizni bilaman. By " samimiy " Men qiyin yorug'lik sharoitida yaqin yoritishni nazarda tutgan edim-bu " yaqin vaziyatlar " uchun emas. (Ammo, buning uchun ham foydalanish mumkin …) Nyu-Yorkdagi videograf sifatida-yoki