892浏览
查看: 892|回复: 1

[项目] 念出你的咒语,做一个语音识别的礼物盒

[复制链接]
本帖最后由 347945801 于 2021-1-4 09:43 编辑

前段时间,哈利波特与魔法石重制上映了,第一时间买了票去看,瞬间勾起勾起了我小时候对魔法世界的向往当初无比渴望有一只猫头鹰丢一封信到我家,我就能远离我的麻瓜父母的棍棒了(认真脸)
TueDecember-202012299811..png
这个念头持续到了高考结束,我终于不得不承认自己也是个麻瓜了
TueDecember-202012299992..png
但是在现代社会,麻瓜们有了更有趣的世界,我们日新月异的科技发展,让我们的生活变得越来越智能化,很多电影里要靠魔法实现的操作,我们也可以做到了
今天,我们就尝试用咒语打开我们的礼物盒吧

我们需要的材料
语音识别模块
树莓派4b
180度舵机
一个能给树莓派供电的5V电源


代码编写

首先我们需要将语音识别模块的python库放入树莓派中,用一个联网的树莓派,在命令行输入下方指令[mw_shl_code=applescript,false]git clone https://github.com/cdjq/DFRobot_ASR/[/mw_shl_code]

然后我们开始编写程序

  1. # -*- coding:utf-8 -*-
  2. import sys
  3. import time
  4. sys.path.append("../..")
  5. from DFRobot_ASR import *
  6. import RPi.GPIO as GPIO
  7. import signal  
  8. import atexit
  9. atexit.register(GPIO.cleanup)
  10. servopin = 22
  11. GPIO.setmode(GPIO.BCM)
  12. GPIO.setup(servopin,GPIO.OUT)
  13. angle=GPIO.PWM(servopin,50)
  14. angle.start(0)
  15. IIC_MODE         = 0x01            # default use IIC1
  16. IIC_ADDRESS      = 0x4e           # default iic device address
  17. asr = DFRobot_ASR(IIC_MODE ,IIC_ADDRESS)
  18. asr.begin(asr.LOOP,asr.MIC)
  19. '''在指令模式下,第一个词组为开始指令'''
  20. asr.addCommand("kai deng",0)     #开灯
  21. asr.addCommand("zhi ma kai men",1)             #芝麻开门
  22. asr.addCommand("guan bi ",2)             #关闭
  23. asr.addCommand("cheng du ji qu",3)              #成都极趣
  24. asr.addCommand("shang hai zhi wei ke ji",4)       #上海智位科技
  25. asr.addCommand("xiang gang",5)             #香港
  26. asr.addCommand("di ai fu ruo bo te",6)             #DFRobot
  27. #开始识别
  28. asr.start()
  29. print("start\r\n")
  30. while(1):
  31.     result = asr.read()
  32.     if result != -1 :
  33.         print("ASR result is:%d"%result)
  34.         if result == 1:
  35.             for dc in range(0,61,1):
  36.                 angle.ChangeDutyCycle(float(dc)/18+2.5)
  37.                 time.sleep(0.01)
  38.         elif result == 2:
  39.             for dc in range(60,-1,-1):
  40.                 angle.ChangeDutyCycle(float(dc)/18+2.5)
  41.                 time.sleep(0.01)
复制代码
程序设计为开机启动
具体方法如下
1、切换到root账户
  1. sudo su
复制代码
2、修改rc.local文件
  1. sudo nano /etc/rc.local
复制代码
在exit 0前添加命令
  1. sudo python /xx/xx/text.py
复制代码

硬件搭建 TueDecember-202012293705..png
用移动电源供电,一股脑的塞进礼物盒

接下来,就是见证奇迹的时刻

(这个魔杖来自路由器天线,是我能找到最像魔杖的棍子了,非麻瓜同学可以使用自己在奥利凡德购买的魔杖)

在真实的世界寻找魔法是一件很不靠谱的事情,在过去的魔幻的2020年就更不靠谱了,好在我们有科技来实现魔法
在这2021年之初,我们就用这个魔法小盒作为新年的礼物,祝大家新年快乐吧



pATAq  版主

发表于 2021-2-1 00:06:54

不错,这个好玩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2021 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail