大一下暑假留校训练记录

7.24 第一天 周六

上午:开会(介绍赛事)
下午
1.TC264用的开发环境是ads,严格按照ads的说明书操作。下载程序到MCU不需要像STC那样用ISP,直接用ads里面的一个小黄点。
逐飞库TC264各个量的解析
2.在用ads下载时下载成功显示的“Flashing was successfull”

大一下暑假留校训练记录

晚上
1.写了一个“我眼中的PID”
2.FTM模块是由多个FTM寄存器组成,用于计数,也可以说一个神奇的模块(高级定时器模块),
[跟我学OSKinetis]第8课-FTM的PWM、输入捕获、正交解码
3.数字舵机比模拟舵机多内置一个MCU,更精确,但这不说明数字舵机就比模拟舵机好用
4.核心板与单片机,母版是测试用的单片机加很多拓展那个

大一下暑假留校训练记录
2.龙邱科技类似于逐飞科技,都是学习智能车的好地方,两者的淘宝详细页面都有对应学习资料
逐飞TC264淘宝详细页面
龙邱TC264淘宝详细页面
3.Debug模式与Release,可能出现Debug不报错,Release报错的情况
大一下暑假留校训练记录

下午
安装Qt5.9.4、Cmake3.20.5、Opencv4.53,Cmake和Qt搞定了,Opencv还没有弄好
晚上
1.继续安装opencv,MinGW 就是 GCC 的 Windows 版本 。
mingw的安装包(官网打不开,这个是直接找的安装包)
2.win10系统下的QT+cmake+opencv的安装(小白,超详细教程)
最后一步mingw32-make的前提是要先安装mingw
3.排线的母头是排座那种(被插),公头是尖的


7.26 第三天 周一

上午

1.Opencv的安装路径不能包含中文
2.windows同一个盘中不能有两个名字相同的文件,大小写变化不能改变文件属性,比如说不能叫QQ和qq,二者不共存,会造成你放在同一层目录时,后来的会被吃到前一个里面去

下午

opencv专题:
1.解决了头文件opencv2opencv.hpp: No such file or directory的问题
2.有时候在Qt中编译出错可以尝试把它注释掉,在.pro和MATLAB等特殊文件中注释是#,其他一般都是//
3.文件目录在windows下一般选择用/,而不是
4.被注释掉的这一行是会报错的,只不过通过注释强行忽略了

大一下暑假留校训练记录
6.点“readData”后去找储存的图片,然后J是读取下一帧,K是读取前一阵,G是一直播放,再按一次暂停。
模块结束
1.opencv也只是一个工具,工具只要掌握它的使用
2.总钻风的差比和算法:这是最简单的摄像头算法,用两个像素点的值计算,abs(a-b)*100/(a+b)),乘100是为避免浮点数,加快运算速度
3.*CCD(英文全称:Charge-coupled+Device,中文全称:电荷耦合元件),是一种光学器件,可将光学信号转换为数字信号
线性CCD简介
【思路】线性CCD & 摄像头搜线方案 By“逐飞科技”
这就是巡线
大一下暑假留校训练记录
5.VScode里面将UTF-8替换为GBK,是为了处理中文乱码问题
6.#ifdef与#endif的作用及用法
7.学习名称空间,using namespace std

傍晚

1.逐飞和龙邱的TC264都是照着英飞凌公司的样片制作
2.基于TC264的摄像头、编码器、舵机使用视频教程–逐飞科技
3.RGB(红绿蓝):常说的显示器RGB色域,就是由这三原色组成。
4.学习成像原理


7.27 第四天 周二

上午

1.获取灰度直方图:通过直方图能获取更好的边界阈值,实质为两个数组,一个用来记录像素点的灰度值,另一个记录此灰度值出现的个数,根据两个数组绘制直方图(初中学的);
类似这种 ↓

大一下暑假留校训练记录

数字图像处理(15): 灰度直方图(matplotlib 和OpenCV 绘制直方图)

归一化直方图:指将纵坐标换为此灰度级出现的概率
2.大津算法(OTSU)又称为最大类间方差法,目的:寻找全局图像的阈值。也叫基于阈值的分割算法
OTSU算法(大津法—最大类间方差法)原理及实现

下午
1.种子生长算法:包括泛洪法,扫描线法,区段法三种
种子生长算法
2.电磁及摄像头(总钻风)寻迹算法浅析–逐飞科技
3.阳光算法,即之前提到的OTSU大津算法

