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

    文章

    873

    浏览量

    101094
  • 树莓派
    +关注

    关注

    122

    文章

    2070

    浏览量

    109771
  • 扫地机
    +关注

    关注

    0

    文章

    67

    浏览量

    5823
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    扫地机器人“叛变”了

    扫地机器人“叛变”了   电子发烧友网报道(文/黄山明)如今不少家庭都已经习惯了扫地机器人的便捷,相比自己每天亲自打扫,有了扫地机器人的清理显然要方便的多。但是怎么也没有想到,扫地机
    的头像 发表于 11-06 10:10 7630次阅读
    <b class='flag-5'>扫地机</b>器人“叛变”了

    【应用方案】“会呼吸”的扫地机器人:艾为灯语®让扫地机具有“生命力”

    晚间,扫地机随着音乐节奏在闪烁流动光效。孩子们跟着光斑跳舞,把清扫变成了家庭游戏。原来,光可以成为气氛的"调节器"。晨间,扫地机在餐桌下发现一片饼干碎屑,立即投射出柔和的聚光灯圈
    的头像 发表于 09-25 19:09 313次阅读
    【应用方案】“会呼吸”的<b class='flag-5'>扫地机</b>器人:艾为灯语®让<b class='flag-5'>扫地机</b>具有“生命力”

    什么是光纤陀螺仪陀螺仪有哪些作用?

    陀螺仪是干什么用的?陀螺仪是用来感知和测量物体旋转的一个传感器。简单来说,它可以帮助设备知道自己当前的角度和运动方向。通常,我们会在智能手机、无人机、VR设备等科技产品中看到陀螺仪的身影。我第一次
    的头像 发表于 08-26 17:36 1652次阅读
    什么是光纤<b class='flag-5'>陀螺仪</b>?<b class='flag-5'>陀螺仪</b>有哪些作用?

    INDEMIND脏污识别技术赋能扫地机器人功能进化

    从吸力升级到扫拖协同,从基站功能迭代到机械臂应用,扫地机器人的每一次进化,都在朝着“更聪明”“更好用”的目标迈进,脏污识别技术也不例外。从“盲目”清扫到“看懂”地面脏污,自主决策作业方式,扫地机器人的清洁逻辑正在被又一次定义。
    的头像 发表于 08-26 09:42 769次阅读

    低成本智能化:蓝牙模块方案让平价扫地机更便捷

    随着智能家居的快速发展,扫地机器人已逐渐成为家庭清洁的标配设备。为了提升用户体验和智能化程度,越来越多的厂商在扫地机器人中加入了无线通信功能。其中,蓝牙技术因其低功耗、低延迟、连接稳定等特点,成为
    的头像 发表于 07-18 15:11 659次阅读
    低成本智能化:蓝牙模块方案让平价<b class='flag-5'>扫地机</b>更便捷

    MEMS陀螺仪正在取代光纤陀螺仪

    一、微型科技巨匠:MEMS陀螺仪揭秘 何谓MEMS? MEMS(微机电系统)是融合了微电子与微机械的神奇技术。它能在指甲盖大小的硅芯片上集成复杂的传感器、执行器和处理电路,实现微观世界的数据感知
    的头像 发表于 07-08 16:45 647次阅读

    中微半导扫地机器人解决方案介绍

    在现代智能家居领域,扫地机器人已成为家庭清洁的得力助手,扫地机器人的高效清洁离不开各类电机的协同运作,中微半导体(深圳)股份有限公司(以下简称:中微半导 股票代码:688380)基于电机控制芯片CMS32M6526系列提供扫地机
    的头像 发表于 06-26 16:16 2389次阅读
    中微半导<b class='flag-5'>扫地机</b>器人解决方案介绍

    振动陀螺仪传感器的工作原理

    陀螺仪传感器,也称为角速率传感器或角速度传感器,是一种感测角速度的设备。陀螺仪传感器种类繁多,比较常见的有机械陀螺仪,光学陀螺仪,流体陀螺仪
    的头像 发表于 06-16 16:29 1017次阅读
    振动<b class='flag-5'>陀螺仪</b>传感器的工作原理

    扫地机器人EMC整改:传统方法VS新技术的高效解决方案

    南柯电子|扫地机器人EMC整改:传统方法VS新技术的高效解决方案
    的头像 发表于 06-10 11:00 753次阅读
    <b class='flag-5'>扫地机</b>器人EMC整改:传统方法VS新<b class='flag-5'>技术</b>的高效解决方案

    MEMS陀螺仪的寻北原理是什么?精度如何?

    MEMS陀螺仪的寻北技术核心原理基于地球自转特性,通过测量角速度分量解算出地理北向。随着MEMS技术的不断进步,MEMS陀螺仪性能也在不断提升,已经具备了较高的测量精度和稳定性。
    的头像 发表于 06-04 17:50 867次阅读
    MEMS<b class='flag-5'>陀螺仪</b>的寻北原理是什么?精度如何?

    新视角解锁:树莓“云”驾驶扫地机器人!

    摘要Roombavision让您可以通过互联网控制带有树莓4的Roomba。使用屏幕上的遥控器导航,探索房间并发现隐藏的惊喜。用户ttabb14创建的有趣项目,涉及树莓、ESP82
    的头像 发表于 06-04 15:33 447次阅读
    新视角解锁:<b class='flag-5'>树莓</b><b class='flag-5'>派</b>“云”驾驶<b class='flag-5'>扫地机</b>器人!

    钧敏科技AM2355驱动芯片在扫地机器人中的应用

    在智能家居飞速发展的当下,扫地机器人已然成为众多家庭清洁的得力助手。其中,激光雷达作为扫地机器人实现精准导航与高效清洁的核心部件,其性能优劣直接关乎扫地机器人的使用体验。然而,在实际应用中,激光雷达面临着诸多挑战,这些问题也成为
    的头像 发表于 05-29 16:48 863次阅读

    智能关停,高速风筒方案中陀螺仪技术的精准应用

    今天给大家深入剖析一款基于陀螺仪技术实现智能关停的高速风筒方案,看看它是如何在细节之处展现科技的魅力。
    的头像 发表于 04-17 19:01 846次阅读
    智能关停,高速风筒方案中<b class='flag-5'>陀螺仪</b><b class='flag-5'>技术</b>的精准应用

    精诚工科助力扫地机器人行业升级

    精诚工科助力扫地机器人行业升级近日,国内气密性检测与流量测试领域的领军企业——深圳精诚工科传来喜讯,成功向某知名品牌扫地机器人生产工厂交付了超过40台气密性检测及流量测试。此次大规
    的头像 发表于 04-09 11:00 755次阅读
    精诚工科助力<b class='flag-5'>扫地机</b>器人行业升级