0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式工程师的520表白

合宙LuatOS 2022-05-26 14:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

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

1

LuatOS-SoC驱动WS2812的三种方式


06db5fb2-daa2-11ec-b80f-dac502259ad0.gif

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

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

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

08228b98-daa2-11ec-b80f-dac502259ad0.png

0845adb2-daa2-11ec-b80f-dac502259ad0.gif

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直驱也可以,但实际有点勉强。

086be752-daa2-11ec-b80f-dac502259ad0.png

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

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

090f2d36-daa2-11ec-b80f-dac502259ad0.gif

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

你学会了吗?

快来试试看!

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5186

    文章

    20165

    浏览量

    329080
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式就业形势好不好?

    投身该领域的工程师提供参考。 一、行业热闹背后的就业现实 近年来,随着物联网、人工智能等技术的兴起,嵌入式行业迎来了前所未有的发展机遇。岗位需求看似繁多,但企业对于人才的要求却日益严苛。 过去,掌握
    发表于 11-10 11:48

    硬件工程师嵌入式软件哪个更有前途?

    不少人琢磨硬件工程师嵌入式软件到底哪个更有前途,其实从实际职场情况和成长路子看,差别还挺清楚的。先说说天花板这事,一般来讲,硬件工程师的职业天花板还真比嵌入式软件低 —— 硬件岗位大
    的头像 发表于 09-10 10:43 802次阅读

    招镶入工程师1个,硬件工程师一个,

    东莞市研生科技有限公司是一家蓝牙方案公司,主营蓝牙方案的设计开发,产品包括蓝牙BLE/4G透传/AI智能体方案开发,因公司发展需要需对外招聘嵌入式软件开发工程师,对蓝牙音频/BLE以及智能IC读卡器有三年实操经验,能单独完成项目的软件开发,男女不限,投简历邮箱:65905
    发表于 08-29 02:14

    电子发烧友工程师看!电子领域评职称,技术之路更扎实

    电子发烧友的各位工程师、硬件开发者们,咱们每天在平台查芯片手册、讨论电路设计难题、分享嵌入式项目经验,从调试 PCB 板到开发 AIoT 系统,靠的都是过硬的技术实力 —— 而电子领域的职称评审
    发表于 08-20 13:53

    嵌入式工程师为什么要学QT?

    Qt对嵌入式工程师来说,真的很重要吗? Qt是一个跨平台的C++应用程序开发框架,非常适合嵌入式系统的开发,Qt在嵌入式开发中具有很重要的作用。 在项目实践中可以看出,Qt在工业自动化
    发表于 08-14 15:15

    嵌入式工程师的进阶之路

    嵌入式工程师的进阶之路 (一)初级工程师(0-3 年)核心技能: 单片机开发:STM32F103系列 GPIO/USART/SPI 外设驱动,能完成 LED 呼吸灯、按键检测、串口通信等基础项目
    发表于 08-13 11:08

    盘点嵌入式就业所需要的技能有哪些?

    基础,能够进行高性能计算和数据处理。 - 了解自动驾驶技术的基本原理,如传感器融合、路径规划等。 - 具备良好的沟通能力和团队合作精神,能够与不同领域的工程师协作。 2.智能手机行业: - 熟悉嵌入式编程
    发表于 08-11 15:43

    如何成为一名嵌入式软件工程师

    如何成为一名嵌入式软件工程师? 01明确岗位的角色与定位 嵌入式软件工程师主要负责开发运行在特定硬件平台上的软件,这些软件通常与硬件紧密集成,以实现特定的功能。 不仅需要精通编程语言
    发表于 04-15 14:37

    嵌入式系统开发圣经【干货】

    内容包括:嵌入式系统的介绍、嵌入式SoC硬件系统概论、嵌入式系统软件开发。适用于产品主管、系统设计分析人员及欲进入该领域的工程师。本资料详细的理论讲解,广泛深入地分析相关的
    发表于 03-12 13:58

    嵌入式软件工程师就业好不好?

    嵌入式软件工程师就业好不好?会不会越老越吃香?今天一起来看看。 首先看下市场需求。 随着物联网、人工智能、5G等前沿技术的快速发展,嵌入式系统的应用领域不断扩大,从智能家居、汽车电子到工业自动化
    发表于 02-20 10:19

    如何成为嵌入式开发工程师

    如何成为嵌入式开发工程师? 成为嵌入式开发工程师通常需要掌握一系列技能和知识,并且在实践中不断积累经验。以下是一些基本步骤和建议: 1. 基础教育:- 获取电子
    发表于 02-19 10:39

    月薪 3 万的嵌入式工程师都在用,串口屏到底神在哪?

    作为一名资深的嵌入式工程师,我深知在选择硬件组件时,性能、可靠性、易用性和成本效益都是至关重要的考量因素。月薪3万的嵌入式工程师们之所以倾向于使用串口屏,主要是基于以下几个方面的考量
    的头像 发表于 02-12 10:33 965次阅读
    月薪 3 万的<b class='flag-5'>嵌入式</b><b class='flag-5'>工程师</b>都在用,串口屏到底神在哪?

    年薪30万的嵌入式工程师,究竟需要掌握哪些技能?

    随着智能硬件、物联网、智能汽车、自动化控制等领域的迅速发展,嵌入式工程师的需求也水涨船高。尤其是在全球化和技术加速的时代,嵌入式开发不仅是一个热门行业,还是跨学科技术与创新的交汇点。对于那些具备扎实
    的头像 发表于 01-16 10:59 2058次阅读
    年薪30万的<b class='flag-5'>嵌入式</b><b class='flag-5'>工程师</b>,究竟需要掌握哪些技能?

    为什么嵌入式驱动开发工程师可以拿高薪?

    为什么嵌入式驱动开发工程师可以拿高薪? 嵌入式驱动开发,属于需求量大、薪资断崖升高的热门岗位,在市场的发展驱动下成为“风口”。从市场的整体需求来看,
    发表于 01-07 16:56

    嵌入式工程师常用的开发工具有哪些?

    嵌入式工程师常用的开发工具有哪些? 在嵌入式系统开发的广阔领域中,嵌入式工程师们凭借着一系列强大的工具,将创意与技术完美融合,打造出高效、可
    发表于 12-20 15:29