0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

智能扫地机器人设计方案

电子发烧友开源社区 来源:HarmonyOS官方合作社区 作者:HarmonyOS官方合作社 2022-03-25 09:10 次阅读

1

简介

此Demo采用润和的智能小车套件为硬件模型,通过修改代码具备了扫地机器人简易的避障功能及防跌落功能,并且能通过wifi接入数字管家应用场景。智能扫地机不仅能接收数字管家应用下发的指令启动或停止扫地机器人,而且还可以加入到数字管家的日程管理中。通过日程可以设定智能扫地机启动的时间段,使其在特定的时间段内,智能扫地机自动启动或者停止。

避障功能原理:通过超声波传感器,传回正前方障碍与智能扫地机的距离信息,配合电机控制,避开障碍物;

防跌落功能原理:如图左右各朝下安装了红外传感器,通过红外对管(发射管和接收管)收发特性:1 在地面上时发射管发出的红外信号充分经地面反射回接收管,即接收管能接收到足够强的红外光,代码判断为在地面;2 小车悬空时,发射管发出的红外信号不能被接收管接收,代码判断为在悬空状况;3 再配合两轮运动控制,避免小车跌落。

0b0161fa-ab85-11ec-aa7f-dac502259ad0.png

1. 交互流程:

0b1c49d4-ab85-11ec-aa7f-dac502259ad0.png

如上图所示,智能扫地机整体方案原理图可以大致分成:智能扫地机、数字管家应用、云平台三部分。智能扫地机通过MQTT协议连接华为IoT物联网平台,从而实现命令的接收和属性上报。关于智能设备接入华为云IoT平台的详细细节可以参考 连接IoT云平台指南;智能设备同数字管家应用之间的设备模型定义可以参考profile

2. 实物简介:

0b32afda-ab85-11ec-aa7f-dac502259ad0.png

我们使用润和Wi-Fi IoT智能小车套件来模拟智能扫地机;


oled屏负责显示当前网络状况,有三种状况:


1.WIFI_CONNECT_ING(等待配网,未连入WIFI);
2.WIFI_CONNECT_OK(已经连入WIFI,等待自动连入华为云端);
3.IOT_CONNECT_OK(已经连入华为云端)。

reset按键控制设备重启;
按键1可以启动、暂停智能扫地机;
按键2组合reset按键执行配网操作;

配网操作:

reset按键组合控制按键可以清除已保存的配网信息,具体操作:


1 .按下按键2,保持按键2被按下,执行以下第2步;
2 .按下reset按键,保持1秒;
3 .先松开reset按键,1秒后再松开按键2;
4 .OLED显示WIFI_CONNECT_ING,即进入配网模式;


通过NFC模块实现设备碰一碰快速配网。

3.实物操作体验

0b5cec5a-ab85-11ec-aa7f-dac502259ad0.gif

如上图,主要有三个操作(下面有详细介绍):
1 .手机碰一碰扫地机上的标签,自动配网;
2 .手机上启动、暂停智能扫地机;
3 .给智能扫地机添加日程。

2

快速上手

1. 硬件准备

  • Wi-Fi IoT智能小车套件

  • 预装HarmonyOS手机一台

2、Linux编译服务器基础环境准备

开发基础环境由windows 工作台和Linux 编译服务器组成。windows 工作台可以通过samba 服务或ssh 方式访问Linux编译服务器。其中windows 工作台用来烧录和代码编辑,Linux编译服务器用来编译OpenHarmony代码,为了简化步骤,Linux编译服务器推荐安装Ubuntu20.04。

安装和配置Python

  • 打开Linux终端。

  • 输入如下命令,查看python版本号,需要使用python3.7以上版本,否则参考 系统基础环境搭建。

python3 --version

左右滑动查看全部代码

  • 安装并升级Python包管理工具(pip3)。

sudo apt-get install python3-setuptools python3-pip -ysudo pip3 install --upgrade pip

左右滑动查看全部代码

安装hb

  • 运行如下命令安装hb

python3 -m pip install --user ohos-build

左右滑动查看全部代码

设置环境变量

vim ~/.bashrc

左右滑动查看全部代码

将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

export PATH=~/.local/bin:$PATH

左右滑动查看全部代码

执行如下命令更新环境变量。

source ~/.bashrc

左右滑动查看全部代码

  • 执行"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开发环境准备

在Linux编译服务器上搭建好基础开发环境后,需要安装OpenHarmony 编译Hi3861 平台特有的开发环境。

安装编译依赖基础软件

sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev

左右滑动查看全部代码

安装Scons

打开Linux 终端。

运行如下命令,安装Scons安装包。

python3 -m pip install scons

左右滑动查看全部代码

运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。

scons -v

左右滑动查看全部代码

下图 Scons安装成功界面,版本要求3.0.4以上

0b850712-ab85-11ec-aa7f-dac502259ad0.png

安装python模块

sudo pip3 install setuptools kconfiglib pycryptodome ecdsa six --upgrade --ignore-installed six

左右滑动查看全部代码

安装gcc_riscv32(WLAN模组类编译工具链)

  • 打开Linux终端。

  • 下载gcc_riscv32镜像,下载链接。

  • 设置环境变量,将压缩包解压到根目录

tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~

左右滑动查看全部代码

设置环境变量

vim ~/.bashrc

左右滑动查看全部代码

将以下命令拷贝到.bashrc文件的最后一行,保存并退出

export PATH=~/gcc_riscv32/bin:$PATH

左右滑动查看全部代码

生效环境变量

source ~/.bashrc

左右滑动查看全部代码

在命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。

riscv32-unknown-elf-gcc -v

左右滑动查看全部代码

4、源码下载&编译准备

1.码云工具下载

curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repochmod a+x /usr/local/bin/repopip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

左右滑动查看全部代码

2.代码下载

OpenHarmony代码下载

#特别注意:请下载OpenHarmony 1.0.1 版本,后续会更新支持OpenHarmony其他版本mkdir ~/OpenHarmony1.01cd ~/OpenHarmony1.01repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verifyrepo sync -crepo forall -c 'git lfs pull'

左右滑动查看全部代码

设备侧代码下载

具体仓库地址:https://gitee.com/openharmony-sig/knowledge_demo_smart_home/
具体下载命令如下:

git clone git@gitee.com:openharmony-sig/knowledge_demo_smart_home.git

左右滑动查看全部代码

编译前准备

  • 代码拷贝

cd ~/OpenHarmony1.01cp -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开发板相关文件修改

修改usr_config.mk 文件,地址:device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mk

使能如下配置项CONFIG_I2C_SUPPORT=yCONFIG_PWM_SUPPORT=y

左右滑动查看全部代码

修改wifiservice 文件夹,地址:device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_hotspot.c

EnableHotspot函数中屏蔽如下字段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函数下 屏蔽StaSetWifiNetConfig相关代码行239     //StaSetWifiNetConfig(HI_WIFI_EVT_CONNECTED);260    //StaSetWifiNetConfig(HI_WIFI_EVT_DISCONNECTED);

左右滑动查看全部代码

整合并修改完成后的目录结构如下图:

0b966e8a-ab85-11ec-aa7f-dac502259ad0.png

5、编译&烧录

编译命令:

hb set // 如果是第一次编译,Input code path 命令行中键入"./" 指定OpenHarmony工程编译根目录后 回车

左右滑动查看全部代码

如下图所示,使用键盘上下键选中智能扫地机

0ba30456-ab85-11ec-aa7f-dac502259ad0.png

hb build // 如果需要全量编译,可以添加-f 选项

左右滑动查看全部代码

详细的代码编译及固件烧录步骤,请参考 编译和烧录指南

6.、设备配网

  • 在设备上电前需准备好安装了数字管家应用的HarmonyOS手机,详情见数字管家应用开发, 并在设置中开启手机的NFC功能;

  • 写设备NFC标签,详细操作见设备NFC标签指导文档;

  • 烧录完成后,上电。刚烧录完后设备处在配网模式下,OLED显示WIFI_CONNECT_ING,将手机上半部靠近开发板NFC标签处,wifi连接成功后会显示WIFI_CONNECT_OK,成功连入华为云端会显示IOT_CONNECT_OK;

  • 无需任何操作手机将自动拉起数字管家应用并进入配网状态,配网过程中无需输入热点账号密码。具体无感配网相关流程参考 无感配网指南

0bb1623a-ab85-11ec-aa7f-dac502259ad0.gif

7.、操作体验

设备控制
配网完成后,数字管家应用会自动进入智能扫地机的控制页面,通过控制页面可以实现对智能扫地机启动、停止操作

0bd5585c-ab85-11ec-aa7f-dac502259ad0.gif

添加日程
使用者可以进入数字管家的日程管理页面中添加智能扫地机的相关日程,具体步骤如下:

  • 在输入日程名称后,选择相关通知成员和扫地机设备;

  • 选择期待执行的扫地机操作,例如:设置智能扫地机在特定时间段内启动或停止;

  • 设置日程的重复日期,例如:可以设置单次日程(仅在当天执行),或者重复日程(设置日程在设定的 星期几重复执行)

0bfcf1b4-ab85-11ec-aa7f-dac502259ad0.gif

