(RB-13K164)基于Intel Edison智能硬件开发套件

来自ALSROBOT WiKi
跳转至: 导航搜索

目录

产品概述

Intel Edison是一款专门针对小型智能设备设计的双核芯片,采用x86架构处理内核,支持Linux并能运行复杂的高级应用程序,可以通过WiFi和蓝牙对外沟通。Intel Edison不但可以满足电子爱好者、创客、开发人员的需求,同时也非常适用于学校的计算机、嵌入式硬件的教学工作。同样的硬件设备,针对初学者可以偏重于电子电路、Arduino编程,对于中级用户可以偏重于Python、网络应用,而对于高级用户可以偏重于Linux操作系统。
尽管Intel Edison有着如此强大的功能,但它还是缺少一组传感器来与你互动,奥松机器人从其所开发的上百种传感器中精挑细选,为各位玩家收集了一些最实用也最易用的传感器。套件中包含XBee Sensor Shield传感器扩展板,扩展板不仅附带Xbee接口、蓝牙、APC220接口、SPI通信接口、外接电源口,而且3Pin的彩色排针保证接线正确,在XBee Sensor Shield传感器扩展板上添加传感器就如同搭积木一般简单,套件中的传感器也都是使用防插反接口,可以尽量帮您避免由于插接错误造成的产品损坏,在应用手册中,奥松机器人为您提供了丰富的内容,从Intel Edison初识到上手,分别介绍了Intel Edison的硬件接口、软件架构、如何开始使用你的Intel Edison开发板;编程语言方面,我们为您讲解了Arduino编程语言和python编程语言;例程方面,为您提供了12个精选例程,从基础实验的数字传感器控制、舵机控制等到互动实验的火焰报警器、防盗系统、不让摸的传感器等,还有扩展部分的实验,让您通过网页访问Intel Edison,实现智能家居的制作。通过这一系列的学习,您可以掌握Intel Edison的基本应用、Arduino编程语言、Python编程语言、智能家居的入门应用。您还在等什么?开始用Intel Edison智能硬件开发套件来实现您的idea吧!

Intel Edison 硬件参数

  1. 体积:35.5 * 25 * 3.9 mm
  2. 低功耗:一般情况下电流消耗不超过 200mA,WiFi传输数据时,尖峰电流可能达到 600mA
  3. CPU:500MHz双核,双线程 32bit Atom处理器,100MHz Quark 处理器
  4. 内存:1GB LPDDR3 POP memory
  5. Flash 存储:4GB
  6. IO:40 个 GPIO
  7. WIFI/蓝牙:Broadcom BCM43340 a/b/g/n + bluetooth4.0
  8. USB:2.0 OTG * 1
  9. 输入电压:3.15V - 4.5V
  10. DC 接口输入电压: 7V - 15V 直流、内正外负
  11. 时钟:19.2MHz,32KHz

产品清单

  1. RB-01C015A Arduino XBee Sensor Shield * 1 个
  2. RB-02S005A LED发光模块(红色) * 1 个
  3. RB-02S032A 按压式大按钮模块 * 1 个
  4. RB-02S031A 蜂鸣器发声模块 * 1 个
  5. RB-02S024A 旋转角度电位计传感器 * 1 个
  6. RB-02S084A 模拟声音传感器 * 1 个
  7. RB-02S025A 大功率继电器模块 * 1 个
  8. RB-02S019A LM35线性温度传感器 * 1 个
  9. RB-02S022A 火焰传感器 * 1 个
  10. RB-02S081A 触摸传感器 * 1 个
  11. RB-02S047A 土壤湿度传感器 * 1 个
  12. RB-02S091 高精度光线传感器 * 1 个
  13. RB-02S017A 红外热释电传感器 * 1 个
  14. RB-02S087 振动马达模块 * 1 个
  15. RB-04M042 RB - 15PG 舵机 * 1 个
  16. RB - 06L040 Micro USB 数据线 * 2 个
  17. RB - 10P032 12 V 1A适配器
  18. RB - 09M247 Intel Edison开发板双色亚克力外壳
  19. RB - 12C229 单头放插反 3P 连接线 * 10 条
  20. RB - 13K031 超大双层元件盒 * 1 个

使用软件下载

  • Arduino .cc 当前最新版 IDE:Arduino 1.6.8

下载地址: http://www.arduino.cc/en/Main/Software

  • Putty 远程登录软件

下载地址: http://www.putty.ws/

  • FTP工具——FileZilla Client

下载地址: https://filezilla-project.org/

  • 文本编译工具——notepad++

驱动下载安装

下载地址: https://notepad-plus-plus.org/download/v6.8.6.html
进入官网,点击如下所示位置,可以进入Intel Edison使用的所有文件下载界面,注意根据您电脑的系统选择相应的版本进行下载。

13K16402.png

Arduino 基本语言

从眨眼的LED开始

  • 【功能】

程序要实现的功能是外接的LED小灯点以一定的频率闪烁。这个程序是学习Arduino IDE的第一步。千里之行,始于足下,让我们开始吧!

  • 【硬件】

LED是发光二极管的英文缩写。它可以发出不同波长的电磁波,我们的产品发出的红色的可见光。

13K024A02.png

硬件连接还是比较容易的,首先把扩展板卡合到主控板的上方,注意此连接方法是唯一的,如果位置卡合错误可能会造成主板损坏!

13K16403.png

要实现LED闪烁的效果,我们只需要LED电子模块即可,我们看到电子模块上带有标记D,说明是数字的(digital)传感器,因此使用3P线将其连接到扩展板。注意通常不使用D0、D1和D13。因为D0和D1在程序上传时不能被占用,D13内置了1KΩ的电阻,默认连接了板载的L小灯,常用作测试。本案例中把LED连接到D7。

13K16404.png

注意3P线的线序要和扩展板一一对应。为黑色对应G(接地,GND),中间的红色对应V(5V电源,可用跳线帽切换为3.3V),黄色对应信号线,可能是A或D,主要取决于电子模块的符号是A还是D。

  • 【软件】

打开Arduino IDE,编写并上传如下程序:

/***********************************************************
哈尔滨奥松机器人科技股份有限公司  RobotBase  www.robotbase.cn
目    的:  LED闪烁	
应用硬件:  Intel Edison控制器
应用软件:  Arduino IDE 1.6.8
发布时间:  2016-03-23
创 建 人:  Neil
版 本 号:  1.0 
说    明:  若用于商业用途,请保留此段文字或注明代码来源	
           哈尔滨奥松机器人科技有限股份公司保留所有版权   
***********************************************************/
void setup() {
  pinMode(5, OUTPUT);  // 设置D5为输出模式,因为LED是输出装置
}
void loop() {
  digitalWrite(5, LOW);  // 设置D5为低电平,LED熄灭
  delay(1000);  // 延时等待1000毫秒,即1秒钟
  digitalWrite(5, HIGH);  // 设置D5为高电平,点亮LED
  delay(1000);
}
  • Python 程序

打开文本编译工具——notepad++,编辑下列程序

'''
哈尔滨奥松机器人科技股份有限公司  RobotBase  www.robotbase.cn
目    的:  LED闪烁	
应用硬件:  Intel Edison控制器
应用软件:  Python 2.7.3
发布时间:  2016-03-23
创 建 人:  Neil
版 本 号:  1.0 
说    明:  若用于商业用途,请保留此段文字或注明代码来源	
           哈尔滨奥松机器人科技有限股份公司保留所有版权   
'''
import mraa     # 声明使用的库文件
import time     
LED_GPIO = 5  #定义LED连接引脚                  
blinkLed = mraa.Gpio(LED_GPIO)  #设置LED引脚名称
blinkLed.dir(mraa.DIR_OUT)  #设置引脚模式为输出
ledState = False #设置变量初始值
blinkLed.write(0) #设置LED初始状态
# 循环执行下面的语句
while True:
    if ledState == False:
        blinkLed.write(1)
        ledState = True        
    else:
        blinkLed.write(0)
        ledState = False
    print "LED is on? \nAns: %s" %(ledState) # 打印LED状态
    time.sleep(1) #延时1s

