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

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

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

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

基于搭載OpenHarmony避障小車連接華為云心得體會(huì)

福州市凌睿智捷電子有限公司 ? 2022-06-14 11:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、前言

上次給大家展示了基于OpenHarmony的避障小車,我就在想能不能通過(guò)云端來(lái)控制小車的工作。正好小凌派板載了WIFI功能,小凌派官方例程中又有通過(guò)MQTT協(xié)議連接華為云的例程。在不斷的嘗試下,終于完成了通過(guò)華為云給小車下發(fā)工作命令的避障小車。

二、小車介紹

這是一款基于OpenHarmony系統(tǒng)和RK2206小凌派開(kāi)發(fā)板的避障小車。同時(shí),小車搭載了超聲波測(cè)距模塊、舵機(jī)模塊、紅外尋跡模塊、直流電機(jī)模塊。

323012ae-e734-11ec-a2f4-dac502259ad0.png

圖1 小車組裝圖

32775ce0-e734-11ec-a2f4-dac502259ad0.png ?????????

圖2 小凌派開(kāi)發(fā)板

三、華為云配置

在華為云中創(chuàng)建一個(gè)新的設(shè)備(圖3),創(chuàng)建設(shè)備的設(shè)備密碼一定要牢記,后面要用到。32afc51c-e734-11ec-a2f4-dac502259ad0.png

圖3 創(chuàng)建完成界面

總體配置如圖4所示。

3326de0e-e734-11ec-a2f4-dac502259ad0.png

圖4 華為云總體配置

創(chuàng)建了一個(gè)“work”屬性用來(lái)接收小車當(dāng)前的工作狀態(tài)(圖5)。

337f6a9c-e734-11ec-a2f4-dac502259ad0.jpg

圖5 “work”參數(shù)

33a716f0-e734-11ec-a2f4-dac502259ad0.png

創(chuàng)建了兩個(gè)命令“小車工作控制”(圖6)和“小車人工控制”(圖7)用來(lái)控制小車工作。其中,“小車工作控制”中有三個(gè)命令,分別是:ON(工作模式)、OFF(停止模式)、CONTROL(手動(dòng)控制小車模式)?!靶≤嚾斯た刂啤敝杏形鍌€(gè)命令,分別是:STOP(停止)、FORWARD(直行)、TURNLEFT(左轉(zhuǎn))、TURNRIGHT(右轉(zhuǎn))、BCAKWARD(后退)。

圖6 “小車工作控制”參數(shù)

33e0a88e-e734-11ec-a2f4-dac502259ad0.png ?????

圖7 “小車人工控制”參數(shù)

四、小車配置

1.小車連接華為云

利用華為云iot工具(圖8)將填寫注冊(cè)設(shè)備時(shí)生成的設(shè)備ID和設(shè)備密鑰,生成連接信息(ClientId、Username、Password),并修改代碼中對(duì)應(yīng)的CLIENT_ID、USERNAME、PASSWORD。

342aa92a-e734-11ec-a2f4-dac502259ad0.png

圖8 華為云iot工具

將代碼中的CLIENT_ID、USERNAME和PASSWORD改為生成的ClientId、Username和Password。

#define CLIENT_ID

#define USERNAME

#define PASSWORD

修改/device/rockchip/rk2206/sdk_liteos/board/src/config_network.c代碼中的SSID和PASSWORD為使用WIFI的SSID和密匙,用于連接網(wǎng)絡(luò),設(shè)備通過(guò)WIFI訪問(wèn)華為云。

#define SSID

#define PASSWORD

2.小車指令接收配置

344ec738-e734-11ec-a2f4-dac502259ad0.png

從華為云向小車下發(fā)工作指令時(shí),可以在設(shè)備調(diào)試窗口看到華為云發(fā)送消息的body信息?!皊ervice_id”為設(shè)備的服務(wù)ID,ID為“智能小車”;“command_name”為設(shè)備命令名稱,命令為“小車工作控制”;“paras”為設(shè)備命令的執(zhí)行參數(shù),參數(shù)為{ “work”:“ON”}(圖9)。

圖9 華為云發(fā)送消息body信息

以下是處理華為云下發(fā)命令的部分代碼:

obj_cmdname = cJSON_GetObjectItem(obj_root, "command_name");

if (obj_cmdname == NULL)

{

goto EXIT;

}

if (0 == strcmp(cJSON_GetStringValue(obj_cmdname), "小車工作控制"))

{

obj_paras = cJSON_GetObjectItem(obj_root, "paras");

if (obj_paras == NULL)

{

goto EXIT;

}

obj_para = cJSON_GetObjectItem(obj_paras, "work");

if (obj_para == NULL)

{

goto EXIT;

}

if (0 == strcmp(cJSON_GetStringValue(obj_para), "ON"))

{

m_app_status.work = 1;

g_car_status = CAR_TRACE_STATUS;

}

else if (0 == strcmp(cJSON_GetStringValue(obj_para), "OFF"))

{

m_app_status.work = 0;

g_car_status = CAR_STOP_STATUS;

}

else if (0 == strcmp(cJSON_GetStringValue(obj_para), "CONTROL"))

{

m_app_status.work = 2;

g_car_status = CAR_MANUAL_OPERATION_STATUS;

}

cmdret = 0;

}

else if (0 == strcmp(cJSON_GetStringValue(obj_cmdname), "小車人工控制"))

{

obj_paras = cJSON_GetObjectItem(obj_root, "paras");

if (obj_paras == NULL)

{

goto EXIT;

}

obj_para = cJSON_GetObjectItem(obj_paras, "control");

if (obj_para == NULL)

{

goto EXIT;

}

if (0 == strcmp(cJSON_GetStringValue(obj_para), "STOP"))

{

g_car_control = CAR_STOP;

}

else if (0 == strcmp(cJSON_GetStringValue(obj_para), "FORWARD"))

{

g_car_control = CAR_FORWARD;

}

else if (0 == strcmp(cJSON_GetStringValue(obj_para), "TURNLEFT"))

{

g_car_control = CAR_TURNLEFT;

}

else if (0 == strcmp(cJSON_GetStringValue(obj_para), "TURNRIGHT"))

{

g_car_control = CAR_TURNRIGHT;

}

else if (0 == strcmp(cJSON_GetStringValue(obj_para), "BCAKWARD"))

{

g_car_control = CAR_BCAKWARD;

}

cmdret = 0;

}

3.小車數(shù)據(jù)發(fā)送配置

347ae07a-e734-11ec-a2f4-dac502259ad0.png

小車連接上華為云后,每5秒會(huì)向華為云的發(fā)送當(dāng)前小車的狀態(tài)信息?!眘erviced”為設(shè)備的服務(wù)ID,ID為”智能小車”;”data”為設(shè)備數(shù)據(jù),數(shù)據(jù)為{“work”:0}(圖10)。

圖10 小車向華為云發(fā)送狀態(tài)信息

以下是小車上傳數(shù)據(jù)到華為云的部分代碼:

oc_mqtt_profile_service_t service;

oc_mqtt_profile_kv_t work;


service.event_time = NULL;

service.service_id = "智能小車";

service.service_property = &work;

service.nxt = NULL;


work.key = "Work";

work.value = &report->work;

work.type = EN_OC_MQTT_PROFILE_VALUE_INT;

work.nxt = NULL;


oc_mqtt_profile_propertyreport(USERNAME, &service);

五、效果

給小車上電之后,等待小車連接華為云,可以看到小車向華為云發(fā)送消息。從視頻中可以看到華為云接收到的消息為data:{“work”:0},說(shuō)明小車剛上電后并沒(méi)有工作。



現(xiàn)在通過(guò)華為云向小車下發(fā)工作命令。從視頻中可以看到在小車的前方和左邊都有障礙物。啟動(dòng)小車后小車會(huì)先直行,通過(guò)超聲波傳感器獲取前方的距離,當(dāng)距離小于20cm時(shí),小車通過(guò)超聲波傳感器測(cè)量左右兩邊的距離,由于右邊的距離比左邊大,小車會(huì)向右轉(zhuǎn)。從視頻中可以看到,小車按照我們預(yù)想的方向行動(dòng),同時(shí)我們可以看到華為云接收到的消息為data:{“work”:1},說(shuō)明小車現(xiàn)在正在工作。



以下是避障的部分代碼:

if (distance < DISTANCE_BETWEEN_CAR_AND_OBSTACLE)

{

car_stop();

LOS_Msleep(500);

car_backward();

printf("This is backward\r\n");

LOS_Msleep(500);

car_stop();

unsigned int ret = engine_go_where();

printf("ret is %d\r\n", ret);

if (ret == CAR_TURN_LEFT)

{

car_left();

LOS_Msleep(800);

}

else if (ret == CAR_TURN_RIGHT)

{

car_right();

LOS_Msleep(800);

}

car_stop();

}

通過(guò)華為云下發(fā)命令,將小車的工作模式轉(zhuǎn)換成控制模式,我們可以看到華為云接收到的消息為data:{“work”:2},說(shuō)明小車的行動(dòng)受我們控制。



通過(guò)華為云向小車下發(fā)直行命令,可以看到小車直行。



通過(guò)華為云向小車下發(fā)左轉(zhuǎn)命令,可以看到小車左轉(zhuǎn)。



通過(guò)華為云向小車下發(fā)右轉(zhuǎn)命令,可以看到小車右轉(zhuǎn)。



通過(guò)華為云向小車下發(fā)后退命令,可以看到小車后退。



六、心得體會(huì)

通過(guò)本次項(xiàng)目使用搭載OpenHarmony的小凌派RK2206開(kāi)發(fā)板進(jìn)行開(kāi)發(fā)。小凌派官方教程簡(jiǎn)介清晰,便于入門。RK2206芯片接口比較豐富,移植適配穩(wěn)定性較好,整體開(kāi)發(fā)進(jìn)度比較順利。讓我學(xué)習(xí)到了如何使用MQTT協(xié)議連接華為云去控制小車的工作。通過(guò)這一次的應(yīng)用開(kāi)發(fā),體驗(yàn)了OpenHarmony和國(guó)產(chǎn)芯片開(kāi)發(fā),是一次不錯(cuò)的學(xué)習(xí)體驗(yàn),特此記錄!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • OpenHarmony
    +關(guān)注

    關(guān)注

    29

    文章

    3848

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    TuyaOpen開(kāi)源框架+地瓜RDK X5開(kāi)發(fā)板=激光雷達(dá)、人體追蹤的智能小車

    OriginBot是一款智能機(jī)器人開(kāi)源套件,搭載地瓜RDKX5開(kāi)發(fā)板,通過(guò)完全開(kāi)源的TuyaOpen開(kāi)發(fā)框架(點(diǎn)擊查看TuyaOpen能開(kāi)發(fā)哪些AI硬件?),能夠?qū)崿F(xiàn)激光雷達(dá)、智能聯(lián)網(wǎng)、目標(biāo)檢測(cè)
    的頭像 發(fā)表于 06-26 18:35 ?288次閱讀
    TuyaOpen開(kāi)源框架+地瓜RDK X5開(kāi)發(fā)板=激光雷達(dá)<b class='flag-5'>避</b><b class='flag-5'>障</b>、人體追蹤的智能<b class='flag-5'>小車</b>

    也能預(yù)判?視覺(jué)黑科技讓掃地機(jī)器人開(kāi)啟“先知”模式

    從被動(dòng)到主動(dòng)預(yù)判,視覺(jué)技術(shù)比預(yù)想的更快實(shí)現(xiàn)。
    的頭像 發(fā)表于 06-18 14:09 ?233次閱讀

    【硬核項(xiàng)目】STM32F103 智能小車全棧開(kāi)發(fā):紅外循跡 / 算法 + WiFi 遠(yuǎn)程控制,附原理圖與代碼

    今天為大家推薦一款功能強(qiáng)大的STM32多功能智能小車——華清遠(yuǎn)見(jiàn)STM32F103智能小車。這款小車集紅外遙控、遠(yuǎn)程物聯(lián)控制、智能循跡、超聲波
    的頭像 發(fā)表于 05-16 17:11 ?870次閱讀
    【硬核項(xiàng)目】STM32F103 智能<b class='flag-5'>小車</b>全棧開(kāi)發(fā):紅外循跡 / <b class='flag-5'>避</b><b class='flag-5'>障</b>算法 + WiFi 遠(yuǎn)程控制,附原理圖與代碼

    肇觀電子兩款無(wú)人機(jī)視覺(jué)模組量產(chǎn)交付

    在無(wú)人機(jī)的世界里,視覺(jué)不僅定義了飛行的邊界,更是智能決策的核心。肇觀電子以其突破性的AI視覺(jué)芯片,賦予無(wú)人機(jī)前所未有的感知與認(rèn)知能力。 基于肇觀自研芯片的兩款無(wú)人機(jī)視覺(jué)模組:無(wú)人機(jī)輕量智能
    的頭像 發(fā)表于 05-06 15:11 ?514次閱讀

    平臺(tái)連接(SC171開(kāi)發(fā)套件V3)

    平臺(tái)連接(SC171開(kāi)發(fā)套件V3) 序列 課程名稱 視頻課程時(shí)長(zhǎng) 視頻課程鏈接 課件鏈接 工程源碼 1 SC171連接華為案例Part1
    發(fā)表于 04-27 14:23

    【零基礎(chǔ)逆襲軟硬件工程師】華清遠(yuǎn)見(jiàn)STM32F103智能小車開(kāi)發(fā)實(shí)戰(zhàn),手把手帶你從硬件組裝到WiFi遠(yuǎn)程控制,解鎖

    STM32F103智能小車是由華清遠(yuǎn)見(jiàn)傾力打造的一款多功能智能小車,專為高校教學(xué)、學(xué)生畢業(yè)設(shè)計(jì)、創(chuàng)新競(jìng)賽、單片機(jī)入門學(xué)習(xí)及項(xiàng)目實(shí)踐量身定制。這款小車集紅外遙控、遠(yuǎn)程物聯(lián)網(wǎng)控制、智能
    的頭像 發(fā)表于 04-17 14:49 ?594次閱讀
    【零基礎(chǔ)逆襲軟硬件工程師】華清遠(yuǎn)見(jiàn)STM32F103智能<b class='flag-5'>小車</b>開(kāi)發(fā)實(shí)戰(zhàn),手把手帶你從硬件組裝到WiFi遠(yuǎn)程控制,解鎖

    潤(rùn)和的Hi3861開(kāi)發(fā)版如何連接華為

    剛?cè)胧至艘惶诐?rùn)和的Hi3861開(kāi)發(fā)套件,下載的是3.2Release版本的源碼,想連接華為但是潤(rùn)和那邊的代碼倉(cāng)中沒(méi)有相關(guān)的demo,,求大佬指點(diǎn)
    發(fā)表于 04-11 20:32

    潤(rùn)和的Hi3861開(kāi)發(fā)板如何連接華為

    剛?cè)胧至艘惶诐?rùn)和的Hi3861開(kāi)發(fā)套件,想連接華為但是潤(rùn)和那邊的代碼倉(cāng)中沒(méi)有相關(guān)的demo,求大佬指點(diǎn)
    發(fā)表于 04-11 20:30

    INDEMIND:AI視覺(jué)賦能服務(wù)機(jī)器人,“零”碰撞技術(shù)實(shí)現(xiàn)全天候安全

    突破傳統(tǒng)局限,視覺(jué)方案為服務(wù)機(jī)器人拉滿安全感。
    的頭像 發(fā)表于 02-21 16:27 ?368次閱讀
    INDEMIND:AI視覺(jué)賦能服務(wù)機(jī)器人,“零”碰撞<b class='flag-5'>避</b><b class='flag-5'>障</b>技術(shù)實(shí)現(xiàn)全天候安全

    電腦 華為,電腦 華為好用嗎,電腦搭建工具怎么連接

    娛樂(lè)活動(dòng)中,增強(qiáng)了娛樂(lè)體驗(yàn)的互動(dòng)性和趣味性。接下來(lái)和大家一起探索電腦華為好用嗎。 ? ?電腦華為好用嗎: ? ?華為
    的頭像 發(fā)表于 01-21 13:20 ?574次閱讀
    <b class='flag-5'>云</b>電腦 <b class='flag-5'>華為</b>,<b class='flag-5'>云</b>電腦 <b class='flag-5'>華為</b>好用嗎,<b class='flag-5'>云</b>電腦搭建工具怎么<b class='flag-5'>連接</b>

    機(jī)器人紅外

    機(jī)器人紅外
    發(fā)表于 09-19 12:57 ?0次下載

    機(jī)智開(kāi)源自動(dòng)化控制篇-式舵機(jī)轉(zhuǎn)向系統(tǒng)

    本次采用STM32F103C8T6單片機(jī)、ESP-01S模塊、紅外模塊、SG90舵機(jī)(360°)以及0.96寸的IIC接口OLED顯示屏,基于機(jī)智平臺(tái),完成了
    的頭像 發(fā)表于 08-30 12:14 ?690次閱讀
    機(jī)智<b class='flag-5'>云</b>開(kāi)源自動(dòng)化控制篇-<b class='flag-5'>避</b><b class='flag-5'>障</b>式舵機(jī)轉(zhuǎn)向系統(tǒng)

    第七章-V1.5 STM32超聲波測(cè)距STM32F103C8t6超聲波小車 超聲波模塊 STM32超聲波測(cè)距

    5STM32超聲波測(cè)距STM32F103C8t6超聲波小車
    的頭像 發(fā)表于 08-15 16:25 ?1726次閱讀
    第七章-V1.5 STM32超聲波測(cè)距STM32F103C8t6超聲波<b class='flag-5'>避</b><b class='flag-5'>障</b><b class='flag-5'>小車</b> 超聲波<b class='flag-5'>避</b><b class='flag-5'>障</b>模塊 STM32超聲波測(cè)距

    第六章-V1.5 STM32 ADC讀取電壓 ADC采樣電壓 STM32f103c8t6adc采集電壓

    STM32智能小車 庫(kù)函數(shù)開(kāi)發(fā)。功能:循跡、、跟隨、遙控、電池電壓顯示等。
    的頭像 發(fā)表于 08-15 16:23 ?1910次閱讀
    第六章-V1.5 STM32 ADC讀取電壓 ADC采樣電壓 STM32f103c8t6adc采集電壓

    智行者——視聽(tīng)障礙者出行輔助AI小車設(shè)計(jì)

    設(shè)備,配備AI導(dǎo)航小車和家屬端App,旨在滿足視聽(tīng)障礙者的實(shí)時(shí)定位和信息交流需求。設(shè)備包含導(dǎo)航、語(yǔ)音交互和觸摸交互模塊,支持定位、路徑規(guī)劃和實(shí)時(shí)
    的頭像 發(fā)表于 07-19 08:11 ?1278次閱讀
    智行者——視聽(tīng)障礙者出行輔助AI<b class='flag-5'>小車</b>設(shè)計(jì)