5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)

标题: 全程直播--菜鸟也要改遥控! [打印本页]

作者: lsylove2008    时间: 2007-3-24 19:18
标题: 全程直播--菜鸟也要改遥控!
首先声明俺绝对是一个纯粹的菜鸟,才入魔界,今天首飞,炸坏了俺的泡沫机身和2212的电机。。。悲痛中。。。

化悲痛为力量,按决定对俺的遥控进行一些修改,用AVR单片机控制,扩充通道。

要声明的几点:

1、因为是“直播”,所以发帖速度会比较慢,要有时间来搞才行。

2、这次不改高频部分,因为在下也是菜鸟,很不熟悉,考虑直接将PPM信号输入现有的高频头当中。

3、无论东西作的怎样,绝对给大家提供编译好的代码和简易编程器的制作资料,绝对不会让大家做的东西因为没有办法写入代码而半途而废。(要是大家都不关心,俺自己半途而废了。。。。就密友办法鸟)

4、没有用过高级的东西,所以后期有什么好的功能希望大家多多提示,我好进行改正,谢谢。

好了,准备开始了。。。

先上2个图,看一下俺初步准备的咚咚。条件有限,只能用洞洞板了,因为只是处理数字信号,所以对板子的要求不高,这一点应该可以放心。



俺的天地飞 6A遥控。


作者: lsylove2008    时间: 2007-3-24 19:20
另外要说的是,俺不像给自己定太多、太高的目标,现在只是想扩充通道,另外每个通道可以实现完整180度的舵机控制选项(我的天地飞好像不行,角度不够。)

以后想到其他的功能再加进去就可以了。

俺去搭个基本电路。。。。焊接中。。。
作者: conan_007    时间: 2007-3-24 19:41
有点意思,顶一下!
作者: wzswxxqwbds    时间: 2007-3-24 19:43
虽然我看不懂~~~~~~
顶顶顶!!!:em26: :em26: :em15: :em15:
作者: carter    时间: 2007-3-24 19:57
:em26: :em26:
作者: gerejiqi    时间: 2007-3-24 20:25
来偷点
作者: zch194710ab    时间: 2007-3-24 20:34
:em04: :em26:
作者: lsylove2008    时间: 2007-3-24 20:46
不知道回复的时候如何上图?请大家指教。。。
作者: 依然爱我    时间: 2007-3-24 20:58
支持 严重关注
作者: eee31415926    时间: 2007-3-24 21:03
又是一个弄电子的高手,支持一下:em24:
作者: zhenxuewang    时间: 2007-3-24 21:15
支持:em24: :em26:
作者: lsylove2008    时间: 2007-3-24 21:40


这个是简易的编程器,软件使用的是双龙的,下载地址:
http://www.ouravr.com/es_avr_serial_software.html
就是那个SL ISP



这个是MEGA16的引脚配置
作者: 刘胖胖    时间: 2007-3-24 21:41
标题: ding!
有兴趣啊:em07:
作者: lsylove2008    时间: 2007-3-24 21:49


这是做好的基本电路,一会儿再弄扩充的功能。



这是我弄得编程器,笔记本没有串并口,所以弄了个USB的,也是网上找的资料。做的时候手头少点元件,所以改了些电路,感觉稳定性不如那个并口的。还复杂。所以推荐使用并口的那个。



这个是基本电路的背面。

电路图暂时先不画,因为都是很简单的东西,等把东西都做齐了再给出电路图。

OK,发完这个帖又要去焊接了。。。焊接。。。

[ 本帖最后由 lsylove2008 于 2007-3-24 21:50 编辑 ]
作者: yjy    时间: 2007-3-24 22:16
要加快进度啊
作者: lsylove2008    时间: 2007-3-24 22:18
有点郁闷。。。天地飞电位器的接头是这个样子。





俺手头只有这个样子滴。。。。

大不少。看来还得去电子市场买来。俺的接头本来是干这个的。。。


作者: lsylove2008    时间: 2007-3-24 22:20
原帖由 yjy 于 2007-3-24 22:16 发表
要加快进度啊


谢谢关注,俺已经很努力了。菜鸟嘛,能慢慢飞就8错了,呵呵。
作者: kenzhou    时间: 2007-3-24 22:44
LZ能讲明一下改好后控的功能,我也在收集这方面的资料(用AVR mega8或mega16改控),网上资料太少了!
到时,请楼主把资料传一下。:loveliness: :loveliness:
kenzhou44@21cn.com
作者: lsylove2008    时间: 2007-3-24 23:07
原帖由 kenzhou 于 2007-3-24 22:44 发表
LZ能讲明一下改好后控的功能,我也在收集这方面的资料(用AVR mega8或mega16改控),网上资料太少了!
到时,请楼主把资料传一下。:loveliness: :loveliness:
kenzhou44@21cn.com



改好控的功能?目前只是先调好各通道的输入/输出,PA口接8路输入,PB.3输出波形。
PC和PD空着,日后做LCD扩展。
作者: lsylove2008    时间: 2007-3-24 23:13


手头没有接电位器的插座,先用这个凑合了。。。



这个是音频的输出。准备用EasyFly这个软件来调试各个通道。



整体就是这个样子。很简单,背部没有贴片。。。一共。。。估计。。。不到20块钱吧。

当然最后还要加一些东西,不过就是些滤波、整流、去藕的东东。先看下什么都不加的状况再说。
作者: lsylove2008    时间: 2007-3-24 23:14
唉 开始弄软件了,郁闷。。。
作者: ㊣随风    时间: 2007-3-24 23:20
高人`~强贴.......占个位:em24: :em24:
作者: lsylove2008    时间: 2007-3-24 23:50
原帖由 ㊣随风 于 2007-3-24 23:20 发表
高人`~强贴.......占个位:em24: :em24:


千万不要这样说,俺真是菜鸟,会被大虾笑话俺的。
作者: Jaken    时间: 2007-3-24 23:51
加油啊:em26: :em05:
作者: kenzhou    时间: 2007-3-25 00:51
看看这个:


http://www.ouravr.com/bbs/bbs_co ... =16&bbs_id=1000



              kenzhou
作者: wojieda    时间: 2007-3-25 01:32
标题: 喂猪
:em26: :em26: :em26:
作者: lsylove2008    时间: 2007-3-25 02:22
原帖由 kenzhou 于 2007-3-25 00:51 发表
看看这个:


http://www.ouravr.com/bbs/bbs_co ... =16&bbs_id=1000



              kenzhou


谢谢,之前看过了,其实原理基本都是一样的,只是希望加一些自己的功能进去,而那位大哥的程序小弟看来确实难懂,主要程序这东西习惯是很重要的。
作者: HYC    时间: 2007-3-25 02:35
同样占位置学习,楼主强:em26:
作者: 细龙88888    时间: 2007-3-25 04:00
:em26: :em26:
作者: kenzhou    时间: 2007-3-25 06:19
不要太复杂,有普通ppm和ccpm,一到两个的混控功能,够用就行。
作者: loves123    时间: 2007-3-25 16:46
不错,大家一起来看法吧,要不做个开源的也可以。。。
不知道楼上的同意不。。
作者: lsylove2008    时间: 2007-3-25 20:20
用定时器中断的方式实现波形输出,似乎不是太准确。。。用EasyFly测试有些抖舵,比TDF-6A稍微严重一些。我再看看。。。
只想用定时器中断,要不然后面的按键处理不好。
作者: kenzhou    时间: 2007-3-26 06:13
原帖由 loves123 于 2007-3-25 16:46 发表
不错,大家一起来看法吧,要不做个开源的也可以。。。
不知道楼上的同意不。。

:em26:
正在学习avr  c语言编程,因为刚学,比较辛苦。
我只希望能改个自己风格的控。
多多指教!
:em00: :em00:
作者: 碗豆粉    时间: 2007-3-26 09:35
支持,我也在进行学习中.我是用FASTAVR编程,先上LCD1602哈,不知道用内部RC,精度够不???
作者: lsylove2008    时间: 2007-3-26 15:13
我觉得遥控器上的AVR用外部晶体精度还是高一些,就是几毛钱的东西,还是加上吧

现在的问题是处理其他中断的时候,对脉冲时间会有一定的影响,已经尽量调整,但是1通道仍然抖舵。。。努力中。。。
作者: x2box    时间: 2007-3-26 22:05
:em19:  高手
作者: lsylove2008    时间: 2007-3-27 03:25
唉 郁闷了。
看了一个老外的波形,说一个数据贞20ms,每个数据脉冲1-2ms可变,通常还要保持5ms的同步脉冲,而我测试的5个ms不是太稳定。。。这样,8个2ms加上一个5ms已经超过总数20ms了。。。。还没有算中间的隔离脉冲。

现在我把一个完整数据贞的长度放到32ms,每个数据脉冲0.75-2.25ms,隔离放到0.4ms,加上AD,很稳定。。。
没有用过其他的控,但是用EasyFly软件的感觉比我的6A要稳定一些。

现在8个通道可以用电位器控制了,但是没有连接上舵机,只能在EasyFly里面看。等会儿用164试试看怎样解码。菜鸟嘛,什么都得摸索着来。。

另外还有关于编码的问题,我现在用的是Mega16,16M晶振。如果要1us定时的话似乎。。。照我的理解,不一定对,俺是菜鸟。。。

