“Microduino点阵模块显示BMP彩图/zh”的版本间的差异
(Created page with "{{Language|Microduino Matrix BMP}} {| style="width: 800px;" |- | ==概述== ==材料清单== *Microduino设备 {|class="wikitable" |- |模块||数量||功能 |- |Microduino...") |
|||
第5行: | 第5行: | ||
| | | | ||
==概述== | ==概述== | ||
+ | 我们的全彩点阵屏幕(wiki)有好用的库支持(Github) | ||
+ | 你可以用这个库使点阵显示文字,画点画线画圈 | ||
+ | 你也可以用这个库使点阵显示位图:(函数:drawBMP(x,y,w,h,data)) | ||
+ | 不过之前位图功能仅限单色图,还要通过取摸软件取摸,稍显不便 | ||
+ | 当我们想显示彩色图片时候就不够方便了,有没有一种图片格式是好获取的,Microduino能解码的呢? | ||
+ | 有,这个图片格式就是BMP(全称Bitmap),是Windows操作系统中的标准图像文件格式 | ||
==材料清单== | ==材料清单== | ||
*Microduino设备 | *Microduino设备 | ||
第21行: | 第27行: | ||
|} | |} | ||
==实验原理== | ==实验原理== | ||
+ | 典型的BMP图像文件由四部分组成: | ||
+ | 位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息; | ||
+ | 位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息 | ||
+ | 调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板 | ||
+ | 位图数据,这部分内容根据BMP位图位数而变化,在24位中直接使用RGB,而其他的小于24位的使用调色板中颜色索引 | ||
+ | |||
+ | 想了解更具体,可以看看吴嘉乐同学的研究成果:wiki | ||
+ | 因为我们的点阵屏也是24位的,理所当然我就按24位BMP图片加上了位图显示功能(函数:drawBMP(x,y,data)) | ||
+ | 这个函数是基于Adafruit的spitftbitmap例程移植的,将BMP图像储存在Flash储存中,不多占用内存空间 | ||
==程序下载== | ==程序下载== | ||
==程序烧写== | ==程序烧写== | ||
==拼装过程== | ==拼装过程== | ||
+ | Step.1: | ||
+ | 首先,我们先找个小的图片素材,比如这个网站:http://www.pp3.cn/icon/size/16_16/2011/1128/821.html | ||
+ | |||
+ | |||
+ | Step.2: | ||
+ | 随便选一个存起来 | ||
+ | 用画图打开 | ||
+ | 另存为24位的BMP格式 | ||
+ | |||
+ | |||
+ | Step.3: | ||
+ | 下载并且打开工具:DataToHex | ||
+ | 打开你存好的BMP文件 | ||
+ | 框内两项勾选确定无误后点击生成数组 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Step.4: | ||
+ | 接下来在这个BMP目录内打开生成好的同名TXT文件 | ||
+ | 复制数组内的内容 | ||
+ | 替换示例程序中的BinCode数组中内容 | ||
+ | 下载你的程序到点阵中(2x2阵列) | ||
+ | |||
==操作说明== | ==操作说明== | ||
==代码说明== | ==代码说明== | ||
+ | <source lang="cpp"> | ||
+ | #include "Microduino_Matrix.h" | ||
+ | |||
+ | uint8_t Addr[MatrixPix_X][MatrixPix_Y] = { | ||
+ | { 64, 63}, | ||
+ | { 62, 61} | ||
+ | }; | ||
+ | |||
+ | Matrix display = Matrix(Addr); | ||
+ | |||
+ | static const uint8_t BinCode[] PROGMEM = { | ||
+ | |||
+ | }; | ||
+ | |||
+ | void setup(void) { | ||
+ | delay(6000); | ||
+ | Serial.begin(115200); | ||
+ | |||
+ | Wire.begin(); | ||
+ | display.clearDisplay(); | ||
+ | display.drawBMP(0, 0, BinCode); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | } | ||
+ | </source> | ||
==FAQ== | ==FAQ== |
2016年3月22日 (二) 03:05的版本
Language | English |
---|
概述我们的全彩点阵屏幕(wiki)有好用的库支持(Github) 你可以用这个库使点阵显示文字,画点画线画圈 你也可以用这个库使点阵显示位图:(函数:drawBMP(x,y,w,h,data)) 不过之前位图功能仅限单色图,还要通过取摸软件取摸,稍显不便 当我们想显示彩色图片时候就不够方便了,有没有一种图片格式是好获取的,Microduino能解码的呢? 有,这个图片格式就是BMP(全称Bitmap),是Windows操作系统中的标准图像文件格式 材料清单
实验原理典型的BMP图像文件由四部分组成: 位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息; 位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息 调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板 位图数据,这部分内容根据BMP位图位数而变化,在24位中直接使用RGB,而其他的小于24位的使用调色板中颜色索引 想了解更具体,可以看看吴嘉乐同学的研究成果:wiki 因为我们的点阵屏也是24位的,理所当然我就按24位BMP图片加上了位图显示功能(函数:drawBMP(x,y,data)) 这个函数是基于Adafruit的spitftbitmap例程移植的,将BMP图像储存在Flash储存中,不多占用内存空间 程序下载程序烧写拼装过程Step.1: 首先,我们先找个小的图片素材,比如这个网站:http://www.pp3.cn/icon/size/16_16/2011/1128/821.html
操作说明代码说明#include "Microduino_Matrix.h"
uint8_t Addr[MatrixPix_X][MatrixPix_Y] = {
{ 64, 63},
{ 62, 61}
};
Matrix display = Matrix(Addr);
static const uint8_t BinCode[] PROGMEM = {
};
void setup(void) {
delay(6000);
Serial.begin(115200);
Wire.begin();
display.clearDisplay();
display.drawBMP(0, 0, BinCode);
}
void loop() {
}
FAQ |