3GO模拟飞行网|3GO Cyber Air Force

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: bargain685LN

飞行控制面板DIY的软件硬件研究与分析

[复制链接]
 楼主| 发表于 2010-5-18 23:17:38 | 显示全部楼层

测试

测试

[ 本帖最后由 bargain685LN 于 2010-5-18 23:20 编辑 ]
发表于 2010-5-18 23:34:39 | 显示全部楼层
原帖由 bargain685LN 于 2010-5-18 23:15 发表
焊接D12失败   

今天让别人刻的板子寄过来了,此次发现一个问题,就是原本给坚针设计的孔太小了。   但不爽的还在后面,中途测试时,发现D12得到ID为0,无语了...我一急,把片子拔下来,基本上D12功能算是完蛋了 ...


D12我以前用细漆包线朝面包板上引过,虽然过程很长杯具,但结果还是可行的。不过我不太喜欢用D12这种东东,建议LZ挑一款内置USB模块的MCU,比如PIC18F4550或者CY7C68013A。后者是USB高速接口,不足之处是无内置ADC。淘宝上有卖转接板的,SSOP56封装转出2.54mm连接器。这个片子无内置flash程序通过I2C下载到E2PROM里。牛屄之处在于不需要下载器,PC端装好CY3684程序,把板子插上U口,IC本身就能与PC通讯并下载代码。
发表于 2010-5-18 23:35:44 | 显示全部楼层
马勒隔壁的,我这两天装DriverStudio一直卡壳。待会儿切回XP下接着弄。

回头向LZ请教socket通讯问题。
 楼主| 发表于 2010-5-19 00:14:03 | 显示全部楼层

回复 32# RCtech 的帖子

D12不是一种好的选择,因为它是USB1.1的...
我之所以用D12+51单片机,是因为圈圈那本书,
是个比较现成的教材,对于新手而言,
比较容易拿到手,也比较容易查问题。

现在转学新的片子怕周期太长,
此外,各寻各的解决方法,多一套解决方案未尝不是一种好的策略。

我也安装DriverStudio,但基本没用到。
使用HID自定义设备无需安装驱动。
这对用户来说确实是个比较省心的选择。

这次是我第一次画板子,没想到从实验到成品(即使只是电路成品...)的过程也有这么多学问。
还要继续学习啊。

[ 本帖最后由 bargain685LN 于 2010-5-19 00:15 编辑 ]
发表于 2010-5-19 01:31:18 | 显示全部楼层
原帖由 bargain685LN 于 2010-5-19 00:14 发表
D12不是一种好的选择,因为它是USB1.1的...
我之所以用D12+51单片机,是因为圈圈那本书,
是个比较现成的教材,对于新手而言,
比较容易拿到手,也比较容易查问题。

现在转学新的片子怕周期太长,
此外,各寻 ...


硬件方面水很深,但不是在数字电路部分,模拟电路方面才是大学问。以后做外围用得上。

圈圈的文章非常好,我借用过他的USB声卡描述符。但是他的书我没看过。我虽说也是从51入门的,但是对51的感情一般。不过我也觉得51在中国的基石很稳固,用它起步做任何项目都能找到比较充足的参考资料。

你已经把很多地方都走通了,我对PC端软件部分不熟悉。以后还得多向你学习。
发表于 2010-5-19 01:33:05 | 显示全部楼层
BTW,DriverStudio刚才装好了。vdw_wdm.lib已经成功编译出来。

原生驱动我已经用烦了,功能太受限制,所以需要搭建一个比较复杂的composite device了。
发表于 2010-5-19 10:45:22 | 显示全部楼层
   高度关注  支持各位  性苦啊
发表于 2010-5-27 22:40:12 | 显示全部楼层

回应一下

我觉得你的实现方案复杂了一些,我已经实现了了你说的东东,现在正在改进,你看我的方案:
1.lofc中用lua直接把数据通过socket发送到主控程序
2.主控程序接收lua数据,转化成仪表数据,用于控制单片机,驱动led和数码管,以及和仪表计算机通讯
3.采用Atmega16单片机通过usb转串口模块(下一步要改为usb接口),采集模拟量,采集开关量,输出数字量控制灯
我觉得这样的话各个部分的耦合度比较低,便于分别开发
发表于 2010-5-27 23:44:12 | 显示全部楼层
LS的响应速度如何?

[ 本帖最后由 RCtech 于 2010-5-29 00:39 编辑 ]
 楼主| 发表于 2010-5-28 00:25:58 | 显示全部楼层

回复 38# wzh823 的帖子

详细说下我哪个步骤复杂了?

我上传的PC程序有三个步骤。大家不要看代码多多有恐惧感,模块就三个。
1.监听LUA数据,接收。
2.LUA的主逻辑模块。
3.与USB设备通讯模块。

这个1和3你应该跟我一样的。你是不是在指2这个比较复杂。

实际上这就是“主控程序”,因为每个人的情况和需求不同,你无需一定要编译定死了发送什么格式的东东。
只要玩家会写些LUA,完事了,他自己写去。程序的灵活性大大加大。
打个比方,我监听,需要个端口,这个参数你可以通过修改LUA文本就完事了。没必要重新编译程序。
并不是所有用户都安装VC的,其实我还是按LO的方式去处理的。
(当然,想做更好的话给那函数再加个IP参数)。

用户只需要修改script.lua中的这个函数:
--收到数据,buf为字符串.
function onServerRecvData(buf)
        print ("onServerRecvData ... " .. buf);
--根据格式取出高度,速度。
        local _, _, altRad, speed = string.find(buf,"altRad = (%w+).*, speed = (%w+).*,");
        if (altRad ~= nil and speed ~= nil) then
--分解数值各位上的数。0~9.
                local d0,d1,d2,d3 = parseNum(altRad);
                local d4,d5,d6,d7 = parseNum(speed);
                print("parseNum >> " .. d0 .. " >> " .. d1 .. " >> " .. d2 .. " >> " .. d3 );
                print("parseNum >> " .. d4 .. " >> " .. d5 .. " >> " .. d6 .. " >> " .. d7 );
--向单片机设备发送单片机可识别的数值,即仪表数据。
--暂定的格式是8位数码管,高位表第几个数码管,低位表0~9.
                sendtoDevice(0x00,        0x10+d0,0x20+d1,0x30+d2,0x40+d3,        0x50+d4,0x60+d5,0x70+d6,0x80+d7);
        end
--        print("onServerRecvData");
end
发表于 2010-5-28 01:38:21 | 显示全部楼层
哎,,,想搞懂这个,没有计算机编程基础是不行啊。
这帖子太经典了,顶了
发表于 2010-5-28 21:42:39 | 显示全部楼层

回复 40# bargain685LN 的帖子

条条道路通罗马,我做的东西你去看看吧,我贴到别的帖子里了
http://bbs.3gofly.com/bbs/viewthread.php?tid=183485&page=2#pid410976

[ 本帖最后由 wzh823 于 2010-5-28 21:43 编辑 ]
 楼主| 发表于 2010-5-29 04:46:08 | 显示全部楼层

看了,高成本玩具...
发表于 2010-5-29 18:07:05 | 显示全部楼层

回复 43# bargain685LN 的帖子

使用游戏做平台就是玩具,使用其他的就不是了,给大家看的只能是这样了,呵呵
发表于 2010-5-30 01:35:24 | 显示全部楼层

回复 44# wzh823 的帖子

拿AVR都能做到这个水平,相当牛奔了。膜拜中。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|3GO模拟飞行网|3GO Cyber Air Force ( 沪ICP备08002287号|沪ICP备14050587号 )

GMT+8, 2024-12-22 16:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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