SKU:RB-01C132 GearDuino控制器

来自ALSROBOT WiKi
2018年1月2日 (二) 15:55Arduino77讨论 | 贡献的版本

跳转至: 导航搜索
01C13203.jpg

目录

产品概述

GearDuino 控制器是专门为广大机器人爱好者开发的一款多功能实用控制器。
将双路直流电机驱动(TB6612FNG)、4路数字接口(可驱动舵机)、4路模拟接口、1路IIC接口和1路串口整合在一起,能立刻启动您的机器人拼装套件项目和智能小车项目而不需额外添加器件。
人性化的排座颜色指示,让您容易区分电源及信号线,这样的设计不但兼容绝大多数现有的传感器设计,还降低了传感器插接错误几率,为您带来更加便捷的产品体验。
它具有高达 3A 的驱动能力,6-12V 宽输入电压,每一路电机仅需两个引脚便可以驱动,让编程更加简单。
GearDuino 控制器是基于 ATmega328P 芯片,它的使用和 Arduino UNO 一样,您可以直接从 Arduino IDE 1.8.0 或更新的版本中启动它。更重要的是 GearDuino 支持奥松编程吧 SuperBlockly 的在线云编程功能,您可以通过类似玩乐高玩具的方式用一块块图形对象构建出应用程序,让编程更加简单、直观!

产品参数

  1. 微处理器:ATmega328P-AU
  2. 引导装载程序:Arduino UNO
  3. 串口转换芯片:CH340T
  4. 电机驱动芯片:TB6612FNG
  5. 工作电压:5V
  6. 供电方式:MicroUSB供电或外部电源供电6-12V
  7. 输入电压(推荐):7-11V
  8. 输入电压(极限):6-12V
  9. 输出电压:5V
  10. 电流输出:0-3A(5V)
  11. 尺寸:38mm x 82mm
  12. 重量:17g
  13. 包装:防静电袋
  14. 固定孔:M3 * 3 个
  15. 引脚说明:
  • 数字接口:4个(可驱动舵机)
  • 模拟接口:4个
  • 电机接口:2个
  • 扩展接口:IIC接口 1个、串口通讯接口 1个、ICSP接口1个、双路电机驱动模块接口1个
  • 时钟频率:16MHz
  • 指示灯:电源指示灯 - 红色;USB通讯指示灯 - 黄色(通信成功时亮起);D13引脚指示灯 - 黄色;电机运行指示灯 - 蓝色/绿色;

使用方法

板载接口

01C13201.png
  • 数字接口:D2、D9、D10、D13
  • 模拟接口:A0 - A3
  • 扩展接口:IIC * 1个、串行接口 * 1个
  • 外部电机模块接口:Vin = 电源电压;数字接口:D3、D8、D11、D12
  • 电机驱动芯片控制引脚
  • M1电机控制引脚:D5(PWM)控制速度;D4控制转向
  • M2电机控制引脚:D6(PWM)控制速度;D7控制转向
  • 数字接口:D3(PWM)、D8、D11(PWM)、D12
  • 模拟接口:A0、A1、A2、A3

驱动安装

1、驱动下载

2、windows 下的驱动安装
解压下载文件中的 CH34x_Install_Windows_v3_4.zip 文件,双击解压出的 .exe 安装文件,然后单击安装,即可完成驱动的安装

01C13202.png

3、安装完成后,弹出提示,关闭即可

01C13204.png

4、通过电脑的设备管理器可以查看端口,正常情况下会出现一个新的 COM 接口,在后面代码上传时,使用的就是这个端口号

01C13205.png

LED_blink

GearDuino 与 Arduino 控制器相同,有一个连接到数字接口 13 的板载测试 LED,这个实验可以用来测试和熟悉控制板的使用。
打开 Arduino IDE

  • 通过“工具” - “开发板” - 选择“Arduino UNO”开发板
  • 通过“工具” - “端口” - 选择 CH340 的端口,这里是 COM5(注意:每个电脑的端口号可能不同,这不影响使用)

设置完成后,Arduino IDE 编译器的右下角会有显示

01C13206.png
  • Arduino_code_1

int ledPin = 13;                     // 定义LED为pin13
void setup()
{
    pinMode(ledPin, OUTPUT);       // 设置数字端口13为输出模式
}

void loop()
{
    digitalWrite(ledPin, HIGH);   // 数字端口置高,LED亮
    delay(1000);                     // 延时
    digitalWrite(ledPin, LOW);    // 数字端口置低,LED灭
    delay(1000);                     // 延时
}
  • 在线云编程例程

Motor_Driver

1、使用硬件

  • 2 * 黄色之流减速电机
  • 1 * 7.4V 1300mAh 锂电池
  • 1 * GearDuino 控制器
  • 1 * Micro USB 数据线

2、硬件连接

01C13207.png

3、Arduino_code_2

#define PWA 5 //M1 速度控制                    
#define PWB 6 //M2 速度控制
#define DIRA 4 //M1 方向控制
#define DIRB 7 //M2 方向控制
   
//初始化函数
void setup(){    
  pinMode(PWA, OUTPUT);
  pinMode(PWB,OUTPUT);
  pinMode(DIRA,OUTPUT);
  pinMode(DIRB, OUTPUT);
}
//主函数
void loop()
{
  head(); //两个绿灯亮
  delay(2000);
  Stop();
  delay(500);
  back(); //两个蓝灯亮
  delay(2000);
  Stop();
  delay(500);
  right(); //一个绿灯一个蓝灯亮
  delay(2000);
  Stop();
  delay(500);
  left(); //一个绿灯一个蓝灯亮
  delay(2000);
  Stop();
  delay(500);
}

void head()  //前进
{
  analogWrite(PWA,150);
  analogWrite(PWB,150);
  digitalWrite(DIRA,HIGH);
  digitalWrite(DIRB,HIGH);
}

void back() //后退
{
  analogWrite(PWA,150);
  analogWrite(PWB,150);
  digitalWrite(DIRA,LOW);
  digitalWrite(DIRB,LOW);
}

void right()  //原地右转
{
  analogWrite(PWA,150);
  analogWrite(PWB,150);
  digitalWrite(DIRA,HIGH);
  digitalWrite(DIRB,LOW);
}

void left()  //原地左转
{
  analogWrite(PWA,150);
  analogWrite(PWB,150);
  digitalWrite(DIRA,LOW);
  digitalWrite(DIRB,HIGH);
}
void Stop()  //停止
{
  analogWrite(PWA,0);
  analogWrite(PWB,0);
  digitalWrite(DIRA,HIGH);
  digitalWrite(DIRB,HIGH);
}

3、在线云编程例程

4、程序效果
两个电机同时正转 2 秒(前进),停止 0.5s;反转 2 秒(后退),停止 0.5 秒;一个正转另一个反转 2 秒(原地转弯),停止 0.5 秒;一个正转另一个反转 2 秒(原地转弯),停止 0.5 秒;以此循环。

I_O_test

GearDuino 有扩展数字接口和模拟接口,通过本实验,进行数字接口 PWM 信号输出及模拟接口数据输入的测试。
1、使用硬件

  • 1 * 旋转角度电位计模块
  • 1 * LED 模块
  • 1 * GearDuino 控制器
  • 1 * Micro USB 数据线
  • 2 * 3P 传感器连接线

2、硬件连接

01C13208.png

3、Arduino_code_3

#define Led 9
#define Res A0
void setup() 
{
  pinMode(Led,OUTPUT);
}

void loop() {
  int val = analogRead(Res);
  char light = map(val, 0, 1023, 0, 255);
  analogWrite(Led, light);
  delay(100);
}

3、在线云编程例程

4、程序效果
通过旋转角度电位计模块来调节 LED 发光模块的亮度。

IIC_test

1、使用硬件

  • 1 * ADXL345 加速度传感器
  • 1 * GearDuino 控制器
  • 1 * Micro USB 数据线

2、硬件连接
三轴加速度传感器可以直接连接在 GearDuino 控制器上,接口兼容,无需外加线材

01C13209.png

3、Arduino_code_4

#include <Wire.h>  //调用arduino自带的I2C库
#define Register_ID 0     //器件ID
#define Register_2D 0x2D  //静止、活动、休眠、唤醒
#define Register_X0 0x32  //X轴数据0
#define Register_X1 0x33  //X轴数据1
#define Register_Y0 0x34  //Y轴数据0
#define Register_Y1 0x35  //Y轴数据1
#define Register_Z0 0x36  //Z轴数据0
#define Register_Z1 0x37  //Z轴数据1

int ADXAddress = 0xA7>>1;  //转换为7位地址
int X0,X1,X_out;
int Y0,Y1,Y_out;
int Z1,Z0,Z_out;
double Xg,Yg,Zg;

void setup()
{
  Serial.begin(9600); //设置通信波特率
  Wire.begin();  //初始化I2C
  Wire.beginTransmission(ADXAddress);//发送芯片地址
  Wire.write(Register_2D);//特性控制
  Wire.write(8);//关闭休眠模式
  Wire.endTransmission();//结束发送
}
void loop()
{
  Wire.beginTransmission(ADXAddress);
  Wire.write(Register_X0);//请求X0数据
  Wire.write(Register_X1);//请求X1数据
  Wire.endTransmission();
  Wire.requestFrom(ADXAddress,2);//发送请求
  if(Wire.available()<=2);
  {
    X0 = Wire.read();//收到X0数据
    X1 = Wire.read();//收到X1数据
    X1 = X1<<8;
    X_out = X0+X1;
  }
  Wire.beginTransmission(ADXAddress);
  Wire.write(Register_Y0);
  Wire.write(Register_Y1);
  Wire.endTransmission();
  Wire.requestFrom(ADXAddress,2);
  if(Wire.available()<=2);
  {
    Y0 = Wire.read();
    Y1 = Wire.read();
    Y1 = Y1<<8;
    Y_out = Y0+Y1;
  }
  Wire.beginTransmission(ADXAddress);
  Wire.write(Register_Z0);
  Wire.write(Register_Z1);
  Wire.endTransmission();
  Wire.requestFrom(ADXAddress,2);
  if(Wire.available()<=2);
  {
    Z0 = Wire.read();
    Z1 = Wire.read();
    Z1 = Z1<<8;
    Z_out = Z0+Z1;
  }
  Xg = X_out/256.00;//把输出结果转换为重力加速度g,精确到小数点后2位。
  Yg = Y_out/256.00;
  Zg = Z_out/256.00;
  Serial.print(" X = ");
  Serial.print(Xg); 
  Serial.print(" Y = ");
  Serial.print(Yg); 
  Serial.print(" Z = ");
  Serial.println(Zg); 
  delay(300);  //刷新频率0.3秒
  
}

3、在线云编程例程

4、程序效果
通过端口可查看三轴加速度传感器输出数据

01C13210.png

UART_test

Stepper_Motor

=