„Willy – the Buddy Chaser” este o masinuta autonoma proiectata sa urmareasca un om in timp real, folosind senzori de detectie (cu infrarosu), un senzor ultrasonic si un microcontroler. Scopul principal al proiectului este dezvoltarea unui sistem hardware capabil sa identifice si sa urmareasca un obiect in miscare, integrand concepte esentiale din domeniul proiectarii cu microprocesoare.
Ideea a pornit din dorinta de a combina elemente de robotica cu o componenta interactiva și prietenoasa. Pe langa aspectele tehnice, proiectul are si un scop distractiv – utilizatorul se poate juca efectiv cu masinuta, fiind urmarit de aceasta intr-un mod similar cu un „animal de companie robotic”. Aceasta latura face ca proiectul sa fie mai atractiv si accesibil inclusiv pentru publicul larg.
Acest proiect poate reprezenta o baza pentru aplicatii educationale, jucarii inteligente sau chiar sisteme autonome de asistenta in viitor.
Denumire piesa | Link achizitionare |
---|---|
Arduino UNO R3 | Optimus digital |
Motor Driver L298N | Optimus digital |
Senzor Infrarosu de Obstacole | Optimus digital |
Senzor Ultrasonic de Distanta HC-SR04+ | Optimus digital |
Motor cu reductor si roata | Optimus digital |
Mini Breadboard Albastru | Optimus digital |
LCD 1602 | Optimus digital |
Buzzer | Optimus digital |
Suport 6 baterii AA | Optimus digital |
Comutator KCD10-101 | Optimus digital |
Set Fire tata-tata | Optimus digital |
Set fire mama-tata | Optimus digital |
Aceasta aplicatie controleaza un robot mobil autonom („Willy”), dotat cu:
Robotul functioneaza in mod follow-me: detecteaza si urmareste un obiect apropiat. Se opreste sau se retrage cand identifica un obstacol.
Biblioteca | Descriere | Link |
---|---|---|
`NewPing` | Permite masurarea precisa a distantei cu senzorul ultrasonic HC-SR04. | NewPing Library |
`Wire` | Protocol I2C pentru comunicatia cu ecranul LCD. | Inclusa in Arduino IDE |
`LiquidCrystal_I2C` | Suport pentru afisaj LCD 16×2 cu interfata I2C. | LiquidCrystal_I2C |
Functie | Rol |
---|---|
`setup()` | Initializeaza pinii, LCD-ul, motoarele, senzorii. |
`loop()` | Logica principala a programului: detectie obstacole, urmarire IR, update LCD, buzzer. |
`rotateMotor()` | Controleaza directia si viteza motoarelor in functie de parametrii. |
`displaySpeed()` (nefolosit) | Afiseaza viteza pe LCD (optional, comentat). |
`lcd.createChar()` | Definirea caracterelor custom pentru LCD (smiley, stop, sageti). |
Chasing
(urmarire)Turning Left
(viraj la stanga)Turning Right
(viraj la dreapta)Waiting…
(asteptare)OBSTACLE AHEAD!
(obstacol detectat)
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.