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

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
楼主: 我是老兵
打印 上一主题 下一主题

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

[复制链接]
21
 楼主| 发表于 2013-9-20 12:50 | 只看该作者
好像挂了一幅图,手机性能作死呀。
还有,想问问大家,什么方法能把棘轮给卡死,我试了502,但感觉不太牢靠,有什么可靠的东西吗?

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

主题

  • 没有相关信息
  • 没有相关信息
  • 没有相关信息
22
发表于 2013-9-21 01:34 | 只看该作者
电焊焊接上去吧!
23
 楼主| 发表于 2013-9-23 14:13 | 只看该作者
现在把车体和车轮的连接发上来。

无标题.png (11.03 KB, 下载次数: 7)

无标题.png
24
 楼主| 发表于 2013-9-23 14:15 | 只看该作者
现在把车轮和车体的连接发上来。

无标题.png (11.03 KB, 下载次数: 8)

无标题.png
25
 楼主| 发表于 2013-9-23 14:21 | 只看该作者
好吧,一件特别坑的事,关于车的横梁(规划部分)。
周六去买的时候做的450mm长的,买了一堆回去一看,糟了只算了一边的轮子轴长度。
周日去,算上另外一个轮子长度,500mm买了十根,回去一看,糟了,忘了算架子的宽度。
仔细计算后要600mm才行。
只有国庆节放完假后才能做了。

SHEET!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

还有,学校社团展又推迟了。就因为另外一个校区的校长说我们学校的社团展不够霸气。不过也好,又有充足的时间了。
社团展前弄好车体,其他不说,至少能在地上跑。
26
发表于 2013-9-23 16:49 | 只看该作者
不知道是什么东西。是车么?没放轮子还真不看不出来呀。请问LZ你做的那个东西的框架的材料叫什么名字呀?用来做架子真不错呢。
27
发表于 2013-9-23 17:41 | 只看该作者
干啥用的

28
 楼主| 发表于 2013-9-23 20:32 | 只看该作者
mrduke 发表于 2013-9-21 01:34
电焊焊接上去吧!

高二学生,只有50w电烙铁。


29
 楼主| 发表于 2013-9-24 11:04 | 只看该作者
happytao22 发表于 2013-9-23 16:49
不知道是什么东西。是车么?没放轮子还真不看不出来呀。请问LZ你做的那个东西的框架的材料叫什么名字呀?用 ...

那个是在卖货架的地方买的,叫做角铁货架

30
发表于 2013-9-24 11:28 | 只看该作者
有这种条件。。。。。。。只能说你这车定位太低了,起码比例控制、万向轮、机械手神马的,弄好军警或许还能找你采购定制呢,现在这弄下来也就是个玩不嗨的打玩具,载个小孩倒比较安全(除了那220V囧)
31
发表于 2013-9-24 11:40 | 只看该作者
我是老兵 发表于 2013-9-20 12:28
好了,把图片上上来。轮子是用的自行车的,以前准备的轮子要装齿轮太麻烦。
还有,想问问大家,什么方法能 ...

飞轮吗?找个电焊师傅,几分钟就焊死了!保证安心!
32
 楼主| 发表于 2013-9-25 09:52 | 只看该作者
好吧,国庆后回学校去试试
33
发表于 2013-9-26 21:13 | 只看该作者
你窗台上的气灌是干什么的?

34
 楼主| 发表于 2013-9-27 14:57 | 只看该作者
以前玩氦气球的,结果被社团熊孩子给放了。现在用废罐子给做了个模型 b o m b 。
35
 楼主| 发表于 2013-9-29 14:37 | 只看该作者
好了,现在在家里,车在学校。
没事就把程序给写下来。
车的核心控制是单片机,80C52RC
现在把发射器的程序写上来,接收机的还在写。(写的比较简单,全是if和延时,》我是程序新手《)
//遥控发射器端
//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 HELPOUT=P3^5;

  


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++);
  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++);//引导码
        
      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++); //编码结束
   
      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信号发出
           }
    }
  }


再次申明我是程序新手,没学过太高级的,甚至一个月前我还认为用继电器解码都比程序好。
希望高手能帮忙修改。


36
发表于 2013-9-29 14:51 | 只看该作者
厉害,新手学习
37
 楼主| 发表于 2013-10-1 13:00 | 只看该作者
好了,现在把发射机的电路图传上来。
发射机的准备弄成带FPV的,以前做过这种(是FPV加的艾特遥控器),现在要改一下,FPV保留,遥控换单片机和数传。
http://bbs.5imx.com/bbs/forum.php?mod=viewthread&tid=725833&extra=&highlight=fpv%B5%D8%C3%E6%D5%BE&page=1(以前做地面站的帖子)
另外,因为以前的地面站不知是遥控器被我改出了问题,还是接收机放学校社团被熊孩子玩坏了,所以得对这个盒子动大手术了。


125236sskoky3ekl3e0bky.jpg (37 KB, 下载次数: 4)

125236sskoky3ekl3e0bky.jpg
38
发表于 2013-10-1 19:52 | 只看该作者
支持你!加油
39
 楼主| 发表于 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++);
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }   
          }
        }
    }
  }



40
发表于 2013-10-2 23:38 | 只看该作者
樓主不是在做車床咩?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

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

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