1 Star 2 Fork 0

lone_boy/Education

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Domic - 教育机器人代码

freeRtos实时操作系统

框架说明

BSP

bsp层作为单片机配置功能的封装,包含GPIO,定时器,中断,SPI,flash,IIC以及PWM的封装。

全局变量

typedef struct{ uint16_t isCatch; uint16_t runWay; //两种运行方式 uint16_t schedule; //任务进度 uint16_t carStatus; //车辆运行状态 uint16_t targetNumber; //完成任务次数 uint16_t carPointTo; //车头指向 uint16_t carId; //车辆ID Point_t carCoordinate; Point_t targetCarPosition[2]; //两个目标位置坐标 uint16_t specialIndex; //0左 1 右 uint16_t avoidFlag; uint16_t isCali; //推环是否校准标志位 uint16_t isUp; //爪子是否抬起 uint16_t openAvoid; u8 wayFlag; //0先抓左 1抓右 }Car_t;

APP

App层是开发层内容,本套代码包含人机交互界面(OLED),电机行为控制,以及传感器检测和任务逻辑编写。 appInit文件是整个任务的开始,包含gui任务,循迹决策任务,电机行为任务的初始化,flash初始化。 moving.c文件为电机行为任务,接受来自决策层的指令进行电机的运动,同时配置循迹传感器以及电平的读取接口,该任务不允许使用延时,会严重影响电机的时效性。 trackDecisionLevel.c文件,是决策层,通过建立的坐标系执行不同的指令,该层可以使用延时进行线程阻塞,确保完成相应的动作。 gui.c文件实现了人机交互界面,本次人机交互界面包含了色块位置的选择,推环时间的确定,已经debug模式下可改变舵机的速度从而加快调试的效率。

Driver

driver层作为对应传感器的相关驱动,例如超声波,以及电机驱动编写。

总结

这次比赛,由于对传感器不熟悉,黄管发送的红外光导致推环无法正常使用编码器(一种计算轮子速度和距离的红外扩展传感器),因此决赛完全使用了调节延时的时间保证精度,因此只做到了1个10环4个9环,尽管避障传感器可以起到一定作用,但是黄管依旧有盲区,最好是可以采用通信的方式进行优先级的一个决策,这样路径还可以更好的优化,时间还可以缩短。推环可以通过数灰线以及改变检测传感器的位置来实现。循迹探头的间距会影响循迹的稳定性,并且舵机在不同电压,相同占空比速度有可能不同,这可能是因为舵机比较老,速度越低,这个影响更大。

推环的方案建议用爪子抓,后退时

调试的时候尽可能在比赛场地调节好红外传感器的电位器。

gui界面将所有的调车参数都从flash里面读,不需要代码来改动。

多辆车的话一定要封装好一套代码,以防止下错代码。最后,不要现场改代码!!!

空文件

简介

2020教育机器人智能搬运代码 展开 收起
C
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/domicj/education.git
git@gitee.com:domicj/education.git
domicj
education
Education
master

搜索帮助