Difference between revisions of "Sumobotsclass"

From LVL1
Jump to navigation Jump to search
Line 58: Line 58:
  
 
}
 
}
 +
 +
These are functions that make life easy, someone else did the math no we don't have to.
  
 
  void blink(int whatPin, int howManyTimes, int milliSecs) {//blinks an LED
 
  void blink(int whatPin, int howManyTimes, int milliSecs) {//blinks an LED
Line 69: Line 71:
 
  }// end blink
 
  }// end blink
  
 +
float irdistance(int pin){
 +
  //http://luckylarry.co.uk/arduino-projects/arduino-using-a-sharp-ir-sensor-for-distance-calculation/
 +
  float volts, distance;
 +
  <nowiki>for (int i=0; i< 5; i++){ </nowiki>
 +
  volts = analogRead(pin)*0.0048828125;// (5/1024)
 +
  distance += 65* pow(volts, -1.10); //65 = theretical distance / (1/Volts)S
 +
  }
 +
  return (distance);
 +
}//end irdistance
  
  
Line 79: Line 90:
  
 
----
 
----
 
  
  
Line 103: Line 113:
 
| Resistor||10k Ohm ||http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=CF14JT10K0CT-ND||5
 
| Resistor||10k Ohm ||http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=CF14JT10K0CT-ND||5
 
|-
 
|-
| Resistor||1k ohm||http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=CF14JT1K00CT-ND||2
+
| Resistor||1k ohm||http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=CF14JT1K00CT-ND||3
|-
 
| Resistor||220ohm||http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=CF14JT220RCT-ND||2
 
 
|-
 
|-
 
| Voltage regulator||7805||http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=LM7805CT-ND||1
 
| Voltage regulator||7805||http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=LM7805CT-ND||1

Revision as of 11:26, 23 October 2011

Motor control code

#include <PololuQTRSensors.h>           //we're using the pololuQTR sensor library so we must attach it.
#define motor1dir 8                     //direction motor 2
#define motor1speed 9   		//pwm control motor 1
#define motor2dir 11                    //direction motor 2
#define motor2speed 10  		//pwm control motor 2
#define ledpin 13                       //led pin 
PololuQTRSensorsRC qtr((unsigned char[]) {19,18}, 2, 2000, 255); //declares two line sensors on pins 18 and 19 this corresponds to analog pins 4 and 5
unsigned int sensors[2];
void setup() {  // put your setup code here, to run once:
//motor control outputs
 pinMode(motor1dir, OUTPUT);
 pinMode(motor1speed, OUTPUT);
 pinMode(motor2dir, OUTPUT);
 pinMode(motor2speed, OUTPUT);
// AV outputs
 pinMode(ledPin, OUTPUT);
 pinMode(buzzerPin, OUTPUT);
 pinMode(irSensorPin, INPUT);
//Serial.begin(9600); // set up Serial library at 9600 bps for debugging
 delay (3000); //wait for everything and for the match to start  
 blink(ledPin, 3, 100);
  // blink the LED 3 times. This should happen only once. 
  // if you see the LED blink three times, it means that 
  // the module reset itself,. probably because the motor 
  // caused a brownout or a short. 
} //end setup


void loop() { // put your main code here, to run repeatedly:

qtr.read(sensors);
analogWrite(motor2speed,255);     			//go all out
analogWrite(motor1speed,255);
digitalWrite(motor1dir, HIGH);    			//go forward
digitalWrite(motor2dir, HIGH);
delay(3000);
digitalWrite(motor1dir, LOW);     			//go backwards
digitalWrite(motor2dir, LOW);
delay(3000);
digitalWrite(motor1dir, HIGH);     			//go right 
digitalWrite(motor2dir, LOW);
delay(3000);
digitalWrite(motor1dir, LOW);     			//go right
digitalWrite(motor2dir, HIGH);
delay(3000);
analogWrite(motor1speed,0);       			//stop
analogWrite(motor2speed,0);
delay(3000);
//Don't forget to enable the serial port in setup
Serial.print(analogRead(irSensorPin));
Serial.print(" r= ");
Serial.print(sensors[0]);//right
Serial.print(" l= ");
Serial.println(sensors[1]);//left 

}

These are functions that make life easy, someone else did the math no we don't have to.

void blink(int whatPin, int howManyTimes, int milliSecs) {//blinks an LED
 int i = 0;
 for ( i = 0; i < howManyTimes; i++) {
  digitalWrite(whatPin, HIGH);
  delay(milliSecs/2);
  digitalWrite(whatPin, LOW);
  delay(milliSecs/2);
 }
}// end blink
float irdistance(int pin){
 //http://luckylarry.co.uk/arduino-projects/arduino-using-a-sharp-ir-sensor-for-distance-calculation/
 float volts, distance;
 for (int i=0; i< 5; i++){ 
  volts = analogRead(pin)*0.0048828125;// (5/1024)
  distance += 65* pow(volts, -1.10); //65 = theretical distance / (1/Volts)S
 }
 return (distance);
}//end irdistance




QTR line sensors




Need a Mechapad or some Protoboard and Patience

what type where amount per bot
motor driver h-bridge http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-9911-5-ND 1
transistor NPN Transistor http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=2N3904GOS-ND 2
Capacitor Ceramic 0.1uF http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=399-4266-ND 2
diode Diode Rectifier - 1A 50V http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=641-1311-1-ND 8
Crystal 16MHz Crystal 16MHz http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=887-1019-ND 1
Microcontroller ATMega328 http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=ATMEGA328-PU-ND 1
Resistor 10k Ohm http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=CF14JT10K0CT-ND 5
Resistor 1k ohm http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=CF14JT1K00CT-ND 3
Voltage regulator 7805 http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=LM7805CT-ND 1
Capacitor Electrolytic 10uF/25V http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=P975-ND 1
Power switch switch http://search.digikey.com/scripts/dksearch/dksus.dll?pname&WT.z_cid=&name=679-1854-ND 1
reset button button http://search.digikey.com/scripts/dksearch/dksus.dll?pname&WT.z_cid=&name=SW400-ND 1
Capacitor Electrolytic 100uF/25V http://search.digikey.com/scripts/dksearch/dksus.dll?vendor=0&keywords=P10269-ND 1
Motors/wheels GM8 http://www.solarbotics.com/products/gmpw_deal/ 2
connectors female headers > 20 http://www.sparkfun.com/products/115 1
connectors male headers > 20 http://www.sparkfun.com/products/116 1
sensors Infrared Proximity Sensor - Sharp GP2Y0A21YK http://www.sparkfun.com/products/242 1
Capacitor Ceramic 22pF http://www.sparkfun.com/products/8571 2
batteryholder 9vsnap http://www.sparkfun.com/products/91 1
sensors QRE1113 Line Sensor Analog http://www.sparkfun.com/products/9453 2
LED Basic LED - 5mm laying around 1

Mechapad.png


eagle design files