
教育机器人-龙人宝贝小车简介.ppt
23页基于“教育机器人”的 计算机编程能力实训,2014-05-13,1,内容,C语言教育机器人概述 程序案例相关软件硬件搭建程序编写、编译、下载、运行,2,C语言教学机器人—“宝贝车”概述,主板 金属车架 舵机2个 主动轮2个随动轮1个 轮子防滑胶圈2个 电池盒1个 充电锂电池2个 充电器 程序下载器(USBASP下载器) USB转串口线 基本元器件、螺丝螺母、导线若干 螺丝刀、尖嘴钳,深圳市中科鸥鹏智能科技有限公司(WWW.SZOPEN.CN),3,C语言教学机器人—“宝贝车”概述,4,控制板结构简介,1、MCU:AT89S52 2、四个I/O端口 P0-P3 3、Vcc +5V GND接地 4、面包板,5,运行第一个C程序—控制2个发光二极管交替闪烁,,一、软件安装 二、电路搭建 三、程序编写及编译 四、下载运行,6,一、软件安装 -- 开发环境 Keil C,安装完成后,将宝贝车所需头文件拷贝到C:\Keil\C51\INC,7,一、软件安装 -- USBASP下载器驱动安装,USB-ASP 下载器,,8,一、软件安装 -- AVR_fighter 程序下载软件,,9,二、电路搭建,LED灯与单片机的连接电路图,现在动动手,给机器人装上几盏LED灯,搭接电路的面包板介绍和线路搭建,10,最简单的机器人C程序设计:表情流水灯,#include#includeint main(void) {uart_Init(); //初始化串口printf(“The LED connected to P1_0 is blinking!\n“);while(1){P1_0=1; P1_1=0; delay_nms(500); //延时500msP1_0=0; P1_1=1; delay_nms(500); //延时500ms}},11,1. 新建工程Pro1。
2. 选择芯片 Atmel – AT89S52 确定 (弹出窗口点否)3. 新建文件,编程,保存为 Pro1.C4. 将文件添加到项目5. 右键单击项目,选择 Option to target如右图进行设置6. 编译连接程序,得到 Pro1.hex文件,创建与编辑你的第一个机器人程序,,,12,下载执行文件到机器人控制器(AT89S52单片机),,,,第一步:选择需要下载的hex文程序,第二步:选择正确的芯片类型,第三步:确保开发板供电正常和线路连接正确点击该按钮将程序下载到开发板上13,#include #include #include void Forward(void) { int i;for(i=1;i<=65;i++){ P1_0=1; delay_nus(1700); P1_0=0;P1_1=1; delay_nus(1300); P1_1=0;delay_nms(20);} } void Left_Turn(void) { int i;for(i=1;i<=10;i++){ P1_0=1; delay_nus(1300); P1_0=0;P1_1=1; delay_nus(1300); P1_1=0;delay_nms(20);} },实例二 -- 控制舵机让机器人动起来,14,void Right_Turn(void) { int i;for(i=1;i<=10;i++){ P1_0=1; delay_nus(1700); P1_0=0;P1_1=1; delay_nus(1700); P1_1=0;delay_nms(20);} } void Backward(void) { int i;for(i=1;i<=65;i++){P1_0=1; delay_nus(1300); P1_0=0;P1_1=1; delay_nus(1700); P1_1=0;delay_nms(20);} },15,int main(void) {char Navigation[12]={'F','L','F','R','F','R','F','L','F','F','B','\0'};int address=0; LCM_Init(); delay_nms(2000);while(Navigation[address]!='\0') {switch(Navigation[address]) {case 'F': delay_nms(500); Forward(); delay_nms(2000);break;case 'L': delay_nms(500); Left_Turn(); delay_nms(2000);break;case 'R': delay_nms(500); Right_Turn(); delay_nms(2000);break;case 'B': delay_nms(500); Backward(); delay_nms(2000);break;}address++;}while(1); },16,1、舵机的连接,实例二 -- 控制舵机让机器人动起来,17,2、舵机调零while(1){P1_0=1;delay_nus(1500);P1_0=0;delay_nus(20000);},实例二 -- 控制舵机让机器人动起来,18,3、全速正转while(1){P1_0=1;delay_nus(1700);P1_0=0;delay_nus(20000);},实例二 -- 控制舵机让机器人动起来,19,4、全速反转while(1){P1_0=1;delay_nus(1700);P1_0=0;delay_nus(20000);},实例二 -- 控制舵机让机器人动起来,20,5、全速前进左轮全速正转,右轮全速反转,因为两个轮子的安装是对称的。
while(1) {P1_0=1;delay_nus(1700);P1_0=0;P1_1=1;delay_nus(1300);P1_1=0;delay_nms(20);},实例二 -- 控制舵机让机器人动起来,21,6、程序最后 while(1); 语句的作用单片机是单任务的,如果不永真循环将程序停在该语句,MCU就会继续从内存中向下读取指令,程序就跑飞了实例二 -- 控制舵机让机器人动起来,Q & A!,Thanks!,。