如果可以用1微秒定时来控制波形,那么1ms的数据脉冲可以分成1000分,对于Mega16这样有10位AD转换器的MCU来说是再好不过的了,但是据我现在的水平,我是没有办法实现1微秒定时的,因为好像只能够执行16个操作的(不一定对,不清楚)。。。

所以我现在用的是10us的定时器,这样定时器2/AD转换中断的时候这些时间就够用了,基本上不影响信号。(其实还是有一些影响的)

先写到这里了,回头能上传东西了就传个电路图和代码。
作者: palm    时间: 2007-3-27 10:05
期待中
作者: 碗豆粉    时间: 2007-3-27 13:33
正在研究M16的16位定时器,好象功能很多,希望今天能投入试验哈
个人认为用并口模拟口线路,测试要准确一点哈
也可以用教练线接控,实际发射测试!!
作者: lsylove2008    时间: 2007-3-27 15:34


这就是上面说到的那个时序图,有兴趣的朋友就参考这个吧。



这个东西现在已经可以通过164解码控制舵机了,现在就是没有无线收/发的部分。

但是。。。。抖舵严重阿,看来还是要仔细研究一下M16的定时器中断。。

现在我用的是TM0的CTC模式,另外AD转换也有中断,感觉进行AD操作的时候对脉冲时间影响比较大。。
作者: lsylove2008    时间: 2007-3-27 17:41


这个是电路图,很简单的,有些东西没加,适合自己用洞洞板试验玩。

电源要用5V的,现在先不要在任何遥控里面改啊。。。后面加上功能还得重新搞来。。。

现在就是测试完完。

[ 本帖最后由 lsylove2008 于 2007-3-27 18:10 编辑 ]
作者: lsylove2008    时间: 2007-3-27 18:07
编译好的代码没有办法上传。。。

需要的朋友发邮件到lsylove2008@163.com,我回复的时候按附件发给你。
作者: lsylove2008    时间: 2007-3-27 18:09
忘记说了,现在只是普通的8通道功能,抖舵的问题已经解决了,内置了大动。。。
不知道该怎么说。。就是舵机1次转180度的样子。

不过现在还没有弄开关,所以还没有办法用。。。。

不断完善吧。。。菜鸟么。。。
作者: 碗豆粉    时间: 2007-3-27 23:45
今天试验成功了M16作PPM的编码部分,用的是time1计数器的笨办法,FASTAVR一边学一边用,总算搞定,接4VF的并口模拟线
可以在用按键控制摇杆的动作,1号键切换通道,2号键增加值,3号键减少,还没有加电位器AD部分.
LCD1602第一行显示通道号,第二行显示当前通道舵机值(从500到1500)单位us,呵呵!感觉还是比较费劲



5imx上居然不能贴图了,用5irck呵!!
作者: 碗豆粉    时间: 2007-3-27 23:51
标题: 回复 #44 碗豆粉 的帖子
源程序,fastavr还是快,就是资料太少,不好学啊!
'//////////////////////////////////////////////////////////////
$Device= m16 ' used device
$Stack = 125  ' stack depth
$Clock = 8  ' adjust for used crystal
$Timer1=Timer, Prescale=8
$Lcd =PORTD.4 , RS = PORTD.2 , EN = PORTD.3, 16, 2
$Key Rows=PORTB&h07  
$Def TestPin0=PORTA.0
$Def TestPin1=PORTA.1
$Source= On
Declare Interrupt Ovf1()
Dim Testch(18) As Word
Dim akey As Byte ,achg As Byte,i As Byte,j As Byte,tempw As Word,temp As Byte
Dim tempy As Word
Testch(0)=500:Testch(1)=800:Testch(2)=500:Testch(3)=1000:Testch(4)=500:Testch(5)=1000
Testch(6)=500:Testch(7)=1000:Testch(8)=500:Testch(9)=1000:Testch(10)=500:Testch(11)=1000
Testch(12)=500:Testch(13)=1000:Testch(14)=500:Testch(15)=1000:Testch(16)=500
Testch(17)=7500
i=0:akey=0:achg=0
Set DDRA.0
Set DDRA.1
TestPin0=1:TestPin1=0
Start Timer1
Enable Ovf1
Enable Interrupts
InitLcd( )
Do
          Cls                                               '
    WaitMs 5                                          '
    Cursor Off
    Locate  1, 1                                      '                                     '                                                     
    Lcd "12345678"                                   '
    Locate 2 , 1
    Lcd Testch(achg+achg+1)
    Cursor On:Cursor blink
    Locate 1,achg+1
