基于树莓派GPIO口和光电传感器的障碍物检测

花了相当多的时间探讨了GPIO口的使用方法,接下来将重点探讨如何进行实际的应用。现有的一个简单的光电传感器为例,讲述如何实现外界障碍物的检测系统的设计。

所需的器件:

  • 树莓派(B版本)

  • TPLINK无线网卡(笔者用pc机做了一个远程终端)

  • 1A或者2A输出的电源适配器及USB充电线

  • 面包板

  • 10k电阻、4.74K电阻、220欧电阻

  • LED灯

  • 光电传感器

  • 公母头杜邦线、双母头杜邦线

    整体设计思路:

    使用传感器检测障碍物,以LED指示检测的结果。当传感器前检测到障碍物时,led点亮,同时在屏幕上面输出提示信息“Object be detected…”在树莓派上面运行编写好的程序,暂拟定使用python语句编写。

    设计过程:

    • GPIO口分配

    基于树莓派GPIO口和光电传感器的障碍物检测_第1张图片

    上图所示为树莓派上使用的GPIO口分配,其中1、2、3、4分别为5V power、GND、led灯驱动口、传感器输入口。

    • 传感器检测输入电路设计

    基于树莓派GPIO口和光电传感器的障碍物检测_第2张图片

    树莓派外围接口的设计,在设计时,可以根据自己的需求进行修改。传感器提供三个端口,分别是Pow、GND、Out,使用树莓派的端口提供5V电源,信号输出为5V,当然不能直接连接到树莓派的哦,因为可能会烧毁树莓派芯片的。这里使用简单的一个分压电路,控制输入电压不超过3.3V。这里R1的大小大概为R2的一半,根据电路常识可知加在GPIO口与GND间的电压约为5V*2/3=3.3V,能够满足树莓派电压输入的要求。

    • led灯驱动电路

    Led灯的驱动非常简单,普通的led灯通过一个220欧的电阻连接到树莓派的GPIO口。当传感器检测到障碍物的存在时,输出为高电平点亮led灯。

    控制程序设计

    我们使用nano编辑器建立一个python语句的程序文件,所以保证你的树莓派安装python的编译环境。

    完整的程序展示,(定义了输入输出口,和检测程序的响应动作)

    基于树莓派GPIO口和光电传感器的障碍物检测_第3张图片

    使用实用的电路设计小软件fritzing.0.8.7b.pc(下载地址http://fritzing.org/download/),画了整体的接线图如下所示。

    基于树莓派GPIO口和光电传感器的障碍物检测_第4张图片

    通过实验过程来显示我们的成果。

    实物接线

     

    基于树莓派GPIO口和光电传感器的障碍物检测_第5张图片

    这是传感器的接线图,总共有三个引脚,分别是pow、gnd和信号输出端

    树莓派的GPIO引脚图接线,共有四只引脚接线,具体的引脚分配详细内容请看基于树莓派GPIO口和光电传感器的障碍物检测(一)

    基于树莓派GPIO口和光电传感器的障碍物检测_第6张图片

    这是总体的接线图,包括树莓派、面包板和传感器三大部分。

    程序执行

    启动树莓派,用户名:pi,密码:raspberry(输入时不显示),由于我们不打算使用桌面环境,那么第一步肯定是要知道我们在在哪里,这是面对乌黑的命令行界面首先应该想到的事情,不用着急,一个简单pwd命令,既可以告诉你的位置。通过ls,可以查看所有该目录下的文件。

    基于树莓派GPIO口和光电传感器的障碍物检测_第7张图片

    我们上次编写的程序button.py,放到了桌面环境下。可以看到我们目录下的Desktop文件夹,输入[ cd Desktop / ]即可进入(在输入文件目录名字时可以使用tap键自动补全的哦)基于树莓派GPIO口和光电传感器的障碍物检测_第8张图片

    进入桌面后,通过ls命令查看到我们已经写的button.py文件,下一步就是通过[sudo python button.py]来执行啦基于树莓派GPIO口和光电传感器的障碍物检测_第9张图片


    你可能感兴趣的:(基于树莓派GPIO口和光电传感器的障碍物检测)