版本协议

Public Domain

标签
标准版
#第十届立创电赛#便携扬声器

创建时间:1个月前

72 0

视频

描述

<div class="document"> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">注:* 为必填项</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><strong><span style="color: #0093e6;">请在报名阶段填写 ↓</span></strong></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">* 1、项目功能介绍</h3> <hr class="horizontal-splitline normal-bold-2"> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #000000;"><span style="font-size: 14px;">这是一个基于 ESP32 的编写的便携式扬声器,通过数字麦克风获得音频数据,然后通过数字功放 HT513 从喇叭播放出去。</span></span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*2、项目属性</h3> <hr class="horizontal-splitline normal-bold-2"> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #000000; font-size: 14px;">原创首次公开。</span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">* 3、开源协议</h3> <hr class="horizontal-splitline normal-bold-2"> <p><span style="color: #000000;"> </span></p> <p><span style="color: #000000; font-size: 14px;">GPL3.0开源协议</span></p> <p style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><strong><span style="color: #0093e6;">请在竞赛阶段填写 ↓</span></strong></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*4、硬件部分</h3> <hr class="horizontal-splitline normal-bold-2"> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #000000;"><span style="font-size: 14px;">使用 ESP32 S3 作为核心(但是并未使用ESP32 S3 特有的属性)。</span></span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*5、软件部分</h3> <hr class="horizontal-splitline normal-bold-2"> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #000000;"><span style="font-size: 14px;">通过 Arduino 基于 AudioTools 库完成。</span></span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #000000;"><span style="font-size: 14px;">1. 音频数据通过MSM261S4030H0来获得</span></span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #000000;"><span style="font-size: 14px;">2.使用国产的 HT513作为功放。这款芯片支持通过寄存器直接调整音量,使用起来非常方便。外部有一个旋转按钮,通过 ADC 来得到当前需要的音量。</span></span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #000000;"><span style="font-size: 14px;">完整代码如下:</span></span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <p>/**<br>   @file streams-i2s-i2s-2.ino<br>   @brief Copy audio from I2S to I2S: We use 2 different i2s ports!<br>   @author Phil Schatzmann<br>   @copyright GPLv3<br>*/<br>#include <br>#include "AudioTools.h"</p> <p>AudioInfo IN_info(16000, 1, 32);<br>AudioInfo OUT_info(16000, 1, 32);<br>I2SStream in;<br>I2SStream out;<br>VolumeStream vol(in);<br>StreamCopy copier(out, vol); // copies sound into i2s<br>//FormatConverterStream converter(in);  // or use converter(out)<br>//StreamCopy copier(out, converter);       //        copier(converter, sound);<br>// HT513 音量<br>uint16_t Volume;<br>// 最小音量<br>#define LOWESTVOLUME 1<br>#define TOLENCE 16<br>#define HT513_ADDR_L 0x6c<br>/**<br>   @brief  ht513写寄存器<br>   @param  addr 寄存器地址<br>   @param  val 要写的值<br>   @retval None<br>*/<br>void HT513_WriteOneByte(uint8_t addr, uint8_t val)<br>{<br>  Wire.beginTransmission(HT513_ADDR_L);<br>  Wire.write(addr);<br>  Wire.write(val);<br>  int ack = Wire.endTransmission(true);<br>  Serial.print("Ack ");<br>  Serial.println(ack, HEX);<br>}</p> <p>/**<br>   @brief  ht513读寄存器<br>   @param  addr 寄存器地址<br>   @retval 读取到的寄存器值<br>*/<br>uint8_t HT513_ReadOneByte(uint8_t addr)<br>{<br>  uint8_t temp = 0;</p> <p>  Wire.beginTransmission(HT513_ADDR_L);<br>  Wire.write(addr);<br>  Wire.endTransmission(false);<br>  uint8_t bytesReceived = 0;<br>  bytesReceived = Wire.requestFrom(HT513_ADDR_L, (uint8_t)1, true);<br>  if (bytesReceived == 1) {<br>    temp = Wire.read();<br>  }<br>  else {<br>    Serial.println("Read Error ");<br>  }</p> <p>  return temp;<br>}</p> <p>// Arduino Setup<br>void setup(void) {<br>  delay(5000);<br>  // HT513 SD Pin 需要设置为 High<br>  pinMode(8, OUTPUT);<br>  digitalWrite(8, HIGH);<br>  analogReadResolution(9);<br>  // Open Serial<br>  Serial.begin(115200);<br>  // change to Warning to improve the quality<br>  //AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Info);</p> <p>  Wire.begin(18, 17);<br>  int nDevices;<br>  byte error, address;<br>  Serial.println("Scanning...");<br>  nDevices = 0;<br>  for ( address = 1; address     Wire.beginTransmission(address);<br>    error = Wire.endTransmission();<br>    if (error == 0) {<br>      Serial.print("I2C device found at address 0x");<br>      if (address         Serial.print("0");<br>      }<br>      Serial.println(address, HEX);<br>      nDevices++;<br>    }<br>    else if (error == 4) {<br>      Serial.print("Unknow error at address 0x");<br>      if (address         Serial.print("0");<br>      }<br>      Serial.println(address, HEX);<br>    }<br>  }<br>  if (nDevices == 0) {<br>    Serial.println("No I2C devices found\n");<br>  }<br>  else {<br>    Serial.println("done\n");<br>  }</p> <p>  //  设置 SD 为LOW<br>  HT513_WriteOneByte(0x12, 0b11110000);</p> <p>  // 设置数据格式为 I2S, 32Bits<br>  HT513_WriteOneByte(0x13, 0b00000000);</p> <p>  // 读取音量设置<br>  Volume = analogRead(3);<br>  uint8_t Vol=(Volume,0,511,0x07,0xff);<br>  HT513_WriteOneByte(0x16, Vol);<br>  HT513_WriteOneByte(0x15, Vol);<br>  Serial.println(Volume, HEX);</p> <p>  // 调整声道<br>  HT513_WriteOneByte(0x17, 0b10110000);</p> <p>  Serial.println("++++++++++++++++");<br>  //  设置 SD 为HIGH<br>  HT513_WriteOneByte(0x12, 0b11110100);<br>  uint8_t Value = HT513_ReadOneByte(0x12);<br>  Serial.println(Value, HEX);<br>  Value = HT513_ReadOneByte(0x13);<br>  Serial.println(Value, HEX);<br>  Value = HT513_ReadOneByte(0x16);<br>  Serial.println(Value, HEX);<br>  Value = HT513_ReadOneByte(0x17);<br>  Serial.println(Value, HEX);</p> <p>  // Define Converter<br>  //converter.begin(IN_info, OUT_info);</p> <p>  // start I2S in<br>  Serial.println("starting I2S...");<br>  auto config_in = in.defaultConfig(RX_MODE);<br>  config_in.copyFrom(IN_info);<br>  config_in.i2s_format = I2S_STD_FORMAT;<br>  config_in.is_master = true;<br>  config_in.port_no = 1;<br>  config_in.pin_bck = 37;<br>  config_in.pin_ws = 38;<br>  config_in.pin_data = 36;<br>  // config_in.fixed_mclk = sample_rate * 256<br>  // config_in.pin_mck = 2<br>  in.begin(config_in);</p> <p>  // start I2S out<br>  auto config_out = out.defaultConfig(TX_MODE);<br>  config_out.copyFrom(OUT_info);<br>  config_out.i2s_format = I2S_STD_FORMAT;<br>  config_out.is_master = true;<br>  config_out.port_no = 0;<br>  config_out.pin_bck = 15;<br>  config_out.pin_ws = 6;<br>  config_out.pin_data = 7;<br>  config_out.pin_mck = 16;<br>  out.begin(config_out);</p> <p>  // set initial volume<br>  vol.begin(IN_info); // we need to provide the bits_per_sample and channels<br>  vol.setVolume(0.3);<br>  <br>  Serial.println("I2S started...");</p> <p><br>}</p> <p>// Arduino loop - copy sound to out<br>void loop() {<br>  copier.copy();<br>  if (abs(analogRead(3) - Volume) > TOLENCE) {<br>    // 读取音量设置<br>    Volume = analogRead(3);<br>    //  设置 SD 为LOW<br>    HT513_WriteOneByte(0x12, 0b11110000);<br>    uint8_t Vol=map(Volume,0,511,0x07,0xff);<br>    HT513_WriteOneByte(0x16, Vol);<br>    //  设置 SD 为HIGH<br>    HT513_WriteOneByte(0x12, 0b11110100);<br>    Serial.print(analogRead(3), HEX);<br>    Serial.print("  ");<br>    Serial.print(Volume, HEX);<br>    Serial.print("  ");<br>    Serial.println(Vol, HEX);<br>  }</p> <p><br>}</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*6、BOM清单</h3> <hr class="horizontal-splitline normal-bold-2"> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">*7、大赛LOGO验证</h3> <hr class="horizontal-splitline normal-bold-2"> <p style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><img src="//image.lceda.cn/pullimage/43Sk6SiHY6ZEFkiZm1nXFXKkcfrNVc4DwCHIMZ8J.jpeg" alt="" width="4000" height="3000"></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;">* 8、演示您的项目并录制成视频上传</h3> <hr class="horizontal-splitline normal-bold-2"> <p style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #95a5a6; font-size: 14px;">视频要求:请横屏拍摄,分辨率不低于1280×720,格式Mp4/Mov,单个视频大小限100M内;</span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="color: #95a5a6; font-size: 14px;">视频标题:立创电赛:{项目名称}-{视频模块名称};如立创电赛:《自动驾驶》-团队介绍。</span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"><span style="font-size: 14px;"><a href="/posts/42551e8f2f2548cabc1c36626a42da94" target="_blank">前往查看更多详情 ></a></span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height: 1.8;"> </p> </div>

文档

Sheet_1

PCB_#第十届立创电赛#便携扬声器

BOM

ID Name Designator Footprint Quantity Manufacturer Part Manufacturer Supplier Supplier Part
1 5.1K R2,R3 R1206 2 AECR1206F120KK9 ResistorToday LCSC C352156
2 1x3 pin header U5 1X3 PIN HEADER 2.54MM 1 1x3 pin header
3 1uf C1,C2 C1206 2 1206F104M500NT Guangdong Fenghua Advanced Tech LCSC C313097
4 0.1uf C3 C1206 1 CC1206JRNPOBBN270 YAGEO LCSC C326944
5 22uf C4 C1206 1 CC1206JRNPOBBN270 YAGEO LCSC C326944
6 Header2.0*5 H1 HEADER2.0*5 1
7 3P PH2.54 POWER1 CONN-TH_3P-P2.50_3PIN 1 3P PH2.54 LCSC C9900006188
8 10K R1 R1206 1 AECR1206F120KK9 ResistorToday LCSC C352156
9 12K R5 R1206 1 1206W4F3303T5E UniOhm LCSC C17929
10 ESP32-S3-WROOM-1U-N4 U1 WIRELM-SMD_ESP32-S3-WROOM-1U 1 ESP32-S3-WROOM-1U-N4 ESPRESSIF 乐鑫 LCSC C2980296
11 PWR U2 LED1206-FD 1 YLED1206R YONGYUTAI(永裕泰) LCSC C28310439
12 TLV1117LV33DCYR U3 SOT-223_L6.7-W3.5-P2.30-BR 1 TLV1117LV33DCYR TI LCSC C15578
13 TYPE-C 16PIN 2MD(073) USB1 USB-C-SMD_TYPE-C-6PIN-2MD-073 1 TYPE-C 16PIN 2MD(073) SHOU HAN(首韩) LCSC C2765186
14 HT513测试板 U4 HT513测试板 1
15 喇 叭 H2 DIP-1X2P-2.00MM 1 LCSC C49661
16 DMic P1 HEADER1X6-2.54MM 1 LCSC C40877

附件

暂无

评论(0)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow