標(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),但是效果一樣的。



  實(shí)物圖



  數(shù)據(jù)監(jiān)控截圖

  五.源代碼

  下面是我做的源代碼,共享給大家。
  1. import pyb
  2. from pyb import UART
  3. from pyb import Pin
  4. from ubinascii import hexlify
  5. from ubinascii import *

  6. ulan = UART(6, 9600)#定義連接網(wǎng)口的串口
  7. K=1
  8. jia=0
  9. jie1=0
  10. he=0
  11. js=0#設(shè)置寄存變量
  12. #*******************************主程序**********************************
  13. print('while')
  14. while (K>0):
  15.     _dataRead=ulan.readall()#讀取客戶端數(shù)據(jù)
  16.     if _dataRead!=None:#判斷客戶端是否傳來(lái)數(shù)據(jù)
  17.         print(_dataRead)
  18.         js=js+1#計(jì)數(shù)判斷執(zhí)行命令標(biāo)志
  19.         if(js==1):
  20.             jia=_dataRead.decode('utf-8')#數(shù)據(jù)轉(zhuǎn)換
  21.             jia=int(jia)#數(shù)據(jù)轉(zhuǎn)換
  22.             print(jia)
  23.         if(js==2):
  24.             jia1=_dataRead.decode('utf-8')
  25.             jia1=int(jia1)
  26.             print(jia1)
  27.         if(js==2):
  28.             he=jia+jia1
  29.             js=0
  30.             ulan.write(str(jia)+'+'+str(jia1)+'='+str(he)+'\r\n')#計(jì)算結(jié)果返回給客戶端
復(fù)制代碼










歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1