59浏览
查看: 59|回复: 0

【花雕体验】09 行空板硬件控制pinpong库的系列测试(之二)

[复制链接]
本帖最后由 驴友花雕 于 2022-6-19 14:58 编辑

行空板板身集成了光线传感器、麦克风、蜂鸣器、Wifi、蓝牙、加速度传感器、按键,正面配置有一块LCD彩屏,可实时呈现多种Python运行结果,包括文字、图片、视频,游戏画面,以及数据图表等。

17.1-193.jpg

【花雕体验】01上手行空板
https://mc.dfrobot.com.cn/thread-313417-1-1.html
【花雕体验】02 行空板简单使用
https://mc.dfrobot.com.cn/thread-313421-1-1.html
【花雕体验】03 搭建行空板开发环境之Mind+编程
https://mc.dfrobot.com.cn/thread-313427-1-1.html
【花雕体验】04 测试行空板常用功能
https://mc.dfrobot.com.cn/thread-313434-1-1.html
【花雕体验】05 搭建行空板开发环境之SSH连接与Jupyter编程
https://mc.dfrobot.com.cn/thread-313461-1-1.html
【花雕体验】06 搭建行空板开发环境之Thonny编程
https://mc.dfrobot.com.cn/thread-313465-1-1.html
【花雕体验】07 搭建行空板开发环境之VSCode编程
https://mc.dfrobot.com.cn/thread-313468-1-1.html
【花雕体验】08 行空板硬件控制pinpong库的系列测试(之一)
https://mc.dfrobot.com.cn/thread-313470-1-1.html
【花雕体验】09 行空板硬件控制pinpong库的系列测试(之二)
https://mc.dfrobot.com.cn/thread-313486-1-1.html


5、行空板板载资源的系列测试
(4)板载声音传感器(硅麦)
【科普知识点】声音广泛的存在于生活中,我们可以利用声音做出很多交互控制,例如楼道的声控灯。 通过声音传感器,你可以在检测头(Mic)前拍掌或大声说话,就可以通过声音来控制了灯了。传感器将声音在咪头的震动,转换为电信号输出。 声音传感器内置一个对声音敏感的电容式驻极体话筒或者硅麦。声波使话筒内的驻极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压。这一电压随后被转化成0-5V的电压,经过A/D转换被数据采集器接受。 声音传感器相当于一个话筒,它能感受到声音,并将感受到的声音大小转换成相应的模拟信号输出,被广泛应用于手机、录音机、声控照明灯、医疗器械、深海测量、交通干道噪声监测、工业企业噪声检测等场景中。


17.1-194.jpg

行空板上的麦克风并非普通的声音传感器,而是使用了高质量的硅麦,可以直接录音做语音识别,因此接到了CPU而非协处理上,所以获取环境声音强度不使用pinpong库,而使用unihiker库中Audio类获取。

获取环境音量 sound_level
注:环境音量范围为0%-100%,与电脑上麦克风音量类似。


  1. 语法:Audio对象.sound_level()
  2. 返回值: 音量大小
  3. 输入参数: 无
复制代码


17.1-195.jpg

【花雕体验】08行空板硬件控制pinpong库的系列测试(之二)
行空板板载资源的测试——Mind+代码编程
测试程序八:板载声音传感器(测量环境声音强度)

  1. #【花雕体验】08行空板硬件控制pinpong库的系列测试(之二)
  2. # 行空板板载资源的测试——Mind+代码编程
  3. # 测试程序八:板载声音传感器(测量环境声音强度)

  4. #  -*- coding: UTF-8 -*-
  5. import time
  6. from unihiker import Audio

  7. audio = Audio() #实例化音频
  8. print("板载声音传感器(测量环境声音强度)")

  9. while True:
  10.     value = audio.sound_level() #获取环境音量
  11.     print("环境音=%d"%(value)) #终端打印信息
  12.     time.sleep(1) #等待1秒 保持状态
复制代码

实验串口返回情况

17.1-196.jpg


【花雕体验】09行空板硬件控制pinpong库的系列测试(之二)
行空板板载资源的测试——Mind+图形编程
测试程序九:板载声音传感器(设定阙值的声控开关)

17.1-197.jpg

实验串口返回情况
17.1-198.jpg

(5)板载蜂鸣器
【科普知识点】蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“ZZG”、“LB”、“JD”等)表示。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。按其驱动方式的原理分,可分为:有源蜂鸣器(内含驱动线路,也叫自激式蜂鸣器)和无源蜂鸣器(外部驱动,也叫他激式蜂鸣器)。

17.1-199.jpg


行空板背面板载一颗蜂鸣器(无源),可以发出设定的音调。


17.1-200.jpg

【花雕体验】09行空板硬件控制pinpong库的系列测试(之二)
行空板板载资源的测试——Mind+代码编程
测试程序十:测试板载蜂鸣器(简单曲子)


  1. #【花雕体验】08行空板硬件控制pinpong库的系列测试(之二)
  2. # 行空板板载资源的测试——Mind+代码编程
  3. #测试程序十:测试板载蜂鸣器(简单曲子)

  4. #  -*- coding: UTF-8 -*-
  5. from pinpong.extension.unihiker import *
  6. from pinpong.board import Board,Pin

  7. Board().begin()
  8. print("测试板载蜂鸣器(简单曲子)")

  9. while True:
  10.     buzzer.pitch(392,2)
  11.     buzzer.pitch(392,2)
  12.     buzzer.pitch(440,2)
  13.     buzzer.pitch(440,2)
  14.     buzzer.pitch(392,2)
  15.     buzzer.pitch(494,2)
复制代码


【花雕体验】09行空板硬件控制pinpong库的系列测试(之二)
行空板板载资源的测试——Mind+图形编程
测试程序十一:连续播放三首内置的小曲段


17.1-201.jpg

(6)板载加速度传感器
【科普知识点】加速度传感器是一种能够测量加速度的传感器。通常由质量块、阻尼器、弹性元件、敏感元件和适调电路等部分组成。传感器在加速过程中,通过对质量块所受惯性力的测量,利用牛顿第二定律获得加速度值。根据传感器敏感元件的不同,常见的加速度传感器包括电容式、电感式、应变式、压阻式、压电式等。图为放大拍摄的板载加速度传感器芯片。


17.1-202.jpg


网络上大致搜索了一下,型号为ICM-20689,是六轴加速度计传感器芯片IC 封装QFN24 丝印IC2689。查到的介绍是:

ICM-20689 是一款 6 轴 MotionTracking 设备,将 3 轴陀螺仪、3 轴加速度计组合在一个小型 4x4x0.9mm(24 引脚 QFN)封装中。

大型 4K 字节 FIFO 可减少串行总线接口上的流量,并通过允许系统处理器突发读取传感器数据然后进入低功耗模式来降低功耗±250dps、±500dps、±1000dps 和 ±2000dps 的陀螺仪可编程 FSR,具有±2g、±4g、±8g和±16g可编程FSR的加速度计,EIS FSYNC 支持ICM-20689 包括片上 16 位 ADC、可编程数字滤波器、嵌入式温度传感器和可编程中断。 该器件的工作电压范围低至 1.71 V。通信端口包括 I²C 和 8 MHz 的高速 SPI。


17.1-203.jpg

行空板背面板载一颗6轴加速度陀螺仪传感器,可以分别读取加速度和陀螺仪的x、y、z的值

  1. 语法:
  2. 加速度:accelerometer.get_x() accelerometer.get_y() accelerometer.get_z() accelerometer.get_x()
  3. 陀螺仪:gyroscope.get_x() gyroscope.get_y() gyroscope.get_z()
  4. 返回值:加速度陀螺仪的值
  5. 输入值:无
复制代码


17.1-204.jpg


【花雕体验】09行空板硬件控制pinpong库的系列测试(之二)
行空板板载资源的测试——Mind+代码编程
测试程序十二:测试板载6轴加速度陀螺仪传感器


  1. #【花雕体验】09行空板硬件控制pinpong库的系列测试(之二)
  2. #行空板板载资源的测试——Mind+代码编程
  3. #测试程序十二:测试板载6轴加速度陀螺仪传感器

  4. # -*- coding: utf-8 -*-
  5. import time
  6. from pinpong.board import *
  7. from pinpong.extension.unihiker import *

  8. Board().begin()  #初始化
  9. print("测试板载6轴加速度陀螺仪传感器")

  10. while True:
  11.   print(accelerometer.get_x())                    #读取加速度X的值
  12.   print(accelerometer.get_y())                    #读取加速度Y的值
  13.   print(accelerometer.get_z())                    #读取加速度Z的值
  14.   print(accelerometer.get_strength())             #读取加速度强度(x、y、z方向的合力)
  15.   print(gyroscope.get_x())                        #读取陀螺仪X的值
  16.   print(gyroscope.get_y())                        #读取陀螺仪Y的值
  17.   print(gyroscope.get_z())                        #读取陀螺仪Z的值
  18.   print("------------------")
  19.   time.sleep(1)
复制代码


实验串口返回情况

17.1-205.jpg

【花雕体验】09行空板硬件控制pinpong库的系列测试(之二)
行空板板载资源的测试——Mind+图形编程
测试程序十三:测试板载6轴加速度陀螺仪传感器


17.1-206.jpg

实验串口返回情况

17.1-207.jpg

实验场景图


17.1-208.jpg


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

本版积分规则

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

硬件清单

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

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

mail