Giter VIP home page Giter VIP logo

tulahoop's Introduction

image

image

tulahoop

The world needs more smart LED hula hoops! This guide is intended for do-it-yourselfers and not for profit use. The goal is to create an open source #DIYSMARTHOOP community. I hope this guide and code is a good starting place for those interested in making smart LED hula hoops. If you use this project and improve the process or code, please contribute back so we can continue to grow this open source smart flow community. Putting an LED hoop together is not going to be an easy or straight forward task, but hopefully this guide will contain enough information to help you do it.

DISCLAIMER: This is not an easy, quick, or cheap project. You will likely need a friend to help you during assembly. It takes a certain level of know-how and persistence with trial and error to complete this project.

The capabilities of this hoop are:

  • Two modes:
    • Image mode: 70+ bitmap images
    • Pattern mode: Change background color, number of chasers, and chaser color
  • Images displayed with persistence of vision (POV)
  • IR Remote controls

View a demo video of the hoop here: https://youtu.be/MMnCFZ5w8NA

Hoop Components

Electrical Materials

Hoop Materials

Assembly Tools

  • Soldering Iron & Solder
  • 18 Gauge stranded wire
  • Helping Hands (optional)
  • 2.5mm heat shrink tubing
  • Heat gun
  • Rivet gun & Rivets
  • Hot glue gun
  • Drill with bits
  • Dremel
  • Plyers
  • Electrical tape
  • Engineering skills and/or ultra craftiness
  • A hooper with hoop making experience
  • Patience

Hoop Assembly

Please see ASSEMBLY.md

How to Load Bitmap Images

To convert bitmap image files to header files to program onto the hoop, you can use a python script borrowed from FTOLED and a custom helper script to automate mass image conversion.

Convert Images

Run these commands (must be in scripts directory and path must include a trailing slash):

cd scripts/
./convert.sh /path/to/bitmap/images/

Add Images to Code

The image header files will be copied to the src/images/ directory and the script output will give you what you need to change the images on the hoop. It will require manual modification to src/images.h.

PlatformIO

This project uses PlatformIO to program the board. Please see https://platformio.org/ for instructions on how to install and use the software. Some basic instructions below:

Programming

Setup:

Install FastLED library:

platformio lib install 126

Compile:

platformio run

Upload:

platformio run --target upload

Debug:

Uncomment #define HOOP_DEBUG.

platformio device monitor

Some basic troubleshooting is output over USB.

Using the Hoop / Remote Controls

Modes

Image Mode

This mode can play bitmap images which are converted from file format to a C Header file and included in the code.

Image Mode Controls
Button(s) Action
Right / Left Change image pattern
Play (Pause) Toggle auto cycle mode (green = play, red = stop)
1 Auto cycle time of 2 seconds
2 Auto cycle time of 5 seconds
3 Auto cycle time of 10 & 30 seconds
9 Blackout (all lights off)
Pattern Mode

This mode is a background color with a configurable chaser overlay.

Pattern Mode Controls
Button(s) Action
Right / Left Change background color
Up / Down Add/remove chasers
1 Change color of chaser
3 Toggle chaser moving
Brightness Control
Button(s) Action
Vol Up/Down Adjust brightness
Switch Modes
Button(s) Action
Mode + 1 Use pattern mode
Mode + 2 Use image mode (default)

Credits

FastLED

FastLED is an amazing LED library that makes it very easy to switch out light strips if you have NeoPixels per say, but the quality may not be as good. Check out the FastLED project here: https://github.com/FastLED/FastLED

IRLib2

An IR remote library for SAMD21 board such as the Adafruit Trinket M0 used in this project: https://github.com/cyborg5/IRLib2

FTOLED

I found this library and modified their bitmap reading code to display the bitmap line by line as to create the persistence of vision (POV) effect: https://github.com/freetronics/FTOLED

Hyperion Hoops

The images which I've chosen to use on this hoop are from the freely available pattern pack by Hyperion Hoops, downloadable from their website: https://www.hyperionhoop.com/shop/mtsp.php?paID=18

If you have read this guide and determined that making an LED hoop isn't for you and you would rather purchase one instead, take a look at what Hyperion has to offer. They are top of the line, with tons of features and a warranty.

Tula Hula

This hoop and code would not be possible if it weren't for the badass hooper and hoop maker, Tula Hula ๐Ÿ’œ.

tulahoop's People

Contributors

kgizzi avatar

Stargazers

Christoph Stripf avatar Julianne avatar A. Camelot avatar Aki avatar  avatar Carolyne avatar GlitchGeek avatar  avatar Alejandro Estrete avatar Hannah Cooley avatar  avatar  avatar  avatar Nick Sarafa avatar TranceGeniK avatar James Strong avatar  avatar Eran avatar Chance Corbeil avatar

Watchers

James Cloos avatar Carolyne avatar TranceGeniK avatar Christoph Stripf avatar Alejandro Estrete avatar  avatar  avatar

tulahoop's Issues

Please Help with Error in Bitmap.cpp

Hi, i would love to build one of these Hoops for my girlfriend who is trainer for Hoopdance. When i try to compile the Project, i get the following Error:

lib\Bitmap\Bitmap.cpp:170:35: required from here
lib\Bitmap\Bitmap.cpp:241:17: error: conversion from 'CRGB' to 'uint8_t' {aka 'unsigned char'} is ambiguous
241 | uint8_t p = *byte & bit ? palette[1] : palette[0];

Can you please help me out?
Best
Chris

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.