Saturday, December 17, 2016

Dec 16th- Xplorers- Wind Turbines

The Xplorers continued work on their wind turbine prototypes:


This one above uses plastic cups as a pedestal.


This one(above) is sort of a Savonius-type vertical axis windmill( see sketch below). I pointed out that I would be surprised if it rotated, since it would catch wind in both directions. I have not seen it rotate yet.




This one above used  recycled blades from an RC helicopter. It used a Lego axle inserted through a hole in the balsa wood; this caused problems, since a bearing needs to restrict motion to rotation only, which this one does not. The student wanted to use Lego gears to increase the speed to the motor axle by having a large gear drive a smaller gear. I started to create a frame using Technics beams to try and hold the gears in correct position. This can be done--see http://www.moc-pages.com/moc.php/404210#nacelle



I left the student to finish it.




This group's turbine(above) was very finely crafted. They used a lot of hot glue. They asked Mr. Peloquin for help in using belts to connect the two turbines, and he sketched some ideas:





Lastly, the design below seemed like it might rotate, if the blade angles were adjusted:



I pointed out the difference between various prototype definitions-

Basic prototype categories[edit]
Prototypes explore different aspects of an intended design:
  • Proof-of-Principle Prototype serves to verify some key functional aspects of the intended design, but usually does not have all the functionality of the final product.
  • Working Prototype represents all or nearly all of the functionality of the final product.
  • Visual Prototype represents the size and appearance, but not the functionality, of the intended design. A Form Study Prototype is a preliminary type of visual prototype in which the geometric features of a design are emphasized, with less concern for color, texture, or other aspects of the final appearance.
  • User Experience Prototype represents enough of the appearance and function of the product that it can be used for user research.
  • Functional Prototype captures both function and appearance of the intended design, though it may be created with different techniques and even different scale from final design.[5][6]
  • Paper Prototype is a printed or hand-drawn representation of the user interface of a software product. Such prototypes are commonly used for early testing of a software design, and can be part of a software walkthrough to confirm design decisions before more costly levels of design effort are expended.[7]
( Wikipedia  https://en.wikipedia.org/wiki/Prototype )

Dec 16th- 201's- Bicycle Shelter Model, etc.

I was absent during the 201 class. They attempted to 3D print a model of the bicycle shelter:



The print was not successful. I suggested orienting the bicycle rack model flat, and trying the print again. I also offered them Coroplast and sticks to use to build an architectural model.



Work was also done on the fish feeder mechanism.

Dec 16th- 101's- LED Strip

I rewired the existing 4-wire LED strip, which runs off 12V ( black to + 12, red, green. blue to GND):


and measured the current draw:



The strip drew 0.47A for a single color, and about 1 A for all three colors. I also tried lighting a single color with a 9V battery. It glowed, but much fainter than with the 12V gel-cel. I pointed this out to Jacob.

Friday, December 16, 2016

Dec 16th- 101's- Algae, Bikes, Arduino

The algae arrived!




Lights go on and off on a 30 minute cycle. Team says they will feed them with urea-based fertilizer( Miracle Gro). Unsure of concentration.

I pointed out to the students that Miracle-Gro does not contain nitrates, but rather urea:



Plants group readied presentation to give to the principal, but ran out of time to present.

Prepared raft for hydroponic system:




Bikes Group:

Measured and made cross-pieces for frame:


 Experimented with Neopixel strips:




Next week will combine code to make neopixels turn on and off with light sensor:

/*
  ReadAnalogVoltage
  Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.
  Graphical representation is available using serial plotter (Tools > Serial Plotter menu)
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

  This example code is in the public domain.
*/

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
   pinMode(13, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.println(voltage);
  if (voltage> 2.0){
    tone(8,440);
    digitalWrite( 13, HIGH);
  } else {
    noTone(8);
    digitalWrite(13,LOW);
  }

}
-------------
#include <Adafruit_NeoPixel.h>
#include <avr/power.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(60, 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.

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'
}

