1.运动功能说明
双轮底盘可以通过两个驱动轮的差速运动来实现前进、后退、原地转向、大半径转向等基本行驶功能。
前进与后退
原地转向
大半径转向
2.结构说明
该样机由两个直流驱动轮模组构成,驱动轮模组呈轴对称分布在车架上,再使用万向轮对车尾进行支撑,保持车身水平。
3.运动功能实现
3.1 电子硬件
本实验中采用如下硬件:
Basra主控板(基于Arduino开源方案设计的一款开发板)、Bigfish扩展板、7.4V锂电池
【Basra主控板的相关介绍可点击查看https://www.robotway.com/h-col-135.html;Bigfish扩展板的相关介绍可点击查看https://www.robotway.com/h-col-136.html】
将TT马达接在两个直流电机接口上,两个直流电机接口的针脚号分别为(D5,D6)以及(D9,D10),并将主控板和电池在车身固定好。
3.2 编写程序
前进功能的代码(点击查看:Forward.ino)
/*------------------------------------------------------------------------------------ 版权说明: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-26 https://www.robotway.com/ -------------------------------- 实验功能: 实现小车前进. -------------------------------- 实验接线: 车头 .--------. | | | | 左轮 | | 右轮 D5, D6 *--------* D9, D10 ----------------------------------------------------------------------------------*/ void Forward(); // 前进 //程序初始化部分. void setup() { pinMode( 5 , OUTPUT); //将引脚5设置为输出模式 pinMode( 6 , OUTPUT); //将引脚6设置为输出模式 pinMode( 9 , OUTPUT); //将引脚9设置为输出模式 pinMode( 10 , OUTPUT); //将引脚10设置为输出模式 } //主程序部分 void loop() { Forward(); delay( 100 ); } // forward子程序封装. void Forward() { digitalWrite( 5 , LOW ); //将引脚5设置为高电平 digitalWrite( 6 , HIGH ); //将引脚6设置为低电平 digitalWrite( 9 , LOW ); //将引脚9设置为高电平 digitalWrite( 10 , HIGH); //将引脚10设置为低电平 } |
后退功能的代码(点击查看:Backward.ino)
/*------------------------------------------------------------------------------------ 版权说明: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-26 https://www.robotway.com/ ------------------------------------ 实验功能: 实现小车后退. ------------------------------------ 实验接线: 车头 .--------. | | | | 左轮 | | 右轮 D5, D6 *--------* D9, D10 ----------------------------------------------------------------------------------*/ void Backward(); // 后退 //程序初始化部分. void setup() { pinMode( 5 , OUTPUT); //将引脚5设置为输出模式 pinMode( 6 , OUTPUT); //将引脚6设置为输出模式 pinMode( 9 , OUTPUT); //将引脚9设置为输出模式 pinMode( 10 , OUTPUT); //将引脚10设置为输出模式 } //主程序部分 void loop() { Backward(); delay( 100 ); } //backward子程序封装. void Backward() { digitalWrite( 5 , HIGH ); //将引脚5设置为高电平 digitalWrite( 6 , LOW ); //将引脚6设置为低电平 digitalWrite( 9 , HIGH ); //将引脚9设置为高电平 digitalWrite( 10 , LOW); //将引脚10设置为低电平 } |
/*------------------------------------------------------------------------------------ 版权说明: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-26 https://www.robotway.com/ ---------------------------------------------------------- 实验功能: 实现小车原地转向. ---------------------------------------------------------- 实验接线: 车头 .--------. | | | | 左轮 | | 右轮 D5, D6 *--------* D9, D10 ----------------------------------------------------------------------------------*/ // 原地转向 void turn_in_Place(); //程序初始化部分. void setup() { pinMode( 5 , OUTPUT); //将引脚5设置为输出模式 pinMode( 6 , OUTPUT); //将引脚6设置为输出模式 pinMode( 9 , OUTPUT); //将引脚9设置为输出模式 pinMode( 10 , OUTPUT); //将引脚10设置为输出模式 } //主程序部分 void loop() { turn_in_Place(); delay( 100 ); } //原地转向子程序封装. void turn_in_Place() { digitalWrite( 5 , LOW ); //将引脚5设置为高电平 digitalWrite( 6 , HIGH ); //将引脚6设置为低电平 digitalWrite( 9 , HIGH ); //将引脚9设置为高电平 digitalWrite( 10 , LOW); //将引脚10设置为低电平 } |
大半径转向功能的代码(点击查看:BigTurn.ino)
/*------------------------------------------------------------------------------------ 版权说明: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-26 https://www.robotway.com/ ----------------------------------------- 实验功能: 实现小车大半径转向. ----------------------------------------- 实验接线: 车头 .--------. | | | | 左轮 | | 右轮 D5, D6 *--------* D9, D10 ----------------------------------------------------------------------------------*/ // 大半径转向 void bigTurn(); //程序初始化部分. void setup() { pinMode( 5 , OUTPUT); //将引脚5设置为输出模式 pinMode( 6 , OUTPUT); //将引脚6设置为输出模式 pinMode( 9 , OUTPUT); //将引脚9设置为输出模式 pinMode( 10 , OUTPUT); //将引脚10设置为输出模式 } //主程序部分 void loop() { bigTurn(); delay( 100 ); } //大半径转向子程序封装. void bigTurn() { analogWrite( 5 , 0 ); //给引脚5设置0速度 analogWrite( 6 , 255); //给引脚6设置255速度 analogWrite( 9 , 0 ); //给引脚9设置0速度 analogWrite( 10 , 150 ); //给引脚10设置255速度 } |
4.扩展样机
本样机也有一些扩展,如使用多个万向轮做支撑的版本,如下图所示。
5.资料下载
资料内容 | 样机3D文件、例程源代码 |
下载链接 | https://www.robotway.com/h-col-113.html |