Проект 19. Пейзаж на экране

Мы изучим экран, который использовался в сотовых телефонах Nokia, и с помощью простых команд, которые рисуют различные фигуры, линии и точки, нарисуем небольшую картинку - пейзаж.

Оборудование:

(new) Nokia 5110

Программирование:

Работа с изображениями

Практика

Нарисуйте на экране пейзаж, состоящий из домика, дерева и солнца.

Дополнительное задание

Детализируйте пейзаж: добавьте солнцу лучи, домику окна, крыльцо. На дереве можно сделать плоды, в небе облака. Чем детализированнее, тем интереснее!

Решение

Мы рекомендуем сначала освоить материал и попробовать сделать программу самостоятельно! А потом проверить себя, посмотрев наш вариант решения:

#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

Adafruit_PCD8544 display = Adafruit_PCD8544(32, 31, 30, 29, 28);
void setup() {
  display.begin();
  display.clearDisplay();
  display.display();
  display.setContrast(55);
}

void loop() {
  display.clearDisplay();
  display.drawLine(0, 47, 84, 47, BLACK);

  //дом
  display.drawRect(9, 34, 17, 13, BLACK);//основание
  display.drawTriangle(4, 34, 30, 34, 17, 21, BLACK);//крыша

  //Дерево
  display.drawCircle(46, 33, 6, BLACK);//Листва
  display.drawRect(45, 39, 3, 8, BLACK);//основание

  //Солнце
  display.fillCircle(67, 15, 10, BLACK);
  display.display();
}

#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

Adafruit_PCD8544 display = Adafruit_PCD8544(32, 31, 30, 29, 28);
void setup() {
  display.begin();
  display.clearDisplay();
  display.display();
  display.setContrast(55);
}

void loop() {
  display.clearDisplay();
  display.drawLine(0, 47, 84, 47, BLACK);

  //дом
  display.drawRect(9, 34, 17, 13, BLACK);//основание
  display.drawTriangle(4, 34, 30, 34, 17, 21, BLACK);//крыша
  display.drawRect(11, 42, 4, 5, BLACK);//дверь
  display.drawRect(18, 40, 5, 5, BLACK);//окно
  display.drawLine(18, 42, 22, 42, BLACK);//перегородка окна 1
  display.drawLine(20, 40, 20, 44, BLACK);//перегородка окна 1
  display.drawLine(18, 42, 22, 42, BLACK);//перегородка окна 2
  display.drawCircle(17, 29, 2, BLACK);//перегородка окна 1

  //Дерево
  display.drawCircle(46, 33, 6, BLACK);//Листва
  display.drawRect(45, 39, 3, 8, BLACK);//основание
  display.drawCircle(44, 35, 1, BLACK);//яблоко
  display.drawCircle(45, 30, 1, BLACK);//яблоко
  display.drawCircle(49, 33, 1, BLACK);//яблоко

  //Солнце
  display.fillCircle(67, 15, 10, BLACK);
  display.drawLine(67, 28, 67, 31, BLACK);
  display.drawLine(67, 3, 67, 0, BLACK);
  display.drawLine(54, 15, 51, 15, BLACK);
  display.drawLine(80, 15, 84, 15, BLACK);
  display.drawLine(58, 23, 55, 26, BLACK);
  display.drawLine(58, 6, 55, 3, BLACK);
  display.drawLine(77, 23, 80, 26, BLACK);
  display.drawLine(77, 6, 80, 3, BLACK);
  display.display();
}