空无以求全
宁静以致远
当前位置:首页 > .html

Arduino电脑无线遥控履带小车

作者:大熊空间发布时间:2022-02-19 17:09分类: 浏览:230评论:0


导读:   wxxmickey 发表于 - 2008-11-12 21:21:00 ...
 
wxxmickey 发表于 - 2008-11-12 21:21:00

      学习了前面提到的Arduino控制电机驱动及串口通讯、无线数传通讯的知识后,我们就可以来动动手了,制作一个款简易的电脑无线遥控履带小车。
小车配置如下:
      1。Arduino控制器     1个
      2。DF-MDV1.2电机驱动   1个
      3。Arduino扩展板   1个
      4。RP5履带         1个
      5。APC220无线数传模块     1个
      6。12V2300mAH电池包    1个

APC220一对及USB串口转换器一个

Arduino控制器及扩展板各一个

DF-MDV1.2电机驱动一个、一小块压克力及螺钉螺母镙柱若干

履带小车一台及7.2或12V电池包一个

      材料备齐立马开工:

将DF-MDV1.2电机驱动安装在一个裁剪好的压克力背面,

Arduino控制器安装在压克力正面,

一只APC220插在Arduino扩展板上,

然后再将扩展板插到Arduino控制器上,

履带小车的电机线接到电机驱动板上,电机驱动板上的电机接线柱边画有一个圈,分别接2个电机相同颜色的引线,

电池包殷勤地躺在履带怀中,触角却伸到了电机驱动板的电源接线柱上(酸啊。。。。),

插上电机的6根控制线和2根给Arduino供电的电源线,

电机控制线和电源线接到Arduino上,硬件大功告成!

侧身摆了个pose。

另一只APC220插到电脑USB上,电机驱动接法如下:

电机驱动     Arduino
IN1                PIN2
EN1               PIN3                      
IN2                PIN4
IN3                PIN5
EN2               PIN6
IN4                PIN7

电脑无线遥控履带小车代码如下:

int IN1 = 2;
int EN1 = 3;                        
int IN2 = 4;   
int IN3 = 5;  
int EN2 = 6;
int IN4 = 7;
                      
void stop(void)
        {
          digitalWrite(IN1,LOW);  
          digitalWrite(IN2,LOW);     
          digitalWrite(IN3,LOW);  
          digitalWrite(IN4,LOW);
        }


void advance_l(void)
        {      
          digitalWrite(IN1,HIGH);  
          digitalWrite(IN2,LOW); 
        } 
       
void advance_r(void)  
       {
          digitalWrite(IN3,LOW);  
          digitalWrite(IN4,HIGH);
        }

void back_off_l(void)
        {
          digitalWrite(IN1,LOW);  
          digitalWrite(IN2,HIGH); 
        } 
       
void back_off_r(void)  
       {
          digitalWrite(IN3,HIGH);  
          digitalWrite(IN4,LOW);
        }

       
void setup(void)
{
    int i;
    for(i=2;i<=7;i++)
    pinMode(i, OUTPUT);  
    digitalWrite(EN1,HIGH);
    digitalWrite(EN2,HIGH);
    Serial.begin(19200);

 
void loop(void)

       char val = Serial.read();
       if(val!=-1)
         {
           switch(val)
           {
             case 'w'://前进
                         advance_l();
                         advance_r();
                         break;
              case 's'://后退
                         back_off_l();
                         back_off_r();
                         break;
             case 'a'://左转
                         advance_r();
                         back_off_l();
                         break;       
             case 'd'://右转
                         advance_l();
                         back_off_r();
                         break;        
             }     
           delay(30); 
          }
        else stop();         
}

      这个代码使用串口助手测试,分别发送字符w,s,a,d则表示前进,后退,左转,右转,有心的朋友可以搞个上位机,使用键盘的w,s,a,d来控制。
      有了这个基础,相信朋友们能开发出更多功能的小车来,譬如在上面加摄相头,舵机,超声波,红外线等等器件。


发表评论: