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

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

3天内不再提示

技术干货实践:如何在树莓派模拟运行陀螺仪扫地机

智能物联研习社 来源:涂鸦智能 作者:智能物联研习社 2020-06-02 17:48 次阅读

本篇文章主要讲述如何在树莓派模拟运行一个陀螺仪扫地机的设备并连接涂鸦云。

步骤

第 1 步:陀螺仪扫地机原理简述



第 2 步:涂鸦陀螺仪扫地机传输协议

// 涂鸦陀螺仪地图传输协议
typedef struct
{
uint8_t x;
uint8_t y;
uint8_t type;
} ST_POT;
/* 坐标点类型 */
enum enum_point_type
{
point_type_current = 0x00, // 当前点
point_type_barrier, // 障碍点
point_type_cleaned, // 已清扫点
point_type_charge, // 充电桩
};


第 3 步:涂鸦陀螺仪扫地机公版面板

如下,从左到右边依次是 1号面板 2号面板 3号面板





2号 3号面板没有用到电源开关power功能点,创建产品时请删除

第 4 步:开发准备

产品创建

注册涂鸦开发者账号,并完成认证

开发平台链接:iot.tuya.com/?_source=50ad109033ec33aa9c41c459dd6e0a4e

创建扫地机产品,如下箭头所指为PID,为代码中的PRODUCT_KEY宏


硬件准备
树莓派采用 Raspberry Pi 3 Model B



硬件配置

  • Quad Core 1.2GHz Broadcom BCM2837 64bit CPU

  • 1GB RAM

  • BCM43438 wireless LAN,开发配网,连接到涂鸦云

  • Bluetooth Low Energy (BLE) on board

  • 100 Base Ethernet,用于ssh登录开发板调试用

  • 其他资源



调试方法
为方便,直接在ubuntu虚拟机的Terminal通过ssh登录到树莓派开发板上调试。
操作方法:树莓派网口和路由器的lan口相连,登录路由器获取树莓派ip地址,我这里为192.168.56.107;ubuntu虚拟机网络设置为桥接模式,PC主机和树莓派连接到同一路由器下

tuya@E480:~$ sshroot@192.168.56.107
root@192.168.56.107's password:
Last login: Thu Oct 24 18:47:17 2019 from 192.168.56.100
root@RasPi:~#

确认无线网卡支持的配网模式

  • 小贴士:无线网

  • iw list命令可以查看linux系统设备下无线网卡详细信息



root@RasPi:~# iw list
Wiphy phy0
Supported interface modes:无线网卡支持的工作模式
* IBSS
* managed station客户端模式
* AP 无线接入点模式,这里可用于开发tuyasdk的ap配网
* P2P-client
* P2P-GO
* P2P-device
......省略其他信息

如上配置,这个网卡不支持sniffer模式,无法开发SmartConfig配网模式

第 5 步:基本实现思路

  • 这里不是一个真实的扫地机,从涂鸦云导出真实扫地机设备行走产生的地图坐标数据保存到磁盘文件

  • 代码里新增一个线程负责从文件定时读取数据上报涂鸦云,以在APP上展现机器行走的效果,如下






第 6 步:软件开发说明

陀螺仪扫地机为wifi单品开发,参考TUYA_IOT_SDK说明
工具链获取,这里推荐一个第三方资源,涂鸦不提供芯片工具链。
demo源码获取
demo功能说明
支持AP配网模式
支持涂鸦陀螺仪三种陀螺仪面板
支持设备OTA
编译时可选是运行在ubuntu设备上还是树莓派

第 7 步:关键代码说明

代码位置:src/gyro_wifi_dev/tuya_iot_wifi_net.c
设置网卡工作模式

// 设置当前WIFI工作模式
OPERATE_RET hwl_wf_wk_mode_set(IN CONST WF_WK_MD_E mode)
{
#if defined(USE_RASPI)
switch (mode){
case WWM_STATION:{
sys_shell("ifconfig %s down", WLAN_DEV);
sys_shell("iwconfig %s mode Managed", WLAN_DEV);
sys_shell("ifconfig %s up", WLAN_DEV);
}break;
case WWM_SOFTAP:{
// handle in hwl_wf_ap_start()
break;
}
case WWM_STATIONAP:break;
default:break;
}
#endif
return OPRT_OK;
}

开启无线网卡热点

// AP配网模式下开启热点
OPERATE_RET hwl_wf_ap_start(IN CONST WF_AP_CFG_IF_S *cfg)
{
PR_DEBUG("Start AP SSID:%s", cfg->ssid);
#if defined(USE_RASPI)
sys_shell("ifconfig "WLAN_DEV" "DEFAULT_IP_ADDR);
sys_shell("iwconfig %s mode Managed", WLAN_DEV);

kill_process("hostapd");
kill_process("udhcpd");
kill_process("wpa_supplicant");
sys_shell("hostapd -B " HOSTAPD_CONF);
sys_shell("udhcpd -f " UDHCPD_CONF " &");
#endif
return OPRT_OK;
}

关闭无线网卡热点

// AP配网模式下停止热点
OPERATE_RET hwl_wf_ap_stop(VOID)
{
PR_DEBUG("Stop Ap Mode");
#if defined(USE_RASPI)
kill_process("hostapd");
kill_process("udhcpd");
#endif
return OPRT_OK;
}

连接路由器

// 使用指定SSID和PASSWD连接WIFI
OPERATE_RET hwl_wf_station_connect(IN CONST CHAR_T *ssid,IN CONST CHAR_T *passwd)
{
PR_DEBUG("STA Con AP ssid:%s passwd:%s", ssid, passwd);
#if defined(USE_RASPI)
// UserTODO
sys_shell("sed -i '/ssid/c\ ssid="%s"' " WPA_SUPPLICANT_CONF,ssid);
sys_shell("sed -i '/psk/c\ psk="%s"' " WPA_SUPPLICANT_CONF,passwd);
// sys_shell("wpa_supplicant -Dnone -B -i" WLAN_DEV " -c" WPA_SUPPLICANT_CONF); // 加Dnone 不可行
sys_shell("wpa_supplicant -B -i" WLAN_DEV " -c" WPA_SUPPLICANT_CONF);
sys_shell("udhcpc -i" WLAN_DEV);
// sys_shell("dhclient"" "WLAN_DEV);
#endif
return OPRT_OK;
}

获取当前WIFI联网状态

OPERATE_RET hwl_wf_station_stat_get(OUT WF_STATION_STAT_E *stat)
{
#if defined(USE_RASPI)
// UserTODO
NW_IP_S current_ip; // 上一次获取的ip
memset(¤t_ip,0,sizeof(current_ip));
hwl_wf_get_ip(WF_STATION,¤t_ip);

if(strcmp(current_ip.ip, DEFAULT_IP_ADDR)){
*stat = WSS_GOT_IP;
}else{
*stat = WSS_CONN_FAIL;
}
#else
*stat = WSS_GOT_IP;
#endif
return OPRT_OK;


注:涂鸦智能是一个全球化智能平台, “AI+IoT”开发者平台, 也是世界排名前列的语音AI交互平台, 连接消费者、制造品牌、OEM厂商和零售连锁的智能化需求, 为客户提供一站式人工智能物联网的解决方案, 并且涵盖了硬件接入、云服务以及APP软件开发三方面, 形成人工智能+制造业的服务闭环, 为消费类IoT智能设备提供B端技术及商业模式升级服务, 从而满足消费者对硬件产品更高的诉求。

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

    关注

    44

    文章

    728

    浏览量

    97670
  • 树莓派
    +关注

    关注

    113

    文章

    1639

    浏览量

    104737
  • 扫地机
    +关注

    关注

    0

    文章

    50

    浏览量

    5058
收藏 人收藏

    评论

    相关推荐

    鸿蒙南向开发实战:【智能扫地机

    此Demo采用润和的智能小车套件为硬件模型,通过修改代码具备了扫地机器人简易的避障功能及防跌落功能,并且能通过wifi接入数字管家应用场景。智能扫地机不仅能接收数字管家应用下发的指令启动或停止扫地机
    的头像 发表于 04-08 10:23 517次阅读
    鸿蒙南向开发实战:【智能<b class='flag-5'>扫地机</b>】

    视觉、激光、结构光?扫地机器人导航避障技术盘点

    越来越多的家庭都配备扫地机器人,既能解放双手又能保持家庭清洁。而扫地机器人也不断智能化迭代,撞墙、卡住、跌落等故障随着导航避障技术的迭代顺利解决。行业共识认为,导航、避障能力是衡量扫地机
    的头像 发表于 02-01 16:01 298次阅读

    视觉导航技术扫地机器人的应用

    不可置否,激光雷达已经成为扫地机器人的“耶路撒冷”。
    的头像 发表于 11-23 14:49 495次阅读

    MCx8316x在扫地机器人中的应用

    电子发烧友网站提供《MCx8316x在扫地机器人中的应用.pdf》资料免费下载
    发表于 11-22 09:37 0次下载
    MCx8316x在<b class='flag-5'>扫地机</b>器人中的应用

    pic单片机做扫地机器人有什么优势?

    pic单片机做扫地机器人有什么优势
    发表于 11-09 07:24

    光电液位传感器在实现扫地机液位检测中的作用

    随着科技的日新月异,智能家居已经成为我们生活的一部分。其中,扫地机器人作为一种重要的清洁工具,越来越受到人们的青睐。然而,扫地机器人的液位检测一直是一个技术难题,而光电液位传感器的出现为这一难题提供了解决方案。
    的头像 发表于 10-17 14:41 219次阅读

    避障技术再提升,扫地机器人避障不止于精准

    扫地机器人好用与否,避障表现首当其冲,那么评判避障好坏的标准又是什么?
    的头像 发表于 09-28 11:38 362次阅读
    避障<b class='flag-5'>技术</b>再提升,<b class='flag-5'>扫地机</b>器人避障不止于精准

    高精准材质识别:支撑扫地机器人自适应清扫技术

    。2015年,扫地机器人开始向“扫拖机器人”发展,直到现在,该项功能市场占有率已达92%。近年来,各家公司进一步提升了扫拖功能的识别需求,更加注重自适应清扫技术
    的头像 发表于 08-26 08:00 678次阅读
    高精准材质识别:支撑<b class='flag-5'>扫地机</b>器人自适应清扫<b class='flag-5'>技术</b>

    语音模块让扫地机更智能

    离线语音模块无需网络,只需要在设备内部进行语音识别和处理,使得扫地机在复杂的环境中也能够稳定运行
    的头像 发表于 08-10 16:21 398次阅读
    语音模块让<b class='flag-5'>扫地机</b>更智能

    谁才是扫地机器人的“最优解”?

    评判一款扫地机器人好用与否,避障表现无疑是核心因素。
    发表于 07-27 17:43 557次阅读

    关于扫地机器人的测试方法

    所以在扫地机器人的研发生产中,就需要测试了解扫地机器人在工作时的各项参数数据,传统的单台数据采集仪是无法固定安装在较小体积的扫地机上面的,而且测试的数据也无法实时收集并查看,这给测试带来的很多不便。
    发表于 07-17 16:33 1353次阅读
    关于<b class='flag-5'>扫地机</b>器人的测试方法

    智能扫地机器人是如何准确清扫全屋的?

    电子发烧友网报道(文/黄山明)如今的智能扫地机器人越来越智能,并且功能集成也越来越多,不仅集成了扫拖一体,并且还能进行自清洁,自动换水等功能。如果哪天能够实现自动倒垃圾,那么扫地机器人在卫生打扫
    的头像 发表于 06-12 07:00 2181次阅读

    我们拆了一款Tof+AI避障的扫地机

    更多的距离信息,结合图像识别算法和环境感知技术带来的智能导航和3D地图创建技术,成为了扫地机避障系统中不可或缺的一部分。头部的摄像头模组可以实现图像识别,激光雷达则是负责场景构建,雷达自带小型驱动电机
    发表于 05-26 10:10

    扫地机器人液位检测方案

    随着科技和社会的发展,越来越多的家庭开始使用扫地机器人来进行清洁。在扫地机器人中,污水箱是非常关键的一部分,因为它是用来存放清洁过程中产生的污水和雨水的地方。因此,对污水箱的液位进行监测和控制
    的头像 发表于 05-10 14:25 393次阅读
    <b class='flag-5'>扫地机</b>器人液位检测方案