'//////////////////////////////////////////
        akey=Key():temp=achg+achg+1
        If akey=1 Then
                Incr achg
                If achg=8 Then
                        achg=0
                End If
        End If  
'/////////////////////////////////////////
        If akey=2 Then
            Testch(temp)=Testch(temp)+9
                If Testch(temp)>1500 Then
                        Testch(temp)=1500
                End If
        End If
'/////////////////////////////////////////
        If akey=4 Then
                Testch(temp)=Testch(temp)-9
                If Testch(temp)<500 Then
                        Testch(temp)=500
                End If
        End If
        tempw=20000-500*9
        For j=0 To 7
            temp=j+j+1
                tempw=tempw-Testch(temp)
        Next
        testch(17)=tempw
        WaitMs 100
                 
Loop
End

'//////////////////////////////////////////////////////////////
Interrupt Ovf1(), Save 4
    Toggle Testpin0:Toggle TestPin1
    tempy=65520-testch(i)
    TCNT1H= Shift(Right,8,tempy)
    TCNT1L=tempy
        Incr i
        If i=18 Then
                i=0
        End If
End Interrupt
作者: 狼来了    时间: 2007-3-28 00:38
强烈关注中
:em26:
作者: loves123    时间: 2007-3-28 08:57
呵呵,都还不啊!!
作者: lsylove2008    时间: 2007-3-28 12:16
重新焊了个洞洞板。。。之前那个裁的小了,位置没有安排合适。。。
作者: palm    时间: 2007-3-28 16:32
:em20:
作者: 碗豆粉    时间: 2007-3-28 23:08


今天用虚拟示波器(声卡)出的图形,加了AD,只有一路1通道,定时模式改为CTC了,不过20ms的帧信号好象只有19ms
在电脑上,用4VF模拟线,第一通道已经可控了哈!
看来明天要买TL431用数模的稳压线路,还需要个8M的晶振,找个垃极控的电位器接4个通道试一试了哈!
作者: lsylove2008    时间: 2007-3-28 23:11
今天终于有了一些进展。。。把俺的TDF卸了,地和控制的信号输出接到我的控制板上,电源控制板自己供。测试了一下,感觉不错,以前接收机的天线放到我笔记本上面的时候会抖舵的,现在好多了。。哈哈。。

测试了6个通道都可以用得。我没有8通的接收机。。没有办法测试鸟。

另外也验证了控制板的信号输出可以直接连接发射板的。。。



后来又加上了12232和按键的接口。感觉体积有点大 呵呵 这样肯定是放不到我的6A里面了。主要是液晶。。。不管了先做程序,最后换个尺寸小点、分辨率高点的再说。



嘿嘿。。。。下一步准备做通道反向和我TDF-6A自带的混控功能(固定翼)。因为别的混控我都没有见过,希望大家有这方面的资料让俺好好学习一下。


作者: 碗豆粉    时间: 2007-3-28 23:33
楼上的进度比我快啦!我用的LCD1602,这边用的图形LCD,厉害哈!
我还在电脑上模拟,这边直接上舵机了哈,要加油赶上哈!
作者: lsylove2008    时间: 2007-3-28 23:45
原帖由 碗豆粉 于 2007-3-28 23:33 发表
楼上的进度比我快啦!我用的LCD1602,这边用的图形LCD,厉害哈!
我还在电脑上模拟,这边直接上舵机了哈,要加油赶上哈!


现在还没有想弄图形。。。这个12232中间带个横杠的。。弄图形不爽阿。呵呵,没有其他的了,我这里就只有1个12232和1个1602A。。
作者: 碗豆粉    时间: 2007-3-29 09:24
前期试验,我就用插线解决,等验证成功再出PCB:em15: :em15:
作者: lsylove2008    时间: 2007-3-29 11:55
你那个示波器看起来不错啊!我用的双龙的声卡示波器,不好用。。。
能否共享一下?

另外感觉AD不要基准的也可以,因为即时AVCC电压改变而获得的比值也是不变的,只要对AVCC稍为处理一下就行。
作者: lsylove2008    时间: 2007-3-29 11:58
另外信号时间其实也不是太要紧。。。我试验的50ms好像也没有问题,不过实际上传给舵机的数据量少了。反应应该也变慢了。
作者: 碗豆粉    时间: 2007-3-29 13:35
Virtins Sound Card Oscilloscope 示波器软件名称,自已下哈!没注册只能用示波器功能!!!
作者: lsylove2008    时间: 2007-3-29 13:37
好的 谢谢!
作者: lsylove2008    时间: 2007-3-29 20:33
又郁闷了。。发现更好的波形发生办法。。。推倒重来中。。。
作者: 碗豆粉    时间: 2007-3-29 22:55
哪种波形产生办法??告诉我,快速PWM?

