【掌控】光线传感器—送给妈妈的礼物
母亲是一艘大船,载着我驶向大海,去追寻生命的奥秘,去探索世界的神奇;母亲是一座高山,蕴藏着万物,哺育我成长,强壮我的身心;母亲是丝丝春雨,滋润着大地万物;母亲,我爱你,你是我心中永远的最爱;
母亲马上过生日了,为妈妈设计一个小礼物—智能灯光生日音乐盒, 祝母亲永远幸福,永远健康!
一、要求: 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.选择参数,输出数据类型语言数组]、扫描模式[水平扫描]、输出灰度[单色]、宽高(注意:一定要根据实际图片效果来调整亮度和对比度,已达到最佳显示效果)步骤3.保存数据:点击保存,填写好文件名,自动会弹出图像的取模值。但是我们在使用的时候一定要注意:前面的注释部分(下图中的蓝色部分)不能写入一会儿的程序中。三、编写代码1.库的说明:掌控库:mpython*; 音乐库:music.py;时间库:time.py; 图片库:framebuf.py2.编程流程图:3.代码编写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 = (255,0,0) # 设置红色
rgb = (255,0,0)# 设定为红色
rgb = (255,0,0) # 设置为红色
rgb.write()
music.play(music.BIRTHDAY)
else:
if light.read() >1500:
rgb = (0,255,0) # 设置绿色
rgb = (0,255,0)# 设定为绿色
rgb = (0,255,0) # 设置为绿色
rgb.write()
#music.play(music.PYTHON)
music.play(music.BIRTHDAY)
else:
if light.read() > 200 :
rgb = (0,0,255) # 设置蓝色
rgb = (0,0,255)# 设定为蓝色
rgb = (0,0,255) # 设置为蓝色
rgb.write()
music.play(music.BIRTHDAY)
else:
if light.read() < 200 :
rgb = (0,0,0)
rgb = (0,0,0)
rgb = (0,0,0)
rgb.write()四、知识拓展: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点阵。(仅供参考)五、视频回放https://v.youku.com/v_show/id_XMzkyMDk0NTIwMA==.html?spm=a2hzp.8244740.0.0
康老师很有爱啊,大赞。{:5_148:} 谢谢分享! 多交流,多沟通
页:
[1]