机器鸟实现扇动翅膀功能

news2024/12/28 5:36:44

1. 功能说明

本文示例将实现机器鸟扇动翅膀的功能。

2. 结构说明

       鸟类的翅膀主要由肩关节、肘关节、腕关节组成,本样机利用组合机构设计机器鸟的扑翼机构。

拥有两个关节的机器鸟扑翼机构结构图
单侧翅膀
双翅

尾部

整机

3. 电子硬件

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

主控板

Basra主控板(兼容Arduino Uno)‍

扩展板

Bigfish2.1扩展板‍

电池7.4V锂电池

       电路连接:将舵机连接在Bigfish扩展板的D3端口。

4. 功能实现

      编程环境:Arduino 1.8.19

下面提供一个机器鸟扇动翅膀的参考例程(Bird_Wing_Fly.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-05-24 https://www.robotway.com/

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

#include <Servo.h>


int _ABVAR_1_Subdivision_number = 0 ;

int _ABVAR_2_Flags = 0 ;

Servo servo_pin_3;

int _ABVAR_3_Servo3_Start = 0 ;

int _ABVAR_4_Servo3_End = 0 ;

int _ABVAR_5_Angle_Of_Each_Time = 0 ;

int _ABVAR_6_value1 = 0 ;

int _ABVAR_7_Angle_Of_Change = 0 ;

int _ABVAR_8_value2 = 0 ;


void Wing_Open();

void Wing_Close();


void setup()

{

  servo_pin_3.attach(3);

  _ABVAR_1_Subdivision_number = 14 ;


  _ABVAR_2_Flags = 0 ;


  servo_pin_3.write( 80 );


  delay( 1000 );


}


void loop()

{

  Wing_Close();

  Wing_Open();

}


void Wing_Close()

{

  _ABVAR_3_Servo3_Start = 10 ;

  _ABVAR_4_Servo3_End = 80 ;

  _ABVAR_5_Angle_Of_Each_Time = ( abs( ( _ABVAR_3_Servo3_Start - _ABVAR_4_Servo3_End ) ) / _ABVAR_1_Subdivision_number ) ;

  if (( ( ( _ABVAR_3_Servo3_Start - _ABVAR_4_Servo3_End ) ) > ( 1 ) ))

  {

    _ABVAR_2_Flags = -1 ;

  }

  else

  {

    _ABVAR_2_Flags = 1 ;

  }

  for (_ABVAR_6_value1= 1; _ABVAR_6_value1<= ( ( _ABVAR_1_Subdivision_number + 1 ) ); _ABVAR_6_value1++ )

  {

    _ABVAR_7_Angle_Of_Change = ( _ABVAR_3_Servo3_Start + ( _ABVAR_5_Angle_Of_Each_Time * _ABVAR_2_Flags ) ) ;

    servo_pin_3.write( _ABVAR_7_Angle_Of_Change );

    _ABVAR_3_Servo3_Start = _ABVAR_7_Angle_Of_Change ;

    delay( 28 );

  }

}


void Wing_Open()

{

  _ABVAR_3_Servo3_Start = 80 ;

  _ABVAR_4_Servo3_End = 10 ;

  _ABVAR_5_Angle_Of_Each_Time = ( abs( ( _ABVAR_3_Servo3_Start - _ABVAR_4_Servo3_End ) ) / _ABVAR_1_Subdivision_number ) ;

  if (( ( ( _ABVAR_3_Servo3_Start - _ABVAR_4_Servo3_End ) ) > ( 1 ) ))

  {

    _ABVAR_2_Flags = -1 ;

  }

  else

  {

    _ABVAR_2_Flags = 1 ;

  }

  for (_ABVAR_8_value2= 1; _ABVAR_8_value2<= ( ( _ABVAR_1_Subdivision_number + 1 ) ); _ABVAR_8_value2++ )

  {

    _ABVAR_7_Angle_Of_Change = ( _ABVAR_3_Servo3_Start + ( _ABVAR_5_Angle_Of_Each_Time * _ABVAR_2_Flags ) ) ;

    servo_pin_3.write( _ABVAR_7_Angle_Of_Change );

    _ABVAR_3_Servo3_Start = _ABVAR_7_Angle_Of_Change ;

    delay( 65 );

  }

}

 程序源代码及样机3D文件资料内容详见 机器鸟-扇动翅膀

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

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

相关文章

使用Optuna进行PyTorch模型的超参数调优

Optuna是一个开源的超参数优化框架&#xff0c;Optuna与框架无关&#xff0c;可以在任何机器学习或深度学习框架中使用它。本文将以表格数据为例&#xff0c;使用Optuna对PyTorch模型进行超参数调优。 Optuna可以使用python pip安装&#xff0c;如pip install Optuna。也可以使…

【Spring】— 动态SQL :<foreach>元素、<bind>元素

目录 <foreach>元素<bind>元素 <foreach>元素 MyBatis中已经提供了一种用于数组和集合循环遍历的方式&#xff0c;那就是使用<foreach>元素。假设在一个用户表中有1000条数据&#xff0c;现在需要将id值小于100的用户信息全部查询出来&#xff0c;就可…

MFC(十三)多个对话框

设置向导模式 1.打开类视图&#xff0c;右键项目--->类向导-->添加Cpropsheet类&#xff0c;命名为mypropsheet CPropertySheet 是 MFC 的一个类&#xff0c;用于创建包含多个属性页的对话框。它可以使用内置的向导模式&#xff0c;向用户显示“下一步”和“上一步”按…

unity创建urp的方法

Unity里URP项目的介绍和创建 URP(Universal Render Pipeline)通用渲染管线&#xff0c;是Unity在2019.3版本之后推出的一种新的渲染管线。 对比起默认的渲染管线&#xff0c;他的使用上会产生了一些变化&#xff0c;包括了摄像机的使用、Shader的编写等。 传统的渲染管线在渲染…

采用动态规划来处理有向无环图最短路径问题,c++实现

采用动态规划来处理有向无环图最短路径问题&#xff0c;c实现 需求描述实现思路代码实现 需求描述 如图&#xff0c;在一个无环有向图中&#xff0c;找到起点0到终点的最短路径 实现思路 设s1,s2,…, st 是一条最短路径假设s1&#xff0c;s2&#xff0c;已求出&#xff0c;则…

JS 事件循环机制、调用栈、堆、主线程、宏任务队列、微任务队列、缓存管理之间的关系

一、事件循环机制 你是否想过&#xff0c;在控制台执行代码时&#xff0c;为什么能立即得到响应&#xff1f; 实际上&#xff0c;底层有一套模型机制叫 事件循环&#xff0c;换句话说&#xff0c;它是一个”死循环“&#xff0c; 里面负责监听&执行我们写的 JS 代码&#…

spring+springMVC+mybatis实现的物业管理系统

本系统借用了前辈的页面框架来实现了一个物业管理系统&#xff0c;使用到的主要技术有&#xff1a;SSM框架&#xff0c;MySql 8.0数据库&#xff0c;tomcat 8.0&#xff0c;使用maven进行依赖管理&#xff0c;前端页面使用的是jsp。整个系统分为用户端和管理员端。 用户端功能有…

Vue.js 中的权限控制是什么?如何进行权限控制?

Vue.js 中的权限控制是什么&#xff1f;如何进行权限控制&#xff1f; 在现代 Web 应用程序中&#xff0c;权限控制是一个重要的话题。Vue.js 作为一种现代的前端框架&#xff0c;提供了一些有用的工具和技术来实现权限控制。本文将介绍 Vue.js 中的权限控制的概念、作用以及如…

一文教你认清云渲染的优势和劣势

在当今数字化时代&#xff0c;云渲染作为一项创新的技术方案&#xff0c;正逐渐成为许多行业中的热门话题。与传统的本地渲染相比&#xff0c;云渲染具备许多独特的优势和劣势。本文将深入探讨云渲染的各项特点&#xff0c;帮助您全面了解这一技术&#xff0c;并为您提供有关云…

js+canvas实现劈腿关系图

【我愿称多对一 一对多关系为劈腿关系】 【仓库地址】gitgithub.com:yyccmmkk/rl.git 【显示所有线路细节】 【合并线路】 【合并同一个目标点线路】 【合并同一个出发点线路】 【数据结构】 原始数据只需要提供节点自身id 父点节id&#xff0c;劈腿关系图自动处理 [{id:z…

基于CSDN上海城市开发者社区第一次线下沙龙的筹备经验分享

引言 由于时间较为紧张、邹老师行程安排紧凑等因素影响&#xff0c;结合实际情况&#xff0c;改茶话会为聚餐&#xff0c;所以在举办线下沙龙的时候一定要根据实际情况来斟酌活动形式。本次活动是和哈士奇&#xff0c;哈哥一起筹备&#xff0c;也得到了哈哥的大力支持&#xff…

如何进行物联网开发可以快速完成产品研发?

物联网产品的研发与开发过程&#xff0c;是一个不断探索、创新、实践的过程&#xff0c;需要很长的周期&#xff0c;在这个过程中&#xff0c;项目团队往往需要投入大量的人力、物力和时间。同时&#xff0c;物联网产品研发过程中还涉及到大量的专业技术和知识&#xff0c;需要…

从git上拉取项目

目录 一、前期准备&#xff0c;获取git下载链接 二、idea下载 2.1.打开git下载界面 2.2.进入下载界面 2.3.下载前期配置 2.4.输入账号密码 2.5.下载完成后idea打开 2.6.下载完成后文件目录展示 三、命令行下载 3.1.打开所需要下载的项目路径 3.2.进入黑窗口 …

【算法系列之数组I】leetcode54.螺旋矩阵

704. 二分查找 力扣题目链接 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 输入: nums [-1,0,3,5,9,12], target 9…

【618备战巡礼】“三高”之第一高--如何打造高可用系统 | 京东云技术团队

前言 我们经常会说互联网“三高”&#xff0c;那什么是三高呢&#xff1f;我们常说的三高&#xff0c;高并发、高可用、高性能&#xff0c;这些技术是构建现代互联网应用程序所必需的。对于京东618备战来说&#xff0c;所有的中台系统服务&#xff0c;无疑都是围绕着三高来展开…

一文说清DC-DC BUCK电路(非常详细)

目录 摘要 BUCK原理 DC-DC芯片框图 自举电容 输出电感 输出电容和纹波 损耗 总结 摘要 DC-DC BUCK&#xff0c;是硬件工程师工作中使用频率非常高的电路&#xff0c;可以这么说&#xff0c;只要板子不是迷你型的&#xff0c;十有八九都有DC-DC。因此&#xff0c;对它的…

Win10安装mac虚拟机

参考文章 按照上面的参考文章进行了安装并完成了安装&#xff0c;结合安装过程中遇到的问题&#xff0c;进行一个总结。 要想在win10上安装mac虚拟机&#xff0c;需要准备三样东西&#xff1a; &#xff08;1&#xff09;虚拟机平台&#xff1a;用来装载mac虚拟机 &#xf…

【分布族谱】学生t分布,及其与正态分布、卡方分布的关系

文章目录 简介正态分布与卡方分布用scipy来验证三者关系 简介 1908年&#xff0c;戈塞特在酿酒厂工作&#xff0c;由于酒厂禁止员工发表酿酒相关的研究成果&#xff0c;所以他以Student为笔名发表了有关t分布的研究&#xff0c;故而这个著名的分布被命名为学生分布。 如果有两…

计算机基础--->操作系统(3)【内存管理】

文章目录 内存管理内存管理主要做什么&#xff1f;什么是内存碎片&#xff1f;常见内存管理方式虚拟内存什么是虚拟内存&#xff1f;虚拟内存的作用&#xff1f;没有虚拟内存的问题什么是虚拟地址和物理地址&#xff1f; 分段机制分页机制转址旁路缓存&#xff08;TLB、快表&am…

MySQL唯一约束失效深度剖析

详细情况&#xff1a; 业务反馈&#xff1a;“用int查出来有两条数据&#xff0c;char类型查出来只有一条数据 &#xff0c;这几个字段还是uk的 ”&#xff08;版本MySQL 5.7.25&#xff09; 表结构如下&#xff1a; CREATE TABLE test_table (id bigint(20) NOT NULL AUTO_IN…