stm32小车红外对管的循迹

为了参加校内赛写了分技术报告和相关代码

但是不想就这么浪费了

https://www.yuque.com/docs/share/a64051d0-cc1e-4e45-a704-db7a9af5cb76?# 《电控技术报告》

电控技术报告

一.电控整体设计思路

1.循迹

关于循迹,我们是通过将小车放在每一种可能的路线,对红外对管采集到的数据进行整理和分析,然后可以得到一个阈值。再对每一种路线的特点,设置每一个对管的阈值,并与其进行比较。如左转的话,就主要判断左侧的灯管是否大于阈值,若大于便进行左转函数,当然这只是简化了想法,因为实际上如果只关注左侧灯管的话,遇到T字路口,小车的循迹自然就会有漏洞,这个时候我们就要考虑所有灯管在每个特别的路线的实际情况并与阈值对比。比如如果左转的话那么除了左侧的电平升高,还有右侧的电平会降低;而如果是T字路口,左侧的灯管升高的同时,右侧的灯管也会升高。又考虑到小车转弯的不完美,我们还需要矫正函数时刻保证小车在黑线上走,按照期望的效果执行程序。

2.资源区遥控

关于遥控,我们选择的是蓝牙模块,用手机进行遥控。主要是蓝牙中断函数,可以做到当手机连接到小车蓝牙时,便可以操纵小车,让小车优先执行蓝牙模块。

3.资源区机械结构

关于机械结构,原来打算用遥控器控制机械铲子的升高、下降和伸缩。但由于在装车的那天,遥控装置的通讯模块的板子芯片被烧了,我们也不得不写蓝牙控制的函数了。关于这边,我主要参考了例程里的motor的相关函数。控制它的正转和逆转。但是由于学长加固了我们的机械臂,让我们的支架活动范围变窄,使得机械臂无法达到它的最大高度,让我一度以为是我的代码写错了但又找不到bug。

二.小车的各项功能及实现方式

我不理解,为什么会要求有视频,可能是觉得我们的逻辑不能解决实际上遇到的问题吗?

但当时谁想得到拍视频啊TAT

1.逻辑实现的前提

也可以是准备阶段吧,就是收集红外对管的信息。我们通过蓝牙串口,将小车红外对管的实际电压输入到接受区。

// 局部变量,用于保存转换计算后的电压值
float ADC_ConvertedValueLocal[NOFCHANEL];

//将 ADC 外设采集到的数据通过串口打印到串口调试助手上

void Test_ADC_PRINTF(void)
{
    while (1)
    {
       // ADC_ConvertedValueLocal[0] = (float)ADC_ConvertedValue[0] / 4096 * 3.3 * 1.5;
       // ADC_ConvertedValueLocal[1] = (float)ADC_ConvertedValue[1] / 4096 * 3.3 * 1.5;
        ADC_ConvertedValueLocal[2] = (float)ADC_ConvertedValue[2] / 4096 * 3.3 * 1.5;
       // ADC_ConvertedValueLocal[3] 
  • 0
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值