_SKU_DFR0331_Romeo_for_Edison_Controller_爱迪生机器人控制主板 - jimaobian/DFRobotWikiCn GitHub Wiki

Romeo for Edison Controller

概述

Romeo for Edison Controller 是以intel Edison模块(Intel Edison 是一个低成本的片上系统 (SoC) 开发平台,使发明家、企业家和消费品设计师可以原型设计并开发物联网 (IoT) 和耐用的计算产品。)的多功能控制板。同样基于Arduino开放源代码的Simple I/O平台和linux平台,并且具有使用类似jave,C语言的开发环境,同时我们可以通过web、上位机等远程来控制Romeo for Edison Controller平台。Romeo for Edison Controller不仅可直插各类Switch,Sensor等输入设备,同样可直插多类LED,舵机等输出设备。板子还集成了电机驱动模块,可通过外接6~20V电压,直接驱动电机。Romeo for Edison Controller也可以独立运作为一个可以跟软件沟通的平台,例如,flash,processing,Max/MSP,VVVV等互动软件...Romeo for Edison Controller不但有完整的Arduino Leonardo的功能,还集成了2路电机驱动、无线数传模块、数字与模拟IO扩展口、I2C总线接口等功能。

技术规格

  • 微处理器:Intel Edison模块(双核, 500MHz Intel Atom CPU 和100MHz Intel Quark 微控制器)
  • 工作电压:5V
  • 直流输出:5V/3.3V
  • 输入电压:6-20V
  • Digital I/O(数字):14
  • Analog I/O(模拟):6
  • IO引脚直流电流:10mA
  • 电机驱动模块恒定输出电流:2x2A
  • 体积:100x88x15mm

功能简述

  • Digital I/O(数字): D0-D13,A0-A5
  • PWM口:4个 (数字引脚3,5,6和9)
  • 支持USB供电与外部供电自动切换
  • 支持SPI下载接口
  • 支持1组I2C/TWI接口
  • 支持2路电机驱动,峰值电流2A,4个控制口使用跳线切换
  • 支持Broadcom 43340 802.11 a/b/g/n 双频带(2.4 和 5GHz)WiFi
  • 蓝牙 4.0

引脚说明

DFR0331_11.png

Romeo for Edison Controller如何使用

Romeo for Edison Controller 快速入门

A.硬件环境的搭建

1)元件清单

1x Romeo for Edison

1x Edison模块

2x micro USB数据线

1x 电脑

DFR0331_Part_List.png

2)硬件连接图 DFR0331_PC_Connection.png

B.软件环境的搭建

1)系统环境

windows7/windows8

2)Edison Arduion IDE环境搭建 (2015/10月更新IDE下载与安装)

1.下载Arduion IDE(选择1.6.以上版本) A、下载地址 B、把下载好的Arduino IDE包解压到非中文目录下 C、打开IDE,选择"Tools > Board > Boards Manager" DFR0331_boards_manager.png 点击安装”Intel i686 Boards by Intel version 1.6.2+1.0——Edison“板卡,安装完成之后就可以在板卡中找到Edison的板子了。 DFR0331_boards.png

2)配置Edison Arduino IDE所用的英文环境 A、开始菜单 6.png B、点击控制面板 7.png C、点击更改语言设置 8.png D、更改语言(English)和点击确定 DFR0331_1.png E、进入这个目录,看到“arduino.exe” 文件,并打开,如果打开成功则配置正确 DFR0331-ARDUINO开发环境-1.png

3)驱动安�

1.下载驱动 A、FTDI drivers B、Windows Driver setup 1.0.0

2.安装FTDI drivers A、双击CDM v2.10.00 WHQL Certified.exe文件 12.png B、点击“Extract” 13.png C、点击“Next” 14.png D、点击“Finish” 15.png 3.安装Windows Driver setup 1.0.0 A、双击.exe文件开始安装 18.png B、点击“Next”和“I Agree” 123.png C、最好直接点击“Install”,也可以把软件安装你喜欢的目录。 12345.png D、点击“OK”。 23.png E、点击“Finish”. 24.png

4、测试开发环境 A、打开Arduino IDE 26.png B、点击“File > Examples >Basics>Blink”打开 DFR0331_2.jpg C、点击“Tools >Board”和挑选“Intel Edison” 92.png E、找到计算机图标,右键点击“计算机”和点击管理,双击“设备管理器”查看串口号 32.png 33.png F、选择COM4 1112.png G、点击下载 135.png H、观察板子上的L灯是否闪亮,如果闪亮,环境就搭建好了 136.png

Romeo for Edison Controller 典型应用

数字口的应用

A. 外接LED实验

1.元件清单和连接图

1x micro USB数据线

1x Romeo for Edison Controller板子

1x 英特尔® Edison模组

1x 数字食人鱼红色LED发光模块 2996.png 2.应用程序

int ledPin = 13;                // 定义LED为 pin 13
void setup()
{
  pinMode(ledPin, OUTPUT);      // 设置数字端口13为输出模式
}
void loop()
{
  digitalWrite(ledPin, HIGH);   // 数字端口置高,LED亮
  delay(1000);                  // 延时
  digitalWrite(ledPin, LOW);    // 数字端口置低,LED灭
  delay(1000);                  // 延时
}
B. 按键实验

1.元件清单和连接图

1x micro USB数据线

1x Romeo for Edison Controller板子

1x 英特尔® Edison模组

1x 数字食人鱼红色LED发光模块

1x 数字大按钮模块 AAA24.png

2.应用程序

int buttonPin = 3;     // 定义按键为 pin 3
int ledPin =  13;      // 定义LED为 pin 13

int buttonState = 0;

void setup() {
  pinMode(ledPin, OUTPUT);     // 设置数字端口13为输出模式
  pinMode(buttonPin, INPUT);   // 设置数字端口2为输入模式
}

void loop(){
  buttonState = digitalRead(buttonPin);  //读取Pin 2的状态

  if (buttonState == HIGH) {      //判断是否为高
    digitalWrite(ledPin, HIGH);   //如果是高,设置LED亮
  }
  else {
    digitalWrite(ledPin, LOW);    //如果是低,设置LED灭
  }
}
C. 多舵机实验

1.元件清单和连接图

1x micro USB数据线

1x Romeo for Edison Controller板

1x 英特尔® Edison模组

3x TowerPro SG50舵机

1x 直流电源 DFR0331_10.png

2.应用程序

#include <Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
void setup(){
  servo1.attach(3);               //定义舵机1控制口为Pin3
  servo2.attach(5);              //定义舵机2控制口为Pin5
  servo3.attach(9);              //定义舵机3控制口为Pin6
  Serial.begin(19200);//设置波特率
  Serial.print("Ready");
}

void loop(){
  static int v = 0;
  if ( Serial.available()) {
    char ch = Serial.read();       //读取串口数据
    switch(ch) {
      case '0'...'9':
        v = v * 10 + ch - '0';  //字符换算成10进制
        break;
      case 'a':             //如果数据后带a,则表示是servo1的数据,比如串口发送85a
        servo1.write(v);
        v = 0;
        break;
      case 'b':             //如果数据后带b,则表示是servo2的数据,比如串口发送90b
        servo2.write(v);
        v = 0;
        break;
      case 'c':             //如果数据后带c ,则表示是servo3的数据,比如串口发送180c
        servo3.write(v);
        v = 0;
        break;
    }
  }
}

Romeo for Edison Controller 电机和模拟端口库使用教程

注意:我们为Romeo for Edison更新了大量的驱动库,为了便于管理,我们将会把Romeo4Edison库移植到了github做更新。
其中NG.ino为ATmega8固件,DFRobotEdison为Edison电机和模拟端口驱动库

新版Romeo for Edison电机驱动库 旧版Romeo for Edison电机驱动库

注意:
2015年9月之后的出产的Romeo for Edison将默认烧录最新固件,请使用对应的驱动库使用,以避免出现bug现象。早期的产品通过升级Atmeg8固件,完成更新,也可以继续使用旧版的驱动库。

将下载之后的库文件放在Arduino的库文件夹内:例如:\arduino-1.6.3\libraries目录下。

电机端口的使用

1)驱动电机的应用

1.元器件清单和连接图

1x micro USB数据线

1x Romeo for Edison Controller板

1x 英特尔® Edison模组

1x 金属齿轮减速电机 G13897.png 2.应用程序

/*
 *Copyright (c) 2014, Chengdu Geeker Technology Co., Ltd.
 *All rights reserved
 *
 *FileName : Motor.ino
 *File Tag :
 *Summary  : moter control example
 *
 *Version  : V1.2
 *Author   : ouki.wang([email protected])
 *Time     : 2015.10.10

 *Version  : V1.1
 *Author   : weibing.deng([email protected])
 *Time     : 2015.1.7
 *
 *Version  : V1.0
 *Author   : weibing.deng([email protected])
 *Time     : 2014.12.22
 */
