第十一节:C#工业控制编程基础--声音采集实验

第十一节:C#工业控制编程基础–声音采集实验

文章目录

一、实验目的:

学习Chart控件以及功能板上声音采集模块的使用。

二、实验内容:

利用单通道连续采集将声音转换成数字信号生成波形图

三、实验步骤:

1.打开Visual Studio 2013,新建窗体应用程序项目,配置好板卡dll文件。
2.在窗体中放入控件,对控件进行布局排版,并修改他们的Name属性和Text属性。

如图1:

在这里插入图片描述

其中,Chart控件可以在工具箱搜索栏进行搜索得到。如图2:
在这里插入图片描述

3.选中Chart控件,在其属性栏中找到Series属性,点击右侧的扩展按钮,如图3。

在这里插入图片描述
在弹出的“集合编辑器”中找到图表→ChartType→Line,如图4。

在这里插入图片描述

4.继续在属性栏中找到Titles属性,点击右侧扩展按钮,如图5。

在这里插入图片描述
在弹出的“Title集合编辑器”中选择外观→(Text),在属性框内设定好图表名字。
在这里插入图片描述
然后就可以看到设定好的名字显示在Chart控件上了。如图7。
在这里插入图片描述

5.双击“关闭板卡”按钮进入编程界面,在public partial class Form1 : Form内引入本次要用的函数:OpenUsbV12()、CloseUsbV12()、ADContinuConfigV12()、ADContinuStopV12()、ReadAdBuffV12()、GetAdBuffSizeV12()。并在最上方using列写入using System.Runtime.InteropServices;代码如图8。

在这里插入图片描述

6.在“关闭板卡”按钮事件内顺序写入停止AD采集函数、关闭板卡函数,退出当前窗体函数。代码如图9。

在这里插入图片描述

实验所用开发板套件包含数据采集卡HK_USB_DAQ V1.5、功能板模块和开关型红外避障模块,适合教学、学习。

7.双击“启动板卡”按钮,在该按钮点击事件前定义一个整形变量w,在点击事件内写入一个定义一个整形变量x并写入一个if判断:

当w值为0:用函数OpenUsbV12()打开开发板并将其函数值赋值给变量x,并再写入一个if判断:当x值等于0,用MessageBox显示“启动成功”,将按钮的Text属性设置为“暂停”,将w赋值为1。反之,用MessageBox显示“启动失败”。
当w值不为0时:将w重新赋值为0,关闭开发板,将按钮的Text属性设置为“继续”。代码如图10。
在这里插入图片描述

8.在“开始声音采集”按钮事件内设定波形图的各项参数,并将NumericaUpDown控件的值转换后赋给AD连续采集函数,用于设定采集端口。本次实验我们使用单端采集,量程代码为1,连续采样频率为20000。最后启动timer1。代码如图11。

在这里插入图片描述

9.在“停止声音采集”按钮中写入停止AD采集函数和timer1停止函数,代码如图12。

在这里插入图片描述

10.在timer1事件内定义一个int型变量y,并将GetAdBuffSizeV12()函数采集得到的值赋给变量y。接着可以用TextBox控件显示y值。
11.写入一个unsafe关键字,在其中定义一个int型变量i,一个float型数组z,内含4096份数据。
12.将数组z内的元素托管给一个指针d。在进行这项操作时,要加上fixed函数。
13.写入一个if判断,当y值大于等于4096时执行该判断内容。
14.If判断内容:调用ReadAdBuffV12()函数,将读出的数据存入d中,一次性存入4096份。并写入一个for循环,令i从0开始计数4096次。最后将4096份数据逐一显示在Chart控件上。
15.步骤10~14代码如图13。

在这里插入图片描述

16.连接采集板5V、AD1、GND和功能板上的声音采集区①②③,连接采集板上JP1(量程范围选择±10v),此时量程代码为1。
17.接通板卡电源,启动程序,开始声音采集(可以尝试在声音采集区域周围发出一些声响),效果如图14。

在这里插入图片描述
注:由于篇幅有限,Chart控件展示区域较小,可根据实际需求自行调整控件大小。

四、实验结果:

成功采集声音并生成波形图。

五、注意事项:

1.Chart控件的清空函数:chart1.Series[0].Points.Clear();一定要记得在for循环前写入,否则每次写入数据都会在之前原有的基础上叠加,造成卡顿。
2.由于ADContinuConfigV12()函数的采样频率被设定为了20000Hz。即1ms秒采集20份数据,所以相对应的timer1触发的事件值应设为200ms。触发一次即采集:200*20=4000(份)数据,与ReadAdBuffV12()函数一次性读取4096份数据上数量相近。如图15。

在这里插入图片描述

点击此处下载第十一节:基于C#使用开发板声音采集实验配套指导文档及源码文件包

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值