Isi kandungan:

NHL Lampu Samping Tempat Tidur dan LCD: 4 Langkah (dengan Gambar)
NHL Lampu Samping Tempat Tidur dan LCD: 4 Langkah (dengan Gambar)

Video: NHL Lampu Samping Tempat Tidur dan LCD: 4 Langkah (dengan Gambar)

Video: NHL Lampu Samping Tempat Tidur dan LCD: 4 Langkah (dengan Gambar)
Video: Viral! Anak dan ibu diusir dari KRL?? 2024, November
Anonim
Image
Image
NHL Lampu Samping Tempat Tidur dan LCD
NHL Lampu Samping Tempat Tidur dan LCD

Pengenalan

"NHL Light" adalah untuk peminat hoki yang ingin mengikuti pasukan mereka, tetapi tidak dapat menonton setiap perlawanan. Ciri terbaiknya ialah ia mensimulasikan skor gol dengan tanduk hoki (khusus untuk pasukan anda), dan ringan.

Selain tanduk dan cahaya hoki, "NHL Light", mempunyai paparan yang memberikan skor permainan terkini, atau terkini, waktu atau waktu permainan berikutnya, dan tarikh dan waktu terkini.

"NHL Light" menggunakan senarai bahagian yang mudah, yang mudah dipasang elektronik, dan kod yang tersedia secara bebas.

ciri-ciri

  1. Konfigurasi berdasarkan laman web untuk memilih pasukan dan wifi anda
  2. Memainkan cahaya dan tanduk ketika pasukan anda menjaringkan gol (walaupun anda adalah pasukan tandang)
  3. Memainkan suara untuk mengumumkan permulaan permainan
  4. Memainkan suara untuk mengumumkan kesimpulan permainan
  5. Menyediakan masa dan tarikh permainan seterusnya, jika tidak ada permainan yang sedang berlangsung.
  6. Memaparkan masa dan tempoh permainan semasa, jika permainan sedang berlangsung.
  7. Memaparkan tarikh dan masa semasa.

Langkah 1: Langkah 1: Pasang Bahagian Anda

Langkah 1: Pasang Bahagian Anda
Langkah 1: Pasang Bahagian Anda

Berikut adalah senarai bahagian.

  1. Raspberry Pi W *

    1. Amazon
    2. Saya lebih suka mendapatkan tambang dari Microcenter, tetapi kurang dapat dijumpai dalam talian di tempat lain.
    3. $10
  2. Kad SD (minimum 4gb) *
  3. pembesar suara - Amazon - ~ $ 2 *
  4. amp - PAM8403 * - Amazon - ~ $ 1 setiap satu
  5. cahaya - Amazon - ~ $ 5
  6. Kes - $ 1 *

    1. Michael
    2. Saya mengesyorkan kotak kerajinan kayu kecil dari kedai kraf Michael, tetapi akan diserahkan kepada anda!
  7. LCD I2C 2004 - $ 3-7

    1. Amazon
    2. Kod ini menyokong 3 jenis LCD, tetapi I2C 2004 adalah yang paling sesuai untuk saya nilai dan ukuran terbaik. (SSD1306 juga mungkin)
  8. 2 transistor - 2N2222A- Amazon
  9. Lain-lain Wayar / solder12V
  10. bekalan kuasa - Amazon
  11. Penukar 12V -> 5V buck - Amazon

* Terdapat fleksibiliti ketika memilih bahagian ini.

CATATAN: Anda boleh memulakan sebahagian besar projek ini hanya dengan Raspberry Pi anda, sementara anda menunggu barang lain dihantar.

Langkah 2: Langkah 2: Pendawaian dan Elektronik