原文标题:OpenHarmony开发样例:智能扫地机器人

文章出处:【微信公众号:HarmonyOS官方合作社区】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    206

    文章

    27033

    浏览量

    201392
  • 智能
    +关注

    关注

    8

    文章

    1680

    浏览量

    116936
  • OpenHarmony
    +关注

    关注

    23

    文章

    3284

    浏览量

    15159

原文标题:OpenHarmony开发样例:智能扫地机器人

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    扫地机器人十大排名!了解扫地机器人哪个牌子好

    智能清洁领域的研发和生产,智能扫地机行业知名品牌,以发明技术领先市场,***工业协会长任理事会成员机器人设计标准制定单位,荣获***精品奖  8、飞利浦PHILIPS  荷兰皇家飞利浦
    发表于 01-20 12:04

    扫地机器人如何选购?

    作为一个朝九晚五的上班狗。每天累死累活。家里都快成猪窝了。有大神推荐下扫地机器人么?我刚看了另一个帖子扫地机器人十大排名什么的。还是懵里懵懂,求选购小技巧哈。。。
    发表于 01-21 09:42

    扫地机器人方案

    为我们的生活带来很多乐趣。深圳赛亿科技致力于开发多年,为您打造最牛扫地机器人物联网方案。打造属于您的智能生活。
    发表于 05-18 17:08

    【NanoPi2申请】扫地机器人

    申请理由:应用于高端扫地机器人的开发,项目描述:应用于高端扫地机器人的开发,公司原来方案采用comtexM3架构,此款准备开发高端搭载定位系统,连接室内wifi使用
    发表于 12-02 16:10

    原来扫地机器人是这样工作的!

    `您一般每周打扫几次卫生?每天、3次、1次?那您又是如何打扫的呢?扫扫地、拖拖地?您了解或使用过扫地机器人吗?其实。在欧美智能家居市场上,扫地机器人已经基本普及了,随着国内生活水平的提
    发表于 12-24 15:03

    扫地机器人怎么制作

    扫地机器人怎么制作
    发表于 01-12 01:52

    智能扫地机器人解决方案

    扫地机器人工作。二 智能扫地机器人控制方案简介1. 方案概述智能
    发表于 05-27 13:31

    你对扫地机了解多少?

    强大的吸力,毛发、杂质、灰尘都能一吸而净不留任何痕迹。  那么还有的就是扫地机会不会从楼梯或者阳台上掉下来呢?前几天我看了一部韩剧,里面有看到一个家庭里面的扫地机在打扫的时候,从阳台上掉到了楼下?但是随着科技的发展。智能
    发表于 11-30 10:45

    智能家庭扫地机器人设计原理研究与分析电子书下载

    推荐课程:张飞软硬开源:基于STM32的BLDC直流无刷电机驱动器(视频+硬件)http://url.elecfans.com/u/73ad899cfd智能家庭扫地机器人设计原理研究与分析电子书下载
    发表于 06-30 23:01

    如何选择好的扫地机器人

    和碎屑灰尘很难清理,增添了主人的卫生工作负担。热衷撸猫养狗的小公举们,面对着地上床上衣服上,随处可见的毛毛,只能无奈的挠头。智能扫地机器人的引入和改进,解放了人们的双手,很大程度缓解了 卫生工作的难度
    发表于 08-20 16:26

    智能扫地机器人用什么马达

    随着科技的发展,家庭电器也越来越智能化了,扫地机器人也越来越智能化,大大的方便了我们的生活。智能扫地机器人对技术的要求比较高,同样对于
    发表于 10-12 10:11

    服务型智能扫地机器人的主要功能有哪些呢

    服务型智能扫地机器人因其低廉的价格和高效的工作能力,越来越受到消费者的认可,目前己逐渐进入家庭生活代替人们的清洁工作,具有广阔的市场。服务型智能扫地机器人需要具有自主运动规划和导航功能
    发表于 11-08 09:26

    电机驱动的扫地机器人介绍

    的狭窄部位。扫地机器人设计挑战 电池寿命和可靠性是真空机器人面临的两大设计挑战。大多数扫地机器人都是电池供电的,并从电源座充电…
    发表于 11-09 07:39

    扫地机器人面临的设计挑战有哪些

    扫地机器人已面世约23年了,随着其智能和自动化程度日益提高,人们可以在其工作时专注于自己的事情。扫地机器人的参考设计和产品点击此处浏览设计如今的扫地机器人上集成了非常多的功能,比如新的
    发表于 11-09 06:02

    扫地机器人EMC方案

    *附件:扫地机器人EMC方案.pdf
    发表于 02-08 14:49