机器谱

R329】机器鸟

作者:机器谱

图文展示3264(1)

图文展示3264(1)

副标题

扇动翅膀
摆动尾巴

1. 功能说明

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

2. 结构说明

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

扇动翅膀

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

单侧翅膀

双翅

尾部

整机

3. 电子硬件

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

主控板

Basra主控板(兼容Arduino Uno)

扩展板

Bigfish2.1扩展板

电池7.4V锂电池


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

  版权说明: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 );

  }

}

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

4. 功能实现

      编程环境:Arduino 1.8.19

下面提供一个机器鸟扇动翅膀的参考例程(Bird_Wing_Fly.ino),实验效果可参考演示视频。

5. 资料清单

序号

内容
1

【R329】-扇动翅膀-程序源代码

2
【R329】-扇动翅膀-样机3D文件


文件下载
【整体打包】-【R329】机器鸟-扇动翅膀-资料附件.zip
2.25MB下载6次下载
上一页 1 下一页

摆动尾巴

1. 功能说明

      本文示例将实现R329样机机器鸟摆动尾巴的功能。

2. 电子硬件

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

主控板

Basra主控板(兼容Arduino Uno)

扩展板

Bigfish2.1扩展板

电池7.4V锂电池


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

  版权说明: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>

Servo servo_pin_3;

Servo servo_pin_4;

int _ABVAR_1_angle_first = 0 ;

int _ABVAR_2_num = 0 ;

int _ABVAR_3_angle_second = 0 ;

void swing_reset();

void leftUp_Swing();

void setup()

{

  servo_pin_3.attach(3);

  servo_pin_4.attach(4);

  servo_pin_3.write( 100 );

  servo_pin_4.write( 14 );

  delay( 1000 );

}

void loop()

{

  leftUp_Swing();

  swing_reset();

}

void leftUp_Swing()

{

  _ABVAR_1_angle_first = 100 ;

  for (_ABVAR_2_num= 1; _ABVAR_2_num<= ( 14 ); _ABVAR_2_num++ )

  {

    _ABVAR_1_angle_first = ( _ABVAR_1_angle_first - 5 ) ;

    servo_pin_3.write( _ABVAR_1_angle_first );

    delay( 50 );

  }

  delay( 1000 );

}

void swing_reset()

{

  _ABVAR_3_angle_second = 30 ;

  for (_ABVAR_2_num= 1; _ABVAR_2_num<= ( 14 ); _ABVAR_2_num++ )

  {

    _ABVAR_3_angle_second = ( _ABVAR_3_angle_second + 5 ) ;

    servo_pin_3.write( _ABVAR_3_angle_second );

    delay( 50 );

  }

  delay( 1000 );

}

电路连接:将两个舵机分别连接在Bigfish扩展板的D4、D3端口。

3. 功能实现

      编程环境:Arduino 1.8.19

      实现思路:实现机器鸟尾部从水平位置摆动到左上方,再恢复水平的过程。

下面提供一个参考例程(bridTail_leftSwing.ino),实验效果可参考演示视频。

4. 资料清单

序号

内容
1

【R329】-摆动尾巴-程序源代码


文件下载
【整体打包】-【R329】机器鸟-摆动尾巴-资料附件.zip
2.71KB下载1次下载
上一页 1 下一页
© 2022 机器时代(北京)科技有限公司  版权所有
机器谱——机器人共享方案网站
学习  开发  设计  应用