Not a lot of time right now, as we are showing at the Maker Faire again today as well. So, here's a short breakdown of our displays at Maker Faire. I will go into much further detail later this week for each one.
Feel free to email me at jasongroce@live.com if you have any questions or would like more information.
Banana Piano
Capacitive Touch Arduino Musical
Instrument
Using an Adafruit
MPR121 Capacitive Touch Arduino Shield connected to an Arduino, a speaker, and
some fruit,
this simple device demonstrates capacitive touch sensors in a fun, tactile way.
https://www.adafruit.com/products/2024
https://learn.adafruit.com/adafruit-mpr121-12-key-capacitive-touch-sensor-breakout-tutorial/wiring
https://www.arduino.cc/en/Tutorial/ToneKeyboard?from=Tutorial.Tone3
Go ahead, play some music!
//Banana Piano
//By Jason Groce
//Revision 1.0 Date 2015-10-01
//https://learn.adafruit.com/adafruit-mpr121-12-key-capacitive-touch-sensor-breakout-tutorial/wiring
//https://www.arduino.cc/en/Tutorial/ToneKeyboard?from=Tutorial.Tone3
#include <Wire.h>
#include "Adafruit_MPR121.h"
#define NOTE_C3 131
#define NOTE_D3 147
#define NOTE_E3 165
#define NOTE_F3 175
#define NOTE_G3 196
#define NOTE_A3 220
#define NOTE_B3 247
#define NOTE_C4 262
#define NOTE_D4 294
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_G4 392
Adafruit_MPR121 cap = Adafruit_MPR121();
int spkrPin = 9;
int notes[] = {
NOTE_C3, NOTE_D3, NOTE_E3,
NOTE_F3, NOTE_G3, NOTE_A3,
NOTE_B3, NOTE_C4, NOTE_D4,
NOTE_E4, NOTE_F4, NOTE_G4
};
void setup() {
cap.begin(0x5A); //
Start the MPR121 chip
}
void loop() {
for (int i=0; i<12; i++) { // Go through each of the 12
sensors
if (cap.touched() &
_BV(i)) { // Check if the sensor is
touched
tone(spkrPin,notes[i],20); // If so, play the corresponding note
}
}
}
Gardenbot
Automatic Aquaponic Arduino
Through the combined effort of a
light level detection with a photoresistor module (see below), a moisture
sensor (honestly, it’s two nails and some programming), and some relays ($3
eBay), we have a fully functional (and scalable) aquaponics system!
Whether
on the kitchen counter, or controlling an entire greenhouse, this basic system
is capable of some amazing stuff at minimal effort. Automatic watering when the plant is thirsty,
automatic lighting when it gets dark, and expandable to add further features as
you see fit, this template design is perfect for the beginner in home
aquaponics and microcontrollers alike!
Notice the LED grow light; these are
specifically designed to give the most usable light for the least cost. This light contains two 650 nm Red LEDs, two
450 nm Blue LEDs, and one 700 nm Red LED colors, which provide specially
targeted colors to ensure less light is wasted and more is absorbed by plants.
There are many claims made
regarding grow lights in regards to “photosynthetically active radiation,”
including:
420-500nm wavelength (blue) light provides
the largest proportion of chlorophyll and carotenoid absorption, and has the greatest
impact on photosynthesis.
620-750nm wavelength (red) light provides
high chlorophyll absorption rates, and has a significant influence on the
photosynthesis and photoperiod effects.
Relative
efficiency of various light colors in photosynthesis.
(http://www.ext.colostate.edu/mg/gardennotes/142.html)
The LED bulb used in this project
is 10 watts, which comes to less than 0.1 amps of consumption. Our water pump is only 3 watts. With our 15 amp outlets (and 25 amp relays),
we could power 150 lights and 450 water pumps.
Additional Sources:
//Gardenbot
//By Jason Groce
//Revision 1.0 Date 2015-10-01
int moisturePin = A0;
int photoresistor = 9;
int lightRelay = 6;
int waterRelay = 7;
int darkTime = 3000;
int dryTime = 3000;
long previousDarkMillis = 0;
long previousDryMillis = 0;
void setup() {
pinMode(moisturePin, INPUT);
pinMode(photoresistor, INPUT);
pinMode(lightRelay, OUTPUT);
pinMode(waterRelay, OUTPUT);
}
void loop() {
unsigned long currentMillis =
millis(); //current time
if(digitalRead(photoresistor)
== LOW){ //if light detected
previousDarkMillis =
currentMillis; //reset
counter to 0
}
if(currentMillis -
previousDarkMillis > darkTime) { //if
counter greater than darkTime
digitalWrite(lightRelay, HIGH); //lights on
} else {
digitalWrite(lightRelay,
LOW); //else lights off
}
if(analogRead(moisturePin) <
1000) { //if water detected
previousDryMillis =
currentMillis; //reset counter to 0
}
if(currentMillis -
previousDryMillis > dryTime) { //if counter greater than dryTime
digitalWrite(waterRelay,
HIGH); //water on
} else {
digitalWrite(waterRelay,
LOW); //else water off
}
}
Human
Battery
Power
Through Copper and Zinc
It all began in 1800 with the “Voltaic Pile,” the first
effective electrical battery, created by Alessadro Volta. Layers of copper and zinc, with an
electrolyte placed between, produce an electrochemical effect, which dissolves
part of the zinc discs and deposits the zinc ions on the copper discs. This frees some electrons to travel through
the circuit.
An easy
way to do this at home is to use pennies.
Since pennies are copper on the outside and zinc inside, you can file
the pennies down on one side and expose the zinc. Then stack them with cardboard soaked in
lemon juice or vinegar to make your own Voltaic Pile.
This
is the same way “Lemon
Batteries” and similar science tricks work.
Now for the secret: you can use
dozens of combinations of metals with many kinds of liquid to do the same
thing! This even works with using a
person as the “acid”, oddly enough! Just
hold a strip of zinc in one hand, a strip of copper in the other, connect these
up to a multimeter, and watch the power
flow through you!
Brain-Computer Interface
One
Part Hacked MindFlex Headset, One Part Arduino, All in Your Head
The
Mind Flex provides eight values representing the amount of electrical activity
at different frequencies. This data is heavily filtered / amplified, so where a
conventional medical-grade EEG would give you absolute voltage values for each
band, NeuroSky instead gives you relative measurements which aren’t easily
mapped to real-world units. A run down of the frequencies involved follows,
along with a grossly oversimplified summary of the associated mental states.
·
Delta (1-3Hz): sleep
·
Theta (4-7Hz): relaxed, meditative
·
Low Alpha (8-9Hz): eyes closed, relaxed
·
High Alpha (10-12Hz)
·
Low Beta (13-17Hz): alert, focused
·
High Beta (18-30Hz)
·
Low Gamma (31-40Hz): multi-sensory
processing
·
High Gamma (41-50Hz)
In
addition to these power-band values, the NeuroSky chip provides a pair of
proprietary, black-box data values dubbed “attention” and “mediation”. These
are intended to provide an easily-grokked reduction of the brainwave data, and
it’s what the Force Trainer and Mind Flex actually use to control the game
state. We’re a bit skeptical of these values, since NeuroSky won’t disclose how
they work, but a white paper
they’ve released suggests that the values are at least statistically
distinguishable from nonsense.
Here’s
the company line on each value:
·
Attention:
Indicates
the intensity of a user’s level of mental “focus” or “attention”, such as that
which occurs during intense concentration and directed (but stable) mental
activity. Distractions, wandering thoughts, lack of focus, or anxiety may lower
the Attention meter levels.
·
Meditation:
Indicates
the level of a user’s mental “calmness” or “relaxation”. Meditation is related
to reduced activity by the active mental processes in the brain, and it has
long been an observed effect that closing one’s eyes turns off the mental
activities which process images from the eyes, so closing the eyes is often an
effective method for increasing the Meditation meter level. Distractions,
wandering thoughts, anxiety, agitation, and sensory stimuli may lower the
Meditation meter levels.
MORE INFO TO COME!