תוכן עניינים:

תג לייזר אינפרא אדום עם פטל פיי אפס: 6 שלבים (עם תמונות)
תג לייזר אינפרא אדום עם פטל פיי אפס: 6 שלבים (עם תמונות)

וִידֵאוֹ: תג לייזר אינפרא אדום עם פטל פיי אפס: 6 שלבים (עם תמונות)

וִידֵאוֹ: תג לייזר אינפרא אדום עם פטל פיי אפס: 6 שלבים (עם תמונות)
וִידֵאוֹ: אקדח לייזר תג עם רחפן 2024, יולי
Anonim
תג לייזר אינפרא אדום עם פטל פיי אפס
תג לייזר אינפרא אדום עם פטל פיי אפס

מדריך זה יעבור בתהליך יצירת משחק לייזר אינפרא אדום באמצעות מחשב שרת בסיסי ואפס פטל פטל לכל שחקן. הפרויקט מסתמך במידה רבה על חיבור Wifi כדי לתקשר עם השרת מה שהופך את ה- Pi למועמד מצוין.

השרת ששימש בפרויקט זה היה מחשב שולחני ישן עם לינוקס. המחשב לא צריך להיות משהו מיוחד, וכנראה שאפילו יכול להיות מופעל מ- Raspberry Pi 3. השרת וכל אחד מ- pi zero חייבים להיות מחוברים לאותה רשת במהלך משחק.

שלב 1: חומרים

חומרים
חומרים
חומרים
חומרים

התיאור וכמה קישורים לחומרים הדרושים מוצגים להלן. רשימת החומרים להלן מיועדת לשלושה רובים.

  • מחשב שרת (1)
  • Raspberry Pi Zero W (3) Adafruit
  • כרטיס SD לפחות 4GB (3) אמזון
  • משדר LED 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) אמזון

בפרויקט זה, בסופו של דבר לקחנו את משדר ה- LED של ה- IR מתוך קבוצה ישנה של רובי לייזר עם חרוט שחור סביב המשדר כדי לעזור לצמצם את הזריקה של כל אקדח. עם זאת, כל משדר כללי צריך לעבוד.

בנוסף לפריטים המפורטים לעיל, תותחי הלייזר עצמם הודפסו בתלת מימד. לכן פרויקט זה ידרוש גם גישה למדפסת תלת מימד ולחוט נימה. בסך הכל, עבור שלושה אקדחים הסכום הגיע לכ -350 דולר.

שלב 2: הגדרת שרת

הגדרת שרת
הגדרת שרת
הגדרת שרת
הגדרת שרת
הגדרת שרת
הגדרת שרת

הדבר הראשון הדרוש להתקנת השרת הוא התקנת Mosquitto MQTT Broker Service. Mosquitto הוא השירות המספק מסגרת לתקשורת בין כל אחד מהמכשירים במשחק. זה מאפשר לשרת לשלוח הודעות לכל אחד מה- Pis המחובר לשירות. במסוף, הפעל את הפקודות הבאות.

עדכון sudo apt-get

sudo apt-get שדרוג sudo apt-get להתקין יתוש -y sudo apt-get להתקין python3-pip -y sudo pip3 להתקין paho-mqtt

חלק מ- GUI עבור השרת נוצרו באמצעות מעצב GUI בשם Pygubu. ניתן להתקין זאת על ידי הפעלה:

pip3 התקן pygubu

מידע נוסף על פיגובו ניתן למצוא בכתובת

לאחר התקנת MQTT ו- Pygubu, צור ספרייה חדשה והעתק את הקבצים המצורפים. הספרייה צריכה לכלול:

  • ltag.py
  • pregame.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • home.png
  • self.png
  • אויבים.פנג
  • laser.jpg

הערה: התמונות המצורפות ששימשו בפרויקט זה לא נוצרו על ידי צוות הפיתוח ולכן אינן טוענות לכותב.

שלב 3: הגדרת פטל פטל

הגדרת פטל פטל
הגדרת פטל פטל

שלב זה יצטרך לחזור על כל אחד מהפיס פטל.

1. התקן את מערכת ההפעלה

ראשית, התחל בהתקנה חדשה של Raspbian. אנו ממליצים להשתמש בגרסת ה- Lite מכיוון שפחות לטפל ב- Pi, אך כל אחת מהגרסאות אמורה לעבוד מצוין. ניתן למצוא את ההורדה בכתובת

2. התקן את MQTT

בשלב הבא עלינו להתקין את שירות הברוקר MQTT. אנו נשתמש ב- Mosquitto לשם כך. במסוף, הפעל את הפקודות הבאות.

עדכון sudo apt-get

sudo apt-get שדרוג 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-tools

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

