2020电赛绕障飞行无人机无遥控自动飞行解决方案(Ti)

2023-05-16

一、 方案目标
针对部分大赛要求无人机在无遥控的情况下实现自主飞行,本方案实现无遥控和接收机
情况下,通过杜邦线或者按钮触发无人机进入相应模式,执行模式对应的指令。
由于 Ti 飞控有 8 个 PWM 接口,因此四旋翼有 4 个 PWM 接口可以用于发出触发指令。
本方案以 PWM8 为触发接口,通过杜邦线实现 M35 自动模式的进入和 M35 自主飞行状态
机的执行。
二、 实现方法

  1. 设置 PWM8 口为输入模式
    在 drv_PWMOut.c 程序的 init_drv_PWMOut()函数中添加配置代码(红色框),目的是将
    PWM8 输入模式。然后将对应接口的两个红色的箭头的代码注释掉,不然会冲突。
    在这里插入图片描述

  2. 添加获取按钮状态程序
    (1)在 M01_Ground.c 头部添加头文件(红色框)。
    在这里插入图片描述

(2)在M01_Ground.c程序的M01_Ground_MainFunc()函数中只保留显示屏代码(红色框),
注释掉与接收机相关的代码。同时在该函数的最后添加模式触发代码代码(蓝色框):在 50Hz
频率计数下,当 PWM8 口的 S 线接收到 2 秒的低电平就触发模式转换进入 M35。
在这里插入图片描述

  1. 修改 M35_Auto1 程序
    (1)在 M35_Auto1.c 中 M35_Auto1_MainFunc()函数中注释掉与遥控器接收机相关的程序
    (红色框),并且添加炸机强制关闭电机程序(蓝色框)
    在这里插入图片描述
    在这里插入图片描述

(2)源程序进入自动飞行状态机的判断程序为【摇杆在中间且位置解算系统就绪】如下:
在这里插入图片描述

由于遥控器和接收机都不可用,因此需要取消摇杆在中间的判断条件,将 if 语句改为:
在这里插入图片描述

(3)将按钮判断语句注释掉(蓝色框)。进入 M35 自动飞行程序状态机 case 1,设定 PWM8
接收到 8 秒低电平时,触发起飞程序:
在这里插入图片描述

  1. 取消遥控器强制保护
    源程序在姿态控制中添加了遥控器强制保护代码,需要取消保护,将 ctrl_Altitude.c 中
    的强制保护代码(红色框)注释掉。
    在这里插入图片描述

