当前位置:   article > 正文

【micropython】microbit micropython使用第三方库实现四位数码管显示_micropython安装第三方库

micropython安装第三方库

模块及接线

主控:microbit
数码管:TM1650

接线方式:
microbit的IIC接口为PIN19、PIN20,分别为SCL、SDA,接到TM1650的SCL、SDA脚上

即:

microbitTM1650
PIN19SCL
PIN20SDA

1、microbit文件系统

当我们使用内置库函数时,只需要使用import功能将相关的库加载进来即可。
我们在获取第三方库或者自行编写库文件时,一般为.PY的源代码文件。我们首先需要将文件写入到microbit的文件系统中。
在micropython中,可以通过内置os库来操作文件。
API 功能
os.listdir() 显示系统中的文件
os.remove(filename) 删除文件
os.size(filename) 查看文件大小
os.uname() 显示MicroPython和设备信息
在REPL交互界面中,我们可以使用os库查看系统中的文件,例如
从上图中我们可以看出,通过MU软件编写的程序,无论我们文件名命名为什么名称,下载进入microbit后,都是main.PY文件。
在这里插入图片描述

2、安装第三方库

在本章节内容中,我们需要将第三方库“FourDigitDisplay.py”文件写入到microbit文件系统中,我们使用MU的文件功能,如下图所示:
在这里插入图片描述

点击文件功能后,可以在MU软件中看到如下图所示窗口:
在这里插入图片描述

上图窗口中,左侧为microbit系统中的文件,右侧为电脑文件夹内的文件。注意在这个软件中,我们无法选择路径,电脑上的默认路径为“C:\Users\用户名\mu_code”文件夹。
在使用文件传输功能前,我们首先将第三方库文件拷贝至MU默认路径下。
然后使用鼠标左键点住需要传输的文件,拖动到左侧对话框内。如下图所示:
在这里插入图片描述

拷贝完成后,可以看到左侧对话框出现我们需要的文件,并且右下角会出现提示“FourDigitDispaly.py已成功复制到了micro:bit”

在这里插入图片描述

3、使用第三方库

第三方库安装后,我们即可以通过import功能加载相应的函数。
1、加载库
在这里插入图片描述

2、初始化:初始化一个类
在这里插入图片描述

3、显示数字100
在这里插入图片描述

更多功能可以参考TM1650库函数的API进行使用。

FourDigitDisplay.py 源码

'''
    microbit drive for Four Digit LED Display (TM1650)

    http://www.micropython.org.cn
'''
from microbit import *

COMMAND_I2C_ADDRESS = 0x24
DISPLAY_I2C_ADDRESS = 0x34

buf = (0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71)

class FourDigitDisplay():
    def __init__(self):
        self._intensity = 3
        self.dbuf = [0, 0, 0, 0]
        self.tbuf = bytearray(1)
        self.on()

    def intensity(self, dat = -1):
        if dat < 0 or dat > 8:
            return self._intensity
        if dat == 0:
            self.off()
        else:
            self._intensity = dat
            self.cmd((dat<<4)|0x01)

    def cmd(self, c):
        self.tbuf[0] = c
        i2c.write(COMMAND_I2C_ADDRESS, self.tbuf)

    def dat(self, bit, d):
        self.tbuf[0] = d
        i2c.write(DISPLAY_I2C_ADDRESS + (bit%4), self.tbuf)

    def on(self):
        self.cmd((self._intensity<<4)|0x01)

    def off(self):
        self._intensity = 0
        self.cmd(0)

    def clear(self):
        self.dat(0, 0)
        self.dat(1, 0)
        self.dat(2, 0)
        self.dat(3, 0)
        self.dbuf = [0, 0, 0, 0]

    def showbit(self, num, bit = 0):
        self.dbuf[bit%4] = buf[num%16]
        self.dat(bit, buf[num%16])

    def shownum(self, num):
        if num < 0:
            self.dat(0, 0x40)   # '-'
            num = -num
        else:
            self.showbit((num // 1000) % 10)
        self.showbit(num % 10, 3)
        self.showbit((num // 10) % 10, 2)
        self.showbit((num // 100) % 10, 1)

    def showhex(self, num):
        if num < 0:
            self.dat(0, 0x40)   # '-'
            num = -num
        else:
            self.showbit((num >> 12) % 16)
        self.showbit(num % 16, 3)
        self.showbit((num >> 4) % 16, 2)
        self.showbit((num >> 8) % 16, 1)

    def showDP(self, bit = 1, show = True):
        if show:
            self.dat(bit, self.dbuf[bit] | 0x80)
        else:
            self.dat(bit, self.dbuf[bit] & 0x7F)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/295217
推荐阅读
相关标签
  

闽ICP备14008679号