查看: 1930|回复: 0

Micropython教程之TPYBoard DIY超声波测距仪实例演示

[复制链接]
  • TA的每日心情
    慵懒
    2018-1-6 09:01
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2018-12-5 08:12:55 | 显示全部楼层 |阅读模式
    分享到:
        1.实验目的

        1. 学习在PC机系统中扩展简单I/O?接口的方法。
        2. 进一步学习编制数据输出程序的设计方法。
        3. 学习超声波模块的测距原理。
        4. 学习LCD5110接线方法
        5. 学习TPYboard控制超声波模块测距。(萝卜学科编程教育tpyboard。com)

        2.所需元器件

        超声波模块一个
        TPYBoard板子一块
        5110LCD显示屏一个
        数据线一条
        杜邦线若干

        3.超声波模块工作原理

        (1)采用IO口TRIG触发测距,给最少10us的高电平信呈。
        (2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回。
        (3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。
        如下图接线,VCC 供 5V电源, GND 为地线,TRIG 触发控制信号输入,ECHO 回响信号输出等四个接口端。。(萝卜学科编程教育tpyboard。com)

    图片1.png

        4.控制5110显示屏显示6x8字符

        先看一下LCD5110针脚含义吧(注意:LCD5110的针脚有些不一样的)
        TPYBoard的针脚与5110的针脚对应关系如下:

    TPYBoard       LCD5110    memo
       ————————————————————————————
       # any   Pin        => RST       Reset pin (0=reset, 1=normal)
       # any   Pin        => CE        Chip Enable (0=listen for input,   1=ignore input)
       # any   Pin        => DC        Data/Command (0=commands, 1=data)
       #   MOSI          => DIN       data flow (Master out, Slave in)
       #   SCK           => CLK       SPI clock
       # 3V3   or any Pin  => VCC       3.3V logic voltage (0=off, 1=on)
       # any   Pin        => LIGHT     Light (0=on, 1=off)
       #   GND           => GND
       还是看不明白的话,直接上针脚编号吧
       TPYBoard       LCD5110    memo
       ————————————————————————————
       Y10        => RST       Reset pin (0=reset, 1=normal)
       Y11        => CE        Chip Enable (0=listen for input, 1=ignore input)
       Y9         => DC        Data/Command (0=commands, 1=data)
       X8         => DIN       data flow (Master out, Slave in)
       X6         => CLK       SPI clock
       VCC
       Y12        => LIGHT     Light (0=on, 1=off)
       GND

    图片2.png

        接线ok后,并且导入font.py文件和upcd8544.py文件,编写main.py将测到的距离显示在5110显示屏上,运行main.py就ok了。(font.py和upcd8544.py可以从官网上下载,最后会告诉下载地址)。。(萝卜学科编程教育tpyboard。com)

        5.源代码
    1. import pyb
    2. from pyb import Pin
    3. from pyb import Timer
    4. import upcd8544
    5. from machine import SPI,Pin


    6. Trig = Pin('X2',Pin.OUT_PP)
    7. Echo = Pin('X1',Pin.IN)
    8. num=0
    9. flag=0
    10. run=1
    11. def start(t):
    12.     global flag
    13.     global num
    14.     if(flag==0):
    15.         num=0
    16.     else:
    17.         num=num+1
    18. def stop(t):
    19.     global run
    20.     if(run==0):
    21.         run=1
    22. start1=Timer(1,freq=10000,callback=start)
    23. stop1=Timer(4,freq=2,callback=stop)

    24. while True:
    25.     if(run==1):
    26.         SPI = pyb.SPI(1) #DIN=>X8-MOSI/CLK=>X6-SCK
    27.         #DIN =>SPI(1).MOSI 'X8' data flow (Master out, Slave in)
    28.         #CLK =>SPI(1).SCK  'X6' SPI clock
    29.         RST    = pyb.Pin('Y10')
    30.         CE     = pyb.Pin('Y11')
    31.         DC     = pyb.Pin('Y9')
    32.         LIGHT  = pyb.Pin('Y12')
    33.         lcd_5110 = upcd8544.PCD8544(SPI, RST, CE, DC, LIGHT)
    34.         Trig.value(1)
    35.         pyb.udelay(100)
    36.         Trig.value(0)
    37.         while(Echo.value()==0):
    38.             Trig.value(1)
    39.             pyb.udelay(100)
    40.             Trig.value(0)
    41.             flag=0
    42.         if(Echo.value()==1):
    43.             flag=1
    44.             while(Echo.value()==1):           
    45.                 flag=1
    46.         if(num!=0):
    47.             #print('num:',num)
    48.             distance=num/10000*34000/2
    49.             print('Distance')
    50.             print(distance,'cm')
    51.             lcd_5110.lcd_write_string('Distance',0,0)
    52.             lcd_5110.lcd_write_string(str(distance),6,1)
    53.             lcd_5110.lcd_write_string('cm',58,1)
    54.             lcd_5110.lcd_write_string('This is a test of Distance',0,2)
    55.         flag=0
    56.         run=0
    复制代码



    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 17:32 , Processed in 0.112643 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.