• 上海合作组织青岛峰会举行 2019-04-20
  • 遭遇隐形歧视 就业权益谁来维护 2019-04-20
  • 杨立新解读2018年天津市《政府工作报告》--天津频道--人民网 2019-04-19
  • 【北京海之沃车型报价】北京海之沃4S店车型价格 2019-04-19
  • 让个体诚信有力推动社会诚信 2019-04-13
  • 习近平会见巴基斯坦总统侯赛因 2019-04-13
  • 罗亦农:“残躯何足惜,大敌正当前” 2019-03-21
  • 由进口至出口再至走向世界,这一路着实不易,其中少不了无数位科研人员的奉献与牺牲。 2019-03-21
  • 查看: 1514|回复: 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

    浙江6加1开奖结果
  • 上海合作组织青岛峰会举行 2019-04-20
  • 遭遇隐形歧视 就业权益谁来维护 2019-04-20
  • 杨立新解读2018年天津市《政府工作报告》--天津频道--人民网 2019-04-19
  • 【北京海之沃车型报价】北京海之沃4S店车型价格 2019-04-19
  • 让个体诚信有力推动社会诚信 2019-04-13
  • 习近平会见巴基斯坦总统侯赛因 2019-04-13
  • 罗亦农:“残躯何足惜,大敌正当前” 2019-03-21
  • 由进口至出口再至走向世界,这一路着实不易,其中少不了无数位科研人员的奉献与牺牲。 2019-03-21