2015/03/16

LinkIt ONE:開箱簡介

承蒙CAVEDU借我LinkIt ONE,在此寫寫開箱文並簡單介紹。

LinkIt ONE是聯發科(MediaTek)Seeed Studio合作開發的產品,主要是針對物聯網和穿戴式裝置而設計的平台,除了基本的硬體開發板與軟體API介面,還提供雲端服務(MediaTek Cloud Sandbox)

MediaTek官網的LinkIt ONE平台組織圖,包含系統晶片,接著是開發板,對外提供的API介面,最後是Arduino軟體開發環境。

更詳細的架構圖,主晶片是MT2502(代號Aster),另搭配晶片MT3332(GPS和GNSS)與MT5931(Wi-Fi),然後是即時作業系統核心,加上一堆驅動程式、中介軟體層、溝通協定堆疊後,提供給上層使用。圖中的Run-time Environment是執行環境,經由Arduino Porting Layer(Arduino移植層),可執行使用LinkIt ONE API的Arduino草稿碼(Sketch)。
開箱拍拍照片吧,外盒清楚寫著LinkIt ONE、MediaTek、Seeed等字樣。
然後一張快速入門手冊,沒啥用。
還有一張腳位圖,一目了然,非常實用。可到官網下載此圖的PDF檔(LinkIt ONE development board pin-out diagram)
板子正面照,除了類似於Arduino UNO的腳位排列之外,1是耳機孔,2是Micro USB埠,3是裝置模式(儲存媒體與一般),4是電力來源(USB或鋰電池),5是鋰電池(3.7~4.2V)插槽,6是SPI腳位功能選擇(SPI與SD卡只能擇一),7是重置鈕,8與9是Grove插槽,10是ICSP。
板子背面照,11是Micro SD卡與SIM卡插槽,12是GSM天線,13是WiFi與藍牙天線,14是GPS天線。
不僅有板子而已,還有鋰電池,嘿,真不錯。
左邊是WiFi與藍牙天線,右邊是GSM/GPRS天線。
GPS的正背面照。
長寬約8.382 x 5.334公分(3.3 x 2.1英吋),比Arduino UNO板稍微長一點。
由MediaTek提供硬體參考設計,然後由Seeed開發製造LinkIt ONE這塊開發板,並且試圖結合已有的Arduino資源,其腳位排列相容於Arduino UNO,但腳位功能並非完全相同。是否真的把擴充板插上去、使用原有的程式碼就可以動,那就是另一回事了。定價是$79美金,以其硬體規格來說,算是相當超值的價格。

底下簡述硬體細節,詳細規則請看官方網站

主晶片處理器核心是ARM7 EJ-S,時脈260MHz,功能GSM、GPRS、藍牙2.1(SPP)與4.0(GATT)、SD記憶卡、MP3/AAC音訊,以及其他介面I2C、SPI、UART、GPIO等等。

副晶片功能有GNSS(GPS/GLONASS/BEIDOU)與Wi-Fi。

記憶體,RAM有4MB,其中程式的記憶體用量不可超過2MB,包括Code+RO+RW+ZI+Heap。Flash有16MB,其中系統已規劃用去6MB,其餘10MB可供使用者儲存資料,這一點我不太確定。另可外插SD記憶卡,容量最大支援32GB。

數位腳位16個,編號D0~D13、SDA、SCL,電壓3.3V,其中D3與D9可輸出PWM,解析度13bits,D2與D3可接受外部中斷。相較之下,Arduino UNO有6個PWM腳位,解析度8bits。

每個腳位的電流能力是0.3~3mA,呃,非常小,所以必須使用電晶體/緩衝電路/驅動器,才可連接其他電子元件。相較之下,Arduino UNO可驅動40mA。

類比輸入腳位3個,編號A0、A1、A2,不能作為數位腳位,參考電壓固定為5V。相較之下,Arduino UNO有6個,且能作為數位腳位,參考電壓可調整。

一組I2C,腳位SDA與SCL,只能作為Master;一組SPI,腳位D11(MOSI)、D12(MISO)、D13(SCK),只能作為Master;兩組UART序列埠,一組是實體的腳位D0(RX)與D1(TX),在程式裡是Serial1,另一組則是連接電腦的Micro USB模擬而成的序列埠,作為燒錄程式與序列溝通使用,在程式裡是Serial。

LinkIt ONE內建有Micro SD卡插槽,但SD與SPI兩個功能同時只能擇一使用,使用SD時,腳位D11、D12、D13就不能用。

軟體方面也以原有的Arduino開發環境為基礎,加上LinkIt ONE的東西,包括板子的組態設定、驅動程式、程式庫、燒錄與韌體更新工具,API的設計也盡量相似於Arduino。軟體開發環境目前支援Windows XP/Vista/7/8,至於支援Mac OS X與Linux則尚在計畫中。


參考資料:

25 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. 我也和CAVEDU進了一片LinkIt ONE,將藍芽天線接上板子後,我的Asus變型金鋼识別不到它
    当然,我也測了CAVEDU出的《LinkIt ONE 物聯網實作入門》的3-3節和App Inventor 2的連結app,仍舊認不到它
    請問您有解嗎?

    Ted Lee
    https://sites.google.com/site/lct4246/

    ReplyDelete
    Replies
    1. 光這些描述,無法判斷。

      Delete
  3. 感謝,我反覆測試後歸納出較容易配对的方法了:

    使用App Inventor 2透过藍芽控制LinkIt ONE on-board的LED on/off(pin 13)
    http://lct4246.blogspot.tw/2015/11/app-inventor-2linkit-one-on-boardled.html

    ReplyDelete
  4. 不好意思,想請問LinkIt ONE最多可以控制幾個繼電器呢?
    是5個嗎?
    另外Arduino是6個嗎?
    謝謝回答。

    ReplyDelete
    Replies
    1. 嗯,應該沒有限制吧。每個腳位都能控制。
      不過linkit one腳位輸出電流的能力有限,所以加上電晶體放大電流,應會比較好。

      Delete
  5. 您好

    假設我有兩塊linkit的板子,要用藍芽將第一塊板子獨到的值,傳給第二塊板子,要怎麼寫呢??

    ReplyDelete
    Replies
    1. 嗯,一個當central device,使用LGATTClient;
      另一個當peripheral device,使用LGATTServer。
      兩者連接、傳送資料。

      詳情請看http://labs.mediatek.com/site/global/developer_tools/mediatek_linkit/api_references/Lib_Bluetooth.gsp

      Delete
  6. Hi樓主您好,請問原先已經可以在Linkit ONE上執行的程式,有辦法移植島Arduino mega上執行嗎?硬體架構的差異會不會影響呢?

    ReplyDelete
  7. 嗯,如果沒使用Linkit ONE才有的硬體的話,應該是沒問題。

    ReplyDelete
  8. 您好,想請教是否有比較過Linkit One與Arduino的穩定度呢?
    或是seeedstudio有提供類似Arduino官方提供的溫濕度DHT library?
    因為這陣子分別使用了約3~4個在seeedstudio官方論壇找到的library來測試 DHT 11,卻發現數值會出現大幅度跳動(ex.每秒偵測一次,卻直接從23度變成19度,約3~5秒後又恢復為23度)
    但是一樣的接線方式使用於Arduino UNO卻沒有這種情形
    不知道您是否也有遭遇過類似問題?

    ReplyDelete
    Replies
    1. > seeedstudio有提供類似Arduino官方提供的溫濕度DHT library?
      據我所知,沒有。應該都是從別人的程式庫修改而成。
      請直接向seeed studio詢問。

      由於LinkIt ONE有一層RTOS,Arduino的程式會被driver中斷,所以要在Arduino 程式裡面做到us等級的delay,是不準的。

      DHT11送出包含溫濕度的訊號給Arduino時,在那一小段時間內,Arduino UNO能夠全心全意接收,所以沒問題。
      但LinkIt ONE會被中斷、跑去做別的事情,於是出錯,拿到錯誤的溫濕度數值。

      Delete
    2. 剛剛到網路上搜尋,好像有人解決了。
      https://labs.mediatek.com/forums/posts/list/3389.page

      不過我沒試過。

      Delete
    3. 感謝您的解答,我再來想想看該如何解套嚕!
      所以看來用Linkit One不管是搭配哪種senser,都有可能會遭遇類似情形哩...T.T
      另,我目前就是使用該library...XD

      Delete
    4. 要看該sensor的種類。

      改用 Smart 7688 ?

      Delete
    5. 了解!
      因為需要用GPRS網路模組作為資料傳輸,所以才選擇One.

      另外請教您是否使用過Arduino+GPRS模組做資料傳輸呢?
      之前使用itead的gprs模組成功撥打電話,但是傳送資料卻失敗...T.T

      Delete
    6. 有。傳過簡單、極少量的資料。

      再試試吧。

      Delete
    7. 也用過GPRS到網路上抓網頁,但很慢。

      Delete
  9. 請問一下 gps wifi gprs連結板子的接頭是哪一種??

    ReplyDelete
    Replies
    1. 圖中那一種,orz。

      Delete
  10. 如何使D9的13bit調成4bit

    ReplyDelete
    Replies
    1. 不用調吧,
      在程式裡轉,就行了。

      Delete
  11. 請問wifi跟藍牙功能可以同時使用嗎?

    ReplyDelete
  12. 請問wifi跟藍牙功能可以同時使用嗎?

    ReplyDelete