【掌控板】5、获取声音数值(优化)

前言

结合4的十进制转换,将掌控板的sound数据转换为10进制字符串显示,并存放到txt文件中。

代码

# MindPlus
# mpython
from mpython import *
import os
a=0
path="test\\b.txt"
xxx=open(path,"w")
num='0'

#print('10/3 = ',10/3)      3.333333
#print('9/3 = ',9/3)        3.0
#print('10//3 = ',10//3)    3
#print('10%3 = ',10%3)      1

def int2char (x):
  numbers = {
    0 : '0',
    1 : '1',
    2 : '2',
    3 : '3',
    4 : '4',
    5 : '5',
    6 : '6',
    7 : '7',
    8 : '8',
    9 : '9',
    10 : 'a',
    11 : 'b',
    12 : 'c',
    13 : 'd',
    14 : 'e',
    15 : 'f',
  }
  return numbers.get(x,None)


# 十进制int转十进制字符串
def int_2_dec( value , key_num):
    a=value%key_num
    result=''
    #print("value",value)
    if (a == 0) & (value == 0 ):
      result = '0'
      return result
    #print("result",result)
    #print("a!=0",a!=0)
    #print("value > 0",value > 0)
    while True  :
        if a == 0:
          if value <= 0:
            break
        #print("enter")
        #print("a",a)
        temp=int2char(a)
        #temp=hex(a).replace('0x','')
        result=temp+result
        #print("result",result)
        value=(value-a)//key_num
        #print("value",value)
        a=value%key_num
        #print("a",a)
    return result
  
#print("result",int_2_dec(10))


while True:
  #print(a)
  #oled.fill(0)
  y=sound.read()
  #print(type(y))
  #print("y = ",int_2_dec(y))
  value=int_2_dec(y,10)
  num=int_2_dec(a,16)       #使用16进制,因为空间不够
  value=num+'_'+value
  print("value",value)

  # 用于显示两列数据
  x=a%8
  if x == 0:
    oled.fill(0)
  print("x//4",x//4)
  print("x%4",x%4)

  # 横坐标设置9(7+2),7是一组数据有7个字符串,2是一行两组数据之间间隔两个字符
  oled.DispChar(value, 9*7*(x//4), (x%4)*16, 1)
  
  #oled.DispChar('aaa', 33, 33, 1)
  oled.show()
  #print("y",y)
  
  xxx.write(value)
  xxx.write("\n")
  a = a + 1
  if a == 20:
    xxx.close()
    #print('close file')
    break

运行结果

在这里插入图片描述
在这里插入图片描述

运行完成后直接将b.txt拖到用户空间查看,发现数据确实存在。
接下来就利用excel分离’_’

在这里插入图片描述
这是我随便呼气的结果,后续尝试看看能否做成wav文件播放。

接下来打算尝试设置定时器,查看1s可以获取多少数值,即mic的采样率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值