5650| 3
|
【掌控】光线传感器—送给妈妈的礼物 |
母亲是一艘大船,载着我驶向大海,去追寻生命的奥秘,去探索世界的神奇; 母亲是一座高山,蕴藏着万物,哺育我成长,强壮我的身心; 母亲是丝丝春雨,滋润着大地万物; 母亲,我爱你,你是我心中永远的最爱; 母亲马上过生日了,为妈妈设计一个小礼物—智能灯光生日音乐盒, 祝母亲永远幸福,永远健康! 一、要求: 1、当light>3000时,全部蜡烛点亮,红灯亮,音乐BIRTHEDAY 响起 2、当light>1500时,一半蜡烛点亮,蓝灯亮,音乐BIRTHEDAY响起 3、当light>200时,三分之一蜡烛点灭,绿灯亮,音乐BIRTHEDAY响起 4、当light<200时,蜡烛未亮,灯灭,音乐BIRTHEDAY停止 二、生日蛋糕图形处理: 1、利用美图秀秀分别将生日蛋糕分辨率图片处理成45*45(蛋糕) 2、利用取模工具对图片进行取模。网上有PCtoLCD、lcd image converter等取模软件,可根据自己喜好自行选择。以下使用的是Img2Lcd工具。 步骤1.导入刚才修改后的图片 步骤2.选择参数,输出数据类型[C语言数组]、扫描模式[水平扫描]、输出灰度[单色]、宽高[128*64](注意:一定要根据实际图片效果来调整亮度和对比度,已达到最佳显示效果) 步骤3.保存数据:点击保存,填写好文件名,自动会弹出图像的取模值。但是我们在使用的时候一定要注意:前面的注释部分(下图中的蓝色部分)不能写入一会儿的程序中。 三、编写代码 1.库的说明: 掌控库:mpython*; 音乐库:music.py;时间库:time.py; 图片库:framebuf.py 2.编程流程图: 3.代码编写 [mw_shl_code=applescript,true]from mpython import * #掌控库 import time #时间库 import music #音乐库 import framebuf #图片bitmap数组 bmp1 = bytearray([\ 0X00,0X01,0X2D,0X00,0X2D,0X00, 0X00,0X00,0X00,0X01,0X00,0X00,0X01,0X00,0X30,0X43,0X04,0X00,0X03,0X84,0X38,0XE2, 0X8E,0X00,0X02,0X8E,0X28,0XA6,0X8A,0X00,0X06,0X8A,0X69,0XA6,0X8B,0X00,0X06,0X8A, 0X69,0XA6,0X9B,0X00,0X06,0X8A,0X28,0XA3,0X8A,0X00,0X03,0X0E,0X38,0XE3,0X8E,0X00, 0X06,0X8E,0X69,0XA6,0X8A,0X00,0X04,0X9A,0X49,0XB6,0X9B,0X00,0X04,0X92,0X4D,0XB4, 0X9B,0X00,0X04,0X92,0X4D,0XB4,0XD3,0X00,0X04,0XD3,0X4D,0X94,0XD1,0X00,0X04,0X92, 0X45,0X14,0XDF,0XC0,0X3F,0XFF,0XFF,0XFF,0XFF,0XE0,0X3E,0X00,0X00,0X00,0X00,0X60, 0X20,0X00,0X00,0X00,0X00,0X60,0X20,0X00,0X00,0X00,0X00,0X40,0X20,0X00,0X00,0X00, 0X00,0X40,0X20,0X00,0X00,0X00,0X00,0X40,0X20,0X00,0X00,0X00,0X00,0X40,0X20,0X00, 0X00,0X00,0X00,0X40,0X20,0X00,0X00,0X0E,0X00,0X60,0X20,0X30,0X38,0X1B,0X07,0X60, 0X20,0X28,0X78,0X11,0X05,0X60,0X24,0X48,0X4C,0X21,0X0D,0X60,0X3C,0X48,0XC4,0X61, 0X8F,0X60,0X14,0XCC,0XCC,0X40,0X9B,0XE0,0X06,0X85,0X7E,0XCE,0XB3,0XC0,0X0E,0X83, 0X33,0X9A,0X7D,0X00,0X0D,0X9C,0X00,0X13,0X01,0X00,0X0C,0X24,0X00,0X13,0X01,0X00, 0X0E,0X24,0X1C,0X1E,0X07,0X00,0X0D,0X1C,0X34,0X00,0X0D,0X00,0X0D,0X00,0X26,0X00, 0X09,0X00,0X05,0X00,0X34,0X00,0X0D,0X00,0X06,0X1C,0X1C,0X70,0X05,0X00,0X04,0X3E, 0X00,0XD8,0X03,0X00,0X04,0X22,0X00,0X88,0X01,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XF0, 0X60,0X00,0X00,0X00,0X00,0X18,0X60,0X00,0X00,0X00,0X00,0X10,0X7F,0XFF,0XFF,0XFF, 0XFF,0XF0,0X40,0X00,0X00,0X00,0X00,0X10,0X7F,0XFF,0XFF,0XFF,0XFF,0XF0, ]) # 生日蛋糕 该部分代码来自取模工具 fb1 = framebuf.FrameBuffer(bmp1,45,45, framebuf.MONO_HLSB) #创建45x45大小帧缓存区储存图片帧,水平扫描 while True: display.fill(0) #清屏 display.DispChar(' 祝你生日快乐! ',20,0) display.DispChar("亮度:",0,45) #显示亮度到0,45 display.text("%d" % (light.read()), 35, 48) #显示板载光线传感器 display.blit(fb1,65,15) #将fb1帧缓存送至oled显示,起始位(65,15) display.show() #刷新 time.sleep_ms(10) #延时10ms if light.read() > 3000 : rgb[0] = (255,0,0) # 设置红色 rgb[1] = (255,0,0) # 设定为红色 rgb[2] = (255,0,0) # 设置为红色 rgb.write() music.play(music.BIRTHDAY) else: if light.read() >1500: rgb[0] = (0,255,0) # 设置绿色 rgb[1] = (0,255,0) # 设定为绿色 rgb[2] = (0,255,0) # 设置为绿色 rgb.write() #music.play(music.PYTHON) music.play(music.BIRTHDAY) else: if light.read() > 200 : rgb[0] = (0,0,255) # 设置蓝色 rgb[1] = (0,0,255) # 设定为蓝色 rgb[2] = (0,0,255) # 设置为蓝色 rgb.write() music.play(music.BIRTHDAY) else: if light.read() < 200 : rgb[0] = (0,0,0) rgb[1] = (0,0,0) rgb[2] = (0,0,0) rgb.write()[/mw_shl_code] 四、知识拓展: 1、OLED显示技术具有自发光的特性,采用非常薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料就会发光,而且OLED显示屏幕可视角度大,并且能够节省电能,以OLED使用的有机发光材料来看, 2、以染料及颜料为材料的小分子器件系统,同时由于有机电致发光器件具有发光二极管整流与发光的特性,因此小分子有机电致发光器件亦被称为OLED(Organic Light Emitting Diode), 3、OLED的基本结构是由一薄而透明具半导体特性之铟锡氧化物(ITO),与电力之正极相连,再加上另一个金属阴极,包成如三明治的结构。整个结构层中包括了:空穴传输层(HTL)、发光层(EL)与电子传输层(ETL)。 4、当电力供应至适当电压时,正极空穴与阴极电荷就会在发光层中结合,产生光亮,依其配方不同产生红、绿和蓝RGB三基色,构成基本色彩。 5、OLED的特性是自己发光,不像TFT LCD需要背光,因此可视度和亮度均高,其次是电压需求低且省电效率高,加上反应快、重量轻、厚度薄,构造简单,成本低等,被视为 21世纪最具前途的产品之一. 6、一行显示不到12个汉字,即占点阵11*11,中文标点占11*11点阵 ,数字约6*9点阵。小写字母约点6*12点阵。大写字母约占8*9点阵。(仅供参考) 五、视频回放 |
494.79 KB, 下载次数: 2204
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed