0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式工程師的520表白

合宙LuatOS ? 2022-05-26 14:17 ? 次閱讀

點(diǎn)燈,嵌入式工程師難以割舍的獨(dú)有情懷。也只有他們才能這么大膽,用耀眼綠光在溫馨霓虹中跳脫閃現(xiàn),變幻中演繹與眾不同的浪漫愛意。

520點(diǎn)燈表白,為愛發(fā)光——今晚就脫單!快來~

教程示例采用合宙LuatOS-SoC系列Air105開發(fā)板、WS2812系列LED光源演示

1

LuatOS-SoC驅(qū)動(dòng)WS2812的三種方式


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

WS2812是一款比較常用的外控集成LED光源,控制簡(jiǎn)單,應(yīng)用領(lǐng)域極廣——包括但不限于表白。

具有低電壓驅(qū)動(dòng)、環(huán)保節(jié)能、亮度高、散射角度大、一致性好、低功率及超長(zhǎng)壽命等優(yōu)點(diǎn)。

驅(qū)動(dòng)WS2812需要滿足如下條件,顯然不是所有MCU都能支持的:

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

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

LuatOS-SoC三種驅(qū)動(dòng)方式


合宙LuatOS-SoC在支持GPIO直驅(qū)的情況下,加入了PWM和SPI驅(qū)動(dòng)的方法:

sensor.ws2812b_pwm(pin,data)

sensor.ws2812b_spi(pin,data)

下面看看這兩個(gè)函數(shù)對(duì)硬件要求:

sensor.ws2812b_pwm(pin,data):
800k的PWM輸出頻率

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

顯然,這要求就很低了。三種驅(qū)動(dòng)方式,總有一款適合你:

Air101/Air103系列:

推薦使用SPI驅(qū)動(dòng)方式;

Air105系列:

推薦使用PWM驅(qū)動(dòng)方式,也可使用SPI驅(qū)動(dòng)方式;GPIO直驅(qū)也可以,但實(shí)際有點(diǎn)勉強(qiáng)。

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

2

520表白程序開發(fā)/demo下載



接下來,我們正式編寫表白程序。

01

首先將我們要顯示的內(nèi)容,換算成GBR顏色數(shù)組:

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之后,申請(qǐng)一個(gè)8*8的zbuff空間:

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

03然后,我們做一個(gè)簡(jiǎn)單的滾動(dòng)顯示函數(shù)就可以了:

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方法驅(qū)動(dòng),當(dāng)然也可以用gpio,spi方式,API詳情查看wiki https://wiki.luatos.com/api/sensor.html
-- sensor.ws2812b_spi(0,buff)

sys.wait(300)
end
end

好,我們的點(diǎn)燈表白程序?qū)懞昧?。前面沒看視頻的同學(xué),來看一下點(diǎn)燈效果吧:

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

每個(gè)閃耀的LED,都是滿滿愛意

你學(xué)會(huì)了嗎?

快來試試看!

