Բովանդակություն:

Ինֆրակարմիր լազերային պիտակ Raspberry Pi Zero- ով `6 քայլ (նկարներով)
Ինֆրակարմիր լազերային պիտակ Raspberry Pi Zero- ով `6 քայլ (նկարներով)

Video: Ինֆրակարմիր լազերային պիտակ Raspberry Pi Zero- ով `6 քայլ (նկարներով)

Video: Ինֆրակարմիր լազերային պիտակ Raspberry Pi Zero- ով `6 քայլ (նկարներով)
Video: Գիտնականներն այլմոլորակայիններին հրավիրել են այցելել Երկիր՝ որպես զբոսաշրջիկ 2024, Նոյեմբեր
Anonim
Ինֆրակարմիր լազերային պիտակ Raspberry Pi Zero- ով
Ինֆրակարմիր լազերային պիտակ Raspberry Pi Zero- ով

Այս Instructable- ը կանցնի Infrared Laser Tag խաղի ստեղծման գործընթացում `օգտագործելով հիմնական սերվերային համակարգիչը և Raspberry Pi զրո յուրաքանչյուր խաղացողի համար: Projectրագիրը մեծապես հիմնված է Wifi կապի վրա `սերվերի հետ հաղորդակցվելու համար, ինչը Pi- ն դարձնում է հիանալի թեկնածու:

Այս նախագծում օգտագործված սերվերը հին աշխատասեղան էր ՝ Linux- ով: Համակարգիչը կարիք չունի որևէ հատուկ բան լինել, և, հավանաբար, այն կարող է գործարկվել նաև Raspberry Pi 3. -ից: Սերվերը և pi զրոներից յուրաքանչյուրը պետք է միացված լինեն նույն ցանցին խաղի ընթացքում:

Քայլ 1: Նյութեր

Նյութեր
Նյութեր
Նյութեր
Նյութեր

Ստորև ներկայացված են անհրաժեշտ նյութերի նկարագրությունը և որոշ հղումներ: Ստորև բերված նյութերի ցանկը 3 հրացանի համար է:

  • Սերվերային համակարգիչ (1)
  • Ազնվամորի Pi Zero W (3) Adafruit
  • Առնվազն 4 ԳԲ SD քարտ (3) Amazon
  • IR LED հաղորդիչ (3)
  • IR ընդունիչ (6) Amazon
  • Կարմիր LED (3)
  • Կապույտ LED (3)
  • Կանաչ LED (3)
  • Պասիվ ազդանշան (3) Ամազոն
  • Կոճակ (6)
  • LCD 16x2 էկրան I2C ադապտերով (3) Amazon
  • Դյուրակիր մարտկոցի փաթեթ (3) Amazon
  • Միկրոից մինչև սովորական USB մալուխ (3) Amazon
  • PN2222 տրանզիստոր (3)
  • 100Ω դիմադրություն (3)
  • 1kΩ դիմադրություն (9)

Ընտրովի իրեր.

  • Վեստ (3) Ամազոն
  • Ibապավենային մալուխի երկարացում (3) Amazon

Այս նախագծում մենք ավարտեցինք IR LED հաղորդիչը վերցնելով լազերային պիտակների ատրճանակների հին հավաքածուից, որոնք հաղորդիչի շուրջը ունեին սև կոն, որն օգնում էր նեղացնել յուրաքանչյուր ատրճանակի կրակոցը: Այնուամենայնիվ, ցանկացած ընդհանուր հաղորդիչ պետք է աշխատի:

Բացի վերը թվարկված իրերից, լազերային ատրճանակներն իրենք էին 3D տպագրությամբ: Հետևաբար, այս նախագիծը նաև կպահանջի մուտք դեպի 3D տպիչ և թել: Ընդհանուր առմամբ, երեք ատրճանակի համար ընդհանուր գումարը կազմել է մոտ 350 դոլար:

Քայլ 2: Սերվերի տեղադրում

