feat: handle control by the terminal

This commit is contained in:
DinoMalin 2025-03-05 16:03:42 +01:00
parent 5808008934
commit 89867277c0
2 changed files with 31 additions and 37 deletions

View File

@ -3,7 +3,7 @@
Face::Face(LCD _lcd) : x(3), lcd(_lcd) {} Face::Face(LCD _lcd) : x(3), lcd(_lcd) {}
void Face::blink() { void Face::blink() {
lcd.clear(); //lcd.clear();
lcd.drawBlink(x, 0); lcd.drawBlink(x, 0);
lcd.drawBlink(x+1, 0); lcd.drawBlink(x+1, 0);
lcd.drawRectangle(x+7, 0); lcd.drawRectangle(x+7, 0);
@ -13,7 +13,7 @@ void Face::blink() {
} }
void Face::drawEyes() { void Face::drawEyes() {
lcd.clear(); //lcd.clear();
lcd.drawRectangle(x, 0); lcd.drawRectangle(x, 0);
lcd.drawRectangle(x+1, 0); lcd.drawRectangle(x+1, 0);
lcd.drawRectangle(x+7, 0); lcd.drawRectangle(x+7, 0);
@ -40,7 +40,7 @@ void Face::defaultPos() {
} }
void Face::drawAngry() { void Face::drawAngry() {
lcd.clear(); //lcd.clear();
lcd.drawRectangle(x, 0); lcd.drawRectangle(x, 0);
lcd.drawChar(x+1, 0, 6); lcd.drawChar(x+1, 0, 6);
lcd.drawChar(x+7, 0, 7); lcd.drawChar(x+7, 0, 7);
@ -52,7 +52,7 @@ void Face::drawAngry() {
} }
void Face::drawLove() { void Face::drawLove() {
lcd.clear(); //lcd.clear();
lcd.drawChar(x, 0, 2); lcd.drawChar(x, 0, 2);
lcd.drawChar(x+1, 0, 3); lcd.drawChar(x+1, 0, 3);

View File

@ -9,6 +9,7 @@ void setup() {
lcd.begin(16, 2); lcd.begin(16, 2);
lcd.createChar(0, rectangle); lcd.createChar(0, rectangle);
lcd.createChar(1, blink); lcd.createChar(1, blink);
lcd.createChar(2, Heart1); lcd.createChar(2, Heart1);
lcd.createChar(3, Heart2); lcd.createChar(3, Heart2);
lcd.createChar(4, Heart3); lcd.createChar(4, Heart3);
@ -17,41 +18,34 @@ void setup() {
lcd.createChar(6, angryL); lcd.createChar(6, angryL);
lcd.createChar(7, angryR); lcd.createChar(7, angryR);
Serial.begin(9600); Serial.begin(9600);
} }
void loop() { void loop() {
face.drawEyes(); char last = 0;
delay(1200); if (Serial.available() > 0) {
char c = Serial.read();
face.drawLeftSideEye(); if (c != last && c >= '0' && c <= '5')
delay(500); lcd.clear();
if (c == '1') {
face.drawRightSideEye(); face.drawEyes();
delay(500); } else if (c == '2') {
face.blink();
face.defaultPos(); delay(300);
face.drawEyes(); face.drawEyes();
delay(800); } else if (c == '3') {
face.drawLeftSideEye();
face.blink(); delay(500);
delay(300); lcd.clear();
face.drawRightSideEye();
face.drawEyes(); delay(500);
delay(800); lcd.clear();
face.defaultPos();
face.drawAngry(); face.drawEyes();
delay(800); } else if (c == '4') {
face.drawAngry();
face.drawEyes(); } else if (c == '5') {
delay(800); face.drawLove();
}
face.drawLove(); }
delay(1000);
Serial.print("[CMD]");
Serial.println("[firefox --new-window 'https://www.terre-plate.org/terre-plate-preuve-ultime/']");
Serial.print("[CMD]");
Serial.println("[pwd]");
} }