今天才回家,没有进度!只测了一下RD6000的波形有8个通道,一帧有23ms
VG400的波形有6个通道,一帧刚好20ms.
作者: 依然爱我    时间: 2007-3-29 23:04
:em26: :em26: 这里能人皆是啊
作者: RENAULT    时间: 2007-3-29 23:10
这么好的技术贴,顶一个!:em26:
作者: 南方的北极熊    时间: 2007-3-30 07:14
服了,无语
作者: lsylove2008    时间: 2007-3-30 12:09
我现在波形用是CTC模式的定时器1,改变OCR1A的数值来定时,每次中断反转电平高度。代码简单好多,定时也准确在20ms。

我用的是CVAVR。
作者: lsylove2008    时间: 2007-3-30 12:30


这个是我的波形,现在只发送6个通道,通道数、间隔脉冲长度、数据祯长度在程序里用变量可以随便定义,现在我用的是1-2ms的脉冲,间隔280,祯长20ms。很稳定,不过量了TDF的感觉间隔400us左右,数据脉冲好像是750us-1650us,测量不准。。。
作者: 碗豆粉    时间: 2007-3-30 14:38
原帖由 lsylove2008 于 2007-3-30 12:09 发表
我现在波形用是CTC模式的定时器1,改变OCR1A的数值来定时,每次中断反转电平高度。代码简单好多,定时也准确在20ms。

我用的是CVAVR。


我现在也是这个方式,引脚自动反转!这种方式应该没有误差时钟周期,可能是我的RC不准
作者: 狐狸    时间: 2007-3-30 15:06
楼主:不用担心5毫秒的同步脉冲,俺的解决方法是:
同步脉冲0.6毫秒,呵呵,信号脉冲是0.3毫秒,轻松实现10通道;只不过市场上一般的接收机就不能使用了,得专配一个接受解码电路板;
至于20毫秒的帧脉冲,也不一定非要精确的20毫秒。你就是23毫秒,也没多大问题;尤其是数码舵机;
要使用精确的20毫秒,只有使用外接的时钟源,俺用的是温度补偿10兆晶体经过分频得到,用中断方式精确;
作者: 狐狸    时间: 2007-3-30 15:13
还有一个加多开关通道的方法:
选择一个比例通道,用单片机的某个端口做纯数字通道,比如选用PIC16F877A的B口作开关通道扩展,对应遥控器的第10通道,解码部分设置专门的输出口就直接扩展到17通道,俺的做法是在接收机第10通道插槽加个专用的开关解码板。
作者: lsylove2008    时间: 2007-3-30 15:42
原帖由 狐狸 于 2007-3-30 15:06 发表
楼主:不用担心5毫秒的同步脉冲,俺的解决方法是:
同步脉冲0.6毫秒,呵呵,信号脉冲是0.3毫秒,轻松实现10通道;只不过市场上一般的接收机就不能使用了,得专配一个接受解码电路板;
至于20毫秒的帧脉冲,也 ...



我说的同步脉冲是每一祯(20ms)信号之间的那个比较长的(5-8ms),可能咱们理解的不一样。每个信号脉冲中间的我叫它隔离脉冲。。。

另外我测试同步脉冲太短的话接收会有问题。祯的长度长一点的确是没有关系,不过是要防止每一祯的同步脉冲变化太大,那样很容易抖舵。有时候甚至小的变化(比如按一下按键)也会跳一下舵。

所以准确的定时还是有必要的,不仅是要实现准确20ms的数据祯,而是要实现每个隔离脉冲、数据祯的长度都尽可能一致。

我这里现在做的测试每一个祯的隔离脉冲和数据祯长度都一致了,而且和设定值一致,这样就可以了。效果就是没有操作的时候连接的2个舵机一动不动,即使按下按键也是如此。(隔离脉冲400us,祯长度20ms,信号脉冲长度600-1600us)这个数据是我根据TDF 6-A量的,用的声卡示波器,可能不是很准,但是应该差不多。

另外说下舵机,我现在只有2种舵机,鸿达9G和晖盛9G,根据我的测试,辉盛9G的舵量和移动速度(凭感觉)都要好一些,但是在信号稳定性不太好的情况下,鸿达9G的舵机表现更稳定一些。也许这就是很多辉盛舵机不动操作杆也会嘎嘎响的原因。鸿达的舵量不太行,大概就是150、160的样子,辉盛的好很多,差不多有180+,虽然那么大舵量可能没有什么用。。。

