电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
树莓派综合项目3:AI视觉机械臂小车(一)蜂鸣器
分 享
扫描二维码分享
树莓派综合项目3:AI视觉机械臂小车(一)蜂鸣器
树莓派
AI视觉机械臂
智能小车
张国平
关注
发布时间: 2021-03-30
丨
阅读: 1212
## 一、介绍 [树莓派综合项目2:智能小车(六)黑线循迹](https://www.icxbk.com/article/detail?aid=2055) [树莓派基础实验](https://www.jianshu.com/nb/41246217) 在树莓派项目2中,我学到了很多东西,主要是通过实践掌握了树莓派小车的无线电控制和自动化避障控制,虽然不是特别的高深和难懂,但是增强了我学习的动力和信心,万丈高楼平地起,2018年6月买的小车现在才学习吸收完,原因还是先学完基础实验内容后,才能学懂项目2,推及以后更难的内容,若没有项目2做铺垫,估计也学不来,更不用说自己创作了。 目前我仍处于学习的初级阶段,正向学习的中级阶段迈进。项目2学习完后,下一步做什么呢?我有两个想法: 一是学物联网的自动化控制。我对农业很感兴趣,也喜欢养花种菜,想做智能温室的树莓派物联网,但是我家里没有院子,房间也小,做个mini的都困难; 二是AI视觉和机械臂。在各类树莓派创客书籍中发现,视觉识别是一个主要内容,是信息输入的重要方式,而机械臂是机器人输出、工作的重要方式,比如农业采摘机器人。 于是我选择了继续做机器人,在网上慢慢选了一个月的时间,终于找到一款适合我现在的套件。 ![](https://cf01.ickimg.com/bbsimages/202103/1a13b7fbbc8c29fb5a2c447c54291395.jpg) 做视觉处理对硬件的计算力有要求,为了让运行更流畅,我选择了树莓派4B 8G版本,整个套件花了我1777大洋,虽然有点心疼,但是投资学习是不会亏的。 ![](https://cf01.ickimg.com/bbsimages/202103/2ab50cb00c1e7b9a36af9ffbdbf1fec8.jpg) 如果不是4B8G的主板,价格会少很多的,同学们可以自己选择。或者看我的文章就可以了,欢迎大家关注我,点赞哦!我会把这套学习资料吃透后分享给大家,如果能再开发,做一个草莓采摘机器人就更棒了! ![](https://cf01.ickimg.com/bbsimages/202103/4a9946c5cdea132207f0eb80737d8a9d.jpg) 与项目2的小车做对比要大许多,操作升级、再开发的空间很大。 ![](https://upload-images.jianshu.io/upload_images/12472291-e1648a1f62332aec.gif?imageMogr2/auto-orient/strip) ## 二、组件 ![](https://cf01.ickimg.com/bbsimages/202103/3a2d7cad92a71aa2276c9b1b0bf7505f.jpg) ## 三、实验原理 ![](https://cf01.ickimg.com/bbsimages/202103/be2289a35b2fefc0423a5cb40a3fb7db.jpg) 看过我项目2的同学,相信对小车控制这部分已经很熟悉了,但项目2中的python代码都是我自己写的,在这个套件中我们来学习下专业人士的代码是怎么写的。 ![](https://cf01.ickimg.com/bbsimages/202103/d7de34b9cbf1265aabdd9d88543c6250.jpg) 这个课程的第一个实验就是蜂鸣器实验,作为开局实验是比较基础的,就是不知道后面的复杂实验里是否会用到蜂鸣器。 ![](https://cf01.ickimg.com/bbsimages/202103/2226a8426bd7958b709d617ca0fe1d51.jpg) 我的基础实验里做过有源蜂鸣器和无源蜂鸣器,它的基础原理大家可以点击参考: [树莓派基础实验9:蜂鸣器实验](https://www.jianshu.com/p/221ff6bf4f13) 本实验中使用的是无源蜂鸣器,和电磁扬声器一样,需要接在音频输出电路中才能周期性地振动发声。只要输出不同频率的PWM波,即可发出不同的音符,不同的音符组合起来就是一个曲子了。 ![](https://cf01.ickimg.com/bbsimages/202103/435f335a825662939e530fcb1bf70be2.jpg) 在树莓派功能转接板上看到,蜂鸣器是直接焊接在板子上的,连接的板载模式第11针,不用像基础实验中一样去接线,但初学者最好看一下基础实验9,学习下基本接线方法。 ## 四、实验步骤 **第1步:** 蜂鸣器焊接在板子上,不用连接电路。这里说下树莓派4B8G是64位的操作系统,与4G、2G版本不能混用。 **第2步:** 编写程序。原始代码为python2版本,为适应发展,我还是转换成了python3版本,并有中文注释,更详细讲解请参考[树莓派基础实验9:蜂鸣器实验](https://www.jianshu.com/p/221ff6bf4f13)。 ```python #!/usr/bin/env python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time Buzzer = 11 CL = [0, 131, 147, 165, 175, 196, 211, 248] # 低音C调音符对应的频率 CM = [0, 262, 294, 330, 350, 393, 441, 495] # 中音C调音符对应的频率 CH = [0, 525, 589, 661, 700, 786, 882, 990] # 高音C调音符对应的频率 song_1 = [ CM[3], CM[5], CM[6], CM[3], CM[2], CM[3], CM[5], CM[6], # 歌曲1的音符 CH[1], CM[6], CM[5], CM[1], CM[3], CM[2], CM[2], CM[3], CM[5], CM[2], CM[3], CM[3], CL[6], CL[6], CL[6], CM[1], CM[2], CM[3], CM[2], CL[7], CL[6], CM[1], CL[5] ] beat_1 = [ 1, 1, 3, 1, 1, 3, 1, 1, # 歌曲1的节拍, 1 指 1/8 拍 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3 ] song_2 = [ CM[1], CM[1], CM[1], CL[5], CM[3], CM[3], CM[3], CM[1], # 歌曲2的音符 CM[1], CM[3], CM[5], CM[5], CM[4], CM[3], CM[2], CM[2], CM[3], CM[4], CM[4], CM[3], CM[2], CM[3], CM[1], CM[1], CM[3], CM[2], CL[5], CL[7], CM[2], CM[1] ] beat_2 = [ 1, 1, 2, 2, 1, 1, 2, 2, # 歌曲2的节拍, 1 指 1/8 拍 1, 1, 2, 2, 1, 1, 3, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 3 ] def setup(): GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) # 根据物理位置对gpio进行编号 GPIO.setup(Buzzer, GPIO.OUT) # 设置引脚模式为输出 global Buzz # 指定一个全局变量来替换GPIO.PWM Buzz = GPIO.PWM(Buzzer, 440) # 440 是初始频率 Buzz.start(50) # 启动蜂鸣器PWM50%的占空比 def loop(): while True: print('\n Playing song 1...') for i in range(1, len(song_1)): # 播放歌曲1 Buzz.ChangeFrequency(song_1[i]) # 沿着歌曲的音符改变频率 time.sleep(beat_1[i] * 0.5) # 一个节拍为0.5s的时长 time.sl
eep(1) # print('\n\n Playing song 2...') for i in range(1, len(song_2)): Buzz.ChangeFrequency(song_2[i]) time.sleep(beat_2[i] * 0.5) def destory(): Buzz.stop() # 停止PWM GPIO.output(Buzzer, 1) # 将蜂鸣器引脚设置为输出高电平 GPIO.cleanup() # 释放资源 if __name__ == '__main__': # 程序从这里开始 setup() try: loop() except KeyboardInterrupt: # 当输入'Ctrl+C'时, 函数destroy()会被执行 destory() ``` ![](https://cf01.ickimg.com/bbsimages/202103/5db2355d16c0676c1a11407725a95267.jpg)
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
2
)
张国平
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交