找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2142|回復: 0
打印 上一主題 下一主題
收起左側

帶以太網的MicroPython開發(fā)板:TPYBoardv201建立云加法器實例

[復制鏈接]
跳轉到指定樓層
樓主
ID:130183 發(fā)表于 2017-9-11 16:55 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

  前面的一篇文檔向大家介紹了v201的開發(fā)板作為客戶端終端向TCPS上傳數據的基本過程,這次向大家簡單介紹一下怎樣使用V201開發(fā)板搭建一臺簡易的服務器做遠程云加法器。

  一.實驗器件

  TPYBoard_V201開發(fā)板一塊

  二.TPYBoard_V201開發(fā)板

  TPYBoard_V201是以遵照MIT許可的MicroPython為基礎,由TurnipSmart公司制作的一款MicroPython開發(fā)板,它基于STM32F405單片機,通過USB接口進行數據傳輸。該開發(fā)板內置4個LED燈、板載V201網口功能,可在3.3V-10V之間的電壓正常工作。可以說這個開發(fā)板在網絡穩(wěn)定方面是一霸也不為過,板上其他硬件資源也非常豐富,像單總線,i2c,spi,串口等接口也是應有盡有,這次我們就要用到串口的功能。

  上面介紹了所需器件,下面我們來說一下實驗所需的環(huán)境。這里只需要能給開發(fā)板供電,以及可以支持有線網絡連接(可以給開發(fā)板接上網線)即可。

  實驗的第一步,給開發(fā)板進行供電和插上網線,看到V201網口上的綠色指示燈亮起來,說明已經連接上網絡。

  三.配置V201網口

  這一步是為了設置V201網口模塊的目的地址,本地端口,波特率,數據位,校驗位等一系列信息。

  接著我們來說一下基本的邏輯流程:

  1.確認供電和網絡完好;

  2.確認網絡完好,接下來就是進行傳輸和處理,在保證網絡通暢的前提下,設置串口6,也就是Y1和Y2,具體的波特率這個要參照你前面設置給V201網口的波特率來定;

  3.在這里需要說一句的是,這個開發(fā)板在使用以太網功能的時候,Y1,Y2,Y3這三個引腳是被占用的,其中Y1和Y2是串口,執(zhí)行通信功能;

  4.這里需要介紹一下Y3,Y3是V201網口的設置引腳,當Y3不為低電平時,V201網口處于正常工作狀態(tài),可以進行數據上傳,也可以利用設置軟件通過網絡進行配置。當Y3為低電平時,V201網口進入串口配置模式,可利用設置軟件通過串口進行配置,此時不能進行數據上傳;

  5.以上工作全部完成后,剩下的就是時刻監(jiān)控串口6是否有數據;

  6.當第一收到數據的時候,把計數變量加一,并利用寄存變量保存數據;

  7.當第二次收到數據之后,把計數變量加一,并利用寄存器變量保存數據;

  8.當判斷到計數變量為二時,把兩次收到的數據相加;

  9.最后我們只需要把兩次相加的結果從串口6發(fā)送出去即可;

  四.實物及數據圖

  下面是我做實驗的實物圖和數據監(jiān)控截圖,我是在我的電腦上開了個模擬的客戶端口,雖然low了點,但是效果一樣的。



  實物圖



  數據監(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)#定義連接網口的串口
  7. K=1
  8. jia=0
  9. jie1=0
  10. he=0
  11. js=0#設置寄存變量
  12. #*******************************主程序**********************************
  13. print('while')
  14. while (K>0):
  15.     _dataRead=ulan.readall()#讀取客戶端數據
  16.     if _dataRead!=None:#判斷客戶端是否傳來數據
  17.         print(_dataRead)
  18.         js=js+1#計數判斷執(zhí)行命令標志
  19.         if(js==1):
  20.             jia=_dataRead.decode('utf-8')#數據轉換
  21.             jia=int(jia)#數據轉換
  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')#計算結果返回給客戶端
復制代碼





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表