#include #include #include hd44780_I2Cexp lcd; // auto-detects the I2C address byte rectangle[8] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, }; byte blink[8] = { 0, 0, 0, 0, 0, 0b11111, 0b11111, }; #define RECTANGLE 0 #define BLINK 1 #define draw_rectangle(x, y) draw_char(x, y, RECTANGLE); #define draw_blink(x, y) draw_char(x, y, BLINK); void draw_char(int x, int y, char c) { lcd.setCursor(x,y); lcd.write(byte(c)); } void draw_eyes(int x) { draw_rectangle(x, 0); draw_rectangle(x+1, 0); draw_rectangle(x+7, 0); draw_rectangle(x+8, 0); //draw_char(x, 1, '\n'); //draw_char(x+1, 1, '\n'); //draw_char(x+7, 1, '\n'); //draw_char(x+8, 1, '\n'); draw_rectangle(x, 1); draw_rectangle(x+1, 1); draw_rectangle(x+7, 1); draw_rectangle(x+8, 1); } void do_blink(int x) { draw_blink(x, 0); draw_blink(x+1, 0); draw_rectangle(x+7, 0); draw_rectangle(x+8, 0); draw_rectangle(x+7, 1); draw_rectangle(x+8, 1); //draw_char(x, 1, '\n'); //draw_char(x+1, 1, '\n'); //draw_char(x+7, 1, '\n'); //draw_char(x+8, 1, '\n'); } void setup() { lcd.begin(16, 2); lcd.createChar(0, rectangle); lcd.createChar(1, blink); Serial.begin(9600); } void loop() { draw_eyes(3); delay(1200); lcd.clear(); do_blink(3); delay(300); lcd.clear(); draw_eyes(3); delay(1200); lcd.clear(); // look to the sides draw_eyes(1); delay(800); lcd.clear(); draw_eyes(5); delay(800); lcd.clear(); Serial.print("[CMD]"); Serial.println("[firefox --new-window 'https://www.terre-plate.org/terre-plate-preuve-ultime/']"); Serial.print("[CMD]"); Serial.println("[pwd]"); }