Arduinoでクリスマスツリーを描く
去年のクリスマスに友達がたくさんのクリスマスツリーを送ってくれて、pyqはそれらでいっぱいです
もちろん、カラフルな携帯電話の画面の前に座っている犬は数え切れないほどあり、
過激派でさえ木を切る先駆者です。
学期が終わる前の最後の大きな課題は、Arduinoを使用してAdafruit_GFXライブラリを呼び出して描画することだったので、そのときに考えたので、クリスマスツリーの簡単なバージョンを描画しましょう。
トピックに戻る!!!
最初のAdafruit_GFXAdafruit_GFX
は、すべてのLCDおよびOLEDディスプレイに共通の構文と一連のグラフィックス機能を提供する強力なグラフィックスライブラリです。これにより、単純なフォームや複雑なフォームだけでなく、さまざまなグラフィック間で変換することができます。新機能、パフォーマンスの向上、トラブルシューティングも、カラーグラフィックディスプレイにすぐに表示できます。
このライブラリをArduinoにインポートする方法は紹介されません。
次に、ライブラリファイルに新しいメソッドを追加します-クリスマスツリーを描画します
まず、ライブラリフォルダーに移動して、
Adafruit_GFX.cppとAdafruit_GFX.hの2つのファイルを見つけます。
次に、Adafruit_GFX.hファイルでグローバルメソッドを宣言します(ArduinoでAdafruit_GFX.hライブラリを直接呼び出した後、これを使用できます)メソッドを直接)
次に、このメソッドを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);
}
クリスマスツリーは三角形と長方形の組み合わせです。ここで、(a_x、a_y)、(b_x、b_y)、(c_x、c_y)は三角形の3点の座標であり、aa、bb、cc、ddは下の長方形の座標。
最後に、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);
}
この時のOLED画面は以下の通りです。
ここでは、木と見なすことができるクリスマスツリーを描くのに数分かかりました。もちろん、少し時間をかけて、見栄えが良く、より豪華なクリスマスツリーを作成することもできます。