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

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

3天内不再提示

自制爬楼小车diy全过程

454398 作者:工程师吴畏 2018-09-12 08:30 次阅读

近日心血来潮用Makeblock的零件搭了个自动爬楼梯的小车

下面给大家介绍一下如何搭建这个案例。由于是自动爬行,那么自然有各种传感器。什么巡线(当接触开关用),超声波,限位开关,陀螺仪~~

首先先简单介绍一下实现原理

额。。理想状态下一共有8个阶段,其中1号轮子和4号轮子都是带电机的主动轮,其他都是从动轮,而且升降装置装在2号和4号轮子上

阶段1

前进

阶段2

超声波检测到前方有障碍(这里指的是楼梯)

车体上升,1号和2号升降装置把1号和3号轮子升起来直到超声波传感器检测不到楼梯

阶段3

1号和4号轮子推动小车前进

阶段4

2号轮子的巡线传感器检测碰到楼梯了,1号升降装置把2号轮子收回去

阶段5

1号和4号轮子推动小车前进

阶段6

4号轮子上的限位开关检测到4号轮子已经碰到楼梯,主动轮停止转动,2号升降装置把4号轮子收回去

阶段7

1号轮子推动小车前进 也就是阶段1

阶段8

也就是阶段2,小车继续前进直到超声波检测到楼梯然后开始循环

额。。攀爬原理差不多就是这样了,接下来给大家介绍一下搭建方法以及调试过程中碰到的一些问题

这个案例在机械结构方面的一个特色就是这个升降的装置,既要可靠,又要比较迅速地升降。所以我选择了齿条齿轮的配合方式,并且使用单孔梁作为滑轨,用3*3的同步带固定片配合双孔梁做了个简易滑块。

下面是搭建使用的材料和方法。

升降装置1

双孔梁032*4

双孔梁160*2

M4*22螺丝*8

M4螺母*8

然后使用下面的材料把上面搭好的结构连接起来

3*3同步带固定片*4

M4*8螺丝*16

额。。这样滑块就搭好了

拿两根0808*312的单孔梁刚好能穿过滑块

接下来我们来搭齿条

由于我们这个自动爬楼梯小车比较智能,能够适应不同高度的楼梯,所以我们的滑轨和齿条都要准备的长一点,既然滑轨都有312mm那么长了,齿条肯定不能短

所以我使用了4段齿条拼接起来,至于为什么上面的材料图片中有一根312的单孔梁呢,这是有原因的。光靠齿条拼接的话在升降过程中齿条与齿条之间的连接处会弯,这一弯齿轮和齿条的啮合就出问题了,哒哒哒滑齿了。至于为什么我会发现这个问题呢,这个就不解释了,说多了都是泪。所以我们要把齿条固定在这根单孔梁上。如下

接下来把导轨和齿条固定在一起

材料如下

144双孔梁*1

M4*22螺丝*3

M4螺母*2

176双孔梁*2

M4*22螺丝*6

M4螺母*6

装上2号轮子(从动轮)

使用以下材料

轮胎*2

90T同步带轮*2

螺丝轴*2

法兰轴承*4

M4螺母*2

M3*5无头螺丝*2

4*2塑料垫片*4

把轮子固定在双控梁的端面

2号轮子和1号升降装置搭建完毕

接下来搭建4号轮子和2号升降装置

2号升降装置结构和1号一样

所需材料也一样

只不过把032双孔梁固定在下图的位置

导轨和齿条的搭建与1号升降装置一样

上端的连接使用080双孔梁替代144双孔梁

128双孔梁*1

M4*22螺丝*6

M4螺母*6

装上L形支架,用

M4*14螺丝*2

M4螺母*2

固定在梁上

完成2号升降装置的搭建后就可以开始搭建4号轮子(主动轮)

所需材料如下

25mm电机*1

90T同步带轮

25mm电机支架

传动固定盘

M3*5螺丝

M4*14螺丝

套上轮胎,用

M4*14螺丝*2

螺母*2

固定在L形支架上

完成1、2号升降装置和2、4号轮子搭建,整车结构就完成一半了

接下来开始搭建主车架、1号和3号轮子

首先,把1号轮子(主动轮)搭建好

轮胎*2

90T同步带轮*2

传动固定盘*2

M4*14螺丝*8

M4螺母*4

M3*5螺丝*4

M3*5无头螺丝*2

25mm电机*2

25mm电机支架*2

064双孔梁*2

搭建前防撞杠

160双孔梁*1

L形支架*2

M4*14螺丝*4

M4螺母*4

搭建主车架

192双孔梁*2

防撞杠*1

前轮*2

M4*30螺丝*6

M4螺母*6

搭建3号轮子(从动轮)

轮胎*2

90T同步带轮*2

088单孔梁*2

法兰轴承*4

螺纹轴*2

4*2塑料垫片*4

螺母*2

M3*5无头螺丝*2

使用

M4*22螺丝*4

M4螺母*4

把3号轮子固定在车架上

装上2号升降装置

使用M4*14螺丝*8

装上1号升降装置

使用M4*14螺丝*6

由于楼梯宽度有限,轮子又比较大所以只能把轮子错开安装,为了节约搭建时间和材料,4号轮组之用了一个电机和一个轮子

再安装升级装置的电机

37电机(装好电机支架)*2

18T齿轮*2

M3*5无头螺丝*2

M4*8螺丝*4

调整好齿轮和齿条的距离分别固定在1号、2号升降装置双孔梁的螺纹槽上

完成机械搭建

接下来开始安装传感器

限位开关*1

装在2号升降装置侧面

限位开关*2

分别装在1号2号升降装置的梁上。(作用:限制抬升高度)

安装电机驱动

安装巡线传感器

M4*22螺丝

4*10塑料圆柱

4*2塑料垫片*4

巡线传感器*1

安装陀螺仪

安装超声波传感器

由于超声波模块没办法检测0-30mm的距离,所以放里面去了 让防撞杆去撞楼梯,小车撞上障碍后刚好是30mm多点,顺利检测到(这都是调试后才发现的~_~!!)

安装主控板

安装适配器(限位开关用)

额。。基本上传感器安装好了,现在介绍一下各个整车结构和传感器

整车从左到右可以按轮子分成4个部分,其中1号轮子和4号轮子是主动轮(驱动轮),2号和3号轮子是从动轮

其中1号和2号升降装置控制2号和4号轮子的位置

这里加装陀螺仪是因为我们升降装置用的是直流电机,没办法保证车体平衡,所以加入陀螺仪调整电机抬升速度

整车图

接线图

代码如下:#include “MeOrion.h”

#include

MeGyro gyro;

MeDCMotor lifer1(PORT_1); //升降1

MeDCMotor lifer2(PORT_2); //升降2

MeDCMotor rw(M2); //1号驱动轮

MeDCMotor fw(M1); //4号驱动轮

MeLineFollower lineFinder1(PORT_7); // 巡线

MeLimitSwitch upWard1(PORT_3, SLOT2); // 1号升降限位开关

MeLimitSwitch forWard2(PORT_4, SLOT1); // 4号轮子限位开关

MeLimitSwitch upWard2(PORT_4, SLOT2); // 2号升降限位开关

MeUltrasonicSensor ultraSensor(PORT_8); // 1号轮子超声波

void setup() // 初始化,前后升降装置回收

{

Serial.begin(9600);

gyro.begin();

lifer1.run(-250);

while (!upWard1.touched());

lifer1.stop();

lifer2.run(-250);

while (!upWard2.touched());

lifer2.stop();

}

void Step2()

{

float p = 15;

float i = 0.01;

float angle = 0;

float targetAngle = 0;

float integration = 0;

float err = 0;

while (NotStop())

{

gyro.update();

float angle = gyro.getAngleX();

err = angle - targetAngle;

integration += err;

int speed1 = 200;

int speed2 = 200;

speed2 = speed1 + err * p;// + integration * i;

lifer1.run(speed1);

lifer2.run(speed2);

//delay(10);

}

lifer1.stop();

lifer2.stop();

}

int startTiming = 0;

unsigned long startTime = 0;

int NotStop()

{

int16_t distance;

distance = ultraSensor.distanceCm();

delay(10);

if (0 == startTiming)

{

if ((distance 《 10) && (distance 》 1))

{

return 1;

}

else

{

startTiming = 1;

startTime = millis();

return 1;

}

}

else

{

unsigned long currentTime = millis();

if (currentTime - startTime 《 2500) //超声波检测不到楼梯后延时2.5秒

{

return 1;

}

else

{

return 0;

}

}

}

void loop()

