5iMX宗旨:分享遥控模型兴趣爱好

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

从电阻电容到一辆车 (原:DIY大型多功能车)

查看数: 9755 | 评论数: 53 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-5-7 21:20

正文摘要:

本帖最后由 我是老兵 于 2013-10-14 14:07 编辑 //从18楼开始看吧,最好是第二页开始,前面的作废,后面从新规划并制作// 做这个车有半年了,因为在学校,所以断断续续。以前有过烂尾的经历,所以这次做的差 ...

回复

323202315 发表于 2013-11-30 18:56
有什么用??

欢迎继续阅读楼主其他信息

主题

  • 没有相关信息
  • 没有相关信息
  • 没有相关信息
98ksb08 发表于 2013-11-9 09:54
自己做电路才是牛人
dark008wzx 发表于 2013-10-17 00:03
加油加油。
长青英雄 发表于 2013-10-16 12:02
期待楼主早日完工。
长青英雄 发表于 2013-10-16 12:02
期待楼主早日完工。
我是老兵 发表于 2013-10-15 18:49
另外,周五去焊接轮子,四个轮子的棘轮焊死,花了50块,感觉被人坑了。
大家焊过的感觉我是被坑了吗?
我是老兵 发表于 2013-10-15 18:42
好了今天试验了转向,找到以前不能转向的原因:因为以前是我坐在车上,导致车轮对地的压力太大,导致车轮摩擦太大。
现在发现只装电池(5KG,4块12v12AH铅酸)能正常转向。
我的体重60KG,则最多还能装60KG的东西。
解决方法1.是让轮子变光滑,但车的爬坡能力会下降。
           2.是加装履带。这个是推理的,具体怎么个原理很难说。要画个图解释的画,我也能把自己弄晕。

wolffy 发表于 2013-10-14 18:37
真的很期待你的作品

我是老兵 发表于 2013-10-14 13:15
另外发现一个问题,就是这个车本来是靠左右轮的差速转弯,就像坦克那样,但是实验的时候发现转不了。
请高手看看,是不是因为轮子的摩擦力太大,如何解决。
bigcatdairy 发表于 2013-10-3 22:41
我是老兵 发表于 2013-10-3 10:34
车床?
神马意思?

看錯標題了, 以為樓主說DIY多功能車床~

我是老兵 发表于 2013-10-3 19:26
昨天想了一晚,发现程序里有问题,若是一帧出现问题,可能信号永远连不上
今天新写了一个Bate2,准备用手机为通讯,即手机的话筒和耳机。

现在把程序贴上来,延时 2500 是用开发板的LED与肉眼测试的,延时1000时看不出来,延时2500时能看出来闪烁。因为人眼对闪烁的分辨力比声音低,所以2500这个延时用手机应该能很容易,很有效的传输。对于延时2500是不是太长,到时候硬件齐全会进行测试。

/*
Remote control car
Remote transmitter
Thought Mobilephone (The whole world!)
Main Max Ping: 65
*/

#include<reg52.h>

sbit IN0     = P0^0;
sbit IN1     = P0^1;
sbit IN2     = P0^2;
sbit IN3     = P0^3; //2 motors for moving
sbit IN4     = P0^4;
sbit IN5     = P0^5;
sbit IN6     = P0^6;
sbit IN7     = P0^7; //2 motors for weapons
sbit LIGHT0  = P1^0;
sbit LIGHT1  = P1^1;
sbit LAMB    = P1^2;
sbit SPEAKER = P1^3;
sbit LOCK0   = P1^4;
sbit LOCK1   = P1^5; //2 weapon locks
sbit FIRE    = P1^6; // --WEAPON--
sbit OTHER   = P1^7; //Other use (RELAY) ( decided by user )
sbit LED0    = P2^0; //All ready
sbit LED1    = P2^1; //C373 Locking
sbit LED2    = P2^2; //C373 unlocking
sbit LED3    = P2^3; //OUT
sbit LED4    = P2^4; //
sbit LED5    = P2^5; //LOCK0
sbit LED6    = P2^6; //LOCK1
sbit LED7    = P2^7; //Weapon uncloking     //8 LED interface  
sbit C373    = P3^6; //IC 74HC373
sbit OUT     = P3^7; //OUT( Connect with mobilephone )

