一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

功德+1,用小安派-Eyes-S1做一個(gè)電子木魚(yú)

AIoT行業(yè)洞察 ? 來(lái)源:AIoT行業(yè)洞察 ? 作者:AIoT行業(yè)洞察 ? 2024-01-16 14:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

先新建一個(gè)工程。

wKgZomWmIxiAL2TrAAEzF9RQ8aE018.png

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

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

wKgaomWmIxmALnB3AACNsAr0HSc53.jpeg

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

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

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

wKgZomWmIxmAcWEmAACtg73l-p809.jpeg

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

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

wKgaomWmIxmAXZKQAACFF7i_Q8w46.jpeg

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

wKgZomWmIxqAPe_eAAB9bY7Hb2Q03.jpeg

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

wKgaomWmIxqAd2CXAACDcxA2YG031.jpeg

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

wKgZomWmIxuAOmIdAABcERceYAw089.gif

02、文件移植

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

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

wKgaomWmIxuASpYgAAGDRyJific27.jpeg

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

wKgZomWmIxyAefvcAAF7Tarz4aQ22.jpeg

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

wKgZomWmIxyAdSnzAAZLXgBL510879.png

03、添加木魚(yú)敲擊音頻

光有畫(huà)面還不行,電子木魚(yú)的靈魂在于敲擊的聲音,主打一個(gè)靈魂洗滌。

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

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

wKgaomWmIx2AI60yAAA93M1A0sw46.jpegwKgZomWmIx2ADz03AAB0fQ87u8872.jpeg

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

wKgaomWmIx6ACNOjAAC5IbxVjXY20.jpeg

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

wKgZomWmIx6AHLQkAACm9B1WsO027.jpeg

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

wKgZomWmIx-ALMm2AAC0hBvFn7I85.jpeg

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

wKgaomWmIx-AaPJbAADWiwuBBao27.jpeg

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

wKgaomWmIyCAOYXTAAHVGsVL9Nk40.jpeg

來(lái)看看最終效果

wKgZomWmIyCANV47AAf3fDYxra4228.gif

04、代碼及資料

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

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

●小安派開(kāi)源硬件系列資料:

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

wKgaomWmIyGALcFVAAG8qIWgu2M37.jpeg

審核編輯 黃宇

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

    關(guān)注

    8

    文章

    218

    瀏覽量

    30621
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    功德+1,小安-Eyes-S1做一個(gè)電子木魚(yú)

    2024積德累功,心想事成!接下來(lái)看看如何用小安-Eyes-S1做一個(gè)電子木魚(yú)。01GUI-G
    的頭像 發(fā)表于 04-09 18:38 ?368次閱讀
    <b class='flag-5'>功德</b>+<b class='flag-5'>1</b>,<b class='flag-5'>用</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b><b class='flag-5'>做一個(gè)</b><b class='flag-5'>電子</b><b class='flag-5'>木魚(yú)</b>

    零基礎(chǔ)開(kāi)發(fā)小安-Eyes-S1 進(jìn)階篇 ——通過(guò)屏幕輸入連接 Wi-Fi

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入U(xiǎn)SB攝像頭。 從零開(kāi)始學(xué)習(xí)小安1
    的頭像 發(fā)表于 01-16 09:47 ?473次閱讀
    零基礎(chǔ)開(kāi)發(fā)<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b> 進(jìn)階篇 ——通過(guò)屏幕輸入連接 Wi-Fi

    零基礎(chǔ)開(kāi)發(fā)AiPi-Eyes-S1——通過(guò)屏幕輸入連接Wi-Fi

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入U(xiǎn)SB攝像頭。 從零開(kāi)始學(xué)習(xí)小安1
    的頭像 發(fā)表于 01-15 09:27 ?714次閱讀
    零基礎(chǔ)開(kāi)發(fā)AiPi-<b class='flag-5'>Eyes-S1</b>——通過(guò)屏幕輸入連接Wi-Fi

    小安 DSL做一個(gè)天氣站

    前言 小安-DSL(AiPi-DSL) 是安信可開(kāi)源團(tuán)隊(duì)專門為Ai-M61-32S設(shè)計(jì)的款屏幕驅(qū)動(dòng)開(kāi)發(fā)板,支持2.8/3.5寸等30Pin SPI顯示屏、2.4寸及1.28寸等18
    的頭像 發(fā)表于 01-06 16:44 ?521次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>小安</b><b class='flag-5'>派</b> DSL<b class='flag-5'>做一個(gè)</b>天氣站

    零基礎(chǔ)開(kāi)發(fā)小安-Eyes-S1【進(jìn)階篇】——初識(shí) LVGL 并搭建最小工程

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入U(xiǎn)SB攝像頭。 從零開(kāi)始學(xué)習(xí)小安1
    的頭像 發(fā)表于 01-06 16:14 ?860次閱讀
    零基礎(chǔ)開(kāi)發(fā)<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>【進(jìn)階篇】——初識(shí) LVGL 并搭建最小工程

    零基礎(chǔ)開(kāi)發(fā)小安-Eyes-S1——初識(shí)LVGL并搭建最小工程

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入U(xiǎn)SB攝像頭。 從零開(kāi)始學(xué)習(xí)小安1
    的頭像 發(fā)表于 01-03 14:09 ?917次閱讀

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

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

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

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入U(xiǎn)SB攝像頭。 從零開(kāi)始學(xué)習(xí)小安1
    的頭像 發(fā)表于 12-13 18:02 ?1643次閱讀
    零基礎(chǔ)開(kāi)發(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>

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

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

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

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

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

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

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

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

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

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

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

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

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

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