LinkIt 7697
Last updated
Last updated
隨著物聯網蓬勃發展,各家廠商皆推出物聯網開發平台,使開發者更容易發揮創意,做出各種物聯網應用。而國內科技大廠聯發科技於這幾年開始,相繼推出幾塊物聯網開發板,包含全功能聯網 (GSM/GPRS/Wi-Fi/Bluetooth/GNSS) 的 LinkIt ONE;可使用 OpenWrt (Linux) 開發較高端應用的 LinkIt Smart 7688/7688 Duo;於2017年6月又偕同Seeed Studio 推出了最新的物聯網開發板 LinkIt 7697。
LinkIt 7697使用 MT7697 作為主控制器,該晶片核心為主流的 ARM Cortex-M4(含浮點運算器),運行時脈為192MHz,同時提供 Wi-Fi 和 BLE(低功耗藍芽)兩種通訊最主要的通訊功能。軟體部分採用最為廣泛地FreeRTOS為作業系統,同時也提供 Arduino 開發環境,為目前學習開發物聯網應用的最佳開發平台之一。
LinkIt 7697的大小,特別設計成能置入於麵包板上,並留有排針腳位可插杜邦線。開發板包含TX/RX LED,會於燒錄軟體或是透過序列埠有在傳送資料時閃爍,PWR LED會於有外部供電時點亮,USR LED則接至PIN 6可透過軟體控制。RST按鈕會重新開機,USR 按鈕可供使用者當作基本的輸入使用。LinkIt 7697開出了18 根可用腳位,可設置成GPIO (18),UART(2),I2C(1),SPI(1),PWM(18),EINT(4),ADC(4),IrDA(1)和I2S(1),除了ADC是 0至2.5V外,其他功能的工作電壓皆為3.3V。板子上有一個 MicroUSB 接頭,用於連接PC以燒錄軟體和供電(5V)。
板子上最常用的硬件如下
RST 按鈕 : 按下就會重新啟動開發板
USR 按鈕 : 板子上內建的輸入按鈕
UART RX LED : 序列埠往板子傳資料時會閃爍
UART TX LED: 序列埠往 PC 傳資料時會閃爍
Micro-USB : 透過 Micro-USB 線和電腦連接,主要用於下載程式和透過序列埠來列印 logs
針腳的功能
LinkIt ONE 於 2014 年推出,為市面上少見具備 GSM/GPRS/Wi-Fi/BT/GNSS 多功能通訊的 Arduino 相容開發板,但隨著台灣電信商2G系統的關台,缺少了GSM/GPRS 的支持,LinkIt ONE 就缺少最主要的特點了。 目前LinkIt系列開發板針對物聯網應用,主要是提供兩個系列開發板:LinkIt Smart 7688/7688 Duo 用於較高階IoT節點或Gateway使用,可使用高階語言(Python/JS)與眾多Linux套件進行開發。而LinkIt 7697 則定位成較輕量的結點。
LinkIt 7697針對不同族群的開發者,提供了三種開發環境: 1. GCC/KEIL/IAR : 提供給專業物聯網產品開發者的開發除錯環境,直接使用SDK進行開發,擁有最佳開發彈性且能優化出最佳效能。 2. Arduino IDE:提供給Maker/教育教學者的開發環境,完全相容於Arduino的程式語法,並包含LinkIt 7697獨家功能,例如LWIFI、LBLE、MCS(MediaTek Cloud Sandbox)、LFlash、LRTC及LRemote 等好用函式庫,大幅降低各種物聯網應用的開發門檻。 3. BlocklyDuino : 提供物聯網入門開發者的視覺化積木開發環境,透過簡單的積木拖拉就可組合出各種邏輯應用。BlocklyDuino 會將積木轉換成 Arduino 程式,也可作為從視覺化積木轉換至Arduino程式語言的學習工具。
前置準備作業
準備一片 LinkIt 7697 開發板
準備一條 Micro USB Cable
準備一台電腦
作業系統版本:
Windows 7, 8 或 10
OS X 10.10 或以上
開發板與電腦連接圖
將 Micro USB 端接 LinkIt 7697,另一端接電腦的 USB 插槽
架構圖
LinkIt 7697 透過 COM 埠的介面來連接電腦,此介面經由 CP2102N USB-to-UART 來連接 MT7697 SoC 上的 UART0 埠,透過此埠能程式化快閃記憶體,也能經由 Arduino IDE 來撰寫程式。
安裝 Arduino IDE 1. 開啟電腦的瀏覽器並輸入https://www.arduino.cc/en/Main/Software 2. 選擇 Arduino IDE 1.8 以上的版本並 點選 Windows ZIP file for non admin install
點選 JUST DOWNLOAD
下載完成並進行解壓縮會看到下方圖示的內容
點選 arduino 的執行檔
成功開啟後畫面如下
安裝 CP2102N USB-to-UART 驅動程式 1. 開啟電腦的瀏覽器並輸入http://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
依自己的作業系統來選擇相對應的安裝檔並安裝完成
Arduino IDE 設定 1. 檔案 ➙ 偏好設定
在額外的開發板管理員網址輸入以下 URL 再點選確定
右上搜尋欄位輸入 7697
點選安裝
點選工具 ➙ 開發板 ➙ 選擇 LinkIt 7697
點選工具 ➙ 序列埠選擇在裝置管理員中所看到的連接埠號
Hello World
點選草稿碼 ➙ 上傳
點選工具 ➙ 序列埠監控視窗
序列埠監控視窗顯示 Hello World
讓LED燈閃爍
點選檔案 ➙ 範例 ➙ 01.Basic ➙ Blink
再點選燒錄程式
開發板上的 USR 燈開始閃爍
WiFi控制RGB三色LED
請將LinkIt 7697與共陰RGB LED接上麵包板後,按照以下對應來接線:
完成如下圖
請登入MIT App Inventor之後,建立一個新專案。或直接由App Inventor中文學習網匯入本專案原始檔,唯一要修改的地方就是LinkIt 7697於您所指定網路所取得的IP位址。
Designer
新增一個HorizontalArrangement,其中放入一個按鈕與Label,按鈕是用於設定IP,label則是用於顯示各種訊息。
新增一個Textbox,Text設為空,Hint則設為”check 7697 ip in serial monitor”,用於輸入7697的實際IP
新增一個TableArrangement,寬度設為Fill parent,高度為200像素。Row=2。Column=3。接著放入五個按鈕,寬度各為33%,高度則為100像素。這些分別用於讓RGB LED亮紅色(R)、綠色(G)、藍色(B)、白色(W)與熄滅。
完成後如下圖:
IP變數與設定IP按鈕
在此宣告一個變數,內容為”http://192.168.1.73”
,這是LinkIt 7697於您所指定網路中所取得的IP。後續會把這個變數值用於Web元件的Url屬性。如果您只有一片LinkIt 7697或已經確定其IP的話,可以在此把它寫死不用修改。
不過為了方便起見,我們可以透過Textbox來設定新的IP,這在您現場有多片LinkIt 7697要控制時很方便。按下Button_setIP按鈕,會先檢查Textbox是為空,如果已輸入內容就將設定結果顯示於Label,否則將顯示錯誤訊息於Label。
副程式用於設定URL與顯示訊息
在此宣告一個副程式來管理每次按下按鈕時所發送的字元與顯示訊息。請新增一個procedure,並點選藍色方塊來新增參數,點選副程式與參數名稱即可修改名稱。在此副程式名稱改為sendData,參數名稱為message/ command。
在sendData副程式中,我們會把送進來的參數分別用於7697的網址(組合結果:不同字元對應不同動作)與要顯示的訊息。最後再呼叫Web.Get來呼叫LinkIt 7697所產生的網址即可。
各顏色燈光按鈕
這樣做程式是否變的很清爽呢?每個按鈕的差別只在於參數不同而已,當然如果我們要發送/W出去的話,LinkIt 7697也要有對應的程式才行。簡列如下:
Button_R(紅燈):Red 與 /R
Button_G(綠燈):Green 與 /G
Button_B(藍燈):Blue 與 /B
Button_W(白燈):white 與 /R
Button_off(紅燈):Red 與 /o
本範例修改自LinkIt 7697的SimpleWebServerWifi範例(就是多加幾個字元而已),重點段落 1. 連上指定網路
於7697簡易網頁中網頁顯示訊息,您可在7697所產生的網頁上編寫簡易的html。在此使用超連結可以直接點選。當然目標是透過App Inventor來發送囉。
檢查網址並呼叫自定義函式來控制LED。如果我們檢查到某次client request(手機或透過網頁點選)的結尾等於我們所指定的字元,就呼叫led()函式,並透過參數來決定哪一個顏色亮起。1,0,0就是紅色,0,0,1是藍色等。 在此我們並沒有調整每一種顏色的亮度,所以只有亮暗兩種狀態,可以思考一下如何透過這樣的架構把參數送進來給analogWrite()函式來調整RGB LED的亮度,例如(128, 130, 255),這樣顏色的變化會更繽紛喔!
操作
請先確認7697端程式已經執行,並開啟Serial Monitor來看7697的IP為何。將App Inventor中的ip變數值改好之後執行(由於本範例並非使用藍牙,所以模擬器也可執行)。 確認好IP之後,先開啟瀏覽器,所使用的裝置需與7697位於同一個網段之下才行喔,如以下的192.168.1.73。
開啟app吧,設定IP成功畫面如下圖左,點選各個按鈕可以看到畫面右上角的label會顯示對應的訊息。
Arduino 完整code
http://blog.cavedu.com/2018/06/11/linkit-7697-認識linkit-7697,你會需要這一篇!/ https://docs.labs.mediatek.com/linkit-7697-blocklyduino/linkit-7697-12880255.html https://docs.labs.mediatek.com/linkit-7697-blocklyduino/實作範例教學-12879630.html https://oranwind.org/-mediatek-linkit-7697-ji-chu-jiao-xue/ http://blog.cavedu.com/2017/11/13/linkit-7697-wifi-led控制/
3. 點選工具 ➙ 開發板 ➙ 開發板管理員
RGB LED
LinkIt 7697
R
P11 (D11)
G
P9
B
P7 (也是板載的USR LED)
GND
任一GND即可