Სარჩევი:

ინფრაწითელი ლაზერული წარწერა Raspberry Pi Zero: 6 ნაბიჯი (სურათებით)
ინფრაწითელი ლაზერული წარწერა Raspberry Pi Zero: 6 ნაბიჯი (სურათებით)

ვიდეო: ინფრაწითელი ლაზერული წარწერა Raspberry Pi Zero: 6 ნაბიჯი (სურათებით)

ვიდეო: ინფრაწითელი ლაზერული წარწერა Raspberry Pi Zero: 6 ნაბიჯი (სურათებით)
ვიდეო: 50-X მასშტაბირება კამერას ეწვია 1კმ 2024, ივლისი
Anonim
ინფრაწითელი ლაზერული წარწერა Raspberry Pi Zero
ინფრაწითელი ლაზერული წარწერა Raspberry Pi Zero

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

ამ პროექტში გამოყენებული სერვერი იყო ძველი დესკტოპის კომპიუტერი Linux- ით. კომპიუტერი არ საჭიროებს რაიმე განსაკუთრებულს და შესაძლოა ის Raspberry Pi 3. -დან იყოს გაშვებული. სერვერი და თითოეული პი ნული უნდა იყოს დაკავშირებული იმავე ქსელთან თამაშის დროს.

ნაბიჯი 1: მასალები

მასალები
მასალები
მასალები
მასალები

აღწერილობა და ზოგიერთი ბმული საჭირო მასალებისათვის ნაჩვენებია ქვემოთ. ქვემოთ მოყვანილი მასალების ჩამონათვალი არის 3 იარაღისთვის.

  • სერვერის კომპიუტერი (1)
  • Raspberry Pi Zero W (3) ადაფრუტი
  • მინიმუმ 4 GB SD ბარათი (3) Amazon
  • IR LED გადამცემი (3)
  • IR მიმღები (6) ამაზონი
  • წითელი LED (3)
  • ლურჯი LED (3)
  • მწვანე LED (3)
  • პასიური ბუზერი (3) ამაზონი
  • ღილაკი (6)
  • LCD 16x2 ეკრანი I2C ადაპტერით (3) ამაზონი
  • პორტატული ბატარეის პაკეტი (3) ამაზონი
  • მიკრო და ჩვეულებრივი USB კაბელი (3) ამაზონი
  • PN2222 ტრანზისტორი (3)
  • 100Ω რეზისტორი (3)
  • 1kΩ რეზისტორი (9)

არჩევითი ნივთები:

  • ვესტი (3) ამაზონი
  • ლენტი კაბელის გაფართოება (3) ამაზონი

ამ პროექტში ჩვენ დავასრულეთ IR LED გადამცემის აღება ლაზერული იარაღის ძველი კომპლექტიდან, რომელსაც ჰქონდა შავი კონუსი გადამცემი ირგვლივ, რათა დაგეხმარათ თითოეული იარაღის გასროლაში. თუმცა, ნებისმიერი გენერალური გადამცემი უნდა მუშაობდეს.

ზემოთ ჩამოთვლილი ნივთების გარდა, ლაზერული იარაღი თავად იყო 3D ბეჭდვით. ეს პროექტი ასევე მოითხოვს 3D პრინტერზე და ძაფზე წვდომას. საერთო ჯამში, სამი იარაღისთვის ჯამში 350 დოლარი შეადგინა.

ნაბიჯი 2: სერვერის დაყენება

სერვერის დაყენება
სერვერის დაყენება
სერვერის დაყენება
სერვერის დაყენება
სერვერის დაყენება
სერვერის დაყენება

პირველი რაც საჭიროა სერვერის დასაყენებლად არის Mosquitto MQTT საბროკერო სერვისის დაყენება. Mosquitto არის სერვისი, რომელიც უზრუნველყოფს თამაშის თითოეულ მოწყობილობას შორის კომუნიკაციის ჩარჩოს. ეს საშუალებას აძლევს სერვერს გაუგზავნოს შეტყობინებები სერვისთან დაკავშირებულ თითოეულ Pis- ს. ტერმინალში გაუშვით შემდეგი ბრძანებები.

sudo apt-get განახლება

sudo apt-get განახლება sudo apt-get ინსტალაცია mosquitto -y sudo apt-get install python3-pip -y sudo pip3 install paho-mqtt

ზოგიერთი GUI სერვერისთვის შეიქმნა GUI დიზაინერის გამოყენებით, სახელად Pygubu. ამის დაყენება შესაძლებელია გაშვებით:

pip3 დააინსტალირეთ pygubu

მეტი ინფორმაცია pygubu– ს შესახებ შეგიძლიათ იხილოთ

MQTT და Pygubu დაყენების შემდეგ შექმენით ახალი დირექტორია და დააკოპირეთ თანდართული ფაილები. დირექტორია უნდა შეიცავდეს:

  • ltag.py
  • წინასწარი თამაში.პია
  • game_statistics.py
  • gvars.py
  • პიგუბუ.უი
  • pygubu_limited.ui
  • მთავარი. png
  • self.png
  • მტრები. png
  • laser.jpg

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

ნაბიჯი 3: ჟოლოს დაყენება

ჟოლოს დაყენება
ჟოლოს დაყენება

ეს ნაბიჯი უნდა გაიმეოროთ ჟოლოს თითოეულ პისზე.

1. დააინსტალირეთ ოპერაციული სისტემა

პირველი, დაიწყეთ Raspbian– ის ახალი ინსტალაციით. ჩვენ გირჩევთ გამოიყენოთ Lite ვერსია, რადგან Pi– სთვის ნაკლებია მისი მართვა, მაგრამ ორივე ვერსია კარგად უნდა მუშაობდეს. გადმოწერა შეგიძლიათ იხილოთ

2. დააინსტალირეთ MQTT

შემდეგი ჩვენ უნდა დავაინსტალიროთ MQTT საბროკერო სერვისი. ჩვენ ვიყენებთ Mosquitto– ს ამისათვის. ტერმინალში გაუშვით შემდეგი ბრძანებები.

sudo apt-get განახლება

sudo apt-get upgrade sudo apt-get დააინსტალირეთ კოღო -y sudo apt-get დააინსტალირეთ python3-pip -y sudo pip3 დააინსტალირეთ paho-mqtt

Mosquitto არის სერვისი, რომელიც უზრუნველყოფს თამაშის თითოეულ მოწყობილობას შორის კომუნიკაციის ჩარჩოს. ეს საშუალებას აძლევს სერვერს გაუგზავნოს შეტყობინებები სერვისთან დაკავშირებულ თითოეულ Pis- ს.

3. დააინსტალირეთ I2C ინსტრუმენტები

შემდეგი ბრძანება დააინსტალირებს ბიბლიოთეკებს, რომლებიც გამოიყენება LCD ეკრანისთვის.

sudo apt-get install -y python3-smbus i2c- ინსტრუმენტები

sudo apt -get დააინსტალირეთ rpi.gpio -y

I2c მისამართი შეიძლება შეიცვალოს lcddriver.py ფაილში. მისამართის პოვნა შესაძლებელია შემდეგი ბრძანების შეყვანის გზით.

i2cdetect -y 1

4. დააინსტალირეთ და დააკონფიგურირეთ LIRC

შექმენით ახალი დირექტორია და გადმოწერეთ თანდართული ფაილები ამ ადგილას.

ინტერნეტ ბრაუზერების უმეტესობა არ გადმოწერს ფაილებს გაფართოებების გარეშე. ამის თავიდან ასაცილებლად, ორი ფაილი აიტვირთა დროებითი გაფართოებით. ორივე "lircrc.deleteExtension" და "modules.deleteExtension" რეალურად უნდა იყოს გაფართოების გარეშე და ფაილებს უნდა დაერქვას "lircrc" და "modules" წარმატებული გადმოტვირთვის შემდეგ.

ეს ნაბიჯი აყენებს და კონფიგურაციას უწევს Linux ინფრაწითელი დისტანციური მართვის (LIRC) პაკეტს. დამატებითი ინფორმაციისთვის იხილეთ გაკვეთილი LIRC– ის შექმნის შესახებ:

ჯერ დააინსტალირეთ ბიბლიოთეკა, შემდეგ დააკოპირეთ ჩართული ფაილები მათ შესაბამის დირექტორიაში, როგორც ეს ნაჩვენებია ქვემოთ მოცემულ ბრძანებებში. დაბოლოს, გადატვირთეთ lircd სერვისი.

sudo apt-get დააინსტალირეთ python3-lirc -y

ახლად შექმნილი დირექტორიიდან შეასრულეთ შემდეგი ბრძანებები კონფიგურაციის ფაილების მათ სწორ ადგილას გადასატანად.

sudo mv lircd.conf hardware.conf lircrc lirc_options.conf/etc/lirc/

sudo mv მოდულები /etc /

შემდეგ გადატვირთეთ lircd სერვისი გაშვებით:

sudo /etc/init.d/lircd გადატვირთვა

შემდეგი, შეცვალეთ /boot/config.txt ფაილი და დაამატეთ შემდეგი ხაზი

dtoverlay = lirc-rpi, gpio_in_pin = 18, gpio_out_pin = 25

გადატვირთეთ pi, რათა ცვლილებები ძალაში შევიდეს.

sudo გადატვირთვა

5. ჩართეთ I2C და შეცვალეთ კლიენტი თითოეული მოთამაშისთვის

შემდეგი, ჩვენ გავააქტიურებთ I2C ინტერფეისს. ეს შეიძლება გაკეთდეს გამოყენებით

sudo raspi-config

და I2C ჩართვა "ინტერფეისის ვარიანტების" მენიუში.

6. რედაქტირება Player CLIENT და LTSERVER

თამაშის დირექტორია უნდა შეიცავდეს დარჩენილ ოთხ ფაილს.

  • i2c_lib.py
  • lcddriver.py
  • ltsounds.py
  • player.py

Pi– ს კონფიგურაციის ბოლო ნაბიჯი არის თითოეული pi– ს კლიენტის ნომრის მინიჭება და სერვერის ადგილმდებარეობის დამატება. ეს ხდება თითოეული pi- სთვის შეტანილი "player.py" ფაილის რედაქტირებით ისე, რომ მათ ყველას ჰქონდეთ განსხვავებული კლიენტის ნომერი. კლიენტის ნომერი მინიჭებულია player.py მე -3 ხაზზე. მიანიჭეთ პირველი pi იყოს კლიენტი "1", მეორე იყოს "2" და მესამე იყოს კლიენტი "3".

LTSERVER ხაზი უნდა შეიცვალოს სერვერის IP მისამართით. ეს არის ნაპოვნი 'ifconfig | grep "inet addr" 'სერვერის კომპიუტერის ტერმინალში.

ნაბიჯი 4: იარაღის შეკრება

იარაღის შეკრება
იარაღის შეკრება
იარაღის შეკრება
იარაღის შეკრება

გააგრძელეთ თითოეული იარაღის მავთულხლართები გაყვანილობის დიაგრამისა და სქემატური სქემის მიხედვით.

თითოეული პერიფერიული მოწყობილობა უკავშირდება შემდეგ GPIO ქინძისთავებს Pi Zero– ზე:

  • ბუზერი: GPIO5
  • გამომწვევი: GPIO26
  • გადატვირთვა: GPIO12
  • IR გადამცემი: GPIO25
  • IR მიმღებები: GPIO18
  • წითელი LED: GPIO17
  • მწვანე LED: GPIO27
  • ცისფერი LED: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

