1
簡介
此Demo采用潤和的智能小車套件為硬件模型,通過修改代碼具備了掃地機(jī)器人簡易的避障功能及防跌落功能,并且能通過wifi接入數(shù)字管家應(yīng)用場景。智能掃地機(jī)不僅能接收數(shù)字管家應(yīng)用下發(fā)的指令啟動或停止掃地機(jī)器人,而且還可以加入到數(shù)字管家的日程管理中。通過日程可以設(shè)定智能掃地機(jī)啟動的時(shí)間段,使其在特定的時(shí)間段內(nèi),智能掃地機(jī)自動啟動或者停止。
避障功能原理:通過超聲波傳感器,傳回正前方障礙與智能掃地機(jī)的距離信息,配合電機(jī)控制,避開障礙物;
防跌落功能原理:如圖左右各朝下安裝了紅外傳感器,通過紅外對管(發(fā)射管和接收管)收發(fā)特性:1 在地面上時(shí)發(fā)射管發(fā)出的紅外信號充分經(jīng)地面反射回接收管,即接收管能接收到足夠強(qiáng)的紅外光,代碼判斷為在地面;2 小車懸空時(shí),發(fā)射管發(fā)出的紅外信號不能被接收管接收,代碼判斷為在懸空狀況;3 再配合兩輪運(yùn)動控制,避免小車跌落。
1. 交互流程:
如上圖所示,智能掃地機(jī)整體方案原理圖可以大致分成:智能掃地機(jī)、數(shù)字管家應(yīng)用、云平臺三部分。智能掃地機(jī)通過MQTT協(xié)議連接華為IoT物聯(lián)網(wǎng)平臺,從而實(shí)現(xiàn)命令的接收和屬性上報(bào)。關(guān)于智能設(shè)備接入華為云IoT平臺的詳細(xì)細(xì)節(jié)可以參考 連接IoT云平臺指南;智能設(shè)備同數(shù)字管家應(yīng)用之間的設(shè)備模型定義可以參考profile
2. 實(shí)物簡介:
我們使用潤和Wi-Fi IoT智能小車套件來模擬智能掃地機(jī);
oled屏負(fù)責(zé)顯示當(dāng)前網(wǎng)絡(luò)狀況,有三種狀況:
1.WIFI_CONNECT_ING(等待配網(wǎng),未連入WIFI);
2.WIFI_CONNECT_OK(已經(jīng)連入WIFI,等待自動連入華為云端);
3.IOT_CONNECT_OK(已經(jīng)連入華為云端)。
reset按鍵控制設(shè)備重啟;
按鍵1可以啟動、暫停智能掃地機(jī);
按鍵2組合reset按鍵執(zhí)行配網(wǎng)操作;
配網(wǎng)操作:
reset按鍵組合控制按鍵可以清除已保存的配網(wǎng)信息,具體操作:
1 .按下按鍵2,保持按鍵2被按下,執(zhí)行以下第2步;
2 .按下reset按鍵,保持1秒;
3 .先松開reset按鍵,1秒后再松開按鍵2;
4 .OLED顯示W(wǎng)IFI_CONNECT_ING,即進(jìn)入配網(wǎng)模式;
通過NFC模塊實(shí)現(xiàn)設(shè)備碰一碰快速配網(wǎng)。
3.實(shí)物操作體驗(yàn)
如上圖,主要有三個(gè)操作(下面有詳細(xì)介紹):
1 .手機(jī)碰一碰掃地機(jī)上的標(biāo)簽,自動配網(wǎng);
2 .手機(jī)上啟動、暫停智能掃地機(jī);
3 .給智能掃地機(jī)添加日程。
2
快速上手
1. 硬件準(zhǔn)備
-
Wi-Fi IoT智能小車套件
-
預(yù)裝HarmonyOS手機(jī)一臺
2、Linux編譯服務(wù)器基礎(chǔ)環(huán)境準(zhǔn)備
開發(fā)基礎(chǔ)環(huán)境由windows 工作臺和Linux 編譯服務(wù)器組成。windows 工作臺可以通過samba 服務(wù)或ssh 方式訪問Linux編譯服務(wù)器。其中windows 工作臺用來燒錄和代碼編輯,Linux編譯服務(wù)器用來編譯OpenHarmony代碼,為了簡化步驟,Linux編譯服務(wù)器推薦安裝Ubuntu20.04。
安裝和配置Python
-
打開Linux終端。
-
輸入如下命令,查看python版本號,需要使用python3.7以上版本,否則參考 系統(tǒng)基礎(chǔ)環(huán)境搭建。
python3 --version
左右滑動查看全部代碼
-
安裝并升級Python包管理工具(pip3)。
sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip
左右滑動查看全部代碼
安裝hb
-
運(yùn)行如下命令安裝hb
python3 -m pip install --user ohos-build
左右滑動查看全部代碼
設(shè)置環(huán)境變量
vim ~/.bashrc
左右滑動查看全部代碼
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。
export PATH=~/.local/bin:$PATH
左右滑動查看全部代碼
執(zhí)行如下命令更新環(huán)境變量。
source ~/.bashrc
左右滑動查看全部代碼
-
執(zhí)行"hb -h",有打印以下信息即表示安裝成功
usage: hb
OHOS build system
positional arguments:
{build,set,env,clean}
build Build source code
set OHOS build settings
env Show OHOS build env
clean Clean output
optional arguments:
-h, --help show this help message and exit
左右滑動查看全部代碼
3、Hi3861開發(fā)環(huán)境準(zhǔn)備
在Linux編譯服務(wù)器上搭建好基礎(chǔ)開發(fā)環(huán)境后,需要安裝OpenHarmony 編譯Hi3861 平臺特有的開發(fā)環(huán)境。
安裝編譯依賴基礎(chǔ)軟件
sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev
左右滑動查看全部代碼
安裝Scons
打開Linux 終端。
運(yùn)行如下命令,安裝Scons安裝包。
python3 -m pip install scons
左右滑動查看全部代碼
運(yùn)行如下命令,查看是否安裝成功。如果安裝成功,查詢結(jié)果下圖所示。
scons -v
左右滑動查看全部代碼
下圖 Scons安裝成功界面,版本要求3.0.4以上
安裝python模塊
sudo pip3 install setuptools kconfiglib pycryptodome ecdsa six --upgrade --ignore-installed six
左右滑動查看全部代碼
安裝gcc_riscv32(WLAN模組類編譯工具鏈)
-
打開Linux終端。
-
下載gcc_riscv32鏡像,下載鏈接。
-
設(shè)置環(huán)境變量,將壓縮包解壓到根目錄
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~
左右滑動查看全部代碼
設(shè)置環(huán)境變量
vim ~/.bashrc
左右滑動查看全部代碼
將以下命令拷貝到.bashrc文件的最后一行,保存并退出
export PATH=~/gcc_riscv32/bin:$PATH
左右滑動查看全部代碼
生效環(huán)境變量
source ~/.bashrc
左右滑動查看全部代碼
在命令行中輸入如下命令,如果能正確顯示編譯器版本號,表明編譯器安裝成功。
riscv32-unknown-elf-gcc -v
左右滑動查看全部代碼
4、源碼下載&編譯準(zhǔn)備
1.碼云工具下載
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
chmod a+x /usr/local/bin/repo
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
左右滑動查看全部代碼
2.代碼下載
OpenHarmony代碼下載
#特別注意:請下載OpenHarmony 1.0.1 版本,后續(xù)會更新支持OpenHarmony其他版本
mkdir ~/OpenHarmony1.01
cd ~/OpenHarmony1.01
repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
左右滑動查看全部代碼
設(shè)備側(cè)代碼下載
具體倉庫地址:https://gitee.com/openharmony-sig/knowledge_demo_smart_home/
具體下載命令如下:
git clone git@gitee.com:openharmony-sig/knowledge_demo_smart_home.git
左右滑動查看全部代碼
編譯前準(zhǔn)備
-
代碼拷貝
cd ~/OpenHarmony1.01
cp -RFa ~/knowledge_demo_smart_home/dev/team_x ~/OpenHarmony1.01/vendor/
cp -rfa ~/knowledge_demo_smart_home/dev/third_party/iot_link ~/OpenHarmony1.01/third_party/
左右滑動查看全部代碼
-
Hispark開發(fā)板相關(guān)文件修改
修改usr_config.mk 文件,地址:device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mk
使能如下配置項(xiàng)
CONFIG_I2C_SUPPORT=y
CONFIG_PWM_SUPPORT=y
左右滑動查看全部代碼
修改wifiservice 文件夾,地址:device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_hotspot.c
EnableHotspot函數(shù)中屏蔽如下字段
139 //if (SetHotspotIpConfig() != WIFI_SUCCESS) {
140 // return ERROR_WIFI_UNKNOWN;
141 //}
地址:device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_device.c
DispatchConnectEvent函數(shù)下 屏蔽StaSetWifiNetConfig相關(guān)代碼行
239 //StaSetWifiNetConfig(HI_WIFI_EVT_CONNECTED);
260 //StaSetWifiNetConfig(HI_WIFI_EVT_DISCONNECTED);
左右滑動查看全部代碼
整合并修改完成后的目錄結(jié)構(gòu)如下圖:
5、編譯&燒錄
編譯命令:
hb set // 如果是第一次編譯,Input code path 命令行中鍵入"./" 指定OpenHarmony工程編譯根目錄后 回車
左右滑動查看全部代碼
如下圖所示,使用鍵盤上下鍵選中智能掃地機(jī)
hb build // 如果需要全量編譯,可以添加-f 選項(xiàng)
左右滑動查看全部代碼
詳細(xì)的代碼編譯及固件燒錄步驟,請參考 編譯和燒錄指南
6.、設(shè)備配網(wǎng)
-
在設(shè)備上電前需準(zhǔn)備好安裝了數(shù)字管家應(yīng)用的HarmonyOS手機(jī),詳情見數(shù)字管家應(yīng)用開發(fā), 并在設(shè)置中開啟手機(jī)的NFC功能;
-
寫設(shè)備NFC標(biāo)簽,詳細(xì)操作見設(shè)備NFC標(biāo)簽指導(dǎo)文檔;
-
燒錄完成后,上電。剛燒錄完后設(shè)備處在配網(wǎng)模式下,OLED顯示W(wǎng)IFI_CONNECT_ING,將手機(jī)上半部靠近開發(fā)板NFC標(biāo)簽處,wifi連接成功后會顯示W(wǎng)IFI_CONNECT_OK,成功連入華為云端會顯示IOT_CONNECT_OK;
-
無需任何操作手機(jī)將自動拉起數(shù)字管家應(yīng)用并進(jìn)入配網(wǎng)狀態(tài),配網(wǎng)過程中無需輸入熱點(diǎn)賬號密碼。具體無感配網(wǎng)相關(guān)流程參考 無感配網(wǎng)指南
7.、操作體驗(yàn)
設(shè)備控制
配網(wǎng)完成后,數(shù)字管家應(yīng)用會自動進(jìn)入智能掃地機(jī)的控制頁面,通過控制頁面可以實(shí)現(xiàn)對智能掃地機(jī)啟動、停止操作
添加日程
使用者可以進(jìn)入數(shù)字管家的日程管理頁面中添加智能掃地機(jī)的相關(guān)日程,具體步驟如下:
-
在輸入日程名稱后,選擇相關(guān)通知成員和掃地機(jī)設(shè)備;
-
選擇期待執(zhí)行的掃地機(jī)操作,例如:設(shè)置智能掃地機(jī)在特定時(shí)間段內(nèi)啟動或停止;
-
設(shè)置日程的重復(fù)日期,例如:可以設(shè)置單次日程(僅在當(dāng)天執(zhí)行),或者重復(fù)日程(設(shè)置日程在設(shè)定的 星期幾重復(fù)執(zhí)行)
原文標(biāo)題:OpenHarmony開發(fā)樣例:智能掃地機(jī)器人
文章出處:【微信公眾號:HarmonyOS官方合作社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
審核編輯:湯梓紅
-
機(jī)器人
+關(guān)注
關(guān)注
210文章
27984瀏覽量
205533 -
智能
+關(guān)注
關(guān)注
8文章
1697瀏覽量
117322 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3607瀏覽量
15956
原文標(biāo)題:OpenHarmony開發(fā)樣例:智能掃地機(jī)器人
文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論