承蒙CAVEDU借我LinkIt ONE,在此寫寫開箱文並簡單介紹。
LinkIt ONE是聯發科(MediaTek)和Seeed Studio合作開發的產品,主要是針對物聯網和穿戴式裝置而設計的平台,除了基本的硬體開發板與軟體API介面,還提供雲端服務(MediaTek Cloud Sandbox)。
MediaTek官網的LinkIt ONE平台組織圖,包含系統晶片,接著是開發板,對外提供的API介面,最後是Arduino軟體開發環境。
底下簡述硬體細節,詳細規則請看官方網站:
主晶片處理器核心是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則尚在計畫中。
參考資料:
- MediaTek Labs | Dev Tools & Resources | MediaTek Linkit | What is LinkIt,MediaTek的LinkIt官網。
- MediaTek Labs | Dev Tools & Resources | MediaTek Linkit | Documentation,官網文件區,有開發者手冊、板子的參考設計、腳位圖、各晶片的資料表。
- LinkIt ONE - Wiki,Seeed的維基百科。
- Linkit One | CAVEDU教育團隊技術部落格,CAVEDU寫的LinkIt相關文章。
- 2014通訊大賽-Mediatek 穿戴式暨物聯網裝置競賽,看看別人的創意與得獎作品。
- 資工人日常: 聯發科LinkIt平台研討會,分享文。
- 隨手小記: Linkit one 電路解說,詳細解說晶片與電路,包括電壓準位和充電,值得一看。
This comment has been removed by the author.
ReplyDelete我也和CAVEDU進了一片LinkIt ONE,將藍芽天線接上板子後,我的Asus變型金鋼识別不到它
ReplyDelete当然,我也測了CAVEDU出的《LinkIt ONE 物聯網實作入門》的3-3節和App Inventor 2的連結app,仍舊認不到它
請問您有解嗎?
Ted Lee
https://sites.google.com/site/lct4246/
光這些描述,無法判斷。
Delete感謝,我反覆測試後歸納出較容易配对的方法了:
ReplyDelete使用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
不好意思,想請問LinkIt ONE最多可以控制幾個繼電器呢?
ReplyDelete是5個嗎?
另外Arduino是6個嗎?
謝謝回答。
嗯,應該沒有限制吧。每個腳位都能控制。
Delete不過linkit one腳位輸出電流的能力有限,所以加上電晶體放大電流,應會比較好。
您好
ReplyDelete假設我有兩塊linkit的板子,要用藍芽將第一塊板子獨到的值,傳給第二塊板子,要怎麼寫呢??
嗯,一個當central device,使用LGATTClient;
Delete另一個當peripheral device,使用LGATTServer。
兩者連接、傳送資料。
詳情請看http://labs.mediatek.com/site/global/developer_tools/mediatek_linkit/api_references/Lib_Bluetooth.gsp
Hi樓主您好,請問原先已經可以在Linkit ONE上執行的程式,有辦法移植島Arduino mega上執行嗎?硬體架構的差異會不會影響呢?
ReplyDelete嗯,如果沒使用Linkit ONE才有的硬體的話,應該是沒問題。
ReplyDelete您好,想請教是否有比較過Linkit One與Arduino的穩定度呢?
ReplyDelete或是seeedstudio有提供類似Arduino官方提供的溫濕度DHT library?
因為這陣子分別使用了約3~4個在seeedstudio官方論壇找到的library來測試 DHT 11,卻發現數值會出現大幅度跳動(ex.每秒偵測一次,卻直接從23度變成19度,約3~5秒後又恢復為23度)
但是一樣的接線方式使用於Arduino UNO卻沒有這種情形
不知道您是否也有遭遇過類似問題?
> seeedstudio有提供類似Arduino官方提供的溫濕度DHT library?
Delete據我所知,沒有。應該都是從別人的程式庫修改而成。
請直接向seeed studio詢問。
由於LinkIt ONE有一層RTOS,Arduino的程式會被driver中斷,所以要在Arduino 程式裡面做到us等級的delay,是不準的。
DHT11送出包含溫濕度的訊號給Arduino時,在那一小段時間內,Arduino UNO能夠全心全意接收,所以沒問題。
但LinkIt ONE會被中斷、跑去做別的事情,於是出錯,拿到錯誤的溫濕度數值。
剛剛到網路上搜尋,好像有人解決了。
Deletehttps://labs.mediatek.com/forums/posts/list/3389.page
不過我沒試過。
感謝您的解答,我再來想想看該如何解套嚕!
Delete所以看來用Linkit One不管是搭配哪種senser,都有可能會遭遇類似情形哩...T.T
另,我目前就是使用該library...XD
要看該sensor的種類。
Delete改用 Smart 7688 ?
了解!
Delete因為需要用GPRS網路模組作為資料傳輸,所以才選擇One.
另外請教您是否使用過Arduino+GPRS模組做資料傳輸呢?
之前使用itead的gprs模組成功撥打電話,但是傳送資料卻失敗...T.T
有。傳過簡單、極少量的資料。
Delete再試試吧。
感謝您!
Delete也用過GPRS到網路上抓網頁,但很慢。
Delete請問一下 gps wifi gprs連結板子的接頭是哪一種??
ReplyDelete圖中那一種,orz。
Delete如何使D9的13bit調成4bit
ReplyDelete不用調吧,
Delete在程式裡轉,就行了。
請問wifi跟藍牙功能可以同時使用嗎?
ReplyDelete請問wifi跟藍牙功能可以同時使用嗎?
ReplyDelete