历史上的今天
今天是:2024年09月24日(星期二)
2021年09月24日 | 【STM32平衡小车】线性CCD( TSL1401CL)巡线
2021-09-24 来源:eefocus
一、手册概览
功能概览如下

TSL1401CL 线性传感器阵列由一个 128×1 的光电二极管阵列,相关的电荷放大器电路和一个内部的像素数据保持功能组成,它提供了同时集成起始和停止时间的所有像素。
该阵列 128 个像素,其中每一个具有光敏面积 3,524.3 平方微米。
像素之间的间隔是 8 微米。操作简化内部控制逻辑,只需要一个串行输入端(SI)的信号和时钟 CLK。
每个像素所采集的图像灰度值与它所感知的光强和积分时间成正比。
其中的积分时间也就是我们常说的曝光时间!
(曝光时间是指底片的感光时间,曝光时间越长底片上生成的相片越亮,相反越暗。)
内部电路如下

引脚功能描述
128 个像素是怎么进行采集并输出的呢,这就用到了 SI 和 CLK 信号。
在 128 个像素之外,还有一个开关逻辑控制和移位寄存器电路。
SI 通过该电路,控制每一个像素的积分和复位操作;
CLK 通过该电路控制每一个像素电压的依次输出。

该模块对传感器输出的电压进行增益调整,因此从 AO 引脚输出的电压无需再接其他运放,直接接入单片机的 AD 输入引脚即可。
时序
128*1个像素点,只需要占用3个IO,SI、CLK和AO巡线换算过来已经很值了。
总的时序图如下所示
时序中还有有几点非常重要的:
1、前18个时钟周期是像素复位时间,不进行积分(曝光),但是此时仍然可以进行数据采集!!!
图中第 19 个 CLK 到下一个 SI 开始的这段时间,就是 CCD 的积分时间,即曝光时间。之前的18 个 CLK 的时间为积分器的复位时间!
注意:在每个 SI 信号之后采集到的像素均是这个 SI 信号之前所曝光得到的图像。
2、每个像素的值可以在 CLK 的下降沿时从 AO 采集。
3、单个像素点的采样时长为500ns~0.2ms,那么128个像素点全部采样时间为64us-24.6ms.
4、在采集了 128 个像素后,还必须生成第 129 个 CLK 以结束本次采集。
二、区别于摄像头
1、摄像头捕捉的是一个面,像素为m*n,而线性CCD采集的是一行,像素为128*1。下面是以实际赛道为例图像。

2、摄像头具备自动曝光的功能,而CCD不可以,需要在程序中进行设置!
三、镜头相关知识
相信初次接触的你,也会像我一般困惑镜头这个东西,其实当我们买一个人家做好的CCD,一般镜头和焦距都是固定的(当然也有的可以更换)。
那么镜头的角度到底是怎么一回事呢?
就拿TSL1401CL 来说,一般市面上卖的镜头有三种,57°,90°,120°,他们有什么具体的区别呢?
往下看吧~
度数越大,也就意味着看的越宽~
参考
https://blog.csdn.net/u014545515/article/details/38363511
https://blog.csdn.net/u014545515/article/details/38371559?tdsourcetag=s_pctim_aiomsg
史海拾趣
|
多路相关时钟产生器 任务描述 产生出4~6路不同的时钟 输出频率最高达1GHz 输出频率可编程设置,多路时钟之间相位具有参考性 时钟单端输出,幅度不小于1Vpp… 查看全部问答> |
|
windows ce 6.0 platform builder 导出sdk 大家好,我自己定制的Windows ce 6.0 的系统,在build 的时候加了一些 sysgen变量,比如set SYSGEN_LIVESEARCH=1 set SYSGEN_LIVESEARCH_SAMPLE=1 ,然后得到的nk.bin的却是对的,但是我想导出sdk,比如他在系统有一个a.h的头文件和 a.lib的库,可 ...… 查看全部问答> |
|
学校要求做一个24小时的时钟 格式为 XX:XX (小时:分钟) 程序已经完成 但是显示的时候应该熄灭的灯管确实微微亮着的 比如应该显示6的时候 却有些像8 老师说是学校的设备达不到要求 如果使用两个中断就可以解决 我不知道该如何弄 还请各位大大 ...… 查看全部问答> |
|
西门子MC39i GPRS模块(不是猫) 使用AT+CGDATA="PPP",1指令后乱码问题 我做的内容简介: 通过GPRS模块发送彩信.不是在PC上运行程序发送,是在arm9开发板上运行. 在windows下使用串口调试助手,直接对GPRS模块发送AT指令(没有使用开发板),模块内置PPP协议.当使用AT+CGDATA=\"PPP\",1后,出现下面那种情况. 现在的问题是: ...… 查看全部问答> |
|
工控机交互界面,相对简单,所以可优化考虑用minigui或不用第三方图形库。在linux虚拟机上能运行就行,移植到arm我们自己完成。 需求和用户界面、菜单等基本画好了,详见: http://www.qiyedz.com/LinuxGuiDev.doc 要求有开发经验,有阶段性 ...… 查看全部问答> |
|
前些天看了不少LM3S811的资料,也跑过几个程序,感觉对它的编程可以分以下几个层面: 1:汇编级操作,直接采用汇编编程。即直接对LM3S811的寄存器操作,需要熟悉芯片Thumb指令以及外设的功能、指令,其基本道理类似于51,Thumb就是增强型的51指令 ...… 查看全部问答> |











