Obsah:
- Zásoby
- Krok 1: Nastavení Raspberry Pi
- Krok 2: Rozložení elektroniky
- Krok 3: Návrh databáze
- Krok 4: Nastavení účtu na TTN
- Krok 5: Nastavení Arduina
- Krok 6: Nastavení backendu
- Krok 7: Nastavení frontendu
- Krok 8: Přidání pouzdra
Video: Capture the Box: 8 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
Capture The Box je teambuildingová hra, kterou můžete hrát s přáteli ve svém okolí.
Cílem je zajmout krabici a udržet ji ve svém vlastnictví co nejdéle, zatímco ostatní hráči se ji pokusí dostat pryč z vaší verandy nebo předzahrádky.
Tato hra využívá GPS k vyhledání boxu a RFID tagy k identifikaci hráčů. Může být přidán volitelný LDR, který odpovídá intenzitě jehličkového displeje s procentem světla v oblasti.
Zásoby
Mikrokontroléry a počítače
- Raspberry Pi
- Arduino (Mega) Vybral jsem si Arduino Mega než normální Uno, protože má mnohem více pinů. Je to nutné, protože používáme štít Dragino LoRa, který by nám při použití UNO ponechal příliš málo digitálních pinů. TIP: Nejlepší je použít skutečný, protože čínské klony nefungují vždy podle očekávání.
Senzory a moduly
- 4 moduly MAX7219 Dot Matrix Připojte DOUT na DIN, CS na CS, CLK na CLK…
- Odpor závislý na světle (10K) + odpor (10K)
- GPS modul NEO-7M (nebo podobný) Používám VMA430 od Vellemana
- RC522 RFID modul+ nějaké RFID odznaky/karty
Pro použití LoRa (bezdrátová technologie)
Štít Dragino Lora
Volitelné senzory a moduly
LCD displej Pro zobrazení IP adresy Raspberry Pi
Pro nastavení testu
Prkénko a Dupont kabely (Male-Male
Volitelné (pouzdro)
- Páječka
- Starý kufřík na nářadí
- Materiály pro 3D tisk
- Nějaká tenká dřevěná prkna
- Některé šrouby a matice (které se vejdou do otvorů Arduino). Moje šrouby mají průměr kolem 3 mm.
Odhadovanou cenu najdete v kusovníku (kusovníku), který je součástí níže.
Krok 1: Nastavení Raspberry Pi
Raspberry Pi je srdcem projektu.
Spustí frontend, backend a databázi. Bude také zodpovědný za komunikaci mezi backendem a Arduinem.
Abychom mohli používat Raspberry Pi, budeme muset udělat následující:
Část 1: Nainstalujte si Raspbian na Raspberry Pi
Návod, jak na to, najdete zde:
Část 2: Nainstalujte si Raspbian na Raspberry Pi Nastavení domácí WiFi.
To lze provést pomocí wpa_passphrase „YourNetwork“„YourSSID“>> /etc/wpa_supplicant/wpa_supplicant.conf
Restartujte Pi a při zadávání ifconfig byste měli vidět IP adresu
Část 3: Nainstalujte si webový server a databázi
Jakmile máte Pi v provozu, je nejlepší změnit heslo. To lze provést pomocí příkazu passwd.
Jakmile to bude hotovo, pokračujte a nainstalujte Apache, PHP, MariaDB a 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 restart apache2.service
PHPMyAdminsudo vhodná instalace phpmyadmin -y
Nezapomeňte nastavit zabezpečené heslo pro MySQL.
Část 4: Instalace nezbytných knihoven Pythonu
Pro backend budeme potřebovat nějaké knihovny. Ty lze nainstalovat pomocí příkazu pip3.
pip3 nainstalujte mysql-connector-python
pip3 install flask-socketio
pip3 nainstalujte flask-cors
pip3 install geventpip3 install gevent-websocket
pip3 install ttn
Krok 2: Rozložení elektroniky
Aby tento projekt fungoval, musíme připojit veškerou elektroniku.
Štít LoRa lze snadno nasadit na místo. Stačí zarovnat kolíky s kolíky na vašem Arduinu.
Ostatní připojení jsou popsána v mém Fritzingově schématu. Které lze stáhnout zde:
Krok 3: Návrh databáze
Aby bylo možné ukládat všechna data ze hry a senzorů, vytvořil jsem několik tabulek:
měření a senzor Měření ze senzorů, která se nacházejí v tabulkách senzorů. Obsahuje odkaz na senzor, hodnotu měření (např. coördinates: 51.123456; 3.123456) a volitelné ID hry (pokud byla během měření aktivní hra).
speler Jména hráčů a UID jejich odznaku RFID. Je přidán volitelný moderátor pole, tato osoba může hru upravit (např. Ji včas zastavit).
spel Informace o hře (začátek a konec).
spel_has_speler Vztah mezi spel a speler. Zde jsou hráči přiřazeni ke hře.
bezitV této tabulce je skóre uloženo. Obsahuje ID hry, ID hráče, čas, kdy krabici ukradl a čas, kdy ji ztratil (když ji někdo jiný ukradne nebo když hra skončí). Odečtením času začátku od času konce můžete vypočítat skóre, které z tohoto zajetí získal.
Export databáze lze nalézt na mém GitHubu (https://github.com/BoussonKarel/CaptureTheBox)
Otevřete sql v PHPMyAdmin / MySQL Workbench a spusťte jej. Nyní by měla být importována databáze.
Krok 4: Nastavení účtu na TTN
Krok 1: Zaregistrujte si účet na TTN a vytvořte aplikaci
Zaregistrujte si účet na webu TheThingsNetwork a poté přejděte do části Konzola> Přidat aplikaci.
Vyberte název aplikace a klikněte na Přidat aplikaci.
Krok 2: Zaregistrujte zařízení
Až vytvoříte přihlášku, přejděte na Zaregistrovat zařízení.
Vyberte ID zařízení, může to být cokoli chcete (pokud jde o hadí případ) a klikněte na Registrovat.
Klikněte na ikonu Generovat v části Device EUI, takže TTN vám ji vygeneruje.
Krok 3: Zapište si přihlašovací údaje
Nyní přejděte do svého zařízení a klikněte na ikonu Kód vedle Device EUI, App EUI a App key. Nyní by se měl zobrazit jako pole bajtů.
Před kopírováním klikněte na tlačítko Přepnout a ujistěte se, že vaše Dev EUI a App EUI jsou LSB FIRST.
Váš klíč aplikace by měl zůstat MSB FIRST (neměňte to).
Tyto klíče budete potřebovat v dalším kroku: Nastavení Arduina.
Krok 4: Zapište si klíč pro přístup k aplikaci
Nyní budeme potřebovat ještě jeden klíč k nastavení MQTT na našem Raspberry Pi.
Přejděte do své aplikace a přejděte dolů na Acces Keys.
Budete to potřebovat v kroku Backend.
Krok 5: Nastavení Arduina
Kód Arduino najdete také na mém GitHubu pod Arduino (https://github.com/BoussonKarel/CaptureTheBox)
Tento kód je rozdělen do několika karet, aby byl organizovaný.
main.ino Hlavní kód: deklarace pinů, setup () a loop ()
0_LoRa.ino Tento kód zpracovává komunikaci pomocí LoRa.
Vloží data značek LDR, GPS a RFID do 13 bajtů a odešle je do TheThingsNetwork.
1_LDR.ino Pomocí analogRead () měří množství napětí přes odpor závislý na světle.
Toto je pak převedeno na procento světla (0 je nic, 100 je baterka pro mobilní telefon).
2_GPS.ino Toto používá sériovou komunikaci pomocí TX1 a RX1 (Serial1).
K nalezení zeměpisné šířky a délky pole používá zprávy NMEA (přesněji zprávy $ GPRMC).
3_RFID.ino Pomocí knihovny MFRC522 tento kód vyhledává nové tagy RFID. Kdykoli je přítomen, ukládá se jako RFID_lastUID.
4_DotMatrix.ino Tento kód slouží k inicializaci a nastavení zobrazení jehličkové matice. Obsahuje definice pro načítání animace atd …
Nastavení
Než budete moci nahrát tento kód do svého Arduina, budete muset nainstalovat několik knihoven.
Knihovna Arduino-LMIC od matthijskooijman (https://github.com/matthijskooijman/arduino-lmic)
Knihovna MFRC522 pro čtečku RFID (https://github.com/miguelbalboa/rfid)
Nyní přejděte na main.ino a změňte DEVEUI, APPEUI a APPKEY na ty, které jste zkopírovali v posledním kroku.
Krok 6: Nastavení backendu
Backend tohoto projektu najdete na mém GitHubu pod RPI> Backend (https://github.com/BoussonKarel/CaptureTheBox).
Jak to funguje?
- Každých 10 sekund kód vyhledá aktivní hru. Pokud je nalezena, uloží se do proměnné s názvem huidigSpel (currentGame)
- Pokud je režim nastaven na Sériový, mezi Arduinem a Pi se použije kabel. Pi dotazuje na hodnoty LDR a GPS. Arduino odpovídá formátem JSON. Štítky RFID jsou odesílány vždy, když jsou prezentovány. Tento režim byl použit pouze pro vývojové účely a již není opravdu nutný.
- Pokud je režim nastaven na LoRa, vytvoří se klient MQTT, který spustí zpětné volání, kdykoli TTN přijme data LoRa. Obsahuje data LDR, GPS a RFID.
- Frontend může načítat data pomocí koncových bodů API. Většina dat je získána pomocí huidigSpel.id. Data jsou vrácena ve formátu JSON pomocí jsonify ()
Upravte nastavení Přejděte na secrets.py a vyplňte název své aplikace LoRa a klíč Acces (jste si to zapsali dříve).
Přejděte na config.py a zadejte své přihlašovací údaje do databáze (například heslo, uživatel …)
Zkuste to spustit app.py, jakmile potvrdíte, že to funguje, můžeme to použít jako službu. To automaticky spustí kód na pozadí, když spustíte svůj pi.
Chcete -li to provést, zkopírujte ctb_service.service do /etc/systemd/system/ctb_service.service. sudo cp ctb_service.service /etc/systemd/system/ctb_service.service
Nyní ji povolte pomocí systemctl enable ctb_service.service
Pokud potřebujete v kódu provést nějaké změny, můžete jej snadno zastavit pomocí systemctl stop (toto se spustí znovu při restartu) nebo disable is (zastavit automatické spouštění) pomocí systemctl disable.
Pokud potřebujete nahlédnout do protokolů (kvůli chybám), můžete použít journalctl -u ctb_service.service.
Více informací o službách naleznete zde:
Krok 7: Nastavení frontendu
Jako obvykle lze frontend najít na mém GitHubu pod RPI> Frontend (https://github.com/BoussonKarel/CaptureTheBox)
Vložte to do složky /var /html vašeho Raspberry Pi.
Obsahuje všechny potřebné webové stránky pro hru.
Obsahuje také skript pro komunikaci s backendem (v reálném čase i pomocí koncových bodů API).
Krok 8: Přidání pouzdra
Pro případ jsem použil starý kufřík na nářadí spolu s následujícími materiály/technikami:
- 3D tisk
- Pěna pro udržení baterie na svém místě
- Recyklovaná dřevěná prkna
- Horké lepidlo
- Šrouby a matice
Co uděláte se svým případem, je vaše volba! Dám vám uměleckou svobodu.
Pro inspiraci jsem přidal pár fotek mého (hotového) případu.
Doporučuje:
Zoom Control Box: 5 kroků (s obrázky)
Zoom Control Box: NOVINKY (duben 2021): Už dlouho jsem chtěl vytvořit variantu Bluetooth a nyní mám technologii! Sledujte mě, pokud o tom chcete slyšet, až bude publikováno, doufejme, že za pár týdnů. Bude používat stejný druh krabice a stejný zadek
Video Capture using the ESP32-CAM Board: 4 Steps
Pořizování videa pomocí desky ESP32-CAM: Podíváme se na velmi zajímavé úložiště GitHub, které umožňuje nahrávání videa na desku ESP32-CAM. Video není nic jiného než série pečlivě načasovaných obrázků a na tom je založen tento náčrtek. Tým také přidal funkci FTP do
Box Juke pro velmi mladé aka Raspi-Music-Box: 5 kroků
Box Juke pro velmi mladé … Aka Raspi-Music-Box: Inspirován instruktážním robotem „RFID-Music-Robot na bázi Raspberry-Pi-RFID“Když jsem popisoval stavbu hudebního přehrávače ROALDH pro jeho tříleté dítě, rozhodl jsem se postavit juke box pro mé ještě mladší děti. Je to v podstatě krabice se 16 tlačítky a Raspi 2 i
Box na 20 $ Cheer Box: 5 kroků (s obrázky)
20 $ Holiday Cheer Box: Tento projekt vám ukáže, jak postavit box, který po stisknutí tlačítka přehraje náhodný zvuk. V tomto případě jsem jej použil k vybudování krabice, kterou mohu o prázdninách strategicky rozmístit po kanceláři. Když lidé stisknou tlačítko, uslyší
The Barbie Box: a Camouflaged Case/ Boom Box for your Mp3 Player: 4 Steps (with Pictures)
Box Barbie: maskované pouzdro/ výložník pro váš přehrávač MP3: Toto je polstrované ochranné pouzdro pro váš přehrávač mp3, které také převádí konektor sluchátek na čtvrt palce, může fungovat jako výložník přepnutím vypínače a zamaskuje váš mp3 přehrávač jako kazetový přehrávač z počátku devadesátých let nebo podobné nízké krádeže i