Scopul proiectului este implementarea unei bombe din jocul CS:GO cu toate functionalitatile ei:
Doua arduino vor comunica prin I2C. Master-ul, un NANO, va primi de la telefon prin intermediul Bluetooth un string ca parola, iar Slave-ul, un UNO, o va valida si va porni numaratoarea inversa la bomba daca e corecta. Secundele vor fi numarate folosind timer ISR. Va avea atasat un Shield LCD cu butoane pe care va fi afisat textul, iar pentru a fi dezamorsata bomba, va fi nevoie de o combinatie de butoane de pe Shield. De asemenea, va fi atasat la Master si un buzzer care scoate un sunet asurzitor cand explodeaza bomba, si un senzor ultrasonic care va detecta daca te afli in zona bombei, si va fi afisat un mesaj “Ai murit :(”, altfel “N-ai murit :)”.
Nume | Numar piese |
---|---|
Arduino Uno | 1 |
Arduino Nano | 1 |
HC-05 | 1 |
Shield LCD 1602 | 1 |
Mini Buzzer | 1 |
HC-SR04 | 1 |
Fire | 17 |
Breadboard | 2 |
Este conectat la Arduino Nano prin VCC la 5V, GND la GND, TXD la D11 si RXD la D10.
Este conectat la Arduino Uno prin suprapunere, fiecare pin de pe shield fiind conectat la portul sau respectiv de pe Arduino.
Este conectat la Arduino Uno prin - la GND si + la D8.
Este conectat la Arduino Uno prin VCC la 5V, GND la GND, Echo la D2 si Trig la D3.
Cele 2 Arduino comunica intre ele fiind conectate intre acestea porturile de GND, A4 si A5.
Am creat o interfata seriala speciala pentru acest senzor, iar cu ajutorul acesteia, intr-o variabila se memoreaza fiecare caracter primit prin Bluetooth si este trimis mai departe prin I2C.
Acesta este programat sa afiseze textul primit ca input de fiecare data, iar butoanele de pe acesta schimba valorile unor variabile in momentul in care sunt apasate pentru dezamorsare, apasarea lor fiind detectata prin analogRead(0) cu o anumita precizie.
Am inclus biblioteca pitches.h in care sunt definite sunetele pe care le poate scoate Buzzer-ul. Acesta scoate cate un sunet cand trece cate o secunda din numaratoarea inversa a bombei, si la final, daca explodeaza bomba, un sunet asurzitor de cateva secunde.
In functia void Boom() (in care se ajunge daca explodeaza bomba), senzorul detecteaza pentru o fractiune de cateva milisecunde daca se afla vreun obiect la mai putin de 8 mm de acesta. Daca obiectul a fost detectat, bomba interpreteaza acest lucru ca si cum te aflai in apropiere.
Am inclus biblioteca Wire.h pentru ca cele 2 Arduino sa poata comunica intre ele. Nano (Master) trimite fiecare caracter primit prin Bluetooth catre Uno (Slave), iar cand ultimele 12 caractere se potrivesc cu parola, bomba este activata.
In afara de cele mentionate mai sus, Uno dispune si de o functie de intrerupere ISR folosita ca timer pentru numaratoarea inversa a bombei.
Proiectul este o simulare a unei bombe din jocul CS:GO.
Imagine:
Video:
Acest proiect practic la PM mi s-a parut una dintre cele mai interesante activitati din acest semestru. Pe langa faptul ca am pus in practica cunostintele acumulate la laboratoare, s-a tinut cont si de creativitatea fiecaruia, si cu siguranta am invatat toti lucruri noi datorita acestuia.
In arhiva de mai jos se gaseste codul sursa: