Friday, December 13, 2013

The Final Product

We have put the finishing touches on the newly named arduinomonbile and are ready to show it off. Here's a picture of it below. We used Lego Technic Wheels and axles as well as some bushings to hold the axles in place. A 9 volt battery is being used to power the car, and the final program gives users control of the speed via a Potentiometer mounted on the breadboard in the front of the car. as well as an on off switch.



Hers a video of it running, due to the low torque of the motor and the diminished battery power, the car cant go very fast.

Final Hours Worked:
Sean Hatch- 15
Alex De Sena - 15
Micheal Lustwerk - 12
Richard Silk - 10

Contributions:
Sean handled the design, solid modeling, and assembly of the project.
Alex and Micheal Both worked on the programming aspect of the vehicle.
Richard handled the wring and assisted on the design of the car.

Tuesday, December 10, 2013

Ran into some Issues with the design, and progress update.

There was an issue with the gear on the axle and the gear on the drive axle properly meshing. We've designed a new gear and had it cut to fit perfectly into the teeth of the motor gear (pictured below) as well as a few final components.



We've also been looking into adding more functionality into the rig such as a tone that the vehicle can play while its moving, or incorporating a flex sensor to detect when the vehicle has run into an obstacle.

Sunday, December 8, 2013

Update

I've Picked up the Lego parts we need to put the car together, we should be able to have it running by the middle of the week.

Sunday, December 1, 2013

Getting Close

The parts have been designed and printed or cut and the code has been written, the final product is going to be assembled soon!

Saturday, November 23, 2013

Team Meeting 11/2213

We've come up with the circuit and code needed to run our design. A push button is used to turn on the system, an LED inticating its active, then a potentiometer then controls the speed of the motor driving the axles.

Here is the Circut:


The code:

const int buttonPin =  1;
int potpin = A0;
int motorpin = 4;
int analogread = 0;
int potvalue = 0;
int motorvalue = 0;
boolean currentState = LOW;
boolean lastState    = LOW;
boolean stateChange  = false;
int currentButton = 0;
int lastButton    = 2;
int ledArray[] = {13}; // setup
void setup() { 
pinMode(buttonPin, INPUT); 
for (int i=0; i<1; i++){   
pinMode(ledArray[i],OUTPUT); 
Serial.begin(9600);
pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
}  // main loop
void loop(){
 potvalue = analogRead(potpin);
if(potvalue <= 600 && potvalue >= 400){
  digitalWrite(8, HIGH);
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
}
else{
  if(potvalue <= 800 && potvalue >= 601){
    digitalWrite(8, LOW);
    digitalWrite(9, HIGH);
    digitalWrite(10, LOW);
  }
  else{
    if(potvalue <= 1023 && potvalue >= 801){
      digitalWrite(8, LOW);
      digitalWrite(9, LOW);
      digitalWrite(10, HIGH);
    }
  }


  currentState = debounceButton(); 
stateChange = checkForChange(currentState, lastState); 
currentButton = getButtonNumber(lastButton, currentState, stateChange); 
indicatorLight(currentButton); 
lastState  = currentState; 
lastButton = currentButton;
}  // function debounceButton
boolean debounceButton(){ 
boolean firstCheck   = LOW; 
boolean secondCheck  = LOW; 
boolean current = LOW;   
firstCheck  = digitalRead(buttonPin); 
delay(50); 
secondCheck = digitalRead(buttonPin);   
if (firstCheck == secondCheck){   
current = firstCheck; 
return current;
} // function checkForChange
boolean checkForChange(boolean current, boolean last){ 
boolean change;   
if (current != last){   
change = true; 
else { 
change = false; 
}   
return change;
}      // function getButtonNumber
int getButtonNumber(int button, boolean state, boolean change){ 
if (change == true && state == LOW){   
button++;   
if (button > 1){     
button = 0;   
}   
Serial.println(button); 
return button;
}
int motorspeed(int potvalue, int mororvalue){
  potvalue = analogRead(potpin);
  motorvalue = map(potvalue, 0, 1023, 0, 255);
  Serial.print(motorvalue);
}
 
 
void indicatorLight(int button){ 
for (int i=0; i<1; i++) {   
digitalWrite(ledArray[i], LOW);

digitalWrite(ledArray[button], HIGH);
if(button == 0){
potvalue = analogRead(potpin); 
 motorvalue = map(potvalue, 0, 1023, 0, 255);
 analogWrite(motorpin, motorvalue); 
 Serial.print("potentiometer = " );    
 Serial.print(potvalue);
 Serial.print("\t motor = ");
 Serial.println(motorvalue);
 delay(2);

}
else{
  analogWrite(motorpin, 0);
  digitalWrite(8, LOW);
  digitalWrite(9,LOW);
  digitalWrite(10, LOW);
}


    }


Couldn't get Github to work :(

Hours Logged - week/total
Sean Hatch - 4/8
Alex De Sena -  4/8
Mike Lustwerk - 4/9
Richard Silk - 4/8

Thursday, November 21, 2013

Assembly

This the solidworks assembly for our project. There is no wheels attached to the axles so the gears are visible druing the animation. There will be a caster wheel on the end opposite the axles, mounted underneath the base, to aloow it to move. This means we are going with the 3 wheeled aprroach.

Monday, November 18, 2013

Change in Plans

The LCD we were planning to use, is no longer part of the plan. We will now be just using the LEDs as an indication of the program functioning and the speed of the motor. A new video will be uploaded soon showing the new program in action. The next full group meeting is later this week.