如何自制一个自动驾驶无人机

描述

带有多个传感器和一个由两个微控制器控制的无线摄像头的 Arduino Uno 自动驾驶无人机。

通常我们会看到使用射频遥控器控制的无人机,或者使用 GPS 模块通过给出正确方向来自动控制无人机的自动驾驶仪。但在我的项目中,我使用 Arduino Uno 以另一种方式处理事情。

该项目的主要目标是从特定已知区域收集数据和 2D 视频信息。为了获取信息,我们必须使用 Arduino 编程分配无人机可以行进的长度和宽度值。

顾名思义,自动驾驶意味着无人机将由自己操控,而无人机的控制动作将由具有内置传感器以平衡无人机的飞行控制器来处理。Arduino Uno 是系统的大脑,它为飞行控制器提供正确的信号。为了保持稳定性和持续运行,我使用了 OpenPilot CC3D 微控制器(或任何飞行控制器)以及摄像头,通过天气监测传感器捕捉实时数据。最后,该系统包括一个蓝牙模块,用于关闭/关闭无人机并使用 Android 移动设备显示实时数据。

微控制器

补给品

蓝牙低功耗 (BLE) 模块(通用)× 1

Arduino UNO × 1

飞行控制器(CC3D)× 1

DHT11温湿度传感器(4针) × 1

无人机框架,ESC,电池11.1V,无刷直流电机× 1

我们知道 arduino Uno 是一个 Atmega Micro 控制器。在这里,我生成了 PWM 信号来控制无人机。

微控制器

我们知道 arduino Uno 是一个 Atmega Micro 控制器。在这里,我生成了 PWM 信号来控制无人机。

微控制器

CC3D飞行控制器:

微控制器

正如我们在上图中看到的那样,它显示了具有内置陀螺仪和加速器控制器以及自动调平功能的飞行控制器。

但是这些微控制器公司提供了自己的软件对其进行编程,并且用户友好。

这些微控制器需要一个 PWM 信号作为输入来控制各个 BLDC 电机。这些信号将由 arduino uno 生成。

无人机设计类型

微控制器

正如您在上面看到的,有两种类型的无人机设计可用于四格式无人机,具体取决于您放置飞行控制器的方向,您可以选择四格式

方向指示将根据所选飞行控制器打印,对于所选格式,螺旋桨方向也是最重要的,CW(顺时针)和 CCW(逆时针)。

电调连接

顺时针

微控制器

顺时针方向,我们需要如上图所示连接电线

逆时针

微控制器

对于逆时针方向,我们需要互换任意两根电线,以便将电压的相位施加到电机上,从而改变电机方向

电机-电调-飞行控制器连接

微控制器

电调控制连接

微控制器

ESC 也有 3 根电线和 2 根电源线,

这 3 根电线具有 VCC、GROUND 和 INPUT SIGNAL 引脚,从 FLIGHT CONTROLLER 获取数据以旋转 BLDC 电机。

其他 2 根电线是额定电流更高的电源线,因此请使用较粗的电线,这些电缆与电池通用。

使用 ARDUINO UNO 的最终接线图

微控制器

在这里,我使用了 UART 协议,但没有数据被并行转换为串行。就延迟而言,直接 PWM 信号从 arduino 应用到 CC3d。

移动应用

微控制器

上面的快照显示了使用下面提到的开源网站构建的 android 应用程序。使用这个应用程序,我们可以打开和关闭无人机。并且还有另一个功能可以让我们在串行窗口中获取传感器数据,那就是手机。

纽扣

开始:此按钮将启动微控制器(CC3D飞控)

mov :这使无人机飞行并执行在 arduino Uno 内部编程的操作

停止:这是关闭无人机的紧急停止按钮(由于自动驾驶无人机没有遥控器,因此提供了额外的按钮)

启动传感器:按下时会在白屏上显示传感器数据,如下图所示

微控制器

我们可以在图中看到按下启动传感器按钮时将显示值的温度和湿度。

原理图

1. 蓝牙模块接口

在这里,我们使用蓝牙模块(HC-05)进行双向通信,打开无人机并接收传感器数据。

两个电阻器用作分压器,将 5 伏降至 3.3 伏,以便蓝牙可以接收来自 Arduino Uno 的数据。

电路如此简单和小巧,只需少量连接

Arduino Pins Bluetooth Pins

RX (Pin 0) ———-》 TX

TX (Pin 1) ———-》 RX

5V ———-》 VCC

GND ———-》 接地

微控制器

2. 传感器接口

DHT11 测量相对湿度。相对湿度是空气中的水蒸气量与空气中水蒸气的饱和点的比值。在饱和点,水蒸气开始凝结并积聚在表面形成露水。DHT11仅使用一根信号线将数据传输到Arduino接口图如上图所示。使用 DHTLib 库。它具有从传感器获取湿度和温度读数所需的所有功能,如下所示。

微控制器

Arduino Uno 与飞控的接口

飞行控制器 (Cc3d) 将提供 5 个输入控制引脚,为无人机提供 4 种运动动作,它们是油门、滚动、偏航和俯仰。这些引脚需要 PWM 信号才能工作,因此我们将使用 Arduino Uno 生成 PWM 信号。通过适当的规划和特定的草图,我们可以通过延迟调用函数来对 Arduino 进行编程。

微控制器

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
jf_24057955 2022-09-25
0 回复 举报
太好了 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分