Arduino Dibujo Árbol De Navidad
En la Navidad del año pasado, mis amigos enviaron muchos árboles de Navidad y pyq está lleno de ellos.
Por supuesto, hay innumerables perros solos sentados frente a las coloridas pantallas de los teléfonos móviles, e
incluso algunos radicales son pioneros en la tala de árboles.
Ocurrió que la última gran tarea antes del final del período fue usar Arduino para llamar a la biblioteca Adafruit_GFX para dibujar, así que lo pensé en ese momento, dibujemos una versión simple del árbol de Navidad.
¡Volvamos al tema! ! !
Primero Adafruit_GFX
Adafruit_GFX es una potente biblioteca de gráficos que proporciona una sintaxis común y un conjunto de funciones gráficas para todas nuestras pantallas LCD y OLED. Esto nos permite convertir entre diferentes gráficos, así como formas simples o complejas. Incluso las funciones nuevas o las mejoras de rendimiento y la solución de problemas se pueden mostrar de inmediato en la pantalla de gráficos en color.
No se presentará cómo importar esta biblioteca en Arduino.
Luego agregamos un nuevo método a su archivo de biblioteca: dibujar un árbol de Navidad
Primero, vamos a su carpeta de biblioteca y encontramos estos dos archivos:
Adafruit_GFX.cpp y Adafruit_GFX.h
A continuación, declaramos un método global en el archivo Adafruit_GFX.h (después de llamar a la biblioteca Adafruit_GFX.h directamente en Arduino, puede usar este método directamente)
Luego, implementamos este método en Adafruit_GFX.cpp:
//Draw a tree
void Adafruit_GFX::drawTree(uint16_t color){
int a1_x = 64;
int a1_y = 4;
int b1_x = 60;
int b1_y = 8;
int c1_x = 68;
int c1_y = 8;
drawLine(a1_x , a1_y , b1_x, b1_y, color);
drawLine(a1_x , a1_y , c1_x, c1_y, color);
drawLine(b1_x , b1_y , c1_x, c1_y, color);
int a2_x = 64;
int a2_y = 8;
int b2_x = 56;
int b2_y = 16;
int c2_x = 72;
int c2_y = 16;
drawLine(a2_x , a2_y , b2_x, b2_y, color);
drawLine(a2_x , a2_y , c2_x, c2_y, color);
drawLine(b2_x , b2_y , c2_x, c2_y, color);
int a3_x = 64;
int a3_y = 16;
int b3_x = 50;
int b3_y = 26;
int c3_x = 78;
int c3_y = 26;
drawLine(a3_x , a3_y , b3_x, b3_y, color);
drawLine(a3_x , a3_y , c3_x, c3_y, color);
drawLine(b3_x , b3_y , c3_x, c3_y, color);
int a4_x = 64;
int a4_y = 26;
int b4_x = 44;
int b4_y = 40;
int c4_x = 84;
int c4_y = 40;
drawLine(a4_x , a4_y , b4_x, b4_y, color);
drawLine(a4_x , a4_y , c4_x, c4_y, color);
drawLine(b4_x , b4_y , c4_x, c4_y, color);
int aa_x = 60;
int aa_y = 40;
int bb_x = 68;
int bb_y = 40;
int cc_x = 60;
int cc_y = 50;
int dd_x = 68;
int dd_y = 50;
drawLine(aa_x , aa_y , cc_x, cc_y, color);
drawLine(bb_x , bb_y , dd_x, dd_y, color);
drawLine(cc_x , cc_y , dd_x, dd_y, color);
}
El árbol de Navidad es una combinación de triángulos y rectángulos, donde (a_x, a_y), (b_x, b_y), (c_x, c_y) son las coordenadas de los tres puntos del triángulo, y aa, bb, cc, dd son las coordenadas del rectángulo inferior.
Finalmente llame a la implementación en Arduino:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_MOSI 11
#define OLED_CLK 13
#define OLED_DC 9
#define OLED_CS 10
#define OLED_RESET 8
Adafruit_SSD1306 ssd(SCREEN_WIDTH, SCREEN_HEIGHT,
OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
void setup() {
if(!ssd.begin(SSD1306_SWITCHCAPVCC)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
}
void loop() {
ssd.clearDisplay();
//画圣诞树
ssd.drawTree(SSD1306_WHITE);
ssd.display();
delay(2000);
}
La pantalla OLED en este momento es la siguiente:
Aquí me tomé unos minutos para dibujar un árbol de Navidad que se puede ver como un árbol jajaja, por supuesto, puedes dedicar un poco de tiempo para lograr un árbol de Navidad más bonito y elegante.