作者:Michael Huang
在這個開發板滿天飛的世代,我們的國產大廠聯發科又推出新板子「LinkIt 7697」啦!
不同於之前的 LinkIt Smart 7688系列, 7688偏向 IoT中的 hub,而 7697的偏向是 node,所以是終端等級的產品。這次剛好有機會拿到評測,雖然拖了一小段時間(我討厭Wix的客服讓我現在很不想寫文章wwww),不過下文會手把手地教大家一步步操作,一起完成這個遙控車的專案!
比較LinkIt 7697 、 ESP32 、 Micro:bit

LinkIt 7697 、 ESP32 、 Micro:bit的外觀比較
我們首先可以看到 7697跟近期兩個火紅的開發板的外觀比較。
以整體大小而言,其實 7697跟 ESP32差不多。不過 7697板子上擁有了可以對接 USB的 CP2102晶片,不同於 ESP32必須要外接,或者是買另外一種大一點的版本;至於英國BBC推的 Micro:bit,它就比較獨樹一格,背面有 LED矩陣,再加上旁邊插卡式的設計,所以版型比較大。
三者都支援藍牙低功耗 BLE,但只有 7697跟 ESP32可以支援 WiFi。

聯發科官網所提供的 LinkIt 7697腳位圖
再來,我們可以看到聯發科官網上提供的腳位圖,看到那一排粉紅色的就很嗨森啊!這麼多能夠支援 PWM的腳位,就代表應用上可玩的擴充性很高;但是右下角只有四個 pin可以當作 ADC用,也就是只有這四個可以讀取類比訊號。雖然說通常要準確讀取類比訊號都會外接 IC來做,所以原生四個算是夠用…
BUT!!(燈惹~)
仔細去看 7697的線上說明,會發現這邊有兩個有提醒卻沒有寫在最明顯的地方:
最重要的就是,如果要讀取類比訊號,ADC能夠承受的電壓只有 2.5V!
輸入阻抗 10k歐姆暫且不管,但是板子上面供電不是 5V就是 3.3V,所以直接拿這個去接感測器,輸回的高電壓就是 5V或 3.3V。
- 結果直接接回 ADC腳位的話,它就會壞掉,這是一個什麼樣的概念呢?(完美歪頭8度)
- 要我們自己外接電阻分壓,為什麼不在板子上就先做好電阻分壓呢?(歪向另外一邊8度)
- 如果用市售普遍的 5V感測器,就活該要把麵包板插好插滿的意思嗎?(別再歪頭了(巴頭)
- 另外,在 Arduino IDE裡面使用的時候,並不支援硬體的 SPI協定。聽不懂沒關係,不要用就好了嘛~(你這個爛鴕鳥給我起來)
開始在 Arduino IDE上設定 LinkIt 7697
好啦,現在就開始一步一步在 Arduino IDE上,來設定我們要使用的 7697了。
由於 7697上的 USB-TTL晶片是使用 CP2102,所以電腦中必須要有相對的驅動程式,聯發科的網站中有介紹這一部份的安裝(這裡)。不過因為我的電腦已經安裝好了,所以就跳過驅動程式的安裝示範(偷懶還這麼冠冕堂皇)。
第一步先打開 Arduino IDE,進入檔案(File)→偏好設定(Preference):
然後呢,在 Additional Boards Manager URLs:的地方輸入聯發科針對7697設定的json檔案連結 http://download.labs.mediatek.com/package_mtk_linkit_7697_index.json
按下好(OK)之後呢,就去工具(Tools)→板子(Boards)→Boards Manager:
然後,在最底端應該可以看到「LinkIt 7697 by MediaTek Labs」,於右下角選擇最新版本後,按下 Install:
完成之後,應該會看到顯示「INSTALLED」。
這時候就可以按下 Close回去 Arduino IDE,到工具(Tools)→板子(Boards)的地方,往下拉應該就可以選擇「LinkIt 7697」,然後在連接埠(Port)的地方,就可以看到可以選擇括弧中有寫 LinkIt 7697的 COM port。
接著就可以來開發啦!
依照 Arduino系列的起手式,就是先去翻範例(踩在巨人的肩膀上,先玩玩才能往上爬):
網路上的很多評測都是燒了個 Blink進去,看到 Done uploading之後,接著看到板子上的 LED會閃,就很開心了。但是這樣拿來作弊也太簡單了吧?只要把 Blink搞好就可以讓人家評測的意思?
我偏不要!(天生反骨鴕鳥硬起來)所以就直接去測試 7697號稱支援的藍牙囉!
在工具(Tools)→板子(Boards)那邊選了 7697之後,範例的地方會多出幾個針對 7697的範例:
所以我們就直接選 LBLE→SimplePeripheral。
這個就是把 7697當作 BLE溝通情況下的節點,而連結它的智慧型裝置會是 Central來主控,所以我們將程式燒錄進去之後,就可以直接拿平板,並使用 BLEScanner這種 APP來測試:
我們看到 APP中,可以找到 Custom Service有一串跟範例中設定 ledService那串一樣的編碼,裡面的 Custom characteristic UUID也跟範例設定的 Characteristic一樣,由於這個範例是透過 BLE接收到指令的時候來做板上 LED的開關,所以直接在 APP的 Characteristic中按下「W」,傳出 (byte)01的話,LED就會亮;傳出 (byte)00的話,LED就熄滅了!
但你以為這樣子把人家用 MCS(聯發科雲端服務)控制 LED換成用平板控制,我就會收山了嗎?
本山人就是要繼續測!
在我們協辦全國數一數二大、像老不休一樣償命的「PowerTech青少年創作競賽」中,已經讓學生用 APP來控制他們比賽當天自己做出來的機器人了。他們所使用的 BLE藍牙模組上面,有一個 Service是FFE0,其中一個 Characteristic是 FFE1,只要 APP跟這個 Characteristic溝通,基本上就像 Bluetooth SPP一樣,傳什麼收什麼。
因此,我只要把這邊範例的 Service跟 Characteristic改成上文所說,並且在收到指令之後,對應成馬達的控制訊號,再將控制訊號透過 L9110,就可以驅動馬達。
這樣子應該就可以變成一台藍牙遙控車了吧!

藍牙遙控車,組裝完成!
就跟上圖一樣,我直接找手邊有的一台小車接上 L9110。控制訊號部分,則是在 Arduino IDE中設定,將 APP的訊號對應到 P6~P13(可以控制四顆馬達),再把對應的腳位接到 L9110模組,並且另外給電,這樣就完成囉!(這邊可以下載程式碼)
成果展示
後記
其實眼尖的人會發現其中幾張截圖怪怪的,因為我在測試的時候遇到一些問題,在 Win 10上面跑了 1.6.5zip、1.8.2zip,裝完 Board Manager之後,上傳 LBLE跟 LWIFI都失敗,回到 Win 7上面跑 1.8.2安裝版的,才能夠上傳 LBLE的範例,但是 LWIFI還是不行(喂!這是風水問題吧)。
不過兩天之後,在 Win 10上面的 1.8.2zip又可以跑了,所以截圖才會看起來有點亂。雖然還沒有深入研究 7697的架構,但感覺跑 RC Car的時候,與其他 BLE模組相較起來會有點頓。有機會再研究囉~
(本文同步刊載於「動動手 輕鬆Make!」部落格,原文連結,責任編輯:林佳盈)
- 【開箱文】RAK WisCore v.s. AIY Project開源語音套件大車拼 - 2017/12/13
- 【Tutorial】Intel Quark SE C1000的安裝與設定 - 2017/08/19
- 【Tutorial】 LinkIt 7697讓藍牙遙控車動起來! - 2017/06/12
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!
2018/01/09
请问是用什么给linkit7697供电呢?
2018/01/10
您好,這裡是MakerPRO編輯部,已將您的提問告知作者。請耐心等候謝謝您:)