0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开发板-21年电赛F题-送药小车-小车寻红线环的调试与实现

jf_31863339 来源:jf_31863339 作者:jf_31863339 2023-08-03 10:10 次阅读

送药小车代码仓库:https://gitee.com/lcsc/medical_car

更好的观看体验请去:https://lceda001.feishu.cn/wiki/ZDYbwqDfCiwVlckUEcScF0KSnRh

送药小车立创开源平台资料https://oshwhub.com/li-chuang-kai-fa-ban/21-dian-sai-f-ti-zhi-neng-song-yao-xiao-che

小车寻红线环的调试与实现

一般我们在小车比赛中最常用的是光电二极管灰度传感器,但是这里我们已经有K210识别到的红色色块坐标了。所以在地图中的寻红线是在K210返回来的色块坐标基础上进行的。

依靠K210返回来的巡线中线偏移,对于PID控制来说,测量值是红线相较屏幕中线的偏移,目标值是想让红线偏移为0,输出值是电机的速度。

根据14_立创梁山派与K210串口通信协议框架搭建.md文档我们的立创梁山派已经可以获取到色块的坐标了。接下来就可以参考10_小车角度环的调试与实现.md文档来实现了。

用K210发送过来的数据实现寻红线

还是在pid_thread.c中实现(和文档10_小车角度环的调试与实现中是一样的套路):

创建相应的PID控制参数的结构体:

positional_pid_params_t red_lines_pid;

初始化控制结构体并修改kp ki kd(因为已经有速度环了,两边轮子转速基本是一样的,所以kp取的是比较小的):

// 巡红线回中pid配置
//  寻红线 pid 参数初始化
positional_pid_init(&red_lines_pid, 0.004, 0, 0, 5, 1.5, -1.5);
// 修改 寻红线 kp ki kd
red_lines_pid.positional_pid_set_value(&red_lines_pid, 0.005, 0, 0.0005);

在PID的软件定时器回调函数中计算两个轮子需要的速度:

// 巡红线环
if (car_find_red_line_enable_flag == 1)
{

    red_lines_result_motor1_speed_target = positional_pid_compute(
        &red_lines_pid, red_lines_target, lines_offset);
}
else
{
    red_lines_result_motor1_speed_target = 0;
}

在打开巡红线环后,给小车一个运行速度,如果能能识别到红线并成功传输给立创梁山派,此时小车就可以沿着红线前进了。

最终就是各个外环计算出来的速度一起加起来给速度环(内环):

motor1_speed_target =
    raw_target_speed + red_lines_result_motor1_speed_target
    + position_result_motor1_speed_target + angle_ring_speed_target;
motor2_speed_target =
    raw_target_speed + (-red_lines_result_motor1_speed_target)
    + position_result_motor2_speed_target - angle_ring_speed_target;

在实际运行时,巡线时打开寻红线环,关闭角度环(或位置环)。转弯时关闭巡红线环,打开角度环(或位置环)。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PID
    PID
    +关注

    关注

    35

    文章

    1469

    浏览量

    85215
  • 调试
    +关注

    关注

    7

    文章

    571

    浏览量

    33877
  • 开发板
    +关注

    关注

    25

    文章

    4906

    浏览量

    97076
  • 智能小车
    +关注

    关注

    86

    文章

    548

    浏览量

    81619
  • 智能循迹小车

    关注

    1

    文章

    11

    浏览量

    10585
收藏 人收藏

    评论

    相关推荐

    立创·梁山派开发板-21F-送药小车-K210功能实现代码讲解

    切换。当送药小车到达数字识别处时就控制K210进入数字识别模式,识别到数字后再控制K210进入红线模式。
    的头像 发表于 08-01 09:49 1119次阅读

    立创·梁山派开发板-21F-送药小车实现思路

    基本要求 1. 根据走廊上的标识信息自动识别,径将药品送到指定病房,投影要在门口区域内, 2. 到了指定病房后,点亮红色指示灯,等待卸载药品。 3. 人工卸掉药品后,小车自动熄灭红色指示灯,开始返回。 4. 自动返回药房,点亮绿色指示灯。
    的头像 发表于 08-08 09:44 820次阅读
    立创·梁山派<b class='flag-5'>开发板</b>-<b class='flag-5'>21</b><b class='flag-5'>年</b><b class='flag-5'>电</b><b class='flag-5'>赛</b><b class='flag-5'>F</b><b class='flag-5'>题</b>-<b class='flag-5'>送药</b><b class='flag-5'>小车</b><b class='flag-5'>实现</b>思路

    设计报告--智能小车

    设计报告--智能小车
    发表于 08-15 19:24

    【CANNON申请】智能小车开发

    手机等智能终端即可控制小车。设计原理:开发板处理器STM32F401作为主控制芯片,通过编写软件算法控制小车的速度和方向,通过ble技术,可以实现
    发表于 01-19 16:05

    2018TI杯全国大学生汇总

    各位童鞋又该为每年的做准备啦,本文档的主要内容详细介绍的是2018TI杯全国大学生电子设计竞赛包括了(电流信号检测装置)(灭火飞行
    发表于 10-26 16:51

    基于STM32F407开发板小车进行驱动

    基础功能介绍本次项目主要是基于 STM32F407 开发板为基础来对小车进行驱动,可以用手机控制小车前进、后退、左转、右转、后左转、后右转、停止等方向,还可以自动进行避障遇到障碍物会左
    发表于 01-05 08:06

    怎样去设计一个智能送药小车

    2021F智能送药小车原文链接:openmv巡线代码:数字识别代码:HAL库keil工程(
    发表于 01-07 08:19

    求一种智能送药小车设计方案

    2021全国大学生电子设计竞赛F智能送药小车前提:本篇文章重在分享自己的心得与感悟,反思自己的不足,我们组的题目完成度并不是很好,我们把最重要的部分,摄像头循迹,摄像头数字识别问题都
    发表于 01-07 07:33

    平衡小车调试指南

    关于平衡车的调试指南,就是一种PID的基本实现,基于平衡小车之家的文件
    发表于 07-13 17:43 0次下载

    基于OpenHarmony系统和小凌派RK2206开发板的避障小车

    这是一款基于OpenHarmony系统和小凌派-RK2206开发板的避障小车。同时,小车上搭载了超声波测距模块、舵机模块、红外寻迹模块、直流电机模块。
    的头像 发表于 04-21 07:58 4833次阅读

    智能送药小车教程

    设计并制作智能送药小车,模拟完成在医院药房与病房间药品的送取作业。院区结构示意如图 1 所示。院区走廊两侧的墙体由黑实线表示。走廊地面上画有居中的红实线,并放置标识病房号的黑色数字可移动纸张。药房
    发表于 10-18 14:08 7次下载

    梁山派开发板-21F-送药小车-分析

    全国产开源开发板,基于GD32F4系列,21F
    的头像 发表于 07-31 10:13 1192次阅读
    梁山派<b class='flag-5'>开发板</b>-<b class='flag-5'>21</b><b class='flag-5'>年</b><b class='flag-5'>电</b><b class='flag-5'>赛</b><b class='flag-5'>F</b><b class='flag-5'>题</b>-<b class='flag-5'>送药</b><b class='flag-5'>小车</b>-<b class='flag-5'>赛</b><b class='flag-5'>题</b>分析

    立创梁山派开发板-21F-送药小车-小车角度调试实现

    来达到目标值。 第二种是在实现小车轮子位置的基础上,控制两边轮子同时向不同的方向旋转一定的圈数(编码器脉冲),在小车轮子不打滑的情况下转过的角度就是一个确定的值,在
    的头像 发表于 07-27 10:18 877次阅读
    立创梁山派<b class='flag-5'>开发板</b>-<b class='flag-5'>21</b><b class='flag-5'>年</b><b class='flag-5'>电</b><b class='flag-5'>赛</b><b class='flag-5'>F</b><b class='flag-5'>题</b>-<b class='flag-5'>送药</b><b class='flag-5'>小车</b>-<b class='flag-5'>小车</b>角度<b class='flag-5'>环</b>的<b class='flag-5'>调试</b>与<b class='flag-5'>实现</b>

    基于PSOC6开发板构建的智能小车

    本项目是基于Psoc6-evaluationkit-062S2开发板构建的智能小车。该开发板由RT-Thread与英飞凌联合推出,集成了一颗32位双核CPU子系统,包括150MHz的ARM
    发表于 07-28 15:14 762次阅读
    基于PSOC6<b class='flag-5'>开发板</b>构建的智能<b class='flag-5'>小车</b>

    立创·梁山派开发板-21F-送药小车数据的发布与订阅

    可维护性和调试困难:使用全局变量传递信息可能导致代码的可维护性和调试的困难。由于全局变量可以被任何任务修改,追踪问题的根源和调试错误可能会变得更加困难。
    的头像 发表于 08-07 09:55 444次阅读
    立创·梁山派<b class='flag-5'>开发板</b>-<b class='flag-5'>21</b><b class='flag-5'>年</b><b class='flag-5'>电</b><b class='flag-5'>赛</b><b class='flag-5'>F</b><b class='flag-5'>题</b>-<b class='flag-5'>送药</b><b class='flag-5'>小车</b>数据的发布与订阅