-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
467 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
.DS_Store | ||
LightBar-CV/CMakeFiles | ||
LightBar-CV/CMakeCache.txt | ||
LightBar-CV/Makefile | ||
LightBar-CV/cmake_install.cmake | ||
0520_2015_Elsewhere_Schematic FINAL.pdf | ||
2015.08.14_1420 - Elsewhere (599 Johnson Ave, Brooklyn, NY).pdf | ||
EBV_Elsewhere_ProjectProposal_v1.2.pdf | ||
Elsewhere - Company Charter.pdf |
Submodule LightBar-CV
added at
9044e6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
elsewhere stuff | ||
|
||
termperature | ||
bpm | ||
spectrograph | ||
humidity | ||
fundamental frequency | ||
movement via infared camera | ||
movement via accelerometer | ||
|
||
|
||
|
||
API for entire venue (different sensor data communicated over RF or wifi, different rooms, temp, humidity, etc) | ||
|
||
|
||
|
||
|
||
micro lens array tunnel entrance | ||
|
||
holographic effect using lenses and gradients (lenticular style) | ||
|
||
|
||
|
||
|
||
|
||
|
||
charging bay is somewhere where lights look interesting on stage | ||
|
||
|
||
|
||
|
||
18x24 ULS versa laser | ||
|
||
|
||
|
||
lit holes with cold (dropping) fog | ||
|
||
|
||
23 ft tall | ||
|
||
proposal with budget | ||
|
||
|
||
fully covered on top (barrel covering, rounded top) | ||
|
||
box framed strip lighting 6 or 7 , industrial covered lights | ||
|
||
|
||
wood slats on one side facing open parking lot |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
|
||
/* | ||
* Getting Started example sketch for nRF24L01+ radios | ||
* This is a very basic example of how to send data from one node to another | ||
* Updated: Dec 2014 by TMRh20 | ||
*/ | ||
|
||
#include <SPI.h> | ||
#include "RF24.h" | ||
|
||
/****************** User Config ***************************/ | ||
/*** Set this radio as radio number 0 or 1 ***/ | ||
bool radioNumber = 0; | ||
|
||
//1 is uno on my RIGHT | ||
//0 is metro on LEFT | ||
|
||
int END_BYTE = 32; | ||
|
||
/* Hardware configuration: Set up nRF24L01 radio on SPI bus plus pins 7 & 8 */ | ||
RF24 radio(9,10); | ||
/**********************************************************/ | ||
|
||
byte addresses[][6] = {"1Node","2Node"}; | ||
|
||
// Used to control whether this node is sending or receiving | ||
bool role = radioNumber; | ||
|
||
void setup() { | ||
Serial.begin(115200); | ||
Serial.println(F("RF24/examples/GettingStarted")); | ||
Serial.println(F("*** PRESS 'T' to begin transmitting to the other node")); | ||
|
||
radio.begin(); | ||
|
||
// Set the PA Level low to prevent power supply related issues since this is a | ||
// getting_started sketch, and the likelihood of close proximity of the devices. RF24_PA_MAX is default. | ||
radio.setPALevel(RF24_PA_MAX); | ||
radio.disableCRC(); | ||
radio.setAutoAck(false); | ||
radio.setChannel(90); | ||
radio.setDataRate(RF24_2MBPS); | ||
radio.setRetries(0,0); | ||
|
||
// Open a writing and reading pipe on each radio, with opposite addresses | ||
if(radioNumber){ | ||
radio.openWritingPipe(addresses[1]); | ||
radio.openReadingPipe(1,addresses[0]); | ||
}else{ | ||
radio.openWritingPipe(addresses[0]); | ||
radio.openReadingPipe(1,addresses[1]); | ||
} | ||
|
||
// Start the radio listening for data | ||
radio.startListening(); | ||
} | ||
|
||
unsigned long i = 0; | ||
|
||
unsigned long first_packet; | ||
|
||
void loop() { | ||
|
||
/****************** Pong Back Role ***************************/ | ||
|
||
if ( role == 0 ) | ||
{ | ||
unsigned long got_time; | ||
|
||
if( radio.available()){ | ||
|
||
while (radio.available()) { | ||
radio.read( &got_time, sizeof(unsigned long) ); | ||
} | ||
|
||
if(got_time == 0){ | ||
first_packet = micros(); | ||
} | ||
|
||
if(got_time == END_BYTE - 1){ | ||
if(micros()-first_packet > 15000){ | ||
Serial.print("OVER 15ms!!!"); | ||
Serial.println(micros()-first_packet); | ||
} | ||
|
||
} | ||
|
||
} | ||
} | ||
|
||
|
||
|
||
|
||
/****************** Change Roles via Serial Commands ***************************/ | ||
|
||
if ( Serial.available() ) | ||
{ | ||
char c = toupper(Serial.read()); | ||
if ( c == 'T' && role == 0 ){ | ||
Serial.println(F("*** CHANGING TO TRANSMIT ROLE -- PRESS 'R' TO SWITCH BACK")); | ||
role = 1; // Become the primary transmitter (ping out) | ||
|
||
}else | ||
if ( c == 'R' && role == 1 ){ | ||
Serial.println(F("*** CHANGING TO RECEIVE ROLE -- PRESS 'T' TO SWITCH BACK")); | ||
role = 0; // Become the primary receiver (pong back) | ||
radio.startListening(); | ||
|
||
} | ||
} | ||
|
||
|
||
} // Loop | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
#include <Adafruit_NeoPixel.h> | ||
|
||
#define PIN 6 | ||
|
||
// Parameter 1 = number of pixels in strip | ||
// Parameter 2 = Arduino pin number (most are valid) | ||
// Parameter 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) | ||
Adafruit_NeoPixel strip = Adafruit_NeoPixel(36, PIN, NEO_GRB + NEO_KHZ800); | ||
|
||
// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across | ||
// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input | ||
// and minimize distance between Arduino and first pixel. Avoid connecting | ||
// on a live circuit...if you must, connect GND first. | ||
|
||
int address[8] = {0,1,0,1,0,1,0,1}; | ||
|
||
void setup() { | ||
// This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket | ||
#if defined (__AVR_ATtiny85__) | ||
if (F_CPU == 16000000) clock_prescale_set(clock_div_1); | ||
#endif | ||
// End of trinket special code | ||
|
||
|
||
strip.begin(); | ||
strip.show(); // Initialize all pixels to 'off' | ||
} | ||
|
||
int bitSize = 4; | ||
int offSet = 2; | ||
|
||
void loop() { | ||
|
||
for(int i = 0; i < 2 ; i ++){ | ||
strip.setPixelColor(i, strip.Color(0, 0, 255)); | ||
} | ||
for(int i = 34; i < 36 ; i ++){ | ||
strip.setPixelColor(i, strip.Color(0, 0, 255)); | ||
} | ||
for(int i = 0; i < 8; i++){ | ||
if(address[i] == 1){ | ||
for(int j = 0; j < bitSize; j++){ | ||
if(j == 0 || j == bitSize - 1){ | ||
strip.setPixelColor(bitSize*i + j + offSet, strip.Color(0, 0, 0)); | ||
} | ||
else{ | ||
strip.setPixelColor(bitSize*i + j + offSet, strip.Color(255, 0, 0)); | ||
} | ||
} | ||
} | ||
else{ | ||
for(int j = 0; j < bitSize; j++){ | ||
if(j == 0 || j == bitSize - 1){ | ||
strip.setPixelColor(bitSize*i + j + offSet, strip.Color(0, 0, 0)); | ||
} | ||
else{ | ||
strip.setPixelColor(bitSize*i + j + offSet, strip.Color(0, 255, 0)); | ||
} | ||
} | ||
} | ||
} | ||
|
||
strip.show(); | ||
|
||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,129 @@ | ||
|
||
/* | ||
* Getting Started example sketch for nRF24L01+ radios | ||
* This is a very basic example of how to send data from one node to another | ||
* Updated: Dec 2014 by TMRh20 | ||
*/ | ||
|
||
#include <SPI.h> | ||
#include "RF24.h" | ||
|
||
/****************** User Config ***************************/ | ||
/*** Set this radio as radio number 0 or 1 ***/ | ||
bool radioNumber = 0; | ||
|
||
//1 is uno on my RIGHT | ||
//0 is metro on LEFT | ||
|
||
int END_BYTE = 32; | ||
|
||
/* Hardware configuration: Set up nRF24L01 radio on SPI bus plus pins 7 & 8 */ | ||
RF24 radio(9,10); | ||
/**********************************************************/ | ||
|
||
byte addresses[][6] = {"1Node","2Node"}; | ||
|
||
// Used to control whether this node is sending or receiving | ||
bool role = radioNumber; | ||
|
||
void setup() { | ||
Serial.begin(115200); | ||
Serial.println(F("RF24/examples/GettingStarted")); | ||
Serial.println(F("*** PRESS 'T' to begin transmitting to the other node")); | ||
|
||
radio.begin(); | ||
|
||
// Set the PA Level low to prevent power supply related issues since this is a | ||
// getting_started sketch, and the likelihood of close proximity of the devices. RF24_PA_MAX is default. | ||
radio.setPALevel(RF24_PA_MAX); | ||
|
||
radio.disableCRC(); | ||
radio.setAutoAck(false); | ||
radio.setChannel(90); | ||
radio.setDataRate(RF24_2MBPS); | ||
radio.setRetries(0,0); | ||
|
||
// Open a writing and reading pipe on each radio, with opposite addresses | ||
if(radioNumber){ | ||
radio.openWritingPipe(addresses[1]); | ||
radio.openReadingPipe(1,addresses[0]); | ||
}else{ | ||
radio.openWritingPipe(addresses[0]); | ||
radio.openReadingPipe(1,addresses[1]); | ||
} | ||
|
||
// Start the radio listening for data | ||
radio.startListening(); | ||
} | ||
|
||
unsigned long i = 0; | ||
|
||
unsigned long first_packet; | ||
|
||
void loop() { | ||
|
||
|
||
/****************** Ping Out Role ***************************/ | ||
if (role == 1) { | ||
|
||
radio.stopListening(); // First, stop listening so we can talk. | ||
|
||
for(i = 0; i < END_BYTE ; i++) { | ||
radio.write( &i, sizeof(unsigned long) ); | ||
} | ||
|
||
} | ||
|
||
|
||
|
||
/****************** Pong Back Role ***************************/ | ||
|
||
if ( role == 0 ) | ||
{ | ||
unsigned long got_time; | ||
|
||
if( radio.available()){ | ||
// Variable for the received timestamp | ||
while (radio.available()) { // While there is data ready | ||
radio.read( &got_time, sizeof(unsigned long) ); // Get the payload | ||
} | ||
|
||
if(got_time == 0){ | ||
first_packet = micros(); | ||
} | ||
|
||
if(got_time == END_BYTE - 1){ | ||
if(micros()-first_packet > 15000){ | ||
Serial.print("OVER 15ms!!!"); | ||
Serial.println(micros()-first_packet); | ||
} | ||
|
||
} | ||
|
||
} | ||
} | ||
|
||
|
||
|
||
|
||
/****************** Change Roles via Serial Commands ***************************/ | ||
|
||
if ( Serial.available() ) | ||
{ | ||
char c = toupper(Serial.read()); | ||
if ( c == 'T' && role == 0 ){ | ||
Serial.println(F("*** CHANGING TO TRANSMIT ROLE -- PRESS 'R' TO SWITCH BACK")); | ||
role = 1; // Become the primary transmitter (ping out) | ||
|
||
}else | ||
if ( c == 'R' && role == 1 ){ | ||
Serial.println(F("*** CHANGING TO RECEIVE ROLE -- PRESS 'T' TO SWITCH BACK")); | ||
role = 0; // Become the primary receiver (pong back) | ||
radio.startListening(); | ||
|
||
} | ||
} | ||
|
||
|
||
} // Loop | ||
|
Oops, something went wrong.