呵呵 我的信号部分搞定了,现在在做菜单了。即使是辉盛那个接在TDF-6A上面随时就响一下的舵机(其实是信号有少许变化),在我的解码板上也是一动不动。。。(想让它动的时候例外 哈哈)
作者: 碗豆粉    时间: 2007-3-31 01:31
呵呵,来作控的人再多点哈!今天又回家晚了(是太早了):em17: :em07:
作者: lsylove2008    时间: 2007-3-31 06:18
又一夜没睡,困阿。。。

菜单弄了一部分,通道反向和舵量系数已经搞好了。襟副翼混控也搞定了,不过还没有加菜单的处理。菜单现在弄成这个样子,其他的直升机的东西我实在是搞不清楚概念。。。。都没有见过直升机的。。。



再搞几个混控就上电路图和固件了,不过好像感兴趣的人不太多。。。
作者: lsylove2008    时间: 2007-3-31 06:21
对了,俺在混控上面实在是迷糊阿。。。希望哪个大虾能给详细说一下,尤其各个舵机是怎么工作的。。。这个襟副翼混控我还是看我6A的波形猜出来的。。。
1通道的增加量=6通道基础上的减少量。。。(减少量=6通的增加)
6通的增加=1通的增加。。。(减少也传给1通):em17:


作者: qzy819    时间: 2007-3-31 19:54
标题: 看不懂,我更菜
:em17: :em17: :em22: :em22:
作者: 碗豆粉    时间: 2007-3-31 19:57
你这个菜单软件,是ouravr下的?是自动生成C代码吗?
今天克书店研究了一下,还应该加一个定时器作PWM,发提示音;
还有模型数俱存储,是用内部EEPROM,还是外加呢?在读写过程中,CPU应该有等待过程;
AD转换一次大概要280?us,8次AD占时间太多,是不是可以中断中采集一次(下一个通道的数据AD,加混控,反向等计算,应该CPU时间够,0.5~1.5ms),如果再加EXP曲线运算,有乘法(除?)加查表运算,不知道够不够。探讨一下哈!
作者: djb    时间: 2007-3-31 21:51
看了两位的进展,我又开始心动了,我也准备开始弄,以前照OURAVR上那位老大的4VF改装画了块PCB,但没有成功,不知那位老大的LCD控制器是什么型号,后来放弃了,对程序又不太懂,现在才开始学,昨天打的PCB已经回来,还没有贴零件,我以前在电子玩具厂搞电子设计,时间很多,那时开始学AVR,我对航模很感兴趣,但对PPM的遥控器编码到现在都还没有想出是如何编,我的想法是,先AD转换8个通道的数据,如用10位AD,那么每通道最大数据是1024,定时器设2US计数,刚好2MS一通道,每帧设为固定的20MS,那么减去8通道的总值,那么同步脉冲就是4MS,总值是动态的,在8MS到16MS变化,同步脉冲也在12到4MS变化,那么每帧就固定为20MS,同步脉冲只要大于3MS就能正确的被解码识别,我就是这么理解的,但程序的流程还搞不清楚,只有慢慢搞,我只懂一点AVR 的汇编,正在学C编程,
作者: djb    时间: 2007-3-31 21:51
看了两位的进展,我又开始心动了,我也准备开始弄,以前照OURAVR上那位老大的4VF改装画了块PCB,但没有成功,不知那位老大的LCD控制器是什么型号,后来放弃了,对程序又不太懂,现在才开始学,昨天打的PCB已经回来,还没有贴零件,我以前在电子玩具厂搞电子设计,时间很多,那时开始学AVR,我对航模很感兴趣,但对PPM的遥控器编码到现在都还没有想出是如何编,我的想法是,先AD转换8个通道的数据,如用10位AD,那么每通道最大数据是1024,定时器设2US计数,刚好2MS一通道,每帧设为固定的20MS,那么减去8通道的总值,那么同步脉冲就是4MS,总值是动态的,在8MS到16MS变化,同步脉冲也在12到4MS变化,那么每帧就固定为20MS,同步脉冲只要大于3MS就能正确的被解码识别,我就是这么理解的,但程序的流程还搞不清楚,只有慢慢搞,我只懂一点AVR 的汇编,正在学C编程,
作者: lsylove2008    时间: 2007-3-31 22:05
原帖由 碗豆粉 于 2007-3-31 19:57 发表
你这个菜单软件,是ouravr下的?是自动生成C代码吗?
今天克书店研究了一下,还应该加一个定时器作PWM,发提示音;
还有模型数俱存储,是用内部EEPROM,还是外加呢?在读写过程中,CPU应该有等待过程;
AD转 ...


CPU时间够的,现在我是利用同步脉冲的时间进行计算,所有的数据采样、计算、按键处理都放到同步祯。因为同步脉冲的时间最长,这样不容易抖舵。EEPROM用内部的就行了,保存三个模式刚好。不过后面再加些变量可能还要调整一下。

