stm32F4应用笔记(一)利用蜂鸣器制作的超声波自拍神器

本文介绍了如何使用STM32F4开发板配合蜂鸣器创建一个超声波自拍神器。通过发送特定频率的PWM信号,手机APP接收后执行拍照操作。详细讲解了所需的PWM频率、占空比设置,以及遇到的问题和解决方案。

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

简单介绍

超声波自拍神器就是一个用来自拍的东西,下面是一个网页上的广告:
http://it007.com/thread-1699349-1-1.html
简单说就是,如果有一个自拍杆,然后想要自拍的时候,按下开关,然后发出一个超声波,手机接收到了之后就会拍照了——此外,我们还需要下载一个手机APP,叫做Airshooting。

参考资料

我是在某位大神的博客上看到有这么个东西的。
地址如下:
http://www.cirmall.com/circuit/1484/(ST大赛三等奖作品)超声波自拍神器#/details?2

方案介绍

首先手机先到网上下载一个APP(Airshooting),然后打开APP,利用STM32 NUCLEO-F072RB开发板的定时器产生一定频率PWM信号,用来控制蜂鸣器发出声音,当手机接收到蜂鸣器发出的声音后,会执行拍张操作,如果你的手机有前摄像头,还可以控制手机执行切换摄像头操作。

(1)拍照的PWM频率为:先发送250ms的频率为15870Hz的PWM信号(占空比没什么要求,50%左右即可);后发送250ms的频率为15617Hz的PWM信号。这个频率精确度越高,控制的距离就越远。
(2)切换的PWM频率为:先发送250ms的频率为16526Hz的PWM信号(占空比没什么要求,50%左右即可);后发送250ms的频率为15620Hz的PWM信号。

实物图

我也是拿面包板搭建的电路,用的是正点原子的STM32F4开发板。
因为我用的是开发板,所以很多代码都是现成的,自己需要改的部分很少。用的是TIM14_CH1通过PF9端口输出PWM信号。蜂鸣器串联了一个1K电阻,然后一端连着PF9引脚,另一端接地。电路非常简单。
这里写图片描述

主要的代码片段

PWM的频率和占空比公式
频率:
//Fpwm = 时钟频率 / ((arr+1)*(psc+1))(单位:Hz)
占空比:
//duty circle = TIMxx->CCR1 / arr(单位:%)

int main(void)
{  
    Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhz 
    
STM32 NUCLEO-F072RB开发方案设计——超声波神器 对于从来没有玩过安卓系统的同学们是不是很想也体会到安卓给我们带来的乐趣了,那是不是没学安卓,就不能控制手机呢?就不能体会到安卓给我们带来的乐趣呢?除了蓝牙和wifi等外,我们还能不能有种更简单的、更有创意的、更实用的方案,让大部分电子爱好者体会用STM32控制手机的乐趣了,答案是肯定的。 某宝上很多自神器,有蓝牙控制和线控等,这次我将向大家介绍种最近比较流行的超声波神器,方便实用,成本低。 1.方案介绍: 首先手机先到网上下载个APP(Airshooting),然后打开APP,利用STM32 NUCLEO-F072RB开发板的定时器产生定频率PWM信号,用来控制蜂鸣器发出声音,当手机接收到蜂鸣器发出的声音后,会执行张操作,如果你的手机有前摄像头,还可以控制手机执行切换摄像头操作。 2.工作原理: 本设计主要重点是要调节PWM的频率。 (1)照的PWM频率为:先发送250ms的频率为15870Hz的PWM信号(占空比没什么要求,50%左右即可);后发送250ms的频率为15617Hz的PWM信号。这个频率精确度越高,控制的距离就越远。下图是我实际测量的频率,由于逻辑分析仪比较差,测量难免有误差。 (2)切换的PWM频率为:先发送250ms的频率为16526Hz的PWM信号(占空比没什么要求,50%左右即可);后发送250ms的频率为15620Hz的PWM信号。 只要让STM32开发板发出如上的PWM信号,控制蜂鸣器发声,那么手机就能接收到信号,执行照和切换镜头操作。 3.原理图 这个设计的原理图相当简单,学过单片机都用过,只需要个简单的蜂鸣器电路即可,由于比较简单,我就用面包板搭建了。电路图如下: 除了以上电路,还用到了STM32 NULCEO-F072RB上的用户按键和LD2。 功能介绍: 考虑到本设计要作为手持设备,因此设置了上电后,板子进入睡眠模式,此时板子功耗低,节约电量。打开手机APP,按下板子上的用户按键,LD2点亮0.5s后熄灭,2s左右后,手机执行张功能;按下S1按键,LD2点亮0.5s后熄灭,2s左右后,手机执行切换镜头功能; 4.源代码 见附件 5..实物图 由于电路比较简单,就直接用面包板了,献丑了 实际测试发现,在空旷的地方,最远传输距离3M左右。调节PWM的精确度和增大蜂鸣器的功率,传输距离变远,由于最近比较忙,就没再调试下去了.......... 6.运行视频 7.注意事项 这里由于需要比较精准的PWM,因此我在开发板上焊接了个8MHz的外部晶振和两个22PF的瓷片电容。 蜂鸣器我使用的是3V蜂鸣器,用5V蜂鸣器传输距离会比较近。 以上是我的参赛方案,虽然比较简单,淘宝上也有卖,但是我还没发现哪个网站有介绍我这个作品的,算是首创吧..........或许是因为我是个学渣,没发现吧,大牛勿喷哈.........
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值