#include <DFRobot.h>
#include <IIC1.h>
DFrobotEdison Motor1;
DFrobotEdison Motor2;

void setup() {
  Motor1.begin(M1); /*Initialize motor1*/
  Motor2.begin(M2); /*Initialize motor2*/
}

void loop() {
  Motor2.move(); /*motor rotate with the fastest speed*/
  Motor1.move();
  delay(3000);
  Motor2.setDirection(CLOCKWISE); /*Motor M2 clockwise rotation*/
  Motor1.setDirection(CLOCKWISE); /*Motor M1 clockwise rotation*/

  Motor2.setSpeed(100); /*set speed 100(0-255)*/
  Motor1.setSpeed(100); /*set speed 100(0-255)*/
  delay(3000);

  Motor2.setDirection(ANTICLOCKWISE); /*Motor M2 anticlockwise rotation*/
  Motor2.setSpeed(200); /*set speed 200(0-255)*/
  Motor1.setDirection(ANTICLOCKWISE); /*Motor M1 anticlockwise rotation*/
  Motor1.setSpeed(200); /*set speed 300(0-255)*/
  delay(3000);

  Motor2.stop(); /*stop moter*/
  Motor1.stop(); /*stop moter*/
  delay(3000);
}

模拟端口的使用

和arduino标准一样,只是要加入我们的库,参照: arduino官方


/*
 *Copyright (c) 2014, Chengdu Geeker Technology Co., Ltd.
 *All rights reserved
 *
 *File Name : analogRead.ino
 *File Tag  :
 *Summary   : A0-A5 port Analog reading example
 *
 *Version   : V1.0
 *Author    : weibing.deng([email protected])
 *Time      : 2014.12.22
 */
#include <DFRobot.h>
#include <IIC1.h>

unsigned int value = 0;

void setup() {
 Serial.begin(9600);
}

void loop() {
  value = analogRead(A0);
  Serial.print("A0=");Serial.println((int)value);
  value = analogRead(A1);
  Serial.print("A1=");Serial.println((int)value);
  value = analogRead(A2);
  Serial.print("A2=");Serial.println((int)value);
  value = analogRead(A3);
  Serial.print("A3=");Serial.println((int)value);
  value = analogRead(A4);
  Serial.print("A4=");Serial.println((int)value);
  value = analogRead(A5);
  Serial.print("A5=");Serial.println((int)value);

  delay(2000);
}

ATmaga8固件更新

1)更新ATmaga8模块IIC通信固件NG.ino Edison通过IIC与ATmega 8进行通信,他可以以此来达到Edison来电机和读取A0-A5的模拟数据的效果。(**出厂已烧录最新固件,老版本的亦可以通过以下方法来更新。**需要FTDI下载器) 1.下载NG程序 Github NG固件

2.硬件连接图 321.png 3.软件下载

A、双击Arduino图标,选择板子 2d.png B、选择芯片型号 3d.png C、点击下载 4f.png

Trouble Shooting

  1. 问题:Win XP/ Win 7 不兼容怎么办?

回答:Win7系统对Edison的支持有差异,只有部分能兼容,推荐使用Win 8。 安装完驱动,请重启电脑

  1. 问题:电机驱动老是跑飞,怎么办?

回答:更新ATmega8最新固件,V1.1已修复此问题

  1. 问题:未使用OTG口时COM口在系统下无法敲入命令行进行Debug

回答:该问题是由于Intel Edison模块需要在VBUS脚检测到高电平(或者USB_ID脚拉低)之后才允许COM口敲入命令行。也就是说,客户如果需要在COM口敲命令行Debug,则必须在OTG口插上OTG线(OTG线可不接任何设备),或者将OTG口通过Micro USB线连接计算机。在不使用命令行调试功能时,COM能作为普通串口正常使用。

更多

Romeo for Edison 原理图 Romeo for Edison library V1.1 (旧版) Romeo for Edison library V1.2 (新版)

File:nextredirectltr.png购买 Romeo for Edison Controller 爱迪生机器人控制主板(不含Edison)(SKU:DFR0331)

File:nextredirectltr.png购买 Romeo for Edison Controller 爱迪生机器人控制主板(含Edison)(SKU:DFR0350)

⚠️ **GitHub.com Fallback** ⚠️