回答

收藏

《2024 DigiKey 汽车应用创意挑战赛》基于FS3000的汽车尾翼安...

#竞赛 #竞赛 702 人阅读 | 0 人回复 | 2025-02-22

本帖最后由 qintian0303 于 2025-2-22 13:41 编辑

一、项目名称:
       基于FS3000开发板和Arduino的汽车尾翼安全调节示意系统
二、项目概述:
       本设计方案旨在构建一个汽车尾翼安全调节系统的示意模型。虽然在真实汽车应用中,FS3000FL气流传感器的量程无法直接适用于汽车表面的高速气流,但该系统通过模拟验证气流控制尾翼调节的可行性。利用FS3000FL气流传感器采集气流数据,Arduino作为主控单元处理数据并控制舵机的角度,舵机模拟尾翼的调节动作,从而研究在模拟气流条件下汽车尾翼的调节对车辆运行平衡的影响。
1、基本原理
       气流检测原理:FS3000FL气流传感器基于特定的空气流动检测机制(例如热膜测量原理),当有气流通过传感器时,会引起传感器表面温度变化,这种温度变化被转换为电信号输出,输出信号与气流速度相关。
       主控与传感器交互原理:FS3000FL传感器通过标准的Pmod Type 6A(Extended I2C)接口与Arduino连接(实际上就用的4根线)。Arduino通过I2C通信协议对FS3000FL传感器进行配置和读取数据。I2C协议是一种简单的串行双线协议,由时钟线(SCL)和数据线(SDA)组成,允许主控设备(Arduino)与多个从设备(FS3000FL传感器)进行通信。
       舵机控制原理:Arduino根据从FS3000FL传感器读取到的气流数据,按照预先设定的算法计算出对应的舵机角度值。舵机是一种位置(角度)伺服驱动器,通过脉宽调制(PWM)信号控制其转动角度。Arduino输出的PWM信号频率和占空比决定了舵机的目标角度,以此来模拟尾翼的调节。
2、硬件
       FS3000FL(PMOD DAUGHTER CARD FOR FS3000 FL)传感器模块
       Arduino开发板:作为主控单元,具有丰富的输入输出引脚,可方便地与FS3000FL传感器和舵机连接。具备足够的处理能力来运行I2C通信协议、数据处理算法和PWM信号生成。
       180度舵机:根据接收到的Arduino输出的PWM信号控制舵机转动,模拟尾翼的调节。舵机内部由电机、减速齿轮组和位置检测装置组成,能够准确控制转动角度在0 - 180度之间。
3、软件
       Arduino IDE:用于编写和上传控制程序到Arduino开发板。
       程序中首先初始化FS3000FL传感器和舵机的连接端口,然后通过I2C协议读取FS3000FL传感器的气流数据。
       根据气流数据按照特定算法计算舵机目标角度,再通过生成相应的PWM信号控制舵机转动。
4、项目实施步骤
硬件连接
       将FS3000FL开发板的Pmod Type 6A接口与Arduino开发板的Pmod接口按照对应引脚连接,确保I2C通信引脚(SCL和SDA)连接正确。
       将舵机的信号线连接到Arduino开发板的一个数字引脚(如9引脚,用于输出PWM信号),舵机的电源正负极分别连接到合适的电源(通常为5V或6V电源适配器,确保电源与Arduino的电源隔离)。
       给FS3000FL开发板和Arduino开发板接通电源。
软件编写
库文件导入
       在Arduino IDE中导入FS3000FL传感器的库文件;
       导入舵机的控制库文件(Servo.h);
初始化代码编写
       在setup()初始化FS3000FL传感器的I2C通信,设置舵机的连接引脚,并初始化舵机的工作模式:
  1. void setup()
  2. {
  3.   Serial.begin(115200);
  4.   myservo.attach(9, 500, 2500);          //修正脉冲宽度
  5.   pos = 90;
  6.   myservo.write(pos);

  7.   Wire.begin();
  8.   if (fs.begin() == false) //Begin communication over I2C
  9.   {
  10.     Serial.println("The sensor did not respond. Please check wiring.");
  11.     while(1); //Freeze
  12.   }

  13.   fs.setRange(AIRFLOW_RANGE_7_MPS);
  14.   Serial.println("Sensor is connected properly.");

  15. }
复制代码
数据采集与角度计算代码编写
       在loop()函数中,首先读取FS3000FL传感器的气流速度数据,根据预先设定的算法(线性比例关系:将气流数据转换为舵机目标角度,生成对应目标角度的PWM信号输出到舵机:
  1. void loop()
  2. {
  3.   pos = 90;
  4.   fs.readMetersPerSecond();
  5.   pos = 90 + fs.readMetersPerSecond()*10;
  6.   myservo.write(pos);
  7.   delay(15);
  8. }
复制代码
5、多档风扇效果测试
       使用多档风扇产生不同强度的气流,模拟汽车的正常行驶气流和恶劣天气下的强风环境。
       观察在不同风扇档位(即不同气流强度)下,FS3000FL传感器采集到的气流数据,以及舵机相应角度的变化。
       分析测试结果,观察模拟尾翼调节是否符合预期假设.
       具体效果可参看视频内容中的风速测试内容。
三、作品实物图




四、演示视频
【尾翼控制系统示意展示】 https://www.bilibili.com/video/BV1aTPKeTEyb/?share_source=copy_web&vd_source=2a202874768d99b0acaa1aceb9a9b93e
五、项目文档
项目文件.zip (2.63 MB, 下载次数: 1)

分享到:
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条