那个EXP什么的我不是很懂,不知道是干什么的。。。

那个菜单的软件正是在OurAVR下载的,不过我只是用来生成一个数组,没有找到具体的使用说明,自己弄了。
作者: lsylove2008    时间: 2007-3-31 22:10
原帖由 djb 于 2007-3-31 21:51 发表
看了两位的进展,我又开始心动了,我也准备开始弄,以前照OURAVR上那位老大的4VF改装画了块PCB,但没有成功,不知那位老大的LCD控制器是什么型号,后来放弃了,对程序又不太懂,现在才开始学,昨天打的PCB已经回来,还没有 ...



差不多就是这个意思,信号脉冲我是采用中点+-数据量的,这样线性不好的电位器也可以比较容易的控制中点的位置。

感觉3ms的同步脉冲小了点,我觉得最好还是保持5-8ms。我是宁可少用2个通道的,或者是整个祯的时间加长。
作者: kenzhou    时间: 2007-3-31 22:15
收藏ing,慢慢弄来!!



kenzhou
作者: 碗豆粉    时间: 2007-3-31 22:43
原帖由 lsylove2008 于 2007-3-31 22:05 发表


CPU时间够的,现在我是利用同步脉冲的时间进行计算,所有的数据采样、计算、按键处理都放到同步祯。因为同步脉冲的时间最长,这样不容易抖舵。EEPROM用内部的就行了,保存三个模式刚好。不过后面再加些变量 ...


我的意思是在中断中AD一个通道,在低电平/高电平计算下一个通道的数据,这样反映最快。同步脉冲标准是在3.5ms以上,可以用来写EEPROM。
EPX曲线是指摇杆和舵机不是线性关线,在中点附件更精细或更迅速。
还有中点调节,微点调节,各舵正反,混控,都需要实时记录,下一次开机就可以用,要记录在EEPRO内
还有EPA,起点/终点调节
还有油门曲线
建议找本RD6000/3810的说明书看看哈
作者: bjyiju    时间: 2007-3-31 23:09
:em26: :em26: :em26:
作者: lsylove2008    时间: 2007-4-1 02:30
闲来无事,再发几图

现在做到这里了。。。。



平常显示当前模式、混控方式和电池电压。



通道反向、混控中的1/6、4/2、1/2,舵量系数已经搞定了,现在已经可以读出/写入设定数据。

我用的是在待机状态长按右键的办法来存储,毕竟考虑EEPRom也是有寿命的。。需要存的时候再存吧。本来打算用掉电监测来存的(电容和二极管现在还在上面),想想还是算了,毕竟现在洞洞板已经放不到遥控里面了,过两天还得重新焊板,尽量缩小体积。。。





现在只做了3种混控,还没有去找更多的资料来看。而且俺也比较笨,很难想象舵机之间的关系。



最后一张,是舵量系数调整。用了系数,而没有用角度,是因为我发现各个我的2种舵机的在相同的信号控制下移动的角度是不同的。
从1.0-4.0,每0.1为1个步进,8个通道单独控制的。宏达的舵机我测试最大到2.7就不行了这时候角度大概+-80。。大概。而辉盛的要调到3.9-4。这时候角度大概+-90。好像我的6A打开A3d开关也只有+-45度左右。

作者: lsylove2008    时间: 2007-4-1 09:57
不知道对CCPM的理解对不对。
螺距不动的时候1、2通道相当于三角翼混控,1通道操作和6通道的舵机没关系。2通道操作1、2通道舵机和6通道舵机的运动方向相反。
作者: 碗豆粉    时间: 2007-4-1 10:46
原帖由 lsylove2008 于 2007-4-1 09:57 发表
不知道对CCPM的理解对不对。
螺距不动的时候1、2通道相当于三角翼混控,1通道操作和6通道的舵机没关系。2通道操作1、2通道舵机和6通道舵机的运动方向相反。


油门动的时候1/2/6一起动,保持一个平面推螺距
升降动的时候,前面一个通道上升1,后面两通下降2/3或相反
副翼动的进修,后面两通差动
这是一种120度CCPM
作者: sdca945    时间: 2007-4-1 12:48

作者: lsylove2008    时间: 2007-4-1 20:19
固件的地址:http://link.vicp.cc/ppm.rar

电路图还没有画呢,整理一下再说。

今天遇到2个郁闷的事情。。。

第一个是开始发现1、2通的舵机有些抖动,大概2秒抖一下。。调了半个多小时才发现,在1、2、6混控模式,6通没有接电位器。。。。

第二个是做得洞洞板太大了。。。。没有办法装到遥控里面。。。重新做一个小的。:em17:

[ 本帖最后由 lsylove2008 于 2007-4-1 20:58 编辑 ]
作者: lsylove2008    时间: 2007-4-1 22:44
除了低压报警都搞定了。
这个得重新焊了小板把蜂鸣器装上再搞。

哦 还有CCPM和什么曲线之类的没有搞。。。看来还得了解了解。。。那些功能只改软件就可以了,电路已经不需要修改了。

另外上面那个地址是用花生壳做到我机器上面的,如果不能下载,可能那时候我没有开机。

[ 本帖最后由 lsylove2008 于 2007-4-1 22:49 编辑 ]
作者: 碗豆粉    时间: 2007-4-2 11:07
功能实现菜单都还是比较复杂的哈!ourAVR那个好象用的是M32,频率也高(不过我担心频率高了,会有干扰,晶体的倍频)
实验完可行性后,可以出PCB吧,体积可以小一点,有兴趣的可以自己编程实现功能哈!:em15: :em15:
作者: yz800212    时间: 2007-4-2 13:19
:em26:
作者: lsylove2008    时间: 2007-4-2 13:28
原帖由 碗豆粉 于 2007-4-2 11:07 发表
功能实现菜单都还是比较复杂的哈!ourAVR那个好象用的是M32,频率也高(不过我担心频率高了,会有干扰,晶体的倍频)
实验完可行性后,可以出PCB吧,体积可以小一点,有兴趣的可以自己编程实现功能哈!:em15:  ...



如果换成大一点的图形液晶,可能现在的M16就不够用了。不过还是要优化一下,现在代码大约有12K左右。

PCB我这里暂时做不了,只能用试验板。。哎。我用的16M的晶振干扰应该不是啥大问题,主要现在我用8M的晶振没有办法完全利用1024的AD分辨率,定时在10us差不多,小了感觉怕会来不及计算。虽然现在舵机离1024的分辨率还差得远。不过感觉高一点晶振还是好的。
作者: 8_3    时间: 2007-4-2 14:35
啥都看不懂,顶一哈算了!
作者: djb    时间: 2007-4-2 15:37
我专程去电子城买了一块128*64的液晶,ST7920的控制器,准备也开始弄,但是我不态懂编程,准备慢慢学,慢慢弄,等我能弄出我的遥控器来,可能我就像两位那样成编程高手了,最好两位能发个汇编的原代码,那就好了,FASTAVR我不懂,
作者: loves123    时间: 2007-4-2 16:03
我觉得如果用M16的话。
数据保存最好使用I2C总线结构来存储。
这样的话也可以做成插拔的形式。
M16有支持16M晶振的。
作者: loves123    时间: 2007-4-2 16:10
如果选用16M的晶振,单条指令执行的时间为0.0625us,
我觉得一个20ms的周期中,所有下一次的数据都可以放到5ms中来做,读AD,相应设置命令等等。这样问题就不大了。。呵呵
作者: 碗豆粉    时间: 2007-4-2 16:13
原帖由 djb 于 2007-4-2 15:37 发表
我专程去电子城买了一块128*64的液晶,ST7920的控制器,准备也开始弄,但是我不态懂编程,准备慢慢学,慢慢弄,等我能弄出我的遥控器来,可能我就像两位那样成编程高手了,最好两位能发个汇编的原代码,那就好了,FASTAVR ...


FASTAVR就是用BASIC对AVR编程,很容易用。而且输出汇编程序,很多常用硬件,如LCD都直接支持,用来学AVR比较快,等熟悉了各硬件的用法了后,可以改成C语言。
www.basicavr.com这个网站是学习这个的!!
作者: lsylove2008    时间: 2007-4-2 18:41
原帖由 loves123 于 2007-4-2 16:10 发表
如果选用16M的晶振,单条指令执行的时间为0.0625us,
我觉得一个20ms的周期中,所有下一次的数据都可以放到5ms中来做,读AD,相应设置命令等等。这样问题就不大了。。呵呵



正解。我现在就是这样做得。

另外键盘处理的时候要开中断。关自身中断。
作者: lsylove2008    时间: 2007-4-2 19:24
原理图在这里。

http://link.vicp.cc/YK.rar

不知道能不能下,用花生壳连到我的机器上,有下了的朋友请说一下.

另外我用Protel DXP更是菜。。大家将就着看吧,很乱的。
作者: lsylove2008    时间: 2007-4-2 21:44
刚才又焊了4个通道,现在12通了。。估计到16问题不大。。。

又要改程序了!郁闷阿!!!
作者: djb    时间: 2007-4-2 21:54
顶上去
作者: gerejiqi    时间: 2007-4-2 22:19
真太牛了!!感叹,,




欢迎光临 5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年) (http://bbs.5imx.com/) Powered by Discuz! X3.3