企业号介绍

全部
  • 全部
  • 产品
  • 方案
  • 文章
  • 资料
  • 企业

合宙LuatOS

68内容数 2.4w浏览量 55粉丝

在物联网领域,实现国产操作系统的领头羊地位,是中国企业的社会责任。

嵌入式工程师的520表白

05-23 50浏览量

点灯,嵌入式工程师难以割舍的独有情怀。也只有他们才能这么大胆,用耀眼绿光在温馨霓虹中跳脱闪现,变幻中演绎与众不同的浪漫爱意。

520点灯表白,为爱发光——今晚就脱单!快来~

本教程示例采用合宙LuatOS-SoC系列Air105开发板、WS2812系列LED光源演示

 

 

1
 

LuatOS-SoC驱动WS2812的三种方式


 

 

WS2812是一款比较常用的外控集成LED光源,控制简单,应用领域极广——包括但不限于表白。
 

具有低电压驱动、环保节能、亮度高、散射角度大、一致性好、低功率及超长寿命等优点。
 

驱动WS2812需要满足如下条件,显然不是所有MCU都能支持的:

 

 LuatOS-SoC三种驱动方式

 

 


 

合宙LuatOS-SoC在支持GPIO直驱的情况下,加入了PWM和SPI驱动的方法:

sensor.ws2812b_pwm(pin,data)

sensor.ws2812b_spi(pin,data)

 

下面看看这两个函数对硬件要求:

sensor.ws2812b_pwm(pin,data):
800k的PWM输出频率

sensor.ws2812b_spi(pin,data):
5Mbps的SPI输出速率

 

显然,这要求就很低了。三种驱动方式,总有一款适合你:

Air101/Air103系列:

推荐使用SPI驱动方式;

Air105系列:

推荐使用PWM驱动方式,也可使用SPI驱动方式;GPIO直驱也可以,但实际有点勉强。

 

 

 

 

2

520表白程序开发/demo下载


 


 

 

接下来,我们正式编写表白程序。

01

首先将我们要显示的内容,换算成GBR颜色数组:

local show_520 = {
   {0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff},
   {0x0000ff,0x00ff00,0x00ff00,0x0000ff,0x0000ff,0x00ff00,0x00ff00,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff},
   {0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x0000ff,0x00ff00,0x00ff00,0x00ff00,0x0000ff,0x00ff00,0x00ff00,0x00ff00,0x0000ff,0x00ff00,0x00ff00,0x00ff00,0x0000ff,0x0000ff,0x0000ff,0x0000ff},
   {0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x0000ff,0x00ff00,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x00ff00,0x0000ff,0x00ff00,0x0000ff,0x00ff00,0x0000ff,0x0000ff,0x0000ff,0x0000ff},
   {0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x0000ff,0x00ff00,0x00ff00,0x00ff00,0x0000ff,0x00ff00,0x00ff00,0x00ff00,0x0000ff,0x00ff00,0x0000ff,0x00ff00,0x0000ff,0x0000ff,0x0000ff,0x0000ff},
   {0x0000ff,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x00ff00,0x0000ff,0x00ff00,0x0000ff,0x0000ff,0x0000ff,0x00ff00,0x0000ff,0x00ff00,0x0000ff,0x0000ff,0x0000ff,0x0000ff},
   {0x0000ff,0x0000ff,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x0000ff,0x0000ff,0x0000ff,0x00ff00,0x00ff00,0x00ff00,0x0000ff,0x00ff00,0x00ff00,0x00ff00,0x0000ff,0x00ff00,0x00ff00,0x00ff00,0x0000ff,0x0000ff,0x0000ff,0x0000ff},
   {0x0000ff,0x0000ff,0x0000ff,0x00ff00,0x00ff00,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff,0x0000ff},

}local show_520_w = 24local show_520_h = 8

 

 

 

 

02之后,申请一个8*8的zbuff空间:

local ws2812_w = 8local ws2812_h = 8
local buff = zbuff.create({ws2812_w,ws2812_h,24},0x000000)

 

 

 

03然后,我们做一个简单的滚动显示函数就可以了:

local function ws2812_roll_show(show_data,data_w)
   local m = 0
   while 1 do
       for j=0,ws2812_w-1 do
           if j%2==0 then
               for i=ws2812_w-1,0,-1 do
                   if m+ws2812_w-i>data_w then
                       buff:pixel(i,j,show_data[j+1][m+ws2812_w-i-data_w])                    else
                       buff:pixel(i,j,show_data[j+1][m+ws2812_w-i])                    end
               end
           else
               for i=0,ws2812_w-1 do
                   if m+i+1>data_w then
                       buff:pixel(i,j,show_data[j+1][m+i+1-data_w])                    else
                       buff:pixel(i,j,show_data[j+1][m+i+1])                    end
               end
           end
       end
       m = m+1
       if m==data_w then m=0 end
       sensor.ws2812b_pwm(5,buff)--此处使用pwm方法驱动,当然也可以用gpio,spi方式,API详情查看wiki https://wiki.luatos.com/api/sensor.html
       -- sensor.ws2812b_spi(0,buff)

       sys.wait(300)   
     end
end

 

 

 

好,我们的点灯表白程序写好了。前面没看视频的同学,来看一下点灯效果吧:

每个闪耀的LED,都是满满爱意

你学会了吗?

快来试试看!

发挥你的点灯创意为爱发光吧

 

 

