查看: 3340|回复: 6

基于AVR XMEGA-A3BU Xplained控制器的Wifi小车制作(15)---舵机

[复制链接]
  • TA的每日心情
    擦汗
    2024-9-30 02:33
  • 签到天数: 444 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-5-9 23:01:51 | 显示全部楼层 |阅读模式
    分享到:
            今天下午在实验室朋友的催促下,我开始了wifi控制舵机的研究。
            首先是研究舵机,还记得我曾在帖子中说到过 我的舵机模块  从小侄子的遥控飞机上拆下来的   网上查了下舵机的工作原理 它有3根引出线,电源、地,信号线      信号为PWM信号    大致意思是  给不同的PWM占空比,舵机会调整到一个固定的角度,然后保持不变,如果外部有扰动,舵机(伺服电机)就会立刻反应消除扰动造成的角度偏移,恢复之前的角度状态。
             我现在变得很好奇,为啥会这样子神奇呢?! 怀着一颗强烈的好奇心,就动手拆开了舵机
              舵机1.jpg 舵机2.jpg
    发现,原来舵机(伺服电机)内部用的还是直流电机 ,但是它里面额外用了一些电路,一通电时,直流电机就会不停的转,当输入的脉冲信号(PWM)变化时,它的齿轮组就会转到了       当外部力促使主轴转动时,(主轴上大致连了一个可调电容),相当于改变了可调电容的容值,然后电路就会检测到,立刻就会做出控制动作,使容值恢复原来的值,也就相当于控制主轴恢复到之前的角度位置。

    当然,最重要的实验就是wifi控制舵机的程序啦,哈哈  这个我也实验成功了,可惜一时欣喜,忘记录制视频了,以后再补上,现在贴出代码先
    #include <asf.h>
    #define USART_SERIAL_BAUDRATE               115200
    #define USART_SERIAL_CHAR_LENGTH         USART_CHSIZE_8BIT_gc
    #define USART_SERIAL_PARITY                     USART_PMODE_DISABLED_gc
    #define USART_SERIAL_STOP_BIT            true
    int main (void)
    {
    board_init();
    sysclk_init();//调用ASF框架函数初始化时钟
    delay_init(sysclk_get_cpu_hz());//调用ASF框架函数初始化delay服务

    struct pwm_config pwm_cfg;
    pwm_init(&pwm_cfg,PWM_TCE0, PWM_CH_A, 500);    //配置的PWM输出口为PE0

    static usart_rs232_options_t USART_SERIAL_OPTIONS = {
      .baudrate = USART_SERIAL_BAUDRATE,
      .charlength = USART_SERIAL_CHAR_LENGTH,
      .paritytype = USART_SERIAL_PARITY,
      .stopbits = USART_SERIAL_STOP_BIT  };

    sysclk_enable_module(SYSCLK_PORT_E, PR_USART0_bm);//Enable the clock for the USART module
    usart_init_rs232(&USARTE0, &USART_SERIAL_OPTIONS);//Initialize in RS232 mode:
    uint8_t received_byte;//A variable for the received byte must be added:

    while(1)
    {      
              received_byte = usart_getchar(&USARTE0);//Wait for reception of a character:
             // usart_putchar(&USARTE0, received_byte);//Echo the character back:
           switch( received_byte )
            {
                 case a: pwm_start(& pwm_cfg,20);  break;   //20%占空比

                 case b: pwm_start(& pwm_cfg,50); break;   //50%占空比

                 case c: pwm_start(& pwm_cfg,80); break;   //80%占空比
            }
      }

    总结:   舵机的具体参数还没测试完好,即调整百分之多少的占空比对应的输出角度是多少  这个还有待进一步的验证。

    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2015-12-14 11:43
  • 签到天数: 556 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-5-9 23:20:56 | 显示全部楼层
    顶一个                 
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-1 09:28
  • 签到天数: 90 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2013-5-10 00:45:25 | 显示全部楼层
    楼主你测验一下波形吧?感觉50%驱动有点问题,舵机一般控制周期20MS.其中0.5ms--2.5ms对应0-180度.1.5ms居中.我记得是这样的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-9-30 02:33
  • 签到天数: 444 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2013-5-10 08:40:53 | 显示全部楼层
    dlyt03 发表于 2013-5-9 23:41
    再顶一个

    顶顶更健康!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-9-30 02:33
  • 签到天数: 444 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2013-5-10 08:41:47 | 显示全部楼层
    ??? 发表于 2013-5-10 00:45
    楼主你测验一下波形吧?感觉50%驱动有点问题,舵机一般控制周期20MS.其中0.5ms--2.5ms对应0-180度. ...

    好建议,刚好我实验室有示波器。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2024-10-28 10:11
  • 签到天数: 1703 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2013-5-13 09:12:45 | 显示全部楼层
    请问下,直流电机旁边的芯片是什么型号?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-9-30 02:33
  • 签到天数: 444 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2013-5-14 16:32:22 | 显示全部楼层
    nemon 发表于 2013-5-13 09:12
    请问下,直流电机旁边的芯片是什么型号?

    这个没有拆开看   小怕拆下了就装不上去了
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-12-21 01:53 , Processed in 0.156692 second(s), 27 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.