尝试用游戏手柄和飞行摇杆控制舵机
primula2012/04/13极客DIY IP:四川
用VC写的上位机,读取游戏手柄和飞行摇杆的位移量,然后通过串口传输指令给单片机,由单片机控制舵机转动。


手柄很一般,不怎么精确。。

点击此处查看视频
+50  科创币    jrcsh    2012/04/13 不错会玩了,完成可以抛电脑~~~直接用MCu读出信号来控制
+50  科创币    猎鹰    2013/01/13 膜拜如此强大的控制
来自:综合交流区 / 极客DIY
20
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
20!Dopaminor
12年2个月前 IP:未同步
386279
回复才看到视频...囧  不错   忽然觉得肢体遥控(模拟?)机器人有希望   完全可以像铁甲钢拳那样玩
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
hambg3qai
12年2个月前 IP:未同步
386315
能不能用摄像机镜头跟踪(红外的)
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
primula作者
12年2个月前 IP:未同步
386330
回 2楼(hambg3qai) 的帖子
学过点opencv,一般摄像头的话能识别头像,彩色黑白都可以,控制舵机跟踪应该没问题,就是只要闭只眼睛啊,挡住点五官就没法识别了。。这个学得不好。
红外成像的话没试过,如果是那种热成像的,估计还得另想办法。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
科学人
12年2个月前 IP:未同步
386331
能用单片机完成就不要电脑~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
primula作者
12年2个月前 IP:未同步
386332
回 4楼(科学人) 的帖子
没研究过单片机怎么读USB的摇杆。。
打算资金充裕点了做做带视频的小车或者飞行控制,还是用电脑做地面站,,
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
drc
12年2个月前 IP:未同步
389150
有源码吗,可否开源?想学学
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
泥子二号
12年1个月前 IP:未同步
394150
值得借鉴[s:274]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
l2yh
12年1个月前 IP:未同步
394851
希望能提供一下源码
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
小牛顿
12年1个月前 IP:未同步
394943
楼主贴出一些教程..看下
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
primula作者
12年1个月前 IP:未同步
394951
本来因为急于求成,代码风格注释什么的都没在意,就没好意思把代码拿出来。。。

读取游戏摇杆需要用到DirectX ,一般玩游戏的电脑都有DirectX ,但开发需要SDK ,所以要下载DirectX SDK。

然后就是枚举设备,具体怎么读取可以参考一本叫《 Visual C++游戏编程基础》 的书,到处都有电子书下载,在有一章节讲了游戏摇杆怎么读取,但那个版本好像是DirectX7,有点老了,有的API名字已经变了,具体可以参照安装好了的DirectX SDK 目录下的示例程序,也可以参考我的读取程序。

读出来了摇杆数值以后就是用串口控制单片机,在单片机端就是通过串口然后对指令一个解析,我定义的指令是4个字节长,以@开头,以#结束,中间两个表示舵机A该转的角度,和舵机B该转的角度,单片机端接收指令主要代码在下面,我用的飞思卡尔。
void interrupt 20  SCI0_ISR(void)
{    
  unsigned char rdata;
  SCI0CR2_RIE=0;
  //此处为串口中断需要处理的事情
  rdata = Sci0Read();
  
  switch(rdata)
  {
    case '@':               //起始符号
        sci_count = 0;  
        sci_ready = 0;    
        break;
    case '#':                //终结符号
        sci_data[sci_count++] = 0;
        sci_ready = 1;
        break;
        
    default:
        sci_data[sci_count++] = rdata;        
  
  }
  SCI0CR2_RIE = 1;  
}
当主程序检测到sci_ready为1以后,就读取接收缓冲区,分别控制产生的PWM来控制舵机转过多少角度,具体舵机怎么控制可以百度。。。
上位机在枚举按键的时候就可以设定X轴和Y轴的上限和下限,在此处我设定的是下限0,上限180度,这样在摇杆静止居中的时候就是中间90度,舵机也转在中间位置,在后面付上的代码中,因为后来改来控制云台了,所以在串口发送部分发送的数据有变化,是发送的控制云台的指令。。。在代码中也有我自己写的串口类,只需要简单设置一下串口属性就行了,比如comm.OpenComm(L"com2",9600);打开串口2,波特率9600,    XXXXXXXtLenght(0);设置接收到几个比特以后发送接收到消息,这里设置成0就是每收到一个字节都发送一次消息。具体怎么用在源代码里也有。。-_-
附上上位机代码,已经被我从控制舵机修改成控制监控球芯了,效果可以在论坛中另一篇帖子中找到  ^_^
另代码稍微有点乱,没什么注释,高手莫见笑[s:220]

attachment icon 上位机.rar 13.32KB RAR 36次下载
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
dian2k2
11年7个月前 IP:未同步
470549
前辈啊 不知现在进行到什么程度了 还是放弃了?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
极度深寒
11年7个月前 IP:未同步
470949
回 楼主(primula) 的帖子
开发完成后做成套件蛮有市场的。。。玩FPV的就是在追求这种体验。。他们现在有视频眼睛。。头部活动控制舵机。。估计就差个摇杆就能完成完美的第一人称视角飞行体验了。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
lqs0905
11年7个月前 IP:未同步
472856
看不到视频啊
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
real暖暖
11年5个月前 IP:未同步
483297
你好,请问一下,上位机是用vc6.0吗?还是vs2005?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
乡下人
11年5个月前 IP:未同步
485103
这玩意不错,将手柄改成关节传感器,直接固定在手臂上,就可以完成远程机器人手臂1:1操作
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
13721225643
11年2个月前 IP:未同步
518711
本人正好研究火箭背包,可惜无法用飞行手柄控制,无奈只好翻老帖,无需担心pc问题,大不了带一台imac上天,楼主能否提供QQ号
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
516000298
11年1个月前 IP:未同步
519754
求  楼主 qq交流
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
找自己
11年1个月前 IP:未同步
520020
看楼主转摇杆玩得很销魂的样子
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
nzy_hgw
10年10个月前 IP:未同步
557600
学习了,多想前辈学习。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
primula
学者 机友 笔友
文章
20
回复
184
学术分
1
2012/03/10注册,3天3时前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}