查看: 1335|回复: 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.代码编写
[AppleScript] 纯文本查看 复制代码
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()
四、知识拓展:
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点阵。(仅供参考)
五、视频回放

Image2Lcd(破解版).rar

494.79 KB, 下载次数: 4, 下载积分: 创造力 -1

沙发

rzyzzxw  版主

发表于 2018-11-16 09:58:34

康老师很有爱啊,大赞。
板凳

44107900  见习技师

发表于 2018-12-29 16:37:19

谢谢分享!
地板

rzegkly  版主
 楼主|

发表于 2018-12-30 09:59:17

多交流,多沟通
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

极速赛车预测