Skip to content

traumverloren/rpi-unicorn-leds

Repository files navigation

rainbow lights

This is my final project for Harvard's CS50 Course and first attempt at raspberry pi interactive art. The goal is to interact remotely with the raspberry pi and be able to create pixel art pattern to display on the UnicornHAT.

I used a lot of new, unfamiliar stuff for this project! e.g. Python, SocketIO, React-Native. 😏 But I had a lot of fun learning and figuring out how to build this project!

rainbow lights

My Setup:

Schema:

raspberry pi socketio client server schema diagram

Server: Express

The Server is deployed to Heroku. It sits between the RPi and react web & native apps.

Using SocketIO, it is pushes state changes from the native and web apps to the RPi. The goal from the beginning was to make this accessible remotely, from anyone and anywhere in the world, not just on my local network.

Clients:
  • Raspberry Pi 3 w/ UnicornHAT 64-led board.

    The RPi is coded in Python, since the UnicornHAT library is in Python. I created a python program that serves as a client with the socketio server, using a python socketio client library, and listens for incoming messages from the other clients. It then interprets the messages and creates the LED light pattern using the UnicornHAT library.

  • Feather Huzzah/Arduino + NeoPixels LED shirt

    video demo arduino shirt

    Written in C++(ish), this client is inside my shirt! It receives a message from the RPi with the 2 most used colors in a user's art design, and displays them synchronously with the pixel art design as it is shown.

  • ReactJS web app

    video demo reactjs

    Written in ES6 using React, this client is located on the server. Users on the web can create pixel art designs to display on the Raspberry Pi.

    Features:

    • Color Palette
    • Notification if the Raspberry Pi is offline
    • Responsive design
  • React-Native mobile app

    video demo react-native

    Written in ES6 using React-Native (with the help of ExponentJS), this client provides a native experience for both iOS and Android. Users can natively create pixel art designs to display on the Raspberry Pi.

    Features:

    • Color Palette (I rolled my own!)
    • Notification if the Raspberry Pi is offline

rainbow lights

Made with 💚💙💜 by Stephanie

About

React + React-Native + Raspberry Pi + SocketIO + UnicornHat + Arduino + Neopixels + C++ => make cool pixel art display on a Rpi and a coordinating shirt!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published