This is an old revision of the document!
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.
Listă de piese:
Funcționalități
1. measureHCSR04Distance Această funcție măsoară distanța folosind senzorul ultrasonic HC-SR04 și returnează valoarea măsurată în centimetri.
int measureHCSR04Distance() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); int distance = duration * 0.034 / 2; if (distance < 2 || distance > 30) { return maxDistance; } return distance; }
2. adjustServo Această funcție mișcă servo motorul între 0 și 90 de grade de două ori pentru a simula o reacție fizică.
void adjustServo() { for (int i = 0; i < 2; i++) { myservo.write(0); delay(500); myservo.write(90); delay(500); Serial.println("Servo moved to 90 degrees"); } }
3. draw[]Face() Aceasta functie foloseste libraria Adafruit pentru a desena pe ecran diferite expresii faciale:
void drawHappyFace() { tft.init(); tft.fillScreen(lightPink); tft.fillCircle(64, 85, 20, ST7735_BLACK); tft.fillRect(44, 65, 45, 20, lightPink); tft.fillCircle(40, 64, 20, ST7735_BLACK); tft.fillCircle(50, 60, 5, ST7735_WHITE); tft.fillCircle(88, 64, 20, ST7735_BLACK); tft.fillCircle(98, 60, 5, ST7735_WHITE); }
Proiectul a fost unul foarte interesant, mi-a placut foarte mult sa ma joc cu culorile si reactiile robotelului. Sunt incantata sa am o dovada fizica a muncii mele si voi continua sa mai lucrez la el si pe viitor, in special pe partea estetica (cablaj, carcasa, etc).