概述
餐厅打饭机器人,平时和疫情期间都可以使用。利用物联网实现自动化打饭,按预约顺序打饭,或现场打饭防止先来的需要等,后来的先打到饭这种工作人员打饭时的存在的现象发生;还可以减少因为打饭的工作人员听错打错饭的现象发生;同时还有防止占位的功能。提高客人的就餐效率,另外疫情期间还可以降低工作人员和就餐人员的感染风险。
开发环境
硬件:正点原子探索者STM32F407开发板,普通机械臂,ESP8266,超声波模块US-016,蓝牙模块HC-06,直流电源模块
RT-Thread版本:RT-thread-nano3.1.3
开发工具及版本:KEIL5
RT-Thread使用情况概述
- 使用了RT-thread-nano动态创建多任务的内核功能
- RT-thread-nano的定时器功能
- 控制台,Finsh/msh功能
硬件框架
1.
机械臂 |
阿里云物联网 |
探索者F407
|
ESP8266 |
机械臂采用正弦信号控制,使机械臂到达目标状态时,减少晃动。
2.
软件框架说明
RT-thread-nano
RT-thread-nano |
任务3:TARG_dect |
任务2:arm_all_work |
Alot_task
任务1:Alot_task |
机械臂打饭 |
ESP8266连接阿里云 |
超声波检测餐具 |
软件模块说明
SP8266使用串口2,通过MQTT协议和阿里云物联网进行通信,最终实现手机端实现打饭,单独占一个任务。
机械臂控制任务(arm_all_work)不采用PID,而是采用模拟正弦曲线控制PWM随时间的输出,实现机械臂由当前状态到目标状态速度先加速后减速,这样可以减小机械臂到达目标状态时的晃动;其次6个机械臂并行运行,互不干扰。
通过超声波模块在任务(TARG_dect)中检测餐具是否存在同时和物联网平台确认点餐状态,当餐具长时间不取走时机械臂会将其放置在一边。当点餐后超声波模块检测到未放置餐具时会有蜂鸣器提醒,和显示屏提醒。
演示效果
高清图如下:
图1 正视图
图2 侧视图
图3 俯视图
演示视频:
比赛感悟
作为一名大三本科生,感谢本次大赛能让我感受到RT-thread-nano的简洁高效实用性,丰富了我的课余生活,提高了动手解决生活中现实问题的能力。学无止境,在万物互联,人工智能的浪潮下,我这也是第一次了解阿里云物联网平台,通过本次动手实践让我感受到生活处处有物联,生活处处有智慧,理论要和实践相结合。在结合的过程中难免遇到很多问题,论坛上有不少解答让我受益匪浅。在keil5上使用nano,遇到不少问题,官网文档给了HAL库的例子,但我习惯库函数和寄存器版的编写程序,遇到时钟初始化出错,串口收发异常,系统莫名其妙的卡死,任务莫名其妙的不执行,rt_kprintf,FINSH的使用等等的问题。但最终我发现RT-thread-nano3.1.3博采众长,有许多操作系统的优点,同时还有十分简洁,移植性强的优点非常适合嵌入式设备。