Token导航 LogoToken导航TokenDH.com
basicmicro python logo
浏览器工具stdio官方级别未说明来源级核验

basicmicro python

MCP Server

用于控制Basicmicro电机控制器的Python 3库,支持串行通信、类型提示、详细日志记录和上下文管理。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
Python浏览器自动化网页抓取

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

basicmicro

提供方

basicmicro

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install basicmicro

详细介绍

基本微型Python库

一个现代化的Python 3库,用于使用Basicmicro包串行模式控制Basicmicro电机控制器。

特性

  • 完全支持所有Basicmicro数据包串行命令
  • 全面的类型提示,以实现更好的IDE集成
  • 调试详细日志记录
  • 上下文管理器支持安全资源处理
  • 异常处理,实现稳健的错误管理
  • 大量文件
  • 模块化文件结构,可更好地维护

安装

来自PyPI(推荐)

pip install basicmicro

来源

克隆存储库并安装:

git clone https://github.com/basicmicro/basicmicro_python.git
cd basicmicro_python
pip install -e .

平台特定说明

视窗

在Windows上,您需要为控制器标识正确的COM端口:

  1. 打开设备管理器(右键单击“开始”菜单→ 设备管理器)
  2. 展开“端口(COM和LPT)”
  3. 找到您的控制器(例如“USB串行设备”)并记下COM端口(例如COM3)

示例用法:

controller = Basicmicro("COM3", 38400)

Linux

在Linux上,串行端口通常位于/dev目录中:

controller = Basicmicro("/dev/ttyACM0", 38400)  # or /dev/ttyUSB0

您可能需要将用户添加到“dialout”组以获得访问串行端口的权限:

sudo usermod -a -G dialout $USER

然后注销并重新登录以使更改生效。

macOS

在macOS上,串行端口将位于/dev目录中:

controller = Basicmicro("/dev/tty.usbserial-XXXXXXXX", 38400)

确切的名称将取决于您的USB串行适配器。

快速开始

import logging
from basicmicro import Basicmicro

# Enable logging
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)

# Using context manager for automatic resource handling
with Basicmicro("/dev/ttyACM0", 38400) as controller:  # Use "COM3" on Windows
    address = 0x80  # Default address

    # Simple motor control
    controller.DutyM1(address, 16384)  # Half speed forward for motor 1
    controller.DutyM2(address, -8192)  # Quarter speed backward for motor 2

    # Read encoder values
    enc1 = controller.ReadEncM1(address)
    if enc1[0]:  # Check if read was successful
        print(f"Encoder 1 count: {enc1[1]}")

    # Set velocity PID values
    controller.SetM1VelocityPID(address, kp=1.0, ki=0.5, kd=0.25, qpps=44000)

使用示例

基本电机控制

from basicmicro import Basicmicro

# Initialize and open connection
controller = Basicmicro("/dev/ttyACM0", 38400)  # Use "COM3" on Windows
controller.Open()

address = 0x80  # Default controller address

# Control motors by duty cycle (-32767 to +32767)
controller.DutyM1(address, 16384)  # 50% forward
controller.DutyM2(address, -8192)  # 25% backward

# Control motors by speed (encoder counts per second)
controller.SpeedM1(address, 1000)  # 1000 counts per second forward
controller.SpeedM2(address, -500)  # 500 counts per second backward

# Control both motors simultaneously
controller.DutyM1M2(address, 8192, -8192)  # Motor 1 forward, Motor 2 backward

# Always close connection when done
controller.close()

使用上下文管理器

from basicmicro import Basicmicro

# The context manager automatically closes the connection when done
with Basicmicro("/dev/ttyACM0", 38400) as controller:  # Use "COM3" on Windows
    address = 0x80
    
    # Read battery voltages
    main_batt = controller.ReadMainBatteryVoltage(address)
    logic_batt = controller.ReadLogicBatteryVoltage(address)
    
    if main_batt[0] and logic_batt[0]:
        print(f"Main battery: {main_batt[1]/10.0}V")
        print(f"Logic battery: {logic_batt[1]/10.0}V")
    
    # Read temperatures
    temp = controller.ReadTemp(address)
    if temp[0]:
        print(f"Temperature: {temp[1]/10.0}°C")

读取编码器和速度

from basicmicro import Basicmicro
import time

controller = Basicmicro("/dev/ttyACM0", 38400)  # Use "COM3" on Windows
controller.Open()
address = 0x80

# Reset encoders to zero
controller.ResetEncoders(address)

# Set motor speed
controller.SpeedM1(address, 1000)  # 1000 counts per second

# Monitor encoders and speed
try:
    for _ in range(10):
        enc = controller.ReadEncM1(address)
        speed = controller.ReadSpeedM1(address)
        
        if enc[0] and speed[0]:
            print(f"Encoder: {enc[1]}, Speed: {speed[1]} counts/sec, Status: {enc[2]}")
        
        time.sleep(0.5)
finally:
    controller.DutyM1(address, 0)  # Stop motor
    controller.close()

设置PID参数

from basicmicro import Basicmicro

controller = Basicmicro("/dev/ttyACM0", 38400)  # Use "COM3" on Windows
controller.Open()
address = 0x80

# Set velocity PID parameters
kp = 1.0  # Proportional constant
ki = 0.5  # Integral constant
kd = 0.25  # Derivative constant
qpps = 44000  # Maximum speed in quadrature pulses per second

controller.SetM1VelocityPID(address, kp, ki, kd, qpps)

# Read back the PID settings to verify
result = controller.ReadM1VelocityPID(address)
if result[0]:
    print(f"P: {result[1]}, I: {result[2]}, D: {result[3]}, QPPS: {result[4]}")

controller.close()

示例

有关更详细的示例,请查看 examples 目录:

  1. 基本动作:演示基本的运动控制
  2. 加速和位置:显示加速时的速度和位置控制
  3. PID配置:读取和设置PID参数的示例
  4. 状态和诊断:读取控制器状态和诊断信息
  5. 配置管理:管理控制器设置
  6. CAN通信:使用CAN总线接口
  7. 混合模式和差动驱动:控制差动驱动机器人
  8. 高级脚本:多线程控制和复杂序列

使用以下命令运行示例:

python -m examples.01_basic_movement -p COM3  # On Windows
python -m examples.01_basic_movement -p /dev/ttyACM0  # On Linux

日志记录

该库使用Python的标准日志模块。要启用日志记录,请执行以下操作:

import logging

# Configure global logging level
logging.basicConfig(
    level=logging.INFO,  # Set to DEBUG for more detailed output
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)

# Enable DEBUG level for just the basicmicro module
logging.getLogger('basicmicro').setLevel(logging.DEBUG)

文档

有关API的详细文档,请参阅 API 参考.

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

贡献

欢迎投稿!请随时提交拉取请求。

______________________________________________________________________

支持的硬件

此库适用于所有当前的Basicmicro电机控制器:

资源

目录标签

目录标签

Python浏览器自动化网页抓取电机控制本地部署串行通信Python库机器人技术自动化

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP