概要
小龟小车主控板支持一枚SSD1306芯片做为系统屏幕(I2C协议),小伙伴在使用的时候可将屏幕模块的四根管脚插入系统I2C总线对应的管脚即可。在执行显示输出前,如不使用car.screen.open接口配置屏幕的特征的话,小车系统会议默认的参数初始化屏幕。
是插入到主控板中央的系统总线插口!
系统屏幕的所有接口都位于car.screen集合内。
打开屏幕(open)
语法:
- car.screen.open(width:int, height:int, i2c_addr:int)->bool
- car.screen.open()
说明:
初始化SSD1306屏幕,如不进行初始化,在首次使用相关的屏幕输出接口的时候,会以默认配置初始化屏幕。
默认配置:128像素宽、64像素高、I2C地址60。
参数:
- width 屏幕宽度,单位像素。如不填,则默认128像素。
- height 屏幕高度,单位像素。如不填,则默认64像素。
- i2c_addr 屏幕模块的I2C地址,如不填,则默认60。
- 返回值 处理是否成功。
范例:
#打开屏幕,并向系统登记屏幕大小为128*64,I2C地址60
car.screen.open(128, 64, 60)
调节屏幕亮度(brightness)
语法:
- car.screen.brightness(level:int)->bool
说明:
调节屏幕亮度。
参数:
- level 亮度级别 0到255,0最暗,255最亮。
范例:
#调节屏幕到最亮
car.screen.brightness(255)
清空屏幕(clear)
语法:
- car.screen.clear()
说明:
清空屏幕上所有内容。
参数:
- 无
范例:
#清空屏幕
car.screen.clear()
关闭屏幕(close)
语法:
car.screen.close()
说明:
关闭屏幕,屏幕上的显示内容也会被同步清空。
范例:
car.screen.close()
旋转屏幕(rotate)
语法:
car.screen.rotate(mode:str)->bool
说明:
旋转屏幕,因为屏幕可以自由的安装到主控板任意一面或者外壳的任何地方,如果显示内容的方向不对,则可以通过本函数接口旋转屏幕。
参数:
- mode 旋转方式: B-180旋转,空格是默认模式。
- 返回值 处理是否成功。
范例:
#旋转屏幕180度
car.screen.rotate("B")
查询屏幕尺寸(size)
语法:
car.screen.size()->(width, height)
说明:
查询返回当前屏幕的宽和高。
参数:
- 返回值 tuple数组,(width, height)。
#查询登记的屏幕大小
car.screen.size()
绘制点(point)
语法:
car.screen.point(x:int, y:int, v:int)->bool
说明:
对屏幕上指定XY坐标的某一点设置或者清空显示。。
参数:
- x 屏幕上指定点的X坐标(横坐标从0开始,到屏幕宽减一结束)。
- y 屏幕上指定点的Y坐标(纵坐标从0开始,到屏幕高减一结束)。
- v 0代表清空该点的显示,1代表该点点亮显示出来。
- 返回值 处理是否成功。
范例:
#给屏幕上x=5, y=6的点设置开启
car.screen.point(5, 6, 1)
打印文本(print)
语法:
car.screen.print(text:str, x:int, y:int)->bool
说明:
在屏幕上指定XY坐标的位置开始打印text文本。
本接口在打印内容超过屏幕边界以后,会忽略后续打印,不会自动换行到下一行。
参数:
- text 需要被打印的文本内容,支持UTF-8编码格式的各种中文外文字符。
- x 屏幕上指定点的X坐标。
- y 屏幕上指定点的Y坐标。
- 返回值 处理是否成功。
范例:
#在屏幕上x=1, y=2处打印ABC三个字母
car.screen.print("ABC", 1, 2)
绘制像素图基于字节(draw)
语法:
car.screen.draw(image:str, width:int, height:int, x:int, y:int)->bool
说明:
在屏幕上指定XY坐标的位置开始绘制image。
image是一个字符串,其中每一个字节代表一个像素,空格代表该像素不显示,其它字符代表该显示显示。width和height是该图像的宽和高,如果绘制超过屏幕边缘会被自动截掉。
参数:
- image 代表图像的字符串,一个字节代表一个像素(空格是该像素不显示,其它字符则显示)
- width 图像自身的宽度(缺省值:屏幕宽)
- height 图像自身的高度(缺省值:屏幕高)
- x 图像绘制到屏幕上左上角对应点的X坐标(缺省值:0)。
- y 图像绘制到屏幕上左上角对应点的Y坐标(缺省值:0)。
- 返回值 处理是否成功。
范例:
#在屏幕x=0, y=0处绘制一条14个像素的虚线
car.screen.draw(" ** ** ** ", 14, 1, 0, 0)
绘制像素图基于位(draw_bits)
语法:
car.screen.draw_bits(image:str, width:int, height:int, x:int, y:int)->bool
说明:
在屏幕上指定XY坐标的位置开始绘制image。
image是一个字符串,其中每一个字节的一个位(bit)代表一个像素,0代表该像素不显示,1代表该显示显示。width和height是该图像的宽和高,如果绘制超过屏幕边缘会被自动截掉。
参数:
- image 代表图像的字符串,一个字节里的每一个位(bit)代表一个像素(0不显示,1则显示),每一行最后一个像素如果不能抽满一个字节,则补全一个字节。下一行的第一个像素从新的字节开始。
- width 图像自身的宽度(缺省值:屏幕宽)
- height 图像自身的高度(缺省值:屏幕高)
- x 图像绘制到屏幕上左上角对应点的X坐标(缺省值:0)。
- y 图像绘制到屏幕上左上角对应点的Y坐标(缺省值:0)。
- 返回值 处理是否成功。
范例:
#在屏幕x=0,y=0处绘制一条16个像素的实线
car.screen.draw_bits(b"\xFF\xFF", 16, 1, 0, 0)
刷新屏幕(flush)
语法:
car.screen.flush()->bool
说明:
重绘屏幕。在进行类似绘制点的操作,不会立刻看到效果,而需要执行这个flush输出绘制结果。
参数:
- 返回值 处理是否成功。
范例:
car.screen.flush()