论坛风格切换切换到宽版
  • 11070阅读
  • 52回复

RC5A-3设备升级改造 [复制链接]

上一主题 下一主题
离线ba6iv
发帖
1293
只看该作者 40楼 发表于: 2010-02-11
ba7qt你好,挺怀念那一段10米通联的时光!
离线ba6iv
发帖
1293
只看该作者 41楼 发表于: 2010-02-11
终于完成精简系统了,使用avr m8,电路板大概火柴盒大小,实现的功能如下:
/********************************************************
* 项目说明: yaesu gs232a 控制器               *
* 版本:     v1.0                         *
* cpu :   m8l       *
* 主频:   内部8m       *
* 串口:   4800bps       *
* 作者:     胡云杰(ba6iv)                   *
* 日期:     2010年2月10日                   *
* 修改:     胡云杰(ba6iv)         *
* 修改日期: 2010年2月10日                   *
*                                     *
* 说明:                               *
*           串口rx     pd0           *
*           串口tx         pd1           *
*     串口指示led       pd2           *
*     旋转器工作指示led   pd3           *
*         正传控制端口     pd5           *
*           反转控制端口     pd6           *
*           角度ad输入       pc0           *
*           控制器校准开关     pc5           *
********************************************************/
/********************************************************
*             程序版权声明               *
*-------------------------------------------------------*
*   程序版权归作者 胡云杰(ba6iv)所有。使用者必须遵循开 *
*源协议。你可以免费: 拷贝、分发、修改和演示本程序,制作派*
*生程序,但是不得移除程序版权标识。               *
*   非商业用途。 你不可将当前程序用于商业目的。     *
*                           胡云杰(ba6iv)   *
********************************************************/
/********************************************************
              程序修改记录
---------------------------------------------------------
2010.2.10
  移植了原来的m16l系统,精简了预置位、lcd602、音频提示
等模块以及部分全局变量,保留了角度校准、方向控制、串口命
令解析、eeprom模块,增加了板上isp下载接口、部分功能的led
指示。系统延续了m16l系统的使用2ms中断函数作为系统的系统
时钟。
  构建了系统框架,规划了系统资源的使用,用到串口接收中
断、串口查询发送、定时器0、定时器1、ad通道7 10bit精度采
样等系统资源。
  定义了系统需要的全局变量以及预定义符号;定义了基本系
统数据处理函数。
当前系统可完成的功能:
1、正确读取转向器的角度电压值并换算成实际角度数值;
2、正确接收pc发送的串口指令并作出回应;
3、手动校准、pc校准两用。
  串口命令解析放到了2ms中断里以保证对串口发送的命令
作出及时的反应。同时取消了void uart_data_process (void)
串口命令处理函数。增加了一个全局变量tx_az天线方位发送使
能标志。
  eerom模块,用于关键系统参数的掉电保存,下次系统启动
时直接提取即可。
保存变量     数据类型       eeprom地址
az_0       unsigned int   0x0001
az_180     unsigned int   0x0003
az_360     unsigned int   0x0005
az_step     unsigned int   0x0007
az_dev     unsigned char   0x0009(本系统已取消方向精度变量)
在系统初始化时读出eeprom的内容并赋值全局变量。

2010.2.11
  加入了旋转器工作指示灯和串口工作指示灯。
        led1     串口工作指示灯
        led2     旋转器工作指示灯
手动校准:
  系统开机后按下校准键2秒后led闪烁20次进入方位校准程序,将旋转
器旋转到起始位置0度(rc5a-3为逆时针转到180度),短按一下校准键后
led闪烁10次表示已将0度数据保存完毕。将旋转器旋转到起始位置180度
(rc5a-3为顺时针转到0度),短按一下校准键后led闪烁10次表示已将
180度数据保存完毕。将旋转器旋转到起始位置360度(rc5a-3为顺时针转
到180度),短按一下校准键后led闪烁10次表示已将360度数据保存完毕。
  手动校准时应等旋转器到达校准位置停止后ad电压稳定一段时间后再
按键保存当前ad数据到eeprom,以确保数据准确。
计算机校准:(推荐使用)
  使用计算机对系统的方位角进行校准,简单直观,推荐使用。使用前
需要控制器连接好电脑和旋转器。打开串口调试软件,打开相应的串口,
通讯速率为4800,以十六进制格式发送串口命令,通过简单的命令即可迅
速将旋转器的角度校准。命令成功发送或执行后串口led指示灯会闪烁5次。
串口命令表
---------------------------------------------------
25 0d           显示0 180 360以及当前的ad值
  向控制器发送该命令后系统会向串口返回0 180 360以及当前的ad值,
用于查看方位校准的各项参数,各参数为无符号整型数,高位在前,低位
在后,参数之间用0xff分隔开,末尾已0d结尾。
---------------------------------------------------
23 n1 n2 n3 n4 0d   设置0 180 360以及az_step的ad值
  向控制器发送该命令后系统会以命令中的参数替换设置az_0、az_180、
az_360和az_step的值,替换后立即生效,用户可以马上进入用户程序查看
方位角度的校准情况,方位不准的话可返回再次设置。
n1   az_0       两字节无符号整型
n2   az_180     两字节无符号整型
n3   az_360     两字节无符号整型
n4   az_step     两字节无符号整型
az_step可通过手工计算获得,公式为:
  az_step = ((az_360-az_0)*64)/360
---------------------------------------------------
24 0d           保存0 180 360以及az_step的ad值到eeprom
  向控制器发送该命令后系统会将全局变量az_0、az_180、az_360和
az_step的值保存到eeprom的指定位置,实现断电后的系统关键数据保存,
每次控制器上电后都将读取指定位置的eeprom数据赋值给全局变量az_0、
az_180、az_360和az_step!?
---------------------------------------------------

********************************************************/

