智能绘图小车

 Autonomous Drawing Car(AVR)

 

    张皓
2008.6.7

   

          

  感谢上帝我目前制作的智能绘图已完成,现发表于网上.

智能绘图小车是种绘图装置,使用两个步进电机作为动力,控制水笔在纸张上绘图.结构方面,横向由圆盘拉动棉线,进而拖动笔座移动,类似于绘图仪结构,旧式电唱机也具相似结构.

 

 

材料来源:

减速步进电机型号为35BYJ46,因减速比高,所以绘图速度较慢.

机身使用旧抽屉导轨加工而成.拉线圆盘左侧的用的是窗帘上的导轮.塑料齿轮用旧四驱车内的零件.

其他部件如笔,棉线,铅丝等市购.

电路方面:

ULN2003A/ULN2008是款性价比高的芯片,非常适合驱动单极性直流步进电机.本装置使用两片ULN2003驱动.ULN2008与ULN2003的区别在于ULN2008有八个缓冲器比前者多一个,一片就可驱动两电机了.24C256用于将曲线数据存储EEPROM,以实现脱离电脑独立运行.

简单的考虑,没有设计抬落笔机构.

 

简单图形

 

串口传送:

串口只以字为单位传送,但本系统坐标数据为带符号整型(4字节),AVR可使用C语言指针或共用体转换,VB用内存拷贝解决:

...

uchar *p;
p=(uchar*)&xytmp;
...
for(i=0;i<4;i++)
{
while(!(UCSRA&0x20)); //坐标发送出;
UDR=*p;
p++;
}

 

'VB

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
...

CopyMemory curreclxy, RecDataBuffer(0), 4

...

 

 

 

步进电机速度:

步进电机速度如果从零瞬间加速到最高度,会出现"失步"的问题,程序中设置了位置、速度、加速度、速度上限几个变量。速度随时间逐渐递增,并终止于加速度上限,避免 了失步的发生. 第一次运行将速度最大值velmax, 加速度值Acceleration写入到EEPROM

...

Y_velocity+=Acceleration;//速度递增
if (Y_velocity>velmax) Y_velocity=velmax;//速度上限

...

//步进脉冲
if (Y_velocity>0)//正转
{
Ystepval=(Ystepval<<1);
if (Ystepval>=0b010000) Ystepval=1;
Ypos++;
}
else//反转
{
Ystepval=(Ystepval>>1);
if (Ystepval==0) Ystepval=0b01000;
Ypos--;
}

 


智能绘图车合适电子爱好者制作.

 

 

编辑器edit

代码avr