Սերվերի կարգավորում
Սերվերի կարգավորում
Սերվերի կարգավորում
Սերվերի կարգավորում
Սերվերի կարգավորում
Սերվերի կարգավորում

Սերվերի տեղադրման համար առաջինը պետք է տեղադրել Mosquitto MQTT բրոքերային ծառայությունը: Mosquitto- ն այն ծառայությունն է, որն ապահովում է խաղի յուրաքանչյուր սարքի միջև հաղորդակցության շրջանակ: Սա թույլ է տալիս սերվերին հաղորդագրություններ ուղարկել ծառայությանը միացված յուրաքանչյուր Pis- ին: Տերմինալում գործարկեք հետևյալ հրամանները:

sudo apt-get թարմացում

sudo apt-get upgrade sudo apt-get տեղադրել mosquitto -y sudo apt-get տեղադրել python3-pip -y sudo pip3 տեղադրել paho-mqtt

Սերվերի համար GUI- ի մի մասը ստեղծվել է օգտագործելով Pygubu կոչվող GUI դիզայներ: Սա կարող է տեղադրվել ՝ գործարկելով.

pip3 տեղադրել pygubu

Pygubu- ի մասին լրացուցիչ տեղեկություններ կարելի է գտնել https://github.com/alejandroautalan/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- ի կարգավորում

Այս քայլը պետք է կրկնվի Ազնվամորու ձկներից յուրաքանչյուրի վրա:

1. Տեղադրեք օպերացիոն համակարգ

Նախ, սկսեք Raspbian- ի թարմ տեղադրումից: Մենք խորհուրդ կտայինք օգտագործել Lite տարբերակը, քանի որ Pi- ն ավելի քիչ է վարվում, բայց ցանկացած տարբերակ պետք է լավ աշխատի: Ներբեռնումը կարող եք գտնել https://www.raspberrypi.org/downloads/raspbian/ կայքում

2. Տեղադրեք MQTT

Հաջորդը մենք պետք է տեղադրենք MQTT բրոքերի ծառայությունը: Մենք դրա համար կօգտագործենք Mosquitto- ն: Տերմինալում գործարկեք հետևյալ հրամանները:

sudo apt-get թարմացում

sudo apt-get upgrade 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- գործիքներ

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 մոդուլներ /այլն /

Այնուհետև վերագործարկեք lircd ծառայությունը ՝ գործարկելով.

sudo /etc/init.d/lircd վերագործարկեք

Հաջորդը, խմբագրեք /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- ի կազմաձևման վերջին քայլը յուրաքանչյուր pi- ին Հաճախորդի համար նշանակելն է և սերվերի գտնվելու վայրի ավելացումն է: Դա արվում է ՝ խմբագրելով ներառված «player.py» ֆայլը յուրաքանչյուր pi- ի համար, որպեսզի նրանք բոլորն ունենան Հաճախորդի այլ համար: ՀԱIՈՐԴԱԿԻ համարը նշանակվում է player.py 3 -րդ տողում: Առաջին pi- ին նշանակեք հաճախորդ «1», երկրորդը ՝ «2», իսկ երրորդը ՝ հաճախորդ «3»:

LTSERVER տողը պետք է փոխվի սերվերի IP հասցեի: Սա հայտնաբերվում է ՝ մուտքագրելով 'ifconfig | grep "inet addr" 'սերվերային համակարգչի տերմինալում:

Քայլ 4: Հրացանի հավաքում

Ատրճանակի հավաքում
Ատրճանակի հավաքում
Ատրճանակի հավաքում
Ատրճանակի հավաքում

Անցեք զենքերից յուրաքանչյուրը մետաղալարով `ըստ էլեկտրագծերի սխեմայի և վերը նշված սխեմայի:

Theայրամասային սարքերից յուրաքանչյուրը միացված է Pi Zero- ի հետևյալ GPIO կապումներին.

  • Բզզիչ ՝ GPIO5
  • Գործարկիչ ՝ GPIO26
  • Վերբեռնել ՝ GPIO12
  • IR հաղորդիչ ՝ GPIO25
  • IR ընդունիչներ `GPIO18
  • ԿԱՐՄԻՐ LED: GPIO17
  • Կանաչ LED: GPIO27
  • Կապույտ LED: GPIO22
  • I2C_SDA ՝ GPIO2
  • I2C_SCL: GPIO3

