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
  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
  10. 如何使D9的13bit調成4bit

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

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

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

    ReplyDelete