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

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

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

功德+1,用小安派-Eyes-S1做一個電子木魚

AIoT行業(yè)洞察 ? 來源:AIoT行業(yè)洞察 ? 作者:AIoT行業(yè)洞察 ? 2024-01-16 14:33 ? 次閱讀

木魚聲一響,煩惱走光光~敲電子木魚,品賽博人生,今天你的功德積累到多少了?

2024年的第一篇教程來了,本篇學(xué)習(xí)如何添加LVGL事件,并制作完成一個電子木魚(小美苦苦哀求,我略微出手而已)。祝大家2024積德累功,心想事成!接下來看看如何用小安派-Eyes-S1做一個電子木魚。

01、GUI-Guider 頁面設(shè)計

先新建一個工程。

wKgZomWmIxiAL2TrAAEzF9RQ8aE018.png

直接進(jìn)入 UI 設(shè)計界面,這里用到了兩個組件,一個是圖片按鈕,一個是文本框

先添加一個圖片按鈕,這就需要一張木魚圖,大家可以添加自己喜歡的任意圖案。大小比例記得調(diào)整,需要注意的是,這里建議準(zhǔn)備兩張一模一樣的圖片,區(qū)別在于他們的大小,一張大圖+一張小圖,大圖添加在釋放后的圖片,小圖添加在按下時圖片,就達(dá)成敲下去的變化效果。

wKgaomWmIxmALnB3AACNsAr0HSc53.jpeg

添加一個文本框,先固定好位置,在右側(cè)的文本輸入“功德 +1”字樣,注意字體選擇simsun才可以顯示中文。到這一步,所需要的組件已經(jīng)添加成功了。

接下來添加圖片按鍵的事件。需要實(shí)現(xiàn)的效果是,在按下圖片(木魚)時將“功德 +1"的文本框向上移動,在釋放圖片(木魚)時將”功德 +1“隱藏。這樣的效果就是點(diǎn)擊時會出現(xiàn)”功德 +1“飄出來的效果。

1.點(diǎn)擊左側(cè) imgbtn_1,圖片按鈕

wKgZomWmIxmAcWEmAACtg73l-p809.jpeg

2.點(diǎn)擊手指圖標(biāo)事件設(shè)置。只需要配置兩個事件,Pressed(按下)和 Released(釋放)。

3.點(diǎn)擊 Pressed(按下),在組件里選中 label_1,也就是文本框,在 Animation 選項下勾選移動,設(shè)置需要移動的坐標(biāo),也就是按下后 lable_1 移動的最終位置,下圖中最終位置 x 坐標(biāo)為206,y 坐標(biāo)為 25,動畫效果選擇 linear 線性,持續(xù)時間為 50ms,也就是整個移動過程的持續(xù)時間。

wKgaomWmIxmAXZKQAACFF7i_Q8w46.jpeg

4.返回上一層,點(diǎn)擊 Released,一樣在組件里選中 lable_1,首先 General 下勾選可視化,選擇隱藏,也就是我們釋放按鈕后會隱藏文本框。

wKgZomWmIxqAPe_eAAB9bY7Hb2Q03.jpeg

5.其次在 Animation 下勾選移動,將按下圖片后的文本框移動回原來的位置(即一開始的坐標(biāo)位置,x 坐標(biāo) 206,y 坐標(biāo) 45),動畫選擇 linear 線性,持續(xù)時間 0 秒也就是瞬間移動。這樣在按下圖片時 Y 軸移動文本框 20 個像素,然后在釋放圖片時會將文本框移動回原來的位置并且隱藏。就可以實(shí)現(xiàn)”功德 +1“飄出來的效果。

wKgaomWmIxqAd2CXAACDcxA2YG031.jpeg

記得運(yùn)行一下,看一下模擬器的效果,這里同時也會生成需要的工程文件。

wKgZomWmIxuAOmIdAABcERceYAw089.gif

02、文件移植

這里建議使用 FreeRTOS 加一個刷新 LVGL 屏幕的任務(wù)。將上次沒移植的文件,也就是 lv_user_config 的.c 和.h 文件一并放進(jìn)來,文件可以在 AiPi-Radar-WakeUp 下的 components 下的 UI 復(fù)制過來,方法不在贅述。

由于本次刷新 LVGL 需要 FreeRTOS,所以還需要復(fù)制 config 下的 FreeRTOSConfig.h,一并放在工程目錄下,同時修改 proj.conf 文件,添加 set(CONFIG_FREERTOS 1),開啟 RTOS。

wKgaomWmIxuASpYgAAGDRyJific27.jpeg

其次將所有的文件通過 CMakeLists.txt 添加編譯。這里附上 CMake。

wKgZomWmIxyAefvcAAF7Tarz4aQ22.jpeg

在 Main 里面添加一個任務(wù),附上完整齊Mian供大家參考。

wKgZomWmIxyAdSnzAAZLXgBL510879.png

03、添加木魚敲擊音頻

光有畫面還不行,電子木魚的靈魂在于敲擊的聲音,主打一個靈魂洗滌。

這里為了方便制作,將 8388 的驅(qū)動也移植到了 commponents,修改了部分配置文件。驅(qū)動的原理是 I2S 驅(qū)動 8388 芯片,將音頻文件燒錄至 flash 中,然后再接口中通過 dma 輸出音頻文件。

這里已經(jīng)找到的音頻文件是wav的格式,采樣率是 44100。

wKgaomWmIx2AI60yAAA93M1A0sw46.jpegwKgZomWmIx2ADz03AAB0fQ87u8872.jpeg

將音頻文件放進(jìn)去,然后修改 flash_prog_cfg.ini 將音頻文件燒錄進(jìn) flash 中,可以參考截圖中的方法,起始地址可以參考 flash 教學(xué)博文中,這里選擇 0x230000,如果是燒錄多個文件的話,記得計算文件大小,確保地址空間不重復(fù)。

wKgaomWmIx6ACNOjAAC5IbxVjXY20.jpeg

添加一個 muyu_8388_pcm.h 文件,定義木魚音頻的起始地址和大小。這里初始化函數(shù)在 8388_pcm.c 中已經(jīng)有,只需要編寫一個 voice_MuYu 的函數(shù)。

wKgZomWmIx6AHLQkAACm9B1WsO027.jpeg

修改8388_pcm.c 文件,編寫一個播放函數(shù),這個函數(shù)也是調(diào)用 play_voice 這個接口,參數(shù)為音頻文件的地址和大小。同時修改 i2s 的初始化,采樣率是 44100。

wKgZomWmIx-ALMm2AAC0hBvFn7I85.jpeg

主函數(shù)中記得將 8388 芯片初始化。

wKgaomWmIx-AaPJbAADWiwuBBao27.jpeg

修改LVGL工程中的 events_init.c,這個文件是事件控制文件,添加muyu_8388_pcm.h 頭文件,在 Pressed 事件中加入播放音頻的接口。

wKgaomWmIyCAOYXTAAHVGsVL9Nk40.jpeg

來看看最終效果

wKgZomWmIyCANV47AAf3fDYxra4228.gif

04、代碼及資料

●源碼(見原貼評論區(qū)):(十八)零基礎(chǔ)開發(fā)小安派-Eyes-S1【進(jìn)階篇】——LVGL事件學(xué)習(xí)_制作電子木魚

http://bbs.aithinker.com/forum.php?mod=viewthread&tid=43990&highlight=%E7%94%B5%E5%AD%90%E6%9C%A8%E9%B1%BC&_dsign=371483a8

●小安派系列教程:

http://bbs.aithinker.com/forum.php?mod=forumdisplay&fid=189

●小安派開源硬件系列資料:

https://docs.ai-thinker.com/open_hardware

wKgaomWmIyGALcFVAAG8qIWgu2M37.jpeg

審核編輯 黃宇

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

    關(guān)注

    8

    文章

    208

    瀏覽量

    29815
