查看: 41|回复: 0

[教程] 带以太网的MicroPython开发板:TPYBoardv201建立云加法器实例

[复制链接]

45

主题

0

好友

629

积分

举人

Rank: 4

  • TA的每日心情
    开心
    2016-9-7 16:50
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-9-11 16:54:12 |显示全部楼层
    本帖最后由 ky123 于 2017-9-12 08:48 编辑

      转载请注明文章来源

      前面的一篇文档向大家介绍了v201的开发板作为客户端终端向TCPS上传数据的基本过程,这次向大家简单介绍一下怎样使用V201开发板搭建一台简易的服务器做远程云加法器。

      一.实验器件

      TPYBoard_V201开发板一块

      二.TPYBoard_V201开发板

      TPYBoard_V201是以遵照MIT许可的MicroPython为基础,由TurnipSmart公司制作的一款MicroPython开发板,它基于STM32F405单片机,通过USB接口进行数据传输。该开发板内置4个LED灯、板载V201网口功能,可在3.3V-10V之间的电压正常工作。可以说这个开发板在网络稳定方面是一霸也不为过,板上其他硬件资源也非常丰富,像单总线,i2c,spi,串口等接口也是应有尽有,这次我们就要用到串口的功能。

      上面介绍了所需器件,下面我们来说一下实验所需的环境。这里只需要能给开发板供电,以及可以支持有线网络连接(可以给开发板接上网线)即可。

      实验的第一步,给开发板进行供电和插上网线,看到V201网口上的绿色指示灯亮起来,说明已经连接上网络。

      三.配置V201网口

      这一步是为了设置V201网口模块的目的地址,本地端口,波特率,数据位,校验位等一系列信息。

      接着我们来说一下基本的逻辑流程:

      1.确认供电和网络完好;

      2.确认网络完好,接下来就是进行传输和处理,在保证网络通畅的前提下,设置串口6,也就是Y1和Y2,具体的波特率这个要参照你前面设置给V201网口的波特率来定;

      3.在这里需要说一句的是,这个开发板在使用以太网功能的时候,Y1,Y2,Y3这三个引脚是被占用的,其中Y1和Y2是串口,执行通信功能;

      4.这里需要介绍一下Y3,Y3是V201网口的设置引脚,当Y3不为低电平时,V201网口处于正常工作状态,可以进行数据上传,也可以利用设置软件通过网络进行配置。当Y3为低电平时,V201网口进入串口配置模式,可利用设置软件通过串口进行配置,此时不能进行数据上传;

      5.以上工作全部完成后,剩下的就是时刻监控串口6是否有数据;

      6.当第一收到数据的时候,把计数变量加一,并利用寄存变量保存数据;

      7.当第二次收到数据之后,把计数变量加一,并利用寄存器变量保存数据;

      8.当判断到计数变量为二时,把两次收到的数据相加;

      9.最后我们只需要把两次相加的结果从串口6发送出去即可;

      四.实物及数据图

      下面是我做实验的实物图和数据监控截图,我是在我的电脑上开了个模拟的客户端口,虽然low了点,但是效果一样的。


    1.jpg
      实物图


    2.png
      数据监控截图

      五.源代码

      下面是我做的源代码,共享给大家。
    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#计数判断执行命令标志
    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')#计算结果返回给客户端
    复制代码
    回复

    使用道具 举报

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

    关闭

    站长推荐上一条 /3 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-9-26 11:53 , Processed in 0.195115 second(s), 12 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部