本篇文章主要講述如何在樹莓派上模擬運行一個陀螺儀掃地機的設備并連接涂鴉云。
步驟
第 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
硬件配置
-
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:~#
確認無線網卡支持的配網模式
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文章
794瀏覽量
99023 -
樹莓派
+關注
關注
117文章
1711瀏覽量
105917 -
掃地機
+關注
關注
0文章
61瀏覽量
5263
發布評論請先 登錄
相關推薦
云鯨J5掃地機,養寵家庭不可錯過的一款全能掃地機
霍爾開關在掃地機器人中的應用
掃地機器人的技術和芯片方案,有哪些創新?
掃地機器人的核心技術突破
掃地機器人避障技術的發展史
供應 英集芯IP2348,適用于掃地機器人解決方案的鋰電池同步降壓充電芯片
![](https://file1.elecfans.com/web2/M00/FD/3E/wKgZomaY7mOAM96EAAQNBWnzYRc523.png)
光耦知識分享‖探討光耦技術在掃地機器人的應用
![光耦知識分享‖探討光耦<b class='flag-5'>技術</b>在<b class='flag-5'>掃地機</b>器人的應用](https://file1.elecfans.com/web2/M00/EE/32/wKgZomZtCoiAR-mOAAC9MvdyNU8803.png)
愛普生新款陀螺儀傳感器GGPM01LK于掃地機器人的應用
![愛普生新款<b class='flag-5'>陀螺儀</b>傳感器GGPM01LK于<b class='flag-5'>掃地機</b>器人的應用](https://file1.elecfans.com/web2/M00/E3/5C/wKgZomY8fbqAfvhaAACLSC1zo5s093.png)
其利天下技術·搭載無刷電機的掃地機器人的前景如何?
陀螺儀x軸和y軸的應用
鴻蒙南向開發實戰:【智能掃地機】
![鴻蒙南向開發實戰:【智能<b class='flag-5'>掃地機</b>】](https://file1.elecfans.com/web2/M00/C7/51/wKgZomYSm-6ACzdMAA5mbBTOB7c798.jpg)
用于AGV物流機器人的愛普生陀螺儀傳感器XV7000系列:XV7001BB,XV7011BB
![用于AGV物流機器人的愛普生<b class='flag-5'>陀螺儀</b>傳感器XV7000系列:XV7001BB,XV7011BB](https://file1.elecfans.com/web2/M00/C7/8D/wKgaomYLnUSAcv7rAAC6URMoUU0852.png)
陀螺儀傳感器,IMU和加速度計的產品和選型
![<b class='flag-5'>陀螺儀</b>傳感器,IMU和加速度計的產品和選型](https://file1.elecfans.com/web2/M00/C6/8E/wKgZomYKcyCAMf5uAAAsSumPqmU195.png)
評論