亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

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

安信可VC-01/02二次開發(fā)篇: 事件和GPIO控制

AIoT行業(yè)洞察 ? 來源:AIoT行業(yè)洞察 ? 作者:AIoT行業(yè)洞察 ? 2025-08-19 14:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

安信可離線語音VC01/02:硬件規(guī)格書、開發(fā)資料、燒錄工具、應(yīng)用開發(fā)

安信可離線語音模組 VC-01、VC-02 系列教程 【基礎(chǔ)認知篇】

安信可離線語音模組 VC-01、VC-02 系列教程 【快速上手篇】

安信可離線語音模組 VC-01、VC-02 系列教程 【中級入門篇】

安信可離線語音模組 VC-01、VC-02 系列教程 【高級進階篇】

安信可離線語音模組 VC-01、VC-02 系列教程 【二次開發(fā)篇】虛擬開發(fā)環(huán)境搭建和分享

安信可離線語音模組 VC-01、VC-02 系列教程 【二次開發(fā)篇】事件和GPIO控制

安信可離線語音模組 VC-01、VC-02 系列教程 【二次開發(fā)篇】PWM輸出

安信可離線語音模組 VC-01、VC-02 系列教程 【二次開發(fā)篇】串口輸出

安信可離線語音模組 VC-01、VC-02 系列教程 【二次開發(fā)篇】SDK音頻替換失敗記錄過程

安信可離線語音模組 VC-01、VC-02 系列教程 【二次開發(fā)篇】自定義音頻播放控制

簡介

在上一篇文章中,我們已經(jīng)成功搭建好了VC系列的Linux開發(fā)環(huán)境,使用VScode進行了遠程連接,成功進入到了下載后的SDK固件源碼中,并且進行了編譯等操作。

在本章我將對SDK中常見的模塊進行解析,并且?guī)е蠹揖幾g一個通過安信可語音平臺生成固件中的語音喚醒或者控制事件在源碼中進行自定義的操作(即在安信可語音平臺生成語音喚醒詞和控制命令的時候,并不指定控制行為而是通過在SDK里指定控制行為)。

準備工作

首先給大家看一下默認生成的固件配置信息(來自安信可語音平臺

wKgZPGikE22ATAteAACUopVyWlw40.jpeg

下圖為配置的控制行為。

wKgZO2ikE26ACvhxAABCMluUU8E91.jpeg

可以從以上兩個圖中看到, 我們僅僅是配置了默認的喚醒和1個控制行為。 但是這個控制行為并沒有對應(yīng)的命令(無法點亮LED燈或者關(guān)閉LED燈)。

之后我們生成對應(yīng)的SDK,并把它下載到虛擬機中(替換上一個帖子中下載的SDK,在文末會附上本次生成的SDK文件)。

wKgZPGikE26AP6EwAAAsqNGADyk50.jpeg

SDK重要組件介紹

1、首先看

~/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/tools/scripts下的tones 目錄和 wav_tones 目錄。

wKgZO2ikE26AUBVWAACLwg_d84U89.jpeg

這兩個目錄主要保存安信可語音平臺生成的音頻文件。

即所有的音頻輸出(喚醒詞回復(fù)詞等),在程序編譯后,其音頻文件會被編譯成PCM文件,然后由VC-01/ 02進行播放。

2、開發(fā)板PIN初始化配置信息

/home/vc02/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/tools/scripts/custom_config.json

wKgZO2ikE2-AV3UkAADdzD0PLRE88.jpeg

當前的文件主要記錄了在安信可語音平臺中配置的PIN的初始化信息。

如下圖所示(不建議在代碼中配置, 推薦使用安信可語音平臺進行)。

wKgZPGikE2-ARusAAABgltdNbc465.jpeg

3、cmd_reply_data.json 文件,

位于/home/vc02/Downloads/uni_hb_m_solution/unione_lite

_app_hb_m/tools/scripts/ 下

wKgZO2ikE2-AQyl2AADSCpgeT0Y55.jpeg

拿喚醒詞“你好小美”舉例子, 這里主要的JSON key 有PCM, CMD。

PCM決定當前的命令詞觸發(fā)的時候?qū)シ拍男┮魳?/p>

CMD則是做為對應(yīng)喚醒事件的KEY(稍后會解釋這個是什么意思)

4、二次開發(fā)集成的example配置文件user_config.h 文件,

位于 ~/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/user/inc

wKgZPGikE3CAVVudAADzzR7Gxq440.jpeg

在默認的SDK中,其開啟的Macro 為 USER_DEMO_AUTO_GPIO 。 所以用戶的自定義功能將會使用example下的hb_auto_gpio.c 文件作為額外自定義功能。

以此類推,如果開啟的是USER_DEMO_BUZZER 宏, 那么開啟的Demo則為

/home/vc02/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/user/src/examples

下的hb_timer_buzzer.c

wKgZO2ikE3CAPv_BAAC6viDrB5M41.jpeg

而當前開發(fā)板所有支持的二次開發(fā)的庫函數(shù)的定義則都

/home/vc02/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/user/inc 目錄下。

wKgZPGikE3GARqjlAAEKFkyEjGg10.jpeg

這里所有庫函數(shù)對應(yīng)的例程都可以從example下找到。

5、user_event.h 位于inc 目錄下, 此文件記錄了所有開發(fā)板中可以觸發(fā)的事件。 比如說識別到“”你好小美“或者是識別到對應(yīng)的命令。

wKgZO2ikE3GARuOgAADQ0Mx6F4U83.jpeg

typedef enum {

USER_INVALID_EVENT = 0, ///< 錯誤的事件類型

USER_AUDIO_PLAY_START, ///< 音頻開始播放時發(fā)送

USER_AUDIO_PLAY_END, ///< 音頻播放完畢或被停止時發(fā)送

USER_CUSTOM_SETTING, ///< 識別到客戶自定義的識別詞時發(fā)送

USER_VOLUME_SETTING, ///< 識別到音量調(diào)節(jié)指令時發(fā)送

USER_GOTO_SLEEPING, ///< 進入待喚醒狀態(tài)時發(fā)送

USER_GOTO_AWAKENED, ///< 進入識別狀態(tài)(已喚醒)時發(fā)送

USER_EVENT_MAX

}USER_EVENT_TYPE;

上述列舉了所有可以被用戶訂閱的事件,當對應(yīng)的事件觸發(fā)的時候,也會觸發(fā)事件的callback function。

/** @brief 事件內(nèi)容,共用體,根據(jù)事件類型具體處理*/

typedef union {

event_audio_play_t audio_play; ///< 對應(yīng)USER_AUDIO_PLAY_START事件

event_audio_end_t audio_end; ///< 對應(yīng)USER_AUDIO_PLAY_END事件

event_custom_setting_t custom_setting; ///< 對應(yīng)USER_CUSTOM_SETTING事件

event_volume_setting_t voluem_setting; ///< 對應(yīng)USER_VOLUME_SETTING事件

event_goto_sleeping_t goto_sleeping; ///< 對應(yīng)USER_GOTO_SLEEPING事件

event_goto_awakend_t goto_awakend; ///< 對應(yīng)USER_GOTO_AWAKENED事件

}user_event_context_t;

針對于上述事件的每一個事件, 其具備對應(yīng)的事件內(nèi)容。 比如說用戶訂閱了USER_GOTO_AWAKENED 事件。

那么便可以從user_event_context_tgoto_awakend 捕獲到對應(yīng)的事件內(nèi)容,而對應(yīng)事件的內(nèi)容信息則被下述結(jié)構(gòu)體定義,只舉例喚醒事件(其他事件同理)。

typedef struct {

EVENT_TRIGGER trigger; ///< 觸發(fā)來源

char *cmd; ///< 命令詞意圖,對應(yīng)UDP平臺上用戶定義腳本中的action

char *word_str; ///< 識別到的命令詞

char *reply_files; ///< 回復(fù)語列表[1, 2, 3],對應(yīng)UDP平臺上用戶定義腳本中的回復(fù)語列表,在pcm_map.txt中可以找到對應(yīng)關(guān)系

}event_goto_awakend_t;

這樣就可以通過CMD來獲取到對應(yīng)的命令!

這里可以解釋在 3- cmd_reply_data.json 文件中所說明的JSON KEY對應(yīng)Value的作用。即用戶可以根據(jù)對應(yīng)的事件,判斷對應(yīng)的CMD來自定義行為,其支持的行為為所有Inc文件夾下包含的庫函數(shù)。

GPIO控制

