GithubHelp home page GithubHelp logo

monikertechnology / ledwall Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 10.79 MB

My 15x9 LED wall

Python 100.00%
raspberry-pi fadecandy-server touchosc leds pixel python openpixelcontrol opensoundcontrol neopixel

ledwall's Introduction

version_3.0 in progress

15 x 9 LED art

alt text

This project is under a major redevelopment. I no longer have a space for the LED board so I am donating it to a friend. The main goals for this version are to streamline and simplify. The main interface for changing patterns and settings will be the http server. Decisions need to be made regarding how this device can be controlled and maintained from a non-technical person. Physical controls are being considered.

Goals for v3

  • Simplify
  • Increased error handling
  • Better maintenance of wifi
  • Indicators
    • Wifi good
    • Wifi issue
    • Test all LEDs and Colors on boot
    • All LEDs on

Goals for v2.0

  • Python3
  • Error handling
    • Auto restart of services
    • No audio - broken
    • Lack of sound then display something cool
    • No wifi - loading pattern
    • No OSC
  • HTML wifi set up - auto scan then broadcast if not connected
    • Physica button??
  • Better start up pattern / test pattern
  • Mirate to http post for control
    • Add HTTPS
    • Add sha256 auth key
    • HomeKit- HAP-Node.js to many local scripts
      • Homekit QR code for pairing
      • HAP-Node.js feedback so the buttons are active
    • Secondary control….physical? (prolly naw)
      • Google Assistant
  • More/better audio effects
  • Update github
  • Cool MOTD ssh banner
  • HTML status page...mayble with controls
  • Linux auto updates (security)

Reminders:

  • Add pictures and videos
  • Add type of LEDs
  • add power info
  • Add links to all software
  • Upload FadeCandy config
  • Spell check this document

Description:

Software:

This is the software for my 15 x 9 LED wall. Anyone is welcome to use this software, however, I am creating this GitHub page as a repository for me to work out of for this project and to come back to the software should my Raspberry Pi have a major malfunction. Over time I hope to add some pictures and videos, as well as clean up the code. I have adapted bits and pieces of the code from other people and I have tried to give credit as best I can remember. If you see some of your code here please let me know because I would love to give you credit for it.

The project is centered around the main.py python script. It uses the Open Pixel Connection (OPC) library to talk to the FadeCandy server. The main.py also calls up an Open Sound Control (OSC) server to listen to commands sent from the TouchOSC iPhone app.

Hardware:

This matrix is composed of three strings of 45 LEDs each, each zigzagged into 3 rows of 15. The each pixel was hand soldered to create a 4-inch space between each LED. The three strings are connected to a FadeCandy board, and then to a Raspberry Pi. There is also a USB mic for capturing audio for live music interaction.

How To:

Remember how to do this in the case of a Pi failure or you have to reproduce this in the future.

Instal tools:

  • sudo apt-get install git
  • sudo apt-get install Pure-FTPd (This will work as is, but you probably should google how to secure it)

MQTT

Install FadeCandy server:

git clone https://github.com/scanlime/fadecandy.git

  • We should put this into the same folder as the rest of our project so that it will work with the launch scripts later
  • Also, don't forget to add the fcserver15x9.json to the bin folder

Dependancies


sudo apt-get install python3-dev libatlas3-base portaudio19-dev python3-all-dev

libatlas3-base # for numpy portaudio19-dev # for pyaudio python3-all-dev python3-dev

Install numpy

sudo apt install libatlas3-base
sudo pip3 install numpy

Install PortAudio.

http://www.portaudio.com/download.html Untar and install PortAudio

tar zxvf fileNameHere.tgz

./configure
make
make install

Install pyaudio

Get the dependencies for pyaudio
sudo apt-get install portaudio19-dev python3-all-dev -y 

sudo pip install pyaudio

Modules:

Python3

sudo pip3 install aubio

Audio Setup:

Change the following two lines in /usr/share/alsa/alsa.conf

defaults.ctl.card 0
defaults.pcm.card 0

use sudo nano /usr/share/alsa/alsa.conf

defaults.ctl.card 1
defaults.pcm.card 1

Create or edit the file /etc/modprobe.d/alsa-base.conf and add the following

pcm.!default {
    type hw
    card 1
}
ctl.!default {
    type hw
    card 1
}

Create systemd service:

I am no expert here, but this is what I pulled together and it works great. It starts up on boot, and can easily be killed.(Using ctrl-c doesn't work here because the program starts a few threads.
pi@piledwall:~ $ sudo nano /etc/systemd/system/ledwall.service

    [Unit]
    Description=Power-On-LEDwall
    
    [Service]
    Type=forking
    ExecStart=/usr/bin/ledwall.sh
    
    
    [Install]
    WantedBy=multi-user.target

The ExecStart path will point to the script that will start the FadeCandy server and main.py

  • Here are some example commands
    sudo systemctl status -l ledwall
    sudo systemctl enable ledwall
    sudo systemctl stop ledwall
    sudo systemctl start ledwall

Then create the scrip. Note that there a few file pathes that may need to be updated to fit your situation. pi@piledwall:~ $ sudo nano /usr/bin/ledwall.sh

#!/bin/sh
sleep 10
echo "Starting Fadecandy Server..."
sudo /home/pi/project/fadecandy/bin/fcserver-rpi /home/pi/project/fadecandy/bin/fcserver_config.json &
#&>> /home/pi/project/log.txt &
echo "Fadecandy started"
echo ""
echo "Starting python..."
echo "changing directory to ...projects"
cd /home/pi/project/
sudo /usr/bin/python /home/pi/project/main.py --layout=/home/pi/project/ledwall15x9.json &
#&>> /home/pi/project/log.txt &
echo "Python started"

ledwall's People

Contributors

codymcc avatar

Watchers

 avatar  avatar

ledwall's Issues

Hardware info

I was wondering if there was a more detailed howto on how you assembled the led panels?

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.