极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2241|回复: 0

机器鸟实现扇动翅膀功能

[复制链接]
发表于 2023-6-12 10:25:44 | 显示全部楼层 |阅读模式
本帖最后由 机器谱 于 2023-6-12 10:25 编辑

1. 功能说明
       本文示例将实现R329样机机器鸟扇动翅膀的功能。


2. 结构说明

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

拥有两个关节的机器鸟扑翼机构结构图

单侧翅膀
双翅
尾部
整机

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

主控板
Basra主控板(兼容Arduino Uno)
扩展板
Bigfish2.1扩展板
电池
7.4V锂电池

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


4. 功能实现
       编程环境:Arduino 1.8.19
下面提供一个机器鸟扇动翅膀的参考例程(Bird_Wing_Fly.ino),实验效果可参考官网演示视频。
  1. /*------------------------------------------------------------------------------------

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

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

  4.            https://opensource.org/licenses/MIT

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

  6.   ------------------------------*/

  7. #include <Servo.h>


  8. int _ABVAR_1_Subdivision_number = 0 ;

  9. int _ABVAR_2_Flags = 0 ;

  10. Servo servo_pin_3;

  11. int _ABVAR_3_Servo3_Start = 0 ;

  12. int _ABVAR_4_Servo3_End = 0 ;

  13. int _ABVAR_5_Angle_Of_Each_Time = 0 ;

  14. int _ABVAR_6_value1 = 0 ;

  15. int _ABVAR_7_Angle_Of_Change = 0 ;

  16. int _ABVAR_8_value2 = 0 ;


  17. void Wing_Open();

  18. void Wing_Close();


  19. void setup()

  20. {

  21.   servo_pin_3.attach(3);

  22.   _ABVAR_1_Subdivision_number = 14 ;


  23.   _ABVAR_2_Flags = 0 ;


  24.   servo_pin_3.write( 80 );


  25.   delay( 1000 );


  26. }


  27. void loop()

  28. {

  29.   Wing_Close();

  30.   Wing_Open();

  31. }


  32. void Wing_Close()

  33. {

  34.   _ABVAR_3_Servo3_Start = 10 ;

  35.   _ABVAR_4_Servo3_End = 80 ;

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

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

  38.   {

  39.     _ABVAR_2_Flags = -1 ;

  40.   }

  41.   else

  42.   {

  43.     _ABVAR_2_Flags = 1 ;

  44.   }

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

  46.   {

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

  48.     servo_pin_3.write( _ABVAR_7_Angle_Of_Change );

  49.     _ABVAR_3_Servo3_Start = _ABVAR_7_Angle_Of_Change ;

  50.     delay( 28 );

  51.   }

  52. }


  53. void Wing_Open()

  54. {

  55.   _ABVAR_3_Servo3_Start = 80 ;

  56.   _ABVAR_4_Servo3_End = 10 ;

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

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

  59.   {

  60.     _ABVAR_2_Flags = -1 ;

  61.   }

  62.   else

  63.   {

  64.     _ABVAR_2_Flags = 1 ;

  65.   }

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

  67.   {

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

  69.     servo_pin_3.write( _ABVAR_7_Angle_Of_Change );

  70.     _ABVAR_3_Servo3_Start = _ABVAR_7_Angle_Of_Change ;

  71.     delay( 65 );

  72.   }

  73. }
复制代码

5. 资料下载

资料内容:
①扇动翅膀-程序源代码
②扇动翅膀-样机3D文件
资料下载地址:https://www.robotway.com/h-col-231.html

想了解更多机器人开源项目资料请关注 机器谱网站 https://www.robotway.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-29 13:34 , Processed in 0.048918 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表