线性CCD

2024-03-31 00:12
文章标签 线性 ccd

本文主要是介绍线性CCD,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

线性CCD

综述:本文讲述了线性CCD是什么、由什么组成、工作原理、芯片TSL401的引脚和时序、线性CCD的时序。

1. 定义

线性CCD,只能采集一行像素,分辨率为128,也即是线性CCD≈128个光电传感器。经过光照时,光电二极管产生电流,再通过积分电路,转化为电压,就可以通过读取电压值来推出光照强度,再根据白色反射光照,黑色吸收光照,即可以知道地面黑色循迹线。

(思路:光照→吸收→电流低→电压低→是循迹路线)

2. 芯片TSL401

由于直接通过单片机读取CCD数据的话,需要读取128个数据,太占用单片机的IO口,于是运用了TSL401芯片。

(1)TSL401芯片引脚:

 

①电源引脚:VCC接高电平(3.3/5),GND接地

②信号引脚:AO是输出引脚,通过ADC读取AO就可以得到电压值;CLK是时钟引脚,SI是串行输入引脚,通过单片机的IO引脚控制CLK和SI的高低电平来模拟时序的高低就可以获取信息了。

(2)TSL401芯片时序图

 

①采集开始:CLK为上升沿,SI为高电平(不少于20us)且在CLK为下个高电平时为0

②数据采集:从采集信号开始后,采集128个数据

③采集结束:第129个CLK标志采集结束(不可以只有128个CLK),可以不采集了,也可以再次进行数据采集,但是再次采集需要将间隔20us(将数据从寄存器移到IO的最短时间)

④积分复位:采集开始的前18个周期不进行积分,只进行积分电容的电荷释放(积分复位)

⑤积分:采集开始的第19个周期开始积分

3. 线性CCD的功能框图

 

(1)上面电路讲解

①Pixel是一个像素电路,光电二极管收到光照后产生光电流,通过运算放大器将电压转到1脚。

②当S1接到1时,像素开始积分;当S1接到2时,积分开始复位,释放电荷。

③S2接到1时,采样电容与积分电路相连接,S2接到2时,采样电容进行电荷的保持,S2接到3时,采样电容与数据输出的运算放大器(后面的那个运算放大器)相连接,AO就可以输出数据。

(2)下面电路讲解

下面是数据寄存器。

(有点难理解,需要多读几遍)

①SI为高,CLK为时钟上升沿时发出“hold”信号,S1开关由1接到2,进行积分的复位;同时,S2开关由1接到2,进行了采样电荷的保持。

②当下一个CLK上升沿到达后,Q1为1(高电平),S2开关由2接到3,与后面的运算放大器相连接,即可以在AO口读取数据值。

③当下一个CLK上升沿到达后,Q1的数据就会移动到Q2,相应的像素2的S2就会从2接到3,像素1的S2从3接到2,以此类推。(也就是一个一个往后推)

④当前18个数据周期完毕后,完成积分复位,S1从2接到1,开始积分,前18个像素的S2从2接到1,开始积分。

⑤当第19个CLK上升沿到达后,第19个像素的S2从2接到3,接到AO口,同时,第18个像素的S1就会从2接到1进行积分。

⑥依次将128个数据处理完,128个CLK周期读取了128个数值,但是第128个像素的S2仍然在3上,没有接到1上进行积分,所以,最低需要129个CLK周期结束采集。

(3)积分时间

积分时间是积分器中电容的充电时间,积分时间越长,AO输出的电压范围越大,黑色与白色就可以区分得更明显,但是,积分时间太长会小车导致采集数据得时间变长,不不易于操控小车。

积分时间=完整周期时间-18个CLK周期时间

完整周期时间=129个CLK周期时间+距离下次采样的时间。

改变积分时间:控制两次采样之间的时间

4. 学习视频

CCD学习视频


侵权联系删除!

这篇关于线性CCD的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/862952

相关文章

线性因子模型 - 独立分量分析(ICA)篇

序言 线性因子模型是数据分析与机器学习中的一类重要模型,它们通过引入潜变量( latent variables \text{latent variables} latent variables)来更好地表征数据。其中,独立分量分析( ICA \text{ICA} ICA)作为线性因子模型的一种,以其独特的视角和广泛的应用领域而备受关注。 ICA \text{ICA} ICA旨在将观察到的复杂信号

✨机器学习笔记(二)—— 线性回归、代价函数、梯度下降

