硬件


Shell Lab 继电器是USB串口控制的可编程测量模块

产品特点:

● 8路干簧管继电器
● USB供电,线长2米
● 内置蜂鸣器,可调频率
● 双色LED用于异常信息提示
● 3D打印外壳
● 串口交互式控制,开放式通讯协议,自带命令帮助
● 不限制编程语言(推荐Python)
● 提供配套上位机“测试台软件”,自带众多示例代码
● 用pip安装mcush库(支持windows/linux/mac),编写python脚本

应用场景:

● 产品研发生产测试辅助控制
● 教学实验设计,物理化学生物实验测量控制
● 户外无人值守场景,自动控制
● 工控设备系统集成
● 产品原型设计
● 艺术创作

软件

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

串口指令:

IO控制命令
=>gpio --help
usage: gpio [--loop[=loop_delay_ms]] [-p port_bit_name] [--input[=input_mode]] [--output[=output_mode]]
[--set[=set_high_val]] [--clr[=set_low_val]] [--toggle[=toggle_val]] [-n] [-U] [-D] [-O]
options:
 -l/--loop       default 1000ms
 -p/--port       port[.bit] name, eg 0[.0]
 -i/--input      set input mode mask
 -o/--output     set output mode mask
 -s/--set        set output high mask
 -c/--clr        set output low mask
 -t/--toggle     toggle output mask
 -n/--number     query
 -U/--pullup     pullup
 -D/--pulldown   pulldown
 -O/--opendrain  opendrain
=> 

示例:

0~7路继电器分别对应P0.0~P0.7引脚,且上电后已设置为低电平输出模式
导通第2路继电器
=>gpio -p0.2 -s
=> 
关闭第4路继电器
=>gpio -p0.4 -c
=> 
翻转第5路继电器
=>gpio -p0.5 -t
=> 
查询第6路继电器状态
=>gpio -p0.6
1   (0-关闭,1-打开)
=> 
同时关闭0~3共4个继电器
=>gpio -p0 -c 0xF
=> 
串口交互模式下,循环翻转所有继电器,翻转延时500毫秒
=>gpio -p0 -c 0xF
=>gpio -p0 -t 0xFF -l 500
(此时单片机等待用户中断,串口发送Ctrl-C退出)
=>(退出后打印新的提示符) 
蜂鸣器响一次
=>beep
=> 
设置指示灯错误号为12(上电默认零,绿色慢闪)
=>e 12  (红灯闪烁顺序:先十位后个位,1次快闪+2次快闪)
=> 

Python封装:

安装:pip3 install mcush
升级:pip3 install -U mcush
class ShellLab(mcush.Mcush.Mcush):
    def gpio(self, port, i=None, o=None, s=None, c=None, t=None):
        # 封装的串口命令,控制单片机GPIO

    def pinInput(self, pin):
        # 设置端口输入模式
    
    def pinRead(self, pin):
        # 读端口电平

    def pinIsHigh(self, pin):
        # 检测端口电平是否为高
   
    def pinIsLow(self, pin):
        # 检测端口电平是否为低
  
    def pinOutput(self, pin):
        # 设置端口输出模式

    def pinOutputHigh(self, pin):
        # 设置端口输出高电平

    def pinOutputLow(self, pin):
        # 设置端口输出低电平

    def pinClr(self, pin):
        # 设置端口低电平

    def pinSet(self, pin):
        # 设置端口高电平

    def pinSetVal(self, pin, val):
        # 设置端口电平

    def pinToggle(self, pin):
        # 翻转端口电平

示例:

import time
import mcush
from mcush.linkong.ShellLab import ShellLab
s = ShellLab('COM10')  # 填入对应的串口号
while True:
    s.pinToggle( '0.0' )  # 翻转第0路继电器
    time.sleep(2)

下载

Shell Lab 测试台软件


CH341虚拟串口驱动(Windows)


应用