Përmbajtje:

Etiketë me rreze infra të kuqe me mjedër Pi Zero: 6 hapa (me fotografi)
Etiketë me rreze infra të kuqe me mjedër Pi Zero: 6 hapa (me fotografi)

Video: Etiketë me rreze infra të kuqe me mjedër Pi Zero: 6 hapa (me fotografi)

Video: Etiketë me rreze infra të kuqe me mjedër Pi Zero: 6 hapa (me fotografi)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Nëntor
Anonim
Etiketë me rreze infra të kuqe me mjedër Pi Zero
Etiketë me rreze infra të kuqe me mjedër Pi Zero

Ky Instructable do të ecë nëpër procesin për krijimin e një loje me rreze me rreze infra të kuqe duke përdorur një kompjuter server bazë dhe një Raspberry Pi zero për secilin lojtar. Projekti mbështetet shumë në një lidhje Wifi për të komunikuar me serverin, gjë që e bën Pi një kandidat të shkëlqyeshëm.

Serveri i përdorur në këtë projekt ishte një kompjuter desktop i vjetër me Linux. Kompjuteri nuk ka nevojë të jetë diçka e veçantë, dhe ndoshta mund të drejtohet edhe nga një Raspberry Pi 3. Serveri dhe secili prej pi zero duhet të jenë të lidhur me të njëjtin rrjet gjatë lojës.

Hapi 1: Materialet

Materiale
Materiale
Materiale
Materiale

Përshkrimi dhe disa lidhje për materialet e nevojshme janë treguar më poshtë. Lista e materialeve më poshtë është për 3 armë.

  • Kompjuter serveri (1)
  • Raspberry Pi Zero W (3) Adafruit
  • Të paktën 4 GB SD Card (3) Amazon
  • IR transmetues LED (3)
  • Marrës IR (6) Amazon
  • LED i kuq (3)
  • LED blu (3)
  • LED e gjelbër (3)
  • Buzzer pasiv (3) Amazon
  • Butoni i shtypjes (6)
  • Ekran LCD 16x2 me përshtatës I2C (3) Amazon
  • Paketa Portative e Baterive (3) Amazon
  • Mikro në kabllo të rregullt USB (3) Amazon
  • PN2222 Transistor (3)
  • Rezistencë 100Ω (3)
  • Rezistencë 1kΩ (9)

Artikujt opsionalë:

  • Jelek (3) Amazon
  • Zgjatja e kabllit të shiritit (3) Amazon

Në këtë projekt, ne përfunduam duke marrë Transmetuesin IR IR nga një grup i vjetër armësh me lazer që kishin një kon të zi rreth transmetuesit për të ndihmuar në ngushtimin e goditjes së secilës armë. Sidoqoftë, çdo transmetues i përgjithshëm duhet të funksionojë.

Përveç artikujve të listuar më lart, vetë armët lazer u shtypën 3D. Ky projekt do të kërkonte gjithashtu qasje në një printer 3D dhe filament. Në përgjithësi, për tre armë, totali arriti në rreth 350 dollarë.

Hapi 2: Konfigurimi i serverit

Konfigurimi i serverit
Konfigurimi i serverit
Konfigurimi i serverit
Konfigurimi i serverit
Konfigurimi i serverit
Konfigurimi i serverit

Gjëja e parë që nevojitet për konfigurimin e serverit është instalimi i Shërbimit të Ndërmjetësit Mosquitto MQTT. Mosquitto është shërbimi që siguron një kornizë për komunikimin midis secilës prej pajisjeve në lojë. Kjo i lejon serverit të dërgojë mesazhe në secilën nga Pis të lidhur me shërbimin. Në terminal, ekzekutoni komandat e mëposhtme.

përditësim sudo apt-get

sudo apt-get upgrade sudo apt-get install mushkonja -y sudo apt-get install python3-pip -y sudo pip3 install paho-mqtt

Disa nga GUI për serverin u krijuan duke përdorur një projektues GUI të quajtur Pygubu. Kjo mund të instalohet duke ekzekutuar:

pip3 instaloni pygubu

Më shumë informacion mbi pygubu mund të gjenden në

