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

标题: 从电阻电容到一辆车 (原:DIY大型多功能车) [打印本页]

作者: 我是老兵    时间: 2013-5-7 21:20
标题: 从电阻电容到一辆车 (原:DIY大型多功能车)
本帖最后由 我是老兵 于 2013-10-14 14:07 编辑

//从18楼开始看吧,最好是第二页开始,前面的作废,后面从新规划并制作//


做这个车有半年了,因为在学校,所以断断续续。以前有过烂尾的经历,所以这次做的差不多了,把基本的地方做出来之后,才发的。

总的,由12v电瓶供电给逆变器,逆变器供电给12v,5v开关电源和插排再供给设备。

//最后,把楼名给改了:从电阻电容到一辆车//






作者: 我是老兵    时间: 2013-5-7 21:21
几个月的照片,有点乱,大家凑合看吧

作者: guochen    时间: 2013-5-8 07:17
祝你早日完工。

作者: dick_myj    时间: 2013-5-8 07:39

祝你早日完工。

作者: minisea    时间: 2013-5-8 09:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: 我是老兵    时间: 2013-5-9 18:56
minisea 发表于 2013-5-8 09:02
由12v电瓶供电给逆变器,逆变器供电给12v,5v开关电源和插排再供给设备。---------要这么麻烦?12V可以接一 ...

因为上面的大灯是220v的,而且220v的交流电对其他东西来说,更通用一些。


作者: 深山老汉    时间: 2013-5-10 13:45
发一个整车照片,了解一下全貌。

作者: 光中王    时间: 2013-5-12 03:01
12V通过逆变器得220V,再通过开关电源得12V、5V,这只不过是为了方便大灯。这样既耗电又增加重量,为什么大灯就不能用LED呢?

作者: PIZZA_IFLY    时间: 2013-5-12 11:28
DIY的好手艺!非常强大!

作者: xiying12571    时间: 2013-5-12 23:49

DIY的好手艺!非常强大!

作者: 我是老兵    时间: 2013-5-15 19:24
光中王 发表于 2013-5-12 03:01
12V通过逆变器得220V,再通过开关电源得12V、5V,这只不过是为了方便大灯。这样既耗电又增加重量, ...

第一,我这现成的有开关电源。
第二,有现成的逆变器,逆变器有有12v20ah的电瓶,能用1小时,而电机500w的功率,搭配现有的24v20ah电池,正好能用一小时。
第三,在外面玩车的时候,手机没电了,或者其他什么东西没电了,比如说电脑,也可以直接充电。


作者: PIZZA_IFLY    时间: 2013-5-15 19:57
DIY的好手艺!非常强大!

作者: 我是老兵    时间: 2013-5-15 20:30
这几天学习挺忙,就只加了电池,再测试了一下电机和电机控制系统。
到现在,主体结构就只差车轮了。



作者: 我是老兵    时间: 2013-5-15 20:53
本帖最后由 我是老兵 于 2013-10-14 14:05 编辑

上图,上图,上图,上图



作者: o0顺其自然0o    时间: 2013-5-15 22:28
不错不错 祝早日完工

作者: 我是老兵    时间: 2013-5-16 09:24
再发一下整车的电路图。电源的切换因为太麻烦,已经删掉了


作者: 寂寞菩提    时间: 2013-6-8 17:39
早点完工吧,瞻仰一下... ...

作者: 我是老兵    时间: 2013-9-20 12:24
又开学了,现在车的整体又重新布局并且重新安装。昨天把车拆了,系统全卸下来,在底盘上安装了铁的保护板,一是承重,二是应对恶劣环境。
下周二学校社团展,这周得出去买一些材料,争取下周能动起来。
(不要烂尾!)

作者: 我是老兵    时间: 2013-9-20 12:28
好了,把图片上上来。轮子是用的自行车的,以前准备的轮子要装齿轮太麻烦。
还有,想问问大家,什么方法能把棘轮给卡死,我试了502,但感觉不太牢靠。



作者: ELVIS00    时间: 2013-9-20 12:28
期待更新

作者: 我是老兵    时间: 2013-9-20 12:50
好像挂了一幅图,手机性能作死呀。
还有,想问问大家,什么方法能把棘轮给卡死,我试了502,但感觉不太牢靠,有什么可靠的东西吗?


作者: mrduke    时间: 2013-9-21 01:34
电焊焊接上去吧!

作者: 我是老兵    时间: 2013-9-23 14:13
现在把车体和车轮的连接发上来。


作者: 我是老兵    时间: 2013-9-23 14:15
现在把车轮和车体的连接发上来。

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

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

还有,学校社团展又推迟了。就因为另外一个校区的校长说我们学校的社团展不够霸气。不过也好,又有充足的时间了。
社团展前弄好车体,其他不说,至少能在地上跑。

作者: happytao22    时间: 2013-9-23 16:49
不知道是什么东西。是车么?没放轮子还真不看不出来呀。请问LZ你做的那个东西的框架的材料叫什么名字呀?用来做架子真不错呢。

作者: 187125096    时间: 2013-9-23 17:41
干啥用的


作者: 我是老兵    时间: 2013-9-23 20:32
mrduke 发表于 2013-9-21 01:34
电焊焊接上去吧!

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



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

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


作者: 辽阳子涵    时间: 2013-9-24 11:28
有这种条件。。。。。。。只能说你这车定位太低了,起码比例控制、万向轮、机械手神马的,弄好军警或许还能找你采购定制呢,现在这弄下来也就是个玩不嗨的打玩具,载个小孩倒比较安全(除了那220V囧)

作者: yangbdyc    时间: 2013-9-24 11:40
我是老兵 发表于 2013-9-20 12:28
好了,把图片上上来。轮子是用的自行车的,以前准备的轮子要装齿轮太麻烦。
还有,想问问大家,什么方法能 ...

飞轮吗?找个电焊师傅,几分钟就焊死了!保证安心!

作者: 我是老兵    时间: 2013-9-25 09:52
好吧,国庆后回学校去试试

作者: 天鹰归来    时间: 2013-9-26 21:13
你窗台上的气灌是干什么的?


作者: 我是老兵    时间: 2013-9-27 14:57
以前玩氦气球的,结果被社团熊孩子给放了。现在用废罐子给做了个模型 b o m b 。

作者: 我是老兵    时间: 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信号发出
           }
    }
  }


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



作者: ieEl2011    时间: 2013-9-29 14:51
厉害,新手学习

作者: 我是老兵    时间: 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(以前做地面站的帖子)
另外,因为以前的地面站不知是遥控器被我改出了问题,还是接收机放学校社团被熊孩子玩坏了,所以得对这个盒子动大手术了。



作者: jasonlkc25    时间: 2013-10-1 19:52
支持你!加油

作者: 我是老兵    时间: 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++);
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }   
          }
        }
    }
  }




作者: bigcatdairy    时间: 2013-10-2 23:38
樓主不是在做車床咩?

作者: 我是老兵    时间: 2013-10-3 16:34
bigcatdairy 发表于 2013-10-2 23:38
樓主不是在做車床咩?

车床?
神马意思?



作者: 皮蛋    时间: 2013-10-3 18:54
看贴

作者: 我是老兵    时间: 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++);
  }
  



作者: bigcatdairy    时间: 2013-10-3 22:41
我是老兵 发表于 2013-10-3 10:34
车床?
神马意思?

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


作者: 我是老兵    时间: 2013-10-14 13:12
这个周末把轮子安上了,然后发射机的电路也做了一半。闲的没事还坐车上玩了一下。
先上照片。



作者: 我是老兵    时间: 2013-10-14 13:15
另外发现一个问题,就是这个车本来是靠左右轮的差速转弯,就像坦克那样,但是实验的时候发现转不了。
请高手看看,是不是因为轮子的摩擦力太大,如何解决。

作者: wolffy    时间: 2013-10-14 18:37
真的很期待你的作品


作者: 我是老兵    时间: 2013-10-15 18:42
好了今天试验了转向,找到以前不能转向的原因:因为以前是我坐在车上,导致车轮对地的压力太大,导致车轮摩擦太大。
现在发现只装电池(5KG,4块12v12AH铅酸)能正常转向。
我的体重60KG,则最多还能装60KG的东西。
解决方法1.是让轮子变光滑,但车的爬坡能力会下降。
           2.是加装履带。这个是推理的,具体怎么个原理很难说。要画个图解释的画,我也能把自己弄晕。


作者: 我是老兵    时间: 2013-10-15 18:49
另外,周五去焊接轮子,四个轮子的棘轮焊死,花了50块,感觉被人坑了。
大家焊过的感觉我是被坑了吗?

作者: 长青英雄    时间: 2013-10-16 12:02
期待楼主早日完工。

作者: 长青英雄    时间: 2013-10-16 12:02
期待楼主早日完工。

作者: dark008wzx    时间: 2013-10-17 00:03
加油加油。

作者: 98ksb08    时间: 2013-11-9 09:54
自己做电路才是牛人

作者: 323202315    时间: 2013-11-30 18:56
有什么用??





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