【Arduino】教你如何自制循迹四驱小车,趣味满满DIY

材料清单:

1X 黑色Arduino小车控制板

1X 黑色循迹模块

1X 循迹模块接线

4X 黄色直流减速电机

4X 黄色轮胎

1X USB线

1X 充电宝

1X 两节18650电池盒

2X 18650电池

1X 硬纸板一块

4X 导线

1X 黑色胶带

 

工具:

水性笔,剪刀,直尺,裁纸刀,热熔胶枪,胶棒,电烙铁,焊锡。

 

步骤:

第一步:先选择硬纸板,将一个直流减速电机和轮胎组装在一起,然后在纸板上画出小车的底盘的外轮廓,使用裁纸刀和直尺画出小车底盘的外轮廓;

第二步:使用电烙铁将两节直流减速电机并联焊接在一起;

第三步:使用热熔胶枪将四直流减速电机固定在小车底盘上;

第四步:在纸板上裁出一块矩形,使用热熔胶枪将循迹模块固定在矩形纸板上,将导线连接到黑色循迹模块上面。使用热熔胶枪将矩形纸板固定在电机上;

第五步:使用热熔胶枪将黑色Arduino控制板固定在小车底座上。连接导线;

第六步:使用胶枪将电池盒固定在小车底座上。并将电池盒接线连接到Arduino板上;

第七步:将Arduino代码下载到控制板中;

/***********************************************************
File name: carTest.ino
Description: DIY four-wheeled tracking car
Website: www.gewbot.com
E-mail: support@gewbot.com
Author: Tom
Date: 2019/08/02 
***********************************************************/
//Motor control port
const int dirAPin = 7;    // define pin used to control rotational direction of motor A
const int pwmAPin = 6;    // define pin for PWM used to control rotational speed of motor A
const int dirBPin = 4;    // define pin used to control rotational direction of motor B
const int pwmBPin = 5;    // define pin for PWM used to control rotational speed of motor B

//Define motor control direction
#define FORWARD 1
#define BACKWARD 2
#define LEFT 3
#define RIGHT 4
#define STOP 5

void setup()
{
  pinMode(dirAPin, OUTPUT);   // set dirAPin to output mode
  pinMode(pwmAPin, OUTPUT);   // set pwmAPin to output mode
  pinMode(dirBPin, OUTPUT);   // set dirBPin to output mode
  pinMode(pwmBPin, OUTPUT);   // set pwmBPin to output mode 
} 

void loop() 
{
  if(analogRead(A0)>1000&&analogRead(A1)>1000&&analogRead(A2)>1000){
     ctrlCar(FORWARD,140);//Three tracking detections are black lines
  }
  if(analogRead(A0)>1000&&analogRead(A1)<100&&analogRead(A2)<100){
     ctrlCar(LEFT,140);//Left A0 tracking detection is black line
  }
  if(analogRead(A0)<100&&analogRead(A1)>1000&&analogRead(A2)<100){
     ctrlCar(FORWARD,140);//The middle side A1 tracking is detected as a black line
  }
  if(analogRead(A0)<100&&analogRead(A1)<100&&analogRead(A2)>1000){
     ctrlCar(RIGHT,140);//Right A2 tracking detection is black line
  }
  if(analogRead(A0)<100&&analogRead(A1)<100&&analogRead(A2)<100){
     ctrlCar(STOP,0);//A0, A1, A2 tracking does not detect black lines
  }  
}
//Control motor motion direction and speed function
void ctrlCar( int motorDir, byte motorSpd) {
  switch(motorDir){
    case 1:digitalWrite(dirAPin, HIGH);
           digitalWrite(dirBPin, LOW);
           break;
    case 2:digitalWrite(dirAPin, LOW);
           digitalWrite(dirBPin, HIGH);
           break;
    case 3:digitalWrite(dirAPin, HIGH);
           digitalWrite(dirBPin, HIGH);
           break;
    case 4:digitalWrite(dirAPin, LOW);
           digitalWrite(dirBPin, LOW);
           break;        
  }
  analogWrite(pwmAPin, motorSpd);
  analogWrite(pwmBPin, motorSpd);
}

第八步:在白色地板上画出黑线,小车就可以实现循迹功能了。

跳至工具栏