JAMES BLACK
Published © MIT

Illuminated Recycled Screen Print Frame Art Installation

These recycled screenprint frames can be arranged in a variety of ways. They light up to the beat! Additional sensors provide real time data

BeginnerWork in progressOver 6 days416
Illuminated Recycled Screen Print Frame Art Installation

Things used in this project

Hardware components

MSGEQ7
×1
Ultrasonic Sensor - HC-SR04 (Generic)
Ultrasonic Sensor - HC-SR04 (Generic)
×1
LED Strip, NeoPixel Digital RGB
LED Strip, NeoPixel Digital RGB
×1
Argon
Particle Argon
×1
Boron
Particle Boron
×1
LoRa Backpack for ESPectro
Makestro LoRa Backpack for ESPectro
×1
Li-Ion Battery 1000mAh
Li-Ion Battery 1000mAh
×1
GPS Module (Generic)
×1
0.96" OLED 64x128 Display Module
ElectroPeak 0.96" OLED 64x128 Display Module
×1

Software apps and online services

Visual Studio 2017
Microsoft Visual Studio 2017
current version
Adobe Illustrator
Adobe Photoshop
Adafruit IO
Node-RED
Node-RED
Google Maps
Google Maps
OpenWeatherMap.org

Hand tools and fabrication machines

Epilouge Laser Cutter
Dremmel Tool
for cutting aluminum

Story

Read more

Custom parts and enclosures

J Black Capstone

GitHub

Schematics

J Black Capstone

Git Hub

Installation Fritzing

Bread Board with button, GPS, Motion sensor, Led, LoRa, Particle Argon, and Oled Screen

Code

MSGEQ-7

C/C++
7 band eq mapped to Neo Pixel Strip
Special shout out to my classmate KD for the awesome color library!
/*
 * Project EQ7band
 * Description:  EQ sound sensor and attach to neo pixel strip
 * Author:JBlack
 * Date:
 */
#include "kdsRainbows.h"
#include <neopixel.h>
#include "Particle.h"

void setup();
void loop();
int strobePin = D4;
int outPin= A3;
int resetPin= D5;
int level[7] = {0, 0, 0, 0, 0, 0, 0};
const int PIXELPIN = D3;
const int PIXELCOUNT = 120;
const int numBands = 7;
const int PIXPERBAND =8;
int i=0;
int soundInput;
const int anaPin= A3;
 int pixelFill (int startPixel, int endPixel, int hexColor);


Adafruit_NeoPixel pixel ( PIXELCOUNT , PIXELPIN , WS2812B ) ;
SYSTEM_MODE (SEMI_AUTOMATIC);
void setup() {
  pinMode(strobePin, OUTPUT);
  pinMode(resetPin, OUTPUT);   // Set reset pin as output
  pinMode(anaPin, INPUT);   // Set analog input pin as input
  pixel.begin();
  pixel.setBrightness (255);
  //pixel.clear();
  pixel.show();
  Serial.begin(9600);
}

void loop() {
  // Reset and start reading from the first spectrum band
  digitalWrite(resetPin, HIGH);   // Set reset pin high
  digitalWrite(resetPin,LOW);
  delayMicroseconds (75);
  
  // Cycle through each frequency band by pulsing the strobe.
  for (i = 0; i < 7; i++)  {
    digitalWrite(strobePin, LOW);
    delayMicroseconds(100);   
    level[i] = analogRead(outPin);
    digitalWrite(strobePin, HIGH);
    delayMicroseconds(100);
    soundInput=level[i];
    if (soundInput>=0 && soundInput<63) {
      
      pixelFill (PIXPERBAND*i,PIXPERBAND*i+PIXPERBAND,fullred);
      pixel.show ();
    }
   if (soundInput>=63 && soundInput<160) {
     
      pixelFill (PIXPERBAND*i,PIXPERBAND*i+PIXPERBAND,orange);
      pixel.show ();
    }
    if (soundInput>=160 && soundInput<400) {
      
      pixelFill (PIXPERBAND*i,PIXPERBAND*i+PIXPERBAND,fullyellow);
      pixel.show ();
    }
    if (soundInput>=400 && soundInput<1000) {
      
      pixelFill (PIXPERBAND*i,PIXPERBAND*i+PIXPERBAND,fullgreen);
      pixel.show ();
    }
    if (soundInput>=1000 && soundInput<2500) {
    
      pixelFill (PIXPERBAND*i,PIXPERBAND*i+PIXPERBAND,fullblue);
      pixel.show ();
    }
    if (soundInput>=2500 && soundInput<16000) {
      
      pixelFill (PIXPERBAND*i,PIXPERBAND*i+PIXPERBAND,purple);
      pixel.show ();
    }
  }
  // Print the sensor values to the serial monitor.
  Serial.print("Sensor Values: ");
   for (i = 0; i < 7; i++) {
    Serial.printf("Channel %i - Level %i\n",i,level[i]);
  }
  
  // Wait for a short period of time.
  delay(10);
}
int pixelFill (int startPixel, int endPixel, int hexColor){
  for (int i=startPixel; i<endPixel;i++){

pixel.setPixelColor (i,hexColor);
pixel.show();

  }
return (1);
}

Credits

JAMES BLACK

JAMES BLACK

3 projects • 9 followers
I decorate T-Shirts, I have been developing for 10 weeks. IoT Bootcamp representing Abq Public Art department under Brian Rashap and EJ

Comments