使用树莓派实现声光控制电路

使用树莓派实现声光控制电路

  
​   前段时间做了一个利用树莓派实现智能路灯控制的实验,在这里分享一下我的一些经验

1,关于树莓派

​ 既然是利用树莓派来控制,首先自然是要对树莓派有一个简单的了解

  • 系统

    ​  树莓派没有硬盘,使用sd闪卡替代,到树莓派的官网上下载相应的系统,解压到sd卡的根目录下,开机,一路回车,即可完成安装,网上类似的教程很多,我就不再赘述了。

  • 引脚

    ​   安装好系统,就可以写代码了,但在这之前,你需要知道树莓派如何是如何实现输入输出的。

    ​   我没有留意我当时使用的是3b或是3b+,我的队友说是3b,姑且认为是3b吧。

    ​   首先将树莓派摆放成下图(左)所示,图中红色区域内即为树莓派引脚,然后就可以对照下图(右) 来查看各个引脚的的作用了。

使用树莓派实现声光控制电路_第1张图片

   
  其中标有3.3v,5v的即为电源,GROUND为接地,标有GPIO的引脚我们可以自己定义为输入输出,至于ID_SD,ID_SC的我们这里不必理会(好吧,其实我也不懂)


2、关于代码

  • 定义引脚

    直接上代码

    #encoding:utf-8
    import RPi.GPIO as GPIO
    
    sound = 7              			#定义声音传感器引脚
    led = 8                 		#定义led引脚
    light = 18             			#定义光敏电阻引脚
    
    GPIO.setmode(GPIO.BOARD)        #设置树莓派引脚格式,这里选择物理引脚编号
    GPIO.setup(led,GPIO.OUT)        #定义led为输出
    GPIO.setup(sound,GPIO.IN)       #定义声音传感器为输入
    GPIO.setup(light,GPIO.IN)       #定义光敏电阻为输入
    

    ​   为了以防万一,所有的python代码我都会加上第一行,至于这句代码会不会起作用,你猜?

    代码第八行这句话很重要,在上图(右)中,我们可以看到,标有GPIO的引脚后面都会跟着一个数字,而第八行的的作用,就是告诉编译器,我们不使用这个编号,代码中,我们定义的sound,led,light都是物理引脚编号,说白了,就是你从上到下、从左到右依次数过去,数到几,这个引脚的编号就是几。

  • 声光控制

    依旧是代码

    while (True):                         #定义一个死循环
      if GPIO.input(light) == 1:          #若是光线较暗
          if (GPIO.input(sound) == 1):    #若是检测到声音
              GPIO.output(led,1)          #点亮led
              time.sleep(5)   			  #等待5s
              GPIO.output(led,0)          #关闭led
    

    ​   代码很简单,这里是一个最简单的声光控制,一个死循环,然后依次检测光敏与声感的状态,符合条件即向led引脚输出高电平,也就是点亮led,等待5s后,关闭led。

    ​   这个代码可以实现led的声光控制,但是从使用的角度来讲,这里定义一个没有出口的死循环,想要结束程序,只能Ctrl+C强行中断程序,所以还要根据实际情况去设置出口,最简单的便是设置一个全局变量,这里不再赘述。


3、关于程序的运行

​  在pc上运行一个python程序想来大家都是没什么问题的,windows打开cmd,linux打开shell,输入以下命令

python 文件路径

​  然而树莓派只有一块芯片,没有显示器,我们如何去执行命令?如果你有外置显示器那最好不过,如果没有,也可以通过网线连接,使用远程桌面进入树莓派,然后在执行以上操作,关于如何远程控制树莓派,网上的教程很多,我这里就不班门弄斧了。

​  然而,我只是想用树莓派去控制一个led而已,每次重启之后之后,我都需要连接显示器,连接键盘,连接鼠标……是不是有些太麻烦了?可以不可以我一按开关,让程序自己去运行?答案是,当然可以。


4、关于开机自启

​  关于程序的开机自启,我也不是很懂,在这里,我只介绍一种我用到了的、亲测有效的方式。

​  首先在树莓派中打开以下路径 /home/pi/.config/autostart

​  若没有则自己创建

​  然后新建一个记事本,记事本文件扩展名改为( .desktop),在记事本中输入以下内容

[Desktop Entry]
Name = led
Comment = my program
Exec = python /home/pi/Desktop/led.py
Terminal = false
MultipleArgs = false
Type = Application
Categories = Application;Development;
StartupNotify = true

​  其中第二行得name与第三行的comment可以自拟,第四行则是你要启动的程序的路径。

​  重启树莓派,你的程序将会被作为系统的一项服务自行启动。

​  有关于开机自启这一块,我也是从

​     https://blog.csdn.net/qq_38960682/article/details/80259321

​  学习到的,有兴趣的不妨直接访问原文。


5、结语

​  有关于树莓派实现声光控制的内容就介绍到这里了,如有不足或是错误的地方,希望各位帮忙指正,文中的图片和一些内容来自互联网,若有侵权的地方,请联系我删除。

.

你可能感兴趣的:(树莓派,led,声音传感器,光敏电阻,声光控制)