首页/作品列表/老潘工作坊 一个全向车
老潘工作坊 一个全向车
16400 0
主要内容
制作背景
先来说下什么是全向车。
简单来说,这个小车可以朝着任何地方运动,
做一辆全向小车,常见的有两个方案:
全向轮(图左)
麦克纳姆轮(图右)
二者都有多个周边轮轴的设计,但主要差别是麦克纳姆轮的周边轮轴是有一定角度的,这可以转化成法向力作用给主轮。

而全向轮中,常见的方案是采用四轮设计,排列方法如下:
制作过程
先来看一下完成品的图。
漂亮,厉害,美。
根据下面的手写图,我得出三个轮子速度:

motor[0] = V(x, y) * COS(x, y);
motor[1] = -V(x, y) * (0.5 * sqrt(3) * SIN(x, y) + 0.5 * COS(x, y));
motor[2] = V(x, y) * (0.5 * sqrt(3) * SIN(x, y) - 0.5 * COS(x, y));

正余弦以及速度靠X、Y轴向量推出,宏如下:

#define SIN(X,Y) (float)(X/sqrt(pow(X,2)+pow(Y,2)))
#define COS(X,Y) (float)(Y/sqrt(pow(X,2)+pow(Y,2)))
#define V(X,Y) (float)sqrt(pow(X,2) + pow(Y,2))

还用到了以下语句读取对应GPIO的端口地址,加速步进电机运行效率

void fastDigitalWrite(uint8_t pin, bool value) {
if (value) {
*portOutputRegister(digitalPinToPort(pin)) |= digitalPinToBitMask(pin);
}
else {
*portOutputRegister(digitalPinToPort(pin)) &= ~digitalPinToBitMask(pin);
}
}
安装电池,给小车动力来源。
打开手机就可以控制了。

来看一下视频吧

代码展示

1. 全向车

编程语言: C/C++(Arduino)

软件工具:Arduino IDE 1.6.9


附件下载
  • 资料展示
  • Robot_Directional-master.zip
0
大牛,别默默的看了,快登录帮我点评一下吧!

立即注册