void loop() {
  // Some example procedures showing how to display to the pixels:
  colorWipe(strip.Color(255, 0, 0), 50); // Red
  colorWipe(strip.Color(0, 255, 0), 50); // Green
  colorWipe(strip.Color(0, 0, 255), 50); // Blue
  // Send a theater pixel chase in...
  theaterChase(strip.Color(127, 127, 127), 50); // White
  theaterChase(strip.Color(127,   0,   0), 50); // Red
  theaterChase(strip.Color(  0,   0, 127), 50); // Blue

  rainbow(20);
  rainbowCycle(20);
  theaterChaseRainbow(50);
}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, c);
      strip.show();
      delay(wait);
  }
}

void rainbow(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) {
    for(i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i+j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel
    for(i=0; i< strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

//Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait) {
  for (int j=0; j<10; j++) {  //do 10 cycles of chasing
    for (int q=0; q < 3; q++) {
      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, c);    //turn every third pixel on
      }
      strip.show();
   
      delay(wait);
   
      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}

//Theatre-style crawling lights with rainbow effect
void theaterChaseRainbow(uint8_t wait) {
  for (int j=0; j < 256; j++) {     // cycle all 256 colors in the wheel
    for (int q=0; q < 3; q++) {
        for (int i=0; i < strip.numPixels(); i=i+3) {
          strip.setPixelColor(i+q, Wheel( (i+j) % 255));    //turn every third pixel on
        }
        strip.show();
     
        delay(wait);
     
        for (int i=0; i < strip.numPixels(); i=i+3) {
          strip.setPixelColor(i+q, 0);        //turn every third pixel off
        }
    }
  }
}

// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else if(WheelPos < 170) {
    WheelPos -= 85;
   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  } else {
   WheelPos -= 170;
   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  }
}


Thursday, December 15, 2016

Dec 15th- 101's- Bikes Group


Worked with Jacob.

Added screws to bike stand, but countersink bits were defective.

Jacob wanted to add lights to bike that came on when it got dark,

Showed him photoresistor- in light, resistance about 1 Kohm; in dark, about 10 kohm.

Made voltage divider using Arduino 5V supply and breadboatd.

See https://learn.adafruit.com/photocells/using-a-photocell.








Ran Analog Read Sketch:



This gave nice light vs dark readings.

Added speaker for sound on pin 8 and LED for light on pin 13:


Jacob wanted to use LED strip( 4 wire)- will have to investigate specs.

Wednesday, December 14, 2016

Dec 14th- 101's- Adjusting ammonia, making rafts

Aquaponics group-

Traced net cups onto foam.

Fabricated rafts using pink extruded polystyrene foam( XPS) which was much less friable than the white expanded polystyrene foam( EPS). They used a combination of a hot-wire cutter demonstrated by Dr. T and a knife to cut the foam. The hot wire cutter was very satisfying to use.

See http://insulfoam.com/insulation-comparisons/ for more on types of rigid foam insulation.




The Aquaponics group also added some ammonia to their system to begin cycling it:


Bikes Group-

The bikes group glued a cross piece onto the bike stand. They also experimented with neopixel lights which may get added to the bike:


Plants Group-

 Gave out samples of sprouts, which were tasty.

Tuesday, December 13, 2016

Dec 14th- XPlorers- Wind turbine designs

The Xplorers continued to fabricate and test their wind turbine designs.


Group at right(above) constructed a cardboard box, presumably to support a generator. It will be interesting to see how they create a bearing in this arrangement.

Beginnings of a Savonius rotor?- I suggested mounting the axle to the bottom panel.

One group, using a 3-bladed design, was able to get their turbine to spin, by using a straw as a sleeve bearing.

They also tried using Lego gears to gear up a small propeller. It would not turn. When the gears were reversed, so that it geared down( 8:40), it spun, but only turned the output shaft slowly. It was suggested that a larger rotor was required, as power is proportional to the area swept by the rotor:



Another group made a flat rotor. This did not turn, as the rotor blades were perpendicular to the wind direction.

Another group used cup-shaped rotors, reasoning that they would catch more wind than a flat rotor( based perhaps on an anemometer). This also did not work, as the angles were not consistent and the cup shaped did not provide thrust in a uniform direction. They also constructed a PVC stand for theit rotor.



Another group made a miniature pinwheel as an art project. However, the rotor blades were not fixed in position, and so it did not turn as of yet.


They also made a little seat for their project:



There seems to be some conceptual confusion between a waterwheel, which is typically powered by a highly directed stream in the same direction of rotation, 


and a wind turbine, which is powered uniformly applied moving air at 90 degrees to the axis of rotation.