0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

小型三节履带底盘的制作

jf_72402704 来源:jf_72402704 作者:jf_72402704 2023-01-29 09:15 次阅读

1.运动功能说明

双节履带车可以通过两个驱动轮的差速运动来实现前进、后退、原地转向、大半径转向等基本行驶功能,并可通过舵机关节模块进行小臂的抬起和落下。通过底盘运动与小臂运行的结合,实现上台阶、通过坑洼地面等功能。

poYBAGPU2qmAQSpEAClc7y-aRzo800.png
pYYBAGPU2quAOW4oAEhD9SXtnQg440.png
pYYBAGPU2rCADKIGAJ_tEKt-oGw226.png
poYBAGPU2q6AFXirAIo6j_FXtgk279.png

2. 结构说明

该样机由两组 三节共源驱动履带模组 ,和2个 舵机摆动关节 构成,履带呈轴对称分布在车架上,舵机关节模块驱动小臂抬起。如下图所示,左下和右上的圆周舵机驱动履带,左上的舵机关节驱动上面的两个小臂,右下的舵机关节驱动下面的两个小臂。

poYBAGPU2vCADaLIAANGsR6hFJk512.png

3. 运动功能实现

3.1 电子硬件

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

poYBAGPU2wuAYMdmAAAQFR0F-04368.png

将2个圆周舵机分别装在Bigfish扩展板的舵机引脚上,左侧圆周舵机接D4号引脚;右侧圆周舵机接D3号引脚;将车头关节模块的舵机接在D7号引脚;车尾关节模块的舵机接在D8号引脚。并将主控板和电池在车身固定好。

pYYBAGPU2yqAZ1amAAKv01DlFNY234.png

3.2 编写程序【完整代码详见https://www.robotway.com/h-col-133.html】

编程环境:Arduino 1.8.19

前摆臂运动的代码:

/*------------------------------------------------------------------------------------
版权说明:Copyright 2022 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 机器谱 2022-5-31 https://www.robotway.com/
------------------------------------------
实验功能:
实现三节履带小车前摆臂下、上、水平动作。
三节履带车后摆臂下、上、水平动作
------------------------------------------
实验接线:
.----------------------.
| |
-------------| |--------------
后摆臂舵机:D8 | | 前摆臂舵机:D7
-------------| |--------------
| |
*----------------------*
------------------------------------------------------------------------------------*/
#include //调用舵机库
Servo ServoArmHead; //声明前摆臂舵机对象
Servo ServoArmTail; //声明后摆臂舵机对象
#define Servo_Head_Pin 7 //定义前摆臂舵机引脚号7
#define Servo_Tail_Pin 8 //定义后摆臂舵机引脚号8
#define Servo_Head_Up 130 //定义前摆臂向上时角度值
#define Servo_Head_Down 40 //定义前摆臂向下时角度值
#define Servo_Head_Level 90 //定义前摆臂保持水平时角度值
#define Servo_Tail_Up 130 //定义后摆臂向上时角度值
#define Servo_Tail_Down 40 //定义后摆臂向下时角度值
#define Servo_Tail_Level 90 //定义前摆臂保持水平时角度值
/*枚举类型.当第一个参数为1时,后面的每一个参数一次增1【如:Headdown=2,Taillevel=7】Headlevel(前摆臂水平)、
Headup(前摆臂向上)、Headdown(前摆臂向下)Taillevel(后摆臂水平)、Tailup(后摆臂向上)、Taildown(后摆臂向下)*/
enum{Headup=1,Headdown,Headlevel,Tailup,Taildown,Taillevel};
//程序初始化部分:使能舵机对象
void setup() {
ServoArmHead.attach(Servo_Head_Pin);
ServoArmTail.attach(Servo_Tail_Pin);
}
//主程序部分:前摆臂、后摆臂分别执行向上、水平、向下动作.
void loop() {
arm_state( Headup ); delay(1000); //前摆臂向上,程序等待1秒
arm_state( Headlevel); delay(1000); //前摆臂水平,程序等待1秒
arm_state( Headdown ); delay(1000); //前摆臂向下,程序等待1秒
arm_state( Tailup ); delay(1000); //后摆臂向上,程序等待1秒
arm_state( Taillevel); delay(1000); //后摆臂水平,程序等待1秒
arm_state( Taildown); delay(1000); //后摆臂向下,程序等待1秒
}
//前摆臂、后摆臂上、下、水平子函数
void arm_state(int arm_state){
switch( arm_state )
{
case Headup: ServoArmHead.write( Servo_Head_Up ); break;
case Headdown :ServoArmHead.write( Servo_Head_Down ); break;
case Headlevel:ServoArmHead.write( Servo_Head_Level); break;
case Tailup: ServoArmTail.write( Servo_Tail_Up ); break;
case Taildown :ServoArmTail.write( Servo_Tail_Down ); break;
case Taillevel:ServoArmTail.write( Servo_Tail_Level); break;
default: break;
}
}