三、 实验方案
将桨拆掉进行试验!安全第一!
给无人机上电,无人机进行初始化,初始化完成后用一根杜邦线将 PWM8 接口的 S 和
GND 相连,两秒后屏幕熄灭表示进入 M35 模式,等待 8 秒后,电机开始转动,证明程序正
确,此时上桨,在杜邦线连接后,人尽可能远离无人机,无人机起飞后会自动降落。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2020电赛绕障飞行无人机无遥控自动飞行解决方案(Ti) 的相关文章

  • Latex中插入eps图片不显示,显示空白

    Latex中插入eps图片变异后 xff0c 生成的pdf文件中 xff0c 图片为空白 在文章开头 documentclas 后面添加如下代码即可 usepackage graphicx usepackage epstopdf 或者 us
  • C/C++ 信号量 CreateSemaphore 用法

    HANDLE CreateSemaphore LPSECURITY ATTRIBUTES lpSemaphoreAttributes SD LONG lInitialCount initial count LONG lMaximumCoun
  • 单片机寄存器的位操作

    1 连续多位需要操作 假如需要将B16的D8 D10位改为0001 xff0c 但是更改D8 D10位时又不能改变其它位状态 xff1a 所以需要先将D8 D10位 清0 xff0c 再改为0001 PORTB gt PCR 16 amp
  • DockerFile编写、加载、镜像保存、上传阿里云镜像

    DockerFile用来构建docker镜像文件 指令 说明 FROM 指定基础镜像 MAINTAINER 镜像是谁写的 xff0c 姓名 43 邮箱 RUN 镜像构建的时候需要运行的命令 ADD 将本地文件添加到容器中 xff0c tar
  • 手把手教你写一个属于自己的库

    写在前面 xff1a 本文章使用devc 43 43 xff0c 若用VC的别进来 xff01 如果你不知道怎么写库 xff0c 请参考我这篇文章 xff1a 手把手教你建立c 43 43 个人库 在新建好库文件之后 xff0c 我们就可以
  • warning: libopencv_imgcodecs.so.3.2, needed by /...warning: libpng12.so.0, needed by /usr/local/lib/

    warning libopencv imgcodecs so 3 2 needed by opt ros melodic lib libcv bridge so may conflict with libopencv imgcodecs s
  • /usr/bin/ld: warning: libopencv_imgcodecs.so.3.2, needed by /usr/lib/x86_64-linux-gnu/libopencv_high

    出现一个警告信息 xff0c 暂时不管 usr bin ld warning libopencv imgcodecs so 3 2 needed by usr lib x86 64 linux gnu libopencv highgui s
  • 灰度图像二值化-----c++实现

    前天闲着没事干 xff0c 就写了写BMP图像处理 xff0c 感觉大家还比较感兴趣 所以现在没事 xff0c 继续更新 这次简单的写了灰度图像二值化 这是什么概念呢 xff1f 图像的二值化的基本原理 图像的二值化处理就是将图像上的点的灰
  • 3D打印情况记录(1)

    打印情况记录 xff08 1 xff09 打印参数打印结果 打印参数 切片软件MakerBot Print xff0c 温度195 xff0c 材料白色pla xff0c 外壳打印速度40mm s xff0c 内衬打印速度稀疏30mm s
  • 【在VScode中使用终端命令编译运行c++程序】

    在VScode下的powershell下使用命令行编译运行c 43 43 文件 xff1a 首先 xff0c 进入文件所在的路径地址 xff1a 编译生成 exe可执行文件的不同方式 xff1a 不指定生成可执行文件的名称 xff1a 执行
  • 连接字符串strcat()函数

    strcat 函数的原型 xff1a span class hljs preprocessor include lt string h gt span span class hljs keyword char span span class
  • makefile '@' '$' '$$' '-' '-n ' 使用小结

    编译代码时 xff0c 会进程接触makefile xff0c 会涉及到一些符号 xff0c 由于不明白有些意思经常出现问题 xff0c 在此归纳一下 39 64 39 符号的使用 通常makefile会将其执行的命令行在执行前输出到屏幕上
  • 【STM32】RTC实时时钟,步骤超细详解,一文看懂RTC

    什么是RTC RTC Real Time Clock xff1a 实时时钟 RTC是个独立的定时器 RTC模块拥有一个连续计数的计数器 xff0c 在相应的软件配置下 xff0c 可以提供时钟日历的功能 修改计数器的值可以重新设置当前时间和
  • FreeRTOS学习(一)

    前言 最近正在学习和FreeRTOS相关的知识 xff0c 在此记录一下 xff0c 学习资料来自正点原子 在学习之前 xff0c 我也有一个和很多初学者共同的疑惑 Why RTOS xff1f 在探究这个问题之前 xff0c 我想先回顾一
  • stm32CUBEIDE 生成的串口初始化代码详解

    static void MX USART1 UART Init void huart1 Instance 61 USART1 huart1 Init BaudRate 61 115200 huart1 Init WordLength 61
  • Install Python 3 on Ubuntu 18.04 or 20.04

    Install Python 3 on Ubuntu 18 04 or 20 04 Step1 Check your version of PythonStep 2 Install Supporting SoftwareStep 3 Dow
  • Python 报错:Command "python setup.py egg_info" failed with error code 1

    最近做一个项目 xff0c 需要搭建很多不同的python环境 xff0c 于是我就用pip install装了很多包 xff0c 但是装包的时候我遇到了很多次这个报错 xff0c 比如这一次我在安装imgaug的时候也提示了这个错误 如图
  • FreeRTOS 常用的几个函数

    1 xff09 vTaskSuspend TaskHandle t Task ID 挂起指定任务 被挂起的任务绝不会得到CPU的使用权 xff0c 不管该任务具有什么优先 级 使用实例 static TaskHandle t LED Tas
  • FreeRTOS 任务设计注意事项

    1 FreeRTOS中程序运行的上下文包括 xff1a 中断服务函数普通任务空闲任务 1 xff09 中断服务函数是一种需要特别注意的上下文环境 xff0c 它运行在非任务的执行环境下 xff08 一般为芯片的一种特殊运行模式 xff08
  • 2022,程序员应该如何找工作

    最近找工作面了不少公司 xff0c 也有不少感悟和心得 xff0c 今天在这里分享给大家 1 想清楚自己为什么离职 每个人离职都有自己的理由 xff0c 这里列举了一些离职理由 钱给的不够干的不开心没有发展前途加班太严重回老家发展领导不好不

随机推荐

  • 我的四轴飞行器经验总结(一)

    从我看到了TED的演讲和不断冒出来大疆的无人机产品新闻开始 xff0c 我开始爱上了做四轴飞行器 xff0c 有的人可能只当做是一个电子产品制作或者DIY什么的 xff0c 可是我觉的我对四轴飞行器有着更加深的感情 xff0c 就连我的桌面
  • 环境变量设置后不生效

    不需要重启系统 xff0c 只需要重启VS
  • mac os上编译vlc视频库的踩坑之旅

    mac os上编译vlc视频库的踩坑之旅 mac os上编译vlc视频库的踩坑之旅 开始编译VLC视频库 一前期准备工作二参照官方编译文档安装软件三开始编译vlc四踩一些坑五总结 新项目开始目涉及媒体播放 xff0c 在android上多媒
  • 【JAVA】Eclipse保存时出现“Save could not be completed”问题

    问题 xff1a Save could not be completed 原因 xff1a eclipse的默认编译语言是 34 ISO 8859 1 34 xff0c 这个语言不支持中文 xff0c 所以如果编辑的程序含有中文而且编译语言
  •  MX-Linux:在distrowatch上的排名,为什么能够做到第一?

    个人观点 xff1a MX Linux 很好 MX Linux 桌面操作系统的成功 xff0c 主要有以下这几个因素 xff1a A 技术因素 xff1a 1 关键因素 xff1a MX snapshots工具 xff1b 2 次要因素 x
  • Qt 出现“程序异常结束”问题可能的解决思路

    第三方库的编译有问题 请注意 xff0c 出现此种问题绝不止这一个原因 xff0c 还包括其它很多原因 xff0c 这些原因可能千奇百怪 xff0c 需要你的开发经验去积累去发掘 在这里 xff0c 根据我自己的经验 xff0c 总结几种可
  • Qt 中如何在主窗口中添加子窗口

    方法 原理其实简单 和在窗口上动态 代码的形式 添加控件的方法一样 但需要设置一下子窗口的属性 在子窗口构造函数中添加代码 setWindowFlags Qt FramelessWindowHint 作用 隐藏子窗口的标题栏和边框 如果不隐
  • Qt5 自定义字体修改: 字体、大小以及颜色(部分要点已实测)

    Qt设置字体类型及添加字体文件 Qt 添加字体文件 1 设置支持的字体 QFont font font setFamily 34 填写字体名称 34 2 通过字体文件来设置字体 字体的名称可以是自带的 xff0c 也可以是外部的 xff0c
  • Qt QTableWidget 表格自适应 高度和宽度

    1 在MainWindow中设置 对被嵌入的子窗口进行设置 xff0c 去除子窗口的一些影响到嵌入的部件 pTable gt setWindowFlags Qt CustomizeWindowHint Qt FramelessWindowH
  • 互斥信号量和二值信号量的区别

    详解互斥信号量的概念和运行 https blog csdn net weichushun article details 122744773 互斥信号量的主要作用是对资源实现互斥访问 xff0c 使用二值信号量也可以实现互斥访问的功能 xf
  • Qt QTableWidget设置表头、菜单 背景色,以及不成功的原因

    Qt QTableWidget设置表头背景色不成功的原因 QTableWidget没有设置背景色的函数 xff0c 通过Qss样式来设置背景色 m pTable gt horizontalHeader gt setStyleSheet 34
  • Qt记住上次窗口的位置和状态

    include lt QCloseEvent gt include lt QShowEvent gt void MainWindow showEvent QShowEvent event restoreGeometry config gt
  • git-cola 使用方法

    目录 git cola 的用法实践记录 git cola 是 git的图形界面管理工具 因此 xff0c 在安装 git cola之前 xff0c 一般首先需要安装 git 官网地址 xff1a http git cola github i
  • Qt中的 DEPENDPATH 和 INCLUDEPATH 的区别

    在Qt中添加库文件的时候 xff0c Qt会自动在pro文件里生成三行配置 INCLUDEPATH 43 61 dir DEPENDPATH 43 61 dir LIBS 43 61 Ldir llibxxx includepath 和 l
  • STM32--MPU内存保护单元(一)

    先说明一下MPU xff0c MPU有很多含义 xff0c 我们常见的有 xff1a MPU xff1a Memory Protection Unit xff0c 内存保护单元 xff08 本文描述的内容 xff09 xff1b MPU x
  • Qt .pro 官方手册 Creating Project Files (*)

    Creating Project Files Qt 6 5 Creating Project Files qmake Manual Creating Project Files Qt 5 14 Qt 5 14 qmake Manual Cr
  • 感悟 编程思想:Rust,不同于面向过程思想与面向对象思想 (**)

    编程思想的演变 面向过程思想 xff1f 面向对象思想 xff1f Rust语言 xff0c 据说既有面向过程的特征 xff0c 又有面向对象的特点 xff1f 不要过分地拘泥于在一个项目中采用面向过程思想与面向对象思想 实际上 xff0c
  • 基础数据结构:单链表

    定义 单链表是一种线性数据结构 xff0c 用一组地址任意存储单元来存储数据 xff0c 存储单元分散在内存任意地址上 xff0c 存储单元之间用指针连接 单链表一般有两种 xff1a 带头结点的 xff0c 头结点不存放数据 xff0c
  • 开源飞控种类分享

    开源飞控发展 一 开源飞控发展 第一代开源飞控系统使用Arduino或其他类似开源电子平台为基础 xff0c 扩展连接各种MEMS传感器 xff0c 能够让无人机能平稳地飞起来 第二代开源飞控系统大多拥有自己的开源硬件 开发环境和社区 xf
  • 2020电赛绕障飞行无人机无遥控自动飞行解决方案(Ti)

    一 方案目标 针对部分大赛要求无人机在无遥控的情况下实现自主飞行 xff0c 本方案实现无遥控和接收机 情况下 xff0c 通过杜邦线或者按钮触发无人机进入相应模式 xff0c 执行模式对应的指令 由于 Ti 飞控有 8 个 PWM 接口