Funpack第六期MAX32660-EVSYS热成像兼时间显示
本设计是基于MAX32660板卡开发的一款热成像兼时间显示的显示屏
标签
嵌入式系统
显示
硬核电路
更新2021-03-31
1181

本设计具有以下功能:

  • 热成像显示,采用松下的mg8833红外阵列
  • 以24小时制显示时、分信息


本次设计采用KEIL5进行开发,下面简要介绍开发过程:

红外到彩色映射表


float pixels[64];
int16_t pixelsRaw[64];


#define RESIZE_X 32
#define RESIZE_Y 32
#define PixSize 2
int16_t pixelsRawResize[RESIZE_X*RESIZE_Y];


const uint16_t camColors[] = {0x480F,0x3810,0x2010,0x1011,0x0011,0x00B2,0x0152,0x0213,
                              0x02D3,0x03B4,0x0474,0x0554,0x0572,0x058F,0x05AC,0x05C9,
                              0x05E6,0x0603,0x0620,0x1E40,0x3E60,0x5E80,0x7EA0,0x9EC0,
                              0xBEE0,0xDEE0,0xE600,0xE500,0xEC00,0xEB00,0xF200,0xF0E0,
                             };

采集数据和插值缩放 


readPixelsRaw(pixelsRaw);
        for(i=0; i<64; i++)
            pixelsRaw[i] = (pixelsRaw[i])>>2;


        resizeBilinearGrey(pixelsRaw, pixelsRawResize, 8, 8, RESIZE_X, RESIZE_Y);

彩屏绘制

for(i=0; i<64; i++)
            pixelsRaw[i] = pixelsRaw[i] << 0;
        for(i = 0; i < RESIZE_Y; i++)
        {
            for (j = 0; j < RESIZE_X; j++)
            {
                LCD_Fill((0+(i)*PixSize),135-(0+(j+1)*PixSize),(0+(i+1)*PixSize),135-(0+(j)*PixSize), pixelsRawResize[j*RESIZE_Y+i]);//pixelsRaw[j*8+i]);//camColors
            }
        }
for(i=0; i<64; i++)
            pixelsRaw[i] = pixelsRaw[i] << 0;
        for(i = 0; i < RESIZE_Y; i++)
        {
            for (j = 0; j < RESIZE_X; j++)
            {
                LCD_Fill((0+(i)*PixSize),135-(0+(j+1)*PixSize),(0+(i+1)*PixSize),135-(0+(j)*PixSize), pixelsRawResize[j*RESIZE_Y+i]);//pixelsRaw[j*8+i]);//camColors
            }
        }
for(i=0; i<64; i++)
            pixelsRaw[i] = pixelsRaw[i] << 0;
        for(i = 0; i < RESIZE_Y; i++)
        {
            for (j = 0; j < RESIZE_X; j++)
            {
                LCD_Fill((0+(i)*PixSize),135-(0+(j+1)*PixSize),(0+(i+1)*PixSize),135-(0+(j)*PixSize), pixelsRawResize[j*RESIZE_Y+i]);//pixelsRaw[j*8+i]);//camColors
            }
        }
时间显示
 day = sec / SECS_PER_DAY;
        sec -= day * SECS_PER_DAY;


        hr = sec / SECS_PER_HR;
        sec -= hr * SECS_PER_HR;


        min = sec / SECS_PER_MIN;
        sec -= min * SECS_PER_MIN;


        LCD_ShowChar(70, 8, (char)(48+hr/10),0,BROWN);
        LCD_ShowChar(80, 8, (char)(48+hr%10),0,BROWN);
        LCD_ShowChar(90, 8, (char)(46+(sec%2?12:0)),0,BROWN);
        LCD_ShowChar(100, 8, (char)(48+min/10),0,BROWN);
        LCD_ShowChar(110, 8, (char)(48+min%10),0,BROWN);
心得体会:
之前也了解过硬禾学堂,但是一直没有参与他们的活动,这一次能够参与Funpack活动真的很幸运。本次开发使用的软件是KEIL5,有一定的使用基础,所以上手还是比较快的,本次所用到的红外阵列之前一直没有机会用,正好趁着这次活动调通,发现显示效果很是很不错的,希望以后能多多参与硬禾学堂举办的活动,真的能学到很多东西,受益匪浅。

附件下载
Code.zip
团队介绍
团队成员
a da
学生
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号