Լրացուցիչ մանրամասների համար տե՛ս սխեմատիկ պատկերը:

Desiredանկության դեպքում լազերային ատրճանակները կարող են 3D տպվել `օգտագործելով ներառված քայլ մոդելի ֆայլերը: Հիշեք, որ «front1STL. STL» ֆայլից երկուսը պետք է տպվեն:

Քայլ 5: Խաղ խաղալ

Խաղ խաղալ
Խաղ խաղալ
Խաղ խաղալ
Խաղ խաղալ
Խաղ խաղալ
Խաղ խաղալ

Խաղը սկսվում է ՝ սերվերի վրա գործարկելով «ltag.py» ֆայլը: Երբ դա արվի, խաղացողներից յուրաքանչյուրը կարող է միանալ սերվերին ՝ գործարկելով իրենց համապատասխան «player.py» ֆայլը:

Նշում. Մարտկոցի տուփը միացնելուց հետո pi- ի գործարկումը կարող է տևել մինչև մեկ րոպե:

Կարող է նաև օգտակար լինել ավելացնել cron աշխատանքը, որն ինքնաբերաբար գործարկում է player.py ֆայլը, երբ pi- ն սկսում է: Մենք դժվարությամբ աշխատեցինք այս ամենի վրա և վերջացրինք «/etc/rc.local» ֆայլում Pis- ում յուրաքանչյուրի վրա «player.py» ֆայլը գործարկելու համար տող ավելացնելով: Սա թույլ է տալիս խաղը սկսել առանց խաղացողի սցենարը գործարկելու PiH- ի մեջ:

Երբ խաղը սկսվի ՝ խաղացողները պատրաստ կլինեն, կհայտնվի GUI, որը թույլ է տալիս կարգավորել խաղի մի քանի կարգավորումներ: Խաղը սկսվում է Start կոճակը սեղմելուց հետո:

Յուրաքանչյուր խաղից հետո կհայտնվի վերջնական GUI ՝ նախորդ խաղի վերաբերյալ վիճակագրությամբ, ներառյալ պիտակները, գլոբալ տոկոսները և խաղի տևողությունը:

Նշում. Softwareրագրային գրադարանների սահմանափակումների պատճառով ճշգրտության մասին հաշվետվությունների պիտակների տեղերը չեն ներկայացնում իրական լազերային պիտակները: Ընթացիկ տարբերակում, Player ճշգրտության մասին զեկույցի պատկերը զուտ գեղագիտության համար է `ապագա տարբերակի հույսով` պիտակի գտնվելու վայրի իրական իրականացումով:

Քայլ 6: Ապագա բարելավումներ

Ապագա բարելավումներ
Ապագա բարելավումներ
Ապագա բարելավումներ
Ապագա բարելավումներ

Ընդհանուր առմամբ, նախագիծը մեծ հաջողություն ունեցավ: Theանապարհին մենք մտածեցինք մի քանի լրացուցիչ հնարավորությունների մասին, որոնք կարող են ավելացվել ապագա հրատարակությանը:

  • 3D տպագրված ատրճանակների համար ավելի ամուր ձգանների ձևավորում
  • GUI- ի բացվող ընտրացանկի ավարտում ՝ նախորդ խաղերի վիճակագրությունը ցուցադրելու համար
  • Ավելի ինֆրակարմիր ընդունիչներ, որոնք կարող են ամրացվել խաղացողների ժիլետներին
  • Լրացուցիչ խաղի ռեժիմներ, որոնք կարող են ընտրվել Pregame GUI- ում
  • Պիտակների տեղադրման ավելի ճշգրիտ ալգորիթմ ՝ խաղացողների վիճակագրության էջում

Խորհուրդ ենք տալիս: