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

    文章

    787

    浏览量

    98781
  • 树莓派
    +关注

    关注

    117

    文章

    1710

    浏览量

    105722
  • 扫地机
    +关注

    关注

    0

    文章

    60

    浏览量

    5215
收藏 人收藏

    评论

    相关推荐

    霍尔开关在扫地机器人中的应用

    随着社会的发展和生活水平的提高,扫地机器人因为操作简单,使用方便越来越多地走进了人们生活,和家庭,办公联系在了一起,成为了小家电中重要的一员,霍尔开关在扫地机器人中也有着诸多应用。 1.开关控制
    的头像 发表于 10-28 11:03 233次阅读

    INDEMIND扫地机器人的核心技术

    扫地机器人内卷的终点是技术和价值,价格只是附属品。
    的头像 发表于 09-30 14:50 538次阅读

    扫地机器人的核心技术突破

    在当今科技飞速发展的时代,智能家居产品如雨后春笋般涌现,其中扫地机器人以其便捷、高效的清洁能力,逐渐成为现代家庭的得力助手。而在扫地机器人众多的技术构成中,HXA2610 有刷马达驱动 IC 无疑是
    的头像 发表于 09-06 17:38 407次阅读

    扫地机器人避障技术的发展史

    扫地机器人从真空吸尘器发展而来,它的出现帮助人们解放双手、减轻家务负担,可以更多关注生活中重要的事情,因此越来越多的家庭选择配置扫地机器人。
    的头像 发表于 08-28 14:49 799次阅读

    供应 英集芯IP2348,适用于扫地机器人解决方案的锂电池同步降压充电芯片

    在至为芯科技设计的扫地机器人电源管理解决方案中,主板芯片选用的是来自英集芯的IP2348。这款锂电池充电芯片以其卓越的QFN28封装技术,为扫地机器人提供了强大的能量支持。它支持高达36V的输入输出
    发表于 07-24 14:47

    光耦知识分享‖探讨光耦技术扫地机器人的应用

    在智能科技的飞速发展中,扫地机器人已成为现代生活中不可或缺的助手。而光耦(Optocoupler)作为一项先进的电子元件,正在为扫地机器人的高级功能提供支持。
    的头像 发表于 06-15 11:29 380次阅读
    光耦知识分享‖探讨光耦<b class='flag-5'>技术</b>在<b class='flag-5'>扫地机</b>器人的应用

    爱普生新款陀螺仪传感器GGPM01LK于扫地机器人的应用

    在电子技术的不断发展下,人们对于机器人的要求越来越高,导致企业对机器人的设计和性能要求也变得严格起来。就扫地机器人而言,对于其姿态控制和运动稳定性的要求非常严格。针对如今严格的要求,爱普生推出了一款令人称道的陀螺仪传感器这款新产
    的头像 发表于 05-09 15:39 1033次阅读
    爱普生新款<b class='flag-5'>陀螺仪</b>传感器GGPM01LK于<b class='flag-5'>扫地机</b>器人的应用

    其利天下技术·搭载无刷电机的扫地机器人的前景如何?

    随着懒人经济的崛起,智能家居设备的需求呈现出显著的增长态势。作为智能家居领域的一员,扫地机器人因其方便、实用的特性而备受消费者青睐。特别是在无刷电机技术的加持下,扫地机器人不仅提升了清洁效率,还优化
    发表于 05-05 15:03

    陀螺仪x轴和y轴的应用

    陀螺仪是一种用于测量和感应物体旋转和转动的设备,它通常由三个轴组成:x轴、y轴和z轴。在陀螺仪中,x轴和y轴通常成对出现,关于它们的比例可以因具体应用而异。首先,我们先了解一下陀螺仪的工作原理
    发表于 04-17 15:42 0次下载

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

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

    用于AGV物流机器人的爱普生陀螺仪传感器XV7000系列:XV7001BB,XV7011BB

    适用于AGV物流机器人的爱普生陀螺仪传感器XV7000系列:XV7001BB,XV7011BB。以前我们都知道XV7001BB,XV7011BB适用于扫地机器人,其实对于AGV物流机器人来说
    的头像 发表于 04-02 13:53 542次阅读
    用于AGV物流机器人的爱普生<b class='flag-5'>陀螺仪</b>传感器XV7000系列:XV7001BB,XV7011BB

    陀螺仪传感器,IMU和加速度计的产品和选型

    、XV7021BB和XV7181BB。针对扫地机器人传感器模组等领域的需要,爱普生特别推出了内置XV7001BB或XV7011BB单轴角速度传感器的GGPM01/02陀螺
    的头像 发表于 04-01 16:41 956次阅读
    <b class='flag-5'>陀螺仪</b>传感器,IMU和加速度计的产品和选型

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

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

    手机陀螺仪失灵解决方法

    手机陀螺仪是一种用于感知和测量设备旋转、倾斜和方向的传感器。失灵的陀螺仪可能导致手机在运动控制、游戏和导航等应用中出现问题。下面将详细介绍陀螺仪失灵的原因和解决方法。 陀螺仪失灵的原因
    的头像 发表于 01-30 10:06 2.9w次阅读

    陀螺仪x和y比例是多少 陀螺仪x轴和y轴是指什么

    陀螺仪是一种用于测量和感应物体旋转和转动的设备,它通常由三个轴组成:x轴、y轴和z轴。在陀螺仪中,x轴和y轴通常成对出现,关于它们的比例可以因具体应用而异。 首先,我们先了解一下陀螺仪的工作原理
    的头像 发表于 01-17 11:10 2133次阅读