前进功能的代码:

/*------------------------------------------------------------------------------------
版权说明:Copyright 2022 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 机器谱 2022-5-31 https://www.robotway.com/
-----------------------------------
实验功能:
实现三节履带小车前进.
注意事项:圆周舵机90度表示停止.
---------------------------------------------------
实验接线:
左轮圆周舵机:D4
| |
.----------------------.
| |
------------| |------------
| | 车头
------------| |------------
| |
*----------------------*
| |
右轮圆周舵机:D3
------------------------------------------------------------------------------------*/
#include //调用舵机库函数
#define Servo_Num 2 //定义舵机数量2
#define Left_Servo_Forward 70 //定义前进时小车左轮速度
#define Right_Servo_Forward 110 //定义前进时小车右轮速度
Servo Car_Servo[Servo_Num]; //声明舵机对象,表示声明了2个舵机对象
void Forward(); //前进
const int servo_pin[Servo_Num] = { 4, 3 };//定义舵机引脚号.
const int angle_init[Servo_Num] = { 90, 90 };//定义舵机初始化角度
//程序初始化部分:分别使能舵机对象,并设置各个舵机初始角度
void setup() {
for( int i=0;i
Car_Servo[i].attach( servo_pin[i] ); //使能舵机对象
Car_Servo[i].write( angle_init[i] ); //设置舵机初始角度
}//即设定履带小车初始为停止状态
}
//主程序部分:三节履带车前进
void loop() {
Forward();
}
//前进子程序
void Forward() {
Car_Servo[0].write( Left_Servo_Forward );
Car_Servo[1].write( Right_Servo_Forward );
}

履带底盘结合摆臂运行的代码:

