Skip to main content

Objects In Python

Interface to Objects In Space for CircuitPython embedded hardware.

build status version license code style

Install

Download the compiled module and copy them to your board. Note there are two versions: "full" or regular for boards with more memory (eg, M4/samd51) and "tiny" for boards with less memory (eg, M0/samd21). When using the tiny build, be sure to rename the module to oip.mpy.

$ cp -X oip.mpy /Volumes/CIRCUITPY/oip.mpy

OR

$ cp -X oip-tiny.mpy /Volumes/CIRCUITPY/oip.mpy

Overview

Objects In Python uses a simple, event-based API to execute your functions when buttons are pressed or game values update. Getting started is as easy as importing the module, creating the interface, and starting the connection:

from oip import OIP

oip = OIP()
...
oip.start()

Turn lights on or off when game state changes:

@oip.on("IFF_ACTIVE")
def iff_active(now, value):
    pixels[0] = BLUE if value else RED

Connect buttons to game commands:

@oip.press(board.BUTTON_A)
def thrust_while_holding(now, value):
    oip.execute("BURN_MAIN_ENGINE" if value else "STOP_MAIN_ENGINE")

With the full build, use helper classes to mitigate typoes:

@oip.on(Boolean.IFF_ACTIVE)
def iff_active(now, value):
    ...

@oip.press(board.BUTTON_A)
def thrust_while_holding(now, value):
    oip.execute(Command.BURN_MAIN_ENGINE if value else Command.STOP_MAIN_ENGINE)

Check out the example projects for more ideas.

License

Objects In Python is copyright John Reese, and licensed under the MIT license. I am providing code in this repository to you under an open source license. This is my personal repository; the license you receive to my code is from me and not from my employer. See the LICENSE file for details.

Metadata

Release files for objectsinpython 0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for objectsinpython 0.9
File Size Uploaded
objectsinpython-0.9.tar.gz 12.3 kB Details

Release files / objectsinpython-0.9.tar.gz

Download URL objectsinpython-0.9.tar.gz
Size 12.3 kB
Tags Source
SHA-256 checksum
How to use checksums
13e8c332309d83db9982cdcb64ee8294425a5457c61e0e95d962614bb183d769
BLAKE2b-256 checksum
How to use checksums
172d93c2d7050554e1b2345e721dde36f4a07d18005cff826f4a1b268ccc7c0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

Release history Release notifications | RSS feed

This release

0.9 This release

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page