Romeo for Edison Controller 爱迪生机器人控制主板

Romeo for Edison Controller

目录

1 概述
2 技术规格
3 功能简述
4 引脚说明
5 Romeo for Edison Controller如何使用

5.1 Romeo for Edison Controller 快速入门

5.1.1 A.硬件环境的搭建
5.1.2 B.软件环境的搭建

5.2 Romeo for Edison Controller 典型应用

5.2.1 数字口的应用

5.2.1.1 A. 外接LED实验
5.2.1.2 B. 按键实验
5.2.1.3 C. 多舵机实验

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

5.3.1 电机端口的使用
5.3.2 模拟端口的使用

5.4 ATmaga8固件更新

6 Trouble Shooting
7 更多

概述
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” 文件,并打开,如果打开成功则配置正确

11.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(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模块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
问题: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 (新版)
Nextredirectltr.png购买 Romeo for Edison Controller 爱迪生机器人控制主板(不含Edison)(SKU:DFR0331)

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

标签: Arduino传感器