搜索
查看: 6289|回复: 12

[DIY] 双轮自平衡小车

[复制链接]

63

主题

105

帖子

1066

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1066
QQ
发表于 2015-10-21 14:30:21 | 显示全部楼层 |阅读模式
作品效果:


preview.jpg

工作原理:
两轮自平衡小车在完成自身平衡的同时能够完成运动控制和适应不同环境的其它控制任务。我们利用陀螺仪和加速度传感器MPU6050来检测车体状态的变化,并利用直流光电编码电机控制驱动,精确控制电机进行相应的调整,以保持系统的平衡。
preview_a.jpg

材料准备:
all.jpg
0824双孔梁144 1
25mm直流电机连接片 2
同步带轮90T 2
轮胎68.5x22mm 2
法兰盘 4mm 2
螺丝M4*8 22
螺丝M4*16 4
尼龙柱30mm 6
塑料铆钉M4*8mm 4
亚克力板B 2
Orion主控板 1
直流编码电机扩展包(包含2个25mm直流编码电机) 1
陀螺仪传感器 1
红外接收模块 1
红外遥控器 1
18650锂电池 1
RJ25连接线20cm 3
六角扳手
十字起子


制作步骤:
  • 搭建底盘,由一根双孔梁作为整个小车的主要支架,底两侧安装25mm编码直流电机。
step01_a.jpg

step01.jpg

step02.jpg

step03.jpg

  • 将车轮固定在编码电机输出轴上
step04.jpg


step05.jpg

step06.jpg
  • 安装主控板和其它电子模块
step07.jpg


step08.jpg

step09.jpg

step10.jpg
  • 将亚克力支架固定在双孔梁上的内螺纹槽中。同时压住编码电机的连接线。
step11.jpg

step12.jpg

  • 安装剩余的电子模块以及连线(编码电机驱动接Port 1、陀螺仪接Port 8、红外接收器接Port 6
step13.jpg

step14.jpg

step15.jpg

step16.jpg

  • 用魔术贴将电池固定在小车顶部,完成搭建
step17.jpg
使用方法:
打开电源开关,先将小车放倒在地面,待电机停止转动后,扶正小车后并复位主控板。小车将在2秒内转为平衡状态。用红外遥控器方向键控制小车前进后左右转弯。

Arduino源代码:https://github.com/xeecos/me-orion-balance-bot
Arduino.zip (22.45 KB, 下载次数: 1302)
回复

使用道具 举报

64

主题

139

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10425
发表于 2017-6-27 21:45:26 | 显示全部楼层
虎子哥 发表于 2017-6-27 20:22
最新编码电机驱动板已不适用这个程序的驱动,需要替换成最新的编码电机库 ...

虎子哥,这个很受用户喜欢,要是有时间 抽空改一个样例呗 替大家先谢谢你
回复 支持 1 反对 0

使用道具 举报

64

主题

139

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10425
发表于 2015-10-21 19:05:57 | 显示全部楼层
回复

使用道具 举报

14

主题

60

帖子

359

积分

中级会员

Rank: 3Rank: 3

积分
359
发表于 2015-10-21 19:11:03 | 显示全部楼层
为什么要编码电机,普通的不行嘛?
回复 支持 反对

使用道具 举报

63

主题

105

帖子

1066

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1066
QQ
 楼主| 发表于 2015-10-21 19:48:57 | 显示全部楼层
木果创客 发表于 2015-10-21 19:11
为什么要编码电机,普通的不行嘛?

也可以,普通电机的控制效果会差些
回复 支持 反对

使用道具 举报

4

主题

14

帖子

56

积分

注册会员

Rank: 2

积分
56
发表于 2015-10-31 23:52:36 | 显示全部楼层
控制精确度不够,所以还是用编码
回复 支持 反对

使用道具 举报

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2015-11-24 20:19:00 | 显示全部楼层
void PID_angle_compute(void)
{
......
#ifdef MOTOR_ENABLE
    runMotor(0, pwm_left);
    runMotor(1, pwm_right);
#endif

    PID_angle.Timer = micros();
  }
}

PID.CPP 代码中 让MOTOR运动的似乎为     
runMotor(0, pwm_left);
runMotor(1, pwm_right);
其他地方无让MOTOR运动的代码  但是结果测试,  runMotor(0, pwm_left);
无法让MOTOR运动啊  求解

回复 支持 反对

使用道具 举报

0

主题

2

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2015-12-6 10:36:30 | 显示全部楼层
学习。。。
回复

使用道具 举报

0

主题

1

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2016-3-21 17:49:40 | 显示全部楼层
您这个程序有问题啊,能传一个能用的程序么,谢谢
回复 支持 反对

使用道具 举报

1

主题

2

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2016-10-9 10:16:48 | 显示全部楼层
程序上传成功了,开机电机没有反应。求解?怎么办?
回复 支持 反对

使用道具 举报

63

主题

105

帖子

1066

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1066
QQ
 楼主| 发表于 2017-6-27 20:22:11 | 显示全部楼层
最新编码电机驱动板已不适用这个程序的驱动,需要替换成最新的编码电机库
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|创客工场  

JS of wanmeiff.com and vcpic.com Please keep this copyright information, respect of, thank you!JS of wanmeiff.com and vcpic.com Please keep this copyright information, respect of, thank you!

GMT+8, 2017-12-18 09:08 , Processed in 0.065229 second(s), 34 queries .

Powered by Discuz! X3.2

© 2001-2013 Design S!|ƽ̶

快速回复 返回顶部 返回列表