void main()
  {
  unsigned int  i;
  P0=0x00;
  P1=0x00;
  P2=0x00;
  P3=0x00;
  C373=0;
  for(i=0;i<10000;i++);
  LED0=1;
  for(i=0;i<5000;i++);
  LED1=1;
  for(i=0;i<5000;i++);
  LED2=1;
  for(i=0;i<5000;i++);
  LED3=1;
  for(i=0;i<5000;i++);
  LED4=1;
  for(i=0;i<5000;i++);
  LED5=1;
  for(i=0;i<5000;i++);
  LED6=1;
  for(i=0;i<5000;i++);
  LED7=1;
  for(i=0;i<5000;i++);
  P2=0x00;
  for(i=0;i<2500;i++);
  P2=0xff;
  for(i=0;i<5000;i++);
  P2=0x00;
  for(i=0;i<2500;i++);
  LED0=1;
  for(i=0;i<10000;i++);
  //All ready!
  while(1)
    {
    //Begin!
    OUT=LED3=1;
    delay();
    delay();
    delay();
    delay();
    OUT=LED3=0;
    delay();
    OUT=LED3=IN0;
    delay();
    OUT=LED3=IN1;
    delay();
    OUT=LED3=IN2;
    delay();
    OUT=LED3=IN3;
    delay();
    OUT=LED3=IN4;
    delay();
    OUT=LED3=IN5;
    delay();
    OUT=LED3=IN6;
    delay();
    OUT=LED3=IN7;
    delay();
    OUT=LED3=LIGHT0;
    delay();
    OUT=LED3=LIGHT1;
    delay();
    OUT=LED3=LAMB;
    delay();
    OUT=LED3=SPEAKER;
    delay();
    OUT=LED3=LOCK0;
    delay();
    OUT=LED3=LOCK1;
    delay();
    OUT=LED3=FIRE;
    delay();
    OUT=LED3=OTHER;
    delay();
    OUT=LED3=0;
    delay();
    delay();
    delay();
    delay();
    delay();   
    //End, return to "begin!".
    }
  
  
  }

//For delay (Decided on how fast the mobilephone can trans.)
//(Now, it is in testing.)
delay()
  {
  unsigned int  s;
  for(s=0;s<2500;s++);
  }
  

/*
Remote control car
Remote-controlled receiver
Thought Mobilephone (The whole world!)
Main Max Ping: 65
*/

#include<reg52.h>

sbit MOTOR0  = P0^0;
sbit MOTOR1  = P0^1;
sbit MOTOR2  = P0^2;
sbit MOTOR3  = P0^3; //2 motors for moving
sbit MOTOR4  = P0^4;
sbit MOTOR5  = P0^5;
sbit MOTOR6  = P0^6;
sbit MOTOR7  = P0^7; //2 motors for weapons
sbit LIGHT0  = P1^0;
sbit LIGHT1  = P1^1;
sbit LAMB    = P1^2;
sbit SPEAKER = P1^3;
sbit LOCK0   = P1^4;
sbit LOCK1   = P1^5; //2 weapon locks
sbit FIRE    = P1^6; // --WEAPON--
sbit OTHER   = P1^7; //Other use (RELAY) ( decided by user )
sbit WRONG   = P2^0; //Interface ( if "IN" is wrong ).
sbit C373    = P3^6; //IC 74HC373  For balance
sbit IN      = P3^7; //OUT( Connect with mobilephone )

