用arduino和OLED制作火柴人奔跑动画(flash火柴人跑步制作)

arduino和OLED制作火柴人奔跑动画

用arduino和OLED制作火柴人奔跑动画(flash火柴人跑步制作)

2.为动画创建位图

用arduino和OLED制作火柴人奔跑动画(flash火柴人跑步制作)

这可能是最耗时的步骤。你必须创建一组框架,这将适合128×32格式。您可以尝试从任何拖鞋剪贴片中创建它们,您可以在网上找到。

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

我创造了显示奔跑生物的帧,一共八张

3.连接

用arduino和OLED制作火柴人奔跑动画(flash火柴人跑步制作)

OLED

arduino

GND

GND

VCC

VCC

SDA

A4

SCK

A5

OLED 显示屏有四个引脚,分别是:
1.SDA(数据线) SCK(时钟线) VDD(3.3V) GND
2.在UNO开发板上I2C接口,SDA对应D4,SCK对应D5
3.在MEGA2560开发板上I2C接口,SDA对应D20, SCL对应D21

4.创建位图的代码表示

用arduino和OLED制作火柴人奔跑动画(flash火柴人跑步制作)用arduino和OLED制作火柴人奔跑动画(flash火柴人跑步制作)

①使用在线取模软件

用arduino和OLED制作火柴人奔跑动画(flash火柴人跑步制作)

要创建位图的代码表示,我们将使用在线工具

你可以找到它去下面的网址

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

②执行以下步骤:

  • Select Image(选择图像)部分,逐个打开帧文件
  • 通过检查图像设置部分检查上传的Image Settings(图像)是否正确
  • 如果想要具有黑色背景,并且只点亮线像素,请检查倒置图像颜色,在Background选择Black

用arduino和OLED制作火柴人奔跑动画(flash火柴人跑步制作)

  • Output(输出部分)在Code output format(代码输出格式)中指定"Arduino code ,single Bitmap"在Identifier/Prefix(标识符/前缀)中提供动画名称,必须要英文按Generate code(生成按钮)保存生成的代码。它将被粘贴到arduino编译器

4.创建动画代码

①首先,我们需要引用所需的头文件

#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

③引用函数库,里面有宣布通过 OLED 显示连接的引脚。有了这些别针,我们宣布显示器本身

#define OLED_RESET 4Adafruit_SSD1306 display(OLED_RESET);

然后,您必须复制粘贴我们从Image2cpp 中获得的代码

这是一个相当长的代码,所以我不会粘贴在这里的全部。我只显示一帧

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};

然后,在设置功能中,我们正在初始化 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)}

然后,我们有循环功能,我们重播所有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火柴人跑步制作)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月1日 上午11:53
下一篇 2024年5月1日 下午12:05

相关推荐

  • 四平信息系统项目管理

    四平信息系统项目管理 随着信息技术的不断发展,信息系统已经成为企业运营中不可或缺的一部分。在四平市,有许多企业已经开始使用信息系统来提高效率、降低成本、增强竞争力。因此,信息系统项…

    科研百科 2025年1月26日
    1
  • 2月22日新点软件涨6.69%,中庚价值先锋股票基金重仓该股(中庚价值先锋股票型基金怎么样)

    2月22日新点软件(688232)涨6.69%,收盘报55.05元,换手率3.06%,成交量2.97万手,成交额1.61亿元。该股为智慧政务、国产软件、数字经济、智慧城市概念热股。…

    科研百科 2023年3月14日
    285
  • 四川省文旅厅预算(四川省文旅厅科研项目申报)

    四川省文旅厅科研项目申报 近年来,四川省文化旅游厅一直致力于推动文化旅游产业的发展,通过加强文化旅游基础设施建设、推出一系列文化旅游产品、提升文化旅游服务质量等方式,取得了显著成效…

    科研百科 2024年4月3日
    65
  • 国家疾控局关于印发传染病疫情风险评估管理办法(试行)的通知

    来源:国家疾控局 国家疾控局关于印发传染病疫情风险评估管理办法(试行)的通知 国疾控监测发〔2023〕17号 各省、自治区、直辖市及新疆生产建设兵团疾控局,中国疾控中心: 为建立和…

    科研百科 2024年5月12日
    55
  • 项目管理费标准

    项目管理费标准 项目管理费是指项目组织者为组织项目成员提供项目管理和协作服务而收取的费用。项目管理费的标准通常由项目组织者根据项目的性质、规模和复杂性等因素制定。 项目管理费的标准…

    科研百科 2024年9月16日
    24
  • 建滔菁庭小区景观绿化工程施工及质量控制(建滔菁庭楼盘)

    建滔菁庭小区景观绿化工程施工及质量控制 _刘刚 住宅小区的绿化和种植物,既具备良好的观赏作用,也可以非常好地保护和调节住宅小区内部的自然生态环境,是小区内居民们进行休闲和观赏,以及…

    科研百科 2022年10月30日
    238
  • 青海的科研项目

    青海的科研项目 青海是一个位于中国西部的美丽省份,拥有丰富的自然资源和独特的民族文化。近年来,青海的科研项目取得了显著进展,为当地经济和社会发展做出了重要贡献。 在青海,科研项目主…

    科研百科 2025年3月10日
    1
  • 管理论文(Management)(管理论文题目)

    管理论文(Management)是一种研究管理理论和实践的学术文献,旨在探讨如何有效地组织和管理组织内的资源,以实现组织的目标。在这篇文章中,我们将从不同的角度来描述管理论文。 首…

    科研百科 2024年1月22日
    170
  • 旅行社管理系统项目范围

    旅行社管理系统项目概述 随着旅游业的不断发展,旅行社的管理和运营也变得越来越复杂。为了更高效地管理旅行社的业务,开发一套旅行社管理系统变得非常重要。旅行社管理系统可以帮助旅行社实现…

    科研百科 2025年1月20日
    1
  • 项目管理计划与进度

    项目管理计划与进度是项目管理中至关重要的两个方面。一个好的项目管理计划与进度可以帮助项目团队更好地理解项目目标,制定合理的计划,并有效地控制项目进度。本文将介绍项目管理计划与进度的…

    科研百科 2024年8月19日
    46