“(RB-13K164)基于Intel Edison智能硬件開發(fā)套件”的版本間的差異
(→?編譯環(huán)境下載) |
(→?產(chǎn)品相關推薦) |
||
(未顯示1個用戶的3個中間版本) | |||
第48行: | 第48行: | ||
下載地址: https://filezilla-project.org/<br/> | 下載地址: https://filezilla-project.org/<br/> | ||
* 文本編譯工具——notepad++<br/> | * 文本編譯工具——notepad++<br/> | ||
+ | |||
+ | ==驅動下載安裝== | ||
下載地址: https://notepad-plus-plus.org/download/v6.8.6.html<br/> | 下載地址: https://notepad-plus-plus.org/download/v6.8.6.html<br/> | ||
+ | 進入官網(wǎng),點擊如下所示位置,可以進入Intel Edison使用的所有文件下載界面,注意根據(jù)您電腦的系統(tǒng)選擇相應的版本進行下載。 | ||
+ | [[文件:13K16402.png|500px|有框|居中]] | ||
==Arduino 基本語言== | ==Arduino 基本語言== | ||
第54行: | 第58行: | ||
* [http://gharee.com/wiki/index.php/Arduino%E7%BC%96%E7%A8%8B%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C Arduino 編程參考手冊] | * [http://gharee.com/wiki/index.php/Arduino%E7%BC%96%E7%A8%8B%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C Arduino 編程參考手冊] | ||
? | == | + | ==從眨眼的LED開始== |
? | + | ||
? | + | ||
? | + | ||
? | + | ||
? | + | ||
* 【功能】 | * 【功能】 | ||
? | + | 程序要實現(xiàn)的功能是外接的LED小燈點以一定的頻率閃爍。這個程序是學習Arduino IDE的第一步。千里之行,始于足下,讓我們開始吧!<br/> | |
* 【硬件】 | * 【硬件】 | ||
LED是發(fā)光二極管的英文縮寫。它可以發(fā)出不同波長的電磁波,我們的產(chǎn)品發(fā)出的紅色的可見光。<br/> | LED是發(fā)光二極管的英文縮寫。它可以發(fā)出不同波長的電磁波,我們的產(chǎn)品發(fā)出的紅色的可見光。<br/> | ||
[[文件:13K024A02.png|500px|有框|居中]] | [[文件:13K024A02.png|500px|有框|居中]] | ||
硬件連接還是比較容易的,首先把擴展板卡合到主控板的上方,注意此連接方法是唯一的,如果位置卡合錯誤可能會造成主板損壞!<br/> | 硬件連接還是比較容易的,首先把擴展板卡合到主控板的上方,注意此連接方法是唯一的,如果位置卡合錯誤可能會造成主板損壞!<br/> | ||
? | [[文件: | + | [[文件:13K16403.png|500px|有框|居中]] |
要實現(xiàn)LED閃爍的效果,我們只需要LED電子模塊即可,我們看到電子模塊上帶有標記D,說明是數(shù)字的(digital)傳感器,因此使用3P線將其連接到擴展板。注意通常不使用D0、D1和D13。因為D0和D1在程序上傳時不能被占用,D13內置了1KΩ的電阻,默認連接了板載的L小燈,常用作測試。本案例中把LED連接到D7。<br/> | 要實現(xiàn)LED閃爍的效果,我們只需要LED電子模塊即可,我們看到電子模塊上帶有標記D,說明是數(shù)字的(digital)傳感器,因此使用3P線將其連接到擴展板。注意通常不使用D0、D1和D13。因為D0和D1在程序上傳時不能被占用,D13內置了1KΩ的電阻,默認連接了板載的L小燈,常用作測試。本案例中把LED連接到D7。<br/> | ||
? | [[文件: | + | [[文件:13K16404.png|500px|有框|居中]] |
注意3P線的線序要和擴展板一一對應。為黑色對應G(接地,GND),中間的紅色對應V(5V電源,可用跳線帽切換為3.3V),黃色對應信號線,可能是A或D,主要取決于電子模塊的符號是A還是D。<br/> | 注意3P線的線序要和擴展板一一對應。為黑色對應G(接地,GND),中間的紅色對應V(5V電源,可用跳線帽切換為3.3V),黃色對應信號線,可能是A或D,主要取決于電子模塊的符號是A還是D。<br/> | ||
* 【軟件】<br/> | * 【軟件】<br/> | ||
第74行: | 第73行: | ||
<pre style='color:blue'> | <pre style='color:blue'> | ||
/*********************************************************** | /*********************************************************** | ||
? | + | 哈爾濱奧松機器人科技股份有限公司 RobotBase www.robotbase.cn | |
目 的: LED閃爍 | 目 的: LED閃爍 | ||
? | 應用硬件: | + | 應用硬件: Intel Edison控制器 |
? | 應用軟件: Arduino IDE 1. | + | 應用軟件: Arduino IDE 1.6.8 |
? | 發(fā)布時間: 2016- | + | 發(fā)布時間: 2016-03-23 |
? | 創(chuàng) 建 人: | + | 創(chuàng) 建 人: Neil |
版 本 號: 1.0 | 版 本 號: 1.0 | ||
說 明: 若用于商業(yè)用途,請保留此段文字或注明代碼來源 | 說 明: 若用于商業(yè)用途,請保留此段文字或注明代碼來源 | ||
第85行: | 第84行: | ||
***********************************************************/ | ***********************************************************/ | ||
void setup() { | void setup() { | ||
? | pinMode( | + | pinMode(5, OUTPUT); // 設置D5為輸出模式,因為LED是輸出裝置 |
} | } | ||
? | |||
void loop() { | void loop() { | ||
? | digitalWrite( | + | digitalWrite(5, LOW); // 設置D5為低電平,LED熄滅 |
delay(1000); // 延時等待1000毫秒,即1秒鐘 | delay(1000); // 延時等待1000毫秒,即1秒鐘 | ||
? | digitalWrite( | + | digitalWrite(5, HIGH); // 設置D5為高電平,點亮LED |
delay(1000); | delay(1000); | ||
} | } | ||
</pre> | </pre> | ||
? | * | + | * Python 程序 <br/> |
? | + | 打開文本編譯工具——notepad++,編輯下列程序 | |
? | + | <pre style='color:blue'> | |
+ | ''' | ||
+ | 哈爾濱奧松機器人科技股份有限公司 RobotBase www.robotbase.cn | ||
+ | 目 的: LED閃爍 | ||
+ | 應用硬件: Intel Edison控制器 | ||
+ | 應用軟件: Python 2.7.3 | ||
+ | 發(fā)布時間: 2016-03-23 | ||
+ | 創(chuàng) 建 人: Neil | ||
+ | 版 本 號: 1.0 | ||
+ | 說 明: 若用于商業(yè)用途,請保留此段文字或注明代碼來源 | ||
+ | 哈爾濱奧松機器人科技有限股份公司保留所有版權 | ||
+ | ''' | ||
+ | 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初始狀態(tài) | ||
+ | # 循環(huán)執(zhí)行下面的語句 | ||
+ | while True: | ||
+ | if ledState == False: | ||
+ | blinkLed.write(1) | ||
+ | ledState = True | ||
+ | else: | ||
+ | blinkLed.write(0) | ||
+ | ledState = False | ||
+ | print "LED is on? \nAns: %s" %(ledState) # 打印LED狀態(tài) | ||
+ | time.sleep(1) #延時1s | ||
+ | </pre> | ||
==精選例程== | ==精選例程== | ||
===火焰報警器=== | ===火焰報警器=== | ||
* 【功能】 | * 【功能】 | ||
? | + | 程序要實現(xiàn)的功能是使用Intel Edison連接火焰?zhèn)鞲衅?、蜂鳴器模塊、LED發(fā)光模塊,通過火焰?zhèn)鞲衅鞯臋z測,在有火焰時,會有報警聲同時伴隨報警燈。 | |
* 【硬件】 | * 【硬件】 | ||
火焰?zhèn)鞲衅鞯膶I(yè)稱呼應為光電二極管。光電二極管利用雜質半導體的性質制成PN節(jié),從而對特定波長的電磁波敏感。光電二極管工作在反向電壓下,在正向電壓下也能導電,但是效果非常差。 | 火焰?zhèn)鞲衅鞯膶I(yè)稱呼應為光電二極管。光電二極管利用雜質半導體的性質制成PN節(jié),從而對特定波長的電磁波敏感。光電二極管工作在反向電壓下,在正向電壓下也能導電,但是效果非常差。 | ||
[[文件:13K024A06.png|500px|有框|居中]] | [[文件:13K024A06.png|500px|有框|居中]] | ||
? | 我們在“人體紅外報警器”便知道具有溫度的物體可以發(fā)射紅外線?;鹧鏈囟雀撸斎灰矔l(fā)出紅外線,但是和人體發(fā)出紅外線的波長不同?;鹧姘l(fā)出紅外線的波長在大自然中并不常見,但是它依然會受到人體、陽光等因素的影響。該電子積木和紅外熱釋電傳感器類似,我們也可以用紙繞成圈后套在傳感器上以減少干擾。 | + | 我們在“人體紅外報警器”便知道具有溫度的物體可以發(fā)射紅外線。火焰溫度更高,當然也會發(fā)出紅外線,但是和人體發(fā)出紅外線的波長不同。火焰發(fā)出紅外線的波長在大自然中并不常見,但是它依然會受到人體、陽光等因素的影響。該電子積木和紅外熱釋電傳感器類似,我們也可以用紙繞成圈后套在傳感器上以減少干擾。<br/> |
? | + | 將蜂鳴器模塊連接到Xbee Sensor Shield數(shù)字8引腳(D8),LED發(fā)光模塊連接到Xbee Sensor Shield數(shù)字5引腳(D5),火焰?zhèn)鞲衅髂K連接到Xbee Sensor Shield模擬0引腳(A0)。 | |
? | [[文件: | + | [[文件:13K16405.png|500px|有框|居中]] |
* 【軟件】 | * 【軟件】 | ||
打開Arduino IDE,編寫并上傳如下程序: | 打開Arduino IDE,編寫并上傳如下程序: | ||
<pre style="color:blue"> | <pre style="color:blue"> | ||
/*********************************************************** | /*********************************************************** | ||
? | + | 哈爾濱奧松機器人科技股份有限公司 RobotBase www.robotbase.cn | |
? | 目 的: | + | 目 的: 火焰報警器 |
? | 應用硬件: | + | 應用硬件: Intel Edison控制器 |
? | 應用軟件: Arduino IDE 1. | + | 應用軟件: Arduino IDE 1.6.8 |
? | 發(fā)布時間: 2016- | + | 發(fā)布時間: 2016-03-23 |
? | 創(chuàng) 建 人: | + | 創(chuàng) 建 人: Neil |
版 本 號: 1.0 | 版 本 號: 1.0 | ||
? | 說 明: 若用于商業(yè)用途,請保留此段文字或注明代碼來源 | + | 說 明: 若用于商業(yè)用途,請保留此段文字或注明代碼來源 |
哈爾濱奧松機器人科技有限股份公司保留所有版權 | 哈爾濱奧松機器人科技有限股份公司保留所有版權 | ||
***********************************************************/ | ***********************************************************/ | ||
+ | #define flame A0 //定義火焰?zhèn)鞲衅饕_ | ||
+ | #define buzzer 8 //定義蜂鳴器引腳 | ||
+ | #define LED 5 //定義LED發(fā)光模塊引腳 | ||
void setup() | void setup() | ||
{ | { | ||
? | pinMode( | + | //初始化引腳輸入輸出模式 |
? | + | pinMode(buzzer,OUTPUT); | |
? | + | pinMode(LED,OUTPUT); | |
? | + | Serial.begin(9600); | |
? | + | ||
? | + | ||
? | + | ||
? | + | ||
? | + | ||
? | + | ||
? | + | ||
} | } | ||
? | } | + | void loop() |
+ | { | ||
+ | //循環(huán)讀取火焰?zhèn)鞲衅鞯闹?,并通過串口打印 | ||
+ | int x = analogRead(0); | ||
+ | Serial.println(x); | ||
+ | delay(100); | ||
+ | if(x>300) | ||
+ | { | ||
+ | //如果火焰?zhèn)鞲衅鞯闹荡笥?00,則蜂鳴器報警同時LED點亮 | ||
+ | digitalWrite(buzzer,LOW); | ||
+ | digitalWrite(LED,HIGH); | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | //否則,蜂鳴器不報警,LED熄滅 | ||
+ | digitalWrite(buzzer,HIGH); | ||
+ | digitalWrite(LED,LOW); | ||
+ | } | ||
+ | } | ||
</pre> | </pre> | ||
? | * | + | * Python 程序 |
? | + | <pre style="color:blue"> | |
+ | ''' | ||
+ | 哈爾濱奧松機器人科技股份有限公司 RobotBase www.robotbase.cn | ||
+ | 目 的: 火焰報警器 | ||
+ | 應用硬件: Intel Edison控制器 | ||
+ | 應用軟件: Python 2.7.3 | ||
+ | 發(fā)布時間: 2016-03-23 | ||
+ | 創(chuàng) 建 人: Neil | ||
+ | 版 本 號: 1.0 | ||
+ | 說 明: 若用于商業(yè)用途,請保留此段文字或注明代碼來源 | ||
+ | 哈爾濱奧松機器人科技有限股份公司保留所有版權 | ||
+ | ''' | ||
+ | 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) #讀取火焰?zhèn)鞲衅鞯闹?/ins> | ||
+ | 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()) | ||
+ | </pre> | ||
+ | ===Edison 網(wǎng)頁控制 LED=== | ||
* 【功能】 | * 【功能】 | ||
? | + | 通過網(wǎng)頁按鍵控制LED燈的亮滅。(使用Arduino進行控制) | |
* 【硬件】 | * 【硬件】 | ||
? | + | 將LED發(fā)光模塊連接到 Xbee Sensor Shield擴展板數(shù)字9(D9)接口。 | |
? | [[文件: | + | [[文件:13K16406.png|500px|有框|居中]] |
? | + | ||
? | + | ||
? | + | ||
? | + | ||
* 【軟件】 | * 【軟件】 | ||
打開Arduino IDE,編寫并上傳如下程序: | 打開Arduino IDE,編寫并上傳如下程序: | ||
<pre style="color:blue"> | <pre style="color:blue"> | ||
/*********************************************************** | /*********************************************************** | ||
? | + | 哈爾濱奧松機器人科技股份有限公司 RobotBase www.robotbase.cn | |
? | 目 的: | + | 目 的: 通過網(wǎng)頁控制LED |
? | 應用硬件: | + | 應用硬件: Intel Edison控制器 |
? | 應用軟件: Arduino IDE 1. | + | 應用軟件: Arduino IDE 1.6.8 |
? | 發(fā)布時間: 2016- | + | 發(fā)布時間: 2016-03-23 |
? | 創(chuàng) 建 人: | + | 創(chuàng) 建 人: Neil |
版 本 號: 1.0 | 版 本 號: 1.0 | ||
? | 說 明: 若用于商業(yè)用途,請保留此段文字或注明代碼來源 | + | 說 明: 若用于商業(yè)用途,請保留此段文字或注明代碼來源 |
哈爾濱奧松機器人科技有限股份公司保留所有版權 | 哈爾濱奧松機器人科技有限股份公司保留所有版權 | ||
***********************************************************/ | ***********************************************************/ | ||
? | void setup() | + | #include <SPI.h> //包含頭文件 |
? | { | + | #include <WiFi.h> |
? | Serial.begin(9600); | + | char ssid[] = "123";//要連接的WiFi名稱 |
+ | char pass[] = "12345678";//WiFi密碼 | ||
+ | int keyIndex = 0; | ||
+ | int status = WL_IDLE_STATUS;//定義一個變量,用來保存網(wǎng)絡連接狀態(tài),初始化為未連接 | ||
+ | WiFiServer server(8080);//定義一個服務器的對象,端口號8080 | ||
+ | void setup() { | ||
+ | Serial.begin(9600); | ||
+ | pinMode(9, OUTPUT); | ||
+ | //嘗試連接WiFi網(wǎng)絡,如果未連接成功,則不斷嘗試 | ||
+ | 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);//獲取網(wǎng)絡名稱 | ||
+ | status = WiFi.begin(ssid, pass); | ||
+ | delay(10000);//等待10s,嘗試下一次連接 | ||
+ | } | ||
+ | server.begin();//啟動服務,監(jiān)聽8080端口 | ||
+ | printWifiStatus(); | ||
+ | } | ||
+ | void loop() { | ||
+ | WiFiClient client = server.available();//監(jiān)聽8080端口是否有客戶端發(fā)送請求 | ||
+ | |||
+ | if (client) { | ||
+ | //如果監(jiān)聽到客戶端的請求 | ||
+ | //通過串行顯示說有新的客戶端 | ||
+ | Serial.println("new client"); | ||
+ | //定義一個字符串來保存這些請求信息 | ||
+ | String currentLine = ""; | ||
+ | while (client.connected()) { | ||
+ | if (client.available()) { | ||
+ | //讀取信息并將信息通過串行通信顯示在串口監(jiān)視器中 | ||
+ | char c = client.read(); | ||
+ | Serial.write(c); | ||
+ | if (c == '\n') { | ||
+ | if (currentLine.length() == 0) { | ||
+ | //如果當前字符串長度為0,又收到了換行則說明請求發(fā)送完成 | ||
+ | //發(fā)送網(wǎng)頁信息 | ||
+ | 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://gharee.com/images/upload/image/20150525/20150525132053_29091.jpg\" />"); | ||
+ | client.println(); | ||
+ | break; //發(fā)送完成后,跳出循環(huán) | ||
+ | } | ||
+ | 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 | + | void printWifiStatus() { |
? | { | + | Serial.print("SSID: "); |
? | Serial.print(" | + | Serial.println(WiFi.SSID()); |
? | Serial.println( | + | 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); | ||
} | } | ||
</pre> | </pre> | ||
? | |||
? | |||
==產(chǎn)品相關推薦== | ==產(chǎn)品相關推薦== | ||
[[文件:erweima.png|230px|無框|右]] | [[文件:erweima.png|230px|無框|右]] | ||
===產(chǎn)品購買地址=== | ===產(chǎn)品購買地址=== | ||
? | [ | + | [ 基于Intel Edison智能硬件開發(fā)套件]<br/> |
===周邊產(chǎn)品推薦=== | ===周邊產(chǎn)品推薦=== | ||
? | [http://gharee.com/goods- | + | [http://gharee.com/goods-660.html SparkFun原裝進口 Block for Intel Edison 9軸姿態(tài)傳感器 擴展板]<br/> |
? | [http://gharee.com/goods- | + | [http://gharee.com/goods-657.html Intel? Edison Console USB-TTL擴展板 開發(fā)板 Sparkfun原裝進口]<br/> |
+ | [http://gharee.com/goods-658.html Sparkfun原裝 英特爾 Sparkfun Block for Intel Edison 液晶擴展]<br/> | ||
+ | [http://gharee.com/goods-659.html SparkFun原裝進口 Interface Pack for Intel? Edison 擴展板]<br/> | ||
+ | [http://gharee.com/goods-661.html SparkFun原裝進口 Block for Intel? Edison 擴展板 Arduino擴展]<br/> | ||
===相關問題解答=== | ===相關問題解答=== | ||
? | + | ||
? | + | ||
===相關學習資料=== | ===相關學習資料=== | ||
? | [ | + | [https://software.intel.com/zh-cn/iot/hardware/edison Intel Edison 官方教程] |
? | + | ||
? | + | ||
? | + |
2016年5月3日 (二) 10:43的最后版本
目錄 |
產(chǎn)品概述
Intel Edison是一款專門針對小型智能設備設計的雙核芯片,采用x86架構處理內核,支持Linux并能運行復雜的高級應用程序,可以通過WiFi和藍牙對外溝通。Intel Edison不但可以滿足電子愛好者、創(chuàng)客、開發(fā)人員的需求,同時也非常適用于學校的計算機、嵌入式硬件的教學工作。同樣的硬件設備,針對初學者可以偏重于電子電路、Arduino編程,對于中級用戶可以偏重于Python、網(wǎng)絡應用,而對于高級用戶可以偏重于Linux操作系統(tǒng)。
盡管Intel Edison有著如此強大的功能,但它還是缺少一組傳感器來與你互動,奧松機器人從其所開發(fā)的上百種傳感器中精挑細選,為各位玩家收集了一些最實用也最易用的傳感器。套件中包含XBee Sensor Shield傳感器擴展板,擴展板不僅附帶Xbee接口、藍牙、APC220接口、SPI通信接口、外接電源口,而且3Pin的彩色排針保證接線正確,在XBee Sensor Shield傳感器擴展板上添加傳感器就如同搭積木一般簡單,套件中的傳感器也都是使用防插反接口,可以盡量幫您避免由于插接錯誤造成的產(chǎn)品損壞,在應用手冊中,奧松機器人為您提供了豐富的內容,從Intel Edison初識到上手,分別介紹了Intel Edison的硬件接口、軟件架構、如何開始使用你的Intel Edison開發(fā)板;編程語言方面,我們?yōu)槟v解了Arduino編程語言和python編程語言;例程方面,為您提供了12個精選例程,從基礎實驗的數(shù)字傳感器控制、舵機控制等到互動實驗的火焰報警器、防盜系統(tǒng)、不讓摸的傳感器等,還有擴展部分的實驗,讓您通過網(wǎng)頁訪問Intel Edison,實現(xiàn)智能家居的制作。通過這一系列的學習,您可以掌握Intel Edison的基本應用、Arduino編程語言、Python編程語言、智能家居的入門應用。您還在等什么?開始用Intel Edison智能硬件開發(fā)套件來實現(xiàn)您的idea吧!
Intel Edison 硬件參數(shù)
- 體積:35.5 * 25 * 3.9 mm
- 低功耗:一般情況下電流消耗不超過 200mA,WiFi傳輸數(shù)據(jù)時,尖峰電流可能達到 600mA
- CPU:500MHz雙核,雙線程 32bit Atom處理器,100MHz Quark 處理器
- 內存:1GB LPDDR3 POP memory
- Flash 存儲:4GB
- IO:40 個 GPIO
- WIFI/藍牙:Broadcom BCM43340 a/b/g/n + bluetooth4.0
- USB:2.0 OTG * 1
- 輸入電壓:3.15V - 4.5V
- DC 接口輸入電壓: 7V - 15V 直流、內正外負
- 時鐘:19.2MHz,32KHz
產(chǎn)品清單
- RB-01C015A Arduino XBee Sensor Shield * 1 個
- RB-02S005A LED發(fā)光模塊(紅色) * 1 個
- RB-02S032A 按壓式大按鈕模塊 * 1 個
- RB-02S031A 蜂鳴器發(fā)聲模塊 * 1 個
- RB-02S024A 旋轉角度電位計傳感器 * 1 個
- RB-02S084A 模擬聲音傳感器 * 1 個
- RB-02S025A 大功率繼電器模塊 * 1 個
- RB-02S019A LM35線性溫度傳感器 * 1 個
- RB-02S022A 火焰?zhèn)鞲衅?/a> * 1 個
- RB-02S081A 觸摸傳感器 * 1 個
- RB-02S047A 土壤濕度傳感器 * 1 個
- RB-02S091 高精度光線傳感器 * 1 個
- RB-02S017A 紅外熱釋電傳感器 * 1 個
- RB-02S087 振動馬達模塊 * 1 個
- RB-04M042 RB - 15PG 舵機 * 1 個
- RB - 06L040 Micro USB 數(shù)據(jù)線 * 2 個
- RB - 10P032 12 V 1A適配器
- RB - 09M247 Intel Edison開發(fā)板雙色亞克力外殼
- RB - 12C229 單頭放插反 3P 連接線 * 10 條
- 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
進入官網(wǎng),點擊如下所示位置,可以進入Intel Edison使用的所有文件下載界面,注意根據(jù)您電腦的系統(tǒng)選擇相應的版本進行下載。
Arduino 基本語言
從眨眼的LED開始
- 【功能】
程序要實現(xiàn)的功能是外接的LED小燈點以一定的頻率閃爍。這個程序是學習Arduino IDE的第一步。千里之行,始于足下,讓我們開始吧!
- 【硬件】
LED是發(fā)光二極管的英文縮寫。它可以發(fā)出不同波長的電磁波,我們的產(chǎn)品發(fā)出的紅色的可見光。
硬件連接還是比較容易的,首先把擴展板卡合到主控板的上方,注意此連接方法是唯一的,如果位置卡合錯誤可能會造成主板損壞!
要實現(xiàn)LED閃爍的效果,我們只需要LED電子模塊即可,我們看到電子模塊上帶有標記D,說明是數(shù)字的(digital)傳感器,因此使用3P線將其連接到擴展板。注意通常不使用D0、D1和D13。因為D0和D1在程序上傳時不能被占用,D13內置了1KΩ的電阻,默認連接了板載的L小燈,常用作測試。本案例中把LED連接到D7。
注意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 發(fā)布時間: 2016-03-23 創(chuàng) 建 人: Neil 版 本 號: 1.0 說 明: 若用于商業(yè)用途,請保留此段文字或注明代碼來源 哈爾濱奧松機器人科技有限股份公司保留所有版權 ***********************************************************/ 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 發(fā)布時間: 2016-03-23 創(chuàng) 建 人: Neil 版 本 號: 1.0 說 明: 若用于商業(yè)用途,請保留此段文字或注明代碼來源 哈爾濱奧松機器人科技有限股份公司保留所有版權 ''' 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初始狀態(tài) # 循環(huán)執(zhí)行下面的語句 while True: if ledState == False: blinkLed.write(1) ledState = True else: blinkLed.write(0) ledState = False print "LED is on? \nAns: %s" %(ledState) # 打印LED狀態(tài) time.sleep(1) #延時1s
精選例程
火焰報警器
- 【功能】
程序要實現(xiàn)的功能是使用Intel Edison連接火焰?zhèn)鞲衅?、蜂鳴器模塊、LED發(fā)光模塊,通過火焰?zhèn)鞲衅鞯臋z測,在有火焰時,會有報警聲同時伴隨報警燈。
- 【硬件】
火焰?zhèn)鞲衅鞯膶I(yè)稱呼應為光電二極管。光電二極管利用雜質半導體的性質制成PN節(jié),從而對特定波長的電磁波敏感。光電二極管工作在反向電壓下,在正向電壓下也能導電,但是效果非常差。
我們在“人體紅外報警器”便知道具有溫度的物體可以發(fā)射紅外線。火焰溫度更高,當然也會發(fā)出紅外線,但是和人體發(fā)出紅外線的波長不同。火焰發(fā)出紅外線的波長在大自然中并不常見,但是它依然會受到人體、陽光等因素的影響。該電子積木和紅外熱釋電傳感器類似,我們也可以用紙繞成圈后套在傳感器上以減少干擾。
將蜂鳴器模塊連接到Xbee Sensor Shield數(shù)字8引腳(D8),LED發(fā)光模塊連接到Xbee Sensor Shield數(shù)字5引腳(D5),火焰?zhèn)鞲衅髂K連接到Xbee Sensor Shield模擬0引腳(A0)。
- 【軟件】
打開Arduino IDE,編寫并上傳如下程序:
/*********************************************************** 哈爾濱奧松機器人科技股份有限公司 RobotBase www.robotbase.cn 目 的: 火焰報警器 應用硬件: Intel Edison控制器 應用軟件: Arduino IDE 1.6.8 發(fā)布時間: 2016-03-23 創(chuàng) 建 人: Neil 版 本 號: 1.0 說 明: 若用于商業(yè)用途,請保留此段文字或注明代碼來源 哈爾濱奧松機器人科技有限股份公司保留所有版權 ***********************************************************/ #define flame A0 //定義火焰?zhèn)鞲衅饕_ #define buzzer 8 //定義蜂鳴器引腳 #define LED 5 //定義LED發(fā)光模塊引腳 void setup() { //初始化引腳輸入輸出模式 pinMode(buzzer,OUTPUT); pinMode(LED,OUTPUT); Serial.begin(9600); } void loop() { //循環(huán)讀取火焰?zhèn)鞲衅鞯闹?,并通過串口打印 int x = analogRead(0); Serial.println(x); delay(100); if(x>300) { //如果火焰?zhèn)鞲衅鞯闹荡笥?00,則蜂鳴器報警同時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 發(fā)布時間: 2016-03-23 創(chuàng) 建 人: Neil 版 本 號: 1.0 說 明: 若用于商業(yè)用途,請保留此段文字或注明代碼來源 哈爾濱奧松機器人科技有限股份公司保留所有版權 ''' 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) #讀取火焰?zhèn)鞲衅鞯闹? 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 網(wǎng)頁控制 LED
- 【功能】
通過網(wǎng)頁按鍵控制LED燈的亮滅。(使用Arduino進行控制)
- 【硬件】
將LED發(fā)光模塊連接到 Xbee Sensor Shield擴展板數(shù)字9(D9)接口。
- 【軟件】
打開Arduino IDE,編寫并上傳如下程序:
/*********************************************************** 哈爾濱奧松機器人科技股份有限公司 RobotBase www.robotbase.cn 目 的: 通過網(wǎng)頁控制LED 應用硬件: Intel Edison控制器 應用軟件: Arduino IDE 1.6.8 發(fā)布時間: 2016-03-23 創(chuàng) 建 人: Neil 版 本 號: 1.0 說 明: 若用于商業(yè)用途,請保留此段文字或注明代碼來源 哈爾濱奧松機器人科技有限股份公司保留所有版權 ***********************************************************/ #include <SPI.h> //包含頭文件 #include <WiFi.h> char ssid[] = "123";//要連接的WiFi名稱 char pass[] = "12345678";//WiFi密碼 int keyIndex = 0; int status = WL_IDLE_STATUS;//定義一個變量,用來保存網(wǎng)絡連接狀態(tài),初始化為未連接 WiFiServer server(8080);//定義一個服務器的對象,端口號8080 void setup() { Serial.begin(9600); pinMode(9, OUTPUT); //嘗試連接WiFi網(wǎng)絡,如果未連接成功,則不斷嘗試 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);//獲取網(wǎng)絡名稱 status = WiFi.begin(ssid, pass); delay(10000);//等待10s,嘗試下一次連接 } server.begin();//啟動服務,監(jiān)聽8080端口 printWifiStatus(); } void loop() { WiFiClient client = server.available();//監(jiān)聽8080端口是否有客戶端發(fā)送請求 if (client) { //如果監(jiān)聽到客戶端的請求 //通過串行顯示說有新的客戶端 Serial.println("new client"); //定義一個字符串來保存這些請求信息 String currentLine = ""; while (client.connected()) { if (client.available()) { //讀取信息并將信息通過串行通信顯示在串口監(jiān)視器中 char c = client.read(); Serial.write(c); if (c == '\n') { if (currentLine.length() == 0) { //如果當前字符串長度為0,又收到了換行則說明請求發(fā)送完成 //發(fā)送網(wǎng)頁信息 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://gharee.com/images/upload/image/20150525/20150525132053_29091.jpg\" />"); client.println(); break; //發(fā)送完成后,跳出循環(huán) } 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); }
產(chǎn)品相關推薦
產(chǎn)品購買地址
[ 基于Intel Edison智能硬件開發(fā)套件]
周邊產(chǎn)品推薦
SparkFun原裝進口 Block for Intel Edison 9軸姿態(tài)傳感器 擴展板
Intel? Edison Console USB-TTL擴展板 開發(fā)板 Sparkfun原裝進口
Sparkfun原裝 英特爾 Sparkfun Block for Intel Edison 液晶擴展
SparkFun原裝進口 Interface Pack for Intel? Edison 擴展板
SparkFun原裝進口 Block for Intel? Edison 擴展板 Arduino擴展