{

startTiming = 0;

startTime = 0;

//阶段1 小车前进

fw.run(60);

rw.run(60); //1号 4号轮子推动小车前进

int16_t distance;

do

{

distance = ultraSensor.distanceCm();

delay(10);

}

//阶段2 碰到楼梯 主动轮停止 整体车架上升

while (!((distance 《 4) && (distance 》 1))); //如果碰到楼梯

fw.stop();

rw.stop();

Step2();

//阶段3 1号 4号轮子推动小车前进

fw.run(60);

rw.run(60);

//阶段4 2号轮子巡线传感器检测到楼梯 主动轮停止 升降装置1把2号轮子收回去

while (!(lineFinder1.readSensors() != S1_IN_S2_IN));

lifer1.run(-250);

fw.stop();

rw.stop();

while (!upWard1.touched()); //1号升降限位开关检测升降结束

lifer1.stop();

Adjust();

//阶段5 1号 4号轮子推动小车前进

fw.run(60);

rw.run(60);

//阶段6 4号轮子限位开关检测到4号轮子碰到楼梯 主动轮停止 2号升降装置回收4号轮子

while (!forWard2.touched());

lifer2.run(-250);

fw.stop();

rw.stop();

while (!upWard2.touched()); //1号升降限位开关检测升降结束

lifer2.stop();

//阶段7 循环阶段1

//阶段8 循环阶段2

}

void Adjust() //陀螺仪控制1、2号升降电机控制平衡

{

int p = 40;

//float i = 0.05;

float angle = 0;

float targetAngle = 4;

//float integration = 0;

//float err = 0;

do

{

gyro.update();

angle = gyro.getAngleX();

//err = (angle - targetAngle);

//integration += err;

lifer2.run((angle - targetAngle) * p);// + i * integration);

//delay(10);

}

while(fabs(angle - targetAngle) 》 1);

lifer2.stop();

}

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

    关注

    2547

    文章

    50536

    浏览量

    751462
  • Makeblock
    +关注

    关注

    1

    文章

    4

    浏览量

    3825
收藏 人收藏

    评论

    相关推荐

    工程师制作故事: 牛人自制WIFI双菱天线全过程

    工程师制作故事: 牛人自制WIFI双菱天线全过程,本制作参考网上搜集的图纸。据说有大概11DB的增益,完成后测试确实如此。
    发表于 08-17 18:25 14.9w次阅读
    工程师制作故事: 牛人<b class='flag-5'>自制</b>WIFI双菱天线<b class='flag-5'>全过程</b>

    PCB 制作全过程

    `PCB 制作全过程。`
    发表于 08-05 22:43

    图文详解2000元电动汽车DIY全过程

    `图文详解2000元电动汽车DIY全过程`
    发表于 08-15 19:05

    音箱制作全过程

    音箱制作全过程
    发表于 08-16 17:00

    工程师制作故事 牛人自制WIFI双菱天线全过程

    工程师制作故事 牛人自制WIFI双菱天线全过程
    发表于 08-20 13:16

    自制单片机开发板全过程

    自制单片机开发板全过程
    发表于 12-20 22:30

    菜鸟制作51避障小车全过程记录

    本人是个菜鸟很早之前就想做智能小车迟迟没有动手 一是啥工具也没有二是啥也不会 从零开始如今终于下决心 制作我的智能小车在淘宝上买了一些电子制作常用工具和电子元器件以此贴记录我的智能小车制作全过
    发表于 06-18 09:18

    自制单片机开发板全过程pdf文件下载

    {:1:}自制单片机开发板全过程(精品).pdf 2015-7-25 14:04 上传 点击文件名下载附件 7.88 MB, 下载次数: 35
    发表于 07-19 04:08

    CPU制造全过程

    CPU制造全过程第1页:由沙到晶圆,CPU诞生全过程     沙中含有25%的硅,是地壳中第二多元素,在经过氧化之后就成为了二氧化硅,在沙,尤其是石英中二氧
    发表于 09-22 08:08 77次下载

    图解组装笔记本全过程(DIY很简单)

    图解组装笔记本全过程(DIY很简单) 一、前言   对于许多台式电脑的用户来说,也许你已经享受过自己动手更换显卡、CPU所带来的乐
    发表于 01-21 10:50 3386次阅读

    自制单片机开发板全过程(傻瓜式教程)

    最详细自制单片机开发板全过程(傻瓜式教程)
    发表于 02-25 14:31 62次下载

    DIY安装导航+可视倒车+行车记录+GPS跟踪全过程

    DIY安装导航+可视倒车+行车记录+GPS跟踪全过程,感兴趣的小伙伴们可以看看。
    发表于 08-03 16:47 106次下载

    手工制作pcb全过程

    手工制作pcb全过程介绍。
    发表于 06-19 10:18 0次下载

    【小知识】自制AT89S51单片机开发板全过程(傻瓜式教程)

    【小知识】自制AT89S51单片机开发板全过程(傻瓜式教程)
    发表于 11-13 12:21 14次下载
    【小知识】<b class='flag-5'>自制</b>AT89S51单片机开发板<b class='flag-5'>全过程</b>(傻瓜式教程)

    电磁炉的维修全过程分享

    电磁炉的维修全过程分享
    发表于 01-10 15:16 78次下载