大一下暑假留校训练记录 大一下暑假留校训练记录
3.线是Ctrl+W,请区别线与引脚,引脚具有电气特性,线没有;且在AD中,线是可以斜着,但引脚线都是横平竖直
4.Designator——序列号,Comment——名称
大一下暑假留校训练记录
2.sch原理图里面的CLK端口是时钟端口

晚上
轮廓提取浅谈(实现绘制basemap)
1.白色是0,黑色是1,边缘赋值2(转换后)
2.insidemap一般在有终点线(出发线)时会有显示黑色
3.为什么是YX,而不是XY,是因为最初定义的是uint8_t allmap[YM][XM],YM与XM是图像的XY极限
4.与递归有关的四个if,是在最初找的那个点的四周的情况,所以我们才看到y不变,x加减1,;x不变,y加减1
5.因为basemap是通过allmap形成的,当allmap里面出现黑点,就是allmap[Y][X]=1时对应于basemap[Y][X]取2,即找到的边缘点,多个边缘点形成线

大一下暑假留校训练记录
2.丝印层:PCB最外层,用于注解,白色
3.双列直插(DIP封装)、贴片(SOP封装)
4.AD里面的线不能放缩,不是图片;但在sch原理图里面的矩形可以拖拽


1.轮廓在人眼中有方向趋势,在机器看来是一堆点,全部边沿点拼成轮廓
2.白底,黑边界,找边界,对于灰度图,二维图像,两个点差值,临界时的黑白点差值大于固定值(阈值)就可以认定为边界。
3.白不是绝对白,黑不是绝对黑,一个灰度图,两个点的差值是不断变化的,每时每刻都需要去计算那一个阈值。
4.峰峰值:是指一个周期内信号最高值和最低值之间差的值
一阶矩:一阶矩就是期望值,换句话说就是平均数
5.大津法:首先计算对象是每一行或者整张图片,计算它们像素点的平均值和峰峰值,通过判断一整行的平均值是否大于峰峰值的一半,大致就可以判断出黑白。在此基础上,又保证这两个点的像素值的差小于平均值的一半,这样就得到了一种颜色时的阈值。


7.29 第六天 周四

上午
1.排针里面的1~12指管脚的名称,而不是序列号;左上角P3是序列号,下面的Header 12是名称

大一下暑假留校训练记录
4.电源端口,右键可选择不同的
大一下暑假留校训练记录
电容容值表示,105也是一种
大一下暑假留校训练记录

7.Y键是取关于原点对称(翻转的一种)
8.DAC、ADC,数字模拟转换器,D→A和A→D,Digital(数字的)、analog(模拟的)
9.RESET:复位按键

大一下暑假留校训练记录
11通用No ERC标号:细红×,代表这个口不接(快捷键P+V+N)
大一下暑假留校训练记录
4.简记对于祖传代码的学习流程
一、看go文件里面的对于各个赛道元素的处理,直线、左右转等,它们分别对应一个函数;二、图像上位机里面 大一下暑假留校训练记录

2.原本按照灰度值,黑色为0,经常这样转换后,黑色为1,白色为0了

大一下暑假留校训练记录

5.最小二乘法:可用于识别直线、曲线或圆弧
6.boom表:指工程的元器件选型表
7.AD打开封装管理器时报错no valid components to change:原因所有工程没有放在一个项目下
8.编译时报错“has only one pin”,直接添加一个No ERC标号就不报错了,其实这个错误的原因是网络标号只有一个,软件找不到它对应的另一个(即单端网络)
晚上上课
1.走线从直到竖夹角135度
2.AD里面单位有英制和国标两种,ml和ms


7.30 第七天 周五

上午
1.PCB封装:是电子设计图纸与实物间的映射体
焊盘:用于焊接器件
1脚标识:用于区分正反
阻焊:作用是防止绿油(阻焊油俗称绿油)覆盖,包裹在焊盘外围
通孔:打通的小孔,Multi-Layer
表贴:在板子上面一层用焊锡连接器件,Top Layer
一个完整PCB封装需要的内容

大一下暑假留校训练记录
4.切换3D状态:Ctrl+D,转向拖拽Shft+鼠标右键
5.测距:R+P
6.丝印层:画丝印在丝印层画,AD下方的Top overlay。画线:P+L
7.移动指定距离:M+通过x,y移动选中对象
8.在PCB图中按D,选第二个,去实现元器件的导入

