机械工程与自动化学院
《嵌入式开发与项目实践》
题目: 球形机器人 班级: 测控11302班 姓名: 赵磊 成绩: 1302220234
2016年6月
目录
1.摘要..............................................................3
1
2.BB8总体设计方案..................................................4 2.1 方案构思......................................................4 2.2 总体电路框图设计..............................................4 3.机械设计部分......................................................5 3.1 球身机械设计图................................................5 3.2 头部机械设计图................................................6 4.控制电路设计部分..................................................6 4.1 硬件系统设计..................................................6
4.1.1 51单片机控制模块..........................................7 4.1.2 直流电机驱动模块..........................................8 4.1.3 蓝牙模块..................................................9 4.1.4 稳压模块.................................................11 5.软件系统设计.....................................................11
5.1 APP设计....................................................11 6.BB8模型搭建.....................................................12
6.1虚拟组装....................................................12 6.2 内部结构和身体的组装.......................................13 7.设计小结.........................................................14 8.附录一 电路图....................................................15 附录二 单片机程序..................................................16 附录三 参考文献....................................................19
2
摘要
球形机器人是一种具有球形外壳并以滚动为主要运动方式的智能机器人,其球状外形使得它具有转向灵活、环境适应性强、运动效率高的优点。本文中的球形机器人是一种非完整系统,它用电机作为动力输入,利用51单片机以及蓝牙控制电机驱动板上面的正反转,从而带动轮子的正反转,通过改变内部小车重心的位置实现了球形机器人沿任意方向的运动,包括原地的自转和任意方向的转动。由于其具有特殊的灵活性,它可以应用于各种不同的场合。本文简要介绍了该球形机器人的机械设计和控制电路设计。
关键词:球形机器人,51单片机,蓝牙,电机驱动板
3
2.BB8总体设计方案
2.1 方案构思
第一步:材料的准备。材料包括:直径为250mm的透明亚克力球一个(作为bb-8的身体),50mm的透明亚克力球半个就够(作为bb-8的眼睛) 。 球内动力系统配件包括:51单片机、L298N直流电机驱动板一块、蓝牙模块一块、带轮的两个小车微型电机、万向球若干个、12v锂电池一个、圆形强磁铁若干个、螺栓若干、若干杜邦线,3D打印底盘和支撑板。
第二部:内部结构。通过3D打印底盘,车盘,头部支撑盘部分小零件。头部支撑盘上面装入小的万向轮,车盘两侧装入两个万向轮,放入球里面在转弯时会更灵活,减少摩擦。在车盘上面可以放元器件,底盘可以放电池。
第三部分:基本原理为:通过蓝牙APP控制BB8行动,发送指令给51单片机,51单片机接受到命令,传达给电机驱动做出相应的操作。
2.2 总体电路框图设计
3.机械设计部分
4
该部分用了常用的画图软件SW2016 3.1球身机械设计图
上图(左)部分是底盘部分,用于放置电池以及载重。上图(右)是支撑架部分,连接在车盘上的舵机上。用于固定支撑车顶盘,以及连接舵机转向。
上图是BB8 的主要车盘,左右两边分别有一个TT马达及轮胎,用于驱动球的运动。前后则是两个万向球(牛眼球),防止前后因接触球体卡住。中间空档则用于放置舵机。前后的空余位置,分别防止单片机,L298电机驱动,稳压模块及蓝牙模块。孔洞则用于穿线,防止电线卡住左右的电机和轮胎。
5
上图是车顶盘部分,固定在支撑架上。左右两侧的打孔洞,用于放置强力磁石,使之与头部的底盘吸附。 3.2头部机械设计图
上图是头部的底盘,对应车身顶盘放置强力磁石,将头部与车身相连接。
4控制电路设计部分
4.1 硬件系统设计
6
球形机器人电路设计部分的主体芯片是用的51单片机,系统设计的思路就是通过蓝牙给51单片机发送指令,从而通过电机驱动板驱动电机发生正反转,最后实现球形机器人的运动。 所以,整个硬件系统分为四个部分: 1.51单片机最小系统 2.蓝牙模块
3.直流电机驱动模块 4.稳压模块 4.1.1 51单片机控制模块
上图 51单片机最小系统包括复位和晶振电路,可以使单片机正常工作。 复位电路:由电容串联电阻构成,由图并结合\"电容电压不能突变\"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取
7
8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平。
晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)。
4.1.2 直流电机驱动模块
驱动模块
4.1.2(1) 直流电机驱动电路图
L298N是ST公司生产的一种高电压,大电流的电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V,输出电流大,瞬间峰值可达3A,持续工作电流为2A;额定功率为25W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电机和步进电机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个用控制端,在不受输入信号影响
8
的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机和四相步进电机,也可以两台直流电机。L298N模块的驱动电路图如图5.1.2所示。 对于以上电路图有以下几点说明:
1)电路图中有两个电流,一路为L298工作需要的5V电源VCC,一路为驱动电机用的电池电源VSS。
3)八个续流二极管是为了消除电机转动时的尖峰电压保护电机而设计。 4)ENA脚和ENB脚为两路电机通道的使能开关,高电平使能所以可以直接接高电平,也可以交由单片机控制。
5)由于工作时L298的功率较大,可以适当加装散热片。
L298电机驱动模块的的外形图如图
4.1.3 蓝牙模块
9
1、核心模块使用HC-05蓝牙4.0低功耗模块,引出接口包括VCC,GND,RXD,TXD。
2、led指示蓝牙连接状态,规律闪烁表示蓝牙未连接,间歇闪烁表示蓝牙已连 接。
3、蓝牙模块的输入电压为3.6V-6V,输入电压禁止超过7V! 4、接口电平3.3V,直接连接51单片机。
5、51单片机的引脚RXD,TXD分别连蓝牙的TXD,RXD,切勿连反。 51单片机与蓝牙模块的连接示意图如下图所示:
VCC GND RXD TXD VCC GND TXD RXD 10
蓝牙 51单片机
5.1.4 稳压模块
由于我们使用的电机是直流减速电机,其工作电压是3V-6V,而我们使用的电源是7.4V的锂离子电池,所以需要通过稳压模块对其进行降压,以满足电机的电压需求。
图中: IN+ 输入正极 IN- 输入负极 OUT+ 输出正极 OUT- 输出负极
稳压模块输入电压范围:直流3.2V 至 40V (输入的电压必须比要输出的电压高1.5V以上)。
输出电压范围:直流 1.25V至 35V 电压连续可调,高效率(最大92%)最大输出电流为3A。
5 软件系统设计 5.1 APP设计方案
根据程序,控制机器人做出前进后退转向等运动,编写APP程序。由手机
11
APP发送信号到BB8机器人的蓝牙模块中,接受到APP的指令后,运行相应的程序,使BB8根据我们的操作做出移动或转向。与程序相对,手机会给BB8发送信号,如按键前(上),发送信号“3”到BB8中根据程序的内容,BB8将会实行前进的指令,内部的轮子滚动,带动BB8球身向前滚动。
根据APP程序的编写我们设置了一个APP界面,如下图显示,可以由前后(上下)键位控制BB8的前进和后退,左右键位控制BB8的左转和右转,还有控制头部的旋转与复位的控制键位。 APP界面
6.模型搭建
6.1虚拟组装
绘制C51单片机,L298N电机驱动,电池,万向球,蓝牙,底板等内部结构,其实内部就是一台蓝牙小车,上面支撑着带动头部的磁铁。绘制好这些后,进行虚拟组装,完成与球体的配合。
12
6.2 内部结构和身体的组装
前面的准备工作基本完成,我们先从里到外依次组装,首先我们先拿出内部结构的所有零配件,按照电路图连接好,接线图是按照我们自己设计的程序进行连接的,因为身体是一个球体,因此我们要尽量的降低整个车身的中心,而且需要给内部结构配重,我这里因为一时找不到合适的金属块配重,这里暂时使用了废铁块先顶着。
1.钢尺 度量工具,同时帮助切割一些塑胶板或改造板,主要用于度量轮子的装配位置和下盘与车身的距离等。
2.砂纸 在经过锉刀的粗打磨后,就要使用砂纸进行细加工,砂纸分为各种号数,号数越大就越细。如果要涂装模型,那砂纸是必不可少的,通常制作高达模型使用的是水砂纸,也就是可以沾水使用,为了打磨头部托盘与万向球粘合的部位等。
3.胶水 零件打磨完毕以后,就要使用专门的模型胶水进行粘接。
4.镊子 模型制作中经常要碰到细小零件,这时你就需要一把好用的镊子,建议购买弯头尖嘴。
5.其他 螺丝刀,剪刀等一些必备工具
然后结合整体比例协调将原件放于车身之上并固定,把左边的内部结构放进透明亚克力球里面就变调试。
13
7设计小结
本次课程设计收获较多,对我们所学的单片机和C#语言等课本知识进一步进行了巩固,同时也锻炼了我们的动手实践能力。随着科技的发展机器人的研究和应用是很重要的。
在整个设计过程中,走了不少弯路,起初我们的进展是很慢的,看了不少网上的视频,打算从零件的选购开始。在硬件组装过程中,比较想对容易一点,通过查阅资料连接好了线路。然后在写电机驱动程序的出现了问题,发送一个命令之后,再发送第二个命令的时候,没有效果,找了很久原因是因为在程序中写了标志位清零,而现实中执行操作不应该清零,这样机器人执行前进后退时可以相互不影响。软件调试过程中,学习老师之前所教的蓝牙知识,所以也想对容易的制作出了APP。在组装过程中遇到很多问题,比如内部结构没有预料到那么合适大小,放进球里面,轮胎是悬空状态没有接触球,最后在两个电机上面加了木板增加厚度,万向轮不灵活,还有球的重心不稳。通过不断摸索,小组的努力下最终完成了BB8。
通过这次课程设计让我受益匪浅。以后无论做什么事情,我们都要把理论和实际有机的结合在一起,并且不能惧怕困难,要一步一步,一点一点脚踏实地地去做,我相信,只要我们用于挑战,肯去努力,我一定做好的。
14
附录一 电路图
15
附录二 单片机程序 #include #define uint unsigned int #define uchar unsigned char #define u8 unsigned charsbit IN0 =P2^0; sbit IN1 =P2^1; sbit IN2 =P2^2; sbit IN3 =P2^3; u8 flag,flag_in,a;
16
void Serial_init(); void main() {
Serial_init(); while(1) {
if(flag==1) {
flag=0; ES=0; //TI=1; switch(flag_in) {
case 1: P2=0x0a; break;
case 2: P2=0x05; break;
case 3: P2=0x06; break;
case 4: P2=0x09;
break;
case 5: P2=0x00;
17
break; }
ES=1;
}
} }
void Serial_init() {
TMOD=0x20; TL1=0xfd; TH1=0xfd; TR1=1; ET0=1; SM0=0; SM1=1; REN=1; EA=1; ES=1; }
void ser() interrupt {
4
18
RI=0;
a=SBUF; flag=1; if(a==\"1\") flag_in=1;
else if(a==\"2\")
flag_in=2;
else if(a==\"3\")
flag_in=3; else if(a==\"4\") flag_in=4; else if(a==\"5\") flag_in=5;
}
附录三 参考文献
《单片机原理及应用(第二版)》 高等教育出版社 《51单片机C语言教程》 电子工业出版社 《片微型计算机与接口技术》 电子工业出版社 《C# 5.0 in a Nutshell》
《Visual C# 2013从入门到精通》 清华大学出版社 《C#入门经典(第5版)》 清华大学出版社
19
如果需要APP,单片机代码,或者3D打印的文件不懂得地方,可以加我新浪微博
20