雷竞技注册
项目

构建物体检测直流电机控制器

2015年12月27日经过唐威尔彻尔

在这种持续系列的覆盆子PI控制器中,您将学习如何使用光电池来构建用于操作小型直流电动机的物体检测控制电路。

运动控制。

系列之前的文章:

建立一个LED闪光灯

制作一个按钮开关

介绍

在里面以前的构建覆盆子PI控制器项目你学会了如何制作一个可编程LED闪光器。要启动LED闪烁周期,必须按下一个触觉按钮开关。虽然触觉按钮开关是一种基本的手动方法,为RPi提供输入控制信号进行处理并提供适当的输出响应,但可以通过使用传感器实现自动控制。光电池或光相关电阻(LDRs)经常被用来在晚上自动打开灯。典型的夜灯有一个光电池,它可以根据其电阻的变化来检测黑暗。当光电池探测到黑暗时,灯就会亮起来。应用与典型夜灯相同的工作原理,我们可以以类似的方式操作一个小型直流电机。在这个项目中,您将构建一个对象检测直流电机控制器。我们的目标检测直流电动机控制器框图如图1所示。构建目标检测直流电机控制器所需的电子元件见零件清单。

图1。建立目标检测直流电动机控制器所雷竞技最新app需的电子和嵌入式硬件。

项目零件列表

光探测和光电池

光电池是光敏电阻器。电气教科书或电子机智家杂志中使用的禁区术语是偏见的电阻或LDR。雷竞技最新app如果您从未见过Photocell,则图2显示了LDR的电气符号和组件视图。

图2。光电池的电符号和组件视图

光电池对光的电响应是电阻的变化。光电池在其敏感表面接收到的光越多,其电阻下降到几百欧姆就越多。在黑暗中,光电池电阻的单位是兆欧姆。我们可以做一个简单的实验,看看光电池的电阻是如何随着光照水平变化的。首先,用数字万用表读取欧姆。调整欧姆表刻度到20千欧姆设置。将DMM的正负极测试引线连接到光电池上,如图3所示。欧姆表上显示的读数为几千欧姆。

图3.。作者的欧姆表读数为3.11千欧姆。笔记:电阻值会根据光电池接收到的环境光而变化。

接下来,调整刻度到最高的兆欧设置。将你的手放在光电池上,你会看到几百万欧姆的电阻值,如图4所示。

图4.。作者的欧姆表读数为1.587兆欧。

为了获得最佳效果,通过切割墨水枪支并将其绘制黑色的筒子来制作准直器(一个窄灯的设备)。一旦干燥,将准直器放在光电池上。将准直器放在光电池上,减少了扰乱欧姆表的阻力读数的环境(外部)光。我使用非工作墨水笔的“手指握把”进行了准直器,如图5所示。图4中获得的电阻测量值基于我的自主的“手指握把”准直器。这些矿物和最大光电池电阻值将使我们将简单的光传感器开关连接到无焊接面包板上的RPI。

图5。作者的家用纤维准直器由墨水笔手指握把。

构建一个简单的光传感器开关

我们将使用光电池连同一个上拉电阻来制作一个简单的光传感器开关。图6显示了连接到RPi GPIO引脚的简单光传感器开关的基本电路原理图。电压降将与光电池电阻的大小成正比。例如,将一个物体或你的手放在光电池上将在LDR上提供大约+ 3,3vdc的电压降。移开物体或你的手将减少光电池的电阻,从而提供一个成比例的小电压降。RPi GPIO引脚将读取电压降。Python代码将把灯的存在和缺失读取为+3.3VDC或0VDC。因此,一个普通的触觉按钮-数字开关的电子行为将被模拟使用一个简单的光传感器电路。该项目的下一阶段是建立和测试一个由晶体管操作的直流电机。

图6.。使用光电池和上拉电阻构建简单的光传感器开关。笔记:上拉电阻是用一行Python代码编写的电气元件。

构建晶体管电机驱动器电路

项目构建的下一阶段是为将电路提供一条操作小型电动机的电子电路。单双极连接晶体管(BJT),具有适当的放大因子(B.eta)可用于操作或驱动小型直流电机。你可以很容易地建立一个晶体管直流电机驱动建立在一个无焊接面包板上的电路如图7所示。我还包括了电子电路原理图作为附加的布线参考材料,如图8所示。一旦电路已经建立在无焊接面包板上,按下触觉按钮开关将打开连接到晶体管的集电极的小型直流电机。如果直流电机不旋转,从电路中拆卸电池组,重新检查接线和1N4001整流二极管和2N2222 NPN晶体管的正确组件方向。在接线错误被纠正后,重新连接电池组和再次测试电路,祝贺建立一个功能晶体管电机驱动电路!现在,让我们看看如何直流电机驱动电路工作回顾基本晶体管理论。

图7.。晶体管电机驱动器无焊接面包板接线图

图8。一个典型的晶体管直流电机驱动器的电子电路原理图

基本晶体管理论

晶体管能够由于电源电流通过来自+ 6VDC电池组流过集电极的电源电流来操作DC电动机。DC电机绕组串联集电铅和+ 6VDC电池组。来自+ 6VDC电池组的电流流过DC电机绕组,使其旋转。为了使电流流过集电极发射器引线和DC电动机绕组,必须打开晶体管。要打开晶体管,必须使用称为正向偏置的电子电路操作技术。向前偏置晶体管由施加到施加到基极结合的输入电压大于0.7V(700mV)。而且,晶体管必须基于半导体组件类型正确地枢线。BJT组件类型由PNP或NPN引脚配置组成。2N2222晶体管是NPN组件。

集电极和发射极引线是负的(n材料),基极是正的(p材料)。图9显示了2N2222 NPN晶体管的引脚配置和封装类型。如图8所示,底座通过触觉按钮开关和220欧姆系列限制电阻连接到+6VDC电池组正红线,发射极连接到地(黑色线)。一个220欧姆的电阻被连接到晶体管的底座上,以减少电池的电流和热量损坏它。220欧姆电阻是一个很好的阻值,允许有足够的基极电流流过,这样晶体管就能正常打开。此外,1N4001二极管防止反向峰值反向电流从直流电机绕组损坏晶体管时,它关闭。如果你有兴趣了解更多关于这种半导体器件,阅读AAC的文章双极结型晶体管获取更多的电学理论信息。让我们继续进行项目的最终硬件构建。

图9。2N2222 NPN晶体管的电子符号和组件封装类型

最终硬件构建

随着晶体管电机驱动电路工作正常,我们现在准备完成项目的最终硬件构建。物体检测/直流电机控制器的最终电气接线是将驱动电路连接到树莓派。在LED闪光器项目中Adafruit Pi Cobbler.用于将光隔离器和支撑电路组件连接到适当的RPI的GPIO引脚。PI Cobbler方便了在无焊接面包板上可接近的所有RPI GPIO引脚,用于电气接线到电子接口电路。因此,同样的电路线组件技术也将在该项目中使用。图10显示了对象检测直流电动机控制器的无焊接面板布线。同样,图11中所示的电子电路示意图被提供为附加布线资源。

图10.。完整的对象检测直流电机控制器接线图组装在无焊接面包板上。注意拆除触控按钮开关,+6VDC电池组和电子元件在无焊面包板上的新放置位置。

图11.。对象检测直流电机控制器的电子电路示意图

我通过下面显示了我的原型单元,提供了对象检测直流电动机控制器的示例。我用旧的ercor套装金属底座Meccano DC电机附加到它的原型构建。此外,显示在下面的链接中提供控制器工作的视频剪辑。使我们的物体检测直流电机控制器运行的最终步骤是添加Python代码。

图12。作者的最终构建是对象检测直流电机控制器。2N2222晶体管具有足够的β,可以正确地驱动Meccano竖立机电动机而不会过热它。

对象检测Python代码

下面显示的Python代码是从LED闪光灯项目重新使用的程序。变量名称已更改为反映连接到RPI的物理组件。代码通过将物体放在光电电池上,以转动DC电机。对物体在传感器上的第二个位置将关闭直流电机。如前所述,上拉电阻是使用以下Python代码行的编程组件:

GPIO。设置(photocell_pin GPIO。IN, pull_up_down = GPIO.PUD_UP)

通过使用Linux命令〜sudo nano对象检测,可以通过打开nano编辑器键入整个Python程序。此外,单击下面的代码按钮,可以通过以下代码按钮在RPI的SD卡上保存Python程序。

#***********对象检测代码****************** ##受到SIMON MANK,覆盆子PI Cookbook的启发,2013年##由DON修改Wilcher Dec 18,2015 ##将物体放在光电池上方将打开直流电机。#将物体放在光电池上,第二次关闭电机。#将库添加到Python脚本导入RPI.gpio作为GPIO导入时间#将BCM I / O引脚包含到Python脚本中并定义引脚数字GPIO.SetMode(GPIO.BCM)Photocell_Pin = 4 MOTOR_PIN = 18#创建光电图引脚作为高电平开关(使用RPI内部上拉电阻)#并将电机引脚定义为输出。gpio.setup(photocell_pin,gpio.in,pull_up_down = gpio.pud_up)gpio.setup(motor_pin,gpio.out)#定义和设置(initialize)电机输出状态为false和旧输入事件为true motor_state = false = false resh_input_event= true #pbswitch事件监视循环:检查pbswitch_pin和基于输入事件的切换直流电机输出#是true或false,而true:new_input_event = gpio.input(photocell_pin)如果new_input_event == false和old_input_event == true:motor_state = not motor_stateold_input_event = new_input_event gpio.output(motor_pin,motor_state)time.sleep(0.1)#provides 100毫秒电机驱动开/关时间

object_detection.py.zip.zip.

在LX终端输入目标检测Python代码后,在屏幕提示符后输入Linux命令~sudo Python object_detect .py。拿一个物体放在光电池上:直流电机应该在旋转。将相同的物体放置在LDR上以关闭电机。热烈祝贺你!您现在有一个可操作的对象检测直流电机控制器。一种用于物体检测设备的应用程序是用于传送系统的非接触启动开关。代替使用一个标准的按钮开关来启动传送带,一个基本的手运动将操作它。探索其他应用与您的目标检测直流电机控制器,并记录在一个实验笔记本。下次,我们将研究如何使用RPi和litteBits模块构建一个事件计数器。

系列的下一篇文章:建筑覆盆子PI控制器:IR远程活动计数器

自己试试这个项目吧!得到bom。