线性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学习视频


侵权联系删除!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/502894.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

请问2核4G云服务器,可以带得动多少人?5M带宽

腾讯云轻量应用服务器2核4G5M配置性能测评,腾讯云轻量2核4G5M带宽服务器支持多少人在线访问?并发数10,支持每天5000IP人数访问,腾讯云百科txybk.com整理2核4G服务器支持多少人同时在线?并发数测试、CPU性能、内存性能、…

941: 有序顺序表的合并操作的实现

学习版 【c语言】 1.顺序表元素类型 2.顺序表的初始化 3.顺序表的插入 4.顺序表的合并 #include <cstdio> #include <cstdlib> #include <iostream> #include <algorithm>typedef struct {int* data; // 数据数组的指针int length; // 当前顺序表…

常见代码漏洞介绍

目录 1.XSS攻击 1.1 存储型 XSS&#xff08;Stored XSS&#xff09; 1.2 反射型 XSS&#xff08;Reflected XSS&#xff09; 1.3 DOM 型 XSS&#xff08;DOM-based XSS&#xff09; 1.4 修复方案 2.日志伪造 2.1 伪造方法 2.2 解决方法 2.3 验证结果 3.ESAPI 第一步…

第10讲:操作符详解

第10讲&#xff1a;操作符详解 1. 操作符的分类2. 二进制和进制转换2.1 二进制转十进制10进制转2进制数 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/45fb3048f5164084b9d494b3d233bc42.png)2.2 二进制转八进制和十六进制2.2.1 二进制转八进制2.2.2 二进制转十六…

C语言例1-3:设 int a; ,语句 for(a=0;a==0;a++); 和语句 for(a=0;a=0;a++); 执行的循环次数分别是

答案&#xff1a;1,0 代码如下&#xff1a; #include<stdio.h> int main(void) {int a;for(a0;a0;a){printf("1\n");} return 0; } 结果如下&#xff1a; 代码如下&#xff1a; #include<stdio.h> int main(void) {int a;for(a0;a0;a){printf("…

【DA-CLIP】生成图像描述generate_captions.py代码理解+实践

上一篇博文解决了运行环境问题 【DA-CLIP】Windows下使用clip_interrogator/BLIP进行生成图像-文本-退化类型数据集的generate_caption.py代码运行逻辑-CSDN博客https://blog.csdn.net/m0_60350022/article/details/137061820?spm1001.2014.3001.5501 回顾思路 用HQ图生成干…

VAE——生成数字(Pytorch+mnist)

1、简介 VAE&#xff08;变分自编码器&#xff09;同样由编码器和解码器组成&#xff0c;但与AE不同的是&#xff0c;VAE通过引入隐变量并利用概率分布来学习潜在表示。VAE的编码器学习将输入数据映射到潜在空间的概率分布的参数&#xff0c;而不是直接映射到确定性的潜在表示…

git最常用的命令与快捷操作说明

git最常用的命令与快捷操作说明 最常用的git三条命令1、git add .2、git commit -m "推送注释"3、git push origin 远程分支名:本地分支名 其他常用命令本地创建仓库分支删除本地指定分支切换本地分支合并本地分支拉取远程仓库指定分支代码过来合并推送代码到远程分支…

c语言:vs2022写一个一元二次方程(包含虚根)

求一元二次方程 的根&#xff0c;通过键盘输入a、b、c&#xff0c;根据△的值输出对应x1和x2的值(保留一位小数)(用if语句完成)。 //一元二次方程的实现 #include <stdio.h> #include <math.h> #include <stdlib.h> int main() {double a, b, c, delta, x1…

day3 wsl下启动第一个nest项目(java转ts全栈/3R教室)

背景&#xff1a;准备先找个nestjs模板项目&#xff08;kuizou大佬的nest-vben-admin&#xff09;看看大体情况&#xff0c;但发现win下还是问题还真挺多&#xff0c;受不了了今天一定要把wsl环境安装好。。。 比如如下明显就是win环境导致的错误&#xff0c;估计wsl下应该没问…

给大家推荐一个系统运维管理神器jeecat

