310|4

8

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【Follow me第二季第4期】任务提交 [复制链接]

 

本帖最后由 eew_kTvRL7 于 2025-1-12 21:25 编辑

任务介绍

本帖为Follow me第二季第4期的任务提交帖。
任务包含以下内容:

  1. 搭建环境并开启第一步Blink三色LED / 串口打印Hello DigiKey & EEWorld!
  2. 调试IMU传感器,通过串口打印数据;
  3. 调试PDM麦克风,通过串口打印收音数据和音频波形。
  4. 通过RGB LED不同颜色显示PDM麦克风收到的声音大小;
  5. 通过IMU数据结合机器学习算法,识别运动状态,并通过串口打印。

使用到的物料包括:

  1. Arduino Nano RP2040 Connect
  2. 无源蜂鸣器
  3. 面包板

设计思路:除发声单元使用蜂鸣器模块,其它任务可使用板载器件完成。

软件流程图

任务1

  1. void rgbBlink(){
  2. for(int i = 0; i < 100; i++){
  3. digitalWrite(LEDR,HIGH);
  4. digitalWrite(LEDG,LOW);
  5. digitalWrite(LEDB,LOW);
  6. delay(100);
  7. digitalWrite(LEDR,LOW);
  8. digitalWrite(LEDG,HIGH);
  9. digitalWrite(LEDB,LOW);
  10. delay(100);
  11. digitalWrite(LEDR,LOW);
  12. digitalWrite(LEDG,LOW);
  13. digitalWrite(LEDB,HIGH);
  14. delay(100);
  15. }
  16. }
  17. void task1(){
  18. Serial.println("********** Task 1 **********");
  19. rgbBlink();
  20. Serial.println("Hello DigiKey & EEWorld!");
  21. Serial.println("********** Task 1 **********");
  22. }

任务2

  1. void task2(){
  2. Serial.println("********** Task 2 **********");
  3. static float Ax, Ay, Az;
  4. static float Gx, Gy, Gz;
  5. if (!IMU.begin()) {
  6. Serial.println("Failed to initialize IMU!");
  7. while (1);
  8. }
  9. Serial.print("Accelerometer sample rate = ");
  10. Serial.print(IMU.accelerationSampleRate());
  11. Serial.println("Hz");
  12. Serial.println();
  13. Serial.print("Gyroscope sample rate = ");
  14. Serial.print(IMU.gyroscopeSampleRate());
  15. Serial.println("Hz");
  16. Serial.println();
  17. for(int i = 0; i < 100; i++){
  18. if (IMU.accelerationAvailable()) {
  19. IMU.readAcceleration(Ax, Ay, Az);
  20. Serial.println("Accelerometer data: ");
  21. Serial.print(Ax);
  22. Serial.print('\t');
  23. Serial.print(Ay);
  24. Serial.print('\t');
  25. Serial.println(Az);
  26. Serial.println();
  27. }
  28. if (IMU.gyroscopeAvailable()) {
  29. IMU.readGyroscope(Gx, Gy, Gz);
  30. Serial.println("Gyroscope data: ");
  31. Serial.print(Gx);
  32. Serial.print('\t');
  33. Serial.print(Gy);
  34. Serial.print('\t');
  35. Serial.println(Gz);
  36. Serial.println();
  37. }
  38. delay(500);
  39. }
  40. IMU.end();
  41. Serial.println("********** Task 2 **********");
  42. }

任务3 & 4

  1. void task3(){
  2. Serial.println("********** Task 3 **********");
  3. static const char channels = 1;
  4. static const int frequency = 16000;
  5. // Configure the data receive callback
  6. PDM.onReceive(onPDMdata);
  7. if (!PDM.begin(channels, frequency)) {
  8. Serial.println("Failed to start PDM!");
  9. while (1);
  10. }
  11. setPWM(pwm, 13, 4000, 50);
  12. for(int i = 0; i < 100; i++){
  13. if (samplesRead) {
  14. // Print samples to the serial monitor or plotter
  15. for (int i = 0; i < samplesRead; i++) {
  16. if(channels == 2) {
  17. Serial.print("L:");
  18. Serial.print(sampleBuffer<i>);
  19. Serial.print(" R:");
  20. i++;
  21. }
  22. if(sampleBuffer<i> > 1000){
  23. digitalWrite(LEDR,HIGH);
  24. digitalWrite(LEDG,LOW);
  25. digitalWrite(LEDB,LOW);
  26. }else{
  27. digitalWrite(LEDR,LOW);
  28. digitalWrite(LEDG,HIGH);
  29. digitalWrite(LEDB,LOW);
  30. }
  31. Serial.println(sampleBuffer<i>);
  32. }
  33. // Clear the read count
  34. samplesRead = 0;
  35. static int fq=4000;
  36. if(fq>=10000) fq=2000;
  37. fq+=1000;
  38. }
  39. delay(500);
  40. }
  41. setPWM(pwm, 13, 100, 0);
  42. Serial.println("********** Task 3 **********");
  43. }

视频演示:任务演示汇总

任务源码:https://download.eeworld.com.cn/detail/eew_kTvRL7/635462

心得体会:Arduino快速实现一个功能(在有现成库的情况下)与传统基于MCU进行裸机开发的便利程度几乎不可同日而语,加上Arduino IDE提供了一个开箱即用的开发环境,可以说Arduino对于电子爱好者或者希望实现某种特定功能的用户来说是一个非常实用的工具。很高兴能参与EEworld和得捷举行的本次活动,体验到Arduino这个高效的开发平台。

最新回复

恭喜大佬完成了作品,这个开发板可玩的东西挺多的吧。   详情 回复 发表于 2024-12-30 22:20
点赞 关注
 
 

回复
举报

6803

帖子

10

TA的资源

版主

沙发
 

最新的arduinoIDE,也是只能显示50个数据 

个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

8

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
 
 
 

回复

7193

帖子

11

TA的资源

版主

4
 

恭喜大佬完成了作品,这个开发板可玩的东西挺多的吧。

点评

是的板载器件还是很多的,蓝牙什么的都还没来得及体验。  详情 回复 发表于 2025-1-2 17:47
 
 
 

回复

8

帖子

1

TA的资源

一粒金砂(中级)

5
 
lugl4313820 发表于 2024-12-30 22:20 恭喜大佬完成了作品,这个开发板可玩的东西挺多的吧。

是的板载器件还是很多的,蓝牙什么的都还没来得及体验。

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
立即报名 | 2025 瑞萨电子工业以太网技术日即将开启!
3月-4月 深圳、广州、北京、苏州、西安、上海 走进全国6城
2025瑞萨电子工业以太网技术巡回沙龙聚焦工业4.0核心需求,为工程师与企业决策者提供实时通信技术最佳解决方案。
预报从速,好礼等您拿~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表