Skip to main content

Module for handling connections with the Lego Mario toy

Project description

pyLegoMario

pip install pyLegoMario

pyLegoMario is a script that connects to Lego Mario and reads its acceleromter, tile sensor, and pants data. To connect, you have to turn Mario on and then press the Bluetooth Button. See mario_sample.py for a nice sample. To disconnect you have to await Mario.disconnect() or await Mario.turn_off(), as well as set Mario.autoReconnect = False

TL;DR; "just show me how to use it!"

The Basics

from pyLegoMario import Mario, MarioWindow, run
# Initialize Mario
mario = Mario()
# Create GUI
MarioWindow(mario)
# call run() at the end of your program to keep the asyncio loop running
run()

Use Mario in Your Own Programs With Callback Functions

def my_pants_hook(mario: Mario, powerup: str) -> None:
    print(f"I'm wearing {powerup} pants!")

mario.add_pants_hook(my_pants_hook)

Use Mario as a Controller in Pygame!

import pygame
from pyLegoMario import PygameMario, AsyncClock
from pyLegoMario import ACC_EVENT, PANTS_EVENT, RGB_EVENT

pygame.init()
mario = PygameMario()
# use AsyncClock instead of pygame.time.Clock
clock = AsyncClock()
screen = pygame.display.set_mode(1200,600)
font = pygame.font.SysFont(None, 48)

while True:
    clock.tick()
    pygame.display.update()
    for event in pygame.event.get():
        if event.type == RGB_EVENT:
            screen.fill((0,0,0))
            # write the current camera value onto the screen
            text = font.render(event.value, True, (255,255,255))
            screen.blit(text, (10,10))
# no need to call run() here, AsyncClock handles this

You Can Do a Lot More!

Sample scripts can be found in the Github Repository

Tweet at me: @Jackomatrus

On Windows you will need Python 3.9 or higher for Bluetooth sockets to work properly.

I tested this on Mac and Windows. I have not tested this on Linux.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pylegomario-1.1.tar.gz (112.6 kB view hashes)

Uploaded Source

Built Distribution

pyLegoMario-1.1-py3-none-any.whl (110.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page