使用Servomagic跟踪控制的同步伺服控制器

[10-10 20:42:03]   来源:http://www.88dzw.com  电子制作   阅读:8308

文章摘要: 控制原理 SetvoMagIC使用类Bresenham算法来移动一个或多个伺服器(平滑地)到其新的位置。设计此程序的人是Albert Nijhof。这里使用的是其无专利的版本。 ServoMagic是如何作到能够同步地改变伺服器的位置的呢?就要为每个马达确定移动到新位置而需要多少行程。对于这个算法来说,最长的行程(称为:步数)决定开始点。每个马达都必须在这个步数中到达终点。为每个马达保’存一个计数器,一旦计数归零,就要重新装入最大的步数。每个计数器从最大值开始,做减法计数。最终能使伺服机构产生合适的模拟运动,每个伺服器能达到最终的目标位置。如下面的实例中所显示的。在表1中,

使用Servomagic跟踪控制的同步伺服控制器,标签:电子小制作,http://www.88dzw.com

    控制原理

    SetvoMagIC使用类Bresenham算法来移动一个或多个伺服器(平滑地)到其新的位置。设计此程序的人是Albert Nijhof。这里使用的是其无专利的版本。

    ServoMagic是如何作到能够同步地改变伺服器的位置的呢?就要为每个马达确定移动到新位置而需要多少行程。对于这个算法来说,最长的行程(称为:步数)决定开始点。每个马达都必须在这个步数中到达终点。为每个马达保’存一个计数器,一旦计数归零,就要重新装入最大的步数。每个计数器从最大值开始,做减法计数。最终能使伺服机构产生合适的模拟运动,每个伺服器能达到最终的目标位置。如下面的实例中所显示的。在表1中,星号“*”表示所对应的伺服器改变后的位置,而‘一’表示还没有发生改变。表中汇总了算法的最初执行过程。

    上面例子的各伺服器最初的起始位置为0,0,0,0,0,而最终位置分别是:10,3,7,1,2。从表中可以看到,各伺服器的最终位置都在10步内达到。当计数器为空(或为负)时,会重新装入最大步数(在这里为10)。所有计数器开始时都装入最大步数的一半(本例中为5)。伺服器1(s1)的计数器必须每步都重新装入,因此,这个伺服器可以改变位置10次。而伺服器5(s5)仅可以改变位置2次,因为它的计数器只有两次开放入口的机会。按照这种办法,各伺服器既可以分别控制,也可以同时控制。既可以减速,也可以不减速。但总能够协调地运行。
   
    硬件结构
   
   图1的电路中,最重要的部件是Atmel公司的8位RISC型微控制器芯片AT90S2313。在本应用电路中,时钟采用4MHz。此微控制器片内带有2kB闪存;128字节RAM;128字节EEPROM和5个I/O端口。外接的其余元件很少。为了与ServoMagic模块通讯,可以有两种选择:一是使用RS232口,电路中以晶体管T1/1.2为主组成。也可以通过36kHz红外接收器(IC1)连接到K3上(注意:两者不能同时使用)。最后,可以看到:电路采用双电源供电。


    关于电源,要提醒:由于这里使用的AVR芯片没有电压降低检测器,因此,如果加电时电源电压上升太慢,则微控制器的复位过程可能无法正常进行。结果可能造成内部EEPRoM中几个字节内容改变。Atmel公司本身对此发出过警示:如果必要时,需加装额外的电压下降检测器。更好的办法是使用Attiny2313,其装有内置的电压下降检测器。这些问题会在本电路的第二版中加以考虑。

    在电路的PCB板上有一系列连接伺服器的接口;以及连接Atmel的ISP编程器的接口;以及一个复位按钮,一个DEMO(演示)模式按钮。还留有用于安装连接RS232连接器的直角D9型阴插座的安装位置,以及用于IC1红外接收器的安装位置。如果伺服器需要更大的功率,那么还可以考虑用78S06代替现在的稳压器IC3(78S05)。如果需要很多大功率的伺服器,可能需要采用类似78T05(3A)的稳压器。注意不要忘记给稳压器安装合适的散热片。
   
    设计细节
   
    每种类型的伺服器在不同脉宽时,有自己的启始和停止位置。所有伺服器的启、停位置都存储在AT90S2313内部的EEPROM中的一个表里。为了确保每个伺服器能够用同样的数据(O~180)来控制。需要计算脉冲的宽度,以便为每个伺服器分别进行换算。在这种方式下,所有伺服器可能用到超过其最大范围。但程序不需要记忆每个独立的伺服器的实际范围。其基本计算如下:

    {((停止位置一开始位置)×设定位置)/极限)+开始位置

[1] [2]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作

《使用Servomagic跟踪控制的同步伺服控制器》相关文章