电路图以及单片机烧录文件如下(比较简单,用洞洞板搭一个就行了):
附件: Rotator_M8.rar (0 K) 下载次数:55
离线VR2KW
发帖
3110
只看该作者 42楼 发表于: 2010-02-18
这几天测试, 发现角度电压输出并非线性, 使用每30度校准一次, 现在非常准确.
离线ba6iv
发帖
1293
只看该作者 43楼 发表于: 2010-02-18
'
这几天测试, 发现角度电压输出并非线性, 使用每30度校准一次, 现在非常准确.
'
老兄可真是认真啊!
应该是线性电位器的非线性造成的,如果误差不大的话可以不管它,如果非线性比较严重或者追求高精度的话可以用查表的办法,我看rc5a刻度最小分辨率是5度,如果以5度为一个查表步进的话,360度可以分为72等份,在存储器里存储72个事先测量好的角度电压值,比5度小的值通过推算,这样估计精度应该比较高,而且程序的计算量会小很多,只是校准一次角度就比较麻烦了。
离线VR2KW
发帖
3110
只看该作者 44楼 发表于: 2010-02-19
嘻嘻,我是在测试老外的一个套件连接rc5-3、g-2800sdx、g-500a的时候的感觉,现在误差在2度以内,有点吹毛求疵了,呵呵
离线BA5AJ
发帖
234
只看该作者 45楼 发表于: 2010-02-22
出套件吗?
我也想要一个
离线ba6iv
发帖
1293
只看该作者 46楼 发表于: 2010-02-22
[quote=光头小潘]出套件吗?
我也想要一个[/quote]
没打算出套件,只是做几套本地朋友分分。所有资料全部开源了,电路非常简单(当然也不很完善,但是好用),用万能板自己搭一下就行了,所有材料估计不会超过50元,m8的烧录程序自己帖子里下载,实在不会烧录的我可以义务帮忙。有疑问也可以义务解答。
今天刚增加了一个功能,就是通过计算机串口自主更新程序,也就是iap吧!以后可以自己升级系统程序,一根串口线就行了,不需要烧录器了,现在的设备都兴升级,也算追个潮流吧!
离线牧鹰人
发帖
689
只看该作者 47楼 发表于: 2010-04-17
记好了!保存住!
离线关则勇
发帖
8862
只看该作者 48楼 发表于: 2010-04-17
佩服胡兄的好技术.
离线BA4KW
发帖
2446
只看该作者 49楼 发表于: 2010-06-09
直接copy原厂的p板就ok了吧
离线ba6iv
发帖
1293
只看该作者 50楼 发表于: 2010-06-09
呵呵!没见过原厂的控制板,另外也得不到原厂的控制程序,只能自己diy了!
现在已经列装近两个月,使用效果还是很好的,关键是省钱了,想想不到50元的制作成本,还是会开心的笑的!
离线BA4KW
发帖
2446
只看该作者 51楼 发表于: 2010-06-09
'
呵呵!没见过原厂的控制板,另外也得不到原厂的控制程序,只能自己diy了!
现在已经列装近两个月,使用效果还是很好的,关键是省钱了,想想不到50元的制作成本,还是会开心的笑的!
'
出套件不
离线ba6iv
发帖
1293
只看该作者 52楼 发表于: 2010-06-10
'
出套件不 [表情]
'

套件不出,没时间弄这个,不过控制器已经全部开源了,找个懂单片机的仿制一下就行了,我连电路板,控制程序在帖子里都公开了,大家拿去用就行了,用万用板搭一个电路就能用,同时也享受一下diy的乐趣不也挺好的么。