Friday, December 12, 2014

Last Post (Again)!

So, unfortunately, we couldn't keep up with the various kinks and goofs that eventually crippled the launcher. When we got to the expo, everything was great except the valve at the back through which air was pumped didn't stay sealed. We suspect that the cold air weakened the budget epoxy we used to seal it, and that spelled its demise.

Overall, however, the project is salvageable. Alex will probably take it home with him this winter, much to the dismay of his cats that it will inevitably torture. We had a blast working together and the fact that we had something even partially functional counts as a success to us. So long!

Last Post!

So, here we are, the day of the presentation and the launcher is complete. It's still got a few kinks but overall, it works.

Rather than 3D print the original part, we've opted to go the simpler route and use a PVC Wye joint to load the ping pong balls in from the top. A servo motor is mounted to the tube to only allow one ball in at a time. From there, a solenoid valve opens to release air pressure built up in a 2L bottle.

We got a little bored and coded in a shot counter, too. We're going to try to work out a few kinks before we head to the expo. Hopefully we'll have it completely functional when we get there!

#include <Servo.h>

Servo Bolt;
const int buttonPin = 2;  
const int valvePin = 4;
const int latchPin = 8;
const int clockPin = 12;
const int dataPin = 9;

int fireState = LOW;         
int buttonState;            
int previousButtonState = LOW; 
int ammo=9;

unsigned long lastDebounceTime = 0;  
unsigned long debounceDelay = 50;

byte digits[11]= {0x77, 0x44, 0x6B, 0x6E, 0x5C, 0x3E, 0x3F, 0x64, 0xFF, 0x7E, 0x00};

void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  
  Bolt.attach(11);
  pinMode(buttonPin, INPUT);
  pinMode(valvePin, OUTPUT);
  
  digitalWrite(valvePin,LOW);

  reload();  
}

void loop() { 
  guage(ammo);
  
  int x = digitalRead(buttonPin); 
  
  if (x != previousButtonState) {
    lastDebounceTime = millis();
  } 
  if ((millis() - lastDebounceTime) > debounceDelay) {
    if (x != buttonState) {
      buttonState = x;
      if (buttonState == HIGH) {
        fireState = 1;
      }
    }
  }   
  if (fireState == 1){
    if (ammo == 0){
     for (int j=0; j<5; j++){
         guage (0);
         delay (250);
         guage (10);
         delay (250);
         fireState = 0;
     }
  }
  else {
      digitalWrite (valvePin, HIGH);
      delay (300);
      digitalWrite(valvePin,LOW);
      delay (1500);
      reload();
      delay (500);
      ammo--;
      fireState = 0;
      }
    }
  previousButtonState = x;
  }

void reload (){
  Bolt.write(0);
  delay(55);
  Bolt.write(20); 
}

void guage(int y){
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, LSBFIRST, digits[y] );
  digitalWrite(latchPin, HIGH); 
}

It's long. But so far, so good!

Monday, December 8, 2014

Alright, good news. The design is finalized, the parts are on their way in and with any luck, the launcher will be ready to go by the end of the week.

Alex and Trevor have revised the final design. Originally, the ball was going to be launched by a solenoid motor. They've decided to go with a pressure system instead. A bike pump hooked into a 2L bottle attached to a solenoid valve, controlled by an Arduino board (perhaps a bit of overkill, no?). The code is being finalized, and should be posted soon.

The part design for the launcher isn't going to change much, the dimensions will be altered to accommodate the side of the solenoid valve, other than that, the chute is still the same.

At the end of all this, we will have an easy-to-use launcher that can be used to fire lightweight projectiles a decent distance.

Here are a few shots of the model after it was "finalized". It looks a lot fancier now!



Thursday, November 20, 2014

Final Project Design, For Real This Time!

After a lot of head scratching, frustration, and failed revisions, we've decided to get rid of the Nerf idea. There simply isn't enough space inside the gun to make this idea work.

We've instead decided to come up with an Arduino-operated ping-pong ball launcher. The only part we're going to need to source is a launching mechanism, the rest will be fashioned in SolidWorks and coded with Arduino.

Since we've changed our idea a few times by this point, we decided it'd probably be a good idea to post the SolidWorks model of the launcher housing that Trevor has mocked up. This shell will be modified accordingly to fit the launcher we end up choosing.

This is the isometric view of the part as it currently stands:
 And this is the view from behind. The launcher will be inserted into the rectangular bay, oriented out the chute.
With any luck we'll be able to rig our launcher to a simple Arduino push-button launching system. With a lot of luck, we'll be able to do something really cool, like have it rotate on a base, or fire automatically from a gravity-fed hopper. Stay tuned!

Wednesday, November 12, 2014

Moving Forward...

Okay, so we're going with the Nerf gun idea. We're hoping to modify the air chamber to have a dynamic air valve. Basically, we're going to need a MASSIVE spring, and some mechanism of moving the valve. Two ideas that have been floated (and subsequently shot down) are a screwlike air chamber (impossible due to an internal plunger) or a variable-speed plunger (jury's still out on that, but we're going to need to replace the spring somehow). If those fail, Alex and Trevor will be spending a few hours of in-depth analysis figuring out how to make this happen. The goal is, in the end, to have the overall air pressure (and hence, velocity) changeable with a simple potentiometer.

Wednesday, November 5, 2014

Group Photo

Below is the photographic evidence of our initial group meeting. One of the first things we learned about each other is the fact that none of us can take a good picture.

Intro Post & Some Ideas

Hey world, we are Team AET and right now we are in the stages of designing a project with our arduino board. Check in daily to see what we are accomplishing.

I thought it would be fun for each member to post an idea of theirs that may or may not be incorporated into the final project. For me (Trevor, by the way), it's the variable-power Nerf rifle.

People mod their Nerf guns all the time, to make them more powerful, or shoot more painful projectiles (no thanks) et cetera. But the thing that bugs me about those mods is that they're permanent. What if your younger cousins or nephews or something want to play with it, or have a Nerf fight? Do you give their unsteady hands an overpowered foam launcher? Or worse, use it yourself then take their eye out with a well-placed but ill-timed blind fire?

Okay, maybe I'm reaching for practicality here, but the idea is solid. A simple, Arduino-controlled cylinder attached to a servo motor could expand or contract an air chamber in the typical Nerf rifle. Only a few items would have to be 3D-printed to make this idea work.

I'm Erik And I've got a different idea for our arduino project. Mine has to do with a simple mechanism for locking doors. The idea is using an arduino board by knocking on a door you can lock it. I've also been looking into a sonar system that could operate the same way.
https://www.youtube.com/watch?v=Qe9nEIAdiXo

Hello, 
     My name is Alex and an Initial Idea that I'm bringing to the table for the project is to make a stopwatch/timer that will display a counter and/or messages on an LCD screen. It would be an intermediate level project, that seems achievable.