电子说
1. 运动功能说明
本文示例将实现R330样机机器鱼胸鳍能够灵活的上下摆动的功能。
2. 结构说明
本样机采用舵机模块来进行仿生机器鱼结构的设计。
胸鳍 整机
3. 电子硬件
在这个示例中,我们采用了以下硬件,请大家参考:
主控板 | Basra主控板(兼容Arduino Uno) |
扩展板 | Bigfish2.1扩展板 |
电池 | 7.4V锂电池 |
电路连接:将舵机连接在Bigfish扩展板的D4端口。
4. 运动功能实现
编程环境:Arduino 1.8.19
下面提供一个机器鱼胸鳍上下摆动的参考例程(fishQi.ino),例程源代码详见(https://www.robotway.com/h-col-236.html),实验效果可参考网站演示视频。
/*------------------------------------------------------------------------------------ 版权说明: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-23 https://www.robotway.com/ ------------------------------*/ #include < Servo.h > int _ABVAR_1_angle_current2 = 0 ; int _ABVAR_2_num = 0 ; Servo servo_pin_4; int _ABVAR_3_angle_current1 = 0 ; void up_down(); void down_up(); void setup() { servo_pin_4.attach(4); } void loop() { down_up(); up_down(); } void down_up() { _ABVAR_1_angle_current2 = 30 ; for (_ABVAR_2_num= 1; _ABVAR_2_num<= ( 16 ); _ABVAR_2_num++ ) { _ABVAR_1_angle_current2 = ( _ABVAR_1_angle_current2 + 5 ) ; servo_pin_4.write( _ABVAR_1_angle_current2 ); delay( 50 ); } } void up_down() { _ABVAR_3_angle_current1 = 110 ; for (_ABVAR_2_num= 1; _ABVAR_2_num<= ( 16 ); _ABVAR_2_num++ ) { _ABVAR_3_angle_current1 = ( _ABVAR_3_angle_current1 - 5 ) ; servo_pin_4.write( _ABVAR_3_angle_current1 ); delay( 50 ); } }
下面再给大家提供一个机器鱼鱼尾摆动的参考例程(fishTail.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-23 https://www.robotway.com/ ------------------------------*/ #include < Servo.h > int _ABVAR_1_angle_right = 0 ; int _ABVAR_2_num = 0 ; Servo servo_pin_4; int _ABVAR_3_angle_left = 0 ; void Right_Left(); void left_Right(); void setup() { servo_pin_4.attach(4); } void loop() { left_Right(); Right_Left(); } void Right_Left() { _ABVAR_1_angle_right = 70 ; for (_ABVAR_2_num= 1; _ABVAR_2_num<= ( 8 ); _ABVAR_2_num++ ) { _ABVAR_1_angle_right = ( _ABVAR_1_angle_right + 5 ) ; servo_pin_4.write( _ABVAR_1_angle_right ); delay( 100 ); } } void left_Right() { _ABVAR_3_angle_left = 110 ; for (_ABVAR_2_num= 1; _ABVAR_2_num<= ( 8 ); _ABVAR_2_num++ ) { _ABVAR_3_angle_left = ( _ABVAR_3_angle_left - 5 ) ; servo_pin_4.write( _ABVAR_3_angle_left ); delay( 100 ); } }
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !