智能扫地机器人设计方案

1
简介
此demo采用润和的智能小车套件为硬件模型,通过修改代码具备了扫地机器人简易的避障功能及防跌落功能,并且能通过wifi接入数字管家应用场景。智能扫地机不仅能接收数字管家应用下发的指令启动或停止扫地机器人,而且还可以加入到数字管家的日程管理中。通过日程可以设定智能扫地机启动的时间段,使其在特定的时间段内,智能扫地机自动启动或者停止。
避障功能原理:通过超声波传感器,传回正前方障碍与智能扫地机的距离信息,配合电机控制,避开障碍物;
防跌落功能原理:如图左右各朝下安装了红外传感器,通过红外对管(发射管和接收管)收发特性:1 在地面上时发射管发出的红外信号充分经地面反射回接收管,即接收管能接收到足够强的红外光,代码判断为在地面;2 小车悬空时,发射管发出的红外信号不能被接收管接收,代码判断为在悬空状况;3 再配合两轮运动控制,避免小车跌落。
1. 交互流程:
如上图所示,智能扫地机整体方案原理图可以大致分成:智能扫地机、数字管家应用、云平台三部分。智能扫地机通过mqtt协议连接华为iot物联网平台,从而实现命令的接收和属性上报。关于智能设备接入华为云iot平台的详细细节可以参考 连接iot云平台指南;智能设备同数字管家应用之间的设备模型定义可以参考profile
2. 实物简介:
我们使用润和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.实物操作体验
如上图,主要有三个操作(下面有详细介绍):
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: hbohos build systempositional arguments:  {build,set,env,clean}    build               build source code    set                 ohos build settings    env                 show ohos build env    clean               clean outputoptional 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以上
安装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.cdispatchconnectevent函数下 屏蔽stasetwifinetconfig相关代码行239         //stasetwifinetconfig(hi_wifi_evt_connected);260        //stasetwifinetconfig(hi_wifi_evt_disconnected); 左右滑动查看全部代码
整合并修改完成后的目录结构如下图:
5、编译&烧录
编译命令:
  hb set  // 如果是第一次编译,input code path 命令行中键入./ 指定openharmony工程编译根目录后 回车 左右滑动查看全部代码
如下图所示,使用键盘上下键选中智能扫地机
hb build // 如果需要全量编译,可以添加-f 选项 左右滑动查看全部代码
详细的代码编译及固件烧录步骤,请参考 编译和烧录指南
6.、设备配网
在设备上电前需准备好安装了数字管家应用的harmonyos手机,详情见数字管家应用开发, 并在设置中开启手机的nfc功能;
写设备nfc标签,详细操作见设备nfc标签指导文档;
烧录完成后,上电。刚烧录完后设备处在配网模式下,oled显示wifi_connect_ing,将手机上半部靠近开发板nfc标签处,wifi连接成功后会显示wifi_connect_ok,成功连入华为云端会显示iot_connect_ok;
无需任何操作手机将自动拉起数字管家应用并进入配网状态,配网过程中无需输入热点账号密码。具体无感配网相关流程参考 无感配网指南
7.、操作体验
设备控制
配网完成后,数字管家应用会自动进入智能扫地机的控制页面,通过控制页面可以实现对智能扫地机启动、停止操作
添加日程
使用者可以进入数字管家的日程管理页面中添加智能扫地机的相关日程,具体步骤如下:
在输入日程名称后,选择相关通知成员和扫地机设备;
选择期待执行的扫地机操作,例如:设置智能扫地机在特定时间段内启动或停止;
设置日程的重复日期,例如:可以设置单次日程(仅在当天执行),或者重复日程(设置日程在设定的 星期几重复执行)
原文标题:openharmony开发样例:智能扫地机器人
文章出处:【微信公众号:harmonyos官方合作社区】欢迎添加关注!文章转载请注明出处。


微雪电子NRF24L01 RF Board 2.4G无线模块简介
美国大学不再将GRE成绩作为研究生录取的强制条件
关于RKE汽车遥控钥匙系统方案的分析和介绍
低功率、高精度的仪表放大器INA125U/2K5概述
高通对于5G专利费收费标准:按照整机的价格
智能扫地机器人设计方案
使用声发射的方法检验贮罐底板
ZigBee智能餐厅定位系统
今年半导体资本支出同比再增加 三星居榜首
硅片射频和分子量控制产品
受昆虫的启发,机器人制造起来更快更便宜
碳化硅mosfet有哪些主要参数
采用IGBT的电力机车新型辅助电源系统的应用研究
怎样可以在未来十年保持职场竞争优势而不被AI所取代?
比特币​所有者仍然是Hodler
基本组合逻辑电路
支持益登科技举办无线设计应用论坛,即刻报名8/15日上海场掌握Matter、蓝牙和智慧能源新进展
最简单的PWM脉宽调制电路分析
基于TDA1521的30W立体声功率放大器电路图
使用单片机实现时钟设计的资料详细概述