硬件


Shell Lab L3 是USB串口控制的可编程数码管

产品特点:

● 6位白色0.56英寸高亮数码管
● 所有段码均可编程控制,支持字母符号(部分)
● 支持闪烁模式
● 黑色3D打印外壳
● USB供电,线长2米
● 串口交互式控制,开放式通讯协议,自带命令帮助
● 不限制编程语言(推荐Python)
● 提供配套上位机“测试台软件”,自带众多示例代码
● 用pip安装mcush库(支持windows/linux/mac),编写python脚本

应用场景:

● 产品、软件循环测试时中间参量实时显示
● 产品生产线项目测试状态提示
● 实验进度状态提示
● 看板系统状态提示
● 物流仓储管理,货物定位提示
● 互动式游戏设计
● 教学实验设计,物理化学实验实时测量显示
● 户外无人值守场景,自动信息提示
● 工控设备系统集成
● 产品原型设计

软件

串口通讯常见问题
C语言编程常见问题

串口指令:

显示控制命令
=>disp --help
usage: disp [-c command] [-i index] [-v value] [-m message]
options:
 -c/--cmd        digits clrscr test blink brightness start stop raw hex ascii int
 -i/--idx        index param
 -v/--val        value param
 -m/--msg        display message
=> 

示例:

清屏
=>d -c clrscr
=> 
整屏显示字符串"HELLO":
=>d -m HELLO
=> 
第2个位置开始显示字符串"3.14":
=>d -i 1 -m 3.14
=> 
第4个字符显示数字9:
=>d -c hex -i 3 -v 9
=> 
清除第5个字符:
=>d -c raw -i 4 -v 0
=> 
整屏闪烁:
=>d -c blink
=> 
第3个字符闪烁:
=>d -c blink -i 3
=> 
整屏右对齐显示整数1234:
=>d -c int -v 1234
=> 

Python封装:

安装:pip3 install mcush
class ShellLabSegmentDisplay(mcush.ShellLab.ShellLab):
    def disp(self, cmd=None, idx=None, val=None, msg=None):
        # 底层的串口命令封装

    def ascii(self, val, idx):
        # 显示ASCII字符

    def blink(self, on, idx=None):
        # 闪烁设置

    def brightness(self, new_brightness=7):
        # 亮度设置

    def clrscr(self):
        # 清屏

    def dispFloat(self, val, precesion=1, align='right'):
        # 显示浮点数

    def dispHex(self, val, align='right'):
        # 显示多个HEX字符

    def dispInteger(self, val, align='right'):
        # 显示整数

    def dispString(self, string, align='left'):
        # 显示字符串

    def hex(self, val, idx):
        # 显示单个HEX字符

    def int(self, val, idx=None):
        # 显示整数字符

    def msg(self, msg, idx=None):
        # 显示字符串

    def raw(self, val, idx):
        # 显示自定义段码

示例:

import mcush
from mcush.linkong.ShellLab import ShellLabSegmentDisplay
disp = ShellLabSegmentDisplay('COM10')  # 填入对应的串口号
disp.dispString('HELLO')  # 显示字符串 
disp.dispInteger(123)  # 显示整数
disp.dispFloat(123.4)  # 显示浮点数(默认1位小数)

下载

Shell Lab 测试台软件


CH341虚拟串口驱动(Windows)


应用

显示演示
# this script runs in ShellLab Testbench Application
d = ShellLabSegmentDisplay(PORT)
d.dispString("SHELL-")
time.sleep(0.5)
d.dispString("LAB-L3")
time.sleep(1)
d.dispString("HELLO", align='right')
time.sleep(1)
for i in range(100):
    d.dispInteger( i )  # right aligned
    #d.dispInteger( i, align='left' )
f = 0.0
while True:
    d.dispFloat( f )  # precesion=1, right aligned
    #d.dispFloat( f, precesion=2 )
    f += random.random()