สารบัญ:
- ขั้นตอนที่ 1: วัสดุ
- ขั้นตอนที่ 2: การตั้งค่าเซิร์ฟเวอร์
- ขั้นตอนที่ 3: การตั้งค่า Raspberry Pi
- ขั้นตอนที่ 4: การประกอบปืน
- ขั้นตอนที่ 5: เล่นเกม
- ขั้นตอนที่ 6: การปรับปรุงในอนาคต
![แท็กเลเซอร์อินฟราเรดพร้อม Raspberry Pi Zero: 6 ขั้นตอน (พร้อมรูปภาพ) แท็กเลเซอร์อินฟราเรดพร้อม Raspberry Pi Zero: 6 ขั้นตอน (พร้อมรูปภาพ)](https://i.howwhatproduce.com/images/003/image-6452-41-j.webp)
วีดีโอ: แท็กเลเซอร์อินฟราเรดพร้อม Raspberry Pi Zero: 6 ขั้นตอน (พร้อมรูปภาพ)
![วีดีโอ: แท็กเลเซอร์อินฟราเรดพร้อม Raspberry Pi Zero: 6 ขั้นตอน (พร้อมรูปภาพ) วีดีโอ: แท็กเลเซอร์อินฟราเรดพร้อม Raspberry Pi Zero: 6 ขั้นตอน (พร้อมรูปภาพ)](https://i.ytimg.com/vi/TtDo3ovEzh8/hqdefault.jpg)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
![แท็กเลเซอร์อินฟราเรดพร้อม Raspberry Pi Zero แท็กเลเซอร์อินฟราเรดพร้อม Raspberry Pi Zero](https://i.howwhatproduce.com/images/003/image-6452-42-j.webp)
คำแนะนำนี้จะอธิบายขั้นตอนการสร้างเกม Infrared Laser Tag โดยใช้คอมพิวเตอร์เซิร์ฟเวอร์พื้นฐานและ Raspberry Pi Zero สำหรับผู้เล่นแต่ละคน โปรเจ็กต์นี้อาศัยการเชื่อมต่อ Wifi เป็นหลักในการสื่อสารกับเซิร์ฟเวอร์ ซึ่งทำให้ Pi เป็นตัวเลือกที่ยอดเยี่ยม
เซิร์ฟเวอร์ที่ใช้ในโปรเจ็กต์นี้คือคอมพิวเตอร์เดสก์ท็อปรุ่นเก่าที่ใช้ลินุกซ์ คอมพิวเตอร์ไม่จำเป็นต้องมีอะไรพิเศษและอาจเรียกใช้จาก Raspberry Pi 3 ได้ เซิร์ฟเวอร์และ pi zero แต่ละตัวจะต้องเชื่อมต่อกับเครือข่ายเดียวกันระหว่างการเล่นเกม
ขั้นตอนที่ 1: วัสดุ
![วัสดุ วัสดุ](https://i.howwhatproduce.com/images/003/image-6452-43-j.webp)
![วัสดุ วัสดุ](https://i.howwhatproduce.com/images/003/image-6452-44-j.webp)
คำอธิบายและลิงก์บางส่วนสำหรับวัสดุที่จำเป็นแสดงอยู่ด้านล่าง รายการวัสดุด้านล่างสำหรับปืน 3 กระบอก
- เซิร์ฟเวอร์คอมพิวเตอร์ (1)
- Raspberry Pi Zero W (3) Adafruit
- การ์ด SD อย่างน้อย 4GB (3) Amazon
- เครื่องส่งสัญญาณ IR LED (3)
- ตัวรับสัญญาณ IR (6) Amazon
- ไฟ LED สีแดง (3)
- ไฟ LED สีฟ้า (3)
- ไฟ LED สีเขียว (3)
- Buzzer แบบพาสซีฟ (3) Amazon
- ปุ่มกด (6)
- หน้าจอ LCD 16x2 พร้อมอะแดปเตอร์ I2C (3) Amazon
- ชุดแบตเตอรี่แบบพกพา (3) Amazon
- สาย Micro เป็น USB ปกติ (3) Amazon
- PN2222 ทรานซิสเตอร์ (3)
- ตัวต้านทาน 100Ω (3)
- ตัวต้านทาน 1kΩ (9)
รายการเสริม:
- เสื้อกั๊ก (3) อเมซอน
- สายริบบิ้นต่อ (3) Amazon
ในโครงการนี้ เราลงเอยด้วยการนำ IR LED Transmitter จากปืนเลเซอร์แท็กชุดเก่าที่มีกรวยสีดำล้อมรอบตัวส่งสัญญาณ เพื่อช่วยจำกัดขอบเขตการยิงของปืนแต่ละกระบอก อย่างไรก็ตาม เครื่องส่งทั่วไปใดๆ ควรใช้งานได้
นอกเหนือจากรายการข้างต้นแล้ว ปืนเลเซอร์ยังพิมพ์ 3 มิติอีกด้วย โครงการนี้จึงจำเป็นต้องมีการเข้าถึงเครื่องพิมพ์ 3 มิติและเส้นใย โดยรวมแล้ว สำหรับปืนสามกระบอก มูลค่ารวมอยู่ที่ประมาณ 350 ดอลลาร์
ขั้นตอนที่ 2: การตั้งค่าเซิร์ฟเวอร์
![การตั้งค่าเซิร์ฟเวอร์ การตั้งค่าเซิร์ฟเวอร์](https://i.howwhatproduce.com/images/003/image-6452-45-j.webp)
![การตั้งค่าเซิร์ฟเวอร์ การตั้งค่าเซิร์ฟเวอร์](https://i.howwhatproduce.com/images/003/image-6452-46-j.webp)
![การตั้งค่าเซิร์ฟเวอร์ การตั้งค่าเซิร์ฟเวอร์](https://i.howwhatproduce.com/images/003/image-6452-47-j.webp)
สิ่งแรกที่จำเป็นในการตั้งค่าเซิร์ฟเวอร์คือการติดตั้ง Mosquitto MQTT Broker Service Mosquitto เป็นบริการที่ให้กรอบสำหรับการสื่อสารระหว่างอุปกรณ์แต่ละตัวในเกม ซึ่งช่วยให้เซิร์ฟเวอร์สามารถส่งข้อความไปยัง Pis แต่ละตัวที่เชื่อมต่อกับบริการได้ ในเทอร์มินัล ให้รันคำสั่งต่อไปนี้
sudo apt-get update
sudo apt-get อัปเกรด sudo apt-get ติดตั้ง mosquitto -y sudo apt-get ติดตั้ง python3-pip -y sudo pip3 ติดตั้ง paho-mqtt
GUI บางส่วนสำหรับเซิร์ฟเวอร์ถูกสร้างขึ้นโดยใช้ตัวออกแบบ GUI ชื่อ Pygubu สามารถติดตั้งได้โดยเรียกใช้:
pip3 ติดตั้ง pygubu
ข้อมูลเพิ่มเติมเกี่ยวกับ pygubu สามารถพบได้ที่
เมื่อติดตั้ง MQTT และ Pygubu แล้ว ให้สร้างไดเร็กทอรีใหม่และคัดลอกไฟล์ที่แนบมา ไดเร็กทอรีควรประกอบด้วย:
- ltag.py
- pregame.py
- game_statistics.py
- gvars.py
- pygubu.ui
- pygubu_limited.ui
- home.png
- self.png
- ศัตรู.png
- laser.jpg
หมายเหตุ: ภาพที่แนบมาที่ใช้ในโครงการนี้ไม่ได้ถูกสร้างขึ้นโดยทีมพัฒนา ดังนั้นจึงไม่อ้างสิทธิ์ในผลงาน
ขั้นตอนที่ 3: การตั้งค่า Raspberry Pi
![การติดตั้ง Raspberry Pi การติดตั้ง Raspberry Pi](https://i.howwhatproduce.com/images/003/image-6452-48-j.webp)
ขั้นตอนนี้จะต้องทำซ้ำในแต่ละ Raspberry Pis
1. ติดตั้งระบบปฏิบัติการ
ขั้นแรก เริ่มต้นด้วยการติดตั้ง Raspbian ใหม่ เราขอแนะนำให้ใช้รุ่น Lite เนื่องจากน้อยกว่าสำหรับ Pi ที่จะจัดการ แต่ทั้งสองรุ่นควรทำงานได้ดี สามารถดาวน์โหลดได้ที่
2. ติดตั้ง MQTT
ต่อไปเราต้องติดตั้งบริการนายหน้า MQTT เราจะใช้ Mosquitto สำหรับสิ่งนี้ ในเทอร์มินัล ให้รันคำสั่งต่อไปนี้
sudo apt-get update
sudo apt-get อัปเกรด sudo apt-get ติดตั้ง mosquitto -y sudo apt-get ติดตั้ง python3-pip -y sudo pip3 ติดตั้ง paho-mqtt
Mosquitto เป็นบริการที่ให้กรอบสำหรับการสื่อสารระหว่างอุปกรณ์แต่ละตัวในเกม ซึ่งช่วยให้เซิร์ฟเวอร์สามารถส่งข้อความไปยัง Pis แต่ละตัวที่เชื่อมต่อกับบริการได้
3. ติดตั้งเครื่องมือ I2C
คำสั่งต่อไปนี้จะติดตั้งไลบรารีที่ใช้สำหรับหน้าจอ LCD
sudo apt-get install -y python3-smbus i2c-tools
sudo apt-get ติดตั้ง rpi.gpio -y
อาจต้องเปลี่ยนที่อยู่ i2c ในไฟล์ lcddriver.py สามารถค้นหาที่อยู่ได้โดยป้อนคำสั่งต่อไปนี้
i2cdetect -y 1
4. ติดตั้งและกำหนดค่า LIRC
สร้างไดเร็กทอรีใหม่และดาวน์โหลดไฟล์ที่แนบมากับตำแหน่งนี้
อินเทอร์เน็ตเบราว์เซอร์ส่วนใหญ่จะไม่ดาวน์โหลดไฟล์โดยไม่มีส่วนขยาย เพื่อแก้ไขปัญหานี้ ไฟล์สองไฟล์ถูกอัปโหลดด้วยส่วนขยายชั่วคราว ทั้ง "lircrc.deleteExtension" และ "modules.deleteExtension" จริงๆ แล้วควรเป็นแบบไม่มีนามสกุล และไฟล์ควรเปลี่ยนชื่อเป็น "lircrc" และ "modules" หลังจากที่ดาวน์โหลดสำเร็จแล้ว
ขั้นตอนนี้ติดตั้งและกำหนดค่าการพึ่งพาสำหรับแพ็คเกจ Linux Infrared Remote Control (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 restart
ถัดไป แก้ไขไฟล์ /boot/config.txt และเพิ่มบรรทัดต่อไปนี้
dtoverlay=lirc-rpi, gpio_in_pin=18, gpio_out_pin=25
รีบูต pi ของคุณเพื่อให้การเปลี่ยนแปลงมีผล
sudo รีบูต
5. เปิดใช้งาน I2C และแก้ไข CLIENT สำหรับผู้เล่นแต่ละคน
ต่อไป เราจะเปิดใช้งานอินเทอร์เฟซ I2C สามารถทำได้โดยใช้
sudo raspi-config
และเปิดใช้งาน I2C ในเมนู "ตัวเลือกอินเทอร์เฟซ"
6. แก้ไข Player CLIENT และ LTSERVER
ไดเร็กทอรีเกมควรรวมไฟล์ที่เหลืออีกสี่ไฟล์
- i2c_lib.py
- lcddriver.py
- ltsounds.py
- player.py
ขั้นตอนสุดท้ายในการกำหนดค่า pi คือการกำหนดหมายเลข CLIENT ให้แต่ละ pi และเพิ่มตำแหน่งของเซิร์ฟเวอร์ ทำได้โดยการแก้ไขไฟล์ "player.py" ที่รวมไว้สำหรับแต่ละ pi เพื่อให้ทั้งหมดมีหมายเลข CLIENT ที่แตกต่างกัน หมายเลขลูกค้าถูกกำหนดในบรรทัดที่ 3 ของ player.py กำหนด pi แรกให้เป็นไคลเอนต์ "1" ตัวที่สองเป็น "2" และตัวที่สามเป็นไคลเอนต์ "3"
ควรเปลี่ยนบรรทัด LTSERVER เป็นที่อยู่ IP ของเซิร์ฟเวอร์ พบได้โดยการพิมพ์ 'ifconfig | grep "inet addr" ' ในเทอร์มินัลของคอมพิวเตอร์เซิร์ฟเวอร์
ขั้นตอนที่ 4: การประกอบปืน
![ปืนประกอบ ปืนประกอบ](https://i.howwhatproduce.com/images/003/image-6452-49-j.webp)
![ปืนประกอบ ปืนประกอบ](https://i.howwhatproduce.com/images/003/image-6452-50-j.webp)
ดำเนินการต่อสายปืนแต่ละกระบอกตามแผนผังการเดินสายและแผนผังด้านบน
อุปกรณ์ต่อพ่วงแต่ละตัวเชื่อมต่อกับพิน GPIO ต่อไปนี้บน Pi Zero:
- ออด: GPIO5
- ทริกเกอร์: GPIO26
- รีโหลด: GPIO12
- เครื่องส่งสัญญาณ IR: GPIO25
- ตัวรับ IR: GPIO18
- ไฟ LED สีแดง: GPIO17
- ไฟ LED สีเขียว: GPIO27
- ไฟ LED สีฟ้า: GPIO22
- I2C_SDA: GPIO2
- I2C_SCL: GPIO3
ดูแผนผังสำหรับรายละเอียดเพิ่มเติม
หากต้องการ ปืนเลเซอร์สามารถพิมพ์ 3 มิติโดยใช้ไฟล์โมเดลขั้นตอนที่รวมไว้ โปรดทราบว่าต้องพิมพ์ไฟล์ "front1STL. STL" สองไฟล์
ขั้นตอนที่ 5: เล่นเกม
![การเล่นเกม การเล่นเกม](https://i.howwhatproduce.com/images/003/image-6452-51-j.webp)
![การเล่นเกม การเล่นเกม](https://i.howwhatproduce.com/images/003/image-6452-52-j.webp)
![การเล่นเกม การเล่นเกม](https://i.howwhatproduce.com/images/003/image-6452-53-j.webp)
เกมเริ่มต้นด้วยการเรียกใช้ไฟล์ "ltag.py" บนเซิร์ฟเวอร์ เมื่อเสร็จแล้ว ผู้เล่นแต่ละคนสามารถเชื่อมต่อกับเซิร์ฟเวอร์โดยเรียกใช้ไฟล์ "player.py" ตามลำดับ
หมายเหตุ: หลังจากเสียบแบตเตอรี่แล้ว อาจใช้เวลาถึงหนึ่งนาทีในการเปิด pi
นอกจากนี้ยังอาจเป็นประโยชน์ในการเพิ่มงาน cron ที่เรียกใช้ไฟล์ player.py โดยอัตโนมัติเมื่อ pi เริ่มทำงาน เรามีช่วงเวลาที่ยากลำบากในการทำงานและจบลงด้วยการเพิ่มบรรทัดลงในไฟล์ "/etc/rc.local" ในแต่ละ Pis เพื่อเรียกใช้ไฟล์ "player.py" ซึ่งช่วยให้เกมเริ่มต้นได้โดยไม่ต้อง SSH เข้าไปใน Pi เพื่อเรียกใช้สคริปต์ของผู้เล่น
เมื่อเกมเริ่มต้นด้วยผู้เล่นพร้อมแล้ว GUI จะปรากฏขึ้นเพื่อให้สามารถกำหนดค่าเกมบางส่วนได้ เกมเริ่มต้นหลังจากกดปุ่มเริ่ม
หลังจากแต่ละเกม GUI สิ้นสุดจะปรากฏขึ้นพร้อมสถิติเกี่ยวกับเกมก่อนหน้า รวมถึงแท็ก เปอร์เซ็นต์ทั่วโลก และระยะเวลาของเกม
หมายเหตุ: เนื่องจากข้อจำกัดในไลบรารีซอฟต์แวร์ ตำแหน่งแท็กรายงานความถูกต้องไม่ได้เป็นตัวแทนของแท็กเลเซอร์จริง ในเวอร์ชันปัจจุบัน รูปภาพรายงานความแม่นยำของผู้เล่นมีไว้เพื่อความสวยงามเท่านั้น โดยหวังว่าจะเป็นเวอร์ชันในอนาคตที่มีการใช้งานตำแหน่งแท็กจริง
ขั้นตอนที่ 6: การปรับปรุงในอนาคต
![การปรับปรุงในอนาคต การปรับปรุงในอนาคต](https://i.howwhatproduce.com/images/003/image-6452-54-j.webp)
![การปรับปรุงในอนาคต การปรับปรุงในอนาคต](https://i.howwhatproduce.com/images/003/image-6452-55-j.webp)
โดยรวมแล้ว โครงการนี้ประสบความสำเร็จอย่างมาก ระหว่างทาง เราได้คิดถึงคุณลักษณะเพิ่มเติมบางประการที่อาจจะถูกเพิ่มลงในรุ่นต่อๆ ไป
- การออกแบบไกปืนที่แข็งแกร่งขึ้นสำหรับปืนที่พิมพ์ 3 มิติ
- สิ้นสุดเมนูแบบเลื่อนลง GUI เพื่อแสดงสถิติจากเกมที่ผ่านมา
- ตัวรับสัญญาณอินฟราเรดเพิ่มเติมที่สามารถติดเข้ากับเสื้อของผู้เล่นได้
- โหมดเกมเพิ่มเติมที่สามารถเลือกได้ใน Pregame GUI
- อัลกอริธึมตำแหน่งแท็กที่แม่นยำยิ่งขึ้นในหน้าสถิติผู้เล่น
แนะนำ:
จอแสดงผลเกม LED ทำจากไม้ที่ขับเคลื่อนโดย Raspberry Pi Zero: 11 ขั้นตอน (พร้อมรูปภาพ)
![จอแสดงผลเกม LED ทำจากไม้ที่ขับเคลื่อนโดย Raspberry Pi Zero: 11 ขั้นตอน (พร้อมรูปภาพ) จอแสดงผลเกม LED ทำจากไม้ที่ขับเคลื่อนโดย Raspberry Pi Zero: 11 ขั้นตอน (พร้อมรูปภาพ)](https://i.howwhatproduce.com/images/001/image-294-j.webp)
จอแสดงผล LED สำหรับเล่นเกมแบบไม้ที่ขับเคลื่อนโดย Raspberry Pi Zero: โปรเจ็กต์นี้ใช้จอแสดงผล LED แบบ WS2812 ขนาด 20x10 พิกเซลที่มีขนาด 78x35 ซม. ซึ่งสามารถติดตั้งได้ง่ายในห้องนั่งเล่นเพื่อเล่นเกมย้อนยุค เมทริกซ์เวอร์ชันแรกนี้สร้างขึ้นในปี 2016 และสร้างขึ้นใหม่โดยคนอื่นๆ อีกหลายคน ประสบการณ์นี้
ตัวนับสมาชิก YouTube โดยใช้ E-Paper Display และ Raspberry Pi Zero W: 5 ขั้นตอน (พร้อมรูปภาพ)
![ตัวนับสมาชิก YouTube โดยใช้ E-Paper Display และ Raspberry Pi Zero W: 5 ขั้นตอน (พร้อมรูปภาพ) ตัวนับสมาชิก YouTube โดยใช้ E-Paper Display และ Raspberry Pi Zero W: 5 ขั้นตอน (พร้อมรูปภาพ)](https://i.howwhatproduce.com/images/001/image-213-12-j.webp)
ตัวนับสมาชิก YouTube โดยใช้ E-Paper Display และ Raspberry Pi Zero W: ในคำแนะนำนี้ ฉันจะแสดงวิธีสร้าง Youtube Subscriber Counter ของคุณเองโดยใช้จอแสดงผล e-paper และ Raspberry Pi Zero W เพื่อสอบถาม YouTube API และอัปเดตการแสดงผล การแสดงกระดาษอิเล็กทรอนิกส์เหมาะอย่างยิ่งสำหรับโครงการประเภทนี้เนื่องจากมี
การถ่ายภาพดาราศาสตร์ด้วย Raspberry Pi Zero.: 11 ขั้นตอน (พร้อมรูปภาพ)
![การถ่ายภาพดาราศาสตร์ด้วย Raspberry Pi Zero.: 11 ขั้นตอน (พร้อมรูปภาพ) การถ่ายภาพดาราศาสตร์ด้วย Raspberry Pi Zero.: 11 ขั้นตอน (พร้อมรูปภาพ)](https://i.howwhatproduce.com/images/001/image-273-23-j.webp)
การถ่ายภาพดาราศาสตร์ด้วย Raspberry Pi Zero: ฉันเคยทำโปรเจ็กต์กล้องที่ใช้ Raspberry Pi อีกสองโครงการมาก่อน [1] [2] นี่เป็นแนวคิดเกี่ยวกับกล้องตัวที่ 3 ของฉัน เป็นโปรเจ็กต์ Raspberry Pi Zero โครงการแรกของฉัน นี่เป็นครั้งแรกที่ฉันไปถ่ายภาพ Astro! กระตุ้นด้วย 'Supermoon' ล่าสุด ฉันอยากได้น้องชายของฉัน'
DIY Raspberry Pi Zero เกมคอนโซลมือถือ: 6 ขั้นตอน (พร้อมรูปภาพ)
![DIY Raspberry Pi Zero เกมคอนโซลมือถือ: 6 ขั้นตอน (พร้อมรูปภาพ) DIY Raspberry Pi Zero เกมคอนโซลมือถือ: 6 ขั้นตอน (พร้อมรูปภาพ)](https://i.howwhatproduce.com/images/002/image-5450-4-j.webp)
DIY Raspberry Pi Zero Handheld Game Console: ในโปรเจ็กต์นี้ ฉันจะแสดงให้คุณเห็นว่าฉันใช้ Raspberry Pi Zero, แบตเตอรี่ NiMH, วงจรป้องกันการคายประจุเกินแบบโฮมเมด, จอ LCD มองหลังและเครื่องขยายเสียงเพื่อสร้างคอนโซลเกมมือถือที่สามารถเล่นได้ เกมย้อนยุค มาเริ่มกันเลย
Waveshare Game-HAT MOD Raspberry PI Zero/Zero W [EN/ES]: 4 ขั้นตอน
![Waveshare Game-HAT MOD Raspberry PI Zero/Zero W [EN/ES]: 4 ขั้นตอน Waveshare Game-HAT MOD Raspberry PI Zero/Zero W [EN/ES]: 4 ขั้นตอน](https://i.howwhatproduce.com/images/009/image-26576-j.webp)
Waveshare Game-HAT MOD Raspberry PI Zero/Zero W [EN/ES]: ENGLISH/ INGLÉS: ดังที่คุณทราบ การประกอบ Waveshare Game-HAT นั้นค่อนข้างง่าย หากเป็นหนึ่งในรุ่นที่เข้ากันได้กับการออกแบบอย่างสมบูรณ์ มันคือ Raspberry Pi 2/3 / 3A + / 3B / 3B + / โดยส่วนตัวแล้วฉันชอบที่คอนโซลเกมสามารถ h