← 返回
效率工具 中文

Sphero Mini Control

Control Sphero Mini robot ball via Bluetooth Low Energy. Roll, change colors, read sensors, draw shapes, and play with cats. Uses bleak for cross-platform BLE support (macOS/Windows/Linux).
通过蓝牙低功耗控制 Sphero Mini 机器人球,实现滚动、变色、读取传感器、绘图和与猫咪玩耍。支持 macOS/Windows/Linux,使用 bleak 库。
joneschi
效率工具 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 1
Stars
📥 2,063
下载
💾 74
安装
1
版本
#automation#ble#bluetooth#cats#fun#hardware#iot#latest#led#movement#pets#robot#sphero

概述

Sphero Mini Control

Control your Sphero Mini robot ball via Bluetooth Low Energy using Python and bleak.

Features

  • 🎨 LED Control - Change main LED color and back LED intensity
  • 🎯 Movement - Roll in any direction at variable speeds
  • 🎲 Random Mode - Cat play mode with unpredictable movements
  • 📐 Draw Shapes - Squares, stars, circles with programmable patterns
  • 🔋 Power Management - Wake, sleep, and check battery status
  • 🧭 Heading Control - Reset and control orientation
  • 🖥️ Cross-platform - Works on macOS, Windows, and Linux (uses bleak, not bluepy)

Setup

1. Install Dependencies

All platforms:

pip3 install bleak

2. Find Your Sphero Mini's MAC/UUID

macOS/Windows:

Use the included scan script:

python3 scripts/scan_sphero.py

Look for a device named like "SM-XXXX" (Sphero Mini).

3. Update MAC Address

Edit the scripts and replace SPHERO_MAC with your device's address.

Quick Start

Scan for Sphero Mini

python3 scripts/scan_sphero.py

Change Color

import asyncio
from sphero_mini_bleak import SpheroMini

async def change_color():
    sphero = SpheroMini("YOUR-MAC-ADDRESS")
    await sphero.connect()
    await sphero.wake()
    
    # Set to red
    await sphero.setLEDColor(255, 0, 0)
    await asyncio.sleep(2)
    
    await sphero.disconnect()

asyncio.run(change_color())

Roll Forward

import asyncio
from sphero_mini_bleak import SpheroMini

async def roll_forward():
    sphero = SpheroMini("YOUR-MAC-ADDRESS")
    await sphero.connect()
    await sphero.wake()
    
    # Roll forward at speed 100
    await sphero.roll(100, 0)
    await asyncio.sleep(3)
    
    # Stop
    await sphero.roll(0, 0)
    await sphero.disconnect()

asyncio.run(roll_forward())

Pre-built Scripts

🐱 Cat Play Mode (Random Movement)

python3 scripts/cat_play.py

Makes Sphero move randomly for 1 minute with color changes - perfect for playing with cats!

📐 Draw Shapes

# Draw a square
python3 scripts/draw_square.py

# Draw a star
python3 scripts/draw_star.py

🎨 Color Control

# Set specific color
python3 scripts/set_color.py red
python3 scripts/set_color.py 255 0 128  # Custom RGB

Common Commands

Movement

# Roll (speed: 0-255, heading: 0-359 degrees)
await sphero.roll(speed=100, heading=0)    # Forward
await sphero.roll(100, 90)                  # Right
await sphero.roll(100, 180)                 # Backward
await sphero.roll(100, 270)                 # Left
await sphero.roll(0, 0)                     # Stop

LED Control

# Main LED color (RGB values 0-255)
await sphero.setLEDColor(red=255, green=0, blue=0)      # Red
await sphero.setLEDColor(0, 255, 0)                     # Green
await sphero.setLEDColor(0, 0, 255)                     # Blue
await sphero.setLEDColor(128, 0, 128)                   # Purple

# Back LED brightness (0-255)
await sphero.setBackLED(255)  # Full brightness
await sphero.setBackLED(0)    # Off

Power Management

# Wake from sleep
await sphero.wake()

# Go to sleep (low power, BLE still on)
await sphero.sleep()

# Check battery voltage
voltage = await sphero.getBatteryVoltage()
print(f"Battery: {voltage}V")

Tips

  • Wake Sphero: Shake it to wake from deep sleep before connecting
  • Connection timeout: If connection fails, shake Sphero and try again
  • Finding Sphero: After scripts finish, Sphero is set to white for easy visibility
  • Cat safety: Use soft surfaces when playing with cats to avoid damage

Example: Cat Play Mode

The cat play mode script makes Sphero:

  • Move in random directions (40-120 speed)
  • Change colors randomly (6 vibrant colors)
  • Stop unpredictably (30% chance for brief pauses)
  • Run for exactly 1 minute
  • End with white color so you can find it

Perfect for entertaining cats! 🐱

Troubleshooting

Cannot Connect

  1. Shake Sphero to wake it up
  2. Ensure it's not connected to the Sphero Edu app
  3. Check MAC/UUID address is correct
  4. Try increasing timeout in sphero_mini_bleak.py

Sphero Doesn't Move

  1. Call await sphero.wake() first
  2. Wait 1-2 seconds after waking
  3. Check battery level

Colors Don't Change

  1. Add await asyncio.sleep(0.5) between color changes
  2. Ensure you called await sphero.wake()

Library Credits

This skill uses:

  • sphero_mini_win by trflorian - Sphero Mini control library using bleak
  • bleak - Cross-platform Bluetooth Low Energy library

Note: This library is for Sphero Mini only. For other Sphero models (BB8, SPRK+, Bolt), use pysphero instead.

Advanced Usage

Custom Patterns

Create your own movement patterns:

async def figure_eight():
    # Draw a figure-8 pattern
    for i in range(2):  # Two loops
        for heading in range(0, 360, 10):
            await sphero.roll(80, heading)
            await asyncio.sleep(0.1)

Color Cycling

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)

Documentation

  • SKILL.md — This file
  • references/api.md — Complete API reference
  • references/troubleshooting.md — Common issues and solutions
  • scripts/ — Ready-to-use example scripts

License

MIT

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-03-28 16:40 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

productivity

Weather

steipete
获取当前天气和预报(无需API密钥)
★ 444 📥 226,115
productivity

Word / DOCX

ivangdavila
创建、检查和编辑 Microsoft Word 文档及 DOCX 文件,支持样式、编号、修订记录、表格、分节符及兼容性检查等功能。
★ 438 📥 147,198
developer-tools

Home Assistant CLI

joneschi
利用官方 hass-cli 工具进行高级 Home Assistant 控制。支持自动补全、事件监控、历史查询及丰富的输出格式化。作为基于 curl 的 homeassistant 技能的替代方案,若您需要更佳的交互体验、发现功能与格式化效
★ 13 📥 4,625