Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Asenna Raspberry Pi
- Vaihe 2: Elektroniikan asettaminen
- Vaihe 3: Tietokannan suunnittelu
- Vaihe 4: Tilin määrittäminen TTN: ssä
- Vaihe 5: Arduinon asentaminen
- Vaihe 6: Taustaohjelman määrittäminen
- Vaihe 7: Käyttöliittymän asentaminen
- Vaihe 8: Kotelon lisääminen
Video: Tallenna laatikko: 8 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Capture The Box on tiiminrakennuspeli, jota voit pelata naapurustosi ystävien kanssa.
Tavoitteena on kaapata laatikko ja pitää se hallussasi mahdollisimman pitkään, kun taas muut pelaajat yrittävät mennä ja hiipiä sen pois kuistilta tai etupihalta.
Tämä peli käyttää GPS: ää paikantaakseen laatikon ja RFID -tunnisteet pelaajien tunnistamiseksi. Valinnainen LDR voidaan lisätä vastaamaan pistematriisinäytön voimakkuutta alueen valoprosentin kanssa.
Tarvikkeet
Mikro -ohjaimet ja tietokoneet
- Raspberry Pi
- Arduino (Mega) Valitsin Arduino Megan tavallisen Unon sijaan, koska siinä on paljon enemmän nastoja. Tämä on tarpeen, koska käytämme Dragino LoRa -suojaa, joka jättäisi meille liian vähän digitaalisia nastoja UNO: ta käytettäessä. VIHJE: On parasta käyttää aitoa, koska kiinalaiset kloonit eivät aina toimi odotetulla tavalla.
Anturit ja moduulit
- 4 MAX7219 -pistematriisimoduulia Yhdistä DOUT -DIN, CS -CS, CLK -CLK …
- Valosta riippuvainen vastus (10K) + vastus (10K)
- NEO-7M (tai vastaava) GPS-moduuli Käytän Vellemanin VMA430-laitetta
- RC522 RFID -moduuli+ joitain RFID -merkkejä/kortteja
LoRan (langaton tekniikka) käyttämiseen
Dragino Loran kilpi
Valinnaiset anturit ja moduulit
Nestekidenäyttö Raspberry Pi: n IP -osoitteen näyttäminen
Testi -asetusten tekemiseen
Leipälauta ja Dupont-kaapelit (uros-uros)
Valinnainen (kotelo)
- Juotin
- Vanha työkalukotelo
- Materiaalit 3D -tulostukseen
- Jotkut ohuet puulaudat
- Jotkut pultit ja mutterit (jotka mahtuvat Arduinon reikiin). Ruuvien halkaisija on noin 3 mm.
Arvioitu hinta löytyy alla olevasta materiaaliluettelosta (BOM).
Vaihe 1: Asenna Raspberry Pi
Raspberry Pi on projektin sydän.
Se suorittaa etu-, tausta- ja tietokannan. Se vastaa myös kommunikoinnista taustaohjelman ja Arduinon välillä.
Jotta voimme käyttää Raspberry Pi -laitetta, meidän on tehtävä seuraavat toimet:
Osa 1: Asenna Raspbian Raspberry Pi -laitteeseen
Opetusohjelma sen tekemiseen löytyy täältä:
Osa 2: Asenna Raspbian Raspberry Pi -laitteeseen Koti -WiFi: n määrittäminen.
Tämä voidaan tehdä käyttämällä wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Käynnistä Pi uudelleen ja näet IP -osoitteen, kun kirjoitat ifconfig
Osa 3: Asenna verkkopalvelin ja tietokanta
Kun Pi on käynnissä, on parasta vaihtaa salasana. Tämä voidaan tehdä komennolla passwd.
Kun olet valmis, asenna Apache, PHP, MariaDB ja PHPMyAdmin.
Apache, PHP sudo apt install apache2 -y sudo apt install php libapache2 -mod -php -y
MariaDB sudo apt install mariadb-server mariadb-client -y sudo apt install php-mysql -y sudo systemctl käynnistä apache2.service
PHPMyAdminsudo apt asentaa phpmyadmin -y
Älä unohda asettaa suojattua MySQL -salasanaa.
Osa 4: Tarvittavien Python -kirjastojen asentaminen
Taustaohjelmaa varten tarvitsemme joitain kirjastoja. Ne voidaan asentaa pip3 -komennolla.
pip3 asenna mysql-connector-python
pip3 asentaa flask-socketio
pip3 asenna kolvipurkit
pip3 install geventpip3 asenna gevent-websocket
pip3 asenna ttn
Vaihe 2: Elektroniikan asettaminen
Jotta tämä projekti toimisi, meidän on yhdistettävä kaikki elektroniikka.
LoRa -suoja voidaan asentaa helposti paikalleen. Kohdista nastat Arduinon tappeihin.
Muut liitännät on kuvattu Fritzing -kaaviossa. Joka voidaan ladata täältä:
Vaihe 3: Tietokannan suunnittelu
Pelin ja antureiden tietojen tallentamiseksi tein muutaman taulukon:
mittaus ja anturi Anturien mittaukset, jotka löytyvät anturitaulukoista. Se sisältää viittauksen anturiin, mittauksen arvon (esim. coördinaatit: 51.123456; 3.123456) ja valinnaisen pelitunnuksen (jos peli oli aktiivinen mittauksen aikana).
Pelaajan nimet ja RFID -tunnuksen UID. Valinnainen kenttävalvoja lisätään, tämä henkilö voi muokata peliä (esim. Pysäyttää sen ennen aikoja).
pelin tiedot (aloitus- ja päättymisaika).
spel_has_speler Spelin ja spelerin välinen suhde. Tässä pelaajat määrätään peliin.
Tässä taulukossa pisteet tallennetaan. Se sisältää pelin tunnuksen, pelaajan tunnuksen, ajan, jolloin hän varasi laatikon ja ajan, jonka hän menetti (kun joku muu varastaa sen tai kun peli päättyy). Vähentämällä aloitusajan päättymisajasta voit laskea pisteet, jotka hän sai kyseisestä kaappauksesta.
Tietokannan vienti löytyy GitHubista (https://github.com/BoussonKarel/CaptureTheBox)
Avaa sql PHPMyAdmin / MySQL Workbench -ohjelmassa ja suorita se. Tietokanta on nyt tuotava.
Vaihe 4: Tilin määrittäminen TTN: ssä
Vaihe 1: Hanki tili TTN: lle ja luo sovellus
Hanki tili TheThingsNetworkissa ja valitse sitten Konsoli> Lisää sovellus.
Valitse sovelluksellesi nimi ja napsauta Lisää sovellus.
Vaihe 2: Rekisteröi laite
Kun olet tehnyt hakemuksesi, siirry kohtaan Rekisteröi laite.
Valitse laitetunnus, tämä voi olla mitä haluat (niin kauan kuin se on käärmelaukku) ja napsauta Rekisteröidy.
Napsauta Luo -kuvaketta laitteen EUI -kohdassa, niin TTN luo sellaisen sinulle.
Vaihe 3: Kirjoita kirjautumistietosi muistiin
Siirry nyt laitteeseesi ja napsauta Koodi -kuvaketta Laitteen EUI, Sovelluksen EUI ja Sovellusavain vieressä. Sen pitäisi nyt näkyä tavuryhmänä.
Ennen kuin kopioit, napsauta Vaihda -painiketta ja varmista, että Dev EUI ja App EUI ovat LSB FIRST.
Sovellusavaimesi tulee olla MSB ENSIMMÄINEN (älä muuta sitä).
Tarvitset nämä avaimet seuraavassa vaiheessa: Arduinon määrittäminen.
Vaihe 4: Kirjoita Application Acces -avaimesi muistiin
Nyt tarvitsemme vielä yhden avaimen MQTT: n määrittämiseksi Raspberry Pi -laitteeseemme.
Siirry sovellukseesi ja vieritä alas kohtaan Pääsyavaimet.
Tarvitset tätä Backend -vaiheessa.
Vaihe 5: Arduinon asentaminen
Arduino -koodi löytyy myös GitHubistani, Arduinon alta (https://github.com/BoussonKarel/CaptureTheBox)
Tämä koodi on jaettu useisiin välilehtiin, jotta se pysyy järjestyksessä.
Main.ino Pääkoodi: pin -ilmoitukset, setup () ja loop ()
0_LoRa.inoTämä koodi käsittelee viestintää LoRa: n avulla.
Se asettaa LDR-, GPS- ja RFID -tunnisteiden tiedot 13 tavun matriisiin ja lähettää sen TheThingsNetworkille.
1_LDR.inoAnalogRead (): n avulla se mittaa valosta riippuvan vastuksen jännitteen määrän.
Tämä muunnetaan sitten valoprosentiksi (0 ei mitään, 100 on matkapuhelimen taskulamppu).
2_GPS.inoTämä käyttää sarjaliikennettä TX1: n ja RX1: n (Serial1) avulla.
Se käyttää NMEA -viestejä (tarkasti $ GPRMC -viestit) laatikon leveys- ja pituusasteiden löytämiseksi.
3_RFID.inoKäyttämällä MFRC522 -kirjastoa tämä koodi etsii uusia RFID -tunnisteita. Kun niitä on, ne tallennetaan muodossa RFID_lastUID.
4_DotMatrix.inoTätä koodia käytetään alustamaan ja asettamaan pistematriisinäyttö. Se sisältää määritelmät ladattavaan animaatioon jne.
Asentaminen
Ennen kuin voit ladata tämän koodin Arduinollesi, sinun on asennettava muutama kirjasto.
Matthijskooijmanin Arduino-LMIC-kirjasto (https://github.com/matthijskooijman/arduino-lmic)
RFID -lukijan MFRC522 -kirjasto (https://github.com/miguelbalboa/rfid)
Siirry nyt osoitteeseen main.ino ja vaihda DEVEUI-, APPEUI- ja APPKEY -vaihtoehdoiksi viimeisessä vaiheessa kopioimasi.
Vaihe 6: Taustaohjelman määrittäminen
Tämän projektin taustaohjelma löytyy GitHubistani kohdasta RPI> Tausta (https://github.com/BoussonKarel/CaptureTheBox).
Kuinka se toimii?
- Koodi etsii 10 sekunnin välein aktiivista peliä, jos sellainen löytyy, se tallennetaan muuttujaan nimeltä huidigSpel (currentGame)
- Jos tilaksi on määritetty Sarja, Arduinon ja Pi: n välissä käytetään kaapelia. Pi kyselee LDR- ja GPS -arvoja. Arduino vastaa JSON -muodossa. RFID -tunnisteet lähetetään aina, kun ne esitetään.
- Jos tilaksi on asetettu LoRa, luodaan MQTT -asiakas, joka käynnistää takaisinsoiton aina, kun TTN vastaanottaa LoRa -tiedot. Tämä sisältää LDR-, GPS- ja RFID -tietoja.
- Käyttöliittymä voi noutaa tietoja API -päätepisteiden avulla. Suurin osa tiedoista haetaan huidigSpel.id -sovelluksella. Tiedot palautetaan JSON -muodossa käyttämällä jsonify ()
Muuta asetuksia Siirry osoitteeseen secrets.py ja kirjoita LoRa -sovelluksesi nimi ja Acces -avaimesi (kirjoitit aiemmin muistiin).
Siirry osoitteeseen config.py ja täytä tietokantatietosi (kuten salasana, käyttäjä…)
Yritä ajaa app.py, kun olet vahvistanut, että se toimii, voimme käyttää sitä palveluna, joka käynnistää koodin automaattisesti taustalla, kun käynnistät pi.
Voit tehdä tämän kopioimalla ctb_service.service /etc/systemd/system/ctb_service.service. sudo cp ctb_service.service /etc/systemd/system/ctb_service.service
Ota se nyt käyttöön systemctl enable ctb_service.service avulla
Jos joudut tekemään joitain muutoksia koodiin, voit lopettaa sen helposti käyttämällä systemctl stop -toimintoa (tämä käynnistyy uudelleen uudelleenkäynnistyksen yhteydessä) tai poistaa käytöstä (pysäytä sen automaattisen käynnistymisen) käyttämällä systemctl disable -toimintoa.
Jos sinun on tarkasteltava lokeja (virheiden vuoksi), voit käyttää journalctl -u ctb_service.service -palvelua.
Lisätietoja palveluista löytyy täältä:
Vaihe 7: Käyttöliittymän asentaminen
Kuten tavallista, käyttöliittymä löytyy GitHubistani kohdasta RPI> Frontend (https://github.com/BoussonKarel/CaptureTheBox)
Liitä tämä Raspberry Pi -laitteen /var /html -kansioon.
Tämä sisältää kaikki pelille tarvittavat verkkosivut.
Se sisältää myös komentosarjan kommunikoida taustaohjelman kanssa (sekä reaaliajassa että sovellusliittymän päätepisteiden avulla).
Vaihe 8: Kotelon lisääminen
Kotelossa käytin vanhaa työkalukoteloa yhdessä seuraavien materiaalien/tekniikoiden kanssa:
- 3D -tulostus
- Vaahto akun pitämiseksi paikallaan
- Kierrätetyt puulaudat
- Kuuma liima
- Ruuvit ja mutterit
Mitä teet tapauksellesi, on sinun valintasi! Annan sinulle taiteellisen vapauden.
Inspiraationa olen lisännyt valokuvia (valmiista) kotelostani.
Suositeltava:
Tee kauniita piirteitä Live Arduino -datasta (ja tallenna tiedot Exceliin): 3 vaihetta
Luo kauniita piirteitä Live Arduino -datasta (ja tallenna tiedot Exceliin): Me kaikki tykkäämme pelata A … Lotter -toiminnolla Arduino IDE: ssä. pisteitä lisätään, eikä se ole erityisen miellyttävää silmille. Arduino IDE -plotteri ei
Tallenna tietokoneen näyttö Windowsissa: 5 vaihetta
Tallenna tietokoneen näyttö Windowsissa: Tässä ohjeessa haluaisin näyttää sinulle, kuinka voit tallentaa tietokoneen näytön Windows -tietokoneeseen. Näyttölähetys on tuhannen sanan ja kuvan arvoinen osoittamaan ongelman tai prosessin tietokoneella, varsinkin jos haluat tehdä video -opetusohjelman
Tallenna kuvakaappaukset automaattisesti Windowsiin Python -skriptillä: 4 vaihetta
Tallenna kuvakaappaukset automaattisesti Windowsiin Python -skriptillä: Yleensä ikkunoissa kuvakaappauksen (tulostusnäytön) tallentamiseksi meidän on ensin otettava kuvakaappaus ja avattava maali, liitettävä se ja tallennettava sitten lopulta. Nyt opetan sinulle, kuinka tehdä python -ohjelma sen automatisoimiseksi. Tämä ohjelma luo kansion
Tallenna ja kuvaa EC/pH/ORP -tiedot TICK -pinon ja NoCAN -alustan avulla: 8 vaihetta
Tallenna ja kuvaa EC/pH/ORP -tiedot TICK Stack- ja NoCAN -alustalla: Tässä kerrotaan, miten Omzlo- ja uFire -antureiden NoCAN -alustaa käytetään EC: n, pH: n ja ORP: n mittaamiseen. Kuten heidän verkkosivustonsa sanoo, joskus on helpompaa käyttää vain kaapelia anturisolmuihisi. CAN: n etuna on viestintä ja teho yhdessä c
Valvo ja tallenna lämpötila Bluetooth LE: n ja RaspberryPi: n avulla: 9 vaihetta (kuvilla)
Valvo ja tallenna lämpötilaa Bluetooth LE: n ja RaspberryPi: n avulla: Tässä ohjeessa kerrotaan, kuinka kootaan monisolmun lämpötilanseurantajärjestelmä, jossa on Bluetooth LE -anturivika Blue Radiosilta (BLEHome) ja RaspberryPi 3B Bluetooth LE -standardin kehityksen ansiosta nyt helposti saatavilla