ccd3089ccd摄像头是啥用什么单片机能处理了图像呢?我想制作自己制作一个图像识别?请给一个制作办法

Raspberry Pi是一款出色的小型台式计算机鈳用于控制数字输入和输出。但是当您想读取模拟信号(例如从热敏电阻,电位计或许多其他类型的传感器获得的信号)时会怎么做鈈要放弃!通过将一个小型的模数转换器(ADC)芯片连接到Pi,您可以为Raspberry Pi程序打开模拟信号的世界!

本指南将为您展示从中读取模拟值的两个鈈错的选择带有Raspberry Pi的Python您可以使用简单的MCP3008模拟到数字转换器(ADC)来读取10位精度的多达8个模拟输入通道。或使用更高级的ADS1x15系列ADC读取12至16位精度和鈳编程增益级的4个通道-哇!您将立即使用Python库和示例来启动并运行这些示例以从这两个ADC读取模拟输入。

在开始之前您需要熟悉使用Raspberry的基礎知识。 Pi喜欢加载操作系统建立网络并使用SSH连接到终端。查阅“学习Raspberry Pi”系列以获取更多信息

在开始指南之前,请确保Raspberry Pi正在运行最新的Raspbian Jessie操作系统(完整版或精简版)

MCP3008是低成本的8通道10位模数转换器。该ADC的精度类似于Arduino Uno的精度并且具有8个通道,您可以从Pi读取很多模拟信号洳果您只需要读取简单的模拟信号,例如温度或光传感器则此芯片是一个不错的选择。如果需要更高的精度或功能请查看下一页的ADS1x115系列。但是请勿使用旧指南中的代码,因为该指南已弃用本指南将向您展示安装和使用新的Python代码与MCP3008 ADC进行通信的简便方法。

MCP3008数据表也是重偠的资料可以方便地获取和使用。

MCP3008使用以下方法连接到Raspberry Pi SPI串行连接您可以使用硬件SPI总线或任何四个GPIO引脚和软件SPI与MCP3008通讯。由于软件SPI可以与Pi仩的任何引脚配合使用因此它的灵活性略高一些,而硬件SPI则稍快一些但由于只能与特定的引脚配合使用而灵活性较差。如果不确定使鼡哪个软件我建议您使用SPI软件,因为它更容易设置

在将芯片连接到Pi之前,首先需要将其放入面包板如果您尚未使用裸露的DIP芯片(如MCP3008),然后再将其压入面包板则其支脚会跨越面包板中间的空通道。这样您可以从面包板上触及芯片的每个分支。

请注意芯片的方向佷重要!确保将其与半个圆形的缩进并指向顶部。参见下面的照片作为示例:

一旦芯片位于面包板中就可以将其连接到Pi了。 MCP3008芯片的每个汾支都有以下名称:

记住切屑的方向您必须用半圆像上面的图一样向顶部缩进!

ADS1015是具有4个通道的12位ADC,而ADS1115是具有4个通道的高精度16位ADC两者均具有从2/3x到16x的可编程增益,因此您可以放大小信号并以更高的精度读取它们如果您想从MCP3008或其他简单的ADC上获得更好的提升,那么ADS1x15系列是一個不错的选择!

在开始使用之前请务必遵循ADS1x15指南通过焊接组装ADC板

您可能还会对以下芯片的数据表感兴趣:

ADS1015 ADS1115和ADS1115使用相同的I2C通信协议读取模擬值。您可以按照下面所述的完全相同的方式将每个芯片连接到Pi

按如下所示将ADC连接到Pi:

您应该看到库安装成功,并显示以下类似消息:

洳果您看到错误请仔细检查所有先前的命令是否都已运行,并且它们没有因错误而失败

要从Python软件包索引安装到Raspberry Pi上的终端并执行以下命囹:

看到一条类似以下消息,说明已成功安装该库:

请注意如果您是从Python软件包索引中安装的,则不会具有该库的示例代码您需要手动將这些ADS1x15示例下载到Pi,然后在下一部分中运行它们

要学习如何使用库,我将逐步介绍其中包含的一些示例代码如果您从源代码下载并安裝了这些库,则这些示例位于 examples 文件夹中通过在Pi上运行,切换到该文件夹:

注意:如果您使用pip命令从Python软件包索引中安装了该库则不会具囿示例代码,则需要手动将其下载到Pi

我们将首先查看simpletest.pyexample,这是读取和显示ADC通道值的基本示例首先,让我们打开文件以配置我们使用的芯爿运行以下命令以在nano文本编辑器中打开文件:

现在向下滚动到顶部附近的以下代码块:

此代码将示例配置为使用ADS1115芯片或ADS1015芯片。未注释的朂上面一行选择通过创建ADS1115对象来使用ADS1115芯片它下面是带注释的行,该行创建了一个ADS1015对象以使用ADS1015芯片取消注释右行,具体取决于所使用的芯片

例如,如果您使用的是ADS1015则代码如下所示:

最后一条注释行显示了更高级的用法,例如选择自定义I2C地址或总线号您通常不需要更妀这些值。

该示例将打印出包含所有ADC的表格渠道及其价值每半秒钟将打印出具有最新通道值的新行。例如您可能会看到如下输出:

每列代表一个不同的通道,第一行的标题显示通道号(从0到3总共4个通道)。每个通道的值是该通道的ADC值这个数字的范围是16位ADS1115上的-32768到32767或12位ADS1015仩的-2048到2047。值0表示信号处于接地(参考)电平值32767(或ADS105上的2047)表示信号等于或高于电流增益的最大电压值(默认为4.096V),以及-32768(或ADS1015上的-2048)表示咜是低于参考电压的负电压(例如如果处于差分模式)。在这两个值之间是成比例的因此16384的值约为4.096/2或2.048V。

尝试将电位计连接到模拟输入の一将电位计的中间分支(抽头)连接到模拟输入,然后将另一分支连接到Pi 3.3V另一分支连接到Pi接地。运行示例并旋转电位计。您应该看到ADC值发生变化并且随着电位计的电压降低而降低,而随着电压的升高而升高!

要了解代码的工作原理请打开 simpletest.py 再次以nano为例。向下滚动箌本部分代码:

该代码配置了ADC在读取信号时将使用的增益增益会放大信号,因此更容易读取小的微弱信号增益还控制芯片可以读取的電压范围。增益值为1时电压范围为4.096伏。这意味着芯片可以读取-4.096伏至+4.096伏的值您可以选择较高的增益来以较高的精度读取较弱的信号(因為将使用更多的位来表示较小的值范围)。

为信号选择正确的增益非常重要值得考虑一下您可能会看到的电压范围。增益太高会使您的信号超出ADC的最大电压并产生不准确的结果增益太低会使信号掩埋在噪声中,从而难以读取仔细选择!

现在向下滚动到底部的主循环:

玳码可能看起来有些复杂,但其中大部分是复杂的是从打印表格开始的请注意,该行读取ADC通道值并将其保存在列表中:

此行正在从ADS1x15Python库调鼡 read_adc()函数该函数采用一个参数,即要读取的通道号(0到3的值)以及可选的增益值(默认为1)。结果该函数将返回该通道的当前ADC值。

以您自己的代码读取ADC通道与调用 read_adc()函数一样容易!传递通道以进行读取它将返回该值。这就是使用ADS1x15库读取模拟值的全部内容!

如果您很好奇可以像运行simpletest.py一样检查并运行differential.pyexample。修改配置以选择您的芯片然后,在运行示例时它将调用 read_adc_difference()函数,并使用该函数读取芯片的通道0和1之间的电压差有时读取两个信号的差异很有用,以帮助减少模拟信号中的噪声和其他伪像

此外,continuous.pyexample演示了如何打开连续读取模式並读取ADC值流如果您只是从芯片中读取值并且不想一直担心调用 read_adc()函数,则此功能很有用

最后,比较器.pyexample显示了一种更高级的芯片模式当ADC值在特定范围内时,它们可以启用ALERT输出引脚范围。再次注释和数据表应该可以帮助您使用此功能。

  • 铝属于两性金属遇到酸性或碱性都会产生不同程度的腐蚀,尤其是铝合金铸件的孔隙较多成分中还含有硅和几...

  • 如何洗衣服?也许有人会说衣服谁不会洗啊?放到水裏加点洗衣粉洗就成了呗。是啊说是这样说,可是洗衣...

  • 工行的网银没有软键盘主要通过安全控件来保证安全,只有安装了工行的安铨控件才能在工行网页上输入密码...

  • 1、问:房地产开发企业拆迁补偿费是否也随土地价格一起交纳契税(以房易房部分的)? 答:是的,因为取嘚...

  • 一般13岁来月经是属于正常的现象月经是生理上的循环周期,发生在一些具有生育能力的女性人类和黑猩猩与...

  • 月经期分为卵巢期,排卵期和黄体期黄体期是指,排卵后的到月经来潮的前一天也就是月经周期的15天到...

  • 对于急性盆腔炎的治疗,它强调中医西医两者的结合并且能够合理地应用抗生素,因为抗生素对于抑制一些能够...

  • 如果只是单纯的宫颈管过长,一般是不会影响怀孕的,建议最好跟踪卵泡发育情況子宫颈是女性生殖系统中重要...

  • 来月经的时候可以喝奶茶,不过喝奶茶的时候不要喝凉的要选择热的奶茶来喝。月经期间多吃些富含優质蛋白质...

  • 大宇琴行是中国音乐学院考级报名点和专门考级点权威考级机构。我女儿都在大宇琴行考级考级场所就在琴行...

我要回帖

更多关于 ccd摄像头是啥 的文章

 

随机推荐