הפעל מחדש את הפאי שלך כדי לאפשר לשינויים להיכנס לתוקף.

sudo reboot

5. הפעל את I2C וערוך את CLIENT עבור כל שחקן

לאחר מכן, נאפשר את ממשק I2C. ניתן לעשות זאת באמצעות

sudo raspi-config

ומאפשר את I2C בתפריט "אפשרויות ממשק".

6. ערוך את Player CLIENT ו- LTSERVER

מדריך המשחקים אמור לכלול כעת את ארבעת הקבצים הנותרים.

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

השלב האחרון בהגדרת ה- pi הוא הקצאת כל pi מספר CLIENT והוספת מיקום השרת. זה נעשה על ידי עריכת קובץ ה- "player.py" הכלול עבור כל פאי כך שלכולם יהיה מספר CLIENT שונה. מספר CLIENT מוקצה בשורה 3 של player.py. הקצה את ה- pi הראשון להיות לקוח "1", השני להיות "2" והשלישי להיות הלקוח "3".

יש לשנות את שורת LTSERVER לכתובת ה- IP של השרת. זה נמצא על ידי הקלדת 'ifconfig | grep "inet addr" 'במסוף של מחשב השרת.

שלב 4: הרכבת אקדח

הרכבת אקדח
הרכבת אקדח
הרכבת אקדח
הרכבת אקדח

המשך לחווט כל אחד מהתותחים בהתאם לתרשים החיווט ולסכימה למעלה.

כל אחד מהציוד ההיקפי מחובר לסיכות GPIO הבאות ב- Pi Zero:

  • זמזם: GPIO5
  • טריגר: GPIO26
  • טען מחדש: GPIO12
  • משדר IR: GPIO25
  • מקלטים IR: GPIO18
  • LED אדום: GPIO17
  • נורית ירוקה: GPIO27
  • LED כחול: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

עיין בתרשים לפרטים נוספים.

אם תרצה, ניתן להדפיס את תותחי הלייזר בתלת -ממד באמצעות קבצי הדוגמניות המצורפים. זכור כי יש להדפיס שניים מקבצי "front1STL. STL".

שלב 5: משחק משחק

משחק משחק
משחק משחק
משחק משחק
משחק משחק
משחק משחק
משחק משחק

המשחק מתחיל בהפעלת הקובץ "ltag.py" בשרת. ברגע שזה נעשה, כל אחד מהשחקנים יכול להתחבר לשרת על ידי הפעלת קובץ ה- "player.py" שלו.

הערה: לאחר חיבור מארז הסוללות, ייתכן שיחלוף עד דקה עד שה- pi יאתחל.

ייתכן גם שיהיה שימושי להוסיף עבודת cron שמריצה את קובץ player.py באופן אוטומטי ברגע שה- pi מופעל. התקשינו לגרום לזה לפעול ובסופו של דבר הוספנו שורה לקובץ "/etc/rc.local" בכל אחד מה- Pis להפעלת קובץ "player.py". זה מאפשר להתחיל את המשחק ללא צורך ב- SSH ל- Pi's כדי להריץ את סקריפט השחקן.

לאחר שהמשחק יתחיל כשהשחקנים מוכנים, יופיע GUI המאפשר להגדיר כמה מהגדרות המשחק. המשחק מתחיל לאחר לחיצה על כפתור התחל.

לאחר כל משחק, יופיע GUI מסתיים עם סטטיסטיקות אודות המשחק הקודם, כולל תגים, אחוזים גלובליים ומשך המשחק.

הערה: בשל מגבלות בספריות תוכנה, מיקומי תגי דוח הדיוק אינם מייצגים תגי לייזר בפועל. בגרסה הנוכחית, תמונת דוח הדיוק של השחקן מיועדת אך ורק לאסתטיקה בתקווה לגירסה עתידית עם יישום מיקום התגים בפועל.

שלב 6: שיפורים עתידיים

שיפורים עתידיים
שיפורים עתידיים
שיפורים עתידיים
שיפורים עתידיים

בסך הכל הפרויקט זכה להצלחה גדולה. בדרך חשבנו על כמה תכונות נוספות שעשויות להתווסף למהדורה עתידית.

  • עיצוב הדק חזק יותר עבור הרובים המודפסים בתלת מימד
  • סיום התפריט הנפתח של GUI להצגת נתונים סטטיסטיים ממשחקים קודמים
  • יותר מקלטי אינפרא אדום שניתן לחבר אותם לאפודים של השחקנים
  • מצבי משחק נוספים הניתנים לבחירה ב- Pregame GUI
  • אלגוריתם מיקום תגים מדויק יותר בדף הנתונים הסטטיסטיים של השחקנים

מוּמלָץ: