Мазмұны:

Қорапты алу: 8 қадам
Қорапты алу: 8 қадам

Бейне: Қорапты алу: 8 қадам

Бейне: Қорапты алу: 8 қадам
Бейне: 10 сөз ойыны. Топтық және жұптық ойын әдісі. 2024, Қараша
Anonim
Қорапты басып алу
Қорапты басып алу
Қорапты басып алу
Қорапты басып алу

Capture The Box - бұл команда құруға арналған ойын, сіз көршілеріңізбен достарыңызбен ойнай аласыз.

Мақсат - қорапты басып алу және оны мүмкіндігінше ұзақ уақыт сіздің иелігіңізде ұстау, ал басқа ойыншылар оны сіздің подъезден немесе алдыңғы бақшадан алып кетуге тырысады.

Бұл ойын қорапты табу үшін GPS және ойыншыларды анықтау үшін RFID тегтерін қолданады. Нүктелік матрицаның дисплейінің қарқындылығын аймақтағы жарық пайызына сәйкестендіру үшін қосымша LDR қосуға болады.

Жабдықтар

Микроконтроллерлер мен компьютерлер

  • Raspberry Pi
  • Arduino (Mega) Мен қарапайым Uno -дан Arduino Mega таңдадым, себебі оның түйреуіштері көп. Біз Dragino LoRa қалқанын қолданатындықтан бұл өте қажет, ол БҰҰ -ны пайдалану кезінде бізге сандық түйреуіштерді өте аз қалдырады. КЕҢЕС: Түпнұсқаны қолданған дұрыс, себебі қытайлық клондар әрқашан күткендей жұмыс істемейді.

Датчиктер мен модульдер

  • 4 MAX7219 нүктелік матрицалық модуль DOUT -ты DIN -ге, CS -ге CS -ге, CLK -ке CLK -ке қосыңыз …
  • Жарыққа тәуелді резистор (10K) + резистор (10K)
  • NEO-7M (немесе ұқсас) GPS модулі Мен Velleman VMA430 қолданамын
  • RC522 RFID модулі+ кейбір RFID белгілер/карталар

LoRa (сымсыз технология) пайдалану үшін

Драгино Лора Шилд

Қосымша сенсорлар мен модульдер

LCD дисплей Raspberry Pi IP мекенжайын көрсету үшін

Сынақ қондырғысын жасау үшін

Нан тақтасы мен Дюпонт кабельдері (Еркек-ер

Қосымша (корпус)

  • Пісіру темірі
  • Ескі құрал қорапшасы
  • 3D басып шығаруға арналған материалдар
  • Кейбір жұқа ағаш тақтайшалар
  • Кейбір болттар мен гайкалар (олар Arduino тесіктеріне сыяды). Менің бұрандаларымның диаметрі шамамен 3 мм.

Болжалды бағаны төменде келтірілген ББ (Материалдар Биллі) бойынша табуға болады.

1 -қадам: Raspberry Pi орнату

Raspberry Pi - бұл жобаның жүрегі.

Ол frontend, backend және мәліметтер базасын басқарады. Ол сонымен қатар артқы және Arduino арасындағы байланыс үшін жауап береді.

Raspberry Pi пайдалану үшін бізге келесі әрекеттерді орындау қажет:

1 -бөлім: Raspbian -ді Raspberry Pi -ге орнатыңыз

Мұны қалай жасау керектігі туралы оқулықты мына жерден табуға болады:

2 -бөлім: Raspbian -ды Raspberry Pi -ге орнатыңыз Үйдегі WiFi -ді орнату.

Мұны wpa_passphrase «YourNetwork» «YourSSID» >> /etc/wpa_supplicant/wpa_supplicant.conf көмегімен жасауға болады.

Pi -ді қайта жүктеңіз және ifconfig теру кезінде IP мекенжайын көресіз

3 -бөлім: Веб -сервер мен дерекқорды орнатыңыз

Сізде Pi орнатылғаннан кейін, құпия сөзді ауыстырған жөн, бұл passwd пәрменімен жүзеге асады.

Бұл аяқталғаннан кейін Apache, PHP, MariaDB және 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 apache2.service қайта іске қосыңыз

PHPMyAdminsudo apt install phpmyadmin -y

MySQL қауіпсіз паролін орнатуды ұмытпаңыз.

4 -бөлім: Қажетті Python кітапханаларын орнату

Артқы жағы үшін бізге кейбір кітапханалар қажет болады. Оларды pip3 пәрмені арқылы орнатуға болады.

pip3 mysql-Connector-python орнатыңыз

pip3 колба-розеткасын орнатады

pip3 колбаны орнатады

pip3 geventpip3 орнату gevent-websocket

pip3 ttn орнатыңыз

2 -қадам: электрониканы орналастыру

Электрониканы орналастыру
Электрониканы орналастыру
Электрониканы орналастыру
Электрониканы орналастыру

Бұл жобаны іске асыру үшін бізге барлық электрониканы қосу керек.

LoRa қалқанын оңай орнына қоюға болады. Тек түйреуіштерді Arduino құрылғысындағы түйреуіштермен туралаңыз.

Басқа қосылулар менің Fritzing схемасында сипатталған. Қайсысын мына жерден жүктеуге болады:

3 -қадам: Мәліметтер қорын жобалау

Мәліметтер қорын жобалау
Мәліметтер қорын жобалау

Ойын мен сенсорлардың барлық деректерін сақтау үшін мен бірнеше кесте жасадым:

датчиктерден алынған өлшеу датчиктер кестесінен табылған, онда сенсорға сілтеме, өлшеу мәні (мысалы, көрсеткіштер: 51.123456; 3.123456) және қосымша ойын идентификаторы (егер ойын өлшеу кезінде белсенді болса).

ойыншы аттары және олардың RFID белгісінің UID. Қосымша далалық модератор қосылады, бұл адам ойынды өзгерте алады (мысалы, оны уақытынан бұрын тоқтату).

ойын туралы ақпарат (басталу және аяқталу уақыты).

spel_has_speler spel мен speler арасындағы байланыс. Бұл жерде ойыншылар ойынға тағайындалады.

Бұл кестеде балл сақталады. Онда ойын идентификаторы, ойыншының идентификаторы, қорапты ұрлаған уақыт және оны жоғалтқан уақыт (басқа біреу ұрлаған кезде немесе ойын аяқталғанда) бар. Аяқталу уақытынан басталу уақытын шегере отырып, сіз сол түсірілімнен алған ұпайыңызды есептей аласыз.

Дерекқордың экспортын менің GitHub сайтынан табуға болады (https://github.com/BoussonKarel/CaptureTheBox)

PHPMyAdmin / MySQL Workbench бағдарламасында sql ашыңыз және оны іске қосыңыз. Енді мәліметтер базасы импортталуы керек.

4 -қадам: TTN бойынша есептік жазбаны орнату

1 -қадам: TTN -де тіркелгіге тіркеліңіз және қосымша жасаңыз

TheThingsNetwork -те тіркелгіге жазылыңыз, содан кейін Консоль> Қолданба қосу тармағына өтіңіз.

Қолданбаның атын таңдап, Қолданба қосу түймесін басыңыз.

2 -қадам: құрылғыны тіркеу

Өтініш бергеннен кейін «Құрылғыны тіркеу» бөліміне өтіңіз.

Құрылғы идентификаторын таңдаңыз, бұл сіз қалаған нәрсе болуы мүмкін (егер ол жылан болса) және Тіркеу түймешігін басыңыз.

Құрылғы EUI астындағы Жасау белгішесін нұқыңыз, сонда TTN сізге біреуін жасайды.

3 -қадам: Сенім грамоталарын жазу

Енді Құрылғыға өтіп, Құрылғы EUI, Қолданба EUI және Қолданба кілтінің жанындағы Код белгісін нұқыңыз. Ол енді байт жиымы ретінде көрінуі керек.

Көшірмес бұрын Ауыстыру түймесін басып, Dev EUI мен App EUI LSB FIRST екеніне көз жеткізіңіз.

Қолданба кілті MSB FIRST күйінде қалуы керек (мұны өзгертпеңіз).

Келесі қадамда сізге осы кілттер қажет болады: Arduino орнату.

4 -қадам: Қолданбаның Acces кілтін жазу

Енді Raspberry Pi -де MQTT орнату үшін бізге тағы бір кілт қажет.

Қолданбаға өтіп, Acces кілттеріне төмен жылжыңыз.

Бұл сізге Backend қадамында қажет болады.

5 -қадам: Arduino орнату

Arduino кодын Arduino астындағы GitHub -тан табуға болады (https://github.com/BoussonKarel/CaptureTheBox)

Бұл код реттелуі үшін бірнеше қойындыға бөлінген.

main.ino Негізгі код: пин декларациялары, setup () және loop ()

0_LoRa.inoБұл код LoRa көмегімен байланысты басқарады.

Ол LDR, GPS және RFID тегтерінің деректерін 13 байтқа орналастырады және оны TheThingsNetwork -ке жібереді.

1_LDR.ino analogRead () көмегімен ол жарыққа тәуелді резистордағы кернеудің мөлшерін өлшейді.

Содан кейін бұл жарықтың пайызына айналады (0 ештеңе емес, 100 ұялы телефон шамы).

2_GPS.inoБұл TX1 және RX1 (Serial1) арқылы сериялық байланысты пайдаланады.

Ол қораптың ені мен ұзындығын табу үшін NMEA хабарламаларын (дәлірек айтқанда $ GPRMC хабарламалары) пайдаланады.

3_RFID.ino MFRC522 кітапханасын қолдана отырып, бұл код жаңа RFID тегтерін іздейді, ол болған кезде ол RFID_lastUID ретінде сақталады.

4_DotMatrix.

Оны реттеу

Бұл кодты Arduino -ға жүктемес бұрын бірнеше кітапхананы орнату қажет.

Matthijskooijman Arduino-LMIC кітапханасы (https://github.com/matthijskooijman/arduino-lmic)

RFID оқуға арналған MFRC522 кітапханасы (https://github.com/miguelbalboa/rfid)

Енді main.ino сайтына өтіп, DEVEUI, APPEUI және APPKEY -ді соңғы қадамға көшіргенге өзгертіңіз.

6 -қадам: Артқы жағын орнату

Бұл жобаның артқы жағын GitHub -да RPI> Backend (https://github.com/BoussonKarel/CaptureTheBox) бөлімінде табуға болады.

Бұл қалай жұмыс істейді?

  1. Әр 10 секунд сайын код белсенді ойын іздейді, егер ол табылса, huidigSpel (currentGame) деп аталатын айнымалыға сақталады.
  2. Егер режим Serial күйіне орнатылса, Arduino мен Pi арасында кабель пайдаланылады. LDR мен GPS мәндері үшін Pi сауалнамалары. Arduino JSON форматында жауап береді. RFID тегтері ұсынылған сайын жіберіледі, бұл режим тек даму мақсатында қолданылған және енді қажет емес.
  3. Егер режим LoRa күйіне орнатылса, LoTa деректерін TTN қабылдаған сайын кері шақыруды шақыратын MQTT клиенті құрылады. Бұл LDR, GPS және RFID деректерін қамтиды.
  4. Frontend API соңғы нүктелерін пайдаланып деректерді ала алады. Деректердің көбі huidigSpel.id көмегімен алынады. Деректер JSON форматында jsonify () көмегімен қайтарылады.

Параметрлерді өзгертіңіз Secret.py сайтына өтіп, LoRa қосымшасының атын және Acces кілтін енгізіңіз (сіз бұрын жазғансыз).

Config.py сайтына өтіп, мәліметтер базасының тіркелгі деректерін толтырыңыз (мысалы, құпия сөз, пайдаланушы …)

Оны қызмет ретінде орнату App.py -ді іске қосып көріңіз, бұл жұмыс істеп тұрғанын растағаннан кейін, біз оны қызмет ретінде пайдалана аламыз, бұл сіздің пи -ні жүктеген кезде кодты фонда автоматты түрде бастайды.

Бұл әрекетті орындау үшін ctb_service.service /etc/systemd/system/ctb_service.service көшіріңіз. sudo cp ctb_service.service /etc/systemd/system/ctb_service.service

Енді оны systemctl enable ctb_service.service көмегімен қосыңыз

Егер сізге кодқа кейбір өзгертулер енгізу қажет болса, оны systemctl stop көмегімен оңай тоқтатуға болады (бұл қайта жүктеу кезінде қайта басталады) немесе systemctl өшіру арқылы өшіру (оны автоматты түрде қосуды тоқтату).

Егер журналдарға жүгіну қажет болса (қателерге байланысты), сіз journalctl -u ctb_service.service пайдалана аласыз.

Қызметтер туралы қосымша ақпаратты мына жерден алуға болады:

7 -қадам: Frontend орнату

Әдеттегідей, алдыңғы бетті GitHub -да RPI> Frontend бөлімінде табуға болады (https://github.com/BoussonKarel/CaptureTheBox)

Оны Raspberry Pi /var /html қалтасына қойыңыз.

Бұл ойынға қажетті барлық веб -беттерді қамтиды.

Ол сонымен қатар артқы жағымен байланысуға арналған сценарийді қамтиды (нақты уақытта да, API соңғы нүктелерін қолдана отырып).

8 -қадам: қаптаманы қосу

Қаптаманы қосу
Қаптаманы қосу
Қаптаманы қосу
Қаптаманы қосу

Іс үшін мен келесі материалдармен/техникамен бірге ескі құрал корпусын қолдандым:

  • 3D басып шығару
  • Батареяны орнында ұстауға арналған көбік
  • Қайта өңделген ағаш тақтайшалар
  • Ыстық желім
  • Бұрандалар мен жаңғақтар

Сіздің ісіңізбен не істейтініңіз - сіздің таңдауыңыз! Мен саған көркемдік еркіндік беремін.

Шабыт алу үшін мен өзімнің (аяқталған) кейсімнің фотосуреттерін қостым.

Ұсынылған: