概述
餐廳打飯機器人,平時和疫情期間都可以使用。利用物聯(lián)網(wǎng)實現(xiàn)自動化打飯,按預約順序打飯,或現(xiàn)場打飯防止先來的需要等,后來的先打到飯這種工作人員打飯時的存在的現(xiàn)象發(fā)生;還可以減少因為打飯的工作人員聽錯打錯飯的現(xiàn)象發(fā)生;同時還有防止占位的功能。提高客人的就餐效率,另外疫情期間還可以降低工作人員和就餐人員的感染風險。
開發(fā)環(huán)境
硬件:正點原子探索者STM32F407開發(fā)板,普通機械臂,ESP8266,超聲波模塊US-016,藍牙模塊HC-06,直流電源模塊
RT-Thread版本:RT-thread-nano3.1.3
開發(fā)工具及版本:KEIL5
RT-Thread使用情況概述
- 使用了RT-thread-nano動態(tài)創(chuàng)建多任務的內(nèi)核功能
- RT-thread-nano的定時器功能
- 控制臺,F(xiàn)insh/msh功能
硬件框架
1.
機械臂 |
阿里云物聯(lián)網(wǎng) |
探索者F407
|
ESP8266 |
機械臂采用正弦信號控制,使機械臂到達目標狀態(tài)時,減少晃動。
2.
軟件框架說明
RT-thread-nano
RT-thread-nano |
任務3:TARG_dect |
任務2:arm_all_work |
Alot_task
任務1:Alot_task |
機械臂打飯 |
ESP8266連接阿里云 |
超聲波檢測餐具 |
軟件模塊說明
SP8266使用串口2,通過MQTT協(xié)議和阿里云物聯(lián)網(wǎng)進行通信,最終實現(xiàn)手機端實現(xiàn)打飯,單獨占一個任務。
機械臂控制任務(arm_all_work)不采用PID,而是采用模擬正弦曲線控制PWM隨時間的輸出,實現(xiàn)機械臂由當前狀態(tài)到目標狀態(tài)速度先加速后減速,這樣可以減小機械臂到達目標狀態(tài)時的晃動;其次6個機械臂并行運行,互不干擾。
通過超聲波模塊在任務(TARG_dect)中檢測餐具是否存在同時和物聯(lián)網(wǎng)平臺確認點餐狀態(tài),當餐具長時間不取走時機械臂會將其放置在一邊。當點餐后超聲波模塊檢測到未放置餐具時會有蜂鳴器提醒,和顯示屏提醒。
演示效果
高清圖如下:
圖1 正視圖
圖2 側(cè)視圖
圖3 俯視圖
演示視頻:
比賽感悟
作為一名大三本科生,感謝本次大賽能讓我感受到RT-thread-nano的簡潔高效實用性,豐富了我的課余生活,提高了動手解決生活中現(xiàn)實問題的能力。學無止境,在萬物互聯(lián),人工智能的浪潮下,我這也是第一次了解阿里云物聯(lián)網(wǎng)平臺,通過本次動手實踐讓我感受到生活處處有物聯(lián),生活處處有智慧,理論要和實踐相結(jié)合。在結(jié)合的過程中難免遇到很多問題,論壇上有不少解答讓我受益匪淺。在keil5上使用nano,遇到不少問題,官網(wǎng)文檔給了HAL庫的例子,但我習慣庫函數(shù)和寄存器版的編寫程序,遇到時鐘初始化出錯,串口收發(fā)異常,系統(tǒng)莫名其妙的卡死,任務莫名其妙的不執(zhí)行,rt_kprintf,F(xiàn)INSH的使用等等的問題。但最終我發(fā)現(xiàn)RT-thread-nano3.1.3博采眾長,有許多操作系統(tǒng)的優(yōu)點,同時還有十分簡潔,移植性強的優(yōu)點非常適合嵌入式設(shè)備。