Langkah 2: Pendawaian dan Elektronik
Langkah 2: Pendawaian dan Elektronik
Langkah 2: Pendawaian dan Elektronik
Langkah 2: Pendawaian dan Elektronik
  1. Pasang Cahaya
    1. Pendawaian untuk cahaya adalah berjalan 12 + ke cahaya.
    2. Jalankan negatif dari cahaya melalui salah satu transistor.
    3. Emmetter transistor menuju ke tanah.
    4. Pemungut transistor menuju ke Raspberry Pi.
  2. Berkumpul suara
    1. Jalankan bunyi kanan atau kiri dari PI ke amp
    2. Jalankan + 5V ke amp
    3. Jalankan tanah amp ke transistor ke-2.
    4. Jalankan emmetter transisitor ke-2 ke tanah
    5. Jalankan pemungut transistor ke Raspberry Pi
  3. Pasang pendawaian ke PI
  4. Ini adalah petunjuk pinout untuk PI (beberapa di antaranya dapat dikonfigurasi melalui JSON)

    1. LCD

      1. 3 - SDA
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Lampu 10 (GPIO15)
    4. Bunyi Benar - GPIO 18

Langkah 3: Langkah 3: Persediaan Perisian Sistem Operasi

  1. Sediakan Raspberry Pi W

    1. Rasberry pi mesti menjalankan versi Raspbian terbaru (atau Debian lain).
    2. Disyorkan untuk mengikuti arahan ini:
    3. Pastikan anda memasukkan fail wpa_supplicant wifi.
    4. Letakkan fail ssh pada kad sd untuk membenarkan akses ssh.
  2. Sediakan perisian pihak ketiga:

    1. Saya telah mengautomatikkan proses ini untuk menarik semua alat pihak ketiga yang diperlukan, tetapi jangan gunakannya secara manual, dan tinjau untuk memastikan tidak ada langkah yang gagal.
    2. Muat turun dan jalankan skrip berikut:

Berikut adalah penjelasan mengenai skrip pemasangan untuk mengatur sistem operasi. Sebaiknya jalankan baris ini secara manual, sehingga anda dapat melihat kesalahan.

Tajuk Skrip:

#! / bin / sh -e # boleh dipanggil melalui #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: automatik skrip ini dengan sesuatu seperti: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: setup wifi # TODO: setup passwd dan kunci yang dibenarkan # nota:

Kemas kini perisian di peringkat OS:

# 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

Persediaan rangkaian. Sebahagian daripada tujuan di sini adalah untuk membolehkan sistem dikonfigurasi melalui titik akses, untuk menyambung ke wifi anda sendiri, tetapi ini belum diuji sepenuhnya. Pada masa ini disyorkan untuk menggunakan kaedah wpa_supplicant untuk menyiapkan wifi.

#networking setupecho nhllight> / etc / hostname #TODO: perbaiki

Kemas kini pustaka Node dan nod

#update 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: buat pautan sym untuk binari nod? apt-get remove -y --purge npm node nodejs

#Node setupmkdir / opt / nhl mkdir / opt / nhl / log mkdir / opt / nhl / tanduk mkdir / opt / nhl / node_modules /

#kemas kini Node

#install dependensi node ke dalam direktori nhl eksport NODE_PATH = / usr / local / lib / node_modules

#HACK - TODO - perbaiki yang lumpuh tidak akan dipasang di peringkat global

cd / opt / nhl npm pasang lame # lame, lumpuh, tidak akan memasang secara global cp -R / opt / nhl / node_modules / lame $ NODE_PATH npm pasang pembesar suara #tidak memasang global cp -R / opt / nhl / node_modules / pembesar suara $ NODE_PATH npm pasang i2c-bus #tidak memasang global cp -R / opt / nhl / node_modules / i2c-bus $ NODE_PATH npm pasang lcd #tidak pasang secara global cp -R / opt / nhl / node_modules / lcd $ NODE_PATH npm pasang lcdi2c #tidak memasang global cp -R / opt / nhl / node_modules / lcdi2c $ NODE_PATH

npm pasang oled-font-5x7 #tidak dipasang di peringkat global

cp -R / opt / nhl / node_modules / oled-font-5x7 $ NODE_PATH

npm pasang onoff #tidak dipasang secara global

cp -R / opt / nhl / node_modules / onoff $ NODE_PATH

#npm pasang pm2 #tidak memasang secara global

#cp -R / opt / nhl / node_modules / pm2 $ NODE_PATH #npm pasang ekspres # tidak akan dipasang secara global #cp -R / opt / nhl / node_modules / express $ NODE_PATH

# mana-mana modul global

npm pasang express_ body proses parser child_process pm2 -g

Tarik kod terkini:

#pull git codecd / opt / nhl #JSON adalah pembuatan satu kali 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 script automatik untuk memasang semua yang lain untuk NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs / ma… | sudo -E bash -

Muat turun tanduk!

#tarik hornscd / opt / nhl / horns curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -

kemas kini fail konfigurasi Raspberry pi - - mungkin perlu diubah untuk sistem anda

#kemas kini failconfig # tambahkan suara cp /boot/config.txt /boot/config.txt.bak printf '\ ndtoverlay = pwm-2chan, pin = 18, func = 2, pin2 = 13, func2 = 4' >> / boot / config.txt #hidupkan i2c printf '\ n / ndtparam = i2c1 = on / n' >> /boot/config.txt printf '\ n / ndtparam = i2c_arm = on / n' >> / boot / config. txt

#TODO: adakah ini diperlukan? Cp / etc / modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> / etc / modules

amixer cset numid = 1

#TODO: tetapkan kelantangan, 60%?

Automatikkan automasi, seperti boot dan kemas kini kod:

# update rc.local # CATATAN: memindahkan fail, kerana yang standard merangkumi "exit" di baris terakhir, jadi tidak boleh hanya menambahkan 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 keluar 0' >> /etc/rc.local

#TODO: perlu menambahkan sesuatu untuk melakukan kemas kini perisian biasa setiap minggu seperti ini # Mungkin hanya salin fail ini terus ke folder 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

Perkara lain, seperti menetapkan zon waktu:

ln -sf / usr / share / zoneinfo / America / New_York / etc / waktu tempatan

# kemas kini pemboleh ubah persekitaran dengan node_path

cp / etc / environment /etc/environment.bak printf '\ nexport NODE_PATH = / usr / local / lib / node_modules / n' >> / etc / environment #TODO: tentukan ini untuk node self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Gunakan PM2 untuk penyediaan pelayan nod:

#TODO: persediaan persediaan 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 save pm2 startup exit 0

Langkah 4: Langkah 4: Kemas kini Konfigurasi JSON

Sediakan fail konfigurasi JSON anda untuk pasukan yang anda sukai, dll. Fail ini terletak di / opt / nhl GO MODAL! konfigurasi fail JSON

Perisian ini menggunakan fail JSON untuk mengkonfigurasi perkakasan dan pasukan yang anda ikuti. Pasukan dapat disetel melalui pelayan web yang akan berjalan, tetapi penyediaan perkakasan harus diset secara manual:

Berikut adalah penjelasan mengenai setiap nilai yang mungkin:

  • myteam: ini adalah kod 3 huruf pasukan yang ingin anda ikuti
  • debug: Nilai yang mungkin adalah 1 (benar) atau 0 (salah), dan akan mengawal berapa banyak pembalakan ditulis.
  • output: ini adalah kaedah yang menunjukkan skor / perinciannya. Nilai yang mungkin adalah:

    • lcd: ini adalah lcd 2004
    • konsol: ini hanya akan ditulis ke terminal (untuk menjalankan arahan)
    • oled: sokongan untuk paparan SSD6404
  • cahaya: terdapat dua jenis lampu yang disokong

    • penggera: ini akan mendorong GPIO tunggal untuk menghidupkan / mematikan transistor
    • multi-led: menyokong pelbagai warna, atau berbilang led
    • tiada: tidak ada cahaya yang terpasang
  • amp: ini adalah GPIO yang mendorong transistor untuk amp

Disyorkan: