Anda di halaman 1dari 14

北京理工大学 自动化学院

基于 AVR 系列单片机
的轮式教学机器人
项目简介

王新宇
2010/5/21
基于 AVR 系列单片机的轮式教学机器人

目录
1 概述 ...................................................................................................................................................... 1

2 机械结构 .............................................................................................................................................. 2

3 电路 ...................................................................................................................................................... 3

3.1 I/O 接口 .................................................................................................................................... 4

3.2 ADC 接口 .................................................................................................................................. 4

3.3 通讯接口 .................................................................................................................................. 4

3.4 ISP 编程接口 ............................................................................................................................ 5

4 软件 ...................................................................................................................................................... 6

4.1 开发环境 .................................................................................................................................. 6

4.2 程序编写 .................................................................................................................................. 6

4.2.1 电机控制函数 ................................................................................................................. 6

4.2.2 模数转换函数 ................................................................................................................. 7

4.2.3 串口通信函数 ................................................................................................................. 7

4.3 程序下载及调试 ...................................................................................................................... 8

4.4 追光程序举例 .......................................................................................................................... 9

5 成本预算 ............................................................................................................................................ 11

5.1 基本车体 ................................................................................................................................ 11

5.2 ATmega128 版本 .................................................................................................................... 11

5.3 ATmega8 版本 ........................................................................................................................ 12

5.4 传感器及其他硬件 ................................................................................................................ 12

5.5 总计 ........................................................................................................................................ 13

1
基于 AVR 系列单片机的轮式教学机器人

1 概述
基于 AVR 系列单片机的轮式教学机器人(以下简称 AVR 教学机器人)使用 AVR 系列单片机控制,
两个可分别独立调速的驱动轮实现基本行走功能。AVR 教学机器人具有丰富的硬件接口资源,可以连
接种类丰富的传感器及周边硬件,并可与计算机通信。并可方便的使用 C 语言开发程序控制机器人完
成任务,例如巡线,追光,双轮平衡等。在增加外围硬件模块后可完成更加复杂的任务。

 ATmega128 8 位微处理器
 128K 字节可编程 Flash
 4K 字节 EEPROM
 16MHz & 16MIPS
 8 通道 10 位 ADC
 24 个可编程 I/O 接口
 RS232 串口
 I2C 接口。
 2 轮转速独立可调可正反转
 可充电锂电池
 各类传感器
Figure 1-1

AVR 教学机器人具有以下特点:

(1) 开源,我们将会把所有信息通过博客等形式公开。
(2) 廉价,我们将尽可能采用易于获得,并且便宜的器件,采用最简单的电路来实现这辆小车。
(3) 易用,我们编写了丰富的头文件函数库,使得单片机初学者可以在不考虑硬件(AVR 的寄存
器等方面)的基础上完成自己的程序,实现有趣的功能。

AVR family of microcontrollers based on the wheel of teaching the robot (hereinafter referred to
as teaching the robot AVR) using AVR microcontroller series, the two driving wheels
respectively to achieve basic independent walking speed function.Teaching robot AVR
hardware interface with rich resources, variety of sensors can be connected and the surrounding
hardware and computer communications. Can easily develop programs using the C language to
control the robot to complete tasks.
AVR robot teaching the following features:
(1) open source, we will all other forms of public information through the blog.
(2) cheap, we will maximize the use of easily accessible, and inexpensive devices, using the
most simple circuit to achieve the small car.
(3) ease of use, we prepared a rich library header files so that beginners can not consider
microcontroller hardware (AVR registers, etc.) based on the completion of its own procedures to
achieve interesting features.
1
基于 AVR 系列单片机的轮式教学机器人

Civilian helicopter in the military to play an important role in the field. New three-axis dual rotor
helicopter structure is simple, easy to control and stability. First, the new helicopter by a
mathematical model, proposed a new motor control algorithm for real-time group to achieve
independent control of the attitude angle, then control the helicopter's attitude and
heading. Tested, the new helicopter has good handling and stability, wide application prospects.

When a motor damage, the aircraft can still fly.

2 机械结构

Figure 2-1

AVR 教学机器人结构简单可靠,体积小巧。主要部件包括底板,万向轮,直流减速电机,海绵轮
胎,主控板,电池等。总体尺寸 128mm*100mm*53mm。

电机采用直流减速电机,额定电压 6V,额定功率 2W,额定转速 100RPM。

电池采用 3.7V 800mAh 聚合物锂电池。

底板使用有机玻璃板加工。

2
基于 AVR 系列单片机的轮式教学机器人

3 电路
AVR 教学机器人有两个版本可供选择,分别使用 ATmega128 和 ATmega8 两款单片机作为主控芯片。
其中 ATmega8 版价格较低,硬件资源较少,程序寄存器容量也较少,但完全可以满足初学者的需要;
ATmega128 版则硬件资源丰富,可以扩展更多硬件并完成更加复杂的任务。电路板上包含各类接口,
并均有保护措施,可在一定程度上防止由于误操作引起的损坏。

Figure 3-1 ATmega128 版电路板

Figure 3-2 ATmega8 版电路板

3
基于 AVR 系列单片机的轮式教学机器人

3.1 I/O 接口
ATmega128 版本共有 24 组 I/O 接口,ATmega8 版有 5 组。每组 I/O 接口均具备单独的电源和地线,
方便扩展硬件。其中电源为电池电压,可输出较大功率。每个接口与 MCU 之间均有限流电阻,防止由
于误操作损坏 MCU。

Figure 3-3 I/O 接口

3.2 ADC 接口
ATmega128 及 ATmega8 版本都有 8 组模数转换接口,可用于模拟量的输入,输入电组应小于 10K
欧姆,输入电压建议为 0~2.5V 或 0~5V。接口提供了可供调整的分压电阻,并提供了最大可输出 100mA
的标准 5V 电源,可作为外围模块的基准源。

转换核心为个 10 位的逐次逼近型 ADC,最快转换速度大于 20KHz。

Figure 3-4 ADC 接口

3.3 通讯接口
两种版本均提供 RS232 接口用于直接与计算及通讯。RS232 串口同时也用于下载程序。

4
基于 AVR 系列单片机的轮式教学机器人

Figure 3-5 RS232 接口

ATmega128 版本还额外提供了 I2C 接口用于扩展使用 I2C 接口的传感器或其他硬件。

2
Figure 3-6 I C 接口

3.4 ISP 编程接口


两种版本均提供 ISP 编程接口,可在使用串口下载程序出现问题时使用编程器为单片机下载程序。

Figure 3-7 ISP 编程接口

5
基于 AVR 系列单片机的轮式教学机器人

4 软件

4.1 开发环境
AVR 教学机器人使用开源的 WinAVR 集成开发环境进行程序的编写和编译,可使用 C 语言进行开
发。开发界面如图 4-1 所示。

Figure 4-1 WinAVR 界面

4.2 程序编写
用户可使用 C 语言或汇编语言进行程序的开发。为了能够使单片机初学者尽快上手,AVR 教学机
器人提供了一套完整的库函数可以对机器人上的硬件进行操作,使得用户无需对单片机寄存器或底层
硬件有过多的了解。当用户逐步深入后,也可不使用库函数而独立进行开发。使用库函数进行开发时
只需要包含 ACE-128.h 或 ACE-8.h 即可。

下面对几个比较常用的库函数进行应用举例。

4.2.1 电机控制函数
可使用如下两个函数实现左右两个轮子的正反转及调速:

void motor_l(int speed) //左侧电机控制


void motor_r(int speed) //右侧电机控制

int speed 用来控制速度和方向,取值范围-255~255,正负决定马达正转或反转,取值越大,转


速越快。下面的程序可控制机器人向右转:

6
基于 AVR 系列单片机的轮式教学机器人

#include “ACE-128.h”
int main()
{
motor_l(255);
motor_r(-200);
}

4.2.2 模数转换函数
模数转换函数用于获取模拟传感器(如光电传感器)当前的数值。

unsigned int ADC(int channel)

int channel 用于选择某个传感器,取值范围 0~7,共 8 个模拟传感器。函数将返回一个 0~1023


的整形数。下面的程序可实现采集安装在机器人头部的两个光电传感器的数值:

#include “ACE-128.h”
int main()
{
int leftlight,rightlight;
for(;;)
{
leftlight=adc(0);
rightlight=adc(1);
}
}

4.2.3 串口通信函数
使用串口通信函数可实现与计算机间的串口通信。包括以下三个函数:

void COM_open(void) //打开串口


void COM_send(char data) //发送数据
unsigned char COM_read(void) //接收数据

7
基于 AVR 系列单片机的轮式教学机器人

4.3 程序下载及调试
使用专门开发的 ACE PC Suit 软件为机器人下载程序并进行调试。程序下载界面如图 4-2 所示。

Figure 4-2 程序下载

ACE PC Suit 还具备一定的调试能力,在线控制功能可以实时监视程序中用到的 ADC 的数值,并可


对电机进行实时控制。串口调试功能用于串口通讯的调试。

Figure 4-3 串口调试

8
基于 AVR 系列单片机的轮式教学机器人

4.4 追光程序举例
下面的程序可实现机器人追着光源行走。

#include<ACE-128.h>
int main(void)
{
int temp;

while(1)
{
temp=adc(6);
temp=adc(7);

if (adc(1)>300||adc(0)>300)
{ if (adc(1)>adc(0))
{ motor_l(255);
motor_r(150);
}
else
{ motor_l(150);
motor_r(255);
}
}
else if(adc(1)>200||adc(0)>200)
{
if (adc(1)>adc(0))
{ motor_l(255);
motor_r(100);
}
else
{ motor_l(100);
motor_r(255);
}
}
else
{
if (adc(1)>adc(0))
{ motor_l(255);
motor_r(0);
}
else
{ motor_l(0);
motor_r(255);
}
}
}
}

9
基于 AVR 系列单片机的轮式教学机器人

5 成本预算

5.1 基本车体
单价(1 套) 单价(50 套) 总价(1 套) 总价(50 套)
项目 数量
(元) (元) (元) (元)
有机玻璃板 1 10 7 10 7
直流减速电机 2 20 18 40 36
车轮 2 4 4 8 8
万向轮 1 10 9 10 9
聚合物锂电池 1 50 45 50 45
充电器 1 40 37 40 37
结构件 2 10 10 20 20
总计 178 162
表 1 基本车体成本

5.2 ATmega128 版本
单价(1 套) 单价(50 套) 总价(1 套) 总价(50 套)
项目 数量
(元) (元) (元) (元)
0.1uF 1 0.1 0.1 0.1 0.1
12pF 2 0.1 0.1 0.2 0.2
16MHz 1 2 2 2 2
10k 7 0.02 0.02 0.14 0.14
1k 32 0.02 0.02 0.64 0.64
2K 1 0.02 0.02 0.02 0.02
ATmega128-16 1 30 24 30 24
MAX232AESE 1 6 4 6 4
LED-RED 1 0.2 0.2 0.2 0.2
TPS76950DBVT 2 3.4 2.9 6.8 5.8
SWITCH 1 2 2 2 2
L293D 1 8 5 8 5
电路板 1 10 7 10 7
电路板开版 1 300 0 300 0
总计 366.1 51.1
表 2 ATmega128 版成本

10
基于 AVR 系列单片机的轮式教学机器人

5.3 ATmega8 版本
单价(1 套) 单价(50 套) 总价(1 套) 总价(50 套)
` 数量
(元) (元) (元) (元)
0.1uF 1 0.1 0.1 0.1 0.1
12pF 2 0.1 0.1 0.2 0.2
16MHz 1 2 1 2 1
10k 7 0.02 0.02 0.14 0.14
1k 12 0.02 0.02 0.24 0.24
2K 1 0.02 0.02 0.02 0.02
ATmega8-16 1 10 8 10 8
MAX232AESE 1 6 4 6 4
LED-RED 1 0.2 0.2 0.2 0.2
TPS76950DBVT 2 3.4 2.9 6.8 5.8
SWITCH 1 0.5 0.5 0.5 0.5
L293D 1 8 5 8 5
电路板 1 8 6 8 6
电路板开版 1 300 0 300 0
总计 342.2 31.2
表 3 ATmega8 版本成本

5.4 传感器及其他硬件
以下传感器及硬件模块可与 AVR 教学机器人连接使用,可根据需要选择。

项目 价格
人体红外热释电传感器 25
三轴加速度计 60
红外测据模块 22
光电传感器 2.5
压力传感器 80
光敏电阻 0.5
无线串口模块 120
蓝牙模块 78
USB 模块 32
表 4 传感器及其他硬件报价

11
基于 AVR 系列单片机的轮式教学机器人

5.5 总计
项目 数量 单价 总价
样机研制 1 3000 3000
基本车体 50 162 8100
ATmega128 版本 50 51.1 2555
ATmega8 版本 50 31.2 1560
传感器及其他硬件 - - 6250
总计 21465
表 5 总报价

12

Anda mungkin juga menyukai