Foundations of Engineering

Project Brief

Project Title

Project brief for the first project in engineering

Project Requirements

Guidelines that will need to be met for the project

Research Requirements

Research guidelines for the project





Circuit picture of Arduino 6

Circuit Diagram is a visual display of an electrical circuit using either basic images of parts or industry standard symbols. I made this in class and what I used is an Arduino Nano, wires that I plugged in to RST, GND, D2, D3, GND, D10, D11, D12, and those wires connected to LEDs.


Code for 6 light Arduino Pattern

Blink

Turn an LED on for one second, then off for one second, repeatedly.



// Pin 13 has an LED connected on most Arduino boards.

// give it a name:

int led = 13;


// the setup routine runs once when you press reset:

void setup() {

// initialize the digital pin as an output.

pinMode(led, OUTPUT);

Serial.begin(115200);

}


// the loop routine runs over and over again forever:

void loop() {

Serial.println("Setting LED to HIGH");

digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)

delay(500); // wait for a second

Serial.println("Setting LED to LOW");

digitalWrite(led, LOW); // turn the LED off by making the voltage LOW

delay(500); // wait for a second

}

20200915_153426.mp4

Picture of Arduino 6

This is my Arduino connected to my board, and USB to my computer, and made sure all of my LEDs were in the right place and positioned correctly. Also, I made sure that my wire was connected to GND and beside an open space on my board.


Video of Arduino 6

This is a video with my Arduino Nano that is connected to a breadboard, a wire is connected, and LED s that will light up with colors in a pattern because of the code on the right and also because of the USB that is connected to my Arduino and computer.

Neopixel Strip working [either image or video]

Wires are connected to an Arduino that is connected to a breadboard from a led strip. This is also connected to a PC that has the code on it. Then the code is applied to the Arduino using a USB, which causes the Neo Pixel Strip to light up with different colors.


Neopixel Code


// - Add 1000 uF CAPACITOR between NeoPixel strip's + and - connections.

// - MINIMIZE WIRING LENGTH between microcontroller board and first pixel.

// - NeoPixel strip's DATA-IN should pass through a 300-500 OHM RESISTOR.

// - AVOID connecting NeoPixels on a LIVE CIRCUIT. If you must, ALWAYS

// connect GROUND (-) first, then +, then data.

// - When using a 3.3V microcontroller with a 5V-powered NeoPixel strip,

// a LOGIC-LEVEL CONVERTER on the data line is STRONGLY RECOMMENDED.

// (Skipping these may work OK on your workbench but can fail in the field)


#include <Adafruit_NeoPixel.h>

#ifdef __AVR__

#include <avr/power.h> // Required for 16 MHz Adafruit Trinket

#endif


// Which pin on the Arduino is connected to the NeoPixels?

// On a Trinket or Gemma we suggest changing this to 1:

#define LED_PIN 6


// How many NeoPixels are attached to the Arduino?

#define LED_COUNT 17


// Declare our NeoPixel strip object:

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

// Argument 1 = Number of pixels in NeoPixel strip

// Argument 2 = Arduino pin number (most are valid)

// Argument 3 = Pixel type flags, add together as needed:

// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)

// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)

// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)

// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)

// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products)



// setup() function -- runs once at startup --------------------------------


void setup() {

// These lines are specifically to support the Adafruit Trinket 5V 16 MHz.

// Any other board, you can remove this part (but no harm leaving it):

#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)

clock_prescale_set(clock_div_1);

#endif

// END of Trinket-specific code.


strip.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)

strip.show(); // Turn OFF all pixels ASAP

strip.setBrightness(255); // Set BRIGHTNESS to about 1/5 (max = 255)

}



// loop() function -- runs repeatedly as long as board is on ---------------


void loop() {

// Fill along the length of the strip in various colors...

colorWipe(strip.Color(66, 218, 245), 200); // Light Blue

colorWipe(strip.Color(179, 0, 250), 200); // Purple

colorWipe(strip.Color(250, 0, 0), 200); // Red

colorWipe(strip.Color(0, 186, 81), 200); // Green

colorWipe(strip.Color(0, 120, 255), 200); // Blue Green

colorWipe(strip.Color(0, 255, 255), 200); // Teal

colorWipe(strip.Color(62, 0, 186), 200); // Purple Blue

colorWipe(strip.Color(0, 255, 0), 200); // Green

colorWipe(strip.Color(120, 255, 0), 200); // Yellow

colorWipe(strip.Color(255, 255, 0), 200); // Orange

colorWipe(strip.Color(255, 255, 255), 500); // Orange



// Do a theater marquee effect in various colors...

// theaterChase(strip.Color(127, 127, 127), 50); // White, half brightness

// theaterChase(strip.Color(127, 0, 0), 50); // Red, half brightness

// theaterChase(strip.Color( 0, 0, 127), 50); // Blue, half brightness


rainbow(20); // Flowing rainbow cycle along the whole strip

//theaterChaseRainbow(50); // Rainbow-enhanced theaterChase variant

}



// Some functions of our own for creating animated effects -----------------


// Fill strip pixels one after another with a color. Strip is NOT cleared

// first; anything there will be covered pixel by pixel. Pass in color

// (as a single 'packed' 32-bit value, which you can get by calling

// strip.Color(red, green, blue) as shown in the loop() function above),

// and a delay time (in milliseconds) between pixels.