一个可以当堡垒机又可以当成系统运维管理软件的神器&#xff0c;不仅支持堡垒机的全部功能&#xff0c;还实现以系统为维度的全方位授权管控&#xff0c;有效避免信息泄露、删库跑路等危险操作&#xff0c;作公司的安全运维管控神器。 无须任何插件&#xff0c;只须浏览器的web…

蓝桥杯骗分小技巧

写在前面 由于本人第一次参加的是cpp组&#xff0c;第二次参加的python组&#xff0c;所以一些技巧都是关于cpp和python的 先上圣经 贪心骗样例&#xff0c;暴力出奇迹。 暴搜挂着机&#xff0c;打表出省一。 数学先打表&#xff0c;DP看运气。穷举TLE&#xff0c;打表UKE。 模…

系统需求分析报告(原件获取)

第1章 序言 第2章 引言 2.1 项目概述 2.2 编写目的 2.3 文档约定 2.4 预期读者及阅读建议 第3章 技术要求 3.1 软件开发要求 第4章 项目建设内容 第5章 系统安全需求 5.1 物理设计安全 5.2 系统安全设计 5.3 网络安全设计 5.4 应用安全设计 5.5 对用户安全管理 …

【Qt】QMainWindow

目录 一、概念 二、菜单栏 2.1 创建菜单栏 2.2 在菜单栏中添加菜单 2.3 创建菜单项 2.4 在菜单项之间添加分割线 三、工具栏 3.1 创建工具栏 3.2 设置停靠位置 3.3 设置浮动属性 3.4 设置移动属性 四、状态栏 4.1 状态栏的创建 4.2 显示实时消息 4.3 显示永久消…

vue3+vite模版框架 tabs右键刷新时丢失路由参数

问题&#xff1a; 标题栏的tabs的右键&#xff1a;刷新时&#xff0c;没有保存上一个页面传递过来的参数 分析&#xff1a; TagView.vue刷新事件 function refreshSelectedTag(view: TagView) {console.log(|--执行刷新, view)tagsViewStore.delCachedView(view);const {full…

Cookie/Session

1.Cookie HTTP 协议自身是属于 "无状态" 协议. "无状态" 的含义指的是: 默认情况下 HTTP 协议的客户端和服务器之间的这次通信, 和下次通信之间没有直接的联系. 但是实际开发中, 我们很多时候是需要知道请求之间的关联关系的. 例如登陆网站成功后, 第二…

004 高并发内存池_ThreadCache设计

​&#x1f308;个人主页&#xff1a;Fan_558 &#x1f525; 系列专栏&#xff1a;高并发内存池 &#x1f339;关注我&#x1f4aa;&#x1f3fb;带你学更多知识 文章目录 前言文章重点一、设计FreeList自由链表结构二、定制对齐映射规则三、完成申请Allocate与释放Deallocate…

数据结构:链表的双指针技巧

文章目录 一、链表相交问题二、单链表判环问题三、回文链表四、重排链表结点 初学双指针的同学&#xff0c;请先弄懂删除链表的倒数第 N 个结点。 并且在学习这一节时&#xff0c;不要将思维固化&#xff0c;认为只能这样做&#xff0c;这里的做法只是技巧。 一、链表相交问题 …

【免费获取】【下片神器】IDM非主流网站视频免费下载神器IDM+m3u8并解决idm下载失败问题 idm下载器超长免费试用

当你浏览一个网站&#xff0c;看到一个喜欢的视频&#xff0c;不知道如何下载的时候&#xff0c;本教程或许可以帮你点小忙。大部分的主流网站都有专门的下载工具&#xff0c;本篇教程主要针对的是一些非主流的小网站。 我们的下载方法就是利用IDM&#xff08;Internet Downlo…

npm卸载不掉的解决方案

不管怎么重装重启都报错 真服了&#xff0c;npm卸载不掉绝对是有缓存存在&#xff0c;用where npm查到d盘 实际上根本不在这个地方&#xff0c;这个是我安装的6.14.12版本的npm的地方&#xff0c;我说我怎么怎么重装怎么导包都不行呢&#xff0c;偷偷隐藏在这个目录里面&#…