嵌入式人工智能(39-基于树莓派4B的震动传感器和霍尔传感器)

news2025/1/16 15:59:51

这两个传感器实验比较简单,也都属于力传感器,就放一起做了。

1、震动传感器

震动传感器是一种用于检测和测量物体震动、振动和冲击的设备。它通常由一个敏感元件和一个信号处理单元组成。敏感元件可以是压电材料、光电材料、加速度传感器等。当物体发生震动时,敏感元件会产生相应的电信号,信号处理单元会对这个信号进行放大、滤波和解码等处理,最终将震动信号转换为可供人们理解和分析的信息。震动传感器广泛应用于地震监测、机械设备故障诊断、车辆监测、安防系统等领域。

在震动传感器模块中,导电的振动弹簧和触发销被精确地放置在开关体中,并且通过黏合剂结合
到固化位置。产品不震动时,弹簧和触发销不接触,震动传感器模块呈闭合导通状态,输出端输出低电平,绿色指示灯亮。产品震动时,弹簧就会摇动并与触发器引脚接触,产生触发信号,震动传感器呈断开状态,输出端输出高电平,绿色指示灯不亮。因此,只需要通过树莓派检测输出端电平的高低就能检测出环境是否有震动。

从上图看震动传感器只有一个DO数字信号输出,正好接在树莓派的任一GPIO口。VCC和GND接3.3V和GND。我们也做了很多传感器实验,关于传感器VCC接5V还是3.3V我们总结下,如果不知道接几V,最好的办法是查数据手册。如果不想查也没有关系,一般芯片或器件都支持3.3V-5V,我们可以先接3.3V,如果发现总线识别不到设备,或者传感器效果比较差那就换5V供电。

2、实验代码与现象

import time
import RPi.GPIO as GPIO
import TM1638
import math
# 设置使用的引脚
GPIO_PIN = 37
tm=TM1638.TM1638(stb=36,clk=38,dio=40) 
tm.brightness(2)

def init():
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(GPIO_PIN, GPIO.IN)

def main_loop():
    init()
    shock_num = 0
    while True:
        if GPIO.input(GPIO_PIN) == 1:
            print("检测到震动!")
            shock_num = shock_num+1
            tm.leds(0b11111111)
            time.sleep(0.5)
        else:
            print("未检测到震动")
            tm.leds(0b00000000)
            time.sleep(0.5)
        tm.number(int(shock_num))


if __name__ == '__main__':
    try:
        main_loop()
    except KeyboardInterrupt:
        print("程序结束!")
    finally:
        tm.clear()
        GPIO.cleanup()

如果有震动,统计下震动的次数,显示到数码管上面,产生震动LED灯亮,不震动LED灭。

这里多了一个扩展板TM1638,它是一个LED、按键、数码管的集成板,节省IO口。同学们不用管它,后面我们会介绍。当发生震动的时候,震动传感器的灯会灭,端口收到高电平,这和有的传感器不一样。

3、霍尔传感器

霍尔传感器(Hall sensor)是一种基于霍尔效应原理工作的传感器。霍尔效应是指在恒定磁场作用下,导体中通过电流时,垂直于电流方向的方向产生电势差。基于这个效应,在霍尔传感器中,通过将电流引入导体中,当有磁场通过时,会在导体两边产生电势差,可以通过这个电势差来检测磁场的强度和方向。

霍尔传感器具有灵敏度高、反应速度快、体积小、功耗低等特点,广泛应用于测量、检测、自动控制等领域。常见的应用包括车速传感器、磁编码器、接近开关、电流传感器等。

在汽车领域,霍尔传感器通常用于测量车速,通过检测车轮上的磁铁,可以确定车辆的速度和里程。另外,霍尔传感器也被用于测量发动机的转速、油门位置等参数,以及车身稳定控制系统中的车辆姿态和转向角度等。

总之,霍尔传感器是一种重要的传感器技术,具有广泛的应用前景。

这个程序代码和上面比较类似,如果检测到磁场,则DO产生低电平信号输出到GPIO。我手头没有磁铁,找了块机械硬盘,机械硬盘里面有磁铁,可以检测到磁场。同学们可以试试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1968007.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

day 18流的定位、文件IO以及Linux系统中时间的获取

流的定位 偏移量:读和写都在偏移量的位置进行 文件IO 相对于标准IO来说,文件IO直接在Linux的内核中操作,也更加的简洁精炼 对文件的操作也是三个部分 1.打开文件 open 2.读写文件 read write 3.关闭文件 close 还有一些其他的函数接口…

Msf安装

环境安装 渗透测试:CentOS 7 环境下 MSF 工具部署(Metasploit 渗透测试框架安装)_msfconsole安装-CSDN博客https://blog.csdn.net/zatongtong/article/details/135744217?ops_request_misc&request_id&biz_id102&utm_term%E6%9…

stack和list

前言 stack和list的使用就不讲了&#xff0c;讲一下模拟实现&#xff0c;然后讲一下deque&#xff0c;最后讲一下优先队列 1. stack的模拟实现 template<class T,class container>//这个container是vector&#xff0c;或者list或者deque&#xff08;后面会说&#xff0…

基于树莓派的收银系统-KwickPOS

基于树莓派的收银系统在繁忙的餐厅和零售场所大受欢迎 低成本、功能强大、紧凑和稳定的Raspberry Pi计算模块提供平滑的收银解决方案&#xff0c;为北美和中美洲的数千名KwickPOS客户提供不间断的运行时间。 解决方案 Compute Module 3 Compute Module 4 企业规模 中小企业…

java之抽象类以及如何优化

抽象类的作用是什么: 当我们抽取共性时候,无法确定方法体,就把方法定义为抽象的,强制让子类按照某种格式重写,抽象方法所在的类,必须是抽象类.我们先定义一个抽象类 ,abstract的意思就是抽象类, 一般来说,在抽象类里面定义的方法也是抽象方法. public abstract class Animal {p…

【Linux操作系统】关于系统中内存文件与进程的关系以及文件描述符fd、重定向的理解

目录 一、关于文件和进程关系的简介二、了解文件操作的系统接口和C语言文件操作接口1.C语言文件操作接口2.文件操作的系统接口 三、关于C语言接口和系统接口的关系四、文件描述符&#xff08;fd&#xff09;1.FILE* 结构体2.文件描述符表&#xff08;fd的本质&#xff09;3.文件…

透明显示屏方案介绍

透明显示屏方案是一种创新的显示技术解决方案&#xff0c;它结合了透明材料和高性能显示技术&#xff0c;实现了在显示内容的同时保持屏幕背后物体或场景的可见性。以下是对透明显示屏方案的详细介绍&#xff1a; 一、技术原理 透明显示屏方案主要采用了LED透明屏和OLED透明屏两…

基于PHP+MySQL组合开发的微信活动投票小程序源码系统 带完整的安装代码包以及搭建部署教程

系统概述 在当今数字化时代&#xff0c;微信作为社交媒体的巨头&#xff0c;为企业和个人提供了丰富的互动营销平台。其中&#xff0c;投票活动作为一种有效的用户参与和互动方式&#xff0c;被广泛应用于各种场景。为了满足这一需求&#xff0c;我们推出了一款基于PHPMySQL组…

zabbix“专家坐诊”第249期问答

问题一 Q&#xff1a;zabbix server服务每次重启监控主机就会触发大量的“10分钟未获取到数据”的告警&#xff0c;同时还会触发zabbix的history进程繁忙的告警。&#xff08;后面检查实际上监控主机在告警时间段内是有数据的&#xff09;感觉是server一重启&#xff0c;数据库…

Python | ValueError: invalid literal for int() with base 10: ‘example’

Python | ValueError: invalid literal for int() with base 10: ‘example’ 在Python编程中&#xff0c;遇到ValueError: invalid literal for int() with base 10: example这样的错误通常意味着你试图将一个字符串转换为整数&#xff0c;但该字符串包含非数字字符。这种错误…

美团 AIGC产品经理面经(已拿 offer)

背景&#xff1a;211本科毕业&#xff0c;毕业之后在北京一家中型电商公司做了3年商家后台产品经理&#xff0c;目前通过老薛的朋友关系拿到了美团的offer。 目前还有几家在面试流程中&#xff0c;继续加油&#x1f4aa; 美团AIGC产品面经-业务面 &#x1f4a5;1、自我介绍&a…

找不到vcruntime140_1.dll,无法执行此代码

电脑运行某些软件提示&#xff1a;由于找不到vcruntime140_1.dll,无法继续执行代码 解决方法 1、下载这个软件 https://download.csdn.net/download/szdenny/89605688 2、 通过这个网址下载软件修复&#xff1a;http://xn--dll-8n0e103b00dgy4e.site/

前端:Vue学习 - 智慧商城项目

前端&#xff1a;Vue学习 - 智慧商城项目 1. vue组件库 > vant-ui2. postcss插件 > vw 适配3. 路由配置4. 登录页面静态布局4.1 封装axios实例访问验证码接口4.2 vant 组件 > 轻提示4.3 短信验证倒计时4.4 登录功能4.5 响应拦截器 > 统一处理错误4.6 登录权证信息存…

ArcGIS导出的shp不带prj文件怎么办?

0序 遇到了好多个做测绘的朋友&#xff0c;拿到的shp文件都没有prj文件&#xff0c;在图新地球当中无法加载。 而prj文件是其他软件解析shp&#xff0c;和地图做叠加的核心。否则就不知道shp要素的坐标按照什么坐标去解析。 经过排查发现&#xff0c;大部分是在arcgis中导出sh…

数据同步策略概览

数据同步在业务开发中比较普遍&#xff0c;例如 订阅MySQL的binlog将数据同步至异构数据库。数据同步方案需要考虑一下几点&#xff1a; 数据实时性要求数据量级是否有数据转换逻辑 可分为两种模式 发布订阅模式&#xff1a;分为订阅数据库log还是订阅应用层发的消息点对点模…

适合印刷企业使用的MES管理系统具备哪些特点

在当今竞争激烈的印刷行业中&#xff0c;提高生产效率、优化资源配置、确保产品质量与交期已成为企业生存与发展的关键。为此&#xff0c;引入一套高效、智能的印刷企业MES管理系统显得尤为重要。MES管理系统作为连接企业资源计划ERP系统与车间生产现场的桥梁&#xff0c;其设计…

Linux下的nc命令:网络工具的瑞士军刀

在 Linux 系统中&#xff0c;有许多强大的网络工具可用于网络连接、数据传输和端口扫描。其中一个非常强大的工具是 nc&#xff0c;也称为 Netcat&#xff0c;被称为网络工具的瑞士军刀&#xff0c;因为它可以执行各种网络任务。本文将深入探讨 nc 命令的使用方法&#xff0c;提…

第127天:内网安全-隧道搭建穿透上线FRPNPSSPPNgrokEW 项目

目录 案例一&#xff1a;内网穿透-Ngrok-入门-上线 案例二&#xff1a;内网穿透-Frp-简易型-上线 案例三&#xff1a; 内网穿透-Nps-自定义-上线 案例四&#xff1a;内网穿透-Spp-特殊协议-上线 案例一&#xff1a;内网穿透-Ngrok-入门-上线 这里我是用了一台云服务器&…

zy青岛实训day19 8/1

接着昨天的 npm run serve 构建项目 npm run build ls ls dist/ vim dist/index.html [rootweb eleme_web]# cd /usr/local/nginx/conf/ [rootweb conf]# ls 将静态的项目移动到nginx中 [rootweb nginx]# cd conf.d/ [rootweb conf.d]# ls qd.conf [rootweb conf.…

信息学奥赛初赛天天练-52-CSP-J2019基础题3-抽屉原理、鸽巢原理、乘法原理、二叉树遍历、前序遍历、中序遍历、后序遍历

PDF文档公众号回复关键字:20240801 2019 CSP-J 基础题3 单项选择题&#xff08;共15题&#xff0c;每题2分&#xff0c;共计30分&#xff1a;每题有且仅有一个正确选项&#xff09; 11 新学期开学了&#xff0c;小胖想减肥&#xff0c;健身教练给小胖制定了两个训练方案。 …