asdxz7 发表于 2025-1-16 17:36

【Follow me第二季第4期】-任务提交与汇总

本帖最后由 asdxz7 于 2025-1-21 23:21 编辑

<p><strong>物料清单:</strong></p>

<p><strong>任务使用物料:</strong></p>

<ul>
        <li>主板:<a href="https://www.digikey.cn/zh/products/detail/arduino/ABX00052/14123941" target="_blank">ABX00052 Arduino | 开发板,套件,编程器 | DigiKey</a>&nbsp;</li>
</ul>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>任务一:搭建环境并开启第一步Blink三色LED / 串口打印Hello DigiKey &amp; EEWorld!;</p>

<p>基本思路:1.LED点亮与呼吸灯:对LEDR、LEDG、LEDB进行PWM写入</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2.串口输出:设置波特率并且打印Hello DigiKey &amp; EEWorld!</p>

<p>以下是程序流程图:</p>

<p> &nbsp;</p>

<p>以下是代码:<br />
&nbsp;</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p>任务二:学习IMU基础知识,调试IMU传感器,通过串口打印六轴原始数据;</p>

<p>1.初始化陀螺仪采样频率</p>

<p>2.采集数据</p>

<p>3.打印数据到串口</p>

<p>4.使用&nbsp;<strong>Arduino IDE 串口绘图器</strong>(Serial Plotter),观察陀螺仪数据的打印情况。</p>

<p>以下是程序流程图:</p>

<p> &nbsp;</p>

<p>以下是代码:</p>

<pre>
<code>#include &lt;Arduino_LSM6DSOX.h&gt;
    float acc_x,acc_y,acc_z;
    float gyro_x,gyro_y,gyro_z;
    float temp;
    int update_flag;

    void setup() {
      // put your setup code here, to run once:
      Serial.begin(115200);
      if(!IMU.begin())
      {
      Serial.println("Falled to initialize IMU");
      while(1);
      
      }

      Serial.print("Acc sample rate = ");
      Serial.print(IMU.accelerationSampleRate());
      Serial.println("Hz");

      Serial.print("Gyro sample rate = ");
      Serial.print(IMU.gyroscopeSampleRate());
      Serial.println("Hz");

    }

    void loop() {
      // put your main code here, to run repeatedly:
      Serial.print("Acc sample rate = ");
      Serial.print(IMU.accelerationSampleRate());
      Serial.println("Hz");

      Serial.print("Gyro sample rate = ");
      Serial.print(IMU.gyroscopeSampleRate());
      Serial.println("Hz");


      if (IMU.accelerationAvailable())
      {
      IMU.readAcceleration(acc_x,acc_y,acc_z);
      update_flag = 1;
      }
      if (IMU.gyroscopeAvailable())
      {
      IMU.readGyroscope(gyro_x,gyro_y,gyro_z);
      update_flag = 1;
      }
      if (IMU.temperatureAvailable())
      {
      IMU.readTemperatureFloat(temp);
      update_flag = 1;
      }
      if (update_flag)
      {
      update_flag=0;
      Serial.print(acc_x);
      Serial.print(',');

      Serial.print(acc_y);
      Serial.print(',');

      Serial.print(acc_z);
      Serial.print(',');

      Serial.print(gyro_x);
      Serial.print(',');

      Serial.print(gyro_y);
      Serial.print(',');

      Serial.print(gyro_z);
      Serial.print(',');

      Serial.print(gyro_x);
      Serial.print(',');
      
      Serial.println(temp);
      delay(500);

      }

    }


</code></pre>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p>任务三:学习PDM麦克风技术知识,调试PDM麦克风,通过串口打印收音数据和音频波形。</p>

<p>思路:</p>

<p>1.初始化麦克风(采样率)以及波特率</p>

<p>2.采集数据</p>

<p>3.串口打印数据</p>

<p>4.使用&nbsp;<strong>Arduino IDE 串口绘图器</strong>(Serial Plotter),观察音频数据的波形变化。</p>

<p>以下是程序流程图:</p>

<p> &nbsp;</p>

<p>代码:</p>

<pre>
<code>    #include "PDM.h"

    static const char channels = 1;
    static const int frequncy= 24000;
    short sampleBuffer;
    volatile int samplesRead;

    void setup() {
      // put your setup code here, to run once:
      Serial.begin(115200);

      PDM.onReceive(onPDMdata);
      if(!PDM.begin(channels,frequncy))
      {
      Serial.println("Failed to start PDM!!!");
      while(1);


      }

    }

    void loop() {
      // put your main code here, to run repeatedly:

      if(samplesRead)
      {
      for(int i = 0; i &lt; samplesRead; i++)
      {
          Serial.println(sampleBuffer);
      }
      samplesRead=0;

      }
      delay(1);

    }

    void onPDMdata(){
      int bytesAvailable = PDM.available();
      PDM.read(sampleBuffer,bytesAvailable);
      samplesRead = bytesAvailable / 2;

    }


</code></pre>

<p> &nbsp;</p>

<div>任务代码:<br />
任务总结:此次EEWORD论坛的活动,让我学习了<strong><u>Arduino</u>&nbsp;Nano RP2040 Connect开发板,</strong>提高了我个人的能力,激发了我对创新的热情,作为一名在校学生,主要学习的方向是硬件开发,此次活动丰富了我的知识体系,精进了我对开发能力,同时奠定了更加深厚的基础。</div>

<p>任务汇总视频:0e64cb945f6adc4609af6b60f0e88800c086b382ef801de7515bd9760d1b4c5d<br />
&nbsp;</p>

Jacktang 发表于 2025-1-17 07:48

<p>音频波形出来就能反映收集的数据是否正确</p>

meiyao 发表于 2025-1-17 08:39

<p>PDM麦克风,是采用脉冲密度调制,通过调整连续脉冲序列中1和0的密度来代表模拟信号的幅度。</p>

秦天qintian0303 发表于 2025-1-17 13:59

<p>汇总的视频没有插到文章里吗?&nbsp;&nbsp;</p>

asdxz7 发表于 2025-1-21 21:19

<div><br />
<br />
&nbsp;</div>
页: [1]
查看完整版本: 【Follow me第二季第4期】-任务提交与汇总