赞
踩
为了参加校内赛写了分技术报告和相关代码
但是不想就这么浪费了
https://www.yuque.com/docs/share/a64051d0-cc1e-4e45-a704-db7a9af5cb76?# 《电控技术报告》
关于循迹,我们是通过将小车放在每一种可能的路线,对红外对管采集到的数据进行整理和分析,然后可以得到一个阈值。再对每一种路线的特点,设置每一个对管的阈值,并与其进行比较。如左转的话,就主要判断左侧的灯管是否大于阈值,若大于便进行左转函数,当然这只是简化了想法,因为实际上如果只关注左侧灯管的话,遇到T字路口,小车的循迹自然就会有漏洞,这个时候我们就要考虑所有灯管在每个特别的路线的实际情况并与阈值对比。比如如果左转的话那么除了左侧的电平升高,还有右侧的电平会降低;而如果是T字路口,左侧的灯管升高的同时,右侧的灯管也会升高。又考虑到小车转弯的不完美,我们还需要矫正函数时刻保证小车在黑线上走,按照期望的效果执行程序。
关于遥控,我们选择的是蓝牙模块,用手机进行遥控。主要是蓝牙中断函数,可以做到当手机连接到小车蓝牙时,便可以操纵小车,让小车优先执行蓝牙模块。
关于机械结构,原来打算用遥控器控制机械铲子的升高、下降和伸缩。但由于在装车的那天,遥控装置的通讯模块的板子芯片被烧了,我们也不得不写蓝牙控制的函数了。关于这边,我主要参考了例程里的motor的相关函数。控制它的正转和逆转。但是由于学长加固了我们的机械臂,让我们的支架活动范围变窄,使得机械臂无法达到它的最大高度,让我一度以为是我的代码写错了但又找不到bug。
我不理解,为什么会要求有视频,可能是觉得我们的逻辑不能解决实际上遇到的问题吗?
但当时谁想得到拍视频啊TAT
也可以是准备阶段吧,就是收集红外对管的信息。我们通过蓝牙串口,将小车红外对管的实际电压输入到接受区。
// 局部变量,用于保存转换计算后的电压值 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]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。