/*------------------------------------------------------------------------------------
版权说明:Copyright 2022 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 机器谱 2022-5-31 https://www.robotway.com/
---------------------------------------------------------------
实验功能:
实现三节履带小车前进、后退、停止、自转、大半径转向、前摆臂向上
抬起、前摆臂水平、前摆臂向下、后摆臂向上、后摆臂水平、后摆臂向下.
【注意】:当我们给定圆周舵机一个速度时,例如50,如果我们
不给该圆周舵机停止(即90),那么该舵机会以50的速度一直转动.
--------------------------------------------------------------
实验接线:
左轮圆周舵机:D4
| |
.----------------------.
| |
-------------| |--------------
后摆臂舵机:D8 | | 前摆臂舵机:D7
-------------| |--------------
| |
*----------------------*
| |
右轮圆周舵机:D3
------------------------------------------------------------------------------------*/
#include //调用舵机库函数
#define Servo_Num 4 //定义舵机数量
Servo Car_Servo[Servo_Num]; //声明舵机对象,表示声明了3个舵机对象
const int servo_pin[Servo_Num] = { 4, 3, 7 ,8 };//定义舵机引脚号.
const int angle_init[Servo_Num] = { 90, 90, 90, 90 };//定义舵机初始化角度
/*枚举类型.当第一个参数为1时,后面的每一个参数一次增1【如:Backward=2,Taillevel=11】Forward(前进)、Backward(后退)、
TurnInPlace(原地旋转)、BigTurn(大转向)、Stop(小车停止)、Headlevel(前摆臂水平)、Headup(前摆臂向上)、
Headdown(前摆臂向下)、Taillevel(后摆臂水平)、Tailup(后摆臂向上)、Taildown(后摆臂向下)*/
enum{Forward=1,Backward,TurnInPlace,BigTurn,Stop,Headup,Headdown,Headlevel,Tailup,Taildown,Taillevel};
//程序初始化部分:分别使能舵机对象,并设置各个舵机初始角度
void setup() {
for( int i=0;i
Car_Servo[i].attach( servo_pin[i] ); //使能舵机对象
Car_Servo[i].write( angle_init[i] ); //设置舵机初始角度
}//即设定履带小车初始为停止状态
}
//主程序部分:执行小车各个状态
void loop()
{
Car_State( Headup, 1000 ); //小车前摆臂向上抬起,等待1秒
Car_State( Forward, 2000 ); //小车前进,等待2秒
Car_State( Stop, 2000 ); //小车停止,并等待2秒
Car_State( Headlevel, 1000 ); //小车前摆臂水平
Car_State( Headdown, 1000 ); //小车前摆臂向下
Car_State( Backward, 2000 ); //小车后退,等待2秒
Car_State( Tailup, 1000 ); //后摆臂向上【注意这里没写Stop,故此时的小车会一直以程序前一行的后退状态继续后退】
Car_State( Taillevel, 1000 ); //后摆臂水平
Car_State( Taildown, 1000 ); //后摆臂向下
//........后续可自行添加自己需要的小车状态........
}
/*--------------------------------------------------------------
该函数封装了小车各个状态.
参数car_state表示小车执行状态. 参数time_delay表示程序等待时间
程序使用示例:
Car_State( Forward, 1000 );表示小车执行前进动作,等待1000毫秒
Car_State( ArmUp, 1500 );表示小车执行前摆臂向上动作,等待1500毫秒
*/
void Car_State( int car_state, unsigned long time_delay ) {
switch( car_state ) {
case Headlevel: Car_Servo[2].write( 90 ); delay( time_delay); break;
case Headup: Car_Servo[2].write( 130 ); delay( time_delay); break;
case Headdown: Car_Servo[2].write( 40 ); delay( time_delay); break;
case Taillevel: Car_Servo[3].write( 90 ); delay( time_delay); break;
case Tailup: Car_Servo[3].write( 130 ); delay( time_delay); break;
case Taildown: Car_Servo[3].write( 40 ); delay( time_delay); break;
case BigTurn: Car_Servo[0].write( 60 ); Car_Servo[1].write( 104 ); delay( time_delay); break;
case Backward: Car_Servo[0].write( 120 ); Car_Servo[1].write( 60 ); delay( time_delay); break;
case Stop: Car_Servo[0].write( 90 ); Car_Servo[1].write( 90 ); delay( time_delay); break;
case Forward: Car_Servo[0].write( 70 ); Car_Servo[1].write( 110 ); delay( time_delay); break;
case TurnInPlace: Car_Servo[0].write( 60 ); Car_Servo[1].write( 60 ); delay( time_delay); break;
default: break; //否则, 程序跳出该循环.
}
}

4.扩展样机

本样机可以根据实际需要改变共源履带的长度、轮径等,也可以用其他传动方式(如齿轮组等)构造共源驱动,如下图所示:

pYYBAGPU3GaAMRSRAGtsx6pMMWs131.png
poYBAGPU3GeAVF9mAHBjtb-gzf8264.png
poYBAGPU3GqACcW_AJH8oGWBizQ228.png

5.资料内容

样机3D文件

例程源代码

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    211

    文章

    28389

    浏览量

    206933
  • 底盘
    +关注

    关注

    3

    文章

    246

    浏览量

    14674
  • 舵机
    +关注

    关注

    17

    文章

    269

    浏览量

    41016
收藏 人收藏

    评论

    相关推荐

    锂电池充电电路图如何设计 三节锂电池充电管理芯片电路图解析

       电池充电电路图如何设计?小编给大家带来三节锂电池充电管理芯片电路图解析: 关于三节锂电池供电的产品,在三节锂电池上,需要个电路系统: 1,
    发表于 12-12 12:18 2.4w次阅读

    履带底盘制作

    1.运动功能说明        斜履带底盘可以通过两侧履带的差速运动来实现前进、后退、原地转向、大半径转向等基本行驶功能。另外,倾斜的履带
    的头像 发表于 12-14 10:33 2066次阅读
    斜<b class='flag-5'>三</b>角<b class='flag-5'>履带</b><b class='flag-5'>底盘</b>的<b class='flag-5'>制作</b>

    小型平行履带底盘制作分享

    小型平行履带底盘可以通过两侧履带的 差速运动 来实现前进、后退、原地转向、大半径转向等基本行驶功能。
    的头像 发表于 01-12 14:50 3113次阅读
    <b class='flag-5'>小型</b>平行<b class='flag-5'>履带</b><b class='flag-5'>底盘</b>的<b class='flag-5'>制作</b>分享

    履带机器人 金属底盘

    ` 本帖最后由 威凯-智控 于 2012-8-14 23:28 编辑 今天给大家分享一个全金属的履带机器人底盘准备最履带机器人的朋友们,可以一起交流一下机器人疯狂爱好者 让思维沸腾起来 让智慧行动起来 共同创造机器人的精彩!
    发表于 08-14 23:25

    履带底盘的结构部分

    ,悬挂也是主要指标之一。 ,导向轮,就是前面翘起来的那个。 四,履带。很久以前曾经想过用3D打印自己做,后来放弃了,原因是。。。丫的太麻烦了,几百,每节都要几十分钟,3D打印的速度太慢了。最近又上
    发表于 02-19 03:54

    三节锂电池充电管理芯片 IC电路图如何设计

    `关于三节锂电池供电的产品,在三节锂电池上,需要个电路系统: 1,三节锂电池保护电路, 2,三节锂电池充电电路, 3,
    发表于 12-12 09:39

    三节锂电池充电管理芯片电路图

      关于三节锂电池供电的产品,在三节锂电池上,需要个电路系统:1,三节锂电池保护电路,2,三节锂电池充电电路,3,
    发表于 01-28 17:16

    ZS6063_5A三节锂电池充电管理集成电路

    ZS6063 是PWM 降压模式三节锂电池充电管理集成电路,独立对三节锂电池充电进行自动管理,具有封装外形小,外围元器件少和使用简单等优点。
    发表于 06-14 16:05 18次下载

    CW1233三节锂电池保护板的充电电路原理图合集

    本文档的主要内容详细介绍的是CW1233三节锂电池保护板的充电电路原理图合集包括了PW4203高压13V-20V降压充三节锂电池充电电路,PW4053输入5V,给三节串联锂电池充电电路
    发表于 11-10 08:00 71次下载
    CW1233<b class='flag-5'>三节</b>锂电池保护板的充电电路原理图合集

    PT6303三节锂电池保护板的充电电路原理图

    本文档的主要内容详细介绍的是PT6303三节锂电池保护板的充电电路原理图包括了:PW4203高压13V-20V降压充三节锂电池充电电路,PW4053输入5V,给三节串联锂电池充电电路
    发表于 11-10 08:00 74次下载
    PT6303<b class='flag-5'>三节</b>锂电池保护板的充电电路原理图

    PW4203三节锂电池保护板和充电电路原理图

    本文档的主要内容详细介绍的是PW4203三节锂电池保护板和充电电路原理图包括了:PW4203高压13V-20V降压充三节锂电池充电电路,PW4053输入5V,给三节串联锂电池充电电路
    发表于 11-10 08:00 58次下载
    PW4203<b class='flag-5'>三节</b>锂电池保护板和充电电路原理图

    锂电池充电电路图如何设计三节锂电池充电管理芯片电路图解析

    关于三节锂电池供电的产品,在三节锂电池上,需要个电路系统:1,三节锂电池保护电路,2,三节锂电池充电电路,3,
    发表于 03-17 21:28 105次下载
    锂电池充电电路图如何设计<b class='flag-5'>三节</b>锂电池充电管理芯片电路图解析

    蓝牙遥控履带底盘行驶

    1. 功能描述 本文提供的示例所实现的功能为:用手机APP遥控斜履带底盘样机实现移动,包括前进、停止、后退、原地左转、原地右转。   2. 电子硬件 在这个示例中,采用了以下硬件,请大家
    的头像 发表于 12-16 13:37 671次阅读
    蓝牙遥控<b class='flag-5'>履带</b><b class='flag-5'>底盘</b>行驶

    小型履带底盘制作

    1.运动功能说明 双履带车可以通过两个驱动轮的差速运动来实现前进、后退、原地转向、大半径转向等基本行驶功能,并可通过舵机关节模块进行小臂的抬起和落下。通过底盘运动与小臂运行的结合,实现上台阶、通过
    的头像 发表于 01-07 10:56 835次阅读
    <b class='flag-5'>小型</b>双<b class='flag-5'>节</b><b class='flag-5'>履带</b><b class='flag-5'>底盘</b>的<b class='flag-5'>制作</b>

    履带底盘制作分享

    1.运动功能说明 正履带底盘可以通过两侧履带的差速运动来实现前进、后退、原地转向、大半径转向等基本行驶功能。同时,由于车身的正角特性,
    的头像 发表于 01-18 10:40 864次阅读
    正<b class='flag-5'>三</b>角<b class='flag-5'>履带</b><b class='flag-5'>底盘</b>的<b class='flag-5'>制作</b>分享