过了大约一刻钟,他坐直了身子,开始敲微指令。
一条一条,把dda算法拆解成午马机能执行的指令。
计算Δx、Δy。
取绝对值,判断步数多的主轴。
设置主轴步进计数器的初值。
设置从轴偏差累加器的初值。
主步进循环:主轴一个脉冲,从轴累加偏差,偏差过阈值就一个从步进脉冲,计数减一,直到零。
每一步都要考虑正负方向,每一步都要判断是否到达终点。
微指令密密麻麻地铺满了屏幕,每一行都像一根毛细血管,汇在一起,构成一条完整的生命线。
不知不觉就敲到了凌晨三点。
机房的窗外,夜色浓得像墨。
他揉了揉眼睛,保存文件,靠在椅背上闭了一会儿眼。
再睁开的时候,天已经蒙蒙亮了。
看了一眼墙上的挂钟,五点四十。
吕辰站起来,活动了一下僵硬的脖子,走出机房。
走廊里很安静,只有自己的脚步声。
从窗户望出去,东边的天际线泛着一线鱼肚白,红星轧钢厂的烟囱已经开始冒烟了。
他在走廊里站了一会儿,转身回了机房,坐下来,继续敲。
第三天,诸葛彪的功率板焊好了。
他用的是达林顿管阵列,udn,一片能带路输出,每路驱动电流最大o毫安,直接驱动步进电机的光耦隔离输入绰绰有余。
输入来自午马机,输出接到步进电机的驱动器。
中间加了光耦隔离,防止步进电机的反向电动势烧坏午马机的io口。
整块板子还没巴掌大,焊在万用板上,飞线密密麻麻。
“就这么简单?”吕辰接过去看了看。
“就这么简单。”诸葛彪把烟叼在嘴角,“步进电机驱动器是现成的,功率板只需要把午马机的ttl信号转成驱动器的输入信号。udn一片搞定,外围电路就几个电阻电容。”
“试过没有?”
“试了。gy-do-o的第一位置高,电机转一步。置低,停。没问题。”
吕辰把板子还给诸葛彪:“等雷应元的机械平台装好,联调。”
诸葛彪把板子接过去,用透明胶带封住焊点,放在桌上,又点了一根烟。
第七天,雷应元等人的机械平台初步装起来了,底座固定在实验台上,x轴导轨装在底座上,丝杆跟导轨平行,步进电机通过联轴器连接丝杆。
第八天,y轴装在x轴的滑台上,结构和x轴一样。
第九天,笔架装在y轴的滑台上,一支圆珠笔用弹簧压着,笔尖刚好接触纸面。
手动推了推,顺滑。
电机带了一下,能动。
吕辰用水平仪测了一下导轨,x轴全长水平度oo毫米,y轴o毫米。
吕辰的微程序也跑通了。
他在午马机上写了一个测试程序,控制x轴步进电机正转ooo步,停一秒,反转ooo步。
执行的时候,x轴滑台慢吞吞地往前走,走到头,停了一秒,又慢吞吞地退回来。
虽然慢得像蜗牛,但每一步都是准的。
雷应元拿钢尺量了一下,ooo步,理论位移毫米,实际位移毫米。
“差o毫米,怎么回事?”雷应元皱着眉头,“是不是丝杆导程不准?”
吕辰想了想:“不是丝杆的问题。步进电机启动和停止的时候加减没做,丢步了。”
他又回去改微程序。
在脉冲序列的起始和结束加了加减曲线,开始时频率从低到高,结束时频率从高到低。
再跑一次。
ooo步,理论位移毫米,实际位移毫米。
“行了。”诸葛彪说,“误差o毫米,在范围内。”
第九天晚上,第一张图画出来了。
不是什么复杂的图,就是一个矩形,长oo毫米,宽o毫米,四条边,尾相连。