最近浏览过的用户(0查看全部

为你推荐

  • 激战国产MCU,合宙9.9元Air32F103开发板新品火爆上市2022-06-21 00:24

    漫漫国产路,激战突围方能破局。6月7日,合宙首发MCU新品Air32F103CBT6芯片超值含税价仅5.8元;今天,工程师朋友们期待的配套开发板全新出击——9.9元,含税、包邮、不限量!1合宙Air32F103开发板简介Air32F103开发板采用Air32F103CBT6芯片,兼容主流F103开发方式,内置DAPLink固件。秉承合宙MCU系列超值特性,严
    mcu
    157浏览量
  • 便宜好玩,量产无忧!合宙ESP32-C3开发板超值简约款来了2022-06-16 00:30

    总被抢断货的ESP32-C3核心板,原是合宙回馈行业的一个福利。不仅深受广大开发爱好者的喜爱,“十块钱不白花,一年四季都用它”;也常有行业客户询问:量产应用可以做到9.9元吗?很有挑战,但合宙给出的答案是——可以!现特别推出新版超值简约款,9.9元不限量供应,满足各类量产应用需求。1合宙ESP32-C3核心板特色及差异合宙ESP32-C3核心板——基于乐鑫E
    207浏览量
  • 新版发布 | 流畅体验,摄像头实时视频传输——只需19.9元国产MCU套件就能做到2022-06-11 00:37

    实时流畅的摄像头视频传输,必须用昂贵的设备、复杂的算法吗?——19.9元的国产MCU套件就可以实现,简单易用!合宙Air105最新V0008固件,为行业应用带来更多可能。1合宙Air105V0008固件特色合宙Air105最新V0008固件共计修正/优化/新增18项,除了开篇演示的摄像头实时视频传输功能,更在网络模式、LVGL、屏幕驱动、FOTA等多方面全新
    mcu
    142浏览量
  • 合宙Air32F103系列国产MCU新品震撼来袭2022-06-08 14:07

    2020年全球缺芯以来,某SXX32系列MCU价格一路飙升,涨价到正常价格的十几倍。经常有客户朋友问:合宙什么时候能出个兼容SXX32的单片机?本着工程师需要合宙造的原则,合宙Air32F103系列单片机重磅来袭——首发Air32F103CBT6芯片,超值含税价5.8元,量大价更优;配套开发板近期即将上市,敬请期待!1Air32F103CBT6芯片简介合宙A
    mcu
    619浏览量
  • 如何用MCU播放SD卡视频?——合宙Air105最新demo带你轻松上手2022-05-31 00:29

    近期好些小伙伴看到SD卡视频播放效果觉得很不错,询问有没有相关教程。今天我们将以合宙高性能超值款MCU——Air105开发板为例进行讲解,文末【阅读原文】链接获取最新demo源码。Air105开发板播放SD卡视频在进行之前先说一下原理,原理很简单——就是通过MCU,将SD卡中的视频字节流数据读出来在LCD上绘制。01相关准备工作硬件准备:Air105开发板L
    mcu
    123浏览量
  • 嵌入式工程师的520表白2022-05-23 22:10

    点灯,嵌入式工程师难以割舍的独有情怀。也只有他们才能这么大胆,用耀眼绿光在温馨霓虹中跳脱闪现,变幻中演绎与众不同的浪漫爱意。520点灯表白,为爱发光——今晚就脱单!快来~本教程示例采用合宙LuatOS-SoC系列Air105开发板、WS2812系列LED光源演示,文末【阅读原文】链接获取最新demo源码。1LuatOS-SoC驱动WS2812的三种方式WS2
    50浏览量
  • 便宜的国产MCU,量产应用安全吗?——Air105加密为你准备好了2022-05-14 00:29

    这几月,不断演进的合宙MCU系列,特别是性能优异且劲爆低价的Air105,已陆续应用于各行业的量产产品。也有新朋友担忧:量产安全吗?Flash会被复制盗版吗?——不必担心,Air105加密方案已为你备好。Air105目前有2种量产加密方案:一种是对Core的部分代码加密,用户的关键数据或者算法放在加密区。这种方式需要编译源码,对用户开发能力有一定要求,如需要
    mcu
    60浏览量
  • 国产当自强!合宙Air105系列高效低成本MCU,全新升级联网方案2022-05-10 00:25

    破解MCU应用难题,国产当自强!MCU进击派代表合宙Air105全新升级——支持有线以太网联网,提供稳定可靠的物联网传输能力。优异性能+劲爆低价,Air105为行业应用提供了高效低成本全新方案:适用于门禁、考勤、POS/一卡通、智能电表/水表、自助银行/楼宇自控系统、电力/机房/环境监控、智能报警/消防联动、工厂自动化等等,各类需要联网控制的应用场景。1合宙
    mcu
    301浏览量
  • 如何快速集成C/C++?合宙LuatOS NDK开发方案来了2022-04-26 00:31

    对于商用的LuatOS系统,Lua虚拟机部分是闭源的,用户无法直接集成C/C++代码。怎么办?!针对上述问题,合宙全新推出LuatOSNDK开发解决方案,简单易上手,且无需过多关注本地化实现部分。1LuatOSNDK开发简介LuatOSNDK(NativeDevelopmentKit)——是一种本地化接口(芯片硬件提供的原始接口)开发工具集,以下简称为NDK
    103浏览量
  • 可视化+科技风,你也可以!合宙全新开源——数据采集控制器UI参考方案2022-04-23 00:36

    可视化数据,科技风中控——以往需要花大价钱请专业公司开发,现在你自己就可以快速设计。合宙全新推出数据采集控制器UI参考方案,源码全面开放,支持二次开发。在UI基础上添加业务控制逻辑,即可轻松解决4G通信+图形界面开发应用难题,项目量产省时省钱省力!数据采集控制器UI参考方案▼金牛座演示视频▼更多项目实战方案,文末【阅读原文】链接直达。手里有金牛座开发板的朋友
    88浏览量