5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 5037|回复: 20
打印 上一主题 下一主题

32路舵机(伺服电机)控制器

[复制链接]
跳转到指定楼层
楼主
发表于 2007-7-22 13:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何用遥控器来控制这玩意啊,各位有什么好注意不
http://www.ourrobot.cn/ShowPost.asp?ThreadID=3

欢迎继续阅读楼主其他信息

主题

  • 没有相关信息
  • 没有相关信息
  • 没有相关信息
沙发
发表于 2007-7-22 14:05 | 只看该作者
1US,理论精度而已,实际根本不能达到,不过控制舵机足够了,但是也没有他说的那样精度,有8位运动精度就很高了。
机器人控制不是靠遥控器控制的,是机器人自己控制的,遥控器发送的只是运动方案,用红外线最好不过。
用AVR芯片我感觉做舵机控制,精度高点的只能控制到10路,再多了就会出现信号争抢的情况,会大大降低控制精度。
多路控制应该用FPPA芯片,高精度80路也可以。:em01:
http://www.youtube.com/watch?v=LFYYIP8_3nY
3
 楼主| 发表于 2007-7-22 18:43 | 只看该作者
那他们不也是拿遥控器玩么,请教下怎么才能实现那样的功能,能帮搞个么
4
发表于 2007-7-22 21:20 | 只看该作者
在国内,没人愿意搞那个,费力费时间,又不挣钱,时代发展了,文明倒退了,没有办法,特色嘛

看视频里的那个样子,也不像是有什么平衡传感器的,把多路舵机信号按照时间纪录存储起来就可以了,通过指令调用就是了,需要个大点的存储器,
5
发表于 2007-7-23 09:07 | 只看该作者
控制机器人的,国内汉库等公司也有类似产品
6
发表于 2007-7-23 09:23 | 只看该作者
机器人也不用32个舵机呀?!:em16:
7
 楼主| 发表于 2007-7-23 09:33 | 只看该作者
一只手就要多少个自由度了,32还可能不够呢,只是要人去操作的话,肯定手忙脚乱的,

           单片机用在遥控上是很有前途的,像航拍这样的就需要这么多的通道了,还有多人遥控一台设备的,多工协作,

在国外搞单片机遥控上,都可以在么控制信号的时候自主飞行回归,看了资料,好想也弄个来玩玩,就是不知道该怎么做,
8
发表于 2007-7-23 10:19 | 只看该作者
:em26:
9
 楼主| 发表于 2007-7-23 10:22 | 只看该作者
FPPA这应该怎么学比较快啊,

     就当我是初学者,那些书,资料能让我事半功倍的呢
10
发表于 2007-7-23 13:40 | 只看该作者

学习FPPA,找我

很简单的程序设计而已,目前采用8核心的处理器阵列,非常方便做各种实时性要求很高的控制场合,在此谢谢propeller 对FPPA的认同,不过你那机器人打架的视频速度慢了点,放新浪播客吧!
11
 楼主| 发表于 2007-7-23 14:19 | 只看该作者
http://www.shuav.com/index.htm

VAP-2型自动驾驶仪挺好玩的
12
 楼主| 发表于 2007-7-23 14:20 | 只看该作者
raker  你有QQ么,加个QQ,交个朋友啦
13
发表于 2007-7-23 17:38 | 只看该作者
用过这样的控制板 ,精度确实可以, 可以同时控制32路舵机 也不会抖动

,板子不是用 IO口直接控制的 ,是用了辅助芯片。 通过单片机的spi进

行控制的  设计的比较巧妙,成本比较低  FPPA 可以控制几百路都不在话

下 不过成本较高,难度也比较高。  如果直接用avr的io控制的话  最多

是10路  而且精度也不会很高的 。 个人觉的这个用在双足机器人还是比较好的  好像国外有机器人用这块板子的  如果使用遥控器的话  可以使用2.4G的无线芯片  cc1001  应该就可以了    可以通过单片机的ADC来采集 控制杆信号  由单片机转化成控制信号  再有无线芯片发射出去   接收机 收到信号  解码出信号  送入控制板就可以了
14
 楼主| 发表于 2007-7-23 18:08 | 只看该作者