Pasi të instalohen MQTT dhe Pygubu, krijoni një drejtori të re dhe kopjoni skedarët e bashkangjitur. Drejtoria duhet të përfshijë:

  • ltag.py
  • lojën paraprake.py
  • statistikat e lojës.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • shtëpi.png
  • vetë.png
  • armiqtë.png
  • lazer.jpg

Shënim: Imazhet e bashkangjitura të përdorura në këtë projekt nuk janë krijuar nga ekipi i zhvillimit dhe për këtë arsye nuk pretendon autorësinë.

Hapi 3: Konfigurimi i Raspberry Pi

Konfigurimi i Raspberry Pi
Konfigurimi i Raspberry Pi

Ky hap do të duhet të përsëritet në secilën prej Raspberry Pis.

1. Instaloni sistemin operativ

Së pari, filloni me një instalim të ri të Raspbian. Ne do të rekomandonim përdorimin e versionit Lite pasi është më pak që Pi ta trajtojë, por secili version duhet të funksionojë mirë. Shkarkimi mund të gjendet në

2. Instaloni MQTT

Tjetra ne duhet të instalojmë shërbimin e ndërmjetësit MQTT. Ne do të përdorim Mosquitto për këtë. Në terminal, ekzekutoni komandat e mëposhtme.

përditësim sudo apt-get

sudo apt-get upgrade sudo apt-get install mushkonja -y sudo apt-get install python3-pip -y sudo pip3 install paho-mqtt

Mosquitto është shërbimi që siguron një kornizë për komunikimin midis secilës prej pajisjeve në lojë. Kjo i lejon serverit të dërgojë mesazhe për secilin nga Pis të lidhur me shërbimin.

3. Instaloni I2C Tools

Komanda e mëposhtme do të instalojë bibliotekat që përdoren për ekranin LCD.

sudo apt-get install -y python3-smbus i2c-tools

sudo apt -get install rpi.gpio -y

Adresa i2c mund të ketë nevojë të ndryshohet në skedarin lcddriver.py. Adresa mund të gjendet duke futur komandën e mëposhtme.

i2cdetect -y 1

4. Instaloni dhe konfiguroni LIRC

Krijoni një drejtori të re dhe shkarkoni skedarët e bashkangjitur në këtë vendndodhje.

Shumica e shfletuesve të internetit nuk do të shkarkojnë skedarë pa shtesa. Për të shmangur këtë, dy nga skedarët u ngarkuan me shtesa të përkohshme. Të dy "lircrc.deleteExtension" dhe "modules.deleteExtension" në fakt duhet të jenë pa zgjerim dhe skedarët duhet të riemërohen në "lircrc" dhe "module" pasi të jenë shkarkuar me sukses.

Ky hap instalon dhe konfiguron varësitë për paketën Linux Infrared Remote Control (LIRC). Për më shumë informacion shihni udhëzuesin për vendosjen e LIRC në:

Së pari instaloni bibliotekën, pastaj kopjoni skedarët e përfshirë në drejtoritë e tyre përkatëse siç tregohet në komandat më poshtë. Së fundi, rinisni shërbimin lircd.

sudo apt-get install python3-lirc -y

Nga drejtoria e krijuar rishtas ekzekutoni komandat e mëposhtme për të zhvendosur skedarët e konfigurimit në vendet e tyre të sakta.

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

modulet sudo mv /etc /

Pastaj rinisni shërbimin lircd duke ekzekutuar:

sudo /etc/init.d/lircd rinis

Tjetra, redaktoni skedarin /boot/config.txt dhe shtoni rreshtin e mëposhtëm

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

Rinisni pi -në tuaj për të lejuar që ndryshimet të hyjnë në fuqi.

rindiz sudo

5. Aktivizoni I2C dhe modifikoni KLIENTIN për secilin lojtar

Tjetra, ne do të aktivizojmë ndërfaqen I2C. Kjo mund të bëhet duke përdorur

sudo raspi-config

dhe mundësimin e I2C në menunë "opsionet e ndërfaqes".

6. Redakto KLIENTIN E LLOJS dhe LTSERVER

Drejtoria e lojës tani duhet të përfshijë katër skedarët e mbetur.

  • i2c_lib.py
  • lcddriver.py
  • ltsounds.py
  • lojtar.py