收藏 人收藏

    評論

    相關(guān)推薦

    零基礎(chǔ)開發(fā)小安-Eyes-S1 外設(shè)篇——DAC

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入USB攝像頭。 從零開始學(xué)習(xí)小安1
    的頭像 發(fā)表于 12-27 10:55 ?245次閱讀
    零基礎(chǔ)開發(fā)<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b> 外設(shè)篇——DAC

    零基礎(chǔ)開發(fā)小安-Eyes-S1外設(shè)篇——I2S

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入USB攝像頭。 從零開始學(xué)習(xí)小安1
    的頭像 發(fā)表于 12-13 18:02 ?962次閱讀
    零基礎(chǔ)開發(fā)<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>外設(shè)篇——I2<b class='flag-5'>S</b>

    電子DIY作品 小安R1做個86盒中控

    2000積分兌換了小安R1 試試看能不能做出86盒子? 小安
    的頭像 發(fā)表于 12-05 14:34 ?175次閱讀
    <b class='flag-5'>電子</b>DIY作品 <b class='flag-5'>小安</b><b class='flag-5'>派</b>R<b class='flag-5'>1</b>做個86盒中控

    零基礎(chǔ)開發(fā)小安-Eyes-S1【外設(shè)篇】——FLASH

    。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入USB攝像頭。 從零開始學(xué)習(xí)小安1、
    的頭像 發(fā)表于 12-05 14:31 ?191次閱讀
    零基礎(chǔ)開發(fā)<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>【外設(shè)篇】——FLASH

    零基礎(chǔ)開發(fā)小安-Eyes-S1 外設(shè)篇 ——I2C

    。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入USB攝像頭。 從零開始學(xué)習(xí)小安1、
    的頭像 發(fā)表于 11-27 16:39 ?219次閱讀
    零基礎(chǔ)開發(fā)<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b> 外設(shè)篇 ——I2C

    小安 AiPi-Eyes-R2 玩植物大戰(zhàn)僵尸

    /AiPi-Eyes-RxPVZ 功能展示可見:羊了羊:消消樂:華容道:基于官方示例文檔修改的,適用于 4 寸電容屏的小安 R1 和 R
    的頭像 發(fā)表于 11-06 16:10 ?217次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>小安</b><b class='flag-5'>派</b> AiPi-<b class='flag-5'>Eyes</b>-R2 玩植物大戰(zhàn)僵尸

    零基礎(chǔ)開發(fā)小安-Eyes-S1【入門篇】——工程文件架構(gòu)

    、零基礎(chǔ)開發(fā)小安-Eyes-S1入門篇——Win下SSH連接Linux5、零基礎(chǔ)開發(fā)小安-Eyes-
    的頭像 發(fā)表于 11-06 16:10 ?160次閱讀
    零基礎(chǔ)開發(fā)<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>【入門篇】——工程文件架構(gòu)

    零基礎(chǔ)開發(fā)小安-Eyes-S1【外設(shè)篇】——PWM

    =200ms。PWM 占空比: 脈沖周期內(nèi),高電平的時間占整個周期時間的比例。單位是 %,高電平時間是 50ms,周期是 100ms。占空比就是 50/100*100%=50%。了解小安
    的頭像 發(fā)表于 11-06 16:10 ?152次閱讀
    零基礎(chǔ)開發(fā)<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>【外設(shè)篇】——PWM

    零基礎(chǔ)開發(fā)小安-Eyes-S1外設(shè)篇——GPIO中斷編程

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入USB攝像頭。 產(chǎn)品資料:https://docs.ai-thinker.com/eyes 從零開始學(xué)習(xí)
    的頭像 發(fā)表于 10-29 14:56 ?755次閱讀
    零基礎(chǔ)開發(fā)<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>外設(shè)篇——GPIO中斷編程

    零基礎(chǔ)開發(fā)小安-Eyes-S1外設(shè)篇——GPIO 輸入輸出

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入USB攝像頭。 從零開始學(xué)習(xí)小安1
    的頭像 發(fā)表于 10-25 13:50 ?1025次閱讀
    零基礎(chǔ)開發(fā)<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>外設(shè)篇——GPIO 輸入輸出

    開發(fā)教程 零基礎(chǔ)開發(fā)小安-Eyes-S1入門篇——Win下SSH連接Linux

    AiPi-Eyes-S1 是安信可開源團(tuán)隊專門為Ai-M61-32S設(shè)計的款開發(fā)板,支持WiFi6、BLE5.3。所搭載的Ai-M61-32S 模組具有豐富的外設(shè)接口,具體包括 DV
    的頭像 發(fā)表于 09-24 14:31 ?302次閱讀
    開發(fā)教程 零基礎(chǔ)開發(fā)<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>入門篇——Win下SSH連接Linux

    悟空全志H3開發(fā)板做一個基于ROS系統(tǒng)的全向輪小車

    這個強(qiáng)大的開發(fā)板的些關(guān)鍵特性以及我是如何利用它來打造全向輪的小車的。 2、產(chǎn)品設(shè)計介紹 本次設(shè)計的全向輪小車是在圓形底盤上安裝
    發(fā)表于 05-06 11:15

    如何用小安-Eyes-S1做一個電子木魚?

    2024年的第篇教程來了,本篇學(xué)習(xí)如何添加LVGL事件,并制作完成電子木魚(小美苦苦哀求,我略微出手而已)。祝大家2024積德累功,心
    的頭像 發(fā)表于 01-13 15:18 ?1029次閱讀
    如何用<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b><b class='flag-5'>做一個</b><b class='flag-5'>電子</b><b class='flag-5'>木魚</b>?

    再也不用手動關(guān)燈了,安信可的小安做一個智能家居中控

    /BV1BN411V7Ad/?vd_source=54c5db21948db2378659b7e8e42bafbf 消息框設(shè)置成時間,這里給服務(wù)器設(shè)置了
    的頭像 發(fā)表于 01-08 17:26 ?578次閱讀
    再也不用手動關(guān)燈了,<b class='flag-5'>用</b>安信可的<b class='flag-5'>小安</b><b class='flag-5'>派</b><b class='flag-5'>做一個</b>智能家居中控

    使用小安做一個智能家居中控

    消息框設(shè)置成時間,這里給服務(wù)器設(shè)置了MQTT遺囑消息,每隔分鐘發(fā)下服務(wù)器時間,有緊急事情可以直接發(fā)消息顯示,或者崩潰后顯示遺囑消息
    的頭像 發(fā)表于 01-07 10:01 ?589次閱讀
    使用<b class='flag-5'>小安</b><b class='flag-5'>派</b><b class='flag-5'>做一個</b>智能家居中控