發(fā)揮你的點(diǎn)燈創(chuàng)意為愛發(fā)光吧

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5054

    文章

    18917

    瀏覽量

    300991
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式熱門領(lǐng)域有哪些?

    通過物聯(lián)網(wǎng)連接各種物理設(shè)備和傳感器,促使它們之間實(shí)現(xiàn)信息的交換和數(shù)據(jù)的共享。從智能家居到智能城市,物聯(lián)網(wǎng)的應(yīng)用不斷擴(kuò)展,為嵌入式系統(tǒng)工程師帶來了廣泛的就業(yè)機(jī)會(huì)和發(fā)展前景。 自動(dòng)駕駛 自動(dòng)駕駛技術(shù)作為
    發(fā)表于 07-16 09:23

    找STM32硬件開發(fā)兼職工程師

    上海做傳感器的公司,找STM32硬件開發(fā)兼職工程師,會(huì)硬件開發(fā),嵌入式軟件開發(fā),可項(xiàng)目外包。有意聯(lián)系:15900460170
    發(fā)表于 06-22 19:12

    嵌入式軟件工程師如何提升自己?

    嵌入式軟件工程師如何提升自己? 作為一名嵌入式軟件工程師,在這個(gè)充滿機(jī)遇和挑戰(zhàn)的領(lǐng)域里,如何提升自己顯得非常重要,它決定了你未來的發(fā)展方向和成就。接下來,我們一起探討一下。 1.奠定扎
    發(fā)表于 06-12 11:20

    從事嵌入式方向,一定要軟硬件通吃?

    嵌入式系統(tǒng)開發(fā)領(lǐng)域,軟件和硬件的界限常常模糊不清。一個(gè)常見的問題是,嵌入式軟件工程師是否需要了解硬件。本文將探討這一問題的重要性,并分析嵌入式軟件
    的頭像 發(fā)表于 06-05 08:10 ?952次閱讀
    從事<b class='flag-5'>嵌入式</b>方向,一定要軟硬件通吃?

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式軟件
    發(fā)表于 05-16 11:00

    一款適合嵌入式工程師使用的在線工具

    一款適合嵌入式工程師使用的在線工具,工具有如下功能,如下圖所示: 1. 報(bào)文校驗(yàn)功能,如下圖所示 2. UDP服務(wù)端測(cè)試工具:該UDP服務(wù)端工具可以理解為 “UDP服務(wù)端” 或者 “服務(wù)器
    發(fā)表于 04-09 22:20

    嵌入式工程師需要掌握哪些技術(shù)?

    嵌入式工程師需要掌握哪些技術(shù)? 嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域中的重要組成部分,它們存在于我們生活的方方面面,從智能手機(jī)到汽車控制系統(tǒng),從家電到醫(yī)療設(shè)備。因此,對(duì)于那些想要進(jìn)入嵌入式行業(yè)的
    發(fā)表于 03-04 16:38

    嵌入式人工智能的就業(yè)方向有哪些?

    的發(fā)展方向有很多,門檻高低不一樣。下面給大家列舉一些相應(yīng)崗位所需具備的技能: 一:嵌入式Linux,C語言開發(fā)工程師,Linux軟件開發(fā)工程師 LinuxC語言開發(fā) LinuxC語言開發(fā)進(jìn)階 Linux
    發(fā)表于 02-26 10:17

    一名嵌入式工程師的漲薪經(jīng)歷

    下面是一位嵌入式工程師的漲薪經(jīng)歷,希望可以幫助到你,幫到其他的在校學(xué)生。 ? 階段 1 大一到大三這個(gè)階段我與大多數(shù)學(xué)生相同: ? 一、學(xué)習(xí)本專業(yè)知識(shí)(電子信息類專業(yè)) 二、學(xué)習(xí)嵌入式軟件開發(fā)需要
    的頭像 發(fā)表于 01-05 08:39 ?392次閱讀

    嵌入式軟件工程師常用的

    最近我換工作了,看見不同嵌入式軟件工程師用的平臺(tái)都不一樣,所以我整理了一下。PlatformIO:多平臺(tái)支持:PlatformIO支持多種嵌入式平臺(tái),包括Arduino、ESP8266、ESP32
    的頭像 發(fā)表于 12-24 08:00 ?597次閱讀
    <b class='flag-5'>嵌入式</b>軟件<b class='flag-5'>工程師</b>常用的

    有沒有誰做過DSP、微型逆變器/微逆變/大型工業(yè)逆變器、嵌入式軟件的軟硬件高級(jí)工程師

    急需 DSP、微型逆變器/微逆變/大型工業(yè)逆變器、嵌入式軟件等豐富經(jīng)驗(yàn)的軟件高級(jí)工程師、硬件高級(jí)工程師,深圳,面議面議,自薦/推薦請(qǐng)聯(lián)系我。歡迎來詢zsrfwk@163.com
    發(fā)表于 12-14 17:32

    嵌入式硬件和軟件哪個(gè)好?

    嵌入式硬件和軟件哪個(gè)好? 嵌入式軟硬件工程師哪個(gè)更有前途呢?一起來看看。 嵌入式是分為軟硬件工程師的,首先我們先來看看
    發(fā)表于 12-05 15:17

    中高級(jí)【嵌入式驅(qū)動(dòng)工程師】年薪50w內(nèi)可談

    中高級(jí)【嵌入式驅(qū)動(dòng)工程師】 年薪50w以內(nèi)可談 工作?地點(diǎn):北京市 了解更多 ?5年以上內(nèi)核驅(qū)動(dòng)開發(fā)經(jīng)驗(yàn) ??需要有國(guó)產(chǎn)化操作系統(tǒng)/芯片平臺(tái)的驅(qū)動(dòng)開發(fā)經(jīng)驗(yàn)(必須) 交換機(jī)/交換芯片驅(qū)動(dòng)開發(fā)經(jīng)驗(yàn)
    發(fā)表于 11-23 13:35

    如何成為一名優(yōu)秀的嵌入式工程師?

    如何成為一名優(yōu)秀的嵌入式工程師?嵌入式學(xué)習(xí)的第一步,首先是C語言。 1.理解內(nèi)存管理:C語言不同于高級(jí)語言,它不會(huì)自動(dòng)管理內(nèi)存。因此,你需要理解并掌握如何使用malloc()、free()等函數(shù)
    發(fā)表于 11-07 15:36