一起玩转树莓派(10)——触控激光灯

简介:       你在小时候有玩过激光灯么?其模样类似于一个小型的手电筒,只是其光线十分集中,亮度强,并且通过不同的滤片,可以在墙上或地上打射出不同的图案,十分有趣。本实验,我们将找回童趣,使用触摸传感器和激光灯传感器来实现一个简易的触控激光灯。

一起玩转树莓派(10)——触控激光灯

      如果你已经阅读并且练习了本系列博客前面实验,那么我相信你已经能够使用树莓派做很多有趣的事情。本博客将要介绍的内容就是一个例子。

      你在小时候有玩过激光灯么?其模样类似于一个小型的手电筒,只是其光线十分集中,亮度强,并且通过不同的滤片,可以在墙上或地上打射出不同的图案,十分有趣。本实验,我们将找回童趣,使用触摸传感器和激光灯传感器来实现一个简易的触控激光灯。

      本实验的原理非常简单,无非是通过树莓派的GPIO引脚来读取触摸传感器的数据,之后将其用于操作激光传感器的开关控制上。本次实验使用的触摸传感器如下图所示:

此触摸传感器有3个引脚,除了正负极引脚外,最外侧的引脚用来输出信号,当手指触摸传感器上的圆形区域时,其信号引脚会输出高电平,否则输出低电平。对于这种类型的传感器,我们可以直接使用GPIO的下拉电阻功能,将其默认设置为低电平,轮询等待高电平信号。

      首先,先来体验下触摸传感器的应用,连线如下:

触摸传感器 树莓派
GND GND
VCC 3.3V
SIG BCM编码17的引脚(对应物理引脚为11)

编写如下测试代码:

#coding:utf-8

import RPi.GPIO as GPIO
import time

touchPin = 11

GPIO.setmode(GPIO.BOARD)
GPIO.setup(touchPin,GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

while True:
    swi = GPIO.input(touchPin)
    print(swi)
    time.sleep(0.5)

在树莓派上运行上面代码。通过触摸传感器,可以看到控制台上打印出对应的电平信息。

      下面,我们再来看一下本次实验所使用的激光模块,如下图所示:

此激光模块也有3个引脚,其中“-”号一侧的引脚接地,中间引脚接3.3V电压,“S”一侧引脚接GPIO信号引脚。当S信号引脚输入高电平时,激光模块被激活发射激光,当S信号引脚输入低电平时,激光发射关闭。激光模块的接线如下:

激光模块 树莓派
- GND
中间引脚 3.3V
S BCM编码18的引脚(对应物理引脚为12)

 修改上面的示例代码如下:

#coding:utf-8

import RPi.GPIO as GPIO
import time

# 触摸传感器的信号引脚
touchPin = 11
# 激光模块的信号引脚
lightPin = 12

# 设置采用物理编码
GPIO.setmode(GPIO.BOARD)
# 对触摸传感器的引脚进行初始化
GPIO.setup(touchPin,GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
# 对激光传感器的引脚进行初始化
GPIO.setup(lightPin,GPIO.OUT)

while True:
    swi = GPIO.input(touchPin)
    # 当触摸发生时,触摸传感器的引脚输入高电平 
    if swi == 1:
        # 向激光模块的引脚输出高电平,发射激光
        GPIO.output(lightPin, GPIO.HIGH)
    else:
        # 与上面相反,关闭激光
        GPIO.output(lightPin, GPIO.LOW)
    time.sleep(0.5)

在树莓派上运行上面代码,体验下这个自制的激光灯玩具吧!

目录
相关文章
3GPP相应的5G UDN场景及性能需求 | 带你读《5G UDN(超密集网络)技术详解》之十九
相比 IMT-2020 推进组,3GPP 对 5G UDN 场景的研究更加具有针对性。 在业务应用独立式部署(SA)技术组的研究中,与 UDN 相关的场景都是服务 室内用户的,具体有两种:办公室和热点区域。
3GPP相应的5G UDN场景及性能需求 | 带你读《5G UDN(超密集网络)技术详解》之十九
|
11月前
|
敏捷开发 人工智能 安全
支付宝故障,如果你来设计会怎么做?
支付宝官方发布公告,解释了因配置错误导致部分用户享受立减优惠的情况。明确表示不会追回已发放的优惠,并提醒用户谨防诈骗短信。针对此次事件,作者从角色缺失、防呆设计、程序预检、沙箱与灰度发布及AI审核五个方面,探讨如何避免类似运营失误,强调了流程优化和责任分担的重要性。
249 1
|
8月前
|
传感器 人工智能 算法
AI技术在智慧工地中的应用有哪些?
人工智能技术(AI)通过算法和数据让计算机模拟人类智能,完成复杂任务。在智慧工地中,AI技术覆盖施工管理全流程,提升效率与安全性。主要应用包括:人员智能化管理(身份识别、行为监测)、施工安全管控(危险行为识别、设备监控、环境预警)、设备与物料管理(预测性维护、物料追溯)、施工效率与质量提升(进度调度、质量检测)及智能决策支持(大数据分析、虚拟培训)。这些技术推动建筑行业从经验驱动向数据驱动转型,助力无人化作业与全生命周期管理。
702 0
|
Ubuntu 数据安全/隐私保护
ubuntu 系统切换root用户
ubuntu 系统切换root用户
268 0
WXM
|
SQL Dubbo Java
线程池故障梳理总结
线程池故障分析与预防 本文汲取实战精华,望助开发者避坑前行,评论区恭候高见,共同完善故障应对之道。
WXM
120 0
|
网络协议
DHCP-动态主机配置协议
DHCP协议工作流程包括四个阶段:发现、提供、选择和确认。在发现阶段,客户端广播DHCP Discover报文寻找服务器。服务器在提供阶段回应DHCP Offer报文,包含可用IP地址及配置信息。客户端在选择阶段接收多个Offer并发送DHCP Request给选定服务器。最后,服务器发送DHCP Ack报文确认IP地址分配,客户端应用配置并接入网络。
265 0
|
编译器 程序员 C++
【C++ 类型推导 】深入探索C++类型推导:从C++11到C++20的进化之路
【C++ 类型推导 】深入探索C++类型推导:从C++11到C++20的进化之路
189 0
|
运维 安全 自动驾驶
(4)(4.6.8) 电子调速器(ESC)校准
(4)(4.6.8) 电子调速器(ESC)校准
459 0
|
存储 缓存 JSON
uniapp本地存储(uni.setStorageSync和uni.setStorage)
uniapp本地存储(uni.setStorageSync和uni.setStorage)
1772 0
|
安全 网络协议 关系型数据库
SSH 密码暴力破解及防御实战_1 | 学习笔记
快速学习 SSH 密码暴力破解及防御实战_1
1128 0
SSH 密码暴力破解及防御实战_1 | 学习笔记