赞
踩
主控:microbit
数码管:TM1650
接线方式:
microbit的IIC接口为PIN19、PIN20,分别为SCL、SDA,接到TM1650的SCL、SDA脚上
即:
microbit | TM1650 |
---|---|
PIN19 | SCL |
PIN20 | SDA |
当我们使用内置库函数时,只需要使用import功能将相关的库加载进来即可。
我们在获取第三方库或者自行编写库文件时,一般为.PY的源代码文件。我们首先需要将文件写入到microbit的文件系统中。
在micropython中,可以通过内置os库来操作文件。
API 功能
os.listdir() 显示系统中的文件
os.remove(filename) 删除文件
os.size(filename) 查看文件大小
os.uname() 显示MicroPython和设备信息
在REPL交互界面中,我们可以使用os库查看系统中的文件,例如
从上图中我们可以看出,通过MU软件编写的程序,无论我们文件名命名为什么名称,下载进入microbit后,都是main.PY文件。
在本章节内容中,我们需要将第三方库“FourDigitDisplay.py”文件写入到microbit文件系统中,我们使用MU的文件功能,如下图所示:
点击文件功能后,可以在MU软件中看到如下图所示窗口:
上图窗口中,左侧为microbit系统中的文件,右侧为电脑文件夹内的文件。注意在这个软件中,我们无法选择路径,电脑上的默认路径为“C:\Users\用户名\mu_code”文件夹。
在使用文件传输功能前,我们首先将第三方库文件拷贝至MU默认路径下。
然后使用鼠标左键点住需要传输的文件,拖动到左侧对话框内。如下图所示:
拷贝完成后,可以看到左侧对话框出现我们需要的文件,并且右下角会出现提示“FourDigitDispaly.py已成功复制到了micro:bit”
第三方库安装后,我们即可以通过import功能加载相应的函数。
1、加载库
2、初始化:初始化一个类
3、显示数字100
更多功能可以参考TM1650库函数的API进行使用。
''' 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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。