Hapi i fundit në konfigurimin e pi është caktimi i secilit pi një numër KLIENTI dhe shtimi i vendndodhjes së serverit. Kjo bëhet duke redaktuar skedarin "player.py" të përfshirë për secilin pi në mënyrë që të gjithë ata të kenë një numër të ndryshëm KLIENTI. Numri i KLIENTIT caktohet në rreshtin 3 të player.py. Caktoni që pi i parë të jetë klient "1", i dyti të jetë "2" dhe i treti të jetë klient "3".

Linja LTSERVER duhet të ndryshohet në adresën IP të serverit. Kjo gjendet duke shtypur 'ifconfig | grep "inet addr" 'në terminalin e kompjuterit server.

Hapi 4: Montimi i armëve

Kuvendi i armëve
Kuvendi i armëve
Kuvendi i armëve
Kuvendi i armëve

Vazhdoni të lidhni secilën prej armëve sipas diagramit të instalimeve elektrike dhe skemës së mësipërme.

Secila prej pajisjeve periferike është e lidhur me kunjat e mëposhtëm GPIO në Pi Zero:

  • Zile: GPIO5
  • Shkaktari: GPIO26
  • Ringarko: GPIO12
  • Transmetues IR: GPIO25
  • Marrësit IR: GPIO18
  • LED i Kuq: GPIO17
  • LED i gjelbër: GPIO27
  • LED i Kaltër: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

Shikoni skemën për më shumë detaje.

Nëse dëshironi, armët lazer mund të printohen 3D duke përdorur skedarët e modelit të hapit të përfshirë. Mbani në mend se dy nga skedarët "front1STL. STL" duhet të printohen.

Hapi 5: Luaj lojë

Lojë Luaj
Lojë Luaj
Lojë Luaj
Lojë Luaj
Lojë Luaj
Lojë Luaj

Loja fillon duke ekzekutuar skedarin "ltag.py" në server. Pasi të bëhet kjo, secili nga lojtarët mund të lidhet me serverin duke ekzekutuar skedarin e tyre përkatës "player.py".

Shënim: Pas lidhjes së paketës së baterisë, mund të duhet deri në një minutë që pi të fillojë.

Mund të jetë gjithashtu e dobishme të shtoni një punë cron që drejton automatikisht skedarin player.py sapo të fillojë pi. Ne e kishim të vështirë ta vinim këtë në punë dhe përfunduam duke shtuar një linjë në skedarin "/etc/rc.local" në secilën nga Pis për të ekzekutuar skedarin "player.py". Kjo lejon që loja të fillojë pa pasur nevojë të SSH në Pi për të ekzekutuar skenarin e lojtarit.

Pasi loja të ketë filluar me lojtarët gati, do të shfaqet një GUI që lejon të konfigurohen disa nga cilësimet e lojës. Loja fillon pasi të shtypet butoni Start.

Pas çdo loje, një GUI përfundimtar do të shfaqet me statistika për lojën e mëparshme duke përfshirë etiketat, përqindjet globale dhe kohëzgjatjen e lojës.

Shënim: Për shkak të kufizimeve në bibliotekat e softuerit, vendndodhjet e etiketave të raportit të saktësisë nuk janë përfaqësuese të etiketave aktuale lazer. Në versionin aktual, imazhi i Raportit të Saktësisë së Lojtarit është thjesht për estetikë me shpresën e një versioni të ardhshëm me zbatimin aktual të vendndodhjes së etiketës.

Hapi 6: Përmirësimet e së ardhmes

Përmirësimet e së ardhmes
Përmirësimet e së ardhmes
Përmirësimet e së ardhmes
Përmirësimet e së ardhmes

Në përgjithësi, projekti ishte një sukses i madh. Gjatë rrugës, ne menduam për disa veçori shtesë që mund të shtohen në një botim të ardhshëm.

  • Dizajn më i fortë i shkasave për armët e printuara 3D
  • Përfundimi i menysë zbritëse GUI për të shfaqur statistikat nga lojërat e kaluara
  • Më shumë marrës me rreze infra të kuqe që mund të ngjiten në jelekët e lojtarëve
  • Mënyra shtesë të lojës që mund të zgjidhen në GUI Pregame
  • Algoritmi më i saktë i vendndodhjes së etiketave në faqen e statistikave të lojtarëve

Recommended: