Orodha ya maudhui:

Arduino Risasi Mchezo V3: 4 Hatua
Arduino Risasi Mchezo V3: 4 Hatua

Video: Arduino Risasi Mchezo V3: 4 Hatua

Video: Arduino Risasi Mchezo V3: 4 Hatua
Video: Мухоморный 🍄Трип Фиксирую на камеру. Очутился между двух миров🌍 Реальным и Мухоморным🙏 2024, Julai
Anonim
Image
Image
Arduino Risasi Mchezo V3
Arduino Risasi Mchezo V3
Arduino Risasi Mchezo V3
Arduino Risasi Mchezo V3
Arduino Risasi Mchezo V3
Arduino Risasi Mchezo V3

Mchezo huu ni kwa ajili yenu ambao mnatumia airsoft au co2 kupiga risasi kwenye malengo. Ni mchezo.

Kwa habari ya kisasa kuhusu mchezo na msaada:

www.facebook.com/arduinoshooting/

Kwa ukurasa wangu wa blogi kuhusu mchezo:

shootinggameblog.wordpress.com

Kwa nambari kuhusu mchezo:

github.com/shootinggame82/Shooting-game-v3

Mchezo wa kupiga risasi ni malengo ya x ambayo hayana waya, kila lengo lina sensa ya kutetemeka ambayo huhisi utetemekaji ambao hupata wakati hit imefanywa. Sensorer zisizo na waya ni chip ya Atmega328 (Arduino Uno chip) na rejesha betri ya Li-Po.

Mdhibiti Mkuu wa mchezo huu unadhibitiwa na Arduino na ni Serial inayodhibitiwa kutoka kwa Raspberry Pi.

Kwa hivyo mchezo huu unafanya kazije? Vizuri ni njia 3 za mchezo:

Muda wa haraka: Cheza raundi za X na upiga risasi haraka sana kwa kila lengo.

Muda wa muda: Piga malengo mengi unayoweza kwa sekunde X.

Moto wa Haraka: Piga risasi X kwa wakati wa haraka zaidi.

Mfumo sisi watumaji NRF24L01 kupata umbali mzuri kutoka kwa mdhibiti mkuu. Wanafanya kazi kwa 2.6 GHz (Sawa na WiFi inaendesha)

Katika miradi yangu ya zamani nimekuwa nikitumia Piezo kwa kutetemeka, lakini sasa swichi ya Sensor ya Vibration inatumiwa. Lakini bado unaweza kutumia Piezo ikiwa umefanya toleo langu la zamani la mchezo huu.

Mchezo una Raspberry Pi 7 skrini ya kugusa ambayo inashikilia mfumo wa wavuti ambao unadhibiti mchezo kupitia. Mchapishaji wa terminal unachapisha matokeo.

Vifaa

Kwa watumaji:

  • X Atmega328 na Arduino Bootloader (Kulingana na malengo ngapi)
  • X Kubadilisha Sensorer ya sensorer
  • X Bluu Iliyoongozwa
  • X Kijani Kilichoongozwa
  • X Nyekundu Iliyoongozwa
  • X 3.7v betri ya Li-Po
  • Moduli ya Chaja ya X FC-75 Li-Po (Au mfano mwingine)
  • X 100 uF Capacitor
  • Kesi za X za sensorer
  • X LD1117V33 (Inafanya salama 3.3 V kusambaza)
  • Moduli za X NRF24L01
  • X x 3 220 Ohm Resistors (3 inahitajika kwa lengo moja)
  • X 16 MHz Kioo
  • X x 2 Wachunguzi wasio na mpango 22 pF (2 inahitajika kwa lengo moja)

Kwa Arduino kuu:

  • 1 Arduino (Nano au Uno inapendekezwa, unahitaji kuwa na USB)
  • Moduli ya 1 NRF24L01
  • 1 10 capacitor

Kwa Pi raspberry:

  • Raspberry Pi (nilitumia 3B)
  • Skrini ya Kugusa ya 7
  • ATXRaspi (Hiari lakini moduli nzuri ya kitufe cha nguvu)
  • RTCRaspi (Hiari lakini moduli nzuri ya RTC kuweka wakati na tarehe)
  • Printa ya muda (Hiari lakini inahitajika kuweza kuchapisha)
  • Skena msimbo wa barcode (Toleo la USB linalofanya kazi kama kibodi, Chaguo)
  • Nguvu nzuri ya 5V (nilitumia USB ya zamani ya 12v na nguvu 2.5 A)

Vitu vingine:

  • Nguvu ya 12v (nina moja saa 12 Ah)
  • Tundu la mtandao (Fanya iwe rahisi kuungana na Mtandao)
  • Nyaya

Hatua ya 1: Sensorer zisizo na waya

Sensorer zisizo na waya
Sensorer zisizo na waya
Sensorer zisizo na waya
Sensorer zisizo na waya
Sensorer zisizo na waya
Sensorer zisizo na waya

Wacha tuanze kutengeneza sensorer. Ninatumia sensorer 4 kwa mchezo huu. Lakini unaweza kuongeza sensorer zaidi. Sensorer ni kuwasiliana na nambari 4 za nambari wakati mfumo kuu unapotuma nambari hiyo na kazi gani sensor iliyo na nambari sahihi itawaka na kuwa tayari kwa lengo. Taa ya samawati ni kufahamisha kuwa ndio lengo ambalo utagonga.

