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

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

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


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


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


image.png


此触摸传感器有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)

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


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


image.png


此激光模块也有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)

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

目录
相关文章
|
前端开发
jeecgboot数据权限用法
jeecgboot数据权限用法
1466 0
jeecgboot数据权限用法
|
机器学习/深度学习 人工智能 算法
声画分离模型PixelPlayer
【2月更文挑战第12天】声画分离模型PixelPlayer
297 5
声画分离模型PixelPlayer
|
存储 自然语言处理 搜索推荐
GraphRAG:构建下一代知识图谱驱动的对话系统
【10月更文挑战第10天】随着自然语言处理(NLP)技术的发展,对话系统已经从简单的基于规则的问答系统演变为能够理解复杂语境并提供个性化服务的智能助手。然而,传统的对话系统往往依赖于预先定义好的模板或有限的知识库,这限制了它们在理解和生成多样化响应方面的能力。为了解决这一问题,GraphRAG(Graph-based Retrieval-Augmented Generation)技术应运而生。GraphRAG结合了大规模的知识图谱和先进的NLP模型,旨在提升对话系统的理解和响应能力。
798 1
|
11月前
|
传感器 分布式计算 算法
解码大数据的四个V:体积、速度、种类与真实性
解码大数据的四个V:体积、速度、种类与真实性
578 21
|
11月前
|
传感器 人工智能 自动驾驶
OpenEMMA:德克萨斯开源端到端的自动驾驶多模态模型框架,基于预训练的 MLLMs,处理复杂的视觉数据,推理驾驶场景
OpenEMMA 是德州农工大学、密歇根大学和多伦多大学共同开源的端到端自动驾驶多模态模型框架,基于预训练的多模态大型语言模型处理视觉数据和复杂驾驶场景的推理。
544 13
OpenEMMA:德克萨斯开源端到端的自动驾驶多模态模型框架,基于预训练的 MLLMs,处理复杂的视觉数据,推理驾驶场景
|
存储 运维 负载均衡
构建高可用性GraphRAG系统:分布式部署与容错机制
【10月更文挑战第28天】作为一名数据科学家和系统架构师,我在构建和维护大规模分布式系统方面有着丰富的经验。最近,我负责了一个基于GraphRAG(Graph Retrieval-Augmented Generation)模型的项目,该模型用于构建一个高可用性的问答系统。在这个过程中,我深刻体会到分布式部署和容错机制的重要性。本文将详细介绍如何在生产环境中构建一个高可用性的GraphRAG系统,包括分布式部署方案、负载均衡、故障检测与恢复机制等方面的内容。
668 4
构建高可用性GraphRAG系统:分布式部署与容错机制
手机号段查询城市免费API接口教程
此接口用于根据手机号段查询相关信息,包括城市、运营商、区号等。支持POST和GET请求,需提供用户ID、KEY及手机号段前7位作为参数。返回数据包含状态码、信息提示及详细归属信息。示例请求地址:https://cn.apihz.cn/api/ip/haoduan.php?id=88888888&key=88888888&numbers=1321993。接口免费,建议使用个人ID与KEY以独享调用频次。
|
机器学习/深度学习 并行计算 PyTorch
如何搭建深度学习的多 GPU 服务器
如何搭建深度学习的多 GPU 服务器
如何搭建深度学习的多 GPU 服务器
stm32f407探索者开发板(十四)——IO引脚复用和映射
stm32f407探索者开发板(十四)——IO引脚复用和映射
1651 0
|
Python
python 海龟画图tutle螺旋线
python 海龟画图tutle螺旋线
635 0