机器人硬件电路设计文档格式.docx
- 文档编号:19563124
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:36
- 大小:653.96KB
机器人硬件电路设计文档格式.docx
《机器人硬件电路设计文档格式.docx》由会员分享,可在线阅读,更多相关《机器人硬件电路设计文档格式.docx(36页珍藏版)》请在冰豆网上搜索。
硬件电路设计…………………………………………………3
一.电源电路………………………………………………3
二.单片机电路……………………………………………3
三.RS485总线……………………………………………4
四.舵机电路………………………………………………4
五.PCB制作………………………………………………5
软件设计………………………………………………………7
一.主板程序………………………………………………7
二.子板程序………………………………………………22
总结…………………………………………………………27
附录………………………………………………………28
概述
本次的设计主题为人形机器人,主要对人形机器人的腿部进行设计与制作。
使用新华龙C8051F310单片机作为主控芯片。
通过该单片机的PCA模块产生的PWM波来控制舵机的运动。
对腿部的控制需要三块电路板,一块主控板,两块从板。
主控板主要用来通过485总线向从板发送数据指令,而从板则接收主板的指令来完成相应的控制。
舵机的具体动作时依靠从板的控制来实现的。
硬件电路设计
本次所设计的机器人是由新华龙C8051F310控制,两条人形机械腿由十二个舵机组成由三块电路板控制。
且三块电路板由三名组员分别设计完成。
其中一块主控板控制两块从板,通过485总线进行通信,从而实现机械腿的协调动作。
我主要负责从板的设计与制作,以下将从板的设计进行说明。
一.电源电路
电源芯片采用AZ1084和LM1117。
其中AZ1084输入电压为7.2v,输出电压为5v,LM1117输入电压为5v,输出电压为3.3v。
F310单片机的工作电压是3.3v,因此需要经过两次降压达到3.3v。
为了稳定工作电压,采用IB0505LS来稳定单片机的工作电压。
二.单片机电路
单片机及用来调试的接口电路如下:
本单片机的晶振为32.768MHZ,但是在后期的测试发现外部晶振输出不稳定,因此采用的是内部晶振。
我们所设计的机器人总共有12个舵机,而这款F310最多只能输出5路PWM,因此需要3块板子。
三.RS485总线
本设计采用485总线进行通信通过主板发出指令来控制从板从而控制各个舵机的工作:
四.舵机控制电路
每块从板上共有六组舵机驱动,用P117光耦进行隔离电路图如下:
五.PCB制作:
PCB制作如下:
一下分别为PCB设计图以及对应的3D图
程序设计
本设计的程序一C语言来编写。
程序的初始化可通过新华龙公司的专用软件(configurationwizard2)来完成,不用编程者自己完成,所以初始化相对方便。
程序的主体部分由两部分组成,一部分为主板程序,控制单片机用串口模块来向从板发指令,主板的程序只发送相应的指令来协调舵机的运动。
而从板的程序主要用来接受指令,并且是相应的舵机作出相应的动作。
具体的动作实在从板的程序中完成的。
程序设计如下:
一.主板程序
voidUart_Send(unsignedcharx)
{
SBUF0=x;
while(!
TI0);
TI0=0;
}
voidPCA_Init()
PCA0CN=0x40;
PCA0MD&
=~0x40;
PCA0MD=0x02;
PCA0CPM0=0xC2;
PCA0CPM1=0xC2;
PCA0CPL0=0x49;
PCA0CPL1=0x43;
PCA0CPH0=0xEC;
PCA0CPH1=0xEB;
voidPort_IO_Init()
//P0.0-Skipped,Open-Drain,Digital
//P0.1-Skipped,Open-Drain,Digital
//P0.2-Skipped,Open-Drain,Digital
//P0.3-Skipped,Open-Drain,Digital
//P0.4-TX0(UART0),Open-Drain,Digital
//P0.5-RX0(UART0),Open-Drain,Digital
//P0.6-CEX0(PCA),Open-Drain,Digital
//P0.7-CEX1(PCA),Open-Drain,Digital
//P1.0-Unassigned,Open-Drain,Digital
//P1.1-Unassigned,Open-Drain,Digital
//P1.2-Unassigned,Open-Drain,Digital
//P1.3-Unassigned,Open-Drain,Digital
//P1.4-Unassigned,Open-Drain,Digital
//P1.5-Unassigned,Open-Drain,Digital
//P1.6-Unassigned,Open-Drain,Digital
//P1.7-Unassigned,Open-Drain,Digital
//P2.0-Unassigned,Open-Drain,Digital
//P2.1-Unassigned,Open-Drain,Digital
//P2.2-Unassigned,Open-Drain,Digital
//P2.3-Unassigned,Open-Drain,Digital
P0SKIP=0x0F;
XBR0=0x01;
XBR1=0x42;
voidOscillator_Init()
OSCICN=0x82;
voidTimer_Init()
TCON=0x40;
TMOD=0x20;
CKCON=0x01;
TL1=0x61;
TH1=0x61;
voidUART_Init()
SCON0=0x10;
voidInterrupts_Init()
IP=0x10;
IE=0x80;
//Initializationfunctionfordevice,
//CallInit_Device()fromyourmainprogram
voidInit_Device(void)
PCA_Init();
Port_IO_Init();
Oscillator_Init();
Timer_Init();
UART_Init();
Interrupts_Init();
以上为CONCIGRITIONWIZARD2程序所生成的初始化程序,程序中对PCA,定时器,串口,以及各个端口进行初始化设置。
voidDelay(unsignedintx)
unsignedinty,z;
for(y=0;
y<
x;
y++)
for(z=0;
z<
50;
z++);
以上为主程序中使用的延时以及串口发送子程序,由于主板只需要发送数据,所以只有数据发送程序。
以下为主板中控制各个动作的子程序,所执行的动作有站立,行走,左移,蹲下,站起,踢腿。
每个动作都以for循环来实现,目的是使舵机的偏角一点点改变,不至于一下子打到设定的位置。
voidWalk(void)
uchari;
for(i=0;
i<
11;
i++)//右腿2,3,4关节抬起。
{
Uart_Send(walk_you_2);
Uart_Send(64-3*i);
Delay(5);
Uart_Send(walk_you_3);
Uart_Send(93+2*i);
Uart_Send(walk_you_4);
Uart_Send(136-i);
Uart_Send(walk_zuo_1);
//左腿1,5关节调节重心位置
Uart_Send(142-i);
Delay
(2);
Uart_Send(walk_zuo_5);
Uart_Send(143+i);
Delay(200);
}
Delay(1500);
i++)
Uart_Send(153-i);
Uart_Send(walk_zuo_2);
//左腿弯曲,使右脚落地
Uart_Send(45-i);
Uart_Send(walk_zuo_3);
Uart_Send(91-i);
Uart_Send(walk_zuo_4);
Uart_Send(50-i);
Delay(500);
for(i=11;
i>
0;
i--)
//右腿伸直
//左腿伸直
//左腿抬起迈步
Uart_Send(45+i*3);
Uart_Send(91-2*i);
Uart_Send(50+i);
Uart_Send(walk_you_1);
//调节重心
Uart_Send(20+i);
Uart_Send(walk_you_5);
Uart_Send(30+i);
Uart_Send(40-i);
//右腿弯曲,使左腿落地
Uart_Send(65+i);
Uart_Send(93+i);
Uart_Send(136+2*i);
for(i=10;
Uart_Send(91-i*2);
Uart_Send(50+2*i);
//右腿伸直
Uart_Send(136+i*2);
voidStop()
Uart_Send(walk_you_1);
Uart_Send(13);
Delay(5);
Uart_Send(walk_zuo_1);
Uart_Send(142);
Delay(100);
Uart_Send(walk_you_2);
Uart_Send(65);
Uart_Send(walk_zuo_2);
Uart_Send(45);
Uart_Send(walk_you_3);
Uart_Send(91);
Uart_Send(walk_zuo_3);
Uart_Send(93);
Uart_Send(walk_you_4);
Uart_Send(136);
Uart_Send(walk_zuo_4);
Uart_Send(50);
Uart_Send(walk_you_5);
Uart_Send(32);
Uart_Send(walk_zuo_5);
Uart_Send(143);
voidDunxia()
//蹲下
16;
Uart_Send(50-2*i);
Uart_Send(93+i*4);
Uart_Send(91-i*4);
Uart_Send(65-i*3);
Uart_Send(45+i*2);
Delay(500);
20;
Delay(2000);
//站起
for(i=15;
voidDunxia_bf_Left_Move()
Uart_Send(143);
Uart_Send(45+3*i);
Uart_Send(65-3*i);
Uart_Send(136+i);
Delay(400);
voidstand_af_Left_Move()
voidLeft_Move()
//向左移动左腿
Uart_Send(75+3*i);
Uart_Send(71-2*i);
Uart_Send(40+i);
Uart_Send(142-2*i);
Uart_Send(143+2*i);
Uart_Send(20-i);
Delay(5000);
Delay(2000);
//Uart_Send(walk_you_2);
//右腿后蹬
//Uart_Send(65-3*i);
//Delay
(2);
Uart_Send(walk_you_3)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机器人 硬件 电路设计