void main()
  {
  unsigned int  i;
  //Begin
  if(IN=1)
    {
    delay();
    for(i=0;i<1250;i++);//Delay ( At 1/2 )
    if(IN=1)
      {
      delay();
      if(IN=1)
        {
        delay();
        if(IN=1)
          {
          delay();
          if(IN=0)
            {
            delay;
            //All check!
            //Star to get info
            MOTOR0=IN;
            delay();
            MOTOR1=IN;
            delay();
            MOTOR2=IN;
            delay();
            MOTOR3=IN;
            delay();
            MOTOR4=IN;
            delay();
            MOTOR5=IN;
            delay();
            MOTOR6=IN;
            delay();
            MOTOR7=IN;
            delay();
            LIGHT0=IN;
            delay();
            LIGHT1=IN;
            delay();
            LAMB=IN;
            delay();
            SPEAKER=IN;
            delay();
            LOCK0=IN;
            delay();
            LOCK1=IN;
            delay();
            FIRE=IN;
            delay();
            OTHER=IN;
            delay();
            //End, return
            }
          else
            {
            WRONG=1;
            for(i=0;i<500;i++);
            WRONG=0;
            }
          }
        else
          {
          WRONG=1;
          for(i=0;i<500;i++);
          WRONG=0;
          }
        }
      else
        {
        WRONG=1;
        for(i=0;i<500;i++);
        WRONG=0;
        }
      }
    else
      {
      WRONG=1;
      for(i=0;i<500;i++);
      WRONG=0;
      }
    }
  else
    {
    WRONG=1;
    for(i=0;i<500;i++);
    WRONG=0;
    }
  //End, return to "Begin!".
  }

//For delay (Decided on how fast the mobilephone can trans.)
//(Now, it is in testing.)
delay()
  {
  unsigned int  s;
  for(s=0;s<2500;s++);
  }
  


皮蛋 发表于 2013-10-3 18:54
看贴
我是老兵 发表于 2013-10-3 16:34
bigcatdairy 发表于 2013-10-2 23:38
樓主不是在做車床咩?

车床?
神马意思?


bigcatdairy 发表于 2013-10-2 23:38
樓主不是在做車床咩?
我是老兵 发表于 2013-10-2 17:14
把发射机程序修改了一下,加上了锁存,接收机的也做了。
目前接收机程序还差信号错误时的中断返回和停止动作没做。
(程序新手,欢迎老手拍砖。


//遥控发射器端
//NO1,测试(Testing)
//1CH输出  ---串行---

#include<reg51.h>

//定义行走与炮塔转动信号脚,
sbit IN0=P0^0;
sbit IN1=P0^1;
sbit IN2=P0^2;
sbit IN3=P0^3; //CH0.0
sbit IN4=P0^4;
sbit IN5=P0^5;
sbit IN6=P0^6;
sbit IN7=P0^7; //CH0.1
//定义小工具信号脚。
sbit LIGHT0=P1^0;
sbit LIGHT1=P1^1;
sbit LAMB=P1^2;
sbit SPEAKER=P1^3;
sbit OTHER0=P1^4;
sbit OTHER1=P1^5;
sbit OTHER2=P1^6;
sbit OTHER3=P1^7; //CH0.2
//定义武器信号脚。
sbit LOCK0=P2^0;
sbit LOCK1=P2^1;
sbit READY=P2^2;
sbit FIRE=P2^3;   
sbit LED0=P2^4;
sbit LED1=P2^5;
sbit LED2=P2^6;
sbit LED3=P2^7; //CH0.3
//定义编码输出信号脚。
sbit RELAY=P3^3;
sbit OUT=P3^4;
sbit C573=P3^5;//C573锁存器
//延时申明。
  


void main ()
  {
  unsigned int  i;//定义延时函数i。
  //unsigned int  a;//定义延时函数a。
  //准备工作。  
  P0=0x00;
  P1=0x00;
  P2=0x00;
  P3=0x00;
  LED0=1;
    for(i=0;i<25000;i++);
  LED1=1;
    for(i=0;i<25000;i++);
  LED2=1;
    for(i=0;i<25000;i++);
  LED3=1;
    for(i=0;i<25000;i++);
  LED0=0;
  LED1=0;
  LED2=0;
  LED3=0;
    for(i=0;i<15000;i++);
  LED0=1;
  LED1=1;
  LED2=1;
  LED3=1;
  SPEAKER=1;
    for(i=0;i<25000;i++);
  P0=0x00;
  P1=0x00;
  P2=0x00;
  P3=0x00;
  RELAY=1;
    for(i=0;i<5000;i++); //继电器自锁(OUT输出)
  RELAY=0; //系统信号有效。
  //All ready.
  //主程序
  while(1)
    {
      //CH0.0,1,2计算
      OUT=1;
        for(i=0;i<2000;i++);
      OUT=0;
        for(i=0;i<750;i++);//引导码
      C573=0;//锁存
        
      OUT=IN0;               //编码开始
        for(i=0;i<50;i++);
      OUT=IN1;
        for(i=0;i<50;i++);
      OUT=IN2;
        for(i=0;i<50;i++);
      OUT=IN3;
        for(i=0;i<50;i++);
      OUT=IN4;
        for(i=0;i<50;i++);
      OUT=IN5;
        for(i=0;i<50;i++);
      OUT=IN6;
        for(i=0;i<50;i++);
      OUT=IN7;
        for(i=0;i<50;i++);
      OUT=LIGHT0;
        for(i=0;i<50;i++);
      OUT=LIGHT1;
        for(i=0;i<50;i++);
      OUT=LAMB;
        for(i=0;i<50;i++);
      OUT=SPEAKER;
        for(i=0;i<50;i++);
      OUT=OTHER0;
        for(i=0;i<50;i++);
      OUT=OTHER1;
        for(i=0;i<50;i++);
      OUT=OTHER2;
        for(i=0;i<50;i++);
      OUT=OTHER3;
        for(i=0;i<50;i++); //编码结束
      C573=1;//锁存结束,开始输入
   
      OUT=1;
        for(i=0;i<200;i++);
      OUT=0;
        for(i=0;i<750;i++);//结束识别码。
      
      //CH4计算 --FIRE专用--(所有结果延时相同(1000))
      if(LOCK0==1&&LOCK1==1)//LOCK1,2打开
        {
          if(FIRE==1)//若开火
            {
              LED0==1;
                for(i=0;i<200;i++);
              LED1==1;
                for(i=0;i<200;i++);
              LED2==1;
                for(i=0;i<200;i++);
              LED3==1;
                for(i=0;i<200;i++);//延时,LED倒计时
              if(FIRE==1)//若开火
                {
                  OUT=1;
                    for(i=0;i<200;i++);//FIRE!
                    LED0=0;
                  LED1=0;
                  LED2=0;
                  LED3=0;//LED复原
                }
              if(FIRE==0)//开火键松开
                {
                  OUT=0;
                    for(i=0;i<200;i++);//无FIRE信号发出
                  LED0=0;
                  LED1=0;
                  LED2=0;
                  LED3=0;//LED复原
                }
                  
            }
          if(FIRE==0)//保险打开,但未开火
            {
              OUT=0;
                for(i=0;i<1000;i++);//无FIRE信号发出            
            }
        }
      if(LOCK0==0&&LOCK1==1)//保险LOCK未全开
        {
          OUT=0;
            for(i=0;i<1000;i++);//无FIRE信号发出
        }            
         if(LOCK0==1&&LOCK1==0)//保险LOCK未全开
        {
          OUT=0;
            for(i=0;i<1000;i++);//无FIRE信号发出
        }
      if(LOCK0==0&&LOCK1==0)//保险LOCK未全开
        {
          OUT=0;
            for(i=0;i<1000;i++);//无FIRE信号发出
           }
    }
  }



//遥控接受器端
//NO1,测试(Testing)
//1CH输出  ---串行---

#include<reg51.h>

//定义行走与炮塔转动信号脚,
sbit MOTOR0=P0^0;
sbit MOTOR1=P0^1;
sbit MOTOR2=P0^2;
sbit MOTOR3=P0^3; //CH0.0
sbit MOTOR4=P0^4;
sbit MOTOR5=P0^5;
sbit MOTOR6=P0^6;
sbit MOTOR7=P0^7; //CH0.1
//定义小工具信号脚。
sbit LIGHT0=P1^0;
sbit LIGHT1=P1^1;
sbit LAMB=P1^2;
sbit SPEAKER=P1^3;                     
sbit OTHER0=P1^4;
sbit OTHER1=P1^5;
sbit OTHER2=P1^6;
sbit OTHER3=P1^7; //CH0.2
//定义武器信号脚。
sbit LOCK0=P2^0;
sbit LOCK1=P2^1;
sbit READY=P2^2;
sbit FIRE=P2^3;   
sbit LED0=P2^4;
sbit LED1=P2^5;
sbit LED2=P2^6;
sbit LED3=P2^7; //CH0.3
//定义编码输出信号脚。
sbit C573=P3^3;
sbit IN=P3^4;
sbit HELPOUT=P3^5;


void main ()

  {
  unsigned int  i;
  C573=1;//锁存
  if(IN==1)
    {
      for(i=0;i<200;i++);//Check0
      if(IN==1)
        {
        for(i=0;i<200;i++);//Check1
        if(IN==1)
          {
          for(i=0;i<200;i++);//Check2
          if(IN==1)
            {
            for(i=0;i<200;i++);//Check3
            if(IN==1)
              {
              for(i=0;i<200;i++);//Check4
              if(IN==1)
                {
                for(i=0;i<200;i++);//Check5
                if(IN==1)
                  {
                  for(i=0;i<200;i++);//Check6
                  if(IN==1)
                    {
                    for(i=0;i<200;i++);//Check7
                    if(IN==1)
                      {
                      for(i=0;i<200;i++);//Check8
                      if(IN==1)
                        {
                        for(i=0;i<200;i++);//Check9
                        if(IN==0)
                          {
                          for(i=0;i<400;i++);//Check10
                          if(IN==0)
                            {
                            for(i=0;i<200;i++);//Check11
                            //All Checked, begin!
                            //数据检查完毕,此时应为MOTOR0(发射机IN0)的第25/50处
                            MOTOR0=IN;
                            for(i=0;i<50;i++);//#0
                            MOTOR1=IN;
                            for(i=0;i<50;i++);//#1
                            MOTOR2=IN;
                            for(i=0;i<50;i++);//#2
                            MOTOR3=IN;
                            for(i=0;i<50;i++);//#3
                            MOTOR4=IN;
                            for(i=0;i<50;i++);//#4
                            MOTOR5=IN;
                            for(i=0;i<50;i++);//#5
                            MOTOR6=IN;
                            for(i=0;i<50;i++);//#6
                            MOTOR7=IN;
                            for(i=0;i<50;i++);//#7
                            LIGHT0=IN;
                            for(i=0;i<50;i++);//#8
                            LIGHT1=IN;
                            for(i=0;i<50;i++);//#9
                            LAMB=IN;
                            for(i=0;i<50;i++);//#10
                            SPEAKER=IN;
                            for(i=0;i<50;i++);//#11
                            OTHER0=IN;
                            for(i=0;i<50;i++);//#12
                            OTHER1=IN;
                            for(i=0;i<50;i++);//#13
                            OTHER2=IN;
                            for(i=0;i<50;i++);//#14
                            OTHER3=IN;
                            for(i=0;i<50;i++);//#15
                            if(IN=1);
                              {
                              for(i=0;i<200;i++);
                              if(IN=0);
                                {
                                for(i=0;i<425;i++);
                                if(IN=0);
                                  {
                                  for(i=0;i<100;i++);
                                  C573=1;//锁存解锁
                                  for(i=0;i<100;i++);//数据输入锁存
                                  C573=1;//锁存
                                  for(i=0;i<100;i++);
                                  }
                                }
                              }
                            for(i=0;i<900;i++);
                            FIRE=1;
                            for(i=0;i<100;i++);
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }   
          }
        }
    }
  }



jasonlkc25 发表于 2013-10-1 19:52
支持你!加油
ieEl2011 发表于 2013-9-29 14:51
厉害,新手学习
关闭

【站内推荐】上一条 /1 下一条

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