Steven Fett

 

Fab Academy 2016

Final Presentation

 

Abstract

Purpose and Function

 

Process

Files, Tools, Images

 


presentation.png


presentation.mp4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Abstract

Purpose and Function

The LED Poi will be a pair of illuminated orbs meant to be spun by a rope or wire handle to be held by the hands of the user. The LED Poi will illuminate different colors patterns. The LED POI is made from 2 3D printed shells that houses the electronics and diffuses light cast through it.

 

document a final project that integrates the range of units covered, answering:
what does it do?
who's done what beforehand?
what did you design?
what materials and components were used?
where did they come from?
how much did they cost?
what parts and systems were made?
what processes were used?
what questions were answered?
how was it evaluated?
what are the implications?
projects can be separate or joint, but need to show individual mastery of all of the skills
where possible, you should make rather than buy the parts of your project
present your final project, weekly assignments, and tutorials

Please See : Applications and Implications and Invention, Intellectual Property, And Business Models

 

 

Process

Files, Tools, Images

Files Download
Files Directory

 

I began designing my final project during the second week of Fab Academy (WEEK 2)

3D design of the project during the 5th week; 3D Scanning and Printing (WEEK5)

Using Sketchup and Netfabb to build the geometry. Printed on the Dimension 1250ES.

Electronics for the LED Poi are based off the Hello RGB Board (OutPut Devices) (Week 13)

I added a schlotky diode, a larger voltage regulator, and NPN Mosfets to drive the LEDs

I attempted a different board cutting process for this board. Paper mask is applied to the board then rastered away.

The mask is pressed using an iron, and left to soak in a hydrogen peroxide and vinegar bath for two hours.

The traces are tinned to ensure conductivity, and components are added using reflow.

3D Printed ring housing using 10mm LEDs

Two Diode rings assembled. One wired common anode, the other wired common cathode.

Both rings in the 3D printed shell.

 

 

I used the Hello RGB code from Neil Gershenfeld for my intial test. I still need to get learned up and write my own code.

//
//
// hello.RGB.45.c
//
// RGB LED software PWM hello-world
//
// Neil Gershenfeld
// 11/10/10
//
// (c) Massachusetts Institute of Technology 2010
// This work may be reproduced, modified, distributed,
// performed, and displayed for any purpose. Copyright is
// retained and must be preserved. The work is provided
// as is; no warranty is provided, and users accept all
// liability.
//

#include <avr/io.h>
#include <util/delay.h>

#define output(directions,pin) (directions |= pin) // set port direction for output
#define set(port,pin) (port |= pin) // set port pin
#define clear(port,pin) (port &= (~pin)) // clear port pin
#define pin_test(pins,pin) (pins & pin) // test for port pin
#define bit_test(byte,bit) (byte & (1 << bit)) // test for bit set
#define PWM_delay() _delay_us(25) // PWM delay

#define led_port PORTB
#define led_direction DDRB
#define red (1 << PA2)
#define green (1 << PA3)
#define blue (1 << PA7)

int main(void) {
//
// main
//
unsigned char count, pwm;
//
// set clock divider to /1
//
CLKPR = (1 << CLKPCE);
CLKPR = (0 << CLKPS3) | (0 << CLKPS2) | (0 << CLKPS1) | (0 << CLKPS0);
//
// initialize LED pins
//
set(led_port, red);
output(led_direction, red);
set(led_port, green);
output(led_direction, green);
set(led_port, blue);
output(led_direction, blue);
//
// main loop
//
while (1) {
//
// off -> red
//
for (count = 0; count < 255; ++count) {
clear(led_port,red);
for (pwm = count; pwm < 255; ++pwm)
PWM_delay();
set(led_port,red);
for (pwm = 0; pwm < count; ++pwm)
PWM_delay();
}
//
// red -> green
//
for (count = 0; count < 255; ++count) {
set(led_port,red);
clear(led_port,green);
for (pwm = count; pwm < 255; ++pwm)
PWM_delay();
clear(led_port,red);
set(led_port,green);
for (pwm = 0; pwm < count; ++pwm)
PWM_delay();
}
//
// green -> blue
//
for (count = 0; count < 255; ++count) {
set(led_port,green);
clear(led_port,blue);
for (pwm = count; pwm < 255; ++pwm)
PWM_delay();
clear(led_port,green);
set(led_port,blue);
for (pwm = 0; pwm < count; ++pwm)
PWM_delay();
}
//
// blue -> on
//
for (count = 0; count < 255; ++count) {
set(led_port,blue);
clear(led_port,green);
clear(led_port,red);
for (pwm = count; pwm < 255; ++pwm)
PWM_delay();
set(led_port,blue);
set(led_port,green);
set(led_port,red);
for (pwm = 0; pwm < count; ++pwm)
PWM_delay();
}

//
// on -> off
//
for (count = 0; count < 255; ++count) {
set(led_port,blue);
set(led_port,green);
set(led_port,red);
for (pwm = count; pwm < 255; ++pwm)
PWM_delay();
clear(led_port,blue);
clear(led_port,green);
clear(led_port,red);
for (pwm = 0; pwm < count; ++pwm)
PWM_delay();
}
}
}

LED test

Light Diffusion Test

Works better in the dark.