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

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

3天内不再提示

如何在树莓派上模拟运行一个陀螺仪扫地机的设备

智能物联研习社 来源:智能物联研习社 作者:智能物联研习社 2021-01-25 14:46 次阅读

扫地机器人是现在家庭中最常见的智能家居,因为它小巧便宜且好用,广受用户好评。可以说是懒人必备单品了~几乎每家每户都少不了一台扫地机器人。

本篇文章将说明在树莓派模拟运行一个陀螺仪扫地机的设备并连接涂鸦云。同事看了都羡慕系列,到底怎么轻松实现呢?来看看吧~

步骤如下

程序员给女友DIY一款陀螺仪智能扫地机,打工人看了都羡慕

//涂鸦陀螺仪地图传输协议typedefstruct{
uint8_tx;uint8_ty;uint8_ttype;
}ST_POT;/*坐标点类型*/enumenum_point_type
{
point_type_current=0x00,//当前点
point_type_barrier,//障碍点
point_type_cleaned,//已清扫点
point_type_charge,//充电桩};

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

程序员给女友DIY一款陀螺仪智能扫地机,打工人看了都羡慕

程序员给女友DIY一款陀螺仪智能扫地机,打工人看了都羡慕

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

第 4 步:开发准备

产品创建

程序员给女友DIY一款陀螺仪智能扫地机,打工人看了都羡慕

硬件准备

树莓派采用 Raspberry Pi 3 Model B

硬件配置

调试方法

tuya@E480:~$sshroot@192.168.56.107root@192.168.56.107'spassword:Lastlogin:ThuOct2418:47:172019from192.168.56.100root@RasPi:~#

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

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

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

第 5 步:基本实现思路

程序员给女友DIY一款陀螺仪智能扫地机,打工人看了都羡慕

第 6 步:软件开发说明

第 7 步:关键代码说明

设置网卡工作模式

//设置当前WIFI工作模式OPERATE_REThwl_wf_wk_mode_set(INCONSTWF_WK_MD_Emode){#ifdefined(USE_RASPI)
switch(mode){caseWWM_STATION:{
sys_shell("ifconfig%sdown",WLAN_DEV);
sys_shell("iwconfig%smodeManaged",WLAN_DEV);
sys_shell("ifconfig%sup",WLAN_DEV);
}break;caseWWM_SOFTAP:{//handleinhwl_wf_ap_start()
break;
}caseWWM_STATIONAP:break;default:break;
}#endif
returnOPRT_OK;
}

开启无线网卡热点

//AP配网模式下开启热点OPERATE_REThwl_wf_ap_start(INCONSTWF_AP_CFG_IF_S*cfg)
{PR_DEBUG("StartAPSSID:%s",cfg->ssid);#ifdefined(USE_RASPI)sys_shell("ifconfig"WLAN_DEV""DEFAULT_IP_ADDR);sys_shell("iwconfig%smodeManaged",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
returnOPRT_OK;
}

关闭无线网卡热点

//AP配网模式下停止热点OPERATE_REThwl_wf_ap_stop(VOID)
{PR_DEBUG("StopApMode");#ifdefined(USE_RASPI)kill_process("hostapd");kill_process("udhcpd");#endif
returnOPRT_OK;
}

连接路由器

//使用指定SSID和PASSWD连接WIFIOPERATE_REThwl_wf_station_connect(INCONSTCHAR_T*ssid,INCONSTCHAR_T*passwd)
{PR_DEBUG("STAConAPssid:%spasswd:%s",ssid,passwd);#ifdefined(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
returnOPRT_OK;
}

获取当前WIFI联网状态

OPERATE_REThwl_wf_station_stat_get(OUTWF_STATION_STAT_E*stat){#ifdefined(USE_RASPI)
//UserTODO
NW_IP_Scurrent_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
returnOPRT_OK;
}

心动不如行动系列:

auth.tuya.com/register?from=http%3A%2F%2Fiot.tuya.com%2F&_source=e74d60a1928993e1892f7e5efbaa5467

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

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

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

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

  • 参考 选品类创建产品 创建一款扫地机产品,如下箭头所指为PID,为代码中的PRODUCT_KEY宏

  • ubuntu虚拟机开发环境搭建

  • 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主机和树莓派连接到同一路由器下

  • 小贴士:无线网

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

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

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

  • 陀螺仪扫地机为wifi单品开发,参考TUYA_IOT_SDK说明

  • 工具链获取,这里推荐一个第三方资源,涂鸦不提供芯片工具链。

  • demo源码获取

  • demo功能说明支持AP配网模式支持涂鸦陀螺仪三种陀螺仪面板支持设备OTA编译时可选是运行在ubuntu设备上还是树莓派

  • 代码位置:src/gyro_wifi_dev/tuya_iot_wifi_net.c

审核编辑:符乾江

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

    关注

    209

    文章

    27438

    浏览量

    202481
  • 扫地机
    +关注

    关注

    0

    文章

    52

    浏览量

    5080
收藏 人收藏

    评论

    相关推荐

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

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

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

    爱普生陀螺仪传感器是种角速度传感器,作为种石英电子式陀螺仪芯片,具有温度特性好、功耗低、成本低、稳定性好等特点。目前EPSON主力单轴陀螺仪
    的头像 发表于 04-01 16:41 469次阅读
    <b class='flag-5'>陀螺仪</b>传感器,IMU和加速度计的产品和选型

    手机陀螺仪失灵解决方法

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

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

    陀螺仪种用于测量和感应物体旋转和转动的设备,它通常由三轴组成:x轴、y轴和z轴。在陀螺仪中,x轴和y轴通常成对出现,关于它们的比例可以
    的头像 发表于 01-17 11:10 1158次阅读

    陀螺仪传感器的应用实例

    陀螺仪传感器是种用于检测和测量设备旋转的传感器,可以在多个领域中应用。在本文中,我们将详细介绍陀螺仪传感器的运作原理和常见应用实例。 陀螺仪
    的头像 发表于 01-02 14:37 798次阅读

    三轴陀螺仪模块怎么使用

    角动量守恒定律来测量物体的角速度。当物体发生旋转时,陀螺仪模块会受到与旋转角速度成正比的力矩,通过测量这个力矩的大小和方向,可以得到物体的角速度。 三轴陀螺仪原理 三轴
    的头像 发表于 12-20 10:36 1481次阅读

    陀螺仪的基本组成 陀螺仪的工作原理 陀螺仪的作用

    陀螺仪的基本组成 陀螺仪的工作原理 陀螺仪的作用 陀螺仪和重力传感器有什么区别呢? 陀螺仪
    的头像 发表于 12-07 11:26 1484次阅读

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

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

    陀螺仪是什么?陀螺仪工作原理

    因为ST选用了音叉方法设计陀螺仪,其差分特性使系统本身对作用在传感器上的无用线性加速度和杂乱振动的敏感度低于市场上现有的其它类型陀螺仪。当这些无用的信号被施加到陀螺仪,两质点就会沿相
    发表于 10-08 16:49 3671次阅读
    <b class='flag-5'>陀螺仪</b>是什么?<b class='flag-5'>陀螺仪</b>工作原理

    怎么解决陀螺仪角度漂移问题 三轴陀螺仪和六轴陀螺仪的区别

    陀螺仪角度漂移是指在使用陀螺仪时,由于各种误差和不完美的因素导致测量的角度随时间发生偏移。为了解决陀螺仪角度漂移问题,可以考虑以下几种方法。
    发表于 08-21 14:40 5923次阅读

    语音模块让扫地机更智能

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

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

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