![](http://www.weebly.com/weebly/images/file_icons/pdf.png)
1.pdf | |
File Size: | 38 kb |
File Type: |
![](http://www.weebly.com/weebly/images/file_icons/xls.png)
warfield_surveillance_robot.pptx | |
File Size: | 5866 kb |
File Type: | pptx |
![](http://www.weebly.com/weebly/images/file_icons/xls.png)
warfeil_par2.pptx | |
File Size: | 5829 kb |
File Type: | pptx |
Project overview:
- Use an iRobot Create platform to roam a building and map it with panoramic images. The robot would create estimates of position and images would be collected and stored and then later processed. Depending on accuracy of position measurements, the pictures could then be programmatically put into a database corresponding to map points. A bonus would be to have an android app that would give a basic interface to the pictures.
- Success would be measured by an accurate 2D map with precise ‘Street View’ areas of a building. Panoramic images and their calculated position should correspond closely to the actual building.Possible customers include government, emergency services (i.e. Firefighters), Armed Services, and institution.
WALL-E has undergone several upgrades this spring. Most notably was the transition from the old digital PCM Futaba radio, to the new 2.4GHz system, which will be more reliable and resistant to external FM interference. I chose the Futaba 10CAP, which will give me room to grow as time goes by.
It also upgraded the linear actuator used in the arm lift mechanism, and will be adding a second actuator to the left arm as well.
a few cosmetic changes to the arms and another track drive upgrade. The drive system has been a challenge throughout this build, and continue to improve it as time goes by.
The treads are plastic conveyor track (series 821) and the drive motors are NPC 2212s. The outer treads are poured urethane and were cast from an MDF master.
It also upgraded the linear actuator used in the arm lift mechanism, and will be adding a second actuator to the left arm as well.
a few cosmetic changes to the arms and another track drive upgrade. The drive system has been a challenge throughout this build, and continue to improve it as time goes by.
The treads are plastic conveyor track (series 821) and the drive motors are NPC 2212s. The outer treads are poured urethane and were cast from an MDF master.
Our design will take advantage of the iRobot create platform. Size will be limited to what can fit upon the robot platform and total weight of equipment will not exceed 15lbs. We plan to use a web camera to obtain high quality images. We will need to interface an Arduino board with a 25 pin connector to control and read sensors on the robot.
Fall goals:
Fall goals:
- Successfully test camera.
- Test with human holding camera and turning while taking pictures.
- Create a mechanism to turn the camera.
- Test sensors and how they work.
Spring Goals:- Begin to combine all elements.
- Perfect autonomous mode of robot.
- Implement image recognition if time allows.
- Implement android app if time allows.
![Picture](/uploads/2/9/9/7/29979695/341818473.jpg)
Approach:
- Individually test components and sensors.
- Rotation of camera
- Activation of camera
- Storage of pictures for post processing.
- Create basic application to view images.
Skills:
- Programming (logic and hardware)
- Hardware (constructing circuits and wiring)
#include <Servo.h>
Servo myservo; // create servo object to control a servo
Servo myservo1; // create servo object to control a servo
int val1=0;
int val2=0;
int a=LOW;
int b=LOW;
void setup()
{
myservo.attach(8); // attaches the servo on pin 9 to the servo object
myservo1.attach(9); // attaches the servo on pin 9 to the servo object
myservo.write(val1);
myservo1.write(val2);
pinMode(19, INPUT);
pinMode(11, INPUT);
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
digitalWrite(0, LOW); // left
digitalWrite(1, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(0, HIGH); // front
digitalWrite(1, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second digitalWrite(0, HIGH);
digitalWrite(0, HIGH); // right
digitalWrite(1, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, LOW); // turn the LED on (HIGH is the voltage level)
delay(1000);
digitalWrite(0, LOW); // back
digitalWrite(1, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, LOW); // turn the LED on (HIGH is the voltage level)
delay(1000);
}
void loop()
{
digitalWrite(0, HIGH); // front
digitalWrite(1, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, HIGH); // turn the LED on (HIGH is the voltage level)
a = digitalRead(11);
b = digitalRead(19);
if(b==HIGH)
{
digitalWrite(0, LOW); // back
digitalWrite(1, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, LOW); // turn the LED on (HIGH is the voltage level)
delay(3000);
digitalWrite(0, HIGH); // right
digitalWrite(1, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, LOW); // turn the LED on (HIGH is the voltage level)
delay(4000);
digitalWrite(0, HIGH); // front
digitalWrite(1, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, HIGH); // turn the LED on (HIGH is the voltage level)
}
if(a==HIGH)
{
digitalWrite(0, LOW); // front
digitalWrite(1, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, LOW); // turn the LED on (HIGH is the voltage level)
val1=180;
val2=90;
myservo.write(val1);
myservo1.write(val2);
delay(3000);
val1=0;
val2=0;
myservo.write(val1);
myservo1.write(val2);
}
}
Servo myservo; // create servo object to control a servo
Servo myservo1; // create servo object to control a servo
int val1=0;
int val2=0;
int a=LOW;
int b=LOW;
void setup()
{
myservo.attach(8); // attaches the servo on pin 9 to the servo object
myservo1.attach(9); // attaches the servo on pin 9 to the servo object
myservo.write(val1);
myservo1.write(val2);
pinMode(19, INPUT);
pinMode(11, INPUT);
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
digitalWrite(0, LOW); // left
digitalWrite(1, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(0, HIGH); // front
digitalWrite(1, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second digitalWrite(0, HIGH);
digitalWrite(0, HIGH); // right
digitalWrite(1, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, LOW); // turn the LED on (HIGH is the voltage level)
delay(1000);
digitalWrite(0, LOW); // back
digitalWrite(1, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, LOW); // turn the LED on (HIGH is the voltage level)
delay(1000);
}
void loop()
{
digitalWrite(0, HIGH); // front
digitalWrite(1, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, HIGH); // turn the LED on (HIGH is the voltage level)
a = digitalRead(11);
b = digitalRead(19);
if(b==HIGH)
{
digitalWrite(0, LOW); // back
digitalWrite(1, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, LOW); // turn the LED on (HIGH is the voltage level)
delay(3000);
digitalWrite(0, HIGH); // right
digitalWrite(1, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, LOW); // turn the LED on (HIGH is the voltage level)
delay(4000);
digitalWrite(0, HIGH); // front
digitalWrite(1, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, HIGH); // turn the LED on (HIGH is the voltage level)
}
if(a==HIGH)
{
digitalWrite(0, LOW); // front
digitalWrite(1, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(2, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, LOW); // turn the LED on (HIGH is the voltage level)
val1=180;
val2=90;
myservo.write(val1);
myservo1.write(val2);
delay(3000);
val1=0;
val2=0;
myservo.write(val1);
myservo1.write(val2);
}
}