Turreta ce trage cu proiectile Nerf din spuma atunci cand detecteaza miscarea unei persoane intr-o anumita raza. Aceasta va avea mai multe moduri cum ar fi: modul pasnic in care doar “priveste” persoanele ce se deplaseaza in raza ei, modul single, care trage cate un proiectil pe rand si modul burst in care trage cu 3 proiectile o data.
Cand eram mic, ma jucam cu prietenii cu pusti Nerf si ar fi fost foarte cool daca cineva ar fi avut o astfel de turreta pentru a acoperi o arie mai mare de inamici.
Nu are o utilitate foarte mare dar este un proiect distractiv. :D
Robotelul va avea la baza acestuia 5 senzori de miscare PIR amplasati pe un semicerc pentru a acoperi o raza de 180 de grade. Cu ajutorul acestora un servomotor va misca turreta in directia tintei. Doua motorase DC vor fi folosite pentru a proiecte cartusele nerf. Un servomotor va controla un brat care va impinge cartusele catre “teava” turretei de unde vor fi propulsate. Modurile de operare se vor putea modifica printr-un meniu interactiv pe un display folosindu-se butoane.
Componenta | Cantitate | Utilizare |
---|---|---|
Arduino UNO | 1 | Controleaza piesele |
Modul Senzor PIR HC-SR501 | 5 | Detecteaza directia din care vine miscarea |
Servomotor SG90 de 180 de grade | 2 | Pentru rotirea turretei si actionarea tragaciului |
Motor DC 130-18105 | 2 | Propulseaza proiectilele Nerf |
LCD 1602 cu Interfata I2C | 1 | Meniu mod functionare turreta |
Buton | 3 | Control meniu |
Cabluri | Multe |
Software-ul a fost realizat in Arduino IDE. Am folosit 3 biblioteci: `LiquidCrystal_I2c.h`, `Wire.h` pentru a controla mai usor display-ul prin I2c si `Servo.h` pentru controlul servomotoarelor.
Ideea initiala era ca fiecare senzor PIR sa fie conectat la un pin pe care se poate genera o intrerupere insa placuta pe care o aveam la dispozitie (Arduino Uno) are doar 2 pini de pe care se pot genera intreruperi. Asa ca am ales sa fac polling intre cei 5 senzori de miscare sa vad care este primul activat. Intreruperile le-am folosit pentru 2 butoane prin care se poate schimba modul de operare al turretei.
Atunci cand este detectat prezenta unei persoane, se apeleaza functia `moveToPosition` pentru a roti corpul turretei si apoi functia `shoot`, care in functie de modul activ, va trage proiectile in directia respectiva.
Degete arse, am topit biroul si mi-am enervat colegul de camera tragand in el cu proiectile din spuma.
Pe langa asta, a iesit un robotel destul de simpatic:
A fost un proiect interesant si distractiv, cea mai grea parte a fost de departe lipirea firelor si relipirea firelor de la motorase care mereu se rupeau.
Cod proiect: nerfturret.rar