Giter VIP home page Giter VIP logo

neobridge's Introduction


Control your neopixels from your PC!

Installation

pip install neobridge

Setup (board)

To start controlling neopixels directly from your PC, you have to setup your circuitpython board to receive serial commands. This is already programmed in the code.py script. Follow the steps below.

  1. Download code.py
  2. Move to the circuitpython board (RP2040 is officially supported)
  3. You will need to edit code.py to fit your setup! (Number of LEDs, Pin location, Order)
  4. Run the script. The script will run every bootup.

Setup (PC/Linux/MacOS)

Now that the board is ready for serial communication, you can now control it from your PC directly. This lets you program a lot of cool lighting effects! The example below creates a 'loading' bar like effect.

from itertools import cycle

from neobridge import Neobridge
import serial
import time

FRAME_RATE = 12 # How many frames per second to run code as.

# You have to provide the serial object.
a = Neobridge(serial.Serial(
            'LOCATION OF BOARD',
            baudrate=115200,
            timeout=0.05,
            write_timeout=1), 30)

a.setall((0, 0, 0)) # Set all LEDs to black (nothing)
a.show() # Update to show change!

c = cycle(range(0, 30))
for i in c:
    a.setone((255, 255, 255), i) # Set only one at a time.
    a.show()
    
    a.setall((0, 0, 0)) # Reset to black.
    time.sleep(1 / FRAME_RATE)

Before you can start controlling from PC, you have to enter the location of your board.

  • On Windows, this is usually under a name such as COM3, this can be different.
  • On Linux, it looks like /dev/ttyACM0
  • On MacOS, the name looks like /dev/tty.usbmodem1d12

These names can be different! Make sure to find the right one for the board!

Documentation

a = Neobridge(ser: serial.Serial, n_of_leds: int)
"""
Args:
        `ser (serial.Serial)`: Takes a `serial.Serial` object, this is from **pyserial**
        `n_of_leds (int)`: Number of LEDs on the board.
"""
neobridge.wait_for_response(self)
"""
*Sends a command to the board to wait for a response.*
"""
neobridge.setall(self, rgb: tuple)
"""
*Sets all LEDs on the board to the given RGB values.*
    Args:
        `rgb (tuple)`: RGB values to set.
"""
neobridge.setone(self, rgb: tuple, index: int)
"""
*Sets a single LED on the board to the given RGB values.*
    Args:
        rgb (tuple): RGB values to set.
        index (int): Index of the LED to set.
"""
neobridge.setlist(self, rgb_list: list)
"""
*Gives the board a list of RGB values to set.*
    Args:
        rgb (rgb_list): RGB list to set.
"""
neobridge.show(self)
"""
Sends a command to the board to update the LEDs.
"""

TO-DO List

  • Create automated installer for the board. (could do?)

neobridge's People

Contributors

porplax avatar localis9 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.