void colorWipe(uint32_t color, int wait) {

for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...

strip.setPixelColor(i, color); // Set pixel's color (in RAM)

strip.show(); // Update strip to match

delay(wait); // Pause for a moment

}

}


// Theater-marquee-style chasing lights. Pass in a color (32-bit value,

// a la strip.Color(r,g,b) as mentioned above), and a delay time (in ms)

// between frames.

void theaterChase(uint32_t color, int wait) {

for(int a=0; a<10; a++) { // Repeat 10 times...

for(int b=0; b<3; b++) { // 'b' counts from 0 to 2...

strip.clear(); // Set all pixels in RAM to 0 (off)

// 'c' counts up from 'b' to end of strip in steps of 3...

for(int c=b; c<strip.numPixels(); c += 3) {

strip.setPixelColor(c, color); // Set pixel 'c' to value 'color'

}

strip.show(); // Update strip with new contents

delay(wait); // Pause for a moment

}

}

}


// Rainbow cycle along whole strip. Pass delay time (in ms) between frames.

void rainbow(int wait) {

// Hue of first pixel runs 5 complete loops through the color wheel.

// Color wheel has a range of 65536 but it's OK if we roll over, so

// just count from 0 to 5*65536. Adding 256 to firstPixelHue each time

// means we'll make 5*65536/256 = 1280 passes through this outer loop:

for(long firstPixelHue = 0; firstPixelHue < 5*65536; firstPixelHue += 256) {

for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...

// Offset pixel hue by an amount to make one full revolution of the

// color wheel (range of 65536) along the length of the strip

// (strip.numPixels() steps):

int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels());

// strip.ColorHSV() can take 1 or 3 arguments: a hue (0 to 65535) or

// optionally add saturation and value (brightness) (each 0 to 255).

// Here we're using just the single-argument hue variant. The result

// is passed through strip.gamma32() to provide 'truer' colors

// before assigning to each pixel:

strip.setPixelColor(i, strip.gamma32(strip.ColorHSV(pixelHue)));

}

strip.show(); // Update strip with new contents

delay(wait); // Pause for a moment

}

}


// Rainbow-enhanced theater marquee. Pass delay time (in ms) between frames.

void theaterChaseRainbow(int wait) {

int firstPixelHue = 0; // First pixel starts at red (hue 0)

for(int a=0; a<30; a++) { // Repeat 30 times...

for(int b=0; b<3; b++) { // 'b' counts from 0 to 2...

strip.clear(); // Set all pixels in RAM to 0 (off)

// 'c' counts up from 'b' to end of strip in increments of 3...

for(int c=b; c<strip.numPixels(); c += 3) {

// hue of pixel 'c' is offset by an amount to make one full

// revolution of the color wheel (range 65536) along the length

// of the strip (strip.numPixels() steps):

int hue = firstPixelHue + c * 65536L / strip.numPixels();

uint32_t color = strip.gamma32(strip.ColorHSV(hue)); // hue -> RGB

strip.setPixelColor(c, color); // Set pixel 'c' to value 'color'

}

strip.show(); // Update strip with new contents

delay(wait); // Pause for a moment

firstPixelHue += 65536 / 90; // One cycle of color wheel over 90 frames

}

}

}




Canva Poster

Major impacts John Lewis made were, he was the chairman of the Student Nonviolent Coordinating Committee (SNCC) from 1963 to 1966. Lewis was one of the "Big Six" leaders of groups who organized the 1963 March on Washington. He fulfilled many key roles in the civil rights movement and its actions to end legalized racial segregation in the United States.

Hashtag File

This hashtag aligns with John Lewis because as I was researching about him I began to realize that these two words were frequently used in the research he was known for GOOD TROUBLE.


What did you find most challenging about semester 1, and how did you overcome this challenge?

What I found most challenging this semester was the Neopixel strip because it would keep falling apart, so I applied stronger tape to keep it together. I did that because I didn't have a hot glue gun, so I really had to make sure that pieces wouldn't fall apart.

What are you most proud of from this semester?

I am most proud of my Arduino six led light project. It wasn't easy but I got it done with the materials I was given, then it worked perfectly.


Design Process notes [Steps of the Design Process]

Brief - A concise statement or summary about something you're doing or working on. It can be questions that you want to answer at the beginning or end of the assignment or maybe a project you were or are working on.

Research - Looking up information that will tell you about the thing you were looking up. This can guide you to your answers and help whatever you're working on be more successful. Research teaches you new things and can help you learn more about whatever your researching.

Idea and Brainstorming - Using all of your research and information that you gathered to come up with ideas and possible successful outcomes. Your thinking about what can work what's most interesting to you and why then you pick what idea is the best and seems most successful.

Prototype - A prototype is an early sample, model, or release of a product built to test a concept or process. It is a term used in a variety of contexts, including semantics, design, electronics, and software programming. A prototype is generally used to evaluate a new design to enhance precision by system analysts and users.

Testing - Taking everything you have done with the prototype and starting the project. When you start you write down what works and what doesn't making sure everything works right. Then if you have to fix the problems with your prototype so you can get it working perfectly and how you want it to be working.

Evaluation - Making sure everything is in place and is working correctly, also making sure it is safe to use. So that now if you have to you can rework something that needs to be fixed. Then if everything is correct you can release the finished project, if that was the whole idea.