Programmable LED Display – SCOPES Digital Fabrication

You need to login or register to bookmark/favorite this content.

Author

Brandon Prentice
Brandon Prentice
K-12 teacher
Brandon Prentice is a fabrication teacher and instructional coach for the Trinity-Area School District, located in southwestern Pennsylvania.  He is a graduate of California University of Pennsylvania, earning his BS and MEd in Technology Education. A major part of his… Read More

Summary

This lesson is all about showing grades 9-12 students the essentials of fabrication and programming to create their own unique LED display. The students will be shown how to use basic software features to etch and cut out either glass or clear acrylic. The wooden bases themselves can either be cut out with the laser or from a CNC milling machine, depending on which is more available. During the final steps of assembly is when students learn Arduino programming once they soldered the LED light strip onto a micro controller.

What You'll Need

TOOLS/MACHINES

  • CNC milling machine
  • Laser cutter/engraver
  • Arduino Nano (no I/O pins attached)
  • Soldering iron(s)
  • Wire strippers

 

SOFTWARE

  • CNC Mill CAM Software (V-carve Pro/Aspire)
  • Vectoring Software (CorelDRAW, Illustrator, Inkscape)
  • Arduino IDE

 

MATERIALS

  • Wood or MDF material for the base (0.75″ thick)
  • Acrylic or pre-cut glass for the sign (0.25″ thick)
  • USB cable with only power/ground wires (NO data wires)
  • RGB Light Strip (Individual Addressable)

 

The Instructions

Create a Base

If a wooden base is not already provided by an instructor, use the sizes below to draw out the basic shapes on Vcarve Pro/Aspire to then cut out using our CNC milling machine.

SIZE REQUIREMENTS

 

Base Size: 5” x 2” x 0.75″

Slot for Sign: 4” Line with a 0.25″ Diameter Milling Bit

Groove for LED Strip: 4.5” x 0.5” (0.6″ deep)

 

Groove for Arduino Nano (0.375″ deep):

Image result for arduino nano dimensions

 

 

 

Design & Laser Cut Plastic/Glass

This is the true creative portion of the project. Have the students use the essential design features from a vectoring software (CorelDRAW, Illustrator, Inkscape) to make graphics/text features to laser engrave the glass or plastic. Let the students have plenty of time on this portion so they can really make their design exciting and eye-popping!

As an instructor, make sure to go over the following points when it comes to designing the plastic/glass sign from a vectoring software (CorelDRAW, Illustrator, Inkscape):

 

  • Sizing and positioning of objects
  • Text formatting
  • Converting colored images into black/white tracings
  • Creating unique vector shapes from either freehand or cropping
  • Using object properties menu to manipulate color fills, outline vectors, or other forming edits

 

 

All designs are then sent to a laser cutter by either the students or instructor to continue assembling their parts.

LED Light Strip/Putting It All Together

Learn to properly wire the Arduino micro controller (Nano) to a reliable power source to control the RGB light strip.

 If the students design is accurate, the Arduino, RGB light strip, and the acrylic/glass sign should all fit snug. Use adhesives available to tweak any of these fittings if needed.

 

Students can now watch this short Youtube video explaining the connections that will need to be made to properly power both the Individually addressable RGB LED strip, and the micro controller.

 

https://www.youtube.com/watch?v=QnWZdxMytaA&t=203s

 

Programming the Arduino Nano

Using the same Youtube link shown in the previous step, students can learn to manipulate code to tweek any LED colors or fade loops they want.

 

Using the same Youtube link shown in the previous step, students can learn to manipulate code to tweak any LED colors or fade loops they want. It is the job of the instructor to break down the programming language of Arduino C to let the students understand what exactly is happening in the code, examples being:

 

  • Understand what an Arduino is and how it works
  • Program your Arduino using code that you’ve written in the Arduino IDE (Integrated Development Environment)
  • Using inputs and outputs
  • Decision making and using logic
  • Libraries, serial data, and hardware

 

Down below, you will see an example code I created of the final product that uses a series of For Loops in order to program the LED to transition through every color in the RGB spectrum repeatedly. Simply copy and paste the code into Arduino IDE and make sure the proper libraries are included to run the program. Once students get comfortable with this language, have them create unique transitions of their own to see what they come up with!

 

