毕设成品 esp8266四轴飞行器

简介

Hi,大家好,今天向大家介绍一个学长做的单片机项目

毕业设计 esp8266四轴飞行器

大家可用于 课程设计 或 毕业设计

🔥 项目分享:
https://gitee.com/feifei1122/simulation-project

一、电路设计

硬件组成:

  • Arduini Nan
  • ESP8266
  • MPU6050 模块
  • 有刷电机
  • 螺旋桨
  • 电池包
  • Si2302场效应管
  • 无人机架

ESP8266模块

为了与无人机通信,我们需要蓝牙或WIFI连接,所以我们使用ESP8266 Wi-Fi模块,因为它有内置的Wi-Fi,我们可以使用它进行通信。

ESP8266开源、互动、可编程、低成本、简单、智能、最低成本的Wi-Fi硬件。

至于无人机的飞行范围。测试已经得到了范围大约是70米,使用三星手机充当WiFi热点和远程控制器。

MPU6050

MPU6050 IMU,一个低成本的设备,包含陀螺仪和加速计。

我们将使用MPU-6050和ESP8266模块来做一个无人机。

二、效果图

三、部分代码

    
​    #include
​    #include 
​    #include 
​    WiFiUDP UDP;char packet[4];//IPAddress local_IP(192, 168, 203, 158);//IPAddress gateway(192, 168, 1, 158);//IPAddress subnet(255, 255, 0, 0);//_________________________________________//  int ESCout_1 ,ESCout_2 ,ESCout_3 ,ESCout_4;int input_PITCH = 50;int input_ROLL = 50;int input_YAW = 50;volatile int input_THROTTLE = 0;int Mode = 0;
​    
​    boolean wall_car_init = false;
​    boolean set_motor_const_speed = false;int8_t target_axis=0;int8_t target_dirr=0;
​    boolean wheal_state = false;uint8_t pwm_stops;
    int arr[] = {20,10,20,10};
    volatile int order[] = {0,0,0,0}; //volatile key
    int temp_arr[] = {0,0,0,0};
    int pulldown_time_temp[] = {0,0,0,0,0};
    int pulldown_time[] = {0,0,0,0,0};
    volatile int pulldown_time_temp_loop[] = {0,0,0,0,0}; //volatile key
    uint8_t pin[] = {14,12,13,15};
    int i,j,temp_i,temp;
    boolean orderState1,orderState2,orderState3,orderState4,Timer_Init;
    
    int16_t gyro_x, gyro_y, gyro_z, acc_x, acc_y, acc_z, temperature, acc_total_vector;
    float angle_pitch, angle_roll,angle_yaw,prev_roll,prev_pitch,prev_yaw;
    boolean set_gyro_angles;
    float angle_roll_acc, angle_pitch_acc;
    float angle_pitch_output, angle_roll_output, angle_yaw_output;
    long Time, timePrev;
    float elapsedTime,P_factor;
    float acceleration_x,acceleration_y,acceleration_z;
    long gyro_x_cal, gyro_y_cal, gyro_z_cal;
    float pitch_PID,roll_PID,yaw_PID;
    float roll_error, roll_previous_error, pitch_error, pitch_previous_error, yaw_error, yaw_previous_error;
    float roll_pid_p, roll_pid_d, roll_pid_i, pitch_pid_p, pitch_pid_i, pitch_pid_d, yaw_pid_p, yaw_pid_i, yaw_pid_d;
    float roll_desired_angle, pitch_desired_angle, yaw_desired_angle; 
    double twoX_kp=5;      //5
    double twoX_ki=0.003;   //0.003   
    double twoX_kd=1.4;     //1.4
    double yaw_kp=8;      //5
    double yaw_ki=0;  //0.005
    double yaw_kd=4;      //2.8


​    
​    
​    void ICACHE_RAM_ATTR PWM_callback() {switch (pwm_stops){case 0:
​          pulldown_time_temp[0] = pulldown_time_temp_loop[0];
​          pulldown_time_temp[1] = pulldown_time_temp_loop[1];
​          pulldown_time_temp[2] = pulldown_time_temp_loop[2];
​          pulldown_time_temp[3] = pulldown_time_temp_loop[3];
​          pulldown_time_temp[4] = pulldown_time_temp_loop[4];
​          pwm_stops = 1;if(input_THROTTLE!=0){GPOS = (1 << 14);GPOS = (1 << 12);GPOS = (1 << 15);GPOS = (1 << 13);}timer1_write(80*pulldown_time_temp[0]);break;case 1:
​          pwm_stops = 2;
​          GPOC = (1 << pin[order[0]]);timer1_write(80*pulldown_time_temp[1]);break;case 2:
​          pwm_stops = 3;
​          GPOC = (1 << pin[order[1]]);timer1_write(80*pulldown_time_temp[2]);break;case 3:
​          pwm_stops = 4;
​          GPOC = (1 << pin[order[2]]);timer1_write(80*pulldown_time_temp[3]);break;case 4:
​          pwm_stops = 0;
​          GPOC = (1 << pin[order[3]]);timer1_write(80*pulldown_time_temp[4]);break;}}


🔥 项目分享:
https://gitee.com/feifei1122/simulation-project

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本设计提出一种基于WIFI的微型四轴飞行器,实现数据高速度传输,实时控制微型四轴飞行器的飞行速度、姿态,提高微型四轴飞行器的可靠性。 为达到上述目的,本实用新型采用的具体技术方案如下: 一种基于WIFI的微型四轴飞行器,包括安装主体,其关键在于,所述安装主体上包围设置有四个旋臂,四个所述旋臂处于同一水平面且整体呈“X”形,在靠近所述旋臂的端部均设有一个直流电机,所述直流电机的转轴上安装有旋翼;所述安装主体为一电路安装腔,该电路安装腔内设有微控制器,所述微控制器分别与四个所述旋臂上的电机连接,在所述微控制器上连接WIFI通信模块,所述微控制器经WIFI通信模块与飞行控制系统连通。 采用上述方案,四个旋臂处于同一水平面且整体呈“X”形,并通过设置在旋臂的端部直流电机实现飞行,其中,相邻两个直流电机的旋转方向相反,相对两个直流电机旋转方向相同,通过调节4个电机的转速来改变旋翼转速,以实现微型四轴飞行器空间6个运动自由度,即分别沿X、Y、Z坐标轴作平移和旋转运动,以及4个可以控制的基本运动状态,即上下飞行、前后飞行、滚转飞行和偏航飞行;通过WIFI通信模块,微控制器与飞行控制系统之间实现无线通讯,飞行数据实现高速度传输,飞行控制系统对微型四轴飞行器实现实时控制,减少了微型四轴飞行器和其他物体发生碰撞,提高了微型四轴飞行器的安全性和可靠性。 进一步描述,所述微控制器上连接有陀螺仪传感器、加速度及磁力传感器、LED状态显示模块以及飞行姿态显示模块。 采用上述方案,根据陀螺仪传感器、加速度及磁力传感器确定实时监测飞行器相对于标准的X、Y、Z坐标轴的偏离,同时检测飞行器的加速度和飞行方向,并结合四元数得到欧拉角,从而得出飞行姿态参数,同时通过LED状态显示模块和飞行姿态显示模块实时显示出来。 再进一步描述,为了提高数据处理速率,所述微控制器为嵌入式微控制器,所述微控制器采用LPC2124芯片。 再进一步描述,所述陀螺仪传感器为三轴陀螺仪传感器,所述陀螺仪传感器采用FXAS21002芯片,该芯片小型、功耗低,该陀螺仪传感器的芯片经SPI接口与所述微控制器相连,传输数据块,实时性好。 再进一步描述,所述加速度及磁力传感器采用FXOS8700CQ芯片,将加速度传感器和磁力传感器合二为一,大大降低了飞行器的载重,并且根据该传感器可以飞行器的加速度及方向,有效监管飞行器的飞行状态,所述加速度及磁力传感器的芯片采用SPI接口与所述微控制器相连。 再进一步描述,所述WIFI通信模块采用RN1723模块,该模块是一款独立的、内嵌2.4GHzIEEE802.11b/g模块,其集成了晶振、电压调节器、匹配电路、功率放大器等。并支持Infrastructure与SoftAp网络模式,内置网络应用程序:TCP,UDP,DHCP,DNS,ARP,HTTP客户端与FTP客户端。板载TCP/IP网络协议栈以及唯一的MAC地址。支持UART通信接口,使用简单的AT命令字与外部微处理器进行读写操作。考虑到该模块如果采用外部天线,不仅其重量增加,并且也影响飞行器的正常飞行。因此在所述WIFI通信模块的电路板上设置有板载天线,提高了WIFI通信模块的通信可靠性,并降低了飞行器的载重。 再进一步描述,由于飞行器要在空中完成各种飞行姿态,则飞行器上的所有结构器件均需要连接牢固,则在所述电路安装腔内设置有电路板固定装置,为了防尘防水,在所述电路安装腔上还设置有电路板隔离装置,其中电路板隔离装置为包裹在安装主体上的薄膜或者透明塑料板,从而延长飞行器的使用寿命,其中薄膜重量轻,不会大幅度增加飞行器载重,而透明塑料板使用时间长,不会经常更换,使用方便。 本实用新型的有益效果:通过在微型四轴飞行器上设置WIFI通信模块,使飞行器与飞行控制系统连通,实现实时控制,减少控制延时而造成的损伤;并且在电路板上设置板载天线,既提高了传输速度,并且载重小;根据陀螺仪传感器、加速度及磁力传感器确定实时监测飞行器相对于标准的X、Y、Z坐标轴的偏离,同时检测飞行器的加速度和飞行方向,并结合四元数得到欧拉角,从而得出飞行姿态参数,同时通过LED状态显示模块和飞行姿态显示模块实时显示出来;并在飞行器上设置电路板固定装置,使飞行更加可靠;在飞行器上设置电路板隔离装置,防尘防水,延长了飞行器的使用寿命。 本实用新型的工作原理:微型四轴飞行器通过WIFI通信模块与飞行控制系统连通,微控制器采集油门、航向、滚转、俯仰信号,并通过WIFI通信模块传送到飞行控制系统,飞行控制系统发出控制信号,致使微型四轴飞行器控制四个直流电机旋转,实现微型四轴飞行器垂直上升、垂直下降、向左移动、向右移动、向前移动、向后移动、翻转飞行、测向飞行、自由悬停、紧急停机等,在飞行过程中,LED状态显示模块显示无线通信状态、飞行器启动状态、紧急停机状态
### 回答1: ESP8266四路继电器是一种集成了ESP8266 Wi-Fi模块和四个独立继电器的设备。ESP8266是一款低功耗、高性能的Wi-Fi模块,可以用于接入互联网,并通过无线网络进行通信。四路继电器可以控制四个不同的电路,可以通过Wi-Fi远程控制继电器的开关状态。 ESP8266四路继电器的使用非常方便,只需将其连接到电源和Wi-Fi网络,然后通过手机、电脑或其他设备的APP或浏览器就可以远程控制继电器的开关状态。用户可以通过手机或电脑APP实时监测和控制继电器的状态,如打开或关闭灯光、电器或其他设备。 除了远程控制外,ESP8266四路继电器也支持定时控制功能。用户可以设置定时开关,根据需要自动打开或关闭继电器,实现自动化控制。例如,可以设置定时在早晨打开灯光、定时关闭电视等。 此外,ESP8266四路继电器还支持多点控制功能。这意味着用户可以多个设备同时控制继电器的开关状态。这样,多个用户可以同时远程或定时控制继电器,实现多人协作。 综上所述,ESP8266四路继电器是一个功能强大、易于使用的设备,能够通过Wi-Fi远程控制多个继电器,实现智能家居或其他领域的自动化控制。无论是家庭、办公室还是工业环境,ESP8266四路继电器都提供了便捷、高效的解决方案。 ### 回答2: ESP8266四路继电器是一种基于ESP8266芯片的开发板,具有四个独立的继电器输出通道。它可以通过无线网络与其他设备进行通讯,并控制继电器的开关状态。 ESP8266四路继电器模块可以广泛应用于智能家居、物联网等领域。通过连接到无线网络,我们可以使用手机或电脑远程操控继电器的开关状态,实现远程控制和自动化。例如,我们可以通过手机APP控制灯光的开关,调节家居设备的温度,或者定时控制水泵等。 使用ESP8266四路继电器模块时,我们可以通过编程来实现控制逻辑。在编程方面,我们可以使用Arduino IDE或者类似的开发软件,通过简单的代码编写来实现控制继电器。 除了四个继电器输出通道外,ESP8266四路继电器模块还具备多个引脚,这些引脚可以用于连接其他传感器或执行其他功能。这使得它具备了更强的扩展性和灵活性。 总结起来,ESP8266四路继电器是一种功能强大的开发板,可以用于控制多个继电器的开关状态。它的无线通讯功能和编程灵活性使得我们可以实现远程控制或自动化的功能。在智能家居和物联网项目中,ESP8266四路继电器是一个重要的组成部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值