Interface to Objects In Space from CircuitPython embedded hardware
Project description
Objects In Python
Interface to Objects In Space for CircuitPython embedded hardware.
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.