亚洲熟妇av一区二区三区,久久久久久精品观看sss,免费观看四虎精品国产永久,国产成人精品一区二三区熟女,天堂网在线最新版www资源网

用arduino和OLED制作火柴人奔跑動畫(flash火柴人跑步制作)

arduino和OLED制作火柴人奔跑動畫

用arduino和OLED制作火柴人奔跑動畫(flash火柴人跑步制作)

2.為動畫創(chuàng)建位圖

用arduino和OLED制作火柴人奔跑動畫(flash火柴人跑步制作)

這可能是最耗時的步驟。你必須創(chuàng)建一組框架,這將適合128×32格式。您可以嘗試從任何拖鞋剪貼片中創(chuàng)建它們,您可以在網(wǎng)上找到。

所有的框架需要是黑白的!!!

我創(chuàng)造了顯示奔跑生物的幀,一共八張

3.連接

用arduino和OLED制作火柴人奔跑動畫(flash火柴人跑步制作)

OLED

arduino

GND

GND

VCC

VCC

SDA

A4

SCK

A5

OLED 顯示屏有四個引腳,分別是:
1.SDA(數(shù)據(jù)線) SCK(時鐘線) VDD(3.3V) GND
2.在UNO開發(fā)板上I2C接口,SDA對應(yīng)D4,SCK對應(yīng)D5
3.在MEGA2560開發(fā)板上I2C接口,SDA對應(yīng)D20, SCL對應(yīng)D21

4.創(chuàng)建位圖的代碼表示

用arduino和OLED制作火柴人奔跑動畫(flash火柴人跑步制作)用arduino和OLED制作火柴人奔跑動畫(flash火柴人跑步制作)

①使用在線取模軟件

用arduino和OLED制作火柴人奔跑動畫(flash火柴人跑步制作)

要創(chuàng)建位圖的代碼表示,我們將使用在線工具

你可以找到它去下面的網(wǎng)址

https://javl.github.io/image2cpp/

②執(zhí)行以下步驟:

  • Select Image(選擇圖像)部分,逐個打開幀文件
  • 通過檢查圖像設(shè)置部分檢查上傳的Image Settings(圖像)是否正確
  • 如果想要具有黑色背景,并且只點亮線像素,請檢查倒置圖像顏色,在Background選擇Black

用arduino和OLED制作火柴人奔跑動畫(flash火柴人跑步制作)

  • Output(輸出部分)在Code output format(代碼輸出格式)中指定"Arduino code ,single Bitmap"在Identifier/Prefix(標(biāo)識符/前綴)中提供動畫名稱,必須要英文按Generate code(生成按鈕)保存生成的代碼。它將被粘貼到arduino編譯器

4.創(chuàng)建動畫代碼

①首先,我們需要引用所需的頭文件

#include <Wire.h>#include <Adafruit_GFX.h>#include <Adafruit_SSD1306.h>

前一個用于 I2C 接口,其他兩個用于與 OLED 顯示器配合工作

②我們需要定義顯示屏的大小

#define SCREEN_WIDTH 128 // OLED 顯示寬度128 in pixels#define SCREEN_HEIGHT 64 // OLED 顯示高度64 in pixels

③引用函數(shù)庫,里面有宣布通過 OLED 顯示連接的引腳。有了這些別針,我們宣布顯示器本身

#define OLED_RESET 4Adafruit_SSD1306 display(OLED_RESET);

然后,您必須復(fù)制粘貼我們從Image2cpp 中獲得的代碼

這是一個相當(dāng)長的代碼,所以我不會粘貼在這里的全部。我只顯示一幀

static const unsigned char Frame1 [] PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x83, 0x80, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x03, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe1, 0x0c, 0x60, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x1f, 0xff, 0x80, 0x20, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x01, 0xf9, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0xcc, 0x78, 0x60, 0x00, 0x00, 0x03, 0xe7, 0x80, 0x00, 0x00, 0x64, 0x1f, 0xc0, 0x00, 0x00, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x0e, 0x00, 0x00, 0x00, 0x33, 0xf0, 0x00, 0x00, 0x00, 0x30, 0xf8, 0x00, 0x00, 0x00, 0x18, 0x1f, 0xf0, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x86, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

然后,在設(shè)置功能中,我們正在初始化 OLED 顯示屏

void setup() {Serial.begin(9600);delay(500);// by default, we'll generate the high voltage from the 3.3v line internally! (neat!)display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64)}

然后,我們有循環(huán)功能,我們重播所有10幀在50ms間隔

void loop() {// Diplay Animation// Frame1display.clearDisplay();display.drawBitmap(30,0,RUN1, 80, 32, 1);display.display();delay(50);// Frame2display.clearDisplay();display.drawBitmap(30,0,RUN2, 80, 32, 1);display.display();delay(50);// Frame3display.clearDisplay();display.drawBitmap(30,0,RUN3, 80, 32, 1);display.display();delay(50);// Frame4display.clearDisplay();display.drawBitmap(30,0,RUN4, 80, 32, 1);display.display();delay(50);// Frame5display.clearDisplay();display.drawBitmap(30,0,RUN5, 80, 32, 1);display.display();delay(50);// Frame6display.clearDisplay();display.drawBitmap(30,0,RUN6, 80, 32, 1);display.display();delay(50);// Frame7display.clearDisplay();display.drawBitmap(30,0,RUN7, 80, 32, 1);display.display();delay(50);// Frame8display.clearDisplay();display.drawBitmap(30,0,RUN8, 80, 32, 1);display.display();delay(50);// Frame9display.clearDisplay();display.drawBitmap(30,0,RUN9, 80, 32, 1);display.display();delay(50); // Frame10display.clearDisplay();display.drawBitmap(30,0,RUN10, 80, 32, 1);display.display();delay(50);

用arduino和OLED制作火柴人奔跑動畫(flash火柴人跑步制作)

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。