Sphero Mini Control

Polar Sponsor
爱发电 赞助
.NET 9.0

通过蓝牙低功耗控制 Sphero Mini 机器人球,可滚动、变色、读取传感器、绘图并与猫玩耍。使用 bleak 实现跨平台 BLE 支持(macOS/Windows/Linux)。

Sphero迷你控制器

功能概述

Sphero迷你控制器是一项面向实际任务的技能,主要用于通过蓝牙低能通过 Python 和 暗色控制您的 Sphero迷你机器人球;Features QQ LED控制器 - 改变主LED颜色和后LED强度 X运动 - 滚 i。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。

使用与执行

从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Sphero Mini 控制

通过 Bluetooth Low Energy(蓝牙低功耗)使用 Python 和 bleak 控制你的 Sphero Mini 机器人球。

功能特性

  • 🎨 LED 控制 — 调整主 LED 颜色与背光 LED 亮度
  • 🎯 运动控制 — 以可变速度向任意方向滚动
  • 🎲 随机模式 — “猫玩模式”,执行不可预测的运动
  • 📐 绘制图形 — 支持正方形、星形、圆形等,支持自定义编程图案
  • 🔋 电源管理 — 唤醒、休眠及查询电池状态
  • 🧭 朝向控制 — 重置并精确控制球体朝向
  • 🖥️ 跨平台支持 — 兼容 macOS、Windows 和 Linux(基于 bleak,不依赖 bluepy)

环境准备

1. 安装依赖项

所有平台:

pip3 install bleak

2. 查找 Sphero Mini 的 MAC 地址 / UUID

macOS / Windows:
使用附带的扫描脚本:

python3 scripts/scan_sphero.py

在结果中查找名称类似 "SM-XXXX" 的设备(即 Sphero Mini)。

3. 更新 MAC 地址

编辑各脚本文件,将其中的 SPHERO_MAC 替换为你设备的实际地址。

快速上手

扫描 Sphero Mini

python3 scripts/scan_sphero.py

更改颜色

import asyncio
from sphero_mini_bleak import SpheroMini

async def change_color():
    sphero = SpheroMini("YOUR-MAC-ADDRESS")
    await sphero.connect()
    await sphero.wake()
    
    # 设置为红色
    await sphero.setLEDColor(255, 0, 0)
    await asyncio.sleep(2)
    
    await sphero.disconnect()

asyncio.run(change_color())

向前滚动

import asyncio
from sphero_mini_bleak import SpheroMini

async def roll_forward():
    sphero = SpheroMini("YOUR-MAC-ADDRESS")
    await sphero.connect()
    await sphero.wake()
    
    # 以速度 100 向前滚动
    await sphero.roll(100, 0)
    await asyncio.sleep(3)
    
    # 停止
    await sphero.roll(0, 0)
    await sphero.disconnect()

asyncio.run(roll_forward())

预置脚本

🐱 猫玩模式(随机运动)

python3 scripts/cat_play.py

使 Sphero Mini 在 1 分钟内随机运动并变换颜色——非常适合逗猫!

📐 绘制图形

# 绘制正方形
python3 scripts/draw_square.py

# 绘制星形
python3 scripts/draw_star.py

🎨 颜色控制

# 设置指定颜色
python3 scripts/set_color.py red
python3 scripts/set_color.py 255 0 128  # 自定义 RGB 值

常用命令

运动控制

# 滚动(速度:0–255;朝向:0–359 度)
await sphero.roll(speed=100, heading=0)    # 向前
await sphero.roll(100, 90)                  # 向右
await sphero.roll(100, 180)                 # 向后
await sphero.roll(100, 270)                 # 向左
await sphero.roll(0, 0)                     # 停止

LED 控制

# 主 LED 颜色(RGB 值范围:0–255)
await sphero.setLEDColor(red=255, green=0, blue=0)      # 红色
await sphero.setLEDColor(0, 255, 0)                     # 绿色
await sphero.setLEDColor(0, 0, 255)                     # 蓝色
await sphero.setLEDColor(128, 0, 128)                   # 紫色

# 背光 LED 亮度(0–255)
await sphero.setBackLED(255)  # 最大亮度
await sphero.setBackLED(0)    # 关闭

电源管理

# 从休眠中唤醒
await sphero.wake()

# 进入休眠(低功耗,BLE 仍保持开启)
await sphero.sleep()

# 查询电池电压
voltage = await sphero.getBatteryVoltage()
print(f"Battery: {voltage}V")

使用提示

  • 唤醒 Sphero:连接前请摇晃 Sphero Mini,使其从深度休眠中唤醒
  • 连接超时:若连接失败,请摇晃 Sphero Mini 后重试
  • 定位 Sphero:脚本运行结束后,Sphero Mini 将自动设为白色,便于寻找
  • 猫咪安全:与猫互动时请使用柔软表面,避免设备损伤

示例:猫玩模式

猫玩模式脚本会使 Sphero Mini 执行以下行为:

  • 以 40–120 的速度随机方向移动
  • 在 6 种高饱和度颜色之间随机切换
  • 以 30% 概率触发短暂停顿(不可预测)
  • 精确运行 1 分钟
  • 结束时设为白色,方便你快速找到它

专为逗猫设计!🐱

故障排查

无法连接

  1. 摇晃 Sphero Mini 以唤醒设备
  2. 确保其未连接至 Sphero Edu App
  3. 确认 MAC / UUID 地址输入正确
  4. 尝试在 sphero_mini_bleak.py 中增大连接超时时间

Sphero Mini 不运动

  1. 务必首先调用 await sphero.wake()
  2. 唤醒后等待 1–2 秒再发送运动指令
  3. 检查电池电量是否充足

颜色不变化

  1. 在两次颜色设置之间添加 await asyncio.sleep(0.5)
  2. 确保已调用 await sphero.wake()

库引用说明

本项目使用以下开源库:

  • sphero_mini_win by trflorian — 基于 bleak 的 Sphero Mini 控制库
  • bleak — 跨平台 Bluetooth Low Energy(BLE)库

注意:本库仅适用于 Sphero Mini。如需控制其他型号(如 BB8、SPRK+、Bolt),请改用 pysphero。

高级用法

自定义运动模式

创建你自己的运动路径:

async def figure_eight():
    # 绘制数字“8”轨迹
    for i in range(2):  # 循环两次
        for heading in range(0, 360, 10):
            await sphero.roll(80, heading)
            await asyncio.sleep(0.1)

彩虹色循环

async def rainbow():
    colors = [
        (255, 0, 0), (255, 127, 0), (255, 255, 0),
        (0, 255, 0), (0, 0, 255), (75, 0, 130), (148, 0, 211)
    ]
    for r, g, b in colors:
        await sphero.setLEDColor(r, g, b)
        await asyncio.sleep(1)

文档说明

  • SKILL.md — 当前文档
  • references/api.md — 完整 API 参考手册
  • references/troubleshooting.md — 常见问题与解决方案
  • scripts/ — 即开即用的示例脚本目录

许可证

MIT

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.9万人学习