Სარჩევი:

NHL Bedside Hockey Light და LCD: 4 ნაბიჯი (სურათებით)
NHL Bedside Hockey Light და LCD: 4 ნაბიჯი (სურათებით)

ვიდეო: NHL Bedside Hockey Light და LCD: 4 ნაბიჯი (სურათებით)

ვიდეო: NHL Bedside Hockey Light და LCD: 4 ნაბიჯი (სურათებით)
ვიდეო: Hockey light with raspberry pi 2024, ნოემბერი
Anonim
Image
Image
NHL Bedside Hockey Light და LCD
NHL Bedside Hockey Light და LCD

შესავალი

"NHL Light" არის ჰოკეის მოყვარულთათვის, რომელთაც სურთ თავიანთი გუნდის გაყოლა, მაგრამ არ შეუძლიათ ყველა თამაშის ყურება. მისი საუკეთესო თვისება ის არის, რომ იგი ახდენს გოლის ანგარიშის სიმულაციას ჰოკეის რქით (თქვენი გუნდის მიხედვით) და მსუბუქი.

ჰოკეის რქისა და სინათლის გარდა, "NHL Light" - ს აქვს ეკრანი, რომელიც უზრუნველყოფს მიმდინარე, ან უახლესი თამაშის ქულებს, თამაშის დროს ან მომდევნო თამაშის დროს და მიმდინარე თარიღსა და დროს.

"NHL Light" მუშაობს ნაწილების მარტივ ჩამონათვალზე, რომლის აწყობა ადვილია ელექტრონიკისა და თავისუფლად ხელმისაწვდომი კოდით.

მახასიათებლები

  1. ვებგვერდზე დაფუძნებული კონფიგურაცია თქვენი გუნდისა და wifi- ის შესარჩევად
  2. უკრავს სინათლესა და რქაზე, როდესაც თქვენი გუნდი იტანს გოლს (მაშინაც კი, როდესაც სტუმრად გუნდი ხართ)
  3. უკრავს ბგერას თამაშის დაწყების შესახებ
  4. უკრავს ხმას თამაშის დასასრულის გასაცხადებლად
  5. უზრუნველყოფს მომდევნო თამაშის დროს და თარიღს, თუ თამაში არ მიმდინარეობს.
  6. აჩვენებს მიმდინარე თამაშის დროს და პერიოდს, თუ თამაში მიმდინარეობს.
  7. აჩვენებს მიმდინარე თარიღს და დროს.

ნაბიჯი 1: ნაბიჯი 1: შეაგროვეთ თქვენი ნაწილები

ნაბიჯი 1: შეაგროვეთ თქვენი ნაწილები
ნაბიჯი 1: შეაგროვეთ თქვენი ნაწილები

აქ არის ნაწილების სია.

  1. ჟოლო Pi W*

    1. ამაზონი
    2. მირჩევნია, ჩემი მივიღო მიკროცენტრიდან, მაგრამ სხვაგან უფრო ნაკლებ ინტერნეტში შეიძლება ვიპოვო.
    3. $10
  2. SD ბარათი (მინიმუმ 4 გბ)*
  3. სპიკერი - ამაზონი - ~ 2 $ *
  4. amp - PAM8403* - Amazon - ~ 1 $ თითოეული
  5. მსუბუქი - ამაზონი - ~ 5 $
  6. საქმე - $ 1*

    1. მაიკლის
    2. მე გირჩევთ ხის პატარა ხელნაკეთი ქეისს მაიკლის ხელნაკეთი მაღაზიიდან, მაგრამ დაგტოვებთ თქვენ!
  7. I2C 2004 LCD - $ 3-7

    1. ამაზონი
    2. კოდი მხარს უჭერს LCD– ის 3 ტიპს, მაგრამ I2C 2004 არის ის, რომელზეც შევაფასე, როგორც საუკეთესო ღირებულება და ზომა. (SSD1306 ასევე შესაძლებელია)
  8. 2 ტრანზისტორი - 2N2222A- ამაზონი
  9. განსხვავებული მავთულები / შედუღება 12V
  10. ელექტრომომარაგება - ამაზონი
  11. 12V -> 5V მამლის გადამყვანი - ამაზონი

*არსებობს მოქნილობა, როდესაც საქმე ეხება ამ ნაწილის შერჩევას.

შენიშვნა: თქვენ შეგიძლიათ დაიწყოთ ამ პროექტის უმეტესობა მხოლოდ თქვენი ჟოლოს პიით, სანამ ელოდებით სხვა ნივთების გაგზავნას.

ნაბიჯი 2: ნაბიჯი 2: გაყვანილობა და ელექტრონიკა

ნაბიჯი 2: გაყვანილობა და ელექტრონიკა
ნაბიჯი 2: გაყვანილობა და ელექტრონიკა
ნაბიჯი 2: გაყვანილობა და ელექტრონიკა
ნაბიჯი 2: გაყვანილობა და ელექტრონიკა
  1. შეიკრიბეთ სინათლე

    1. სინათლის გაყვანილობა უნდა იყოს 12 + სინათლეზე.
    2. გაუშვით უარყოფითი შუქიდან ერთ -ერთ ტრანზისტორზე.
    3. ტრანზისტორის ემეტერი მიწაზე მიდის.
    4. ტრანზისტორის კოლექციონერი მიდის ჟოლოს პითან.
  2. შეიკრიბეთ ხმა

    1. გაუშვით მარჯვენა ან მარცხენა ხმა PI– დან გამაძლიერებლამდე
    2. გაუშვით +5V გამაძლიერებელზე
    3. გაუშვით გამაძლიერებელი მე -2 ტრანზისტორზე.
    4. გაუშვით მე -2 ტრანზიტორის ემლეტერი მიწაზე
    5. გაუშვით ტრანზისტორის კოლექციონერი Raspberry Pi– მდე
  3. შეიკრიბეთ გაყვანილობა PI– ში
  4. ეს არის PI– ის pinout ინსტრუქციები (ზოგიერთი მათგანი კონფიგურირებადია 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. მოამზადეთ ჟოლო Pi W

    1. ჟოლოს პი უნდა იყოს გაშვებული რასპბიანის (ან სხვა დებიანის) უახლესი ვერსიით.
    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: setup wifi # TODO: setup passwd და უფლებამოსილი გასაღებები # შენიშვნები:

განაახლეთ პროგრამული უზრუნველყოფა OS დონეზე:

#apt-get პერსონალი (apt-get update && apt-get -y upgrade)> /dev /null apt-get dist-upgrade -y #General Dev apt-get install -y git build-thelb 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: fix/etc/host #TODO: setup br0 mkdir/etc/hostapd/ #note: სხვა კონფიგურაცია ხდება კონფიგურაციის ფაილების მეშვეობით და გარსი ამოღებულია განახლების ნაწილად

კვანძისა და კვანძის ბიბლიოთეკების განახლება

#განახლება 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 ამოღება -y --purge npm კვანძის nodejs

#კვანძების დაყენება

#განახლების კვანძი

#დააინსტალირეთ კვანძების დამოკიდებულება nhl დირექტორიაში ექსპორტი NODE_PATH =/usr/local/lib/node_modules

#HACK - TODO - შეასწორეთ ის, რაც კოჭლი არ დააინსტალირებს გლობალურად

cd/opt/nhl npm დააინსტალირეთ კოჭლი # კოჭლია, კოჭლია, გლობალურად არ დააინსტალირებს 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

npm დააინსტალირეთ oled-font-5x7 #არ დაინსტალირდება გლობალურად

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

npm ინსტალაცია გამორთულია #არ დაინსტალირდება გლობალურად

cp -R/opt/nhl/node_modules/გამორთვა $ NODE_PATH

#npm დააინსტალირეთ pm2 #არ დაინსტალირდება გლობალურად

#cp -R/opt/nhl/node_modules/pm2 $ NODE_PATH #npm install express #wont install globally #cp -R/opt/nhl/node_modules/express $ NODE_PATH

# ნებისმიერი გლობალური მოდული

npm დააინსტალირეთ ექსპრესი სხეული- 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… #დარეკეთ ავტომატურ სკრიპტზე, რომ დააინსტალიროთ ყველაფერი 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 კონფიგურაციის ფაილები - - შეიძლება საჭირო გახდეს თქვენი სისტემის შეცვლა

#კონფიგურაციის ფაილის განახლებები#ხმის დამატება 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 = / 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 /მოდულები

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. ადგილობრივი printf '\ n გასასვლელი 0' >> /და ა.შ.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: test setup 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

ნაბიჯი 4: ნაბიჯი 4: განაახლეთ JSON კონფიგურაცია

დააყენეთ თქვენი JSON კონფიგურაციის ფაილი თქვენთვის სასურველი გუნდისთვის და ა.შ. ეს ფაილი მდებარეობს /opt /nhl GO CAPITALS- ში! JSON ფაილის კონფიგურაცია

პროგრამული უზრუნველყოფა იყენებს JSON ფაილს იმ ტექნიკისა და გუნდის კონფიგურაციისთვის, რომელსაც თქვენ მიყვებით. გუნდის დაყენება შესაძლებელია ვებ სერვერის საშუალებით, რომელიც გაშვებული იქნება, მაგრამ აპარატურის დაყენება საჭიროა ხელით:

აქ მოცემულია თითოეული შესაძლო მნიშვნელობის ახსნა:

  • myteam: ეს არის გუნდის 3 ასო კოდი, რომლის დაცვაც გსურთ
  • გამართვა: შესაძლო მნიშვნელობებია 1 (ჭეშმარიტი) ან 0 (ყალბი) და გააკონტროლებს რამდენი ლოგინი იწერება.
  • გამომავალი: ეს არის მეთოდი, რომლითაც ქულები/დეტალები უნდა იყოს ნაჩვენები. შესაძლო მნიშვნელობებია:

    • LCD: ეს არის 2004 LCD
    • კონსოლი: ის ჩაწერს მხოლოდ ტერმინალს (ბრძანების ხაზის გასაშვებად)
    • oled: SSD6404 oled ეკრანის მხარდაჭერა
  • სინათლე: მხარდაჭერილია ორი სახის განათება

    • სიგნალიზაცია: ეს ამოძრავებს ერთ GPIO- ს ტრანზისტორის ჩართვის/გამორთვისთვის
    • მრავალფუნქციური led: მხარს უჭერს მრავალფერიან, ან მრავალჯერადი led- ებს
    • არცერთი: შუქი არ არის მიმაგრებული
  • amp: ეს არის GPIO, რომელიც ამოძრავებს ტრანზისტორს გამაძლიერებლისთვის

გირჩევთ: