用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

相关推荐

  • 江西南昌跨境电商“9610”业务正式开通运营

    南昌跨境电商“9610”业务正式开通运营,这标志着南昌跨境电商实现了国际邮件、快件、跨境电商监管“三关合一”。 刘力鑫 摄 南昌跨境电商“9610”业务正式开通运营,这标志着南昌跨…

    科研百科 2024年7月8日
    59
  • 科研项目结题验收申请书

    科研项目结题验收申请书 尊敬的评审专家: 我谨向贵单位提交本科研项目结题验收申请书,以此证明我们已经完成了该项目的研发和实验工作,并达到了预期的目标。 该项目旨在研发一种高效节能的…

    科研百科 2025年5月26日
    0
  • 免费装修公司管理软件(免费装饰管理软件)

    免费装饰管理软件 随着现代装饰行业的快速发展,人们对于装饰管理的需求也在不断增加。但是,传统的手动管理方式已经无法满足现代的装饰企业的需求。因此,免费装饰管理软件应运而生。 免费装…

    科研百科 2024年6月3日
    44
  • 简单免费项目管理软件

    简单免费项目管理软件 随着现代商业的快速发展,项目管理软件已经成为了企业成功的关键因素之一。现在,有许多免费和开源的项目管理软件可供选择,这些软件能够帮助我们高效地管理项目,提高生…

    科研百科 2024年7月23日
    61
  • 海南省机构代码向统一代码的过渡基本完成(海南发证机关代码)

    海南省政府网最新动态:按照国务院的统一部署,至2017年底,海南省机构代码向统一代码的过渡基本完成,34万个体工商户、13万法人及其他组织已100%完成换(赋)码,错码率在全国各省…

    科研百科 2024年2月17日
    146
  • 接大学的科研项目有哪些

    接大学的科研项目有哪些 近年来,随着科学技术的飞速发展,大学在科研项目方面不断取得突破。接大学作为我国科学技术的重要机构之一,其科研项目更是丰富多样。本文将为您介绍接大学的科研项目…

    科研百科 2025年4月30日
    1
  • 研发项目进度管理

    研发项目进度管理 在软件开发行业中,项目进度管理是非常重要的一项工作。通过合理的进度管理,项目团队可以按时完成任务,保证项目的质量,并降低项目的风险。本文将介绍研发项目进度管理的重…

    科研百科 2024年8月15日
    35
  • 教育统计管理系统怎么删除项目

    教育统计管理系统是一个用于收集,整理,分析和呈现教育数据的软件系统。删除项目是一个重要的操作,可以帮助我们清理不必要的数据,节省存储空间,提高工作效率。下面是删除项目的具体步骤: …

    科研百科 2025年7月12日
    1
  • 惠普战X 锐龙版体验,高端经典商务本再升级,首发5299元香不香?(惠普战x锐龙版配置)

    在高端商务本市场,惠普“薯条”logo轻薄本已经化身为一种品牌信念,备受高端商务用户的青睐。 而惠普战X系列轻薄本作为市场不可忽略的产品,有很多超越其他品牌的设计和卖点,比如出色的…

    2022年8月18日
    340
  • 科研项目规范化管理

    科研项目规范化管理 科研项目是现代科技发展的重要支撑,也是推动科技进步的重要力量。然而,随着科技的快速发展,科研项目管理也面临着许多挑战和问题。其中,规范化管理是解决这些问题的重要…

    科研百科 2025年4月18日
    2