四合院:我是雨水表哥
第553章 绘图机
“午马机的I/O口,直接输出脉冲。”吕辰在黑板上画了几条线,“步进电机需要脉冲信号,午马机有数字量输出芯片,8路输出,驱动电流够不够?”
诸葛彪想了想:“不够,午马机输出的是TTL电平,5伏,几个毫安。步进电机驱动器需要的是光耦隔离的信号,电流至少10毫安。中间要加一级驱动。”
“那就加。”吕辰说,“几个三极管的事,半天能不能搞定!”
“半天?”诸葛彪哼了一声,“我两个小时就能给你焊好。问题是,午马机那边怎么发脉冲?”
吕辰在纸上画了几笔:“微程序控制,每一位都可以单独置高置低,用循环指令控制高低电平的持续时间,就能产生脉冲信号。频率不需要太高,几百赫兹就够了,步进电机跑太快容易丢步。”
诸葛彪点点头:“用循环指令做延时,那得需要一台午马机专门伺候绘图仪。版图数据提前解析好,画图的时候只管发脉冲。”
吕辰道:“X轴和Y轴要同时运动,才能画出斜线和曲线。直线插补算法我来写吧。”
诸葛彪道:“那我搭微程序框架。”
他掰着手指头数了数:“第一步,实现单轴运动,X轴能动,Y轴能动。第二步,实现直线插补,从A点到B点。第三步,解析版图数据,支持多条线段连续绘制。七天,能不能跑通?”
吕辰想了想:“五天,把直线插补跑通,再用两天做版图数据解析,七天刚好。”
分工完毕,两人开始工作了起来。
当天晚上,吕辰就跑到了数字孪生实验室的机房。
他们申请的午马机到了,还在忙着装修机房。
吕辰开了一台先用上了。
他把一个黑皮本子摊在桌上,上面写满了伪代码和草稿。
直线插补的原理简单,从A点到B点,X方向要走ΔX步,Y方向要走ΔY步,步数多的那个轴做主步进,另一个轴做从步进。
每一步主步进的时候,判断从步进的位置偏差,累积到一个步进阈值就发一个脉冲。
这是DDA算法,数字微分分析器,60年代就已经很成熟了,但要把这个算法写成微程序,在午马机上跑起来,还要控制外部的步进电机,就不是理论问题,是工程问题了。
他盯着屏幕,手指在键盘上敲了一行命令,打开了一个新的文件。
他在文件的开头写了一行注释:
DRAW_LINE: 从(X1,Y1)到(X2,Y2)画直线
输入: R1=X1, R2=Y1, R3=X2, R4=Y2
输出: 无
破坏: R5,R6,R7,R8,R9,R10
然后他停下来,靠在椅背上,闭着眼睛想了一会儿。
过了大约一刻钟,他坐直了身子,开始敲微指令。
一条一条,把DDA算法拆解成午马机能执行的指令。
计算ΔX、ΔY。
取绝对值,判断步数多的主轴。
设置主轴步进计数器的初值。
设置从轴偏差累加器的初值。
主步进循环:主轴发一个脉冲,从轴累加偏差,偏差超过阈值就发一个从步进脉冲,计数减一,直到零。
每一步都要考虑正负方向,每一步都要判断是否到达终点。
微指令密密麻麻地铺满了屏幕,每一行都像一根毛细血管,汇在一起,构成一条完整的生命线。
不知不觉就敲到了凌晨三点。
机房的窗外,夜色浓得像墨。
他揉了揉眼睛,保存文件,靠在椅背上闭了一会儿眼。
再睁开的时候,天已经蒙蒙亮了。
看了一眼墙上的挂钟,五点四十。
吕辰站起来,活动了一下僵硬的脖子,走出机房。
走廊里很安静,只有自己的脚步声。
从窗户望出去,东边的天际线泛着一线鱼肚白,红星轧钢厂的烟囱已经开始冒烟了。
他在走廊里站了一会儿,转身回了机房,坐下来,继续敲。
第三天,诸葛彪的功率板焊好了。
他用的是达林顿管阵列,UDN2981,一片能带8路输出,每路驱动电流最大350毫安,直接驱动步进电机的光耦隔离输入绰绰有余。
输入来自午马机,输出接到步进电机的驱动器。
中间加了光耦隔离,防止步进电机的反向电动势烧坏午马机的I/O口。
整块板子还没巴掌大,焊在万用板上,飞线密密麻麻。
“就这么简单?”吕辰接过去看了看。
“就这么简单。”诸葛彪把烟叼在嘴角,“步进电机驱动器是现成的,功率板只需要把午马机的TTL信号转成驱动器的输入信号。UDN2981一片搞定,外围电路就几个电阻电容。”
“试过没有?”
“试了。GYDO01的第一位置高,电机转一步。置低,停。没问题。”
吕辰把板子还给诸葛彪:“等雷应元的机械平台装好,联调。”
诸葛彪把板子接过去,用透明胶带封住焊点,放在桌上,又点了一根烟。
第七天,雷应元等人的机械平台初步装起来了,底座固定在实验台上,X轴导轨装在底座上,丝杆跟导轨平行,步进电机通过联轴器连接丝杆。
第八天,Y轴装在X轴的滑台上,结构和X轴一样。
第九天,笔架装在Y轴的滑台上,一支圆珠笔用弹簧压着,笔尖刚好接触纸面。
手动推了推,顺滑。
电机带了一下,能动。
吕辰用水平仪测了一下导轨,X轴全长水平度0.08毫米,Y轴0.1毫米。
吕辰的微程序也跑通了。
他在午马机上写了一个测试程序,控制X轴步进电机正转1000步,停一秒,反转1000步。
执行的时候,X轴滑台慢吞吞地往前走,走到头,停了一秒,又慢吞吞地退回来。
虽然慢得像蜗牛,但每一步都是准的。
雷应元拿钢尺量了一下,1000步,理论位移25毫米,实际位移24.8毫米。
“差0.2毫米,怎么回事?”雷应元皱着眉头,“是不是丝杆导程不准?”
吕辰想了想:“不是丝杆的问题。步进电机启动和停止的时候加减速没做,丢步了。”
他又回去改微程序。
在脉冲序列的起始和结束加了加减速曲线,开始时频率从低到高,结束时频率从高到低。
再跑一次。
1000步,理论位移25毫米,实际位移25.1毫米。
“行了。”诸葛彪说,“误差0.1毫米,在范围内。”
第九天晚上,第一张图画出来了。
不是什么复杂的图,就是一个矩形,长200毫米,宽150毫米,四条边,首尾相连。
吕辰在终端上敲了一行命令:RUN DRAW_RECT
午马机嗡嗡地响了一会儿,滑台开始动了。
圆珠笔在纸上沙沙地走,从左下角出发,向右走200毫米,向上走150毫米,向左走200毫米,向下走150毫米,回到起点。
整个过程不到一分钟。
诸葛彪把图纸从平台上取下来,摊在桌上。
九个人围着桌子,看着那张纸,谁都没说话。
矩形不算太方,右下角稍微有点歪。
《四合院:我是雨水表哥》 第553章 绘图机 精彩章节在线阅读。本章共计 6275 字。