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

用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年3月31日 下午12:17
下一篇 2024年3月31日 下午12:31

相关推荐

  • 协同办公系统oa开发

    协同办公系统(Office Automation,简称oa)是一种用于自动化办公室工作流程的软件系统。随着现代企业越来越注重效率和团队合作,oa成为了现代企业必备之物。本文将介绍协…

    科研百科 2025年1月5日
    0
  • 国家卫健委高级别专家组成员

    国家卫健委高级别专家组成员:在抗疫战争中发挥重要作用 2023年2月,新冠疫情再次爆发,国家卫健委高级别专家组成员立即行动起来,投入到抗疫战争中。他们肩负着国家的使命,以自己的专业…

    科研百科 2024年12月6日
    0
  • 科研项目退费政策文件

    科研项目退费政策文件 为规范科研项目经费使用,保障科学研究的顺利进行,现将科研项目退费政策文件发布如下: 一、适用范围 本政策文件适用于各类科研项目的经费退费。 二、退费原则 1….

    科研百科 5天前
    1
  • 项目时间管理的过程包括

    项目时间管理是指在项目启动后,通过制定计划,分配任务,跟踪进度,控制成本,解决问题等一系列活动来确保项目按时完成并达到预定目标的过程。在项目时间管理中,有效的计划和资源分配是至关重…

    科研百科 2024年9月27日
    18
  • 流程管理系统项目招标

    流程管理系统项目招标 随着企业规模的不断扩大和业务流程的不断复杂化,流程管理系统成为了企业必不可少的一项工具。为了满足市场需求,许多公司正在寻找高质量的流程管理系统,以便更好地管理…

    科研百科 2024年12月17日
    0
  • 工程项目管理中的合同管理

    工程项目管理中的合同管理 合同管理是工程项目管理中至关重要的一环,它是确保项目顺利实施、按时交付并达到预期目标的关键要素。在合同管理中,需要对合同的所有方面进行有效的管理和控制,以…

    科研百科 2025年1月7日
    0
  • 新时代加强对党忠诚教育实践路径研究(新时代加强对党忠诚教育实践路径研究的意见)

    党的二十大全面把握党和国家事业发展新要求、人民群众新期待,明确提出了新时代新征程中国共产党的使命任务。党之所以成为中国特色社会主义事业的坚强领导核心,其中一条重要原因就在于熔铸形成…

    科研百科 2023年6月15日
    107
  • 党建设施建设:奢侈浪费与严肃性之争(党建 浪费时间)

    正文: 近年来,党建设施作为对广大党员和群众进行党性教育和服务的重要载体和场所,在一些地方得到了更换更新、升级改造的重视。然而,半月谈记者的调查却发现,在一些基层地方的党建设施建设…

    科研百科 2023年11月11日
    121
  • 粤东西北博士博士后补贴

    粤东西北博士博士后补贴 近年来,随着博士博士后研究队伍数量的不断增加,粤东西北地区的博士博士后工作也越来越受到关注。作为一项非常重要的研究工作,博士博士后工作对于推动科学研究、促进…

    科研百科 2024年11月15日
    2
  • 五金建材进销存软件哪个好?(五金建材进销存用什么软件好)

    五金建材企业所有的产品类目较多,并且涉及的品类和品牌较为复杂。其中 还会涉及到零售分店等的协同管理。通常常见的问题有多门店无法协同管理 、库存产品数量多、销售效率低等。 如何提高企…

    2022年6月25日
    119