(通過使用喚醒詞“你好小美”并關(guān)閉LED,使用命令詞“打開臺燈”打開LED)

明白原理之后, 我們便可以開始著手來開發(fā)GPIO功能, 即通過使用喚醒詞:你好小美。關(guān)閉LED,使用命令詞:打開臺燈。打開LED。

需要注意的是: "你好小美" 是屬于喚醒事件, 而打開臺燈是屬于命令事件。 打開臺燈必須在你好小美之后觸發(fā)。明白原理之后就可以很輕松的在example下的hb_auto_gpio.c 進行修改 (默認啟用,上文有介紹)

首先在原本的_register_event_callback 方法中額外注冊一個用戶喚醒事件的回調(diào):

user_event_subscribe_event(USER_GOTO_AWAKENED, _custom_setting_cb2);

如下圖所示

wKgZPGikE3KAbnVtAABA66dYjs032.jpeg

之后拷貝原本的 _custom_setting_cb 方法

改名為 _custom_setting_cb2 (我這里不規(guī)范, 不要學(xué)習(xí)我這樣的隨意命名, 可以改成_custom_setting_wakeup_cb)。

static void _custom_setting_cb2(USER_EVENT_TYPE event,

代碼解析:由于訂閱的是USER_GOTO_AWAKENED 事件, 所以其聯(lián)合體中goto_awakend 才會具有數(shù)據(jù),因此需要根據(jù)上下文中的context 來獲取到對應(yīng)的goto_awakend從而來獲取到對應(yīng)的CMD命令 "wakeup_uni" (被cmd_reply_data.json 定義, 上文有介紹)。

這樣就可以實現(xiàn), 當識別到“你好小美” 的時候關(guān)閉LED燈。

同理可以實現(xiàn)通過命令詞打開LED燈,代碼如下所示:

static void _custom_setting_cb(USER_EVENT_TYPE event,

最終當識別到 “你好小美”的時候便會關(guān)閉LED, 當識別到 “打開臺燈”等命令詞的時候便會打開LED,實現(xiàn)用戶的自定義控制~

編譯燒錄和測試

接下來可以在SDK的根目錄來編譯自己的固件了,執(zhí)行命令:

./build.sh update

wKgZO2ikE3KAUIsRAAFGohPk6jk11.jpeg

此時可以打開output 文件夾,然后把uni_app_release_update.bin下載到本地電腦,使用 UniOneUpdateTool.exe 進行燒錄。

wKgZPGikE3KASDUpAAAt8o-7Zr853.jpeg

下圖為燒錄成功界面:

wKgZO2ikE3OAP7M3AACVN1Swz8850.jpeg

實驗

使用 “你好小美” 喚醒VC-02, 通過命令詞“打開臺燈”, LED 燈被點亮。

wKgZPGikE3OAKsgBAACniEoPKXA24.jpeg

使用 “你好小美” 喚醒VC-02, LED燈被熄滅。

wKgZO2ikE3OAA-BsAADtZVi3b3o53.jpeg

附件

固件和SDK

https://www.123865.com/s/UNArVv-k4UKd

審核編輯 黃宇

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

    關(guān)注

    1

    文章

    115

    瀏覽量

    89715
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1309

    瀏覽量

    55548
  • 安信可
    +關(guān)注

    關(guān)注

    0

    文章

    213

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    如何使用SDK進行自定義音頻播放功能

    在上一文章離線語音模組 VC-01、VC-02 系列教程 【
    的頭像 發(fā)表于 09-25 15:52 ?2887次閱讀
    如何使用SDK進行自定義音頻播放功能

    僅1M flash 的 ESP-01S 模塊,如何二次開發(fā)

    僅1M flash 的 ESP-01S 模塊,如何二次開發(fā),本系列博客學(xué)習(xí)由非官方人員 半顆心臟 潛心所力所寫,不做
    發(fā)表于 07-22 09:28

    ESP8266二次開發(fā)

    一開始做環(huán)境監(jiān)測項目時是以STM32做控制板,外接傳感器,Wifi模塊的方案來做的。在收集Wifi模塊資料的過程中發(fā)現(xiàn)ESP8266本身就是一個MCU并且可對其進行二次開發(fā),也就是直接可以取消上一個
    發(fā)表于 11-03 07:22

    AutoCAD的二次開發(fā)

    AutoCAD的二次開發(fā) AutoCAD的二次開發(fā)主要涉及以下內(nèi)容:(1) 編寫各種用戶自定義函數(shù)并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL
    發(fā)表于 02-14 16:59 ?1992次閱讀

    ANSYS的二次開發(fā)技術(shù)

    ANSYS的二次開發(fā)技術(shù) ANSYS提供的二次開發(fā)工具有三個:參數(shù)化設(shè)計語言(ANSYS Parametric Design Language,APDL),用戶界面設(shè)計語言(User Interface
    發(fā)表于 10-02 10:42 ?2315次閱讀

    基于VC的Cadence二次開發(fā)

    文中研究了用VC對Cadence做二次開發(fā),使用VC編寫操作界面,通過VC與SKILL語言通信,實現(xiàn)了VC界面對Cadence軟件的
    發(fā)表于 10-19 14:38 ?41次下載
    基于<b class='flag-5'>VC</b>的Cadence<b class='flag-5'>二次開發(fā)</b>

    AutoCAD VBA二次開發(fā)教程

    AutoCAD VBA二次開發(fā)教程,學(xué)習(xí)二次開發(fā)的頂起
    發(fā)表于 11-02 16:16 ?0次下載

    二次開發(fā)串口通信協(xié)議

    lobot機器人二次開發(fā)
    發(fā)表于 05-09 08:55 ?7次下載

    支持快速二次開發(fā)的zigbee核心板

    關(guān)于zigbee組網(wǎng)協(xié)議,我們是否發(fā)現(xiàn),只要涉及到二次開發(fā),總會遇到各種無法預(yù)料的問題。zigbee二次開發(fā)大家都在抱怨什么?
    發(fā)表于 05-17 17:57 ?2361次閱讀

    空間光調(diào)制器的簡便控制方法:靈活應(yīng)用二次開發(fā)

    01.什么是二次開發(fā)模式? 二次開發(fā)模式實際上就是一組指令集,不同于一個有窗口的軟件,這組指令集更像一根管道,管道的一端可以和任意編程軟件對接,管道的另外一頭就可以將結(jié)果展現(xiàn)在特定設(shè)備上,管道完成
    的頭像 發(fā)表于 05-11 13:37 ?1205次閱讀
    空間光調(diào)制器的簡便<b class='flag-5'>控制</b>方法:靈活應(yīng)用<b class='flag-5'>二次開發(fā)</b>

    新品發(fā)布 | 離線語音VC-01/02:卸掉APP,秒控你的家電!

    科技的VC-01/VC-02離線語音方案具有免聯(lián)網(wǎng)、迅速響應(yīng)、隱私安全保護、接入門檻較低等特點。
    的頭像 發(fā)表于 06-13 16:15 ?2138次閱讀
    新品發(fā)布 | 離線語音<b class='flag-5'>VC-01</b>/<b class='flag-5'>02</b>:卸掉APP,秒控你的家電!

    深居淺出AutoCAD二次開發(fā)

    深居淺出AutoCAD二次開發(fā),net版
    發(fā)表于 01-06 14:12 ?12次下載

    【離線語音】VC-01/02教程:中級入門

    系列教程 【二次開發(fā)】虛擬開發(fā)環(huán)境搭建和分享 離線語音模組
    的頭像 發(fā)表于 07-31 09:33 ?559次閱讀
    【離線語音】<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>VC-01</b>/<b class='flag-5'>02</b>教程:中級入門<b class='flag-5'>篇</b>

    VC-01/02二次開發(fā): PWM輸出

    系列教程 【二次開發(fā)】虛擬開發(fā)環(huán)境搭建和分享 離線語音模組
    的頭像 發(fā)表于 08-27 16:06 ?541次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>VC-01</b>/<b class='flag-5'>02</b><b class='flag-5'>二次開發(fā)</b><b class='flag-5'>篇</b>: PWM輸出

    【離線語音】VC-01/02二次開發(fā):自定義音頻播放控制

    系列教程 【二次開發(fā)】虛擬開發(fā)環(huán)境搭建和分享 離線語音模組
    的頭像 發(fā)表于 09-25 16:34 ?503次閱讀
    【離線語音】<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>VC-01</b>/<b class='flag-5'>02</b><b class='flag-5'>二次開發(fā)</b><b class='flag-5'>篇</b>:自定義音頻播放<b class='flag-5'>控制</b>