精选例程

火焰报警器

  • 【功能】

程序要实现的功能是使用Intel Edison连接火焰传感器、蜂鸣器模块、LED发光模块,通过火焰传感器的检测,在有火焰时,会有报警声同时伴随报警灯。

  • 【硬件】

火焰传感器的专业称呼应为光电二极管。光电二极管利用杂质半导体的性质制成PN节,从而对特定波长的电磁波敏感。光电二极管工作在反向电压下,在正向电压下也能导电,但是效果非常差。

13K024A06.png

我们在“人体红外报警器”便知道具有温度的物体可以发射红外线。火焰温度更高,当然也会发出红外线,但是和人体发出红外线的波长不同。火焰发出红外线的波长在大自然中并不常见,但是它依然会受到人体、阳光等因素的影响。该电子积木和红外热释电传感器类似,我们也可以用纸绕成圈后套在传感器上以减少干扰。
将蜂鸣器模块连接到Xbee Sensor Shield数字8引脚(D8),LED发光模块连接到Xbee Sensor Shield数字5引脚(D5),火焰传感器模块连接到Xbee Sensor Shield模拟0引脚(A0)。

13K16405.png
  • 【软件】

打开Arduino IDE,编写并上传如下程序:

/***********************************************************
哈尔滨奥松机器人科技股份有限公司  RobotBase  www.robotbase.cn
目    的:  火焰报警器
应用硬件:  Intel Edison控制器
应用软件:  Arduino IDE 1.6.8
发布时间:  2016-03-23
创 建 人:  Neil
版 本 号:  1.0 
说    明:  若用于商业用途,请保留此段文字或注明代码来源 
           哈尔滨奥松机器人科技有限股份公司保留所有版权   
***********************************************************/
#define flame A0 //定义火焰传感器引脚
#define buzzer 8 //定义蜂鸣器引脚
#define LED 5 //定义LED发光模块引脚
void setup()
{
//初始化引脚输入输出模式
  pinMode(buzzer,OUTPUT);
  pinMode(LED,OUTPUT);
  Serial.begin(9600);
  }
  void loop()
  {
//循环读取火焰传感器的值,并通过串口打印
    int x = analogRead(0);
    Serial.println(x);
    delay(100);
    if(x>300) 
    {
//如果火焰传感器的值大于300,则蜂鸣器报警同时LED点亮
      digitalWrite(buzzer,LOW);
      digitalWrite(LED,HIGH);
      }
      else
      {
//否则,蜂鸣器不报警,LED熄灭
      digitalWrite(buzzer,HIGH);
      digitalWrite(LED,LOW);        
        }
    }
  • Python 程序
'''
哈尔滨奥松机器人科技股份有限公司  RobotBase  www.robotbase.cn
目    的:  火焰报警器
应用硬件:  Intel Edison控制器
应用软件:  Python 2.7.3
发布时间:  2016-03-23
创 建 人:  Neil
版 本 号:  1.0 
说    明:  若用于商业用途,请保留此段文字或注明代码来源 
           哈尔滨奥松机器人科技有限股份公司保留所有版权   
'''
import mraa #库文件调用
import time
import sys

y = mraa.Gpio(5) #定义LED引脚
z = mraa.Gpio(8) #定义蜂鸣器引脚
z.dir(mraa.DIR_OUT) #定义引脚输出模式
y.dir(mraa.DIR_OUT)
MAX_HuoYan = 1024
print (mraa.getVersion())
while 1:
	x = mraa.Aio(0) #读取火焰传感器的值
	time.sleep(1)
	if x.read()> 300:
		z.write(0)
		y.write(1)
	else:
		z.write(1)
		y.write(0)
	print (x.read())
	print ("%.5f" % x.read()) 

Edison 网页控制 LED

  • 【功能】

通过网页按键控制LED灯的亮灭。(使用Arduino进行控制)

  • 【硬件】

将LED发光模块连接到 Xbee Sensor Shield扩展板数字9(D9)接口。

13K16406.png
  • 【软件】

打开Arduino IDE,编写并上传如下程序:

/***********************************************************
哈尔滨奥松机器人科技股份有限公司  RobotBase  www.robotbase.cn
目    的:  通过网页控制LED 
应用硬件:  Intel Edison控制器
应用软件:  Arduino IDE 1.6.8
发布时间:  2016-03-23
创 建 人:  Neil
版 本 号:  1.0 
说    明:  若用于商业用途,请保留此段文字或注明代码来源 
           哈尔滨奥松机器人科技有限股份公司保留所有版权   
***********************************************************/
#include <SPI.h> //包含头文件
#include <WiFi.h>
char ssid[] = "123";//要连接的WiFi名称     
char pass[] = "12345678";//WiFi密码   
int keyIndex = 0;                
int status = WL_IDLE_STATUS;//定义一个变量,用来保存网络连接状态,初始化为未连接
WiFiServer server(8080);//定义一个服务器的对象,端口号8080
void setup() {
  Serial.begin(9600);      
  pinMode(9, OUTPUT);
  //尝试连接WiFi网络,如果未连接成功,则不断尝试      
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present"); 
    while(true);        
  } 

  String fv = WiFi.firmwareVersion();
  if( fv != "1.1.0" )
    Serial.println("Please upgrade the firmware");
  while ( status != WL_CONNECTED) { 
    //显示一些提示信息
    Serial.print("Attempting to connect to Network named: ");
    Serial.println(ssid);//获取网络名称                 
    status = WiFi.begin(ssid, pass);
    delay(10000);//等待10s,尝试下一次连接
  } 
  server.begin();//启动服务,监听8080端口                          
  printWifiStatus();  
}                    
void loop() {
  WiFiClient client = server.available();//监听8080端口是否有客户端发送请求  

  if (client) {
    //如果监听到客户端的请求
    //通过串行显示说有新的客户端                            
    Serial.println("new client");
    //定义一个字符串来保存这些请求信息           
    String currentLine = "";               
    while (client.connected()) {           
      if (client.available()) { 
        //读取信息并将信息通过串行通信显示在串口监视器中           
        char c = client.read();             
        Serial.write(c);                   
        if (c == '\n') {                 
          if (currentLine.length() == 0) {  
            //如果当前字符串长度为0,又收到了换行则说明请求发送完成
            //发送网页信息
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println();
            client.println("<title> Intel Edison </title>");
            client.println("RobotBase");
            client.print("Click <a href=\"/H\">here</a> turn the LED on pin 9 on<br>");
            client.print("Click <a href=\"/L\">here</a> turn the LED on pin 9 off<br>");
            client.print("<img src = \"http://www.alsrobot.cn/images/upload/image/20150525/20150525132053_29091.jpg\" />");
            client.println();
            break; //发送完成后,跳出循环        
          } 
          else {   
            currentLine = "";
          }
        }     
        else if (c != '\r') { 
          //接收信息中过滤回车符  
          currentLine += c; //将接收的字符添加到字符串currentLine中      
        }
        if (currentLine.endsWith("GET /H")) {
          digitalWrite(9, HIGH);             
        }
        if (currentLine.endsWith("GET /L")) {
          digitalWrite(9, LOW);               
        }
      }
    }
    client.stop();
    Serial.println("client disonnected");
  }
}

void printWifiStatus() {
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
  Serial.print("To see this page in action, open a browser to http://");
  Serial.println(ip);
}

产品相关推荐

Erweima.png

产品购买地址

[ 基于Intel Edison智能硬件开发套件]

周边产品推荐

SparkFun原装进口 Block for Intel Edison 9轴姿态传感器 扩展板
Intel® Edison Console USB-TTL扩展板 开发板 Sparkfun原装进口
Sparkfun原装 英特尔 Sparkfun Block for Intel Edison 液晶扩展
SparkFun原装进口 Interface Pack for Intel® Edison 扩展板
SparkFun原装进口 Block for Intel® Edison 扩展板 Arduino扩展

相关问题解答

相关学习资料

Intel Edison 官方教程