იხილეთ სქემა უფრო დეტალურად.

თუ სასურველია, ლაზერული იარაღი შეიძლება 3D დაბეჭდოთ შემავალი საფეხურის მოდელის ფაილების გამოყენებით. გაითვალისწინეთ, რომ ორი "front1STL. STL" ფაილი უნდა იყოს დაბეჭდილი.

ნაბიჯი 5: თამაში

თამაში თამაში
თამაში თამაში
თამაში თამაში
თამაში თამაში
თამაში თამაში
თამაში თამაში

თამაში იწყება სერვერზე "ltag.py" ფაილის გაშვებით. ამის დასრულების შემდეგ, თითოეულ მოთამაშეს შეუძლია დაუკავშირდეს სერვერს შესაბამისი "player.py" ფაილის გაშვებით.

შენიშვნა: ბატარეის პაკეტის ჩართვის შემდეგ, pi- ს ჩატვირთვას შეიძლება ერთი წუთი დასჭირდეს.

ასევე შეიძლება სასარგებლო იყოს დაამატოთ cron სამუშაო, რომელიც ავტომატურად გაუშვებს player.py ფაილს pi დაწყებისთანავე. ჩვენ გაგვიჭირდა ამ სამუშაოს შესრულება და საბოლოოდ დავამატეთ ხაზი "/etc/rc.local" თითოეულ Pis ფაილზე "player.py" ფაილის გასაშვებად. ეს საშუალებას გაძლევთ დაიწყოთ თამაში PSH– ში Pi– ში მოთამაშის სკრიპტის გასაშვებად.

მას შემდეგ რაც თამაში დაიწყება მოთამაშეების მზადყოფნით, გამოჩნდება GUI, რომელიც იძლევა თამაშის რამდენიმე პარამეტრის კონფიგურაციის საშუალებას. თამაში იწყება დაწყების ღილაკზე დაჭერის შემდეგ.

ყოველი თამაშის შემდეგ გამოჩნდება დამთავრებული GUI სტატისტიკით წინა თამაშის შესახებ, მათ შორის ტეგებს, გლობალურ პროცენტებს და თამაშის ხანგრძლივობას.

შენიშვნა: პროგრამული ბიბლიოთეკების შეზღუდვების გამო, სიზუსტის მოხსენების ტეგების ადგილები არ წარმოადგენს რეალურ ლაზერულ ტეგებს. ახლანდელ ვერსიაში, მოთამაშეთა სიზუსტის ანგარიშის სურათი მხოლოდ ესთეტიკისთვის არის მომავლის ვერსიის იმედით, ტეგების ადგილმდებარეობის რეალური განხორციელებით.

ნაბიჯი 6: მომავალი გაუმჯობესება

მომავალი გაუმჯობესებები
მომავალი გაუმჯობესებები
მომავალი გაუმჯობესებები
მომავალი გაუმჯობესებები

საერთო ჯამში, პროექტი დიდი წარმატება იყო. გზად, ჩვენ ვიფიქრეთ რამდენიმე დამატებით მახასიათებელზე, რომელიც შეიძლება დაემატოს მომავალ გამოცემას.

  • 3D ბეჭდვის იარაღის უფრო გამძლე დიზაინის დიზაინი
  • GUI ჩამოსაშლელი მენიუს დასრულება წინა თამაშების სტატისტიკის საჩვენებლად
  • უფრო ინფრაწითელი მიმღებები, რომლებიც შეიძლება დაერთოს მოთამაშეთა ჟილეტებს
  • თამაშის დამატებითი რეჟიმები, რომელთა არჩევა შესაძლებელია Pregame GUI– ში
  • მოთამაშეთა სტატისტიკის გვერდზე ტეგების უფრო ზუსტი ალგორითმი

გირჩევთ: