舵机云台实现体感姿态跟随功能

news2024/11/25 21:29:37

1. 功能说明

 本文示例将实现R207样机舵机云台根据六轴陀螺仪传感器数据实现姿态跟随的功能。

 

2. 电子硬件

      在这个示例中,我们采用了以下硬件,请大家参考:

主控板

Basra主控板(兼容Arduino Uno)‍

扩展板

Bigfish2.1扩展板‍

传感器六轴陀螺仪
电池7.4V锂电池

 电路连接说明:

      ① 六轴陀螺仪传感器连接在Bigfish扩展板的GND、VCC(3.3V)、RX、TX;

      ② 底座舵机0号连接在Bigfish扩展板的(GND、VCC、D4);

      ③ 摆动舵机1号连接在Bigfish扩展板的(GND、VCC、D3)。

 3. 功能实现

      编程环境:Arduino 1.8.19

      实现思路:舵机云台可以根据陀螺仪传感器的数据实现姿态跟随。

六轴陀螺仪实物与空间坐标系的对应关系:

 3.1 测试数据

     ① 测试舵机云台的两个舵机初始角度,记录数据;

     ② 测试六轴陀螺仪传感器的姿态数据。

下表是本实验中测试出的实验数据,大家可参考格式,测试出自己的实验数据。

物料

测试数据

舵机0

0   ---   180‍

舵机1

0   ---   110‍

陀螺仪的加速度包X轴数据从左到右转动陀螺仪,数据从(+1.01,-1.05)逐渐减小;中值为0;

陀螺仪的加速度包Y轴数据

沿Y轴俯仰陀螺仪时,数据从(-1.15,1.01)逐渐增大;中值为0;

 3.2 示例程序

     根据已测数据编写程序,下面提供一个参考例程(body_feeling_attitude.ino):

/*------------------------------------------------------------------------------------

  版权说明:Copyright 2023 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.

           Distributed under MIT license.See file LICENSE for detail or copy at

           https://opensource.org/licenses/MIT

           by 机器谱 2023-04-24 https://www.robotway.com/

  ------------------------------*/

/*   

    功能:云台可以根据陀螺仪传感器的数据实现姿态跟随

    接线:陀螺仪传感器接在扩展板的Gnd、Vcc(3.3v)、RX、TX;

          底座舵机0号接在扩展板的(Gnd、Vcc、D4);

          摆动舵机1号接在扩展板的(Gnd、Vcc、D3)

*/

#include<Servo.h>   //调用舵机库函数

#include<Math.h>

Servo myservo[2];   //声明两个舵机

int myservopin[2] = {4, 3}; // 定义舵机的引脚

#define Gyroscope_left_LimitAngle_X   -1.05   //读取到陀螺仪 X 轴向左偏的极限数值

#define Gyroscope_Right_LimitAngle_X   1.01   //读取到陀螺仪 X 轴向右偏的极限数值

#define Gyroscope_Middle_LimitAngle_X   0    //读取到陀螺仪 X 轴平放时的数值

#define Gyroscope_left_LimitAngle_Y   -1.05   //读取到陀螺仪 Y 轴向左偏的极限数值

#define Gyroscope_Right_LimitAngle_Y   1.01   //读取到陀螺仪 Y 轴向右偏的极限数值

#define Gyroscope_Middle_LimitAngle_Y   0    //读取到陀螺仪 Y 轴平放时的数值


#define Servo_One_Mix_Angle 0       //1号舵机最小角度

#define Servo_One_Max_Angle 180     //1号舵机最大角度

#define Servo_Two_Mix_Angle 0       //2号舵机最小角度

#define Servo_Two_Max_Angle 110     //2号舵机最大角度

#define Servo_Speed 10              //舵机速度


unsigned char Re_buf[11],counter=0;

unsigned char sign=0;

float a[3],w[3],angle[3],T;

int servo_angle_current[2] = {0,0};

float value_init[2]={90,90};

float f = 10.0;                     //舵机的频率


void setup()

{

   Serial.begin(115200);           //打开串口,并设置波特率为115200

   myservo[0].attach(myservopin[0]);

   myservo[1].attach(myservopin[1]);

}


void loop()

{

   Get_gyroscope_And_Control();   //根据陀螺仪传感器的数据实现姿态跟随

}

注意:本次实验测试数据对应的程序位置如下图所示,大家可尝试输入自己的实验数据参数,修改这段程序,使舵机云台的姿态跟随更加流畅。

体感姿态跟随-程序源代码资料内容详见 舵机云台-体感姿态跟随

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/566258.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【012】C++循环控制语句 for 和 while 详解

C循环控制语句 for 和 while 详解 引言一、循环控制语句 for1.1、for 循环语句1.2、break和continue1.3、for循环的嵌套 二、循环控制语句while2.1、while循环语句2.2、break和continue2.3、do...while()循环语句 总结 引言 &#x1f4a1; 作者简介&#xff1a;专注于C/C高性能…

【JavaSE】Java基础语法(九):封装

文章目录 ☔1. private关键字☔2. private关键字的使用☔3. this关键字☔4. this内存原理☔5. 封装思想 ☔1. private关键字 概述 : private是一个修饰符&#xff0c;可以用来修饰成员&#xff08;成员变量&#xff0c;成员方法&#xff09; 特点 : 被private修饰的成员&…

公网远程连接Redis数据库【内网穿透】

文章目录 1. Linux(centos8)安装redis数据库2. 配置redis数据库3. 内网穿透3.1 安装cpolar内网穿透3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址4.1 保留一个固定tcp地址4.2 配置固定TCP地址4.3 使用固定的tcp地址连接 转发自cpolar内网穿透的文章&#xff1a;公网远程连接…

(El-button-group)解决:优化 el-button 实现 button 相连且动态切换的使用案例(涉及:动态绑定 class )

Ⅰ、Element-ui 提供的组件与想要目标情况的对比&#xff1a; 1、Element-ui 提供组件情况&#xff1a; 其一、Element-ui 自提供的代码情况为(示例的代码&#xff0c;例子如下)&#xff1a; // Element-ui 自提供的代码&#xff1a; <template><div><el-but…

深度解析多线程的创建方式和正确启动多线程

一、创建多线程 1. 实现多线程 java 实现多线程的方式准确来说有两种&#xff08;oracle官方文档说的&#xff09;&#xff1a; &#xff08;1&#xff09;实现 Runnable 接口&#xff0c; 重写run()函数&#xff0c;运行start()方法 代码演示&#xff1a; /*** 用Runnable…

移动端浏览器性能优化探索

在移动端的页面开发过程中&#xff0c;我们经常提及页面性能优化、消除页面卡顿的话题&#xff0c;如何确定优化策略&#xff0c;我们首先应当对页面卡顿的行为有所认知。 前言 &#xfeff; 页面的卡顿现象可以比较明确的分为三个类型&#xff0c;分别是 “画面撕裂” 、“丢帧…

让你不再好奇怎么给小说配音

你是否曾经想象过&#xff0c;当你在读小说时&#xff0c;你可以听到人物的声音&#xff0c;感受到情感和气氛的变化&#xff1f;有声书的出现已经让这一切成为可能。然而&#xff0c;如何为小说创造生动的配音效果却是一个需要仔细考虑的问题。如果你还不知道怎么给小说配音的…

酷开会员丨版权时代,酷开科技打造更多优质内容服务消费者

以版权产业为核心的文化产业&#xff0c;需要重视版权、鼓励创新&#xff0c;才能形成文化创新的环境与氛围&#xff0c;这也是版权时代的发展趋势。在版权时代&#xff0c;付费观看是基本意识&#xff0c;比如电视内容供应方提供了大量免费的资源&#xff0c;观众为观看更精良…

数据结构之二叉树的基本实现

在我们之前已经了解的堆这样的完全二叉树的实现&#xff0c;也对树型结构有了一些了解&#xff0c;那么今天我们来看看二叉树的一些性质。 因为二叉树是一种每个节点至多只有两个子树&#xff08;即二叉树的每个节点的度不大于2&#xff09;&#xff0c;并且二叉树的子树有左右…

二、Django REST Framework (DRF)序列化反序列化数据校验

参考&#xff1a; DRF 官方文档&#xff1a; Serializers - Django REST framework中文站点 为什么要学DRF和什么是REST API | 大江狗的博客 上一章&#xff1a; 一、Django REST Framework (DRF)& RESTful 风格api_做测试的喵酱的博客-CSDN博客 下一章&#xff1a;…

【C++】类和对象(中上):类的六个默认成员函数——构造函数、析构函数、拷贝构造函数!

目录 前言&#xff1a; 一、类的默认成员函数&#xff1a; 二、构造函数&#xff1a; 1.特性&#xff1a; 构造函数调用规则&#xff1a; 1.无参数的构造函数&#xff08;默认构造函数&#xff09;&#xff1a; 2.带参数的构造函数&#xff1a; 3.全缺省的构造函数&…

Qt编写视频监控系统75-计算实时码率并显示

一、前言 做监控摄像头的实时视频显示&#xff0c;一般还会要求统计实时码率显示在通道画面上&#xff0c;一个是为了测试下整个软件的性能&#xff0c;同时也看下当前到底是主码流还是子码流&#xff0c;设备到底是不是真的按照设定的码流大小来传输视频数据的。视频码率就是…

【Mysql】 数据类型

文章目录 【Mysql】 数据类型数据类型分类数值类型1. tinyint类型2. bit类型3. 小数类型 字符串类型1.char2.varchar3. 日期和时间类型4. enum 和 set 【Mysql】 数据类型 mysql中数据类型的作用&#xff1a; 约束操作者的行为更清晰的代码逻辑不同的功用 – 例如&#xff0c…

【JavaSE】Java基础语法(八)

文章目录 &#x1f353;1. 类和对象&#x1f379;&#x1f379;1.1 类和对象的关系&#x1f379;&#x1f379;1.2 类的定义 &#x1f353;2. 对象内存图&#x1f379;&#x1f379;2.1 单个对象内存图&#x1f379;&#x1f379;2.2 多个对象内存图2.3 多个对象指向相同内存图…

统计学_贾俊平——思考题第9章 分类数据分析

1&#xff0e;简述列联表的构造与列联表的分布。 答&#xff1a;列联表是将两个以上的变量进行交叉分类的频数分布表。 列联表的分布可以从两个方面看&#xff0c;一个是观察值的分布&#xff0c;又称为条件分布&#xff0c;每个具体的观察值就是条件频数&#xff1b;一个是期望…

【数据结构】树的认识

一个人的未来不是预测出来的&#xff0c;而是创造出来的。 -- 亚当詹姆斯目录 &#x1f341;前言&#xff1a; &#x1f340;一.什么是树&#xff1f; &#x1f351;二.树有什么用&#xff1f; ❤️1. 数据库 &#x1f9e1;2. 文件系统 &#x1…

chatgpt赋能python:PythonUSB摄像头-拍摄更美好的瞬间

Python USB摄像头 - 拍摄更美好的瞬间 在过去的几年中&#xff0c;摄影已经迅速成为了一种爆炸性的趋势。人们希望能够记录下人生中的美好瞬间&#xff0c;分享给全球的亲朋好友。而USB摄像头的普及与发展使得照片拍摄变得更加便利。而在这其中&#xff0c;Python也扮演了一个…

spingboot+jsp仓储型物流企业车辆运输管理系统

随着时代的进步,物流车辆运输行业也逐渐变得庞大起来。当然,物流车辆运输公司要想做大做强,就有必要有自己完整的一套物流车辆运输管理系统。这必将为物流管理公司提供规范化的管理模式,在各个部门之间有效的协调、合作过程中必将为物流车辆公司提供大量的客户生源,争取赢得最大…

6.4_7关键路径

上一节我们学的叫做AOV网&#xff08;activity on vertex&#xff09; 这一节我们是(activity on edge network) 顶点表示事件是一瞬间发生的事情。边上的权值表示完成该活动的开销。 AOE网中&#xff0c;有些事情是可以并行的。 前后活动之间存在依赖关系&#xff0c;我i们要知…

python绘制密度图

本期目录 1、绘图参数2、使用 matplotlib 库绘制密度图时常用的参数3、案例4、 运行结果python绘图往期系列文章目录 1、绘图参数 可以使用多种库来绘制密度图&#xff0c;其中最常用的是 seaborn 和 matplotlib。以下是使用 seaborn 库绘制密度图时常用的参数&#xff1a; i…