概述
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
引脚说明
 
Romeo for Edison Controller如何使用
Romeo for Edison Controller 快速入门
A.硬件环境的搭建
1)元件清单
1x Romeo for Edison
1x Edison模块
2x micro USB数据线
1x 电脑
2)硬件连接图
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"
 
点击安装”Intel i686 Boards by Intel version 1.6.2+1.0——Edison“板卡,安装完成之后就可以在板卡中找到Edison的板子了。
 
2)配置Edison Arduino IDE所用的英文环境
A、开始菜单
 
B、点击控制面板
 
C、点击更改语言设置
 
D、更改语言(English)和点击确定
 
E、进入这个目录,看到“arduino.exe” 文件,并打开,如果打开成功则配置正确
 
3)驱动安装
1.下载驱动
A、FTDI drivers
B、[Windows Driver setup 1.0.0]
2.安装FTDI drivers
A、双击CDM v2.10.00 WHQL Certified.exe文件
 
B、点击“Extract”
 
C、点击“Next”
 
D、点击“Finish”
 
3.安装Windows Driver setup 1.0.0
A、双击.exe文件开始安装
 
B、点击“Next”和“I Agree”
 
C、最好直接点击“Install”,也可以把软件安装你喜欢的目录。
 
D、点击“OK”。
 
E、点击“Finish”.
 
4、测试开发环境
A、打开Arduino IDE
 
B、点击“File > Examples >Basics>Blink”打开
 
C、点击“Tools >Board”和挑选“Intel Edison”
 
E、找到计算机图标,右键点击“计算机”和点击管理,双击“设备管理器”查看串口号
 
   
F、选择COM4
 
G、点击下载
 
H、观察板子上的L灯是否闪亮,如果闪亮,环境就搭建好了
Romeo for Edison Controller 典型应用
数字口的应用
A. 外接LED实验
1.元件清单和连接图
1x micro USB数据线
1x Romeo for Edison Controller板子
1x 英特尔® Edison模组
1x 数字食人鱼红色LED发光模块
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 数字大按钮模块
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 直流电源
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 金属齿轮减速电机
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(ouki.wang@dfrobot.com)
     *Time     : 2015.10.10
     *Version  : V1.1
     *Author   : weibing.deng(15196617738@163.com)
     *Time     : 2015.1.7
     *
     *Version  : V1.0
     *Author   : weibing.deng(15196617738@163.com)
     *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(15196617738@163.com)
 *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模块I2C通信固件NG.ino
Edison通过I2C与ATmega 8进行通信,他可以以此来达到Edison来电机和读取A0-A5的模拟数据的效果。(**出厂已烧录最新固件,老版本的亦可以通过以下方法来更新。**需要FTDI下载器)
1.下载NG程序 Github NG固件
2.硬件连接图
3.软件下载
A、双击Arduino图标,选择板子
 
B、选择芯片型号
 
C、点击下载
 
Trouble Shooting
- 问题:Win XP/ Win 7 不兼容怎么办?
回答:Win7系统对Edison的支持有差异,只有部分能兼容,推荐使用Win 8。 安装完驱动,请重启电脑
- 问题:电机驱动老是跑飞,怎么办?
回答:更新ATmega8最新固件,V1.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 (新版)
 购买 Romeo for Edison Controller 爱迪生机器人控制主板(不含Edison)(SKU:DFR0331)
购买 Romeo for Edison Controller 爱迪生机器人控制主板(不含Edison)(SKU:DFR0331)
 购买 Romeo for Edison Controller 爱迪生机器人控制主板(含Edison)(SKU:DFR0350)
购买 Romeo for Edison Controller 爱迪生机器人控制主板(含Edison)(SKU:DFR0350)