有相关资料么,如何实现呢
15
 楼主| 发表于 2007-7-23 18:26 | 只看该作者
用无线电遥控数字编解码及比例伺服电路实现的遥控机械人
该系统能通过无线电遥控指挥机器人以不同的速度前进、后退、转弯;控制机械臂左右、上下转动,这个动作要求是要很准确的控制到所指定位置;机械手可以力量适中地夹起适当重量的物品。其辅助功能还有照明、声音提示和电源不足报警等功能。
该系统电路主要分成两大部分:第一部分输入转换、指令编码、发射部分和第二部分接收、解码、伺服部分。
其中,第一部分的输入转换、指令编码部分用一片68HC908LJ12实现(选用该型号主要是因为LCD驱动)。它完成五个模拟量的AD转换、所有动作的动作范围调节和起始点的设定、电池电压的检测、编码和无线电发射控制。
第二部分的解码、比例伺服部分用68HC908SR12实现(选用该型号主要是因为PWM)。它完成解码、五个比例伺服舵机信号的控制(控制机械臂和机械手等用)、电机无级调速控制(机器人行走速度和方向控制)及所有的其它状态检测和输出控制。
2.1、系统的功能和主要特点:
1、        电路造价低—以68HC908LJ12和68HC908SR12为核心
2、        外围元件少—输入转换、指令编码部分除稳压电路和LCD显示屏几乎没有其它器件;解码、比例伺服控制部分也只有很少的外围器件。
3、        无线电编码信号能可靠及时地传输和解码(可在一定干扰环境中使用)
4、        解码后的比例伺服信号能准确地控制机器人做要求的动作。
5、        可配套不同的执行器完成不同的功能
6、        操作容易掌握
          7、系统即具有独立完整的功能,既可简化功能,进一步降低成本。用于控制各种模型,甚至玩具。又可将多片电路组合完成复杂功能的功能更强大的机器人。
2.2、系统的设计
2.2.1 设计思想和技术关键
一个遥控的机械人系统需要做到控制及时准确,否则就无任何意义。要做到这一点,编码信号通过无线电波传输的过程中接收部分能准确的甄别出编码信号是一个关键的地方。不能把不是发射编码的信号用来解码,也不能遇到一点电波干扰就不解码。要达到这一效果除技术上要采取窄带无线传输、编码中设计特征码和一些融错设计外,还采取了回避的方法。就是不采用数据传输的编码方式。因为现在手机、BP机、子母电话等无线设备非常多。这样可避免这一类信号万一与我们的系统同频时,干扰系统产生误动作。
为了降低硬件成本,采用能满足控制速度要求的最低波特率。
实现设计思想的单片机是极为重要的。它的可靠性和片上资源是选择的关键。如一片单片机的资源不足,还要另加其它芯片,就会给系统的可靠性、外型体积、造价带来很多负面的影响。MC68HC908LJ12 单片机对程序安全运行有较全面的保护,片上资源包含了发射机部分的全部需要。同样,MC68HC908SR12 单片机也对程序安全运行有较全面的保护,片上资源包含了接收部分的全部需要。
为了降低整机成本,司服机没有选用价格较高的步进电机,用的是普通司服电机。普通司服电机的价格比步进电机价格低很多。但控制精度不如步进电机。
行走的动力用的是普通电机。电机速度控制是用调整电压占空比的方法实现的。它的优点是能源利用率高,电机速度控制均匀。但这种方法会产生电波干扰,处理不当会影响编码信号的接收。
电机的正反转是用继电器换向的。这种电路简单可靠、过载能力强、成本低。但比用功率管组成的桥路换向电路,它的寿命要差得多。而且继电器自身的电量消耗也比较大。出于这一点,在实际应用中是需要斟酌的。当不是很方便就可以更换电池时或需要一组电池工作较长时间等情况时,前一种方案是不可取的。当然前一种方案在造价方面很有优势。
还有一个很重要的设计考虑,接收部分MC68HC908SR12的程序稍作调整就可以用几片组合成一个功能很强的机械人。如拟人的----有四肢、头、身体,可步行也可用轮子行走。手臂的功能可与人的手臂接近。而发射机部分则还是用一片 MC68HC908LJ12 单片机就可以了。
2.2.2 系统的功能和工作过程
系统有发射机和机械人两大部分。操作人员手持发射机操作。机械人可在平面行走。在无干扰的情况下控制半径大于100米(已超过可视距离)。发射机上的操作杆分别对应着机械人的相应动作。机械臂可90度角范围内任意角度停留(可设计成180度或270度也可以更大)。机械臂的高度和机械手的收放也是在一定范围内可调的。
在机械人上有转向指示(操作人员控制)、后退指示(自动)。
当电池的电压不足时会发出警报
如机械人工作环境光线不足,可打开照明灯。
2.3、系统框图:
图2.1为第一部分输入转换、指令编码、发射部分,图2.2为第二部分接收、解码、伺服部分
3、硬件描述
     本系统硬件有两大部分:输入转换、指令编码、发射部分和接收、解码、伺服部分----一下简称发射部分和接收部分。