1️⃣线性回归(linear regression) f w , b ( x ) = w x + b f_{w,b}(x) = wx + b fw,b​(x)=wx+b 🎈A linear regression model predicting house prices: 如图是机器学习通过监督学习运用线性回归模型来预测房价的例子,当房屋大小为1250 f e e t 2 feet^

【高等代数笔记】线性空间(一到四)

3. 线性空间 令 K n : = { ( a 1 , a 2 , . . . , a n ) ∣ a i ∈ K , i = 1 , 2 , . . . , n } \textbf{K}^{n}:=\{(a_{1},a_{2},...,a_{n})|a_{i}\in\textbf{K},i=1,2,...,n\} Kn:={(a1​,a2​,...,an​)∣ai​∈K,i=1,2,...,n

带头结点的线性链表的基本操作

持续了好久,终于有了这篇博客,链表的操作需要借助图像模型进行反复学习,这里尽可能的整理并记录下自己的思考,以备后面复习,和大家分享。需要说明的是,我们从实际应用角度出发重新定义了线性表。 一. 定义 从上一篇文章可以看到,由于链表在空间的合理利用上和插入、删除时不需要移动等优点,因此在很多场合下,它是线性表的首选存储结构。然而,它也存在某些实现的缺点,如求线性表的长度时不如顺序存储结构的

浙大数据结构:02-线性结构4 Pop Sequence

这道题我们采用数组来模拟堆栈和队列。 简单说一下大致思路,我们用栈来存1234.....,队列来存输入的一组数据,栈与队列进行匹配,相同就pop 机翻 1、条件准备 stk是栈,que是队列。 tt指向的是栈中下标,front指向队头,rear指向队尾。 初始化栈顶为0,队头为0,队尾为-1 #include<iostream>using namespace std;#defi

深度学习与大模型第3课:线性回归模型的构建与训练

文章目录 使用Python实现线性回归:从基础到scikit-learn1. 环境准备2. 数据准备和可视化3. 使用numpy实现线性回归4. 使用模型进行预测5. 可视化预测结果6. 使用scikit-learn实现线性回归7. 梯度下降法8. 随机梯度下降和小批量梯度下降9. 比较不同的梯度下降方法总结 使用Python实现线性回归:从基础到scikit-learn 线性

C#中的各种画刷, PathGradientBrush、线性渐变(LinearGradientBrush)和径向渐变的区别

在C#中,画刷(Brush)是用来填充图形(如形状或文本)内部区域的对象。在.NET框架中,画刷是System.Drawing命名空间的一部分,通常用于GDI+绘图操作。以下是一些常用的画刷类型: SolidBrush:用于创建单色填充的画刷。HatchBrush:用于创建具有图案填充的画刷。TextureBrush:用于创建具有图像纹理填充的画刷。LinearGradientBrush:用于创

(感知机-Perceptron)—有监督学习方法、非概率模型、判别模型、线性模型、参数化模型、批量学习、核方法

定义 假设输入空间(特征空间)是 χ \chi χ ⊆ R n \subseteq R^n ⊆Rn,输出空间是y = { + 1 , − 1 } =\{+1,-1 \} ={+1,−1} 。输入 x ∈ χ x \in \chi x∈χ表示实例的特征向量,对应于输入空间(特征空间)的点;输出 y ∈ y \in y∈y表示实例的类别。由输入空间到输出空间的如下函数: f ( x ) = s

逻辑回归与线性回归的目标函数和应用场景比较

概述 逻辑回归和线性回归是两种常用的预测模型,它们在目标函数和应用场景上存在显著差异。本文将详细比较这两种回归模型,并提供相应的代码示例。 线性回归 线性回归是一种预测连续数值的模型,其目标是找到特征( X )和目标变量( Y )之间的线性关系。线性回归的目标函数是最小化预测值和实际值之间的平方差,即均方误差(MSE)。 目标函数 线性回归的损失函数是均方误差: [ J(\theta)

【深度学习】线性回归的从零开始实现与简洁实现

前言 我原本后面打算用李沐老师那本《动手学深度学习》继续“抄书”,他们团队也免费提供了电子版(https://zh-v2.d2l.ai/d2l-zh-pytorch.pdf)。但书里涉及到代码,一方面展示起来不太方便,另一方面我自己也有很多地方看不太懂。 这让我开始思考起我“抄书”的意义了。如果都是文字,我感觉抄起来可以加深印象,在抄的同时理解并思考。 但是如果涉及到代码,我没办法在抄的时候