概述
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:DFR0350)