Satura rādītājs:
- Piegādes
- 1. darbība: Raspberry Pi iestatīšana
- 2. darbība: elektronikas izvietošana
- 3. darbība. Datu bāzes izveide
- 4. darbība: konta iestatīšana TTN
- 5. darbība: Arduino iestatīšana
- 6. darbība. Fona sistēmas iestatīšana
- 7. darbība: priekšgala uzstādīšana
- 8. darbība: apvalka pievienošana
Video: Uzņemiet lodziņu: 8 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:53
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
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
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?
- 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)
- 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.
- 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.
- 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
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:
Uzņemiet lieliskas fotogrāfijas ar iPhone: 9 soļi (ar attēliem)
Uzņemiet lieliskas fotogrāfijas, izmantojot iPhone: mūsdienās lielākā daļa no mums visur nēsā līdzi viedtālruni, tāpēc ir svarīgi zināt, kā izmantot viedtālruņa kameru, lai uzņemtu lieliskas fotogrāfijas! Man ir bijis viedtālrunis tikai pāris gadus, un man patika, ka man ir pienācīga kamera, lai dokumentētu lietas, kuras es
Kā izveidot ziņojumu lodziņu operētājsistēmā Windows: 4 soļi
Kā izveidot ziņojumu lodziņu operētājsistēmā Windows: Es uzzināju, kā to izdarīt pirms dažiem gadiem, un domāju, ka varētu jums to parādīt. Tas aizņem tikai 5 minūtes, un to ir patiešām jautri darīt
Izgaismojiet attēlu lodziņu: 11 soļi (ar attēliem)
Izgaismojiet attēlu kastīti: Es gribēju padarīt savus draugus par īpašu dāvanu pēc viņu kāzām šogad, un kastīte šķita piemērota. Viņi varēja ievietot atmiņas par savām attiecībām vai kāzām. Viena no viņu kāzu priekšrocībām bija krāsojamā grāmata, kas piepildīta ar zīmējumiem
Kā izveidot ziņojumu lodziņu piezīmjdatorā: 3 soļi
Kā izveidot ziņojumu lodziņu piezīmjdatorā: Sveiki! Es iemācīšu jums izveidot ziņojumu lodziņu. Viss, kas Jums nepieciešams, ir Notepad. Ja jums ir kādi komentāri, droši ievietojiet tos. Vienkārši sāc mācīties un izklaidējies
Kā: izveidot ziņojumu lodziņu, izmantojot VBScript: 5 soļi
Kā: izveidot ziņojumu lodziņu, izmantojot VBScript: šajā " Instructable " Es jums parādīšu, kā izveidot ziņojumu lodziņu piezīmjdatorā, izmantojot VBScript kodēšanu. Lūdzu, ņemiet vērā: šis ir pilnīgi nekaitīgs projekts, un, ja kaut kas notiks nepareizi, es nepalīdzēšu