绘图小车设计Word文档下载推荐.docx

上传人:b****6 文档编号:16364210 上传时间:2022-11-23 格式:DOCX 页数:9 大小:208.60KB
下载 相关 举报
绘图小车设计Word文档下载推荐.docx_第1页
第1页 / 共9页
绘图小车设计Word文档下载推荐.docx_第2页
第2页 / 共9页
绘图小车设计Word文档下载推荐.docx_第3页
第3页 / 共9页
绘图小车设计Word文档下载推荐.docx_第4页
第4页 / 共9页
绘图小车设计Word文档下载推荐.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

绘图小车设计Word文档下载推荐.docx

《绘图小车设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《绘图小车设计Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。

绘图小车设计Word文档下载推荐.docx

2.1、控制模块6

2.2、电机驱动模块6

2.3、传感器模块7

三、软件设计8

前言

本小组的只能小车结构简单,并且认为题目为画线而非寻线,因此传感器只有一个,为霍尔传感器用于测量小车走过的距离,然后通过单片机控制,以及小键盘的输入使其实现各种的绘图。

单片机运用的是新手最普遍用的51单片机,该单片机经典,较为简单,其功能也不弱,性价比比较高。

一、设计思路

题目为用小车画出指定的图案,并且只有指定长度的支线,或指定边长的矩形等指定形状的且只有直角的转弯。

本这从最简单的方案出发,即,每次用小键盘对单片机输入每次需要画图的要图,如“画一个边长100的矩形”即按“1”“0”“0”“右转”“1”“0”“0”“右转”“1”“0”“0”“右转”“1”“0”“0”“确认”,那么在单片机的控制下,并且通过霍尔传感器对距离的测量,实现100的行走,但由于人工放置的小磁铁精度不太够,所以这100肯定是有偏差,在目前的条件下,使得本小车的精度不足。

至于左、右的转弯,由于本小车是由两个马达的后轮以及单个前万向轮组成,并且笔安装在后轮对轴的正中心,所以直角转弯只需用单片机来控制一个轮向前,另一个轮向后,并且速度一致,再用霍尔传感器使得轮子转动特定的距离即可,当然,还是精度的问题,依旧是个大问题。

所以总得来说,本小车就有,控制模块,传感模块以及电机驱动模块。

原理图设计:

(1)51单片机控制模块

(2)霍尔传感器模块

(3)电机驱动模块

(4)电源供电模块

二、硬件设计

2.1、控制模块

因为这次画画小车的动能需求不大,只是画一些基本的图形。

因此选择比较容易操作的51单片机系统。

51单片机是基础入门的一个单片机,还是应用最广泛的一种。

运用51单片机p1.0~p1.7控制键盘输入,p0.0~p0.3,p2.0~p2.1控制电机驱动,XTAL1,XTAL2控制晶振模块,RET控制复位模块。

2.2、电机驱动模块

采用LM298控制电机驱动模块,电机驱动有2个直流电机,分别控制不同的轮使它有不同的转速以控制转弯。

通过out1~out3管脚控制电机的转动。

L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。

4脚VS接电源电压,VS电压范围VIH为+2.5~46V。

输出电流可达2.5A,可驱动电感性负载。

1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。

L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。

5,7,10,12脚接输入控制电平,控制电机的正反转。

EnA,EnB接控制使能端,控制电机的停转。

以下的是L298N功能逻辑图。

2.3、传感器模块

小车的传感器一般选用红外线传感器或者霍尔传感器,因为这次小车的所需要的功能不多,因此采用霍尔传感器。

一个霍尔元件一般有四个引出端子,其中两根是霍尔元件的偏置电流IC的输入端,另两根是霍尔电压的输出端。

如果两输出端构成外回路,就会产生霍尔电流。

一般地说,偏置电流的设定通常由外部的基准电压源给出;

若精度要求高,则基准电压源均用恒流源取代。

为了达到高的灵敏度,有的霍尔元件的传感面上装有高导磁系数的坡莫合金;

这类传感器的霍尔电势较大,但在0.05T左右出现饱和,仅适用在低量限、小量程下使用。

三、软件设计

本小车使用51单片机,使用KevlC51编写程序。

程序的分为,键盘输入数据的识别转化部分,以及霍尔传感器的输入部分以及电机的输出部分。

总得来说,本者最简单小车的原则,本程序也是相当的简单,就不详细介绍。

程序如下:

#include<

reg52.h>

#defineucharunsignedchar

codeuchark_tab[]={0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,

0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77};

//键值

ucharjs=0;

voiddelay(unsignedintcnt)//延时函数

{

while(--cnt);

}

ucharnkey_s0(uchary)

{

uchari,b;

for(i=0;

i,16;

i++)

{

b=k_tab[i];

if(b==y)

returni;

}

ucharnkey()

uchara,b;

P1=0xf0;

a=P1;

b=a;

P1=0xf;

a|=b;

b=nkey_s0(a);

returnb;

bitkeys()

uchara;

if(a==0xf0)

return1;

else

return0;

ucharkeyi()

while

(1)

{

if(keys()==0)

delay(9000);

if(keys()==0)

{

a=nkey();

if(a<

0x10&

&

keys()==1)

returna;

}

}

}

main()

ucharx[3],i=0,a[10],j=0,ks=0,k=0;

P0=0x2d;

//电机关

IE=0x85;

//开外中断

TCON=0x05;

//下降沿触发

while

(1)//主循环

while(ks==0)

if(keyi()==0)x[i]=1,i++;

if(keyi()==1)x[i]=2,i++;

if(keyi()==2)x[i]=3,i++;

if(keyi()==4)x[i]=4,i++;

if(keyi()==5)x[i]=5,i++;

if(keyi()==6)x[i]=6,i++;

if(keyi()==8)x[i]=7,i++;

if(keyi()==9)x[i]=8,i++;

if(keyi()==10)x[i]=9,i++;

if(keyi()==12)a[j]=1000*x[0]+100*x[1]+10*x[2]+1,i=0,j++;

//左转

if(keyi()==13)x[i]=0,i++;

if(keyi()==14)a[j]=1000*x[0]+100*x[1]+10*x[2]+2,i=0,j++;

//右转

if(keyi()==15)

{ks=1;

a[j]=1000*x[0]+100*x[1]+10*x[2]+0;

}//确定

delay(99999);

for(k=0;

k<

=j;

k++)

js=0;

while(js!

=(a[k]/10)/4)

P0=0x36;

//电机开

P0=0x2d;

=3)

if(a[k]%10==1)P0=0x33;

//左转

if(a[k]%10==2)P0=0x1e;

//右转

if(a[k]%10==0)break;

j=0,ks=0;

voidint0(void)interrupt0

js++;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1