查看: 313|回复: 0
打印 上一主题 下一主题

[LinkIt 7688 Duo学习笔记] Cloud Sandbox之自旋車

[复制链接] qrcode

29

主题

31

帖子

94

积分

注册会员

Rank: 2

积分
94
楼主
跳转到指定楼层
发表于 2016-4-1 09:34 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

<前言>

本篇結合了MTK雲端服務(Cloud Sandbox)下達控制命令給小車上的7688 Duo,讓小車利用兩側輪反向的方式自旋,當作一個簡易的實驗範例,注意本篇只適用於7688 Duo,另外一型號的7688將不可使用本範例,需修改原始碼


<準備>

1. 7688 Duo開發板

2. 四輪小車

3. 5V/12V雙輸出行動電源

4. L298P驅動模塊

5. 杜邦線

6. DC 公頭附電線

7. 銅柱和銅帽

8. MicroUSB傳輸線

9. USB轉TTL傳輸線

10. 小型麵包板

11. 雙面泡棉膠


1. L298P為一般常用的L298N貼片式封裝,因此散熱問題改由PCB直接來散熱,所以空間大幅度所小,若不是需要高電流的驅動,L298P可提供較小的體積,方便組裝,以下是L298N和L298P內部結構

和ULN2003相當類似,採用BJT放大電流的方式,將輸入訊號的電流放大後輸出,驅動直流馬達或者步進馬達,每組由兩個AND閘和兩個BJT構成,依照訊號的高低電位選擇上下的BJT開關,因此可達到放大電流的目的


2. 採用KAISE生產的L298P模塊,和一般常見的L298N模塊接腳相似,如下圖

利用ENA和ENB腳位輸入PWM訊號,也可以類似L298N一樣改變直流馬達轉速


3. Cloud Sandbox為MTK發展出來的雲端服務,就如同眾多的微信跟QQ雲端服務一樣,這裡簡單介紹使用方法,可參考官方的教學網頁

圖為整個開發流程圖,先建立原型,後創建裝置


4. 創建好帳號以後,登入Cloud Sandbox,在左上角選擇開發 > 原型,您必須先創建好原型才能在創建可用的裝置

按一下左邊的創建按鈕


填寫原型的資訊,有附星號的為必填欄位,以上資訊供參考


5. 按下儲存按鈕就會儲存新的原型,回到原型網頁按一下該原型的詳情按鈕

按一下該原型的詳情按鈕


顯示該原型的介面,接下來要開始創建資料通道,資料通道代表由雲端跟裝置之間傳輸資料的方式


6. 按一下新增按鈕,創建新的資料通道

目前官方提供控制器和顯示器兩大類,控制器可以下達命令給裝置,而顯示器只有顯示裝置傳來的資料,我們要控制小車,所以這裡選擇控制器大類,按一下新增按鈕


填寫必要資訊,星號為必填,因為只是實驗性質的功能,選擇最簡單的開關資料型態即可,要注意的是資料通道ID將會被裝置上的程式碼所使用,用來建立TCP連線


7. 按一下儲存按鈕,就會創建新的資料通道,回到原型詳情頁面

以上就創建好了資料通道,按一下右上方的創建測試裝置按鈕


星號為必填資訊,完成後按一下創建按鈕


創建好的測試裝置,在右上角的DeviceId和DeviceKey將會在裝置上的程式碼使用到,請留意


8. 以上就完成了建立雲端控制的模型,以下列出等等會在程式碼用上的必要資訊

資料通道Id
DeviceId
DeviceKey
可以開始編寫程式碼


9. 將7688 Duo利用MicroUSB連接電腦,並設置為Station模式,我利用USB轉TTL傳輸線連上7688的Serial,直接登入OpenWRT來設置Root密碼和將7688 Duo模式改變,輸入以下指令

vi /etc/config/wireless

這裡我使用Putty


將Config wifi-iface \'sta\'以下設定值設定好即可

option ssid 
option key 
option disable \'0\'
就不需要再安裝其他軟體,快速設置成Station模式的方法,按下ESC按鍵,再輸入wq儲存,再輸入以下指令
wifi
重新啟動Wifi服務,以上就會自動連線到您的路由器


10. 利用SSH登入7688 Duo,這裡我們使用Firmata協定來實作較為簡單,在7688端和MCU端分別安裝好Firmata的函式庫即可

Firmata協定,用來簡化CPU和MCU之間的溝通


11. 在Serial console輸入以下指令來安裝7688端的Firmata函式庫

pip install pyfirmata
等待安裝完畢即可


12. 再來安裝MCU端的Firmata函式庫,這裡假設您已經安裝好Arduino IDE 7688相關套件,若還沒請參考官方文檔,選擇要上傳的檔案

選擇範例 > Firmata > StandardFirmata,之後我們要修改程式碼部分符合7688和MCU的溝通方式

//Firmata.begin(57600);
Serial1.begin(57600);
Firmata.begin(Serial1);
修改完成以後上傳至板子即可


13. 回到Serial console,創建app.py,這裡我們以官方範例來做修改,加入控制馬達的部分,因為含有特殊字元,將放置文末供小夥伴們參考

程式碼部分截圖,程式碼中特別注意要和Cloud Sandbox設定一致,即如下

DEVICE_INFO = {
    \'device_id\' : \'\',
    \'device_key\' : \'\'
}

if dataChannelId == \'\':
確保一致後就完成程式碼設計


<實測>

14. 輸入好程式碼以後儲存,並且開始接線,主要接線如下

7688 D2 <=> 杜邦線 <=> IN1
7688 D3 <=> 杜邦線 <=> IN2
7688 D4 <=> 杜邦線 <=> IN3
7688 D5 <=> 杜邦線 <=> IN4
GND <=> GND
行動電源+12V <=> DC接頭紅線 <=> 12V
行動電源 GND <=> DC接頭白線 <=> GND
行動電源+5V <=> MicroUSB <=> 7688電源
小車左側兩顆馬達 <=> 杜邦線 <=> OUT1和OUT2
小車右側兩顆馬達 <=> 杜邦線 <=> OUT3和OUT4

7688 Duo部分接線,將7688 Duo插上麵包板利用雙面泡棉膠黏在行動電源上,行動電源黏在車座上


L298P模塊部分接線,以上就完成接線的工作


15. 輸入以下指令來執行

python app.py

開啟7688 Duo和Cloud Sandbox之間的連線


16. 在Cloud Sandbox上開啟開關,如下圖的響應

開啟小車的馬達開關


同時Serial console會收到雲端上的開關訊息,並且觀看小車的自旋


<程式碼下載>


點擊我觀看


<小結>

本篇利用了Cloud Sandbox結合小車來做雲端控制,如同微信來控制各種IOT周邊裝置,將各個裝置連上網路達成IOT的精神,是非常實用的技巧,供小伙伴們學習參考

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表