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).