• 树莓派通过语音模块下发指令点亮小灯泡


    树莓派通过语音模块下发指令点亮小灯泡

    使用的语言是Python。语音模块使用串口连接树莓派,RGB灯连接在树莓派23、24、25号引脚上。
    语音模块设置关键词,识别关键词串口通信控制树莓派点亮对应颜色的LED灯。

    树莓派3代B+引脚图

    语音模块

    代码

    
    import serial  # 导入串口库
    import time  # 导入时间库
    import RPi.GPIO as GPIO  导入树莓派引脚控制库
    
    GPIO.setmode(GPIO.BCM)  # (强制的)指定一种编号规则
    GPIO.setwarnings(False)  # 禁用警告
    GPIO.setup(23, GPIO.OUT)  # 初始化设置23引脚为输出
    GPIO.setup(24, GPIO.OUT)  # 初始化设置24引脚为输出
    GPIO.setup(25, GPIO.OUT)  # 初始化设置25引脚为输出
    
    GPIO.output(23, GPIO.LOW)  # 初始化设置23引脚为低电平输出(有些树莓派默认高电平输出)
    GPIO.output(24, GPIO.LOW)  # 初始化设置24引脚为低电平输出(有些树莓派默认高电平输出)
    GPIO.output(25, GPIO.LOW)  # 初始化设置25引脚为低电平输出(有些树莓派默认高电平输出)
    
    
    ser = serial.Serial("/dev/ttyUSB0",9600)  # 打开树莓派串口 ttyUSB0,波特率是9600
    ser.flushInput()
    # ser.write("play,001,$")
    
    def main():
        while True:
            count = ser.inWaiting()  # 读取串口缓存数据大小
            if count !=0:  # 如果串口缓存数据量不为0
                print(count)  # 打印一下有多少
                recv = int.from_bytes(ser.read(count), byteorder='big', signed=False)  # 把读到的byte字节流转换为int赋值给recv
                print(recv) 
                print(type(recv))
                if(recv == 2):  # 如果recv等于2
                    GPIO.output(23, GPIO.HIGH)  # 23号引脚输出高电平
                    GPIO.output(24, GPIO.LOW)  # 24号引脚输出低电平
                    GPIO.output(25, GPIO.LOW)  # 25号引脚输出低电平
                    print("hong deng")
                if(recv == 3):
                    GPIO.output(23, GPIO.LOW)
                    GPIO.output(24, GPIO.LOW)
                    GPIO.output(25, GPIO.HIGH)
                    print("lv deng")
                if(recv == 4):
                    GPIO.output(23, GPIO.LOW)
                    GPIO.output(24, GPIO.HIGH)
                    GPIO.output(25, GPIO.LOW) 
                    print("lan deng")
                ser.flushInput()
            time.sleep(0.1)
            
    
    if __name__ == '__main__':
        main()
    
    
    
  • 相关阅读:
    C++ Operate FTP
    md /mdd /ml /mt/mtd
    从MySpace基于.NET平台的六次重构经历,来感受分布式系统。
    分布式缓存BeIT Memcached简介
    Asp.Net应用程序中为什么要MachineKey?如何生成MachineKey?
    马云飞机上写长贴:再一次和新同事们谈谈看法
    memcached完全剖析
    ESET ESS/EAV 5 正式版 中英文32/64位 (注册版) 下载
    Windows下的.NET+ Memcached安装
    在 ASP.NET 環境下使用 Memcached 快速上手指南
  • 原文地址:https://www.cnblogs.com/wjw1014/p/12013395.html
Copyright © 2020-2023  润新知