---
slug: "moving-rainbow"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/dmccreary/moving-rainbow@master/README.md"
repo: "https://github.com/dmccreary/moving-rainbow"
source_file: "README.md"
branch: "master"
---
# Moving Rainbow 🌈

[![GitHub Pages](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://dmccreary.github.io/moving-rainbow/)
[![License: CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/)
[![GitHub stars](https://img.shields.io/github/stars/dmccreary/moving-rainbow.svg)](https://github.com/dmccreary/moving-rainbow/stargazers)
[![GitHub issues](https://img.shields.io/github/issues/dmccreary/moving-rainbow.svg)](https://github.com/dmccreary/moving-rainbow/issues)
[![GitHub last commit](https://img.shields.io/github/last-commit/dmccreary/moving-rainbow.svg)](https://github.com/dmccreary/moving-rainbow/commits/master)
[![MkDocs](https://img.shields.io/badge/docs-MkDocs-blue.svg)](https://www.mkdocs.org/)

**Learn Computer Science the fun way with hands-on LED programming!**

> 📚 **Documentation:** [https://dmccreary.github.io/moving-rainbow/](https://dmccreary.github.io/moving-rainbow/)

## 🚀 Overview

The Moving Rainbow Project is a collection of MicroPython and Arduino projects designed to teach students the fundamental concepts of Computer Science through hands-on, interactive LED programming. Our carefully crafted projects provide immediate visual feedback, making learning both engaging and accessible.

### ✨ Key Features

- 💡 **Low-cost hardware**: $4 Raspberry Pi Pico + $5 LED strips
- 🎓 **Progressive learning**: From basic blink to complex animations  
- 🌍 **Battle-tested**: Used with hundreds of students worldwide
- 🛠️ **Multiple platforms**: MicroPython and Arduino C++ support
- 📖 **Comprehensive docs**: Step-by-step tutorials and guides

## 📚 Quick Start

| Resource | Description |
|----------|-------------|
| [🚀 Getting Started](https://dmccreary.github.io/moving-rainbow/getting-started/about/) | Set up your development environment |
| [🔧 Hardware Guide](https://dmccreary.github.io/moving-rainbow/getting-started/parts/) | Understanding the hardware components |
| [💻 Programming Guide](https://dmccreary.github.io/moving-rainbow/lessons/) | Learn to program LED animations |
| [👨‍🏫 Instructor's Guide](https://dmccreary.github.io/moving-rainbow/teachers-guide/) | Teaching resources and methodology |
| [🛒 Bill of Materials](https://dmccreary.github.io/moving-rainbow/getting-started/parts/) | Parts to build your own kits |
| [📖 Glossary](https://dmccreary.github.io/moving-rainbow/glossary/) | Technical terms explained |

## 🎯 Project Philosophy  

### Why LED Strips?

This project emerged from a simple observation: traditional breadboard circuits with multiple RGB LEDs often frustrate beginners with complex wiring. Addressable LED strips solve this with just **three wires** while delivering spectacular visual results that keep students engaged.

### Educational Approach

- **🔄 Immediate feedback**: See your code changes instantly in colorful light
- **📈 Progressive complexity**: Start with blink, advance to complex animations
- **🎨 Creative expression**: Students build projects they're excited to show friends
- **🔧 Transferable skills**: Loops and conditionals apply beyond LEDs

### Real-World Testing

Our curriculum has been refined through hundreds of hours of classroom testing across multiple CoderDojo sessions worldwide. This isn't just theory—it's proven pedagogy that works with real students and real constraints.

## 🛠️ Hardware Requirements

| Component | Cost | Purpose |
|-----------|------|---------|
| Raspberry Pi Pico | ~$4 | Microcontroller brain |
| WS2812B LED Strip (60 pixels) | ~$5 | Addressable RGB display |
| Breadboard + Jumper Wires | ~$3 | Connections |
| Push Buttons (optional) | ~$1 | User interaction |
| **Total** | **~$13** | **Complete kit** |

> 💡 **Compatibility**: Works with any Raspberry Pi Pico and WS2812B-compatible LED strip

## 🔗 Related Projects

- 🤖 [STEM Robot Kits](https://github.com/dmccreary/stem-robots) - $19 collision avoidance robots
- 📱 More IoT projects using similar educational principles

## 🙏 Acknowledgements

This project builds upon the incredible work of the open source community:

### Core Libraries
- **[MicroPython](https://micropython.org/)** - Python 3 implementation for microcontrollers
- **[Adafruit NeoPixel Library](https://github.com/adafruit/Adafruit_NeoPixel)** - Arduino library for WS2812 LEDs
- **[Raspberry Pi Pico SDK](https://github.com/raspberrypi/pico-sdk)** - Official Pico development tools

### Documentation Tools
- **[MkDocs](https://www.mkdocs.org/)** - Static site generator for project documentation
- **[Material for MkDocs](https://squidfunk.github.io/mkdocs-material/)** - Beautiful documentation theme

## 📄 License

This project is licensed under the **Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License**.

📋 **[Full License Details](https://dmccreary.github.io/moving-rainbow/license/)** | 🔗 **[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)**

## 📞 Contact & Contributing

- 👤 **Author**: [Dan McCreary](https://www.linkedin.com/in/danmccreary/)
- 🐛 **Issues**: [GitHub Issues](https://github.com/dmccreary/moving-rainbow/issues)
- 💡 **Discussions**: [GitHub Discussions](https://github.com/dmccreary/moving-rainbow/discussions)

We welcome contributions! Please see our documentation for ways to get involved.

---

**Happy coding! 🌈✨**