下午
1.极性电容与普通电容:左为极性,右为普通

大一下暑假留校训练记录
2.按住Shift加鼠标拖动,可以把元器件拖出来
3.因为封装不同的原因,建议全部都调用一个库里面的,或者说严格按照boom表来找封装
4.出现unknown pin
Altium Designer 更新到PCB时出现unknown pin

如何使用嘉立创导出原理和PCB
前提:注册
1.来到嘉立创EDA(相当于一个在线的AD),而不是嘉立创官网或嘉立创商城
2.点左边的元件库,找到需要的,放置在图纸上,保存,找到导出即可得到工程文件

晚上
结构体
1.结构体里面的“.”表示访问结构体的元素
2.结构体:学长的代码很多由结构体组成,就像下面的例子,today这个结构体是由day、month、year三个元素组成,再进一步判断,这可以用判断赛道元素

大一下暑假留校训练记录

上课记录
1.数字电路的地:单片机的地;模拟电路的地,是外部的;用0欧电阻或0欧电感来数字电路和模拟电路的共地
2.覆铜:所谓覆铜,就是将PCB上闲置的空间作为基准面,然后用固体铜填充,这些铜区又称为灌铜。覆铜的意义在于,减小地线阻抗,提高抗干扰能力;降低压降,提高电源效率;还有,与地线相连,减小环路面积。


7.31 第八天 周六

上午
1.枚举
定义:是用变量名称来代替数字常量,大括号内的“名字”叫符号常量,只能是int,枚举中的符号常量是从0开始递增的,这就导致最后一个符号常量的值就是它前面的符号常量个数

★枚举可以相当于int、float,这样的变量类型,但不好

大一下暑假留校训练记录

★★★结构作为函数参数
结构变量作为函数参数,

大一下暑假留校训练记录

下午和晚上记的因为电脑意外关机而丢失了,所以没了

★Image2Lcd的安装,用于将图像变成.c文件

★PctoLCD2002:用于将汉字生成十六进制,我的应用场景是龙邱历程中显示屏的汉字显示


8.2 第十天 周一

上午
★DMA相当于CPU的小弟,帮忙进行一些数据传输

★大津法适用于灰度直方图如下图所示的情形,可以找到中间的值

大一下暑假留校训练记录
★物体或人的影子在赛道上也会被摄像头认定为边缘,需进一步做处理

★SCCB是改编版IIC,可以理解为IIC的作用

★TC264是从CPU0开始运行

★干簧管(继电器)停车时用

★CPU0中放执行时间较长的程序;CPU1中放控制算法

★CPU0和CPU1是不能同时执行某个函数的,如果要执行某个函数,比方说先让0执行,0执行完后进行标志位判断,0是否执行完了,if判断里面写CPU1需要干嘛

★采集的图像不是全部都要使用,采集完储存在一个数组内后,后面要实现什么功能,我们去调用完整图像的部分做处理

下午
★allmap中白黑交界没有所谓的边缘线,而在basemap中红色充当了这一角色,作为白黑的分界线。

★图像中的YM和XM还是按照直角坐标系去理解,虽然一个图像对应的二维数组为[YM][XM],但左右移动变化的是X,上下移动变化的是Y

晚上:无


8.3 第十一天 周二

上午

★C语言中的math.h对应到C++中为cmath,不再有尾缀(拓展名)

★通过图像判断方向的原理是绘制一个一次函数图像,看斜率和截距

★这里面出现的管脚都是可以作为电平输出的

大一下暑假留校训练记录

★左边为PWM,右边dir

★ads中很多管脚前置名

DMA,摄像头会用到DMA传输数据,Camera_Flag是是否搬运完原图像的标志位,在DMA.h中被改变

★向量号是用哪个内核来管理,

晚上

★OLED屏是单色的,数据量比较小

★通过定时器计数数值来反应电机当前速度

★关闭总中断→获取总线频率→所有模块的初始化→开启总中断

★改进:1.targetspeed写在电机驱动的那一块2.舵机PID控制3.左右电机特性的原因可能targetspeed不同

自己弄的代码(第一版)

来源:贪玩的yl

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月24日
下一篇 2021年6月24日

相关推荐