|
|
|
|
|
|
|
|
|
|
|
# tickerPi
|
|
|
|
|
|
|
|
tickerPi is a Python Program to handle WS281X LED interactions on a Raspberry Pi
|
|
|
|
* WS2812b has only been tested at this time
|
|
|
|
|
|
|
|
## Authors
|
|
|
|
|
|
|
|
* **Justin Healy**
|
|
|
|
* **Vin Presciutti**
|
|
|
|
|
|
|
|
## Requirements
|
|
|
|
|
|
|
|
1. Python 3 - As Python 2 support is no longer available
|
|
|
|
2. Python 3 PIP
|
|
|
|
3. Python SMBus
|
|
|
|
4. RPI.GPIO
|
|
|
|
5. Adafruit Blinka
|
|
|
|
6. Adafruit Neopixel
|
|
|
|
7. RPI WS281X Libraries
|
|
|
|
8. Adafruit PixelFramebuffer
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
1. Standard Updates for Raspberry Pi:
|
|
|
|
```
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get upgrade
|
|
|
|
sudo pip3 install --upgrade setuptools
|
|
|
|
```
|
|
|
|
* If this fails, try this and repeat step 1
|
|
|
|
```
|
|
|
|
sudo apt-get install python3-pip
|
|
|
|
```
|
|
|
|
* Recommended, but may not be required, setting your Python install to default with Python 3. There are multiple ways to do this, here's an example:
|
|
|
|
```
|
|
|
|
sudo apt-get install -y python3 git python3-pip
|
|
|
|
sudo update-alternatives --install /usr/bin/python python $(which python2) 1
|
|
|
|
sudo update-alternatives --install /usr/bin/python python $(which python3) 2
|
|
|
|
sudo update-alternatives --config python
|
|
|
|
```
|
|
|
|
2. Enabling I2C and SPI, which is only required to be done **once** for **each** Raspberry Pi:\
|
|
|
|
**Only Required if you are using multiple devices on your Raspberry Pi, if not, move to step 3**\
|
|
|
|
**Important:**
|
|
|
|
> If you are using a GPIO wiring setup for the LEDs that does not support I2C, you will not see anything show up for the LEDS.\
|
|
|
|
> Again, this is only for if you have **OTHER** devices you plan on hooking up to make sure they still show up under I2C
|
|
|
|
* Enabling I2C:
|
|
|
|
* From Command Line:
|
|
|
|
```
|
|
|
|
sudo apt-get install -y python-smbus
|
|
|
|
sudo apt-get install -y i2c-tools
|
|
|
|
sudo raspi-config
|
|
|
|
```
|
|
|
|
* Interfacing Options > I2C > Enable > Yes
|
|
|
|
> If you did not hit "finish" you can repeat these steps but change out the I2C for the SPI
|
|
|
|
* Enabling SPI:
|
|
|
|
* From Command Line:
|
|
|
|
```
|
|
|
|
sudo raspi-config
|
|
|
|
```
|
|
|
|
* Interfacing Options > SPI > Enable > Yes
|
|
|
|
* Click "Finish"
|
|
|
|
* Reboot your Raspberry Pi
|
|
|
|
```
|
|
|
|
sudo reboot
|
|
|
|
```
|
|
|
|
* Testing I2C and SPI after reboot:
|
|
|
|
* I2C Testing:
|
|
|
|
```
|
|
|
|
sudo i2cdetect -y 1
|
|
|
|
```
|
|
|
|
* If you do not get anything back from the above command, try seeing which I2C is being used under Dev:
|
|
|
|
```
|
|
|
|
ls /dev/i2c*
|
|
|
|
```
|
|
|
|
> Whichever number is after the "-" in "/dev/i2c-(X) is what you should replace the number in the command with
|
|
|
|
>> Example: /dev/i2c-3 = "sudo i2cdetect -y 3"
|
|
|
|
* SPI Testing:
|
|
|
|
```
|
|
|
|
ls -l /dev/spidev*
|
|
|
|
```
|
|
|
|
> This should return a device for each SPI bus (two)
|
|
|
|
3. Installing Python Support Libraries:
|
|
|
|
* GPIO - If not already installed:
|
|
|
|
```
|
|
|
|
sudo pip3 install RPI.GPIO
|
|
|
|
```
|
|
|
|
* Adafruit Blinka:
|
|
|
|
```
|
|
|
|
sudo pip3 install adafruit-blinka
|
|
|
|
```
|
|
|
|
* RPi WS281X and Neopixel:
|
|
|
|
```
|
|
|
|
sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel
|
|
|
|
sudo python3 -m pip install --force-reinstall adafruit-blinka
|
|
|
|
```
|
|
|
|
* PixelFramebuffer:
|
|
|
|
```
|
|
|
|
sudo pip3 install adafruit-circuitpython-pixel-framebuf
|
|
|
|
```
|
|
|
|
4. Changing Conflicting HDMI Settings:\
|
|
|
|
**Important:** Only do this if you are having issues with the LEDs, this is not always needed!\
|
|
|
|
```
|
|
|
|
sudo nano /boot/config.txt
|
|
|
|
```
|
|
|
|
* If it doesn't already exist, add:
|
|
|
|
```
|
|
|
|
hdmi_force_hotplug=1
|
|
|
|
hdmi_force_edid_audio=1
|
|
|
|
```
|
|
|
|
* Save and exit the file (ctrl + x > y)
|
|
|
|
* Reboot Raspberry Pi
|
|
|
|
```
|
|
|
|
sudo reboot
|
|
|
|
```
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
TBD
|
|
|
|
|
|
|
|
## Contributing
|
|
|
|
TBD
|
|
|
|
|
|
|
|
## License
|
|
|
|
* [MIT](https://choosealicense.com/licenses/mit/)
|
|
|
|
> A copy of this can be found in the root directory of this project under "LICENSE"
|
|
|
|
|