Satura rādītājs:

Uzņemiet lodziņu: 8 soļi
Uzņemiet lodziņu: 8 soļi

Video: Uzņemiet lodziņu: 8 soļi

Video: Uzņemiet lodziņu: 8 soļi
Video: 🔥ПРОЩЕ ПРОСТОГО! Как связать начинающему ЛЕГКО БЫСТРО ЛЮБОЙ РАЗМЕР красивую нежную КОФТУ ТОП крючком 2024, Jūlijs
Anonim
Uzņemiet kastīti
Uzņemiet kastīti
Uzņemiet kastīti
Uzņemiet kastīti

Capture The Box ir komandas veidošanas spēle, kuru varat spēlēt kopā ar draugiem jūsu apkārtnē.

Mērķis ir sagūstīt kastīti un turēt to savā īpašumā pēc iespējas ilgāk, kamēr citi spēlētāji mēģina iet un aizlavīties to prom no jūsu lieveņa vai priekšējā dārza.

Šī spēle izmanto GPS, lai atrastu lodziņu, un RFID tagus, lai identificētu spēlētājus. Papildu LDR var pievienot, lai saskaņotu punktu matricas displeja intensitāti ar apgabala gaismas procentu.

Piegādes

Mikrokontrolleri un datori

  • Raspberry Pi
  • Arduino (Mega) Es izvēlējos Arduino Mega, nevis parasto Uno, jo tam ir daudz vairāk tapas. Tas ir nepieciešams, jo mēs izmantojam Dragino LoRa vairogu, kas, lietojot UNO, atstātu mums pārāk maz digitālo tapu. PADOMS: Vislabāk ir izmantot oriģinālu, jo ķīniešu kloni ne vienmēr darbojas, kā paredzēts.

Sensori un moduļi

  • 4 MAX7219 punktu matricas moduļiPievienojiet DOUT uz DIN, CS uz CS, CLK uz CLK …
  • No gaismas atkarīgs rezistors (10K) + rezistors (10K)
  • NEO-7M (vai līdzīgs) GPS modulis Es izmantoju Velleman VMA430
  • RC522 RFID modulis+ dažas RFID emblēmas/kartes

LoRa (bezvadu tehnoloģija) izmantošanai

Dragino Lora vairogs

Papildu sensori un moduļi

LCD displejs Lai parādītu Raspberry Pi IP adresi

Testa iestatīšanas veikšanai

Maizes dēlis un Dupont kabeļi (vīrietis-vīrietis)

Pēc izvēles (korpuss)

  • Lodāmurs
  • Vecs instrumentu korpuss
  • Materiāli 3D drukāšanai
  • Daži plāni koka dēļi
  • Dažas skrūves un uzgriežņi (kas var ietilpt Arduino caurumos). Manu skrūvju diametrs ir aptuveni 3 mm.

Aprēķinātā cena atrodama BOM (materiālu sarakstā), kas iekļauta zemāk.

1. darbība: Raspberry Pi iestatīšana

Raspberry Pi ir projekta sirds.

Tas darbinās priekšgalu, aizmuguri un datu bāzi. Tā būs atbildīga arī par saziņu starp aizmuguri un Arduino.

Lai mēs varētu izmantot Raspberry Pi, mums būs jādara šādi:

1. daļa: instalējiet Raspbian uz Raspberry Pi

Pamācību, kā to izdarīt, var atrast šeit:

2. daļa: instalējiet Raspbian ierīcē Raspberry Pi Mājas WiFi iestatīšana.

To var izdarīt, izmantojot wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

Pārstartējiet Pi, un, ierakstot ifconfig, jums vajadzētu redzēt IP adresi

3. daļa: instalējiet tīmekļa serveri un datu bāzi

Kad esat izveidojis Pi un darbojas, vislabāk ir nomainīt paroli. To var izdarīt ar komandu passwd.

Kad tas ir izdarīts, dodieties uz priekšu un instalējiet Apache, PHP, MariaDB un PHPMyAdmin.

Apache, PHP sudo apt instalēt apache2 -y sudo apt instalēt php libapache2 -mod -php -y

MariaDB sudo apt instalēt mariadb-server mariadb-client -y sudo apt instalēt php-mysql -y sudo systemctl restart apache2.service

PHPMyAdminsudo var instalēt phpmyadmin -y

Neaizmirstiet iestatīt drošu MySQL paroli.

4. daļa: Nepieciešamo Python bibliotēku instalēšana

Fonam mums būs vajadzīgas dažas bibliotēkas. Tos var instalēt, izmantojot komandu pip3.

pip3 instalējiet mysql-connector-python

pip3 instalējiet kolbu-ligzdu

pip3 instalēt kolbas

pip3 instalēt geventpip3 instalēt gevent-websocket

pip3 instalēt ttn

2. darbība: elektronikas izvietošana

Elektronikas izkārtojums
Elektronikas izkārtojums
Elektronikas izkārtojums
Elektronikas izkārtojums

Lai šis projekts darbotos, mums ir jāpievieno visa elektronika.

LoRa vairogu var viegli ievietot vietā. Vienkārši izlīdziniet tapas ar Arduino tapām.

Pārējie savienojumi ir aprakstīti manā Fritzing shēmā. Kuru var lejupielādēt šeit:

3. darbība. Datu bāzes izveide

Datu bāzes projektēšana
Datu bāzes projektēšana

Lai varētu saglabāt visus spēles un sensoru datus, es izveidoju dažas tabulas:

mērījumi un sensori Mērījumi no sensoriem, kas atrodami sensoru tabulās. Tajā ir atsauce uz sensoru, mērījuma vērtība (piem., coördinates: 51.123456; 3.123456) un izvēles spēles ID (ja spēle bija aktīva mērīšanas laikā).

Spēlētāju spēlētāju vārdi un viņu RFID emblēmas UID. Tiek pievienots izvēles lauka moderators, šī persona var modificēt spēli (piemēram, apturēt to pirms laika).

spēles informācija (sākuma un beigu laiks).

Spel_has_spelerSaistība starp speli un speleru Šeit spēlētāji tiek piešķirti spēlei.

bezitŠajā tabulā rezultāts tiek saglabāts. Tajā ir spēles ID, spēlētāja ID, laiks, kad viņš nozaga kastīti un laiks, kad viņš to pazaudēja (kad kāds cits to nozog vai kad spēle beidzas). No beigu laika atņemot sākuma laiku, jūs varat aprēķināt rezultātu, ko viņš ieguva no šīs uzņemšanas.

Datubāzes eksportu var atrast manā GitHub (https://github.com/BoussonKarel/CaptureTheBox)

Atveriet SQL failu PHPMyAdmin / MySQL Workbench un palaidiet to. Tagad datu bāze ir jāimportē.

4. darbība: konta iestatīšana TTN

1. darbība: reģistrējieties kontam TTN un izveidojiet lietojumprogrammu

Reģistrējieties kontam vietnē TheThingsNetwork, pēc tam dodieties uz Konsole> Pievienot lietojumprogrammu.

Izvēlieties lietojumprogrammas nosaukumu un noklikšķiniet uz Pievienot lietojumprogrammu.

2. darbība: reģistrējiet ierīci

Kad esat izveidojis pieteikumu, dodieties uz Ierīces reģistrēšana.

Izvēlieties ierīces ID, tas var būt jebkurš (ja vien tas ir čūskas gadījums) un noklikšķiniet uz Reģistrēties.

Zem ierīces EUI noklikšķiniet uz ikonas Ģenerēt, lai TTN ģenerētu vienu jums.

3. darbība. Pierakstiet savus akreditācijas datus

Tagad dodieties uz savu ierīci un noklikšķiniet uz koda ikonas blakus ierīces EUI, lietotnes EUI un lietotnes atslēgai. Tagad tam vajadzētu parādīties kā baitu masīvam.

Pirms kopēšanas noklikšķiniet uz pogas Pārslēgt un pārliecinieties, vai jūsu Dev EUI un lietotne EUI ir LSB FIRST.

Jūsu lietotnes atslēgai vispirms jāpaliek MSB (nemainiet to).

Šīs atslēgas būs nepieciešamas nākamajā darbībā: Arduino iestatīšana.

4. darbība. Pierakstiet lietojumprogrammas piekļuves atslēgu

Tagad mums būs nepieciešama vēl viena atslēga, lai mūsu Raspberry Pi iestatītu MQTT.

Dodieties uz savu lietojumprogrammu un ritiniet uz leju līdz piekļuves taustiņiem.

Tas jums būs nepieciešams aizmugures darbībā.

5. darbība: Arduino iestatīšana

Arduino kodu var atrast arī manā GitHub sadaļā Arduino (https://github.com/BoussonKarel/CaptureTheBox)

Šis kods ir sadalīts vairākās cilnēs, lai tas būtu sakārtots.

Galvenais kods: pin deklarācijas, setup () un loop ()

0_LoRa.inoŠis kods apstrādā saziņu, izmantojot LoRa.

Tas ievieto LDR, GPS un RFID tagu datus 13 baitu masīvā un nosūta to uz TheThingsNetwork.

1_LDR.inoIzmantojot analogRead (), tas mēra sprieguma daudzumu no gaismas atkarīgā rezistora.

Pēc tam tas tiek pārvērsts procentos gaismas (0 nav nekas, 100 ir mobilā tālruņa zibspuldze).

2_GPS.inoTas izmanto seriālo komunikāciju, izmantojot TX1 un RX1 (Serial1).

Tas izmanto NMEA ziņojumus (precīzāk, $ GPRMC ziņojumus), lai atrastu lodziņa platumu un garumu.

Izmantojot MFRC522 bibliotēku, ar šo kodu tiek meklēti jauni RFID tagi. Kad tas ir pieejams, tas tiek saglabāts kā RFID_lastUID.

4_DotMatrix.inoŠis kods tiek izmantots, lai inicializētu un iestatītu punktu matricas displeju. Tajā ir iekraušanas animācijas definīcijas utt.

Tās iestatīšana

Pirms augšupielādēt šo kodu savā Arduino, jums jāinstalē dažas bibliotēkas.

Matthijskooijman bibliotēka Arduino-LMIC (https://github.com/matthijskooijman/arduino-lmic)

RFID lasītāja bibliotēka MFRC522 (https://github.com/miguelbalboa/rfid)

Tagad dodieties uz main.ino un nomainiet DEVEUI, APPEUI un APPKEY uz tiem, kurus nokopējāt pēdējā posmā.

6. darbība. Fona sistēmas iestatīšana

Šī projekta aizmuguri var atrast manā GitHub sadaļā RPI> Backend (https://github.com/BoussonKarel/CaptureTheBox).

Kā tas darbojas?

  1. Ik pēc 10 sekundēm kods meklē aktīvu spēli. Ja tāda tiek atrasta, tā tiek saglabāta mainīgajā, ko sauc par huidigSpel (currentGame)
  2. Ja režīms ir iestatīts uz Serial, tiek izmantots kabelis starp Arduino un Pi. Pi aptaujās nosaka LDR un GPS vērtības. Arduino atbild ar JSON formātu. RFID tagi tiek sūtīti ikreiz, kad tie tiek parādīti. Šis režīms tika izmantots tikai attīstības nolūkos un vairs nav vajadzīgs.
  3. Ja režīms ir iestatīts uz LoRa, tiek izveidots MQTT klients, kas aktivizē atzvanīšanu ikreiz, kad TTN saņem LoRa datus. Tas satur LDR, GPS un RFID datus.
  4. Priekšpuse var izgūt datus, izmantojot API galapunktus. Lielākā daļa datu tiek iegūti, izmantojot huidigSpel.id. Dati tiek atgriezti JSON formātā, izmantojot jsonify ()

Dodieties uz secrets.py un ievadiet savas LoRa lietojumprogrammas nosaukumu un piekļuves atslēgu (jūs pierakstījāt iepriekš).

Dodieties uz config.py un aizpildiet savus datu bāzes akreditācijas datus (piemēram, paroli, lietotāju …)

Mēģiniet palaist app.py, kad esat apstiprinājis, ka tas darbojas, mēs varam to izmantot kā pakalpojumu. Tas automātiski sāks kodu fonā, kad sākat savu pi.

Lai to izdarītu, nokopējiet ctb_service.service uz /etc/systemd/system/ctb_service.service. sudo cp ctb_service.service /etc/systemd/system/ctb_service.service

Tagad iespējojiet to, izmantojot systemctl enable ctb_service.service

Ja jums ir jāveic dažas izmaiņas kodā, varat to viegli apturēt, izmantojot systemctl stop (tas tiks atsākts pēc pārstartēšanas) vai atspējot (apturēt tā automātisku palaišanu), izmantojot systemctl disable.

Ja žurnāli ir jāapmeklē (kļūdu dēļ), varat izmantot journalctl -u ctb_service.service.

Plašāku informāciju par pakalpojumiem var atrast šeit:

7. darbība: priekšgala uzstādīšana

Kā parasti, priekšpusi var atrast manā GitHub sadaļā RPI> Frontend (https://github.com/BoussonKarel/CaptureTheBox)

Ielīmējiet to Raspberry Pi mapē /var /html.

Tajā ir visas spēlei nepieciešamās tīmekļa lapas.

Tajā ir arī skripts saziņai ar aizmuguri (gan reālā laikā, gan izmantojot API galapunktus).

8. darbība: apvalka pievienošana

Korpusa pievienošana
Korpusa pievienošana
Korpusa pievienošana
Korpusa pievienošana

Korpusam es izmantoju vecu instrumentu futrāli kopā ar šādiem materiāliem/metodēm:

  • 3D druka
  • Putas akumulatora noturēšanai vietā
  • Pārstrādāti koka dēļi
  • Karstā līme
  • Skrūves un uzgriežņi

Tas, ko jūs darāt ar savu lietu, ir jūsu izvēle! Es došu jums māksliniecisku brīvību.

Iedvesmai esmu pievienojis dažas fotogrāfijas no manas (pabeigtās) lietas.

Ieteicams: