3497|3

67

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

LPC1500体验+HID和PWM控制舵机 [复制链接]

我以前在51上做过hid,这次看到想弄个在电脑运行的,顺便手头有个mg995舵机,论坛有人大甩卖的时候买的,就做个hid控制的舵机。

如图是实物图,用一个棉签来指示方向。
接线很简单,舵机1接地2接5v,3接pwm。这里pwm由于可随便引至方便的引脚,所以这里接最下面的。
程序是用lpcopen的usbd_rom_hid_generic和sct_pwm改的。
usbd_rom_hid_generic里需要改的是描述符文件和相应的处理文件。在描述符文件中,需要把USB_FsConfigDescriptor中的端点描述的最大包长改成需要的。这里我看见论坛之前有人发的hid的帖子没提到这个,经试验,这样会导致pc机写的时候片子只能收到前4字节,读的时候全是乱码。然后修改HID_INPUT_REPORT_BYTES和HID_OUTPUT_REPORT_BYTES宏定义到对应长度,它们在HID_ReportDescriptor中被使用。随后就是在回调函数HID_Ep_Hdlr中写相关的处理,函数如下:
static ErrorCode_t HID_Ep_Hdlr(USBD_HANDLE_T hUsb, void *data, uint32_t event)
{

        USB_HID_CTRL_T *pHidCtrl = (USB_HID_CTRL_T *) data;

        switch (event) {
        case USB_EVT_OUT:
                USBD_API->hw->ReadEP(hUsb, pHidCtrl->epout_adr, dat);
                Chip_SCTPWM_SetDutyCycle(SCT_PWM, SCT_PWM_OUT,
                                Chip_SCTPWM_PercentageToTicks(SCT_PWM,dat[0]/10.0+2.5));
                USBD_API->hw->WriteEP(hUsb, pHidCtrl->epin_adr, dat,8 );
                break;
        }
        return LPC_OK;
}

这里我把收到的值处理后赋给pwm,随后回写给上位机以方便调试。主程序中我参照SCT_PWM的程序初始化了一个50hz的pwm,具体程序见附件。

随后是上位机,界面如下:


这里可以手输位置也可以用Slider来拖。左上角是发送的值的回显。
上位机用的是qt,加上mingw,ddk用的是mingw自带的ddk,具体程序参照的是圈圈的usb写的。
下图是回返的数据的截图

其实这里一个字节来通讯也够。。。但是为了试验多个字节通讯的办法我改成了八个 字节。
下面是几张上位机和舵机对照看的图:



由图可知,我拖动了Slider,舵机的位置做了相应的改变。
下面是qt的工程和lpc片子对应改动的部分。
hid.zip (22.96 KB, 下载次数: 26)
此帖出自NXP MCU论坛

最新回复

很好的作品,学习了   详情 回复 发表于 2014-8-7 16:03

赞赏

2

查看全部赞赏

点赞 关注
 

回复
举报

78

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
wa ,楼主不一般
此帖出自NXP MCU论坛
 
 
 

回复

5260

帖子

239

TA的资源

管理员

板凳
 
期待楼主的后期作品
此帖出自NXP MCU论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(中级)

4
 
很好的作品,学习了
此帖出自NXP MCU论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表