作者:徐日
概述(说明应用产生的背景、实现功能)
制作一个遥控救险车,能够在各种复杂地形进行勘探。目的是在比较危险的场所,比如地震、火灾、废墟中执行搜救和勘探工作。代替搜救人员深入危险地带进行救援。通过WIFI进行远程遥控,通过坦克履带进行复杂地形的行进,通过LED灯进行标识,通过摄像头将画面远程发送回手机或者电脑端。方便搜救人员进行控制和搜救。
开发环境(所采用的软、硬件方案)
硬件:ART-PI、L298N电机驱动、AMS1117稳压模块、直流电机*2、LED灯若干、
RT-Thread版本:4.0.3
开发工具及版本:RT-Thread Studio 2.0.0
RT-Thread使用情况概述(简要总结下应用中RT-Thread使用情况:内核部分、组件部分、软件包部分、内核、其他)
内核:线程、邮箱
组件:finish命令、DFS、lwip、POSIX、libc、ymodem、串口、Pin、SPI、SFUD、SDIO、
软件包:fal、easyflash
硬件框架(概述应用所采用的硬件方案框图,并对核心部分做介绍)
以MCU为中心,以WLAN为对外通信接口。实现远程控制机器人进行抢先操作。通过Camera进行勘察,通过LED灯进行标识。使用点击驱动履带轮进行行进
软件框架说明(介绍应用所采用的软件方案框图、流程图等,并加以解说)
- state_machine_thread(): 用于接收传感器、主控、WIFI等信号,发送消息给相应的进程处理。作为消息中心,只做数据的初步解析(判断是给哪个进程处理),不做任何处理动作
- wifi_thread(): 用于接收并处理wifi相关的操作。比如wifi的开关、模式转换、human具体的业务解析(电机、LED、CAMERA等其他外设的控制)并转发给消息中心,由消息中心进行分发。即与human通信进行拼包解包,与center通信进行拼包与解析。作为human与center的通道。
- camera_thread(): 用于接收和发送图像数据,并进行图像数据的处理
- motor_thread(): 用于进行电机控制的状态机。实现前进、后退、转弯等操作
- led_thread(): 用于灯光状态机。实现各种灯光控制场景
软件模块说明(介绍应用软件关键部分的逻辑、采用的实现方式等)
MCU WLAN使用的STATION模式,并增加重连功能。PC端通过NetAssist建立TCP服务器,MCU建立TCP客户端连接PC的TCP服务器,建立连接后即可进行信息的收发。收发仅采用单字节即可完成对机器人的控制。具体字节描述如软件框架图示中说明。
演示效果(演示效果请采用3张高清图片,并录制一段不少于1min视频解说应用所实现的效果,视频上传至B站或者腾讯视频或其他视频平台,给出链接即可)
演示视频:
比赛感悟(可以围绕这次比赛学到了什么,克服了哪些困难,有哪些收获,不低于200字)
通过这次比赛,我提高了自己对于硬件的了解和使用,这些模块都是自己经过深思熟虑后购买的。这是一个完整的自己构思出来并完成的项目。对于软件上的设计,也是采用了监听者模式,最大程度的解耦合。让程序的逻辑更加清晰明朗。我在这次比赛中收获了很多。同时也意识到自己知识层面上还有一些欠缺和不足。我相信通过自己的努力,会逐渐完善自己的知识技能树。让自己能够称为一名出色的架构师,或者成为一名出色的管理者。我对自己也抱有更大的期望了。我相信自己通过这次比赛,能够更加成熟,同时也对RT-Thread这个RTOS有了更深的理解。现在是一个AI * IOT的时代。我们一个人的力量也许很渺小,但是通过不断地学习我们就会逐渐变强,同时,大家集思广益,能够共同做出一些惊艳世人的作品。我觉得这是作为一名工程师的骄傲。