Blogs

arduino.机器人#3 - 接线,编码和测试运行

Lonnie Honeycutt.2013年10月17日

arduino机器人

arduino机器人是一系列文章,编年史是我的第一个自治机器人构建,clusterbot。 这种构建意味着价格实惠,相对容易和有益。 建造的总成本约为50美元。 

1. arduino.机器人 - 电机控制
2. arduino.机器人 - 底盘,机器人和力量
3. arduino.机器人 - 接线,编码和测试运行
4. arduino.机器人 - HC-SR04超声波传感器

连接

使用下面的图表作为在Arduino,TB6612FNG电机,电机和电池组之间进行连接的参考。 我记得来自我的3V电池组的电线太薄,无法连接到面包板。 我通过用一点焊料镀金镀锡的末端来解决这个问题。 您可以这样做,将焊点焊接到电线,或用适当的连接线更换粘性线。

arduino. Uno. tb6612fng. 电机A. 电机B. 3V电池组 9V电池组
GND. GND.        
5V vcc.        
  AO1 - 杆子      
  AO2 +极点      
  BO2   +极点    
  BO1   - 杆子    
  vmot.     +极点  
  GND.     - 杆子  
3 PWM.A.        
1 AIN2        
0 AIN1        
6 st        
2 BIN1        
4 BIN2        
5 PWM.B.        
GND. GND.        
桶康纳斯         桶康纳斯

编码

现在我们可以测试clusterbot的基本功能,我们只需要先编写一点代码。 我决定为每种基本类型的运动进行功能,以使主要尽可能干净。

我将提供此逻辑表,从TB6612FNG数据表中派生,作为参考。 它定义了如何使电机沿我们想要的方向和速度旋转。

IN1 IN2 PWM. st 模式
H H H / L. H 短刹车
L H H H CCW.
L H L H 短刹车
H L H H CW.
H L L H 短刹车
L L H H 停止
H / L. H / L. H / L. L 支持
/* Define pinout of Arduino to match physical connections */
#define PWMA 3
#define AIN1 0
#define AIN2 1
#define PWMB 5
#define BIN1 2
#define BIN2 4
#define STBY 6

void setup() {

/* Define all 7 pins as outputs to the TB6612FNG driver */
pinMode(PWMA,OUTPUT);
pinMode(AIN1,OUTPUT);
pinMode(AIN2,OUTPUT);
pinMode(PWMB,OUTPUT);
pinMode(BIN1,OUTPUT);
pinMode(BIN2,OUTPUT);
pinMode(STBY,OUTPUT);

}

void loop() {
  
  startUp();
  goForward();
  delay(5500);
  turnAround();
  goForward();
  delay(5500);
  turnAround();
  goBackward();
  delay(5500);
  rotateLeft();
  delay(560);
  rotateRight();
  delay(560);
  goForward();
  delay(3000);
  applyBrakes();
  delay(2000);
  }

/* Function definitions */
/* Due to variations in motor output, it was found that */
/* a duty cycle of 233 on the left motor and 255 on the */
/* right motor is necessary for approximately straight  */
/* line, full speed travel                              */
/* Testing revealed Clusterbot will do 27 rotations per */
/* minute, with motors turning in opposite direction at */
/* full duty cycle.  This "constant" was used to        */
/* determine the length of time to turn to make 90, 180,*/
/* and 360 degree turns.                                */

void goForward ()
{
  digitalWrite (AIN1,HIGH);
  digitalWrite (AIN2,LOW);
  analogWrite(PWMA,234);
  digitalWrite (BIN1,HIGH);
  digitalWrite (BIN2,LOW);
  analogWrite(PWMB,255);  
}

void goBackward ()
{
  digitalWrite (AIN1,LOW);
  digitalWrite (AIN2,HIGH);
  analogWrite(PWMA,233);
  digitalWrite (BIN1,LOW);
  digitalWrite (BIN2,HIGH);
  analogWrite(PWMB,255);  
}

void rotateRight ()
{
  digitalWrite (AIN1,HIGH);
  digitalWrite (AIN2,LOW);
  analogWrite(PWMA,255);
  digitalWrite (BIN1,LOW);
  digitalWrite (BIN2,HIGH);
  analogWrite(PWMB,255);  
}

void rotateLeft ()
{
  digitalWrite (AIN1,LOW);
  digitalWrite (AIN2,HIGH);
  analogWrite(PWMA,255);
  digitalWrite (BIN1,HIGH);
  digitalWrite (BIN2,LOW);
  analogWrite(PWMB,255);  
}

void veerLeft ()
{
  digitalWrite (AIN1,HIGH);
  digitalWrite (AIN2,LOW);
  analogWrite(PWMA,190);
  digitalWrite (BIN1,HIGH);
  digitalWrite (BIN2,LOW);
  analogWrite(PWMB,255);  
}

void veerRight ()
{
  digitalWrite (AIN1,HIGH);
  digitalWrite (AIN2,LOW);
  analogWrite(PWMA,255);
  digitalWrite (BIN1,HIGH);
  digitalWrite (BIN2,LOW);
  analogWrite(PWMB,190);  
}

void applyBrakes ()
{
  digitalWrite (AIN1,HIGH);
  digitalWrite (AIN2,HIGH);
  analogWrite(PWMA,255);
  digitalWrite (BIN1,HIGH);
  digitalWrite (BIN2,HIGH);
  analogWrite(PWMB,255);  
}

void startUp ()
{
  digitalWrite(STBY,HIGH);
}

void turnAround()
{
  rotateLeft();
  delay(1370);
}

void shutDown ()
{
  digitalWrite(STBY,LOW);
}


测试运行!

时间来看看clusterbot可以做什么。他是聋人和盲人,但他有几个动作。让我们来看吧:


所以,Clusterbot可以移动! 现在是时候给予clusterbot愿景了,也许是一个声音。 在此之前,还有一件事要照顾:

改造

Clusterbot有很多跳线电线,我发现我很难挑选他,而不意外地拉出其中一个跳投。 这是一个真正的混乱,是时候弄清楚了一下。 我替代悬而未拔的跳线电线,将连接线切割到适当的长度并压平。

我也决定亚克力基础并没有真正为ClusterBot做任何事情。 我将脚轮直接安装在变速箱的底部,并将ercor-set框架安装到顶部。 Much cleaner!  这是之前和休息的:

ercillerbot之前

Clusterbot之后

下次

我们将添加一个传感器和其他一些小工具,让Clusterbot开始为自己做出一些决定。


要发布回复评论,请单击连接到每个注释的“回复”按钮。发布新的评论(不是回复评论),请在评论的顶部查看“写评论”选项卡。

注册将允许您参加所有相关网站的论坛,并为您提供所有PDF下载。

注册

我同意 使用条款隐私政策.

尝试我们偶尔但流行的时事通讯。非常容易取消订阅。
或登录