91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

玩嗨OpenHarmony:基于OpenHarmony的機械狗進階版——聽話的狗子

共熵服務中心 ? 來源:未知 ? 2022-11-01 21:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

原文引自CSDN社區(qū) 《[立創(chuàng)&傳智&黑馬程序員&CSDN]訓練營——仿生機械狗》

79e91e70-59e8-11ed-a3b6-dac502259ad0.png

編者按 昨天的《玩嗨OpenHarmony:基于OpenHarmony的仿生四足狗開發(fā)分享》,大家看到了一只12個自由度可在3D空間移動的機械狗的開發(fā)心得。今天分享的機械狗會更上一層樓,不僅僅支持藍牙操控實現(xiàn)復雜動作,而且還是支持通過語音控制的哦。相信大家會喜歡。 1. 功能描述 話不多說,我們先上圖上視頻: 正視圖:

7a1122a8-59e8-11ed-a3b6-dac502259ad0.jpg

俯視圖:

7a1c3616-59e8-11ed-a3b6-dac502259ad0.png

視頻展示: 狗狗名字叫小嘉,目前這只狗狗已經(jīng)支持語音控制前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、扭身子、握手、跳躍等;支持AP模式,用終端連接熱點,訪問網(wǎng)頁進行控制;還支持使用HC05和藍牙調(diào)試器進行控制;超聲波避障還在優(yōu)化中。 2. 硬件介紹 電源 由于整個項目需要驅(qū)動9個舵機,需要比較大的電流,所以供電選用兩節(jié)18(直徑)65(長度)0(圓柱形)鋰電池,電源部分主要使用12V-5V,以及5V-3.3V的LDO(這里有個優(yōu)化點,當時圖簡單,使用的都是LDO(編者注:Low Dropout Regulator 線性穩(wěn)壓電源 的英文縮寫),實測發(fā)熱還是比較嚴重,后面有打算換成DC/DC進行供電)。 用到了LM1084 (商城料號:C259973)和UZ1084(商城料號:C84897)。

7a906db0-59e8-11ed-a3b6-dac502259ad0.png

7aace1e8-59e8-11ed-a3b6-dac502259ad0.png

實際使用電路如下:

7ac87e12-59e8-11ed-a3b6-dac502259ad0.png

2.1 主控電路: 主控使用的是傳智教育的HI3861模組(商城料號C2923578),該模組內(nèi)置最小系統(tǒng)電路,簡化了該部分電路設計,只需要額外增加一個復位電路以及在電源部分添加一個100nF的旁路電容C7(大電容濾除低頻噪聲,小電容濾除高頻噪聲)即可。

7b6b5a2e-59e8-11ed-a3b6-dac502259ad0.png

下載電路: 在之前的鴻蒙訓練營,沒有添加CH340需要外部接線,給我人接麻了,疼定思痛,加上了CH340G模塊,由于使用的是Typec接口,所以在CC1和CC2要下來倆個電阻,方便電腦識別如果不加有可能會識別不到。另外,Hi3861是3.3V電壓基準,為了保證統(tǒng)一電平,這里CH340G采用3.3V供電(上一期筆者有用5V供電燒錄失敗的經(jīng)歷)所以對應的V3端口也要接3.3V,而非5V供電時的那樣。

7b7ca950-59e8-11ed-a3b6-dac502259ad0.png

PCB實物如下:

7c08cafc-59e8-11ed-a3b6-dac502259ad0.jpg

2.2 舵機驅(qū)動模塊: 由于PCA9685商城沒有現(xiàn)貨,在某寶查了一下價格,買個芯片和買個模塊要花差不多的米,本著提高成功率的態(tài)度,買了模塊。

7c1b7134-59e8-11ed-a3b6-dac502259ad0.png

2.3 語音識別模塊:

7c35677e-59e8-11ed-a3b6-dac502259ad0.png

語音識別使用的是鹿小班語音識別模塊,官方簡介:

ASR-01是一顆專用于語音處理的人工智能芯片,可廣泛應用于家電、家居、照明、玩具等產(chǎn)品領域,實現(xiàn)語音交互及控制。

ASR-ONE內(nèi)置自主研發(fā)的腦神經(jīng)網(wǎng)絡處理器BNPU(編者注:Brain Neural Network Processing Unit的英文縮寫),支持200條命令詞以內(nèi)的本地語音識別,內(nèi)置CPU核和高性能低功耗Audio Codec模塊,集成多路UART(編者注:通用非同步收發(fā)傳輸器Universal Asynchronous Receiver/Transmitter的英文縮寫)、IIC(編者注:Inter-Integrated Circuit 內(nèi)部集成電路的英文縮寫)、PWM(編者注:Pulse Width Modulation 脈沖寬度調(diào)制的英文縮寫)、GPIO(編者注:General-purpose input/output 通用輸入輸出的英文縮寫)等外圍控制接口,可以開發(fā)各類高性價比單芯片智能語音產(chǎn)品方案。

他們近期出了一款PRO版本,據(jù)說是支持聲紋識別的,筆者還沒買來嘗鮮,有興趣的同學自行了解吧。 2.4 超聲波模塊:

7c70c698-59e8-11ed-a3b6-dac502259ad0.jpg

這里筆者使用的是2022款的超聲波測距模塊HC-SR04 超聲波傳感器,支持兼容UNO R3/51/STM32,該模塊支持普通GPIO模式、IIC模式、UART模式、1-Wire模式,由于串口和IIC已經(jīng)被用到了其他地方,所以只能選擇GPIO模式或者是1-Wire模式。筆者使用的是GPIO模式,不需要更改電阻。如果使用其他模式需要根據(jù)操作手冊進行修改。 3. 軟件介紹 3.1 主體框架: 程序主體還是用的傳智官方的示例,在此基礎上進行了億點點修改,主要是增加了一個串口任務和動作邏輯。

static void UART_Task(void)
{
    IotUartAttribute uart_attr = {
        //baud_rate: 9600
        .baudRate = 9600,
        //data_bits: 8bits
        .dataBits = 8,
        .stopBits = 1,
        .parity = 0,
        .rxBlock = 0,
        .txBlock = 0,
    };
    //Initialize uart driver
    IoTUartInit(HI_UART_IDX_1, &uart_attr);
    while (1)
    {
        printf("=======================================
");
        printf("*************SIZU_example**************
");
        printf("=======================================
");
        // //通過串口1發(fā)送數(shù)據(jù)
        // IoTUartWrite(HI_UART_IDX_1, (unsigned char *)data, strlen(data));
        //通過串口1接收數(shù)據(jù)
        IoTUartRead(HI_UART_IDX_1, uart_buff_ptr, UART_BUFF_SIZE);
        SIZU_Uart_Cmd((char *)uart_buff_ptr);
        printf("Uart1 read data:%s
", uart_buff_ptr);
        usleep(500000);
    }
}


static void start(void) {
    osThreadAttr_t attr;
    //設置GPIO_2引腳復用功能為PWM
    IoTIoSetFunc(IOT_IO_NAME_5, IOT_IO_FUNC_5_UART1_RXD);
    IoTIoSetFunc(IOT_IO_NAME_6, IOT_IO_FUNC_6_UART1_TXD);
    IoTIoSetFunc(IOT_IO_NAME_10, IOT_IO_FUNC_10_I2C0_SDA);
    IoTIoSetFunc(IOT_IO_NAME_9, IOT_IO_FUNC_9_I2C0_SCL);
    IoTI2cInit(0, 400000);
    dog_init();
    genki_services_start();
    init_service();
    attr.name = "UART_Task";
    attr.attr_bits = 0U;
    attr.cb_mem = NULL;
    attr.cb_size = 0U;
    attr.stack_mem = NULL;
    attr.stack_size = UART_TASK_STACK_SIZE;
    attr.priority = UART_TASK_PRIO;
    if (osThreadNew((osThreadFunc_t)UART_Task, NULL, &attr) == NULL)
    {
        printf("[ADCExample] Falied to create UART_Task!
");
    }
}


APP_FEATURE_INIT(start);
動作邏輯主要參考如下視頻:
//  --------                 --------
// |  D9    |               |  D7    |
// | joint9 |               | joint7 |
//  ----- --------     --------- -----
//       |  D8    |   |  D6    |
//       | joint8 |   | joint6 |
//        --------     --------
//       |  D2    |  |   D4    |
//       | joint2 |  |  joint4 |
//  ----- --------    --------- -----
// |  D3    |               |  D5    |
// | joint3 |               | joint5 |
//  --------                 --------
//                Front
————————————————
3.2 語音識別 語音識別參考的筆者之前做的筆記: 《OpenHarmony學習筆記——Hi3861+ASR-01的語音識別助手》(https://blog.csdn.net/qq_41954556/article/details/123905578)。 由于功能比較簡單,也就沒有去弄數(shù)據(jù)包,一個簡單的開頭和一個數(shù)字,然后使用atoi函數(shù)獲取數(shù)字,進行判斷,最后執(zhí)行操作即可。
// An highlighted block
enum{
    Get_Down,//趴下
  Hand_shake,//握手
    Go_Forward,//前進
    Go_Backward,//后退
    Go_Left,//左轉(zhuǎn)
    Go_Right,//右轉(zhuǎn)
    Twist_Body,//扭身子
    Stretch_Oneself,//伸懶腰
    WAIT//d
};


//檢測串口指令
void SIZU_Uart_Cmd(char *str)      
{
    char  *Str;
    unsigned char ID=255;
  
    Str=&str[1];//定位到指令的數(shù)字部分“U1”
    ID=atoi(Str);
  
  if(strstr((const char *)str,"G")!=NULL)      //如果字符串str中包含有“G”
  {
    switch(ID)
    {
      case Get_Down:  //趴下  G0
                sithome();
                printf("Get_Down
");
        break;
      case Hand_shake:  // 握手G1
                wink(10);
                printf("Handshake
");
        break;
      case Go_Forward:  // 前進G2
                forward(5);
                printf("Go_Forward
");
        break;
      case Go_Backward:  // 后退G3
                 backward(5);
                 printf("Go_Backward
");
        break;
            case Go_Left:  // 左轉(zhuǎn)G4
                leftturn(5);
                 printf("Go_Left
");
        break;
             case Go_Right:  // 右轉(zhuǎn)G5
                 rightturn(5);
                 printf("Go_Right
");
        break;
            case Twist_Body:  // 扭身子
                 twist();
                 printf("LED_Add
");
        break;
            case Stretch_Oneself:  //伸懶腰
                 printf("LED_Reduce
");
                 stand3();
        break;
      default:
        printf("%s ERROR",str);
                standhome();
        break;
    }
  }
    memset(uart_buff,0,sizeof(uart_buff));
}
OLED顯示表情,這個需要找到表情包GIF然后分離出單幀表情,取模,顯示,詳細的取模過程參考博客:《0.96寸OLED取模教程——字符與圖片取?!罚╤ttps://blog.csdn.net/qq_39400113/article/details/108036400) 語音識別的關鍵詞使用的是天問的鹿小班模塊,內(nèi)置圖形化編程模塊,YYDS!會拖動模塊就可以了,想玩語音識別的,強烈推薦此款。

7c7ca486-59e8-11ed-a3b6-dac502259ad0.png

3.3 超聲波測距 這里筆者使用的是GPIO模式,利用兩個GPIO口進行控制和捕獲,進而計算出距離,詳細介紹請參考筆者的博客《OpenHarmony南向?qū)W習筆記——Hi3861+HC-SR04超聲波檢測》(https://blog.csdn.net/qq_41954556/article/details/125910794)

通信流程:

根據(jù)廠商資料可以知道,該模塊的通信流程如下:

主控芯片與TRIG連接的IO配置為輸出模式,與ECHO連接的IO配置為輸入模式;

MCU(編者注:Micro Controller Unit 微控制單元的英文縮寫)給TRIG引腳輸出一個大于10us的高電平脈沖;

模塊通過ECHO腳返回一個高電平脈沖信號;

主控記錄ECHO腳高電平脈沖時間T并代入公式計算。

代碼:

// An highlighted block


#define Echo  8   //Echo   //GPIO8
#define Trig  7   //Trig   //GPIO7
#define GPIO_FUNC 0


float GetDistance  (void) {
    static unsigned long start_time = 0, time = 0;
    float distance = 0.0;
    IotGpioValue value = IOT_GPIO_VALUE0;
    unsigned int flag = 0;
/*========GPIO通信模式流程1初始化GPIO =============== */
    IoTIoSetFunc(Echo, GPIO_FUNC);//設置Echo連接IO為普通GPIO模式,無復用
    IoTGpioSetDir(Echo, IOT_GPIO_DIR_IN);//設置Echo連接IO為輸入模式
    IoTGpioSetDir(Trig, IOT_GPIO_DIR_OUT);//設置Trig連接IO為輸出模式
/* ======== GPIO通信模式流程 2輸出起始信號 =============== */
    IoTGpioSetOutputVal(Trig, IOT_GPIO_VALUE1);//拉高Trig
    IoTUdelay(20);//20us
    IoTGpioSetOutputVal(Trig, IOT_GPIO_VALUE0);//拉低Trig
/* ======== GPIO通信模式流程 3檢測Echo腳輸出的高電平時間 ==== */
    while (1) {
        IoTGpioGetInputVal(Echo, &value);//讀取Echo腳的電平狀態(tài)
        if ( value == IOT_GPIO_VALUE1 && flag == 0) {//如果為高
            start_time = IoTGetUs();//獲取此時時間
            flag = 1;
        }
        if (value == IOT_GPIO_VALUE0 && flag == 1) {//高電平結束變成低電平
            time = IoTGetUs() - start_time;//計算高電平維持時間
            start_time = 0;
            break;
        }
    }
/* ======== GPIO通信模式流程 4代入公式計算 ====== */
    distance = time * 0.034 / 2;
    // printf("distance is %f
",distance);
    return distance;
}
4. 機械結構 筆者也是第一次自己繪制3D結構件,還不太OK啊,跟著畫了個錘子,然后覺著自己畫的結構實在不太靠譜,于是去海鮮市場撈了一個,有相同煩惱的同學可以去看看。

7c9d9e66-59e8-11ed-a3b6-dac502259ad0.png

7cb9cde8-59e8-11ed-a3b6-dac502259ad0.png

4.1 物料清單

四足機器人3D打印件(打印件不是整機,電子件、螺絲等自備)38 * 1

SG90 MG90S 9g舵機 固定翼航模遙控飛機 9克 馬達航模5.99 * 9

16路PWM舵機驅(qū)動板PCA9685控制器機器人IIC適用MG90S SG90 MG995 19.6 * 1

鋰電池兩節(jié)18650或者2S,大約30-40,加上OLED、超聲波模塊,M3螺絲、螺母、銅柱、模組、芯片一起大約200成本。

總結 感謝立創(chuàng)EDA、傳智、黑馬程序員、CSDN提供的鴻蒙物聯(lián)網(wǎng)實戰(zhàn)訓練營活動,在本次活動中學到了很多之前未接觸的知識,受益良多。 寫在最后 我們最近正帶著大家玩嗨OpenHarmony。如果你有好玩的東東,歡迎投稿,讓我們一起嗨起來!有點子,有想法,有Demo,立刻聯(lián)系我們: 合作郵箱:zzliang@atomsource.org

7cd6f814-59e8-11ed-a3b6-dac502259ad0.gif

7cf3da60-59e8-11ed-a3b6-dac502259ad0.png7d5254dc-59e8-11ed-a3b6-dac502259ad0.png7d6fddb8-59e8-11ed-a3b6-dac502259ad0.png7da2e366-59e8-11ed-a3b6-dac502259ad0.png

7dbadc14-59e8-11ed-a3b6-dac502259ad0.png

7e0fab40-59e8-11ed-a3b6-dac502259ad0.png

7ebf8254-59e8-11ed-a3b6-dac502259ad0.png

7ed3cd54-59e8-11ed-a3b6-dac502259ad0.png

7f122df6-59e8-11ed-a3b6-dac502259ad0.png

原文標題:玩嗨OpenHarmony:基于OpenHarmony的機械狗進階版——聽話的狗子

文章出處:【微信公眾號:開源技術服務中心】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

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

    關注

    0

    文章

    19

    瀏覽量

    4954
  • OpenHarmony
    +關注

    關注

    33

    文章

    3952

    瀏覽量

    21095

原文標題:玩嗨OpenHarmony:基于OpenHarmony的機械狗進階版——聽話的狗子

文章出處:【微信號:開源技術服務中心,微信公眾號:共熵服務中心】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【原創(chuàng)】OpenHarmony系統(tǒng)投屏工具軟件 - OpenHarmony_OHScrcpy使用推薦

    OpenHarmony_OHScrcpy - OpenHarmony投屏工具軟件 OpenHarmony_OHScrcpy是一款為OpenHarmony系統(tǒng)設計的投屏工具軟件,功能類似
    發(fā)表于 01-22 18:34

    #OpenHarmony HDC調(diào)試

    OpenHarmony
    視美泰
    發(fā)布于 :2026年01月16日 09:46:28

    #OpenHarmony 開發(fā)環(huán)境準備

    OpenHarmony
    視美泰
    發(fā)布于 :2026年01月16日 09:44:31

    #OpenHarmony 鏡像燒錄

    OpenHarmony
    視美泰
    發(fā)布于 :2026年01月16日 09:42:36

    #OpenHarmony 系統(tǒng)概述

    OpenHarmony
    視美泰
    發(fā)布于 :2026年01月16日 09:39:20

    #OpenHarmony Hello World應用以及部署

    OpenHarmony
    視美泰
    發(fā)布于 :2026年01月16日 09:32:52

    OpenHarmony系統(tǒng)】本期視頻將為您介紹怎樣將鏡像燒錄到板卡中。

    OpenHarmony
    視美泰
    發(fā)布于 :2026年01月15日 14:29:55

    OpenHarmony年度課題管理辦法

    OpenHarmony年度課題管理辦法V1.0 第一章 總則 第一條 宗旨 圍繞終端操作系統(tǒng)所面臨的技術挑戰(zhàn),OpenHarmony項目群技術指導委員會(TSC)聯(lián)合產(chǎn)學研各界,以
    的頭像 發(fā)表于 11-12 16:55 ?652次閱讀

    兩款搭載KaihongOS的開鴻開發(fā)板被評為“OpenHarmony 明星開發(fā)板”

    OpenHarmony
    深開鴻
    發(fā)布于 :2025年09月11日 10:10:02

    2025 OpenHarmony TSC年中技術與生態(tài)研討會圓滿舉辦

    2025 OpenHarmony TSC 年中技術與生態(tài)研討會 圓滿舉辦 8月1日,2025 OpenHarmony TSC年中技術與生態(tài)研討會于中國上海順利召開。 本次會議由OpenHarmony
    的頭像 發(fā)表于 08-07 12:24 ?2032次閱讀
    2025 <b class='flag-5'>OpenHarmony</b> TSC年中技術與生態(tài)研討會圓滿舉辦

    OpenHarmony2025年度競賽訓練營重磅開啟

    ? OpenHarmony2025年度競賽訓練營 ? ? ? 活動介紹 OpenHarmony競賽訓練營 旨在引導高校學生進行OpenHarmony產(chǎn)學研用,培養(yǎng)更多應用型人才和產(chǎn)業(yè)需求有效鏈接
    的頭像 發(fā)表于 07-16 11:51 ?912次閱讀

    桃芯科技獲得OpenHarmony生態(tài)產(chǎn)品兼容性證書

    近日,由INGCHIPS自主研發(fā)的模組/開發(fā)板DB870CC1A順利通過OpenHarmony 5.0.2 Release版本兼容性測評,并獲得OpenHarmony生態(tài)產(chǎn)品兼容性證書!
    的頭像 發(fā)表于 06-25 14:30 ?1124次閱讀

    請問下,openharmony支持哪一款龍芯的開發(fā)板?有沒有開源的龍芯的openharmony源碼?

    想買個2k0300的開發(fā)板學習龍芯和openharmony,愣是沒有看到提供openharmony源碼的,也沒與看到開源的代碼。gitee上,openharmony的龍芯sig倉庫也是關閉的,有沒有人知道現(xiàn)在是什么情況?
    發(fā)表于 04-26 13:06

    2024年OpenHarmony社區(qū)年度激勵公示

    在過去一年里,OpenHarmony項目群技術指導委員會(TSC)向所有參與者致以最誠摯的感謝!大家的積極參與和鼎力支持推動了OpenHarmony社區(qū)的持續(xù)繁榮與高質(zhì)量發(fā)展。OpenHarmony
    的頭像 發(fā)表于 04-21 18:17 ?1148次閱讀