树莓派高分贝报警器和键盘

本文介绍了作者在学习嵌入式课程时,使用树莓派进行的两个趣味项目——高分贝报警器和4*4键盘简陋钢琴。通过声敏传感器和GPIO接口实现报警器,利用4*4小键盘和音乐理论产生音符。项目展示了树莓派在硬件交互方面的基本应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:这学期选了嵌入式这门课,对于以后打算走web前后端开发路线的我感觉这门课对我来说主要的用处是学习操作系统,看了某内的视频课,学完了UnixC部分让我受益匪浅,但看到后面裸板开发和驱动程序部分让我停下了脚步,往后继续学的话要花费很多的时间精力,这里我做了妥协处理(不是专业方向别花太多时间),但为了这门课不摆烂或者说入个嵌入式的门我还是买了个树莓派写了些好玩的小项目。

写代码之前

1. 连接树莓派:一开始选择ssh连接,后来为了跟嵌入式搭点边有又学了串口连接(硬件层面的连接),但ssh真的太香了,开发过程中我还是选择ssh连接

2. GPIO口和高低电平:我是计算机专业的,不是电子,对这些只了解个皮毛,反正就是树莓派提供了GPIO口,可以input或者output高电平低电平,用来外接别的设备,代码也就类似于驱动程序来处理一些逻辑(听老师说驱动程序还要带什么操作系统,我这里的树莓派准确来说并不是纯裸板,并不能从专业的嵌入式编程,也就自己玩玩)

3. 环境:树莓派4b 一堆杜邦线 笔记本电脑网线接路由器 树莓派网线接路由器 无源蜂鸣器,有源蜂鸣器,面包板, LED小灯珠,声敏光敏传感器,4*4小键盘等

项目1:高分贝报警器

input:声敏传感器 output:无源蜂鸣器

简介:简单的IO

import RPi.GPIO as GPIO
import time
import signal

INPUT = 12
OUTPUT = 25

def sound(i, o, t):
    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(o, GPIO.OUT)
    GPIO.setup(i, GPIO.IN)
    
    def handler(signum, frame):
        GPIO.output(o, GPIO.LOW)
        exit(0)
    signal.signal(signal.SIGINT, handler)
    
    while 1:
        if GPIO.input(i) != 0:
            GPIO.output(o, GPIO.HIGH)
            time.sleep(t)
        else:
            GPIO.output(o, GPIO.LOW)
sound(INPUT, OUTPUT, 0.1)

项目2:简陋钢琴

input:4*4键盘 output:有源蜂鸣器

简介:这个是期中写的项目,期末现在写博客懒得改细节了 ,music类是根据12平均律输出音符,具体部分看乐理书去,keyboarg_music类是调用了music类根据键盘输入输出音符(这里最好键盘封装一个类,music封装一个,调用写一个程序好一点,不过我懒的改了),使用手册如下:

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

1-12为C到B
13降一个8度,14升一个8度,15回到中间的8度,16输出小星星(你可以自己改代码写曲子)

# Music.py
import RPi.GPIO as GPIO
import time
class Music:
    #  c1_  is c1#
    c1  = 33
    c1_ = 35
    d1  = 37
    d1_ = 39
    e1  = 41
    f1  = 44
    f1_ = 46
    g1  = 49
    g1_ = 52
    a1  = 55
    a1_ = 58
    b1  = 62
    
    c2  = 65
    c2_ = 69
    d2  = 73
    d2_ = 78
    e2  = 82
    f2  = 87
    f2_ = 93
    g2  = 98
    g2_ = 104
    a2  = 110
    a2_ = 117
    b2  = 123

    c3  = 131
    c3_ = 139
    d3  = 147
    d3_ = 156
    e3  = 165
    f3  = 175
    f3_ = 185
    g3  = 196
    g3_ = 208
    a3  = 220
    a3_ = 233
    b3  = 247

    c4  = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值