Kamata Sanduku: Hatua 8
Kamata Sanduku: Hatua 8
Anonim
Nasa Sanduku
Nasa Sanduku
Nasa Sanduku
Nasa Sanduku

Kamata Sanduku ni mchezo wa kuchora ambao unaweza kucheza na marafiki katika eneo lako.

Lengo ni kukamata sanduku na kuiweka mikononi mwako kwa muda mrefu iwezekanavyo wakati wachezaji wengine wanajaribu kwenda kuizunguka mbali na ukumbi wako au bustani ya mbele.

Mchezo huu hutumia GPS kupata sanduku na vitambulisho vya RFID kutambua wachezaji. LDR hiari inaweza kuongezwa ili kufanana na ukubwa wa onyesho la tumbo la nukta na asilimia ya mwangaza katika eneo hilo.

Vifaa

Wadhibiti umeme na kompyuta

  • Pi ya Raspberry
  • Arduino (Mega) Nilichagua Mega ya Arduino juu ya Uno ya kawaida, kwa sababu ina pini nyingi zaidi. Hii ni muhimu kwa sababu tunatumia ngao ya Dragino LoRa, ambayo inaweza kutuacha na pini ndogo sana za dijiti tunapotumia UNO. Kidokezo: Ni bora kutumia ya kweli, kwa sababu miamba ya Wachina haifanyi kazi kila wakati kama inavyotarajiwa.

Sensorer na moduli

  • 4 MAX7219 Moduli za Matrix ya Nukta Unganisha DOUT kwa DIN, CS hadi CS, CLK hadi CLK…
  • Kizuizi kinachotegemea Mwanga (10K) + Resistor (10K)
  • NEO-7M (au sawa) Moduli ya GPSNinatumia VMA430 kutoka Velleman
  • Moduli ya RC522 RFID + beji / kadi zingine za RFID

Kwa kutumia LoRa (teknolojia isiyo na waya)

Ngao ya Dragino Lora

Sensorer na moduli za hiari

Onyesho la LCD Ili kuonyesha anwani ya IP ya Raspberry Pi

Kwa kutengeneza usanidi wa jaribio

Kebo ya mkate na nyaya za Dupont (Mwanaume-Mwanaume

Hiari (kabati)

  • Chuma cha kulehemu
  • Kesi ya zamani ya zana
  • Vifaa vya uchapishaji wa 3D
  • Baadhi ya mbao nyembamba za mbao
  • Baadhi ya bolts na karanga (ambazo zinaweza kutoshea kwenye mashimo ya Arduino). Vilabu vyangu vina kipenyo cha karibu 3mm.

Bei inayokadiriwa inaweza kupatikana katika BOM (Muswada wa Vifaa), iliyojumuishwa hapa chini.

Hatua ya 1: Kuweka Raspberry Pi

Raspberry Pi ni moyo wa Mradi.

Itaendesha mbele, backend na hifadhidata. Pia itakuwa na jukumu la mawasiliano kati ya backend na Arduino.

Ili tuweze kutumia Raspberry Pi, tutahitaji kufanya yafuatayo:

Sehemu ya 1: Sakinisha Raspbian kwenye Pi ya Raspberry

Mafunzo ya jinsi ya kufanya hivyo yanaweza kupatikana hapa:

Sehemu ya 2: Sakinisha Raspbian kwenye Raspberry PiKuweka WiFi yako ya nyumbani.

Hii inaweza kufanywa kwa kutumia wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

Anzisha tena Pi na unapaswa kuona anwani ya IP wakati unapoandika ifconfig

Sehemu ya 3: Sakinisha seva ya wavuti na hifadhidata

Mara tu unapokuwa na Pi yako na inafanya kazi, ni bora kubadilisha nenosiri lako. Hii inaweza kufanywa na kupitisha amri.

Mara baada ya kumaliza, endelea kusanikisha Apache, PHP, MariaDB na PHPMyAdmin.

Apache, PHP sudo inaweza kufunga apache2 -y sudo apt kufunga php libapache2-mod-php -y

MariaDB sudo apt kufunga mariadb-server mariadb-mteja -i sudo apt kufunga php-mysql -y sudo systemctl kuanzisha apache2.service

PHPMyAdmins sudo apt kufunga phpmyadmin -y

Usisahau kuweka nenosiri salama la MySQL.

Sehemu ya 4: Kufunga maktaba muhimu za chatu

Kwa backend, tutahitaji maktaba kadhaa. Hizi zinaweza kusanikishwa kwa kutumia amri ya pip3.

pip3 sakinisha mysql-kontakt-chatu

pip3 kufunga chupa-socketio

pip3 kufunga chupa-cors

pip3 kufunga geventpip3 kufunga gevent-websocket

pip3 kufunga ttn

Hatua ya 2: Kuweka Elektroniki

Kuweka Elektroniki
Kuweka Elektroniki
Kuweka Elektroniki
Kuweka Elektroniki

Ili kufanikisha Mradi huu, tunahitaji kuunganisha umeme wote.

Ngao ya LoRa inaweza kuwekwa kwa urahisi. Pangilia tu pini na pini kwenye Arduino yako.

Viunganisho vingine vimeelezewa katika mpango wangu wa Fritzing. Ambayo inaweza kupakuliwa hapa:

Hatua ya 3: Kubuni Hifadhidata

Kubuni Hifadhidata
Kubuni Hifadhidata

Ili kuweza kuhifadhi data zote za mchezo na sensorer, nilitengeneza meza kadhaa:

upimaji na sensorer Vipimo kutoka kwa sensorer, vilivyopatikana kwenye meza za sensorer. Ina rejea ya sensa, thamani ya kipimo (kwa mfano coördinates: 51.123456; 3.123456) na id ya mchezo wa hiari (ikiwa mchezo ulikuwa ukifanya kazi wakati wa kipimo).

speler Majina ya mchezaji na UID ya beji yao ya RFID. Msimamizi wa uwanja wa hiari ameongezwa, mtu huyu anaweza kurekebisha mchezo (kwa mfano kuusimamisha kabla ya wakati).

habari ya mchezo (mwanzo na wakati wa mwisho).

spel_has_speler Uhusiano kati ya spel na speler. Hapa ndipo wachezaji wanapewa mchezo.

Katika jedwali hili, alama imehifadhiwa. Inayo kitambulisho cha mchezo, kitambulisho cha mchezaji, wakati aliiba sanduku na wakati aliopoteza (wakati mtu mwingine anaiba au mchezo unapoisha). Kwa kutoa wakati wa kuanza kutoka wakati wa mwisho, unaweza kuhesabu alama aliyopata kutoka kwa kukamata.

Uuzaji nje wa hifadhidata unaweza kupatikana kwenye GitHub yangu (https://github.com/BoussonKarel/CaptureTheBox)

Fungua sql katika PHPMyAdmin / MySQL Workbench na uiendeshe. Hifadhidata inapaswa sasa kuingizwa.

Hatua ya 4: Kuanzisha Akaunti kwenye TTN

Hatua ya 1: Jisajili kwa akaunti kwenye TTN na uunda programu

Jisajili kwa akaunti kwenye TheThingsNetwork, kisha nenda kwenye Dashibodi> Ongeza programu.

Chagua jina la programu yako na ubonyeze Ongeza programu.

Hatua ya 2: Sajili kifaa

Unapotuma maombi yako, nenda kwenye Kusajili kifaa.

Chagua kitambulisho cha kifaa, hii inaweza kuwa chochote unachotaka (maadamu ni kesi ya nyoka) na bonyeza Usajili.

Bonyeza kwenye Tengeneza ikoni chini ya Kifaa EUI, kwa hivyo TTN itazalisha moja kwako.

Hatua ya 3: Kuandika hati zako

Sasa nenda kwenye Kifaa chako na ubonyeze ikoni ya Msimbo karibu na Kifaa EUI, App EUI na ufunguo wa App. Sasa inapaswa kuonekana kama safu ya ka.

Kabla ya kunakili, bonyeza kitufe cha Badilisha na uhakikishe Dev EUI yako na App EUI ni LSB KWANZA.

Ufunguo wako wa Programu unapaswa kukaa MSB KWANZA (usibadilishe hiyo).

Utahitaji funguo hizi katika hatua inayofuata: Kuanzisha Arduino.

Hatua ya 4: Kuandika kitufe cha Acces ya Maombi

Sasa tutahitaji ufunguo mmoja zaidi wa kuanzisha MQTT kwenye Raspberry Pi yetu.

Nenda kwenye Maombi yako na utembeze chini kwa Funguo za Acces.

Utahitaji hii katika hatua ya Backend.

Hatua ya 5: Kuanzisha Arduino

Nambari ya Arduino pia inaweza kupatikana kwenye GitHub yangu, chini ya Arduino (https://github.com/BoussonKarel/CaptureTheBox)

Nambari hii imegawanywa katika tabo nyingi, ili iweze kupangwa.

Nambari kuu: maazimio ya pini, usanidi () na kitanzi ()

Nambari hii inashughulikia mawasiliano kwa kutumia LoRa.

Inaweka data ya lebo za LDR, GPS na RFID katika safu ya ka 13 na hutuma hii kwa TheThingsNetwork.

Kutumia AnalogSoma (), inapima kiwango cha voltage juu ya Kizuizi Kitegemezi cha Nuru.

Hii hubadilishwa kuwa asilimia ya mwangaza (0 bila kuwa kitu, 100 ikiwa tochi ya rununu).

2_GPS.inoHii hutumia mawasiliano ya serial kutumia TX1 na RX1 (Serial1).

Inatumia ujumbe wa NMEA (ujumbe wa $ GPRMC kuwa sahihi) kupata latitudo na longitudo la sanduku.

Kutumia maktaba ya MFRC522, nambari hii inakagua vitambulisho vipya vya RFID. Kila mtu anapokuwepo, huhifadhi kama RFID_lastUID.

4_DotMatrix.inoNambari hii inatumiwa kuanzisha na kuweka onyesho la alama ya nukta. Ina ufafanuzi wa uhuishaji wa upakiaji n.k …

Kuianzisha

Kabla ya kupakia nambari hii kwa Arduino yako, utahitaji kusanikisha maktaba kadhaa.

Maktaba ya Arduino-LMIC na matthijskooijman (https://github.com/matthijskooijman/arduino-lmic)

Maktaba ya MFRC522 ya msomaji wa RFID (https://github.com/miguelbalboa/rfid)

Sasa nenda kwa main.ino na ubadilishe DEVEUI, APPEUI na APPKEY kuwa zile ulizoiga nakala ya mwisho.

Hatua ya 6: Kuweka Mpangilio wa Nyuma

Backend ya Mradi huu inaweza kupatikana kwenye GitHub yangu, chini ya RPI> Backend (https://github.com/BoussonKarel/CaptureTheBox).

Inafanyaje kazi?

  1. Kila sekunde 10, nambari hiyo inatafuta mchezo wa kufanya kazi. Kama moja inapatikana, imehifadhiwa katika anuwai inayoitwa huidigSpel (currentGame)
  2. Ikiwa hali imewekwa kwa Serial, kebo hutumiwa kati ya Arduino na Pi. Kura za Pi za maadili ya LDR na GPS. Arduino hujibu na fomati ya JSON. Lebo za RFID zinatumwa kila zinapowasilishwa. Njia hii ilitumika tu kwa madhumuni ya maendeleo na sio lazima tena.
  3. Ikiwa hali imewekwa kwa LoRa, mteja wa MQTT ameundwa ambayo husababisha upigaji simu wakati wowote data ya LoRa inapokelewa na TTN. Hii ina data ya LDR, GPS na RFID.
  4. Mbele inaweza kupata data kwa kutumia mwisho wa API. Takwimu nyingi zinapatikana kwa kutumia huidigSpel.id. Data inarejeshwa kwa muundo wa JSON ukitumia jsonify ()

Rekebisha mipangilioNenda kwa siri.py na ujaze jina la programu yako ya LoRa na Ufunguo wako wa Acces (uliandika hapo awali).

Nenda kwa config.py na ujaze hati zako za Hifadhidata (kama nywila, mtumiaji…)

Kuiweka kama huduma Jaribu kutumia app.py, mara tu utakapothibitisha kuwa hii inafanya kazi, tunaweza kuitumia kama huduma. Hii itaanza nambari moja kwa moja nyuma wakati utakapowasha pi yako.

Ili kufanya nakala hii ctb_service.service kwa /etc/systemd/system/ctb_service.service. sudo cp ctb_service.service /etc/systemd/system/ctb_service.service

Sasa iwezesha kwa kutumia systemctl kuwezesha ctb_service.service

Ikiwa unahitaji kufanya mabadiliko kwenye nambari, unaweza kuizuia kwa urahisi ukitumia systemctl stop (hii itaanza tena wakati wa kuwasha tena) au afya ni (iizime kuanzia moja kwa moja) kwa kutumia systemctl Disable.

Ikiwa unahitaji kushauriana na magogo (kwa sababu ya makosa), unaweza kutumia journalctl -u ctb_service.service.

Maelezo zaidi juu ya huduma yanaweza kupatikana hapa: https://www.raspberrypi.org/documentation/linux/us..

Hatua ya 7: Kuweka Mbele

Kama kawaida, mbele inaweza kupatikana kwenye GitHub yangu, chini ya RPI> Frontend (https://github.com/BoussonKarel/CaptureTheBox)

Bandika hii kwenye folda / var / html ya Raspberry Pi yako.

Hii ina kurasa zote muhimu za wavuti za mchezo.

Inayo pia hati ya kuwasiliana na backend (wakati wote wa wakati na kutumia viboreshaji vya API).

Hatua ya 8: Kuongeza Casing

Inaongeza Kitambaa
Inaongeza Kitambaa
Inaongeza Kitambaa
Inaongeza Kitambaa

Kwa kesi hiyo, nilitumia kesi ya zamani ya zana, pamoja na vifaa / mbinu zifuatazo:

  • Uchapishaji wa 3D
  • Povu kwa kuweka betri mahali
  • Mbao zilizosindikwa za mbao
  • Gundi ya moto
  • Screws na karanga

Unachofanya na kesi yako ni chaguo lako! Nitakupa uhuru wa kisanii.

Kwa msukumo, nimeongeza picha kadhaa za kesi yangu (iliyomalizika).

Ilipendekeza: