模型论坛|模型中国

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 长寿烙铁

自制迷你遥控器----萝丽1代的逐步改进过程

  [复制链接]
发表于 2016-7-8 23:21:14 | 显示全部楼层
凤凰牌锂电池:同体积,容量大,重量轻,倍率实际,技术性能好
https://shop135800986.taobao.com https://shop65212290.taobao.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-21 16:39:58 | 显示全部楼层
本帖最后由 长寿烙铁 于 2016-11-5 21:57 编辑
smxzjs 发表于 2016-7-4 21:50
看了注释 还是不太明白 PPM输出部分 跳频部分怎么和一代源程序结合 等你改造的结果


我测试了一下新的跳频程序,把通道输出的延时函数改成定时器输出,功能基本正常,下面是接收机的部分程序,加人了跳频功能,请参考一下。

void initial()
{       
        LED=0;                //点亮指示灯再关闭
        delay_ms(100);
        P1M0=0xe0;        //1 2 3通道为推挽模式 s0
        TMOD=0x11;        //两个定时器为16位       
        IE=0x8a;        //启用定时器TR0 TR1
          
        RX_mode();        //接收准备
        delay1ms();
        TR0=1;               
        TR1=1;       
        LED=1;       
//        RX_address(address);       
}
                                                                                               

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

main()
{       
        delay_ms(200);delay_ms(200);    //开机延时
        initial();

        channel_set(hopping[0]);        //使用1号频道
        lose=1;
        while(1)
        {       
                while(IRQ&&lose);   //IRQ与lose都为1时循环等待
               //等待有效信号(IRQ=0)(发射周期20ms)时执行if(lose)
               //或无信号(IRQ=1)m>7(和m>14,m>22)(等待21ms,lose为0)时执行else

                if(lose)  //有信号跳频,lose=1(IRQ=0且m<=7)时执行
                {
                        tt=0;m=0;jump_1=0;jump_2=0;        //收到有效信号后刷新跳频器
                        k++;                                //有效信号计数
                        FIFO_read(rx);                //读取接收数据
                        CE=0;
                        REG_write(0x07,0x40);        //清除无线模块中断信号
                        CE=1;
                        hopping_turn++;         //顺序跳频序号
                        if(hopping_turn>4)hopping_turn=0;
                        channel_set(hopping[hopping_turn]);
                }
                else     //无信号延时跳频,lose=0,IRQ=1,m>7(和m>14,m>22)时执行一次
                {
                         hopping_turn++;         //顺序跳频序号
                        if(hopping_turn>4)hopping_turn=0;
                        channel_set(hopping[hopping_turn]);
                        lose=1;   //准备等待有效信号或m>14,m>22时执行else
                }
               
       
        }
}               

/****************************************************/
void et0()interrupt 1             //通道输出
{
        n++;
        switch(n)                                        
        {
                  
         case 1:CH1=1;ds=64535-4*rx[0] ;TL0=ds;TH0=ds>>8;break;
         case 2:CH1=0;TL0=0x2f;TH0=0xf8;break;

         case 3:CH2=1;ds=64535-4*rx[1];TL0=ds;TH0=ds>>8;break;
         case 4:CH2=0;TL0=0x2f;TH0=0xf8;break;

         case 5:CH3=1;ds=64535-4*rx[2];TL0=ds;TH0=ds>>8;break;
         case 6:CH3=0;TL0=0x2f;TH0=0xf8;break;      

         case 7:CH4=1;ds=64535-4*rx[3];TL0=ds;TH0=ds>>8;break;
         case 8:CH4=0;TL0=0x2f;TH0=0xf8;break;
                      //固定1ms加0到1ms高电平,2ms低电平

         case 9:CH5=1;ds=64535-4*rx[4];TL0=ds;TH0=ds>>8;break;
         case 10:CH5=0;TL0=0x2f;TH0=0xf8;break;

         case 11:CH6=1;ds=64535-4*rx[5];TL0=ds;TH0=ds>>8;break;
         case 12:CH6=0;TL0=0x2f;TH0=0xf8;
              n=0;break;
        }

}

void et1()interrupt 3             //信号统计
{

        TH1=0xf4;                        //定时周期3ms
        TL1=0x47;

        tt++;w++;
       
        if(w==333)                        //333个周期为1秒
                {
                        if(k<10)LED=0;  //信号数量小于10个LED示警
                        else LED=1;
                        k=0;w=0;
                }
        if(tt>666)rx[2]=0,tt=666;        //如tt到666,两秒无信号,关闭电机

        //跳频标志位       
        m++;                                        //定时器计数
        if(jump_1==0)
        {
                if(m>7)lose=0,jump_1=1,jump_2=0;     //7个周期(21ms)未收到信号,开始第一跳
        }
        else
        {
                if(jump_2==0)
                {
                        if(m>14)lose=0,jump_2=1;     //14个周期(42ms)无信号,开始第二跳
                }
                else
                {
                        if(m>22)m=0,lose=0,jump_1=0;         //22个周期(66ms)无信号,复位重新跳。
                       
                }               
        }       

       

}


回复 支持 反对

使用道具 举报

发表于 2016-9-3 21:24:12 | 显示全部楼层
本厂专业生产T型插头线、香蕉插头线,XT60插头线,XT90线,XT150插头线,防打火AS150插头线,
EC5线,EC3线,EC2线,大田宫线,小田宫线,JST线,SM插头线,2.8端子线,4.8端子线,6.3端子线,
XH2.54平衡充线,各种端子线,用于航模,扭扭车,平衡车,需要的联系我:13662576053   
河牛模型
回复 支持 反对

使用道具 举报

发表于 2016-9-10 16:39:55 | 显示全部楼层
长寿烙铁 发表于 2016-8-21 16:39
我又自制了新的遥控器,准备测试一下新的程序。

萝莉原帖已经没有了.还有萝莉1代制作说明吗.可以发给我吗.谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-14 21:55:00 | 显示全部楼层
czg4980 发表于 2016-9-10 16:39
萝莉原帖已经没有了.还有萝莉1代制作说明吗.可以发给我吗.谢谢

http://bbs.mx3g.com/thread-435743-1-1.html
这个就是一代教程
回复 支持 反对

使用道具 举报

发表于 2016-9-18 21:38:58 | 显示全部楼层
你好.可以做一个接收机输出0=5v电压的吗.我做一个电动滑板车.无刷电机控制器用0-5v控制速度的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-22 22:17:59 | 显示全部楼层
czg4980 发表于 2016-9-18 21:38
你好.可以做一个接收机输出0=5v电压的吗.我做一个电动滑板车.无刷电机控制器用0-5v控制速度的

可以参考有刷电调 http://bbs.mx3g.com/thread-445799-1-1.html
输出pwm脉冲,再用阻容元件变成0-5V,具体方法我也不太懂。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-16 23:13:10 | 显示全部楼层
smxzjs 发表于 2016-7-4 21:50
看了注释 还是不太明白 PPM输出部分 跳频部分怎么和一代源程序结合 等你改造的结果

经过反复试验,我增加了跳频功能和无线模拟器功能,前面帖子已经修改,你可以参考一下。
回复 支持 反对

使用道具 举报

发表于 2016-10-18 13:02:37 | 显示全部楼层
hao
回复 支持 反对

使用道具 举报

发表于 2016-10-19 22:21:22 | 显示全部楼层
本帖最后由 smxzjs 于 2016-10-19 22:35 编辑

可以试试用15w408, 同样20脚,用内部晶振,就又多出两个IO口,
回复 支持 反对

使用道具 举报

发表于 2016-10-19 22:25:37 | 显示全部楼层
经过反复试验,我增加了跳频功能和无线模拟器功能,前面帖子已经修改,你可以参考一下。

谢谢 回来我试试
回复 支持 反对

使用道具 举报

发表于 2016-10-29 11:18:52 | 显示全部楼层
楼主,我也(ˇˍˇ) 想~弄一代,一直找不到教程什么的,可以发我看看吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-29 22:47:52 | 显示全部楼层
本帖最后由 长寿烙铁 于 2016-10-29 22:48 编辑
天上一条鱼 发表于 2016-10-29 11:18
楼主,我也(ˇˍˇ) 想~弄一代,一直找不到教程什么的,可以发我看看吗


你可以看一下萝丽的教程,结合我上面的部分程序,实现自己想要的功能。程序和电路是对应的,不能全部照搬。
我的程序只能用于我自制电路的单片机,而且我的电路还要继续改进,还没有成熟的电路图。
回复 支持 反对

使用道具 举报

发表于 2017-3-3 20:13:14 | 显示全部楼层
大神  你改的全部代码能发一份到我的邮箱上吗?  541016294@qq.com         我之前也做了一个一代的加模拟器功能的,发现模拟器上能用,但是用在高频头上就发现行程变得很短(就是动遥控器摇杆,舵机摆臂幅度很小。有空的话能一起交流吗?你的qq多少?希望能得到你的回复
回复 支持 反对

使用道具 举报

发表于 2017-5-11 17:02:38 | 显示全部楼层
长寿烙铁 发表于 2015-7-31 17:16
我修改了接收机程序,实现简单的无线模拟器功能。

请问楼主这个调试软件Easyfly哪里有下载啊
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|     repair

GMT+8, 2018-5-28 11:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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