This shows you the differences between two versions of the page.
pm:prj2024:tdicu:alexandra.burnichi [2024/05/27 03:28] alexandra.burnichi [Introducere] |
pm:prj2024:tdicu:alexandra.burnichi [2024/05/27 03:35] (current) alexandra.burnichi [Introducere] |
||
---|---|---|---|
Line 3: | Line 3: | ||
<note tip> | <note tip> | ||
+ | |||
Proiectul este reprezentat de un mic robotel de birou, creat special pentru a ii oferi utilizatorului interactiuni placute si a ajuta cu singuratatea. Acesta este dotat cu un senzor de atingere si unul de distanta, reactionand la factori externi prin expresii faciale care pot fi vazute pe ecranul sau LCD. Are de asemenea si un servomotor care serveste la miscarea capului. | Proiectul este reprezentat de un mic robotel de birou, creat special pentru a ii oferi utilizatorului interactiuni placute si a ajuta cu singuratatea. Acesta este dotat cu un senzor de atingere si unul de distanta, reactionand la factori externi prin expresii faciale care pot fi vazute pe ecranul sau LCD. Are de asemenea si un servomotor care serveste la miscarea capului. | ||
+ | |||
</note> | </note> | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
Line 9: | Line 11: | ||
<note tip> | <note tip> | ||
- | La atingere, ecranul va afisa o expresie faciala fericita. Atunci cand nu mai este atins, robotelul devine trist, iar atunci cand senzorul detecteaza miscare, robotelul devine entuziasmat, anticipand afectiune. | + | La atingerea senzorului, robotelul devine fericit, iar atunci cand detecteaza (cu ajutorul HC-SR04) pe cineva la o distanta mai mica de 10 cm, incepe sa isi scuture capul, entuziasmat (cu ajutorul servomotorului). Atunci cand este ignorat, robotelul este trist. |
</note> | </note> | ||
Line 38: | Line 41: | ||
<note tip> | <note tip> | ||
Mediu de Dezvoltare | Mediu de Dezvoltare | ||
- | - Arduino IDE | + | - Visual Studio Code (PlatformIO) |
- Librării: TFT_eSPI, ESP32Servo, Wire, SPI, Adafruit | - Librării: TFT_eSPI, ESP32Servo, Wire, SPI, Adafruit | ||
Line 48: | Line 51: | ||
=== Exemple === | === Exemple === | ||
+ | Aceste fragmente de cod evidențiază principalele funcționalități ale robotelului. | ||
+ | |||
+ | |||
1. measureHCSR04Distance | 1. measureHCSR04Distance | ||
Această funcție măsoară distanța folosind senzorul ultrasonic HC-SR04 și returnează valoarea măsurată în centimetri. | Această funcție măsoară distanța folosind senzorul ultrasonic HC-SR04 și returnează valoarea măsurată în centimetri. | ||
Line 80: | Line 86: | ||
</code> | </code> | ||
- | 3. draw...Face() | + | 3. draw[]Face() |
Aceasta functie foloseste libraria Adafruit pentru a desena pe ecran diferite expresii faciale: | Aceasta functie foloseste libraria Adafruit pentru a desena pe ecran diferite expresii faciale: | ||
Line 87: | Line 93: | ||
tft.init(); | tft.init(); | ||
tft.fillScreen(lightPink); | tft.fillScreen(lightPink); | ||
+ | | ||
tft.fillCircle(64, 85, 20, ST7735_BLACK); | tft.fillCircle(64, 85, 20, ST7735_BLACK); | ||
tft.fillRect(44, 65, 45, 20, lightPink); | tft.fillRect(44, 65, 45, 20, lightPink); | ||
+ | | ||
tft.fillCircle(40, 64, 20, ST7735_BLACK); | tft.fillCircle(40, 64, 20, ST7735_BLACK); | ||
- | tft.fillCircle(50, 60, 5, ST7735_WHITE); | + | tft.fillCircle(50, 60, 5, ST7735_WHITE); |
+ | tft.fillCircle(40, 64, 7, ST7735_WHITE); | ||
- | tft.fillCircle(88, 64, 20, ST7735_BLACK); | + | tft.fillCircle(88, 64, 20, ST7735_BLACK); |
- | tft.fillCircle(98, 60, 5, ST7735_WHITE); | + | tft.fillCircle(98, 60, 5, ST7735_WHITE); |
+ | tft.fillCircle(88, 64, 7, ST7735_WHITE); | ||
+ | |||
+ | tft.fillRect(20, 75, 40, 10, lightPink); | ||
+ | tft.fillRect(68, 75, 40, 10, lightPink); | ||
} | } | ||
+ | |||
</code> | </code> | ||
<note tip> | <note tip> | ||
- | Funcția principală a programului, care monitorizează senzorul de atingere și senzorul de distanță, schimbând expresiile faciale și ajustând servo motorul în funcție de stările detectate. | + | Funcția principală a programului (loop) monitorizează senzorul de atingere și senzorul de distanță, schimbând expresiile faciale și ajustând servo motorul în funcție de stările detectate. |
- | Aceste fragmente de cod evidențiază principalele funcționalități ale proiectului Desk Buddy, oferind un exemplu clar de implementare pentru interacțiunile robotului. | + | |
</note> | </note> | ||
Line 117: | Line 130: | ||
<note> | <note> | ||
+ | |||
{{:pm:prj2024:tdicu:pm_burnichi_alexandra_deskbuddy.zip|}} | {{:pm:prj2024:tdicu:pm_burnichi_alexandra_deskbuddy.zip|}} | ||
</note> | </note> |