3.1、发射部分  发射机部分的原理图见图3.1
                 图3.1发射机原理图
    从图中可以看出,核心器件是摩托罗拉的M68HC908LJ12 单片机。它配合很少量的外围元件完成了输入信号转换、LCD显示、控制参数的调整和记忆、指令编码、电源电压检测的全部功能。下面具体介绍。
3.1.1 模拟信号输入电路
    本系统中有五个模拟输入信号ADC0—ADC4,分别用来控制行走的方向、速度、机械臂的位置、高度和收放状态。这些控制量都要求把机械角度转换成比例的编码信号(解码时再转换成对应的角度或电机的相应转速)。
这五路信号的转换方法是一样的。先通过电位器P1---P5将机械角度转换成电位信号,再将电位信号通过单片机的AD转换器转换成对应的数字信号。然后再将各路数字信号按编码要求转换成编码信号送到发射电路调制输出。
3.1.2 开关信号输入电路
S1、R1;S2、R2、R3;S3、R4 组成了三组四个开关信号的输入。这些信号是通过开关控制输入脚 PTD4、PTD5、PTD6、PTD7 的电位实现信号输入的。
当S1 闭合时,接收机上鸣镝电路启动发出提示声音。S2 控制转向指示灯。S3控制照明灯。
3.1.3 参数的设定、保存与显示
系统中的一些参数需要预先设定好,并且要长期保存。在参数调整的过程中需要随时清楚参数的当前状态。因此选择了 LCD 显示。这就需要单片机具有LCD 显示器的驱动能力。以上的这些功能正是MC68HC908LJ12 单片机具备的功能。也就是选择该型号单片机的原因。
参数设定是通过由KG、KGH、KGL组成的键盘配合单片机完成的。
在FLASH 区留出一点区域,仿EE-ROM 使用就可实现数据的永久保存(在Monitor ROM中有相应的应用程序)。
因单片机中有 LCD 驱动电路,就不需要另加LCD驱动模块,降低了许多成本,电路也简单了。
3.1.4 声音输出和电源监控
T1、R8 和蜂鸣器组成了声音输出的功率放大电路。音频信号由单片机产生,通过T2CH0脚输出。声音输出用于输出电源电压过低时的警报和写入FLASH 完成的声音提示。
3.1.5 编码信号
编码信号由T1CH0输出到发射电路的调制端发射出去。
未标号的电容是为滤除射频干扰而设置的。
16
 楼主| 发表于 2007-7-23 19:10 | 只看该作者
3.2 接收部分        接收部分的原理图见图3.2
            图3.2 接收机原理图
接收机的核心器件是摩托罗拉的M68HC908SR12 单片机。它配合很少量的外围元件完成了指令解码、电机转速控制、司服机控制信号输出、声音输出、灯光控制和电源电压检测的全部功能。下面具体介绍。
  3.2.1 行进速度和方向控制
R1、R2、T1、V1、V2、V3组成了电机速度控制的功率放大电路。三极管T1将单片机PTD7脚输出的电机速度控制信号(PWM信号)的电平由VDD转换成VCC(相位反向)。这是VMOS 管阈值电压的需要。T1的输出驱动三个VMOS 功率管带动电动机转动。输出信号的电压占空比不同电动机 M 的转速随之不同。
R3、T2、J1;R4、T3、J2组成的电路为电动机转动方向控制信号提供功率放大。当PTD6 输出高电平、PTD5 低电平时,T2导通,J1吸合,T3截止,J2不吸合;在PTD7有输出信号时电机正转。当PTD5 输出高电平、PTD6 低电平时,T3导通,J2吸合,T2截止,J1不吸合;在PTD7有输出信号时电机反转。
3.2.2 司服机控制量
行走的方向控制由T2CH0输出控制信号,通过司服机1完成。
机械臂的方向控制由PWM0输出控制信号,通过司服机2完成。
机械臂的高度控制由PWM1输出控制信号,通过司服机3完成。
机械手的收放控制由PWM2输出控制信号,通过司服机4完成。
3.2.3 转向指示和后退指示
当有转向指示信号和后退行走时L4、L5、L6、L7会分别发光,做出指示
发射机上的S2 打到右边,L4、L6闪动发光。打到左边,L5、L7 闪动发光。
当向后行走时,L6、L7 发光。
3.2.4 鸣笛和电源不足警报输出
R6、T4 组成了声音输出功率放大电路。通过这部分电路将单片机的T2CH1脚的声音信号放大,驱动扬声器发出声音。
3.2.5 照明输出
  R5、V4 是照明的驱动电路。它将单片机的PTA5脚的控制信号放大,保证点亮照明灯。
3.2.6 电源电压监测
  通过R11和R12对VCC进行分压。保证VCC在最高电压时单片机ATD5脚的电位不高于VDD
从以上的硬件介绍中可以看出,无论是发射电路还是接收电路,其外围器件都是信号转换电路、显示器件和功率放大器件。这说明所有的功能都是由MC68HC908LJ12和MC68HC908SR12完成的
4、软件描述
     软件同样分两大部分:输入转换、指令编码、发射部分---简称发射部分;接收、解码、伺服部分---简称接收部分。
4.1 发射部分
    发射部分的主程序流程图见图4.1
这部分程序完成输入信号转换、电源电压监测、参数的修改和运算、状态显示、修改后的参数永久保存、指令编码及输出六大功能。
4.1.1 输入转换
      有六路模拟输入信号需要做AD转换。其中有5路是控制信号,一路是电源电压监测信号。采用在每个编码周期内循环采样一次的方法,保证每次编码是使用的数据是最新的。
4.1.2 电源电压监测
当ADC5的电位低于警戒线时,程序启动T2CH0的PWM输出,发出电源电压过低警报。
4.1.3 参数的修改和运算
由KGH、KGL、KG组成的键盘对应的输入端PTA0、PTA1、PTA2完成参数修改的功能。这组键盘是采用查询方式输入的,未采用键盘中断。这是因为考虑到编码输出要                       
        图4.1 发射部分主程序流程图

求的适时性很强,又使用了两个中断;同时在调整参数时,键盘的反映速度需要较慢,没有必要使用中断。
当PTA0和PTA1同时为“0”时(KGH、KGL同时按下),程序进入参数调整状态。PTA2时,如PTA0也为“0”则向前调整参数的种类;如PTA1也为“0”则向后调整参数的种类。只有PTA0为“0”时被调整的参数增加;PTA1为“0”时被调整的参数减小。PTA2 单独为“0”时无作用。当调整参数的种类到“退出”位置时,PTA0或PTA1有一个为“0”就退出参数调整状态。在正常状态下,只要PTA0和PTA1不同时为“0”其它情况都无作用。
下面是参数修改部分的程序
XSET   LDA PTA       ;读入键盘数据
       AND #$07      ;去掉无关量
       CBEQ KYD,XSET1 ;与上一次读入的数据相同转移
       STA KYD         ;新数据送入键盘数据寄存器
       CLR KYN         ;键盘读入次数寄存器清0
       BCLR KYF,BZR    ;键盘数据重复处理标志清0
       JMP  XLCD       ;到LCD显示
XSET1  INC KYN
       BRSET KYF,BZR,XSET2
       LDA KYN
       CMP  #$03
       BLO  XLCDB  ;小于则转移
       BSET KYF,BZR
XSET3  CLR  KYN
       LDA KYD
        AND  #$03
        BEQ XSET4
        CMP  #$03
       BEQ XLCDA  ;
       LDA STR
       BEQ  XLCDA
      BRSET 2,KYD,XSET5
      BRSET 0,KYD,XSET6
      CBEQA #$06,XSET7
      INC STR
      JMP XLCD
XSET2  LDA KYN   ;
       CMP  #$0F
       BLO  XLCDB  ;小于则转移
      JMP XSET3
XSET4  CLR  CHNR
       MOV #$01,STR
       JMP  XLCD
XSET5  CMP #$06
       BNE XSET9
       BSET WRF,BZR
       BCLR KYF,BZR
       CLR STR
       JMP XLCD
XSET6  CBEQA #$01,XSET8
      DEC STR
      JMP XLCD
XSET7  MOV #$01,STR
       JMP XLCD
XSET9  CBEQA #$01,XSET10
       MOV #$06,STR
       LDA STR
       LSLA
       LSLA
       LSLA
       ADD CHNR
       TAX
      LDA chn,X
      BRCLR 0,KYD,XSET11
      CMP #$50     ;
      BLS  XSET12
      DEC chn,X
      JMP XLCD
XSET10  BRCLR 0,KYD,XSET14
        LDA CHNR
        BEQ XSET15
        DEC CHNR
        JMP XLCD
XSET11 CMP #$78
      BHS  XSET13
      INC chn,X
      JMP XLCD
XSET12 LDA #$50   ;
      STA chn,X
      JMP XLCD
XSET14  LDA CHNR
       CBEQA #$04,XSET16
        INC CHNR
        JMP XLCD
XSET15  MOV #$04,CHNR
        JMP XLCD
XSET16  CLR CHNR
        JMP XLCD
XSET13 LDA #$78   ;
      STA chn,X
4.1.4 状态显示
     状态显示时通过一块3.5位的7段LCD  实现的。正常情况下显示电源电压。参数调整时显示被调整的参数。最后一位显示的是通道数。当最后一位闪动时为调整被调整参数的通道数。在调整控制方向时,负号为反向;无显示为正向。中间的双点亮时,为待退出状态。
4.1.5修改后的参数永久保存
    这部分程序是用单片机中的监控程序中的EE_READ和EE_WRITE完成的。
4.1.6指令编码及输出
因信号的输出适时性很强,所以使用了T1CH0的PWM输出。用T1MOD中断和T1CH0中断装入数据。
4.2 接收部分
    接收部分程序完成鉴别接收信号、解码、电机速度和方向控制、伺服机控制信号输出、声音信号和灯光输出功能。 图4.2为接收部分程序流程图(输出部分略)
17
发表于 2007-7-23 21:17 | 只看该作者
:em26: :em26:
18
发表于 2007-7-23 22:41 | 只看该作者
你这种控制方式太老了吧   现在好象不用了呀   根本控制不了几路舵机的

[ 本帖最后由 xiaoyao111 于 2007-7-23 22:42 编辑 ]
19
 楼主| 发表于 2007-7-24 18:57 | 只看该作者
我就是在找能多控的方案啊,
20
发表于 2007-7-25 12:12 | 只看该作者
:em04:
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表