线性CCD

news2024/11/26 22:36:22

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


侵权联系删除!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序开发【从入门到精通】——页面事件

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

三个表的联合查询的场景分析-场景4:c表维护a和b表的id关联关系(一对多)

基础SQL演练,带详细分析,笔记和备忘。 目录 背景介绍 表数据 需求1:查询g表所有记录,以及关联的h的id 需求2:在需求1基础上,查出关联的h的其它字段(name) 需求3:在需…

ssm009毕业生就业信息统计系统+vue

毕业生就业信息统计系统 摘 要 随着移动应用技术的发展,越来越多的学生借助于移动手机、电脑完成生活中的事务,许多的行业也更加重视与互联网的结合,以提高快捷、高效、安全,可以帮助更多有需求的人。针对传统毕业生就业信息统计…

瑞吉外卖实战学习--6、通过try和catch进行异常处理

try和catch进行异常处理 效果图前言1、公共拦截器进行异常处理1.1、创建公共报错处理的方法1.2、@ControllerAdvice中设置要拦截的类1.3、@ExceptionHandler中写处理的异常类2、完善错误拦截器2.1、效果效果图 前言 当用户名重复数据库会报错,此时就需要捕获异常操作 1、公共…

【文末 附 gpt4.0升级秘笈】超越Sora极限,120秒超长AI视频模型诞生

120秒超长AI视频模型发布:开启视频生成新纪元 随着人工智能技术的迅猛发展,AI视频生成领域也取得了令人瞩目的突破。近日,一项名为“StreamingT2V”的120秒超长AI视频模型正式发布,标志着文生视频技术正式进入长视频时代。这一技…

Spring官方真的不建议使用属性进行依赖注入吗?

使用Spring进行依赖注入时,很多大佬都推荐使用构造方法注入,而非使用在属性上添加 Autowired 注入,而且还说这是Spring官方说的,真的是这样吗? 使用Spring进行依赖主要的方式有很多,主流的使用方式有两种&a…

kaggle竞赛(房价预测)(Pytorch 06)

一 下载数据集 此数据集由Bart de Cock于2011年收集,涵盖了2006‐2010年期间 亚利桑那州 埃姆斯市的房价。 下载地址: import hashlib import os import tarfile import zipfile import requests#save DATA_HUB dict() DATA_URL http://d2l-data.s3…

linux在使用重定向写入文件时(使用标准C库函数时)使处理信号异常(延时)--问题分析

linux在使用重定向写入文件时(使用标准C库函数时)使处理信号异常(延时)–问题分析 在使用alarm函数进行序号处理测试的时候发现如果把输出重定向到文件里面会导致信号的处理出现严重的延迟(ubuntu18) #include <stdio.h> #include <stdlib.h> #include <unist…

Java23种常见设计模式汇总

七大原则网站地址&#xff1a;设计模式7大原则&#xff0b;类图关系-CSDN博客 创建型设计模式&#xff1a;创建型设计模式合集-CSDN博客 七大结构型设计模式&#xff1a;7大结构型设计模式-CSDN博客 11种行为型设计模式&#xff1a; 11种行为型模式&#xff08;上&#xff0…

LeetCode---390周赛

题目列表 3090. 每个字符最多出现两次的最长子字符串 3091. 执行操作使数据元素之和大于等于 K 3092. 最高频率的 ID 3093. 最长公共后缀查询 一、每个字符最多出现两次的最长子字符串 非常经典的滑动窗口问题&#xff0c;即动态维护一段区间&#xff0c;使得这段区间满足…

数据结构:Trie(前缀树/字典树)

文章目录 一、介绍Trie1.1、Trie的结点结构1.2、Trie的整体结构 二、Trie的操作2.1、Trie插入操作2.2、Trie查找操作2.3、Trie前缀匹配操作2.4、Trie删除操作 三、实战3.1、实现Trie&#xff08;前缀树&#xff09; 一、介绍Trie Trie 又称字典树、前缀树和单词查找树&#xff…

短视频素材那里来?五大平台让你的视频大放异彩!

哈喽&#xff01;短视频创作者们&#xff0c;是不是在寻找那些能让你的剪辑视频更加闪耀的素材&#xff1f;别着急&#xff0c;今天我要为你们带来五个超棒的视频素材网站&#xff0c;让你的作品在抖音、快手上大放异彩&#xff0c;成为众人羡慕的焦点&#xff01; 蛙学网&…

python电商结合双轨制

最近又重新整合翻看以前的数据&#xff0c;图片&#xff0c;绘画&#xff0c;还有各种编程代码&#xff0c;python,leetcode,还有关于商业方面的一些见解,想起了大学时候和同学们并肩作战&#xff0c;熬夜编码的时光。还有大数据&#xff0c;八爪鱼爬虫。 下面是我的手稿电商打…

输出单链表倒数第K个结点值

方法一&#xff1a; 两次遍历链表。第一次遍历&#xff0c;计算链表长度&#xff0c;然后计算链表倒数第m个结点的正数位置k&#xff0c;判断位置是否合法&#xff0c;如果不合法&#xff0c;输出NOT FOUND&#xff0c;否则&#xff0c;进行第二次遍历链表&#xff0c;查找链表…

【初阶数据结构】——牛客:CM11 链表分割

文章目录 1. 题目介绍2. 思路分析3. 代码实现 1. 题目介绍 链接: link 这道题是给我们一个链表和一个值X &#xff0c;要求我们以给定值x为基准将链表分割成两部分&#xff0c;所有小于x的结点排在大于或等于x的结点之前。 最终返回重新排列之后的链表的头指针。 2. 思路分析…

根据实例逐行分析NIO到底在做什么

Selector&#xff08;选择器&#xff09;是 Channel 的多路复用器&#xff0c;它可以同时监控多个 Channel 的 IO 状况&#xff0c;允许单个线程来操作多个 Channel。Channel在从Buffer中获取数据。 选择器、通道、缓冲池是NIO的核心组件。 一、新建选择器 此时选择器内只包含…

Python学习笔记-简单案例实现多进程与多线程

Python 的多进程与多线程是并发编程的两种重要方式&#xff0c;用于提高程序的执行效率。它们各自有不同的特点和适用场景。 多进程&#xff08;Multiprocessing&#xff09; 概念&#xff1a; 多进程是指操作系统中同时运行多个程序实例&#xff0c;每个实例称为一个进程。…

FA模型切换Stage模型组件切换之ServiceAbility切换DataAbility切换

ServiceAbility切换 FA模型中的ServiceAbility对应Stage模型中的ServiceExtensionAbility。Stage模型下的ServiceExtensionAbility为系统API&#xff0c;只有系统应用才可以创建。因此&#xff0c;FA模型的ServiceAbility的切换&#xff0c;对于系统应用和三方应用策略有所不同…

Java线程池工作原理浅析

为什么要用线程池&#xff1f; 1、线程属于稀缺资源&#xff0c;它的创建会消耗大量系统资源 2、线程频繁地销毁&#xff0c;会频繁地触发GC机制&#xff0c;使系统性能降低 3、多线程并发执行缺乏统一的管理与监控 线程池的使用 线程池的创建使用可通过Executors类来完成…

Clip算法解读

论文地址&#xff1a;https://arxiv.org/pdf/2103.00020.pdf 代码地址&#xff1a;https://github.com/OpenAI/CLIPz 中文clip代码&#xff1a;https://gitcode.com/OFA-Sys/Chinese-CLIP/overview 一、动机 主要解决的问题&#xff1a; 超大规模的文本集合训练出的 NLP 模…