Pia tuna kijani na nyekundu iliyoongozwa. Kijani kila wakati huangaza ili kufahamisha kuwa sensor imewashwa. Nyekundu itawaka tu wakati betri iko chini ya 3.1V (hutumia kazi iliyojengwa kwenye chip kuhesabu ni kiasi gani kilicho kwenye betri.

Sensor ya vibration imeunganishwa na pini ya analog na inasoma thamani yake. Thamani inapozama, sensa ina picha ya kutetemeka na hapo ndipo tunasajili hit.

Lengo lina kazi ya kutofaulu, hiyo ikiwa hautagonga kwa sekunde X (chaguo-msingi ni sekunde 15) au ikiwa usambazaji hauwezi kufanywa ndani watarudi kuanza nafasi.

Sitaelezea jinsi utakavyotumia waya, angalia karatasi ya umeme ili uone jinsi utafanya hivyo. Jambo moja ambalo halimo, ni betri, swichi ya umeme na chaja. Hiyo ni juu yako kuamua jinsi unavyotaka.

MAELEZO KUHUSU NRF24L + Module:

Inaweza kuwa maumivu katika… kuwafanya kuwa thabiti, pamoja na nguvu nzuri na kutengwa karibu nayo, na nambari utawapata wafanye kazi. Kwangu 10 uF capacitor itanipa unganisho thabiti na mzuri, lakini tafadhali jaribu kwanza ikiwa unahitaji kwa mfano 100 capacitor. Pia zifungeni kwa karatasi ya kwanza ya plastiki na kisha karatasi ya Aluminium kuwalinda wasiingiliwe

Pia kwenye nambari, kiwango cha data hauitaji zaidi ya 250 Kb kwa hivyo hiyo haitakuwa shida. Lakini PA: myRadio.setPALevel (RF24_PA_MIN);

Katika nambari niliyoweka kwa MIN (Hii ni wakati wa jaribio), ni ya chini kabisa na haitatumia nguvu nyingi, lakini masafa hayatakuwa marefu sana. Ikiwa una nguvu thabiti na nzuri kwao, unaweza kwenda hadi RF24_PA_MAX kupata urefu mrefu zaidi, LAKINI wanahitaji nguvu thabiti ya GOOOOOD kwa hiyo. Jaribu pia chini na juu (Badilisha maandishi ya MAX tu) ili uone ikiwa unapata mawasiliano mazuri. Pia utapata safu nzuri kwa chini na ya juu isipokuwa utakuwa sniper

Pia weka watumaji angalau mita moja mbali, ili kufunga inaweza kufanya ishara kuwa mbaya

Jaribu mawasiliano na mfano fulani wa ping kwenye Maktaba ya NRF24 (Unganisha kwenye GitHub)

Katika nambari unahitaji kuweka nambari ya kitambulisho ya kipekee kwa lengo hilo:

int targID = 3401; // Hiki ndicho kitambulisho lengwa

sent sendID = 2401; // Hiki ndicho kitambulisho cha majibu

Kuna pia 3 Fafanua kazi:

#fafanua DEBUG

#fafanua BATI

#fafanua ShAKE // IKIWA SHITCHIT switch inatumiwa badala ya PIEZO YA ZAMANI

DEBUG:

Wakati wa mtihani hii ni nzuri kufafanuliwa. Lakini unapowafanya wapatikane, usiifanye iwe imeamilishwa.

BATARI:

Ikiwa hautaki kuwa na kikagua betri kwa malengo, unahitaji kuondoa ufafanuzi huu.

TETESHA:

Ikiwa umeunda toleo langu la zamani, una sensorer za piezo, kisha ondoa hii kupata nambari sahihi kwao.

Chip ya ATMEGA328

Badala ya nano ya Arduino niliamua kutumia chipu ya ATMEGA328 (na Loader loader ya Uno), ni rahisi kupanga tu kuondoa chip kutoka Arduino Uno na kuongeza chip hii na upakie nambari. Angalia mpango wa umeme juu ya jinsi ya kujenga malengo.

Kanuni

Nimeandika nambari na PlatformIO badala ya Arduino IDE. Ni programu bora ya kupanga. Kwa hivyo nambari ni tofauti kidogo. Ninapendekeza kutumia programu hii badala yake.

Sanduku Lilenga & Kusambaza

Ninaambatanisha sensorer na bluu iliyoongozwa kwenye shabaha, na kwa kebo ya phono 3, 5 mm kwenye mita 2 naiunganisha pamoja kwenye sanduku la kusambaza ambalo linashikilia chip ya atmega, chaja ya betri na kijani na nyekundu iliyoongozwa. Hii ni ili kuilinda isigongwe na risasi za chuma.

Hatua ya 2: Mdhibiti wa Mchezo

Mdhibiti wa Mchezo
Mdhibiti wa Mchezo
Mdhibiti wa Mchezo
Mdhibiti wa Mchezo
Mdhibiti wa Mchezo
Mdhibiti wa Mchezo
Mdhibiti wa Mchezo
Mdhibiti wa Mchezo

Jambo la pili tunalohitaji kufanya ni kutengeneza kidhibiti cha sensorer. Ni Arduino inayotumia moduli ya NRF24L01 kuwasiliana na sensorer. Hakuna kingine. Arduino basi imeunganishwa na USB kwenye pi ya raspberry kufanya kazi.

Hivi ndivyo itakavyofanya kazi. Inatumia mfululizo kujua nini cha kufanya. Pi itatuma maagizo ya serial. Kwanza wakati wa usanidi hutuma malengo ngapi umeongeza, na nambari za kitambulisho cha malengo. Halafu itafanya kazi ya kujaribu na kuwajulisha pi rasipiberi ikiwa watawasiliana.

Unapocheza mchezo huo utatuma kutoka pi aina ya mchezo na raundi ngapi / vibao vya kutumia. Hiyo ndio.

Inawezekana kutumia moduli za NRF24L01 kwenye pi ya raspberry, lakini kwangu mimi Arduino ni chaguo bora dhambi ambazo siziwahi kuzitumia katika rasipiberi kwa hivyo sijui ni nzuri vipi hufanya kazi kwa muda mrefu

Kuna moduli ya nguvu inayotumia 5 v kutengeneza nguvu thabiti kwa watumaji. Unaweza kuzitumia na wewe Arduino (Tazama picha) jina ni Bodi ya Moduli ya Seti ya Soketi

Wakati wewe kucheza malengo itakuwa nasibu ulioamilishwa moja kwa moja. Wakati mmoja anapigwa, mwingine ataamilishwa.

Wakati wa jaribio unaweza kuwa na #Fafanua DEBUG imeamilishwa ili uone jinsi inavyofanya kazi, lakini sio wakati unatumia kwenye kompyuta ya pi, haitafanya kazi wakati huo.

Pakua nambari kwenye ukurasa wa GitHub.

Hatua ya 3: Raspberry Pi

Pi ya Raspberry
Pi ya Raspberry
Pi ya Raspberry
Pi ya Raspberry
Pi ya Raspberry
Pi ya Raspberry
Pi ya Raspberry
Pi ya Raspberry

Sasa tumekuja kwenye Raspberry Pi.

Nimeongeza kazi zingine za ziada ili niweze kuwa na kitufe cha nguvu. ATXRaspi 3 ni moduli nzuri, unaweza kuwasha, kuzima na kuwasha tena pi na kitufe. Pia RTCRaspi kuweka muda na tarehe kwenye pi. Pia imewezesha kuziba tu kebo ya mtandao ikiwa nitahitaji kufanya sasisho kwenye mfumo. Utawapata kwenye Lowpowerlab

Printa ya joto utapata kwenye sparkfun na msomaji wa barcode inapatikana kwenye amazon.

Kompyuta ya Pi inaendesha katika hali ya kioski kwa hivyo kivinjari kitafunguka mwanzoni. Kwanza kabisa unahitaji kuwa na seva ya wavuti na PHP 7 na mysql kwenye kompyuta ya pi. (Kuna miongozo mingi kuzunguka wavuti kwa hii)

TAFADHALI KUMBUKA: ikiwa utatumia printa ya mafuta na pi ya rasipberry iliyojengwa katika bluetooth unahitaji kuizima hiyo kwanza

Hati ya chatu inahitaji pyserial na unayoiweka: Sudo apt-get install python-serial

Ili kufanya kazi ya mysql iwe ifuatayo:

Sudo apt-get kufunga mysql-python sudo apt-kupata kufunga python-mysql.connector

suso apt-get kufunga pymysql

Sasa unaweza kudhibiti wewe Arduino kupitia serial na pia sasisha hifadhidata ya mysql.

Hatua inayofuata ni kutengeneza hati ya python kuungana na mysql.

Katika hati zote tatu za chatu badilisha unganisho kwa hifadhidata yako ya mysql.

Hatua inayofuata ni kufanya hati ya chatu ianze.

Kuna aina tatu za chatu script.game.py ndiyo inayojulikana zaidi kuliko zote, kwamba mtu anashikilia mchezo kazi.print.py hii inahitajika tu ikiwa utatumia printa ya muda kuchapisha.ean.py inahitajika tu ikiwa wewe ni kwenda kutumia skana msimbo.

Ili kuzifanya zianzishe nitahariri:

Sudo nano /etc/rc.local

na ongeza zifuatazo chini kabla ya kutoka 0:

Sudo python / home /pi/Gamefiles/game.py & sudo python / nyumba / ppi / Picha / faili / alama

Tafadhali badilika ili kurekebisha mahali pa hati yako ya chatu na usisahau & ishara mwisho

Sasa tunahitaji kutengeneza hali ya kioski kwa kivinjari cha wavuti, ondoa kwanza mshale:

Sudo apt-get kufunga unclutter

sudo nano / nk / xdg / lxsession / LXDE-pi / autostart

sasa katika faili hiyo pata na utoe maoni:

@xscreensaver -no-splash # toa maoni kwenye mstari huu ili uzima skrini

Chini ya hiyo ongeza:

@xset s off @xset -dpms @xset s noblank @ chromium-browser --noerrdialogs --force-kifaa-wadogo-factor = 1.25 --kiosk https:// localhost

Hatua inayofuata ya kuondoa maandishi yote ya buti na vitu pia ongeza skrini yako ya boot hapa ni mwongozo wa haraka:

Sudo nano / boot/config.txt na chini adddisable_splash = 1

Ondoa ujumbe wa maandishi chini ya picha ya Splash:

sudo nano /usr/share/plymouth/themes/pix/pix.script

Tafuta na uondoe (au utoe maoni):

message_sprite = Sprite (); message_sprite. SetPosition (screen_width * 0.1, screen_height * 0.9, 10000);

na:

my_image = Image. Text (maandishi, 1, 1, 1);

Sasa tunaondoa ujumbe wa boot:

Sudo nano / boot/cmdline.txt

badilisha "console = tty1" na "console = tty3"

na mwisho wa mstari ongeza:

piga kimya plymouth.ignore-serial-consoles logo.nologo vt.global_cursor_default = 0

Na kubadilisha nafasi ya pi na yako mwenyewe:

sudo cp ~ / my_splash-p.webp" />

Sasa unayo skrini yako ya boot ya kawaida kwenye mchezo wako. Kompyuta yako ya pi iko tayari kushughulikia mchezo huo. Kwa hiyo kwa hatua inayofuata!

Hatua ya 4: Sanidi Mchezo

Kwa wakati huu sasa umeunda mchezo.

Kwanza unahitaji kufanya ni kusanidi mfumo wa wavuti. Pakia hifadhidata kwenye seva yako ya mysql. Faili iko kwenye folda inayojumuisha na jina la database.sql

Hatua inayofuata ni kuhariri faili ya usanidi, unaipata katika jina la folda ya kusanidi.phpBadilisha habari ya kuingia kwenye hifadhidata ili hati ifanye kazi.

Mfumo wa wavuti una lugha nyingi na umeandikwa kwa Kiingereza. Kuna tafsiri ya Kiswidi inayopatikana Ili kufanya lugha zaidi unahitaji programu iitwayo Poedit.

Ili kuongeza lugha zaidi kwenye mfumo wa wavuti unahitaji kuhariri i18n_setup.php na kuongeza kwenye safu:

kurudi in_array ($ locale, ['en_US', 'sv_SE']); (Mstari wa 23)

Pia kubadilisha lugha chaguomsingi unahitaji kubadilisha katika mstari wa 27: $ lang = 'en_US'; badilisha en_US iwe lugha yako.

faili za lugha lazima ziwekwe katika eneo / LANGCODE / LC_MESSAGES / na kutajwa main.mo (Badilisha lugha ya lugha yako)

kubadilisha kibodi katika faili selectplayers.php unabadilisha lugha: "sw", // sw kwa sv ya swahili kwa mpangilio wa swedish: 'qwerty', // qwerty kwa english swedish-qwerty ya swedish

Unawapata kwenye laini 218 & 219

Lugha zilizopo ziko kwenye folda: mali / js / kibodi / lugha na mipangilio iko katika mali / js / kibodi / mipangilio na ongeza faili sahihi kwenye mstari wa 118 na 119 (badilisha ile unayoipata hapo sasa)

Ongeza malengo

Ili kuongeza malengo nenda kwa localhost / admin / na ubonyeze kwenye kuongeza malengo.

Unahitaji kuongeza jina la lengo na kitambulisho cha kipekee cha lengo na tuma kitambulisho, ongeza malengo mengi ambayo unayo.

Ongeza michezo

Unahitaji pia kuongeza michezo. Nenda kwa localhost / admin / na ubonyeze kwenye mchezo wa kuongeza

Unahitaji kuongeza jina la mchezo, maelezo, min na wachezaji wa kiwango cha juu ni mchezo wa aina gani, pia mchezo ni ngumu kiasi gani kati ya 1 hadi 5. Na jinsi mchezo ulivyo, kwa hivyo kwa mchezo wa moto unaongeza vibao ngapi (mfano 30) kwa kuchora haraka ni raundi ngapi (kwa mfano 8) na kwa muda gani watacheza (kwa mfano 60 kwa dakika moja)

Anza mchezo

Unapoimarisha mchezo huo utafanya upimaji wa lengo. Kwa hivyo malengo yanahitajika kuwapo kabla ya kuanza mfumo kuu. Ikiwa wote watafaulu mtihani unaweza kutumia mfumo, lakini ikiwa hawataweza kutumia. Itajaribu kuwasiliana hadi wapate majibu.

Bahati njema

Kweli hiyo ni juu yake, kwa msaada na maelezo juu ya sasisho kwenye nambari tafadhali fuata ukurasa wangu wa Facebook kwa mchezo huu, ili niweze kukupa majibu haraka. Utapata viungo hapo juu hapa.

Ilipendekeza: