標(biāo)題:
帶以太網(wǎng)的MicroPython開(kāi)發(fā)板:TPYBoardv201建立云加法器實(shí)例
[打印本頁(yè)]
作者:
bodasister
時(shí)間:
2017-9-11 16:55
標(biāo)題:
帶以太網(wǎng)的MicroPython開(kāi)發(fā)板:TPYBoardv201建立云加法器實(shí)例
前面的一篇文檔向大家介紹了v201的開(kāi)發(fā)板作為客戶端終端向TCPS上傳數(shù)據(jù)的基本過(guò)程,這次向大家簡(jiǎn)單介紹一下怎樣使用V201開(kāi)發(fā)板搭建一臺(tái)簡(jiǎn)易的服務(wù)器做遠(yuǎn)程云加法器。
一.實(shí)驗(yàn)器件
TPYBoard_V201開(kāi)發(fā)板一塊
二.TPYBoard_V201開(kāi)發(fā)板
TPYBoard_V201是以遵照MIT許可的MicroPython為基礎(chǔ),由TurnipSmart公司制作的一款MicroPython開(kāi)發(fā)板,它基于STM32F405單片機(jī),通過(guò)USB接口進(jìn)行數(shù)據(jù)傳輸。該開(kāi)發(fā)板內(nèi)置4個(gè)LED燈、板載V201網(wǎng)口功能,可在3.3V-10V之間的電壓正常工作?梢哉f(shuō)這個(gè)開(kāi)發(fā)板在網(wǎng)絡(luò)穩(wěn)定方面是一霸也不為過(guò),板上其他硬件資源也非常豐富,像單總線,i2c,spi,串口等接口也是應(yīng)有盡有,這次我們就要用到串口的功能。
上面介紹了所需器件,下面我們來(lái)說(shuō)一下實(shí)驗(yàn)所需的環(huán)境。這里只需要能給開(kāi)發(fā)板供電,以及可以支持有線網(wǎng)絡(luò)連接(可以給開(kāi)發(fā)板接上網(wǎng)線)即可。
實(shí)驗(yàn)的第一步,給開(kāi)發(fā)板進(jìn)行供電和插上網(wǎng)線,看到V201網(wǎng)口上的綠色指示燈亮起來(lái),說(shuō)明已經(jīng)連接上網(wǎng)絡(luò)。
三.配置V201網(wǎng)口
這一步是為了設(shè)置V201網(wǎng)口模塊的目的地址,本地端口,波特率,數(shù)據(jù)位,校驗(yàn)位等一系列信息。
接著我們來(lái)說(shuō)一下基本的邏輯流程:
1.確認(rèn)供電和網(wǎng)絡(luò)完好;
2.確認(rèn)網(wǎng)絡(luò)完好,接下來(lái)就是進(jìn)行傳輸和處理,在保證網(wǎng)絡(luò)通暢的前提下,設(shè)置串口6,也就是Y1和Y2,具體的波特率這個(gè)要參照你前面設(shè)置給V201網(wǎng)口的波特率來(lái)定;
3.在這里需要說(shuō)一句的是,這個(gè)開(kāi)發(fā)板在使用以太網(wǎng)功能的時(shí)候,Y1,Y2,Y3這三個(gè)引腳是被占用的,其中Y1和Y2是串口,執(zhí)行通信功能;
4.這里需要介紹一下Y3,Y3是V201網(wǎng)口的設(shè)置引腳,當(dāng)Y3不為低電平時(shí),V201網(wǎng)口處于正常工作狀態(tài),可以進(jìn)行數(shù)據(jù)上傳,也可以利用設(shè)置軟件通過(guò)網(wǎng)絡(luò)進(jìn)行配置。當(dāng)Y3為低電平時(shí),V201網(wǎng)口進(jìn)入串口配置模式,可利用設(shè)置軟件通過(guò)串口進(jìn)行配置,此時(shí)不能進(jìn)行數(shù)據(jù)上傳;
5.以上工作全部完成后,剩下的就是時(shí)刻監(jiān)控串口6是否有數(shù)據(jù);
6.當(dāng)?shù)谝皇盏綌?shù)據(jù)的時(shí)候,把計(jì)數(shù)變量加一,并利用寄存變量保存數(shù)據(jù);
7.當(dāng)?shù)诙问盏綌?shù)據(jù)之后,把計(jì)數(shù)變量加一,并利用寄存器變量保存數(shù)據(jù);
8.當(dāng)判斷到計(jì)數(shù)變量為二時(shí),把兩次收到的數(shù)據(jù)相加;
9.最后我們只需要把兩次相加的結(jié)果從串口6發(fā)送出去即可;
四.實(shí)物及數(shù)據(jù)圖
下面是我做實(shí)驗(yàn)的實(shí)物圖和數(shù)據(jù)監(jiān)控截圖,我是在我的電腦上開(kāi)了個(gè)模擬的客戶端口,雖然low了點(diǎn),但是效果一樣的。
1.jpg
(186.44 KB, 下載次數(shù): 39)
下載附件
2017-9-11 16:55 上傳
實(shí)物圖
2.png
(54.72 KB, 下載次數(shù): 54)
下載附件
2017-9-11 16:55 上傳
數(shù)據(jù)監(jiān)控截圖
五.源代碼
下面是我做的源代碼,共享給大家。
import pyb
from pyb import UART
from pyb import Pin
from ubinascii import hexlify
from ubinascii import *
ulan = UART(6, 9600)#定義連接網(wǎng)口的串口
K=1
jia=0
jie1=0
he=0
js=0#設(shè)置寄存變量
#*******************************主程序**********************************
print('while')
while (K>0):
_dataRead=ulan.readall()#讀取客戶端數(shù)據(jù)
if _dataRead!=None:#判斷客戶端是否傳來(lái)數(shù)據(jù)
print(_dataRead)
js=js+1#計(jì)數(shù)判斷執(zhí)行命令標(biāo)志
if(js==1):
jia=_dataRead.decode('utf-8')#數(shù)據(jù)轉(zhuǎn)換
jia=int(jia)#數(shù)據(jù)轉(zhuǎn)換
print(jia)
if(js==2):
jia1=_dataRead.decode('utf-8')
jia1=int(jia1)
print(jia1)
if(js==2):
he=jia+jia1
js=0
ulan.write(str(jia)+'+'+str(jia1)+'='+str(he)+'\r\n')#計(jì)算結(jié)果返回給客戶端
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1