#include

 

#define NUM_LEDS 6

#define LED_PIN 4

 

CRGB led[NUM_LEDS];

 

void setup() {

 

 FastLED.addLeds(led, NUM_LEDS);

 

 for (int i = 0; i < NUM_LEDS; i++) {

  led[i] = CRGB(0, 0, 0);

 }

 

 FastLED.show();

}

 

void setRed(int val) {

  for (int i = 0; i < NUM_LEDS; i++) {

   led[i] = CRGB (val, 0, 0);

  }

 

  FastLED.show();

}

 

void setYellow(int val) {

  for (int i = 0; i < NUM_LEDS; i++) {

   led[i] = CRGB (255, val, 0);

  }

 

  FastLED.show();

}

 

void setGreen(int val) {

  for (int i = 0; i < NUM_LEDS; i++) {

   led[i] = CRGB (val, 255, 0);

  }

 

  FastLED.show();

}

 

void setTeal(int val) {

  for (int i = 0; i < NUM_LEDS; i++) {

   led[i] = CRGB (0, 255, val);

  }

 

  FastLED.show();

}

 

void setBlue(int val) {

  for (int i = 0; i < NUM_LEDS; i++) {

   led[i] = CRGB (0, val, 255);

  }

  FastLED.show();

}

 

void setPurple(int val) {

  for (int i = 0; i < NUM_LEDS; i++) {

   led[i] = CRGB (val, 0, 255);

  }

   

  FastLED.show();

}

 

void setWhite(int val) {

  for (int i = 0; i < NUM_LEDS; i++) {

   led[i] = CRGB (255, val, 255);

  }

   

  FastLED.show();

}

 

void setEnd(int val) {

  for (int i = 0; i < NUM_LEDS; i++) {

   led[i] = CRGB (255, val, val);

  }

   

  FastLED.show();

}

 

 

void loop() {

  for (int i = 255; i < 256; i++) {

  setRed(i);

  delay(10);

 }

 

  for (int i = 0; i < 256; i++) {

  setYellow(i);

  delay(10);

 }

  

  for (int i = 255; i > 0; i–) {

  setGreen(i);

  delay(10);

 }

 

  for (int i = 0; i < 256; i++) { 

  setTeal(i);

  delay(10);

 }

 

  for (int i = 255; i > 0; i–) {

  setBlue(i);

  delay(10);

 }

 

  for (int i = 0; i < 256; i++) { 

  setPurple(i);

  delay(10);

 }

 

  for (int i = 0; i < 256; i++) {

  setWhite(i);

  delay(10);

 }

  

  for (int i = 255; i > 0; i–) {

  setEnd(i);

  delay(10);

 }

}

Standards

  • (Fab-Safety.1): I can safely conduct myself in a Fab Lab and observe operations under instructor guidance.
  • (Fab-Programming.1): I understand the basic structure of a simple program and can modify values, variables, or other parameters to alter its output, function, or behavior.
  • (Fab-Electronics.1): I can follow instructions to build a simple electrical circuit using conductive material, basic components, and power.
  • (Fab-Modeling.1): I can arrange and manipulate simple geometric elements, 2D shapes, and 3D solids using a variety of technologies.
  • (Fab-Fabrication.1): I can follow instructor guided steps that link a software to a machine to produce a simple physical artifact.
  • (Fab-Design.1): I can be responsible for various activities throughout a design process within a group under instructor guidance.
  • (Fab-Safety.2): I can operate equipment in a Fab Lab following safety protocols.
  • (Fab-Programming.2): I can create a program with more than one instruction.
  • (Fab-Electronics.2): I can follow a schematic diagram and create a circuit including a microcontroller with electronic components.
  • (Fab-Modeling.2): I can construct compound shapes and multi-part components ready for physical production using multiple representations.
  • (Fab-Fabrication.2): I can develop workflows across four or more of the following: modeling softwares, programming environments, fabrication machines, electronic components, material choices, or assembly operations.
  • (Fab-Design.2): I can participate in design reviews with prepared presentation materials as well as give and receive feedback from peers.
  • (Fab-Programming.3): I can create a program with multiple instructions and branching elements as well as reading / controlling inputs and outputs on a microcontroller board.

Lesson Feedback