Final Report Shoe Fetish

Size: px
Start display at page:

Download "Final Report Shoe Fetish"

Transcription

1 Final Report Shoe Fetish Jing Zou University of Florida Department of Electrical and Computer Engineering EEL 5666 IMDL Instructors: A. Antonio Arroyo, Eric M. Schwartz TAs: Josh Weaver, Andy Gray, Devin Hughes

2 Contents Abstract... 3 Executive Summary... 3 Introduction... 3 Integrated System... 4 Mobile Platform... 4 Actuation System... 6 Sensors... 7 Behaviors... 7 System... 8 Sensors and their function... 错误! 未定义书签 Reference... 错误! 未定义书签

3 Abstract Shoe Fetish is a cleaning robot. It can search for shoes with specific colors on them, pick them up and relocate them on the shoes rack. And then it would start anther working circle and looking for another shoe, etc. Shoe Fetish could perform obstacle avoidance while searching for a shoe. We can interrupt its searching state and conduct remote control on the robot s moving direction, start or stop from the laptop. Shoe Fetish has potential in the application of room clean together with remote control entertainment. Executive Summary Shoe Fetish is an autonomous robot with the main function is to arrange the shoe in the room so as to keep the room in order. All the detection work is done by computer vision. Here the fake shoe I used is a box with a special color and the fake shoes rack is a colored paper. First, the robot utilizes a random route strategy to search the shoe over a restricted area, and with the IR sensors fixed in the front edge, it could perform obstacle avoidance during this searching mode. An IPhone is mounted on the robot to act as an IP camera. Images captured by the camera are sent back to the laptop through wifi. Then image processing is conducted on the laptop through OpenCV, achieving the goal of object detection using color recognition. After finding the object, first 'the shoe, the robot will move towards the detected object using camera to navigate its motion. After the object reaches the designed destination zone in the camera, the robot then make the judgment that the object is in the desire position for the next operation. Here the robot will pick up the shoe with the special scratch designed for grabbing the shoe. Afterward, the robot switches the working state, then searches for the shoes rack and reaches the shoes rack with the same method used for searching shoe. Upon finishing the find-locate process, the robot would lay down the shoe on the shoes rack. Till now, one working circle is done. Another working circle consists of the same procedures will starts, etc. The working state of the robot is presented on the LCD screen mounted at the top layer of the robot. And we can get the information about what the robot is currently engaged in through reading the words on the LCD. Apart from that, we can also interrupt its searching state and conduct remote control on the robot from the laptop, asking the robot to moving in the designated direction, stop moving and start moving. Introduction Many people do not like to pick up their shoes and put them on the shoes rack after they take off the shoes. Obviously this is a simply but not pleasant thing to do. I have the same issue with this assignment, and it motivates me to build an autonomous robot that could do this stuff for us. I use some tracking techniques from [1] and [2]. The objective of this project is to construct an autonomous robot which combines the function of arrange the shoes and remote control. The rest of this report is made of integrated system, mobile platform, actuation, sensors, behaviors,

4 experimental layout and results, conclusion, documentation and appendices. They give descriptions about the components of the robot system, their working performance and discussions. Integrated System Shoe Fetish is using an Arduino mega 2560 R3 microcontroller board as its controller. It is based on the ATmega2560. It has 54 digital input / output pins (of which 14 can be used as PWM outputs), 16 analog inputs, 4 UARTs (hardware serial ports), a 16 MHz crystal oscillator, a USB connection, a power jack, an ICSP header, and a reset button. Three IR rangefinders are utilized to fed directly to the Arduino Board for obstacle avoidance. An IPhone used as an IP camera is integrated into the control system through taking video of the environment in front of the robot and transmitted the video to a laptop over WiFi for processing and then sending the resultant command signals to the Arduino Board via two Xbees. The video processing is done on a laptop since the processing capability required is beyond the Arduino Board. The Arduino Board is in charge of platform movement and actuators control. System Configuration IR Rangefinder Motor Controller DC Motor Obstacle Detection Embed Board Atmega 2560 IP camera LCD Platform Image Router Laptop Inquiry Message Robot arm servos shoe Distance Xbee Resultant command Xbee The system configuration Mobile Platform To successfully find out, pick up and put the shoes on the shoes rack, the mechanical part should be able to first carry out the searching task. A mobile platform is designed as the figure:

5 The two front wheels are driven by two motors. The motors can drive the two wheels at different or the same speed, which accomplish the moving speed control and direction control of the platform.

6 Actuation System The actuation system is driven by the following actuators: Two 75:1 Metal Gearmotor 25Dx54L mm: gearmotor used to drive the robot. Two motors total each directly tied to the tires. Two HKSCM9-6 Singlechip Digital Micro Servo (6V): this small torque servo is used to drive the two scratches of the robot hand, giving the close and open motion. Corona DS558HV Digital Metal Gear Servo 14kg/ 58g/ 0.18 Sec: this medium torque servo is used to drive the arm of the robot arm, accomplish pull up and lay down motion. Robot Hand Structure: used for pick up the shoe.

7 Sensors IR Rangefinder: three IR are mounted on the front edge of the platform to perform obstacle detection in front of the platform and distance measurement. IP camera: mounted on the platform to accomplish the task of shoe and shoes rack detection and tracking. Behaviors

8 Robot is initially set to seek out for shoe and identify them as possible targets. While the robot is searching its objectives, it can perform obstacle avoidance. Once an object has been located, the robot must proceed to move towards its target, while adjusting its trajectory to compensate for any deviations. And then finish the pick up, relocate and lay down motion. Functions to fulfill those operations are listed below: Search: The robot is taking a random path strategy to search for the objective. First move forward for a random distance and then randomly decided the rotate direction and rotate angle of the platform. Pick up: To pick up the shoe, the robot is first opens its scratches. Then it pulls down the arm of its robot hand. After that, close its scratches, and finally pulls up its arm. Lay down: To lay down the shoe on the shoes rack, the robot first pulls down the arm of its robot hand. After that, it opens its scratches to let off the shoe on the shoes rack. Finally, the robot pulls up its arm. Obstacle avoidance: Obstacle avoidance function decides the motion of the platform by the synthesis of values coming from all the three IR rangefinders. If only the value from right side IR gets bigger than 30, the robot would first move backward for 500ms, then rotate left for 500ms, then continuous its original move. If only the value from left side IR gets bigger than 300, the robot would first move backward for 500ms, then rotate right for 500ms, then continuous its original move. If the value from the IR in the middle gets bigger than 300, the robot would first move backward for 500ms, then randomly rotate left or right for 500ms, then continuous its original move. If both the values from right side IR and left side IR get bigger than 300, the robot would first move backward for 500ms, then randomly rotate left or right for 500ms, then continuous its original move. Object tracking In order to get a good object tracking result, the robot is using the coordinates of the object in the camera coordinate system to get the deviation between the destination and real position of the object. Then coordinate system of the camera is shown below: X Y

9 For shoe tracking, and are the desired position. and are the coordinates of the center point of the shoe. and give the acceptable square area with as the center, where the object is considered ready for next operation. If, the platform would turn left. If, the platform would turn right. If, the robot will move forward if, and the robot will move backward if. The shoes rack tracking has the similar principle as shoe tracking. Experimental Layout and Results System To get a reliable obstacle avoidance result, we need to calibrate those IR rangefinders and figure about a general relationship between the distance and the analog values from IR rangefinders to the Arduino Board. The calibration experiment is carried out as follows: And the calibration result is: Object Distance Analog Value 3cm 506 6cm 422 9cm cm 238 The robot is working together with my laptop, when OpenCV gets running, the Xbee connected on the laptop starts to send out resultant command the other Xbee connected with the Arduino Board. And it is critical to know the performance of image processing in OpenCV and if correct commands have been sent out. The image processing procedure is: (1) read the images from the IP camera; (2) present the images on the laptop screen and transform them into an HSV images; (3) for the pixels that have the HSV value in the designated HSV value range, mark them with white, and for the pixels that have the HSV value out of the designated HSV value range, mark

10 them with black and calculate the center point coordinates of the selected color; (4) show the binary images on a new window, make judgment about which command should be sent and print the command on the command window. Processing results are presented below: Conclusion Robot design and construction is a completely new area for me. I struggled from the beginning to the very end. During this study and application process, I am forced to learn many new things, both software and hardware, very fast in order to keep in pace. Although having experienced many hard periods for this lab course, I still feel really good at the end of this semester because I did feel I learn pretty much from it. This practical course is really different from other theoretical lectures. You are free to come up with your own ideas and try your best to accomplish them. There are many fallbacks as well. I burned one Arduino Board just two days before the Demo day and it made everything like a whole mess. Besides, as I went deeper into my robot design and construction process, more ideas comes up. Also I realized that there are many things I can do to make my robot a better one. Some ideas could still be applied on the robot and make it better, while it is impossible for many others thoughts. This process is always like so, full of excitation and regret. However, I do obtain a lot, and I know next time when I am going to build a robot, I could make a more satisfactory one. Documents [1] Michael Boyco, The Librarian, Fall 2010 IMDL report. [2] OpenCV Tutorial C++,

11 [3] Arduino Mega 2560: [4] Tracking a ball and rotating camera with OpenCV and Arduino: [5] Pololu Dual MC33926 Motor Driver Shield User s Guide: [6] Pololu Dual MC33926 Motor Driver Shield Library Code: [7] LiquidCrystal - "Hello World!": Appendices OpenCV code for color detection, tracking and remote control #include "stdafx.h" #include "opencv\cv.h" #include "opencv\highgui.h" #include <iostream> #include <iostream> #include<opencv/cvaux.h> #include<opencv/cxcore.h> #include<stdio.h> #include<stdlib.h> // Need to include this for serial port communication #include <Windows.h> using namespace cv; using namespace std; IplImage* imgtracking1; IplImage* imgtracking2; IplImage* imgtracking3; int lastx1 = -1; int lasty1 = -1; int lastx2 = -1; int lasty2 = -1; int lastx3 = -1; int lasty3 = -1; //set up the destination x,y coordinates for 3 object int X1=237; int Y1=210; int X2=205;

12 int Y2=205; int X3=235; int Y3=218; int SM = 0; int ST = 0; //function to rotate the image IplImage *rotateimage(const IplImage *src, int angledegrees) IplImage *imagerotated = cvcloneimage(src); if(angledegrees!=0) CvMat* rot_mat = cvcreatemat(2,3,cv_32fc1); // Compute rotation matrix CvPoint2D32f center = cvpoint2d32f( cvgetsize(imagerotated).width/2, cvgetsize(imagerotated).height/2 ); cv2drotationmatrix( center, angledegrees, 1, rot_mat ); // Do the transformation cvwarpaffine( src, imagerotated, rot_mat ); return imagerotated; //This function threshold the HSV image and create a binary image IplImage* GetThresholdedImage1(IplImage* imghsv) IplImage* imgthresh1=cvcreateimage(cvgetsize(imghsv),ipl_depth_8u, 1); cvinranges(imghsv, cvscalar(107,210,59), cvscalar(119,256,256), imgthresh1); return imgthresh1; //This function threshold the HSV image and create a binary image for another tracking color IplImage* GetThresholdedImage2(IplImage* imghsv) IplImage* imgthresh2=cvcreateimage(cvgetsize(imghsv),ipl_depth_8u, 1); cvinranges(imghsv, cvscalar(30,138,103), cvscalar(39,256,256), imgthresh2); return imgthresh2; //This function threshold the HSV image and create a binary image for the third tracking color IplImage* GetThresholdedImage3(IplImage* imghsv) IplImage* imgthresh3=cvcreateimage(cvgetsize(imghsv),ipl_depth_8u, 1); cvinranges(imghsv, cvscalar(55,194,226), cvscalar(73,256,256), imgthresh3); return imgthresh3; void trackobject1(iplimage* imgthresh1) // Calculate the moments of 'imgthresh' CvMoments *moments = (CvMoments*)malloc(sizeof(CvMoments)); cvmoments(imgthresh1, moments, 1); double moment10 = cvgetspatialmoment(moments, 1, 0);

13 double moment01 = cvgetspatialmoment(moments, 0, 1); double area = cvgetcentralmoment(moments, 0, 0); // if the area<1000, I consider that the there are no object in the image and it's because of the noise, the area is not zero if(area>1000) // calculate the position of the ball int posx = moment10/area; int posy = moment01/area; if(lastx1>=0 && lasty1>=0 && posx>=0 && posy>=0) // Draw a yellow line from the previous point to the current point cvline(imgtracking1, cvpoint(posx, posy), cvpoint(lastx1, lasty1), cvscalar(0,0,255), 4); lastx1 = posx; lasty1 = posy; if(area<=1000) lastx1=-1; lasty1=-1; free(moments); void trackobject2(iplimage* imgthresh2) // Calculate the moments of 'imgthresh' CvMoments *moments = (CvMoments*)malloc(sizeof(CvMoments)); cvmoments(imgthresh2, moments, 1); double moment10 = cvgetspatialmoment(moments, 1, 0); double moment01 = cvgetspatialmoment(moments, 0, 1); double area = cvgetcentralmoment(moments, 0, 0); // if the area<1000, I consider that the there are no object in the image and it's because of the noise, the area is not zero if(area>1000) // calculate the position of the ball int posx = moment10/area; int posy = moment01/area; if(lastx2>=0 && lasty2>=0 && posx>=0 && posy>=0) // Draw a yellow line from the previous point to the current point cvline(imgtracking2, cvpoint(posx, posy), cvpoint(lastx2, lasty2), cvscalar(0,0,255), 4);

14 lastx2 = posx; lasty2 = posy; if(area<=1000) lastx2=-1; lasty2=-1; free(moments); void trackobject3(iplimage* imgthresh3) // Calculate the moments of 'imgthresh' CvMoments *moments = (CvMoments*)malloc(sizeof(CvMoments)); cvmoments(imgthresh3, moments, 1); double moment10 = cvgetspatialmoment(moments, 1, 0); double moment01 = cvgetspatialmoment(moments, 0, 1); double area = cvgetcentralmoment(moments, 0, 0); // if the area<1000, I consider that the there are no object in the image and it's because of the noise, the area is not zero if(area>1000) // calculate the position of the ball int posx = moment10/area; int posy = moment01/area; if(lastx3>=0 && lasty3>=0 && posx>=0 && posy>=0) // Draw a yellow line from the previous point to the current point cvline(imgtracking3, cvpoint(posx, posy), cvpoint(lastx3, lasty3), cvscalar(0,0,255), 4); lastx3 = posx; lasty3 = posy; if(area<=1000) lastx3=-1; lasty3=-1; free(moments); int main() // Setup serial port connection and needed variables.

15 HANDLE hserial = CreateFile(L"COM1", GENERIC_READ GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (hserial!=invalid_handle_value) printf("port opened! \n"); DCB dcbserialparams; GetCommState(hSerial,&dcbSerialParams); dcbserialparams.baudrate = CBR_9600; dcbserialparams.bytesize = 8; dcbserialparams.parity = NOPARITY; dcbserialparams.stopbits = ONESTOPBIT; SetCommState(hSerial, &dcbserialparams); else if (GetLastError() == ERROR_FILE_NOT_FOUND) printf("serial port doesn't exist! \n"); printf("error while setting up serial port! \n"); char outputchars[]="a"; DWORD btsio; //outputchars[0]='d'; //outputchars[1]='r'; // CvCapture* capture =0; capture = cvcapturefromcam(1); //cvcreatefilecapture(" if(!capture) printf("capture failure\n"); return -1; IplImage* frame=0; frame = cvqueryframe(capture); if(!frame) return -1; //rotate the image frame=rotateimage(frame,180); CvSize size; size=cvgetsize(frame); cout<<size.width<<" "<<size.height;

16 //create a blank image and assigned to 'imgtracking' which has the same size of original video imgtracking1=cvcreateimage(cvgetsize(frame),ipl_depth_8u, 3); imgtracking2=cvcreateimage(cvgetsize(frame),ipl_depth_8u, 3); imgtracking3=cvcreateimage(cvgetsize(frame),ipl_depth_8u, 3); cvzero(imgtracking1); //covert the image, 'imgtracking1' to black cvzero(imgtracking2); //covert the image, 'imgtracking2' to black cvzero(imgtracking3); //covert the image, 'imgtracking3' to black cvnamedwindow("video"); cvnamedwindow("color Tracking1"); cvnamedwindow("color Tracking2"); cvnamedwindow("color Tracking3"); //iterate through each frames of the video while(true) //capture = cvcreatefilecapture(" frame = cvqueryframe(capture); if(!frame) break; //rotate the image //frame=rotateimage(frame,180); frame=cvcloneimage(frame); kernel cvsmooth(frame, frame, CV_GAUSSIAN,3,3); //smooth the original image using Gaussian IplImage* imghsv = cvcreateimage(cvgetsize(frame), IPL_DEPTH_8U, 3); cvcvtcolor(frame, imghsv, CV_BGR2HSV); //Change the color format from BGR to HSV IplImage* imgthresh1 = GetThresholdedImage1(imgHSV); IplImage* imgthresh2 = GetThresholdedImage2(imgHSV); IplImage* imgthresh3 = GetThresholdedImage3(imgHSV); cvsmooth(imgthresh1, imgthresh1, CV_GAUSSIAN,3,3); //smooth the binary image using Gaussian kernel cvsmooth(imgthresh2, imgthresh2, CV_GAUSSIAN,3,3); //smooth the binary image using Gaussian kernel cvsmooth(imgthresh3, imgthresh3, CV_GAUSSIAN,3,3); //smooth the binary image using Gaussian kernel //track the first color trackobject1(imgthresh1); //track the second color trackobject2(imgthresh2); //track the third color trackobject3(imgthresh3); //print the value of lastx and lasty

17 //cout<<lastx1<<" "<<lasty1<<endl; //cout<<lastx2<<" "<<lasty2<<endl; //cout<<lastx3<<" "<<lasty3<<endl; //if SM =0,send different string to Arduino through Xbee according to the detected object1 position //zone1 is cooresponding to x<210 if(sm == 0) if(st == 0) if(lastx1-x1<(-10) && lastx1!=(-1)) outputchars[0]='l'; lasty1!=(-1)) Y1<=10) //zone2 is cooresponding to x>270 if(lastx1-x1>10 && lastx1!=(-1)) outputchars[0]='r'; //zone3 is cooresponding to 210<=x<=270 while y<300 if(lastx1-x1>=(-10) && lastx1-x1<=10 && lasty1-y1<(-10) && outputchars[0]='f'; //zone4 is cooresponding to 210<=x<=270 while y>360 if(lastx1-x1>=(-10) && lastx1-x1<=10 && lasty1-y1>10 && lasty1!=(-1)) outputchars[0]='b'; //zone5 is cooresponding to 210<=x<=270 while 300<=y<=360 if(lastx1-x1>=(-10) && lastx1-x1<=10 && lasty1-y1>=(-10) && lasty1- outputchars[0]='s'; SM=1; int i = 0;

18 //this is for no color detected situation. 'search' mode if(lastx1==(-1) && lasty1==(-1)) outputchars[0]='o'; if(st == 1) outputchars[0]='a'; //if SM=1, send different string to Arduino through Xbee according to the detected object2 position //zone1 is cooresponding to x<210 if(sm == 1) if(st == 0) if(lastx2-x2<(-10) && lastx2!=(-1)) outputchars[0]='l'; lasty2!=(-1)) //zone2 is cooresponding to x>270 if(lastx2-x2>10 && lastx2!=(-1)) outputchars[0]='r'; //zone3 is cooresponding to 210<=x<=270 while y<300 if(lastx2-x2>=(-10) && lastx2-x2<=10 && lasty2-y2<(-10) && outputchars[0]='f'; //zone4 is cooresponding to 210<=x<=270 while y>360 if(lastx2-x2>=(-10) && lastx2-x2<=10 && lasty2-y2>10 && lasty2!=(-1))

19 outputchars[0]='b'; Y2<=10) //zone5 is cooresponding to 210<=x<=270 while 300<=y<=360 if(lastx2-x2>=(-10) && lastx2-x2<=10 && lasty2-y2>=(-10) && lasty2- outputchars[0]='d'; SM=2; //this is for no color detected situation. 'search' mode if(lastx2==(-1) && lasty2==(-1)) outputchars[0]='o'; if(st == 1) outputchars[0]='a'; //if SM =2,send different string to Arduino through Xbee according to the detected object3 position //zone1 is cooresponding to x<210 if(sm == 2) if(st == 0) if(lastx3-x3<(-10) && lastx3!=(-1)) outputchars[0]='l'; //zone2 is cooresponding to x>270 if(lastx3-x3>10 && lastx3!=(-1)) outputchars[0]='r';

20 lasty3!=(-1)) 1)) Y3<=10) //zone3 is cooresponding to 210<=x<=270 while y<300 if(lastx3-x3>=(-10) && lastx3-x3<=10 && lasty3-y3<(-10) && outputchars[0]='f'; //zone4 is cooresponding to 210<=x<=270 while y>360 if(lastx3-230>=(-10) && lastx3-230<=10 && lasty3-y3>10 && lasty3!=(- outputchars[0]='b'; //zone5 is cooresponding to 210<=x<=270 while 300<=y<=360 if(lastx3-x3>=(-10) && lastx3-x3<=10 && lasty3-y3>=(-10) && lasty3- outputchars[0]='s'; SM=3; int i = 0; //this is for no color detected situation. 'search' mode if(lastx3==(-1) && lasty3==(-1)) outputchars[0]='o'; if(st == 1) outputchars[0]='a'; //if SM=3, send different string to Arduino through Xbee according to the detected object2 position //zone1 is cooresponding to x<210 if(sm == 3) if(st == 0)

21 lasty2!=(-1)) Y2<=10) if(lastx2-x2<(-10) && lastx2!=(-1)) outputchars[0]='l'; //zone2 is cooresponding to x>270 if(lastx2-x2>10 && lastx2!=(-1)) outputchars[0]='r'; //zone3 is cooresponding to 210<=x<=270 while y<300 if(lastx2-x2>=(-10) && lastx2-x2<=10 && lasty2-y2<(-10) && outputchars[0]='f'; //zone4 is cooresponding to 210<=x<=270 while y>360 if(lastx2-x2>=(-10) && lastx2-x2<=10 && lasty2-y2>10 && lasty2!=(-1)) outputchars[0]='b'; //zone5 is cooresponding to 210<=x<=270 while 300<=y<=360 if(lastx2-x2>=(-10) && lastx2-x2<=10 && lasty2-y2>=(-10) && lasty2- outputchars[0]='d'; SM=0; //this is for no color detected situation. 'search' mode if(lastx2==(-1) && lasty2==(-1)) outputchars[0]='o';

22 if(st == 1) outputchars[0]='a'; cout<<outputchars<<endl; cout<<sm<<endl; // Add the tracking image and the frame cvadd(frame, imgtracking1, frame); cvadd(frame, imgtracking2, frame); cvadd(frame, imgtracking3, frame); cvshowimage("color Tracking1", imgthresh1); cvshowimage("color Tracking2", imgthresh2); cvshowimage("color Tracking3", imgthresh3); cvshowimage("video", frame); //Clean up used images cvreleaseimage(&imghsv); cvreleaseimage(&imgthresh1); cvreleaseimage(&imgthresh2); cvreleaseimage(&imgthresh3); cvreleaseimage(&frame); //Wait 10mS int c = cvwaitkey(30); //If 'A' is pressed, keep sending 'A' to Arduino Board until 'Z' is pressed if((char)c == 65) ST = 1; if((char)c == 90) ST = 0; //If 'ESC' is pressed, break the loop if((char)c==27 ) break; cvdestroyallwindows() ; cvreleaseimage(&imgtracking1); cvreleaseimage(&imgtracking2); cvreleaseimage(&imgtracking3); cvreleasecapture(&capture); return 0;

23 Arduino code for object tracking, pick up, lay down and obstacle avoidance. #include "DualMC33926MotorShield.h" #include <Servo.h> #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(40, 41, 42, 43, 44, 45); DualMC33926MotorShield md; Servo myservo1; // create servo object to control a servo Servo myservo2; Servo myservo3; void stopiffault() if (md.getfault()) while(1); void setup() Serial1.begin(9600); //initialize serial md.init(); myservo1.attach(2); // attaches the servo on pin 8 to the servo object myservo2.attach(3); myservo3.attach(5); // set up the LCD's number of columns and rows: lcd.begin(10, 1); //set the variable to store the reading from three IR. int adcvalueleft = 0; int adcvaluemiddle = 0; int adcvalueright = 0; int randomnumb = 0; int randomnumb1 = 0; int randomnumb2 = 0; int randomnumb3 = 0; int randomnumb4 = 0; int ST = 0; int pos1 = 0; // variable to store the servo position int pos2 = 0; int pos3 = 0; //set the variable to store the data sent from the laptop. char getctrl = 'O';

24 void pick_up() // Print a message to the LCD. lcd.setcursor(0, 0); lcd.print("pick up..."); for(pos2 = 93; pos2 >= 41; pos2 -= 1) myservo2.write(pos2); delay(15); for(pos3 = 10; pos3 <= 90; pos3 += 1) myservo3.write(pos3); delay(15); for(pos1 = 100; pos1 > 16; pos1 -= 1) // goes from 0 degrees to 180 degrees // in steps of 1 degree myservo1.write(pos1); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position for(pos2 = 41; pos2 < 94; pos2 += 1) myservo2.write(pos2); delay(15); for(pos3 = 90; pos3>=10; pos3-=1) myservo3.write(pos3); delay(15); for(pos1 = 16; pos1<=100; pos1+=1) myservo1.write(pos1); delay(15); // goes from 180 degrees to 0 degrees // tell servo to go to position in variable 'pos' // waits 15ms for the servo to reach the position void lay_down() // Print a message to the LCD. lcd.setcursor(0, 0); lcd.print("lay down.."); for(pos1 = 100; pos1 > 25; pos1 -= 1) // goes from 0 degrees to 180 degrees // in steps of 1 degree myservo1.write(pos1); // tell servo to go to position in variable 'pos'

25 delay(15); // waits 15ms for the servo to reach the position for(pos2 = 93; pos2 >= 41; pos2 -= 1) myservo2.write(pos2); delay(15); for(pos3 = 10; pos3 <= 90; pos3 += 1) myservo3.write(pos3); delay(15); for(pos1 = 26; pos1<=100; pos1+=1) // goes from 180 degrees to 0 degrees myservo1.write(pos1); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position void obstacle_avoidance() if(adcvalueright > 300) // Print a message to the LCD. lcd.setcursor(0, 0); lcd.print("avoidance."); //digitalwrite(3, HIGH); //turn on the Red LED,cart is turn left md.setspeeds(-100,-100); delay(500); md.setspeeds(-200,0); delay(500); stopiffault(); ST=1; //digitalwrite(3,low); //turn off the LED when finish the turn. //backwards and turn right if the value of the Left side IR get //bigger than 300 if(adcvalueleft > 300) // Print a message to the LCD. lcd.setcursor(0, 0); lcd.print("avoidance."); //digitalwrite(3, HIGH); //turn on the Red LED,cart is turn left md.setspeeds(-100,-100); delay(500); md.setspeeds(0,-200);

26 delay(500); stopiffault(); ST=1; //digitalwrite(3,low); //turn off the LED when finish the turn. //backwards and make a random turn if the value of the middle side IR //get bigger than 300 if(adcvaluemiddle > 300) // Print a message to the LCD. lcd.setcursor(0, 0); lcd.print("avoidance."); //digitalwrite(3, HIGH); //turn on the Red LED,cart is turn left md.setspeeds(-100,-100); delay(500); randomnumb = random(0,2); if(randomnumb == 0) md.setspeeds(0,-200); delay(500); stopiffault(); if(randomnumb == 1) md.setspeeds(-200,0); delay(500); stopiffault(); ST=1; //digitalwrite(3,low); //turn off the LED when finish the turn. void object_tracking() //turn off the robot if receiving 'A' if(getctrl == 'A') // Print a message to the LCD. lcd.setcursor(0, 0); lcd.print("waiting..."); //stop the robot md.setspeeds(0,0); ST=1; //turn right upon receiving 'R' if(getctrl == 'R') // Print a message to the LCD. lcd.setcursor(0, 0);

27 lcd.print("turn right"); digitalwrite(2, HIGH); //Rotate cart RIGHT md.setspeeds(50,-50); //if(!(getctrl='r')) break; ST=1; //turn left upon receiving 'L' if(getctrl == 'L') // Print a message to the LCD. lcd.setcursor(0, 0); lcd.print("turn left."); digitalwrite(3, HIGH); md.setspeeds(-50,50); //if(!(getctrl='l')) break; ST=1; //move forward upon receiving 'F' if(getctrl == 'F') // Print a message to the LCD. lcd.setcursor(0, 0); lcd.print("forward..."); digitalwrite(5, HIGH); //Cart FORWARD md.setspeeds(100,100); //if(!(getctrl='f')) break; ST=1; //move backward upon receiving 'B' if(getctrl == 'B') // Print a message to the LCD. lcd.setcursor(0, 0); lcd.print("backward.."); digitalwrite(3, LOW); digitalwrite(2, LOW); //Cart BACKWARD md.setspeeds(-100,-100); //if(!(getctrl='b')) break; ST=1; //stop the motor upon receiving 'S' if(getctrl == 'S') digitalwrite(5, LOW); digitalwrite(3, LOW);

28 digitalwrite(2, LOW); //Stop cart md.setspeeds(0,0); ST=1; pick_up(); if(getctrl == 'D') md.setspeeds(0,0); ST=1; lay_down(); md.setspeeds(-100,-100); delay(5000); void loop() //read and store the value sent from the laptop while(serial1.available()) //read and store the value of the Left, Middle and Right side IR adcvalueleft=analogread(a0); adcvaluemiddle=analogread(a1); adcvalueright=analogread(a2); //obstacle_avoidance(); //is there anything to read? getctrl = Serial1.read(); //if yes, read it randomnumb1 = random(100,200); randomnumb2 = random(100,200); randomnumb3 = random(0,2); randomnumb4 = random(0,2); object_tracking(); //random route to search for the object up on receiving 'O' if(getctrl == 'O') // Print a message to the LCD. lcd.setcursor(0, 0); lcd.print("search..."); int i = 0; int j = 0; int k = 0; int m = 0; while(i<randomnumb1) k=0; while(k<50) ST = 0;

29 adcvalueleft=analogread(a0); adcvaluemiddle=analogread(a1); adcvalueright=analogread(a2); obstacle_avoidance(); getctrl = Serial1.read(); object_tracking(); if(st == 1) break; md.setspeeds(100,100); k++; if(st == 1) break; i++; if(randomnumb3 == 0) while(j<randomnumb2) m=0; while(m<100) ST = 0; adcvalueleft=analogread(a0); adcvaluemiddle=analogread(a1); adcvalueright=analogread(a2); obstacle_avoidance(); getctrl = Serial1.read(); object_tracking(); if(st == 1) break; md.setspeeds(-100,100); m++; if(st == 1) break; j++;

30 if(randomnumb3 == 1) while(j<randomnumb2) m=0; while(m<100) ST = 0; adcvalueleft=analogread(a0); adcvaluemiddle=analogread(a1); adcvalueright=analogread(a2); obstacle_avoidance(); getctrl = Serial1.read(); object_tracking(); if(st == 1) break; md.setspeeds(100,-100); m++; if(st == 1) break; j++;

Pink Pants Stalker EEL4665C. Steven Settle. Instructors: A. Antonio Arroyo Eric M. Schwartz. Teaching Assistants: Tim Martin Ryan Stevens

Pink Pants Stalker EEL4665C. Steven Settle. Instructors: A. Antonio Arroyo Eric M. Schwartz. Teaching Assistants: Tim Martin Ryan Stevens Pink Pants Stalker EEL4665C Steven Settle Instructors: A. Antonio Arroyo Eric M. Schwartz Teaching Assistants: Tim Martin Ryan Stevens Table of Contents Abstract...2 Executive Summary...2 Introduction...2

More information

Wall-Follower. Xiaodong Fang. EEL5666 Intelligent Machines Design Laboratory University of Florida School of Electrical and Computer Engineering

Wall-Follower. Xiaodong Fang. EEL5666 Intelligent Machines Design Laboratory University of Florida School of Electrical and Computer Engineering Wall-Follower Xiaodong Fang EEL5666 Intelligent Machines Design Laboratory University of Florida School of Electrical and Computer Engineering TAs: Tim Martin Josh Weaver Instructors: Dr. A. Antonio Arroyo

More information

Final Report. Autonomous Robot: Chopper John Michael Mariano December 9, 2014

Final Report. Autonomous Robot: Chopper John Michael Mariano December 9, 2014 Final Report Autonomous Robot: Chopper John Michael Mariano December 9, 2014 EEL 4665: Intelligent Machines Design Laboratory Instructors: Dr. A. Antonio Arroyo, Dr. Eric M. Schwartz TA: Nicholas Cox,

More information

EEL 5666C FALL Robot Name: DogBot. Author: Valerie Serluco. Date: December 08, Instructor(s): Dr. Arroyo. Dr. Schwartz. TA(s): Andrew Gray

EEL 5666C FALL Robot Name: DogBot. Author: Valerie Serluco. Date: December 08, Instructor(s): Dr. Arroyo. Dr. Schwartz. TA(s): Andrew Gray EEL 5666C FALL 2015 Robot Name: DogBot Author: Valerie Serluco Date: December 08, 2015 Instructor(s): Dr. Arroyo Dr. Schwartz TA(s): Andrew Gray Jacob Easterling INTRODUCTION ABSTRACT One of the fun things

More information

D-Rex. Final Report. An Ho. April 21, 14

D-Rex. Final Report. An Ho. April 21, 14 D-Rex Final Report An Ho April 21, 14 University of Florida Department of Electrical and Computer Engineering EEL 4665 IMDL Instructors: A. Antonio Arroyo, Eric M. Schwartz TA: Andrew Gray Table of Contents

More information

Caddy. Scott Root Spring 2014

Caddy. Scott Root Spring 2014 Caddy Scott Root Spring 2014 University of Florida Department of Electrical and Computer Engineering EEL 5666 IMDL Final Report Instructors: A. Antonio Arroyo, Eric M. Schwartz TAs: Josh Weaver, Nick Cox,

More information

Table of Contents. Executive Summary 3 Walkthrough..4

Table of Contents. Executive Summary 3 Walkthrough..4 Official Report FALL IMDL 2015 EEL4665 Designer: Jesus Pintado Robot Name: Ballsy Instructors & TA s: Dr. A. Antonio Arroyo Dr. Eric M. Schwartz Andrew Gray Jacob Easterling Table of Contents Executive

More information

Final Report. EEL 5666 Intelligent Machines Design Laboratory

Final Report. EEL 5666 Intelligent Machines Design Laboratory Final Report EEL 5666 Intelligent Machines Design Laboratory TAs: Mike Pridgen & Thomas Vermeer Instructors: Dr. A. Antonio Arroyo & Dr. Eric M. Schwartz Hao (Hardy) He Dec 08 th, 2009 Table of Contents

More information

USER MANUAL ARDUINO I/O EXPANSION SHIELD

USER MANUAL ARDUINO I/O EXPANSION SHIELD USER MANUAL ARDUINO I/O EXPANSION SHIELD Description: Sometimes Arduino Uno users run short of pins because there s a lot of projects that requires more than 20 signal pins. The only option they are left

More information

Mobile Autonomous Robotic Sentry (MARS) with Facial Detection and Recognition

Mobile Autonomous Robotic Sentry (MARS) with Facial Detection and Recognition Mobile Autonomous Robotic Sentry (MARS) with Facial Detection and Recognition Tyler M. Lovelly University of Florida, Dept. of Electrical & Computer Engineering 12315 Clarendon Ct Spring Hill, FL 34609

More information

Final Report. Terminator by Ju Zong April 22, 2014

Final Report. Terminator by Ju Zong April 22, 2014 Final Report Terminator by Ju Zong April 22, 2014 University of Florida Department of Electrical and Computer Engineering EEL 5666 Instructors: A. Antonio Arroyo, Eric M. Schwartz TAs: Josh Weaver, Andy

More information

EEL 5666C - Intelligent Machine Design Lab Final report

EEL 5666C - Intelligent Machine Design Lab Final report EEL 5666C - Intelligent Machine Design Lab Final report Date: 04/21/14 Student Name: Shaoyi SHI Robot Name: Alin E-mail: ssytom@hotmail.com TA: Instructors: Josh Weaver A. Antonio Arroyo Eric M. Schwartz

More information

ARDUINO EXPERIMENTS ARDUINO EXPERIMENTS

ARDUINO EXPERIMENTS ARDUINO EXPERIMENTS ARDUINO EXPERIMENTS IR OBSTACLE SENSOR... 3 OVERVIEW... 3 OBJECTIVE OF THE EXPERIMENT... 3 EXPERIMENTAL SETUP... 3 IR SENSOR ARDUINO CODE... 4 ARDUINO IDE SERIAL MONITOR... 5 GAS SENSOR... 6 OVERVIEW...

More information

ARDUINO. By Kiran Tiwari BCT 2072 CoTS.

ARDUINO. By Kiran Tiwari BCT 2072 CoTS. ARDUINO By Kiran Tiwari BCT 2072 CoTS www.kirantiwari.com.np SO What is an Arduino? WELL!! Arduino is an open-source prototyping platform based on easy-to-use hardware and software. Why Arduino? Simplifies

More information

keyestudio Keyestudio MEGA 2560 R3 Board

keyestudio Keyestudio MEGA 2560 R3 Board Keyestudio MEGA 2560 R3 Board Introduction: Keyestudio Mega 2560 R3 is a microcontroller board based on the ATMEGA2560-16AU, fully compatible with ARDUINO MEGA 2560 REV3. It has 54 digital input/output

More information

Autonomous Bottle Opener Robot

Autonomous Bottle Opener Robot Date: 03/19/02 Student Name: Clerc Jean-Philippe TAs: Aamir Qaiyumi Uriel Rodriguez Instructors: Dr. A. A Arroyo Dr. Schwartz University of Florida Department of Electrical and Computer Engineering Intelligent

More information

Academic Year Annexure I. 1. Project Title: Color sensor based multiple line follower robot with obstacle detection

Academic Year Annexure I. 1. Project Title: Color sensor based multiple line follower robot with obstacle detection Academic Year 2015-16 Annexure I 1. Project Title: Color sensor based multiple line follower robot with obstacle detection TABLE OF CONTENTS 1.1 Abstract 2-2 1.2 Motivation 3-3 1.3 Objective 3-3 2.1 Block

More information

Night Watcher. Yanming Wang January 28, 2014

Night Watcher. Yanming Wang January 28, 2014 Night Watcher Yanming Wang January 28, 2014 University of Florida Department of Electrical and Computer Engineering EEL 5666C IMDL Written Report Instructors: A. Antonio Arroyo, Eric M. Schwartz TAs: Andy

More information

Lab-3: LCDs Serial Communication Analog Inputs Temperature Measurement System

Lab-3: LCDs Serial Communication Analog Inputs Temperature Measurement System Mechatronics Engineering and Automation Faculty of Engineering, Ain Shams University MCT-151, Spring 2015 Lab-3: LCDs Serial Communication Analog Inputs Temperature Measurement System Ahmed Okasha okasha1st@gmail.com

More information

Arduino Prof. Dr. Magdy M. Abdelhameed

Arduino Prof. Dr. Magdy M. Abdelhameed Course Code: MDP 454, Course Name:, Second Semester 2014 Arduino What is Arduino? Microcontroller Platform Okay but what s a Microcontroller? Tiny, self-contained computers in an IC Often contain peripherals

More information

Junying Huang Fangjie Zhou. Smartphone Locker

Junying Huang Fangjie Zhou. Smartphone Locker Junying Huang Fangjie Zhou Smartphone Locker Motivation and Concept Smartphones are making our lives more and more convenient. In addition to some basic functions like making calls and sending messages,

More information

Electronic Brick Starter Kit

Electronic Brick Starter Kit Electronic Brick Starter Kit Getting Started Guide v1.0 by Introduction Hello and thank you for purchasing the Electronic Brick Starter Pack from Little Bird Electronics. We hope that you will find learning

More information

The Arduino Briefing. The Arduino Briefing

The Arduino Briefing. The Arduino Briefing Mr. Yee Choon Seng Email : csyee@simtech.a-star.edu.sg Design Project resources http://guppy.mpe.nus.edu.sg/me3design.html One-Stop robotics shop A-Main Objectives Pte Ltd, Block 1 Rochor Road, #02-608,

More information

FIRE SENSOR ROBOT USING ATMEGA8L

FIRE SENSOR ROBOT USING ATMEGA8L PROJECT REPORT MICROCONTROLLER AND APPLICATIONS ECE 304 FIRE SENSOR ROBOT USING ATMEGA8L BY AKSHAY PATHAK (11BEC1104) SUBMITTED TO: PROF. VENKAT SUBRAMANIAN PRAKHAR SINGH (11BEC1108) PIYUSH BLAGGAN (11BEC1053)

More information

Introduction to Microcontrollers Using Arduino. PhilRobotics

Introduction to Microcontrollers Using Arduino. PhilRobotics Introduction to Microcontrollers Using Arduino PhilRobotics Objectives Know what is a microcontroller Learn the capabilities of a microcontroller Understand how microcontroller execute instructions Objectives

More information

arduino mega D4F69C4DABCA73DE7282FD2C4B5B8 Arduino Mega / 6

arduino mega D4F69C4DABCA73DE7282FD2C4B5B8 Arduino Mega / 6 Arduino Mega 2560 1 / 6 2 / 6 3 / 6 Arduino Mega 2560 Use your Arduino Mega 2560 on the Arduino Web IDE All Arduino and Genuino boards, including this one, work out-of-the-box on the Arduino Web Editor,

More information

Pawel Cieslewski Robo-Retriever Formal Report

Pawel Cieslewski Robo-Retriever Formal Report Pawel Cieslewski Robo-Retriever Formal Report EEL 4665 Intelligent Machines Design Laboratory University of Florida Department of Electrical and Computer Engineering TAs: Andy Gray, Josh Weaver, Nick Cox

More information

THE COMPLETE ALL IN ONE ROBOT 360 NANO BOT

THE COMPLETE ALL IN ONE ROBOT 360 NANO BOT THE COMPLETE ALL IN ONE ROBOT 360 NANO BOT LINE FOLLOWER FIVE LINE SENSORS FOR SCANNING WHITE OR BLACK LINE OBSTACLE AVOIDER TWO OBSTACLE SENSORS CAN DETECT OBSTACLES AND MEASURE DISTANCE BLUETOOTH CONTROL

More information

Intelligent Machine Design Lab

Intelligent Machine Design Lab Intelligent Machine Design Lab EML 5666 Final Report Luther Lloyd III Mechanical Engineer Table of Contents 1. Abstract 3 2. Executive Summary 3 3. Introduction 4 4. Integrated System 5 5. Mobile Platform

More information

Autonomous, Surveillance Fire Extinguisher Robotic Vehicle with Obstacle Detection and Bypass using Arduino Microcontroller

Autonomous, Surveillance Fire Extinguisher Robotic Vehicle with Obstacle Detection and Bypass using Arduino Microcontroller Autonomous, Surveillance Fire Extinguisher Robotic Vehicle with Obstacle Detection and Bypass using Arduino Microcontroller Sumanta Chatterjee Asst. Professor JIS College of Engineering Kalyani, WB, India

More information

3.The circuit board is composed of 4 sets which are 16x2 LCD Shield, 3 pieces of Switch, 2

3.The circuit board is composed of 4 sets which are 16x2 LCD Shield, 3 pieces of Switch, 2 Part Number : Product Name : FK-FA1416 MULTI-FUNCTION 16x2 LCD SHIELD This is the experimental board of Multi-Function 16x2 LCD Shield as the fundamental programming about the digits, alphabets and symbols.

More information

BALL IS LIFE: The Autonomous Trash Can Project

BALL IS LIFE: The Autonomous Trash Can Project BALL IS LIFE: The Autonomous Trash Can Project Hyungsuk (Peter), Kim, Maruchi Kim, Amit Patankar, Spencer Schack I. ABSTRACT This project designs and implements an autonmous moving trash can that will

More information

Arduino Uno. Power & Interface. Arduino Part 1. Introductory Medical Device Prototyping. Digital I/O Pins. Reset Button. USB Interface.

Arduino Uno. Power & Interface. Arduino Part 1. Introductory Medical Device Prototyping. Digital I/O Pins. Reset Button. USB Interface. Introductory Medical Device Prototyping Arduino Part 1, http://saliterman.umn.edu/ Department of Biomedical Engineering, University of Minnesota Arduino Uno Power & Interface Reset Button USB Interface

More information

Laboratory 3 Working with the LCD shield and the interrupt system

Laboratory 3 Working with the LCD shield and the interrupt system Laboratory 3 Working with the LCD shield and the interrupt system 1. Working with the LCD shield The shields are PCBs (Printed Circuit Boards) that can be placed over the Arduino boards, extending their

More information

AlphaBot2 robot building kit for Arduino

AlphaBot2 robot building kit for Arduino AlphaBot2 robot building kit for Arduino SKU 110060864 Description This AlphaBot2 robot kit is designed to use with an Arduino compatible board UNO PLUS. It features rich common robot functions including

More information

STEPD StepDuino Quickstart Guide

STEPD StepDuino Quickstart Guide STEPD StepDuino Quickstart Guide The Freetronics StepDuino is Arduino Uno compatible, uses the ATmega328P Microcontroller and works with most Arduino software. The StepDuino can be powered automatically

More information

Lab 3 XBees and LCDs and Accelerometers, Oh My! Part 1: Wireless Communication Using XBee Modules and the Arduino

Lab 3 XBees and LCDs and Accelerometers, Oh My! Part 1: Wireless Communication Using XBee Modules and the Arduino University of Pennsylvania Department of Electrical and Systems Engineering ESE 205 Electrical Circuits and Systems Laboratory I Lab 3 XBees and LCDs and Accelerometers, Oh My! Introduction: In the first

More information

0 P age. The Robographer: Progress Review #2

0 P age. The Robographer: Progress Review #2 0 P age The Robographer: Progress Review #2 Name: Rohit Dashrathi Team: G (Robographers) Teammates: Jimit Gandhi Gauri Gandhi Rohit Dashrathi Sida Wang Tiffany May ILR No.: # 3 Submission Date: Oct 30,

More information

GUIDE TO SP STARTER SHIELD (V3.0)

GUIDE TO SP STARTER SHIELD (V3.0) OVERVIEW: The SP Starter shield provides a complete learning platform for beginners and newbies. The board is equipped with loads of sensors and components like relays, user button, LED, IR Remote and

More information

Modular Model of Snake Robot

Modular Model of Snake Robot INDIAN INSTITUTE OF TECHNOLOGY, GUWAHATI EE304 DESIGN LABORATORY PROJECT REPORT Modular Model of Snake Robot Guide: Dr. Prithwijit Guha, Assistant Professor, IIT Guwahati Name Swapnil Gupta 120108036 Somitra

More information

Embedded Robotics. Software Development & Education Center

Embedded Robotics. Software Development & Education Center Software Development & Education Center Embedded Robotics Robotics Development with 8051 µc INTRODUCTION TO ROBOTICS Types of robots Legged robots Mobile robots Autonomous robots Manual robots Robotic

More information

Camera Positioning System

Camera Positioning System Camera Positioning System Team 79 Members: Junjiao Tian, Jialu Li, and Weicheng Jiang Spring 2017 TA: John Capozzo Table of Contents 1 Introduction 1.1 Objective 1.2 Background 1.3 High-level requirement

More information

Floor Cleaning Robot (Autonomus/Manual)

Floor Cleaning Robot (Autonomus/Manual) Floor Cleaning Robot (Autonomus/Manual) Vatsal N Shah Sathvik K P V S Asst. Prof. Abhishek Vaghela Abstract Households of today are becoming smarter and more automated. Home automation delivers convenience

More information

Sensors and Motor Control Lab

Sensors and Motor Control Lab Sensors and Motor Control Lab Individual lab report #1 October 16, 2015 Menghan Zhang TeamA Amit Agarwal Harry Golash Yihao Qian Zihao Zhang Individual progress Challenges Teamwork a) Used potentiometer

More information

Automation of wafer handling

Automation of wafer handling Project Report Automation of wafer handling ELECTRONIC DESIGN LAB DEPARTMENT OF ELECTRICAL ENGINEERING IIT BOMBAY Group Members: SHREYANS GANDHI 06D07005 ISHAN GAIKWAD 06D07013 PRADEEP GAIKWAD 06D07010

More information

Arduino Programming and Interfacing

Arduino Programming and Interfacing Arduino Programming and Interfacing Stensat Group LLC, Copyright 2017 1 Robotic Arm Experimenters Kit 2 Legal Stuff Stensat Group LLC assumes no responsibility and/or liability for the use of the kit and

More information

SMART DUSTBIN ABSTRACT

SMART DUSTBIN ABSTRACT ABSTRACT SMART DUSTBIN As people are getting smarter so are the things. While the thought comes up for Smart cities there is a requirement for Smart waste management. The idea of Smart Dustbin is for the

More information

Adaptive Motion Control of FIREBIRD V Robot

Adaptive Motion Control of FIREBIRD V Robot Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology ISSN 2320 088X IMPACT FACTOR: 6.017 IJCSMC,

More information

WIRELESS VEHICLE WITH ANIMATRONIC ROBOTIC ARM

WIRELESS VEHICLE WITH ANIMATRONIC ROBOTIC ARM WIRELESS VEHICLE WITH ANIMATRONIC ROBOTIC ARM PROJECT REFERENCE NO. : 37S0918 COLLEGE : P A COLLEGE OF ENGINEERING, MANGALORE BRANCH : ELECTRONICS & COMMUNICATION GUIDE : MOHAMMAD RAFEEQ STUDENTS : CHARANENDRA

More information

Arduino Smart Robot Car Kit User Guide

Arduino Smart Robot Car Kit User Guide User Guide V1.0 04.2017 UCTRONIC Table of Contents 1. Introduction...3 2. Assembly...4 2.1 Arduino Uno R3...4 2.2 HC-SR04 Ultrasonic Sensor Module with Bracket / Holder...5 2.3 L293D Motor Drive Expansion

More information

BirdBuggy Autonomous Mobile Parrot Perch

BirdBuggy Autonomous Mobile Parrot Perch BirdBuggy Autonomous Mobile Parrot Perch Andrew C Gray University of Florida Machine Intelligence Lab (MIL) Gainesville, FL 32611 +1 319 541-1182 viron11111@ufl.edu Dr. A. Antonio Arroyo University of

More information

AMRobot. Educational mini-robot platform

AMRobot. Educational mini-robot platform AMRobot Educational mini-robot platform Producer: AMEX Research Corporation Technologies Modlińska Str. 1, PL 15-066 Bialystok (Poland) Tel.: +48 602723295, Fax: +48 856530703 e-mail: amexinfo@amex.pl

More information

AndyMark Arduino Tutorial

AndyMark Arduino Tutorial AndyMark Arduino Tutorial Tank Drive June 2014 Required: Required Software List: - Kit Arduino IDE - Robot Power Cable Kit (am-0975) RobotOpen Arduino Shield Software - Battery Base Package (am-0477) RobotOpen

More information

Wallmaster Final Report

Wallmaster Final Report Wallmaster Final Report Terence Tai Class: EEL 4665/5666 Instructors: Dr. Arroyo, Dr. Schwartz TAs: Devin Hughes, Ryan Stevens, Josh Weaver, Sean Frucht, Tim Martin Table of Contents Abstract 3 Executive

More information

Goal: We want to build an autonomous vehicle (robot)

Goal: We want to build an autonomous vehicle (robot) Goal: We want to build an autonomous vehicle (robot) This means it will have to think for itself, its going to need a brain Our robot s brain will be a tiny computer called a microcontroller Specifically

More information

Index. Jeff Cicolani 2018 J. Cicolani, Beginning Robotics with Raspberry Pi and Arduino,

Index. Jeff Cicolani 2018 J. Cicolani, Beginning Robotics with Raspberry Pi and Arduino, A Accessor methods, 92 Adafruit, 9 Adafruit DC & Stepper Motor HAT assembling board adjustment, 199 circuit board, 199 kit, 197 pins, 197 preparation, 197 Raspberry Pi, 198, 204 removal, 201 rotation,

More information

Clark College Electrical Engineering & Computer Science

Clark College Electrical Engineering & Computer Science Clark College Electrical Engineering & Computer Science slide # 1 http://www.engrcs.com/ecsv5.pdf Electrical Engineering & Computer Science Artificial Intelligent (AI) Bio Medical Computers & Digital Systems

More information

M. Shahalam. Sid the Spider. Final Report December 7, EEL Intelligence Machine Design Laboratory

M. Shahalam. Sid the Spider. Final Report December 7, EEL Intelligence Machine Design Laboratory M. Shahalam Sid the Spider Final Report December 7, 2010 EEL 4665 - Intelligence Machine Design Laboratory TAs : Mike Pridgen Ryan Stevens Thomas Vermeer Tim Martin Devin Hughes Instructors: Dr. A. Antonio

More information

Advance Robotics with Embedded System Design (ARESD)

Advance Robotics with Embedded System Design (ARESD) Advance Robotics with Embedded System Design (ARESD) LEARN HOW TO: Use Arduino hardware &Arduino programming for microcontroller based hobby project development Use WinAVRcross compiler formicrocontroller

More information

Arduino 101 AN INTRODUCTION TO ARDUINO BY WOMEN IN ENGINEERING FT T I NA A ND AW E S O ME ME NTO R S

Arduino 101 AN INTRODUCTION TO ARDUINO BY WOMEN IN ENGINEERING FT T I NA A ND AW E S O ME ME NTO R S Arduino 101 AN INTRODUCTION TO ARDUINO BY WOMEN IN ENGINEERING FT T I NA A ND AW E S O ME ME NTO R S Overview Motivation Circuit Design and Arduino Architecture Projects Blink the LED Switch Night Lamp

More information

Experiment 4.A. Speed and Position Control. ECEN 2270 Electronics Design Laboratory 1

Experiment 4.A. Speed and Position Control. ECEN 2270 Electronics Design Laboratory 1 .A Speed and Position Control Electronics Design Laboratory 1 Procedures 4.A.0 4.A.1 4.A.2 4.A.3 4.A.4 Turn in your Pre-Lab before doing anything else Speed controller for second wheel Test Arduino Connect

More information

IDUINO for maker s life. User Manual. For IDUINO Mega2560 Board(ST1026)

IDUINO for maker s life. User Manual. For IDUINO Mega2560 Board(ST1026) User Manual For IDUINO Mega2560 Board(ST1026) 1.Overview 1.1 what is Arduino? Arduino is an open-source prototyping platform based on easy-to-use hardware and software. Arduino boards are able to read

More information

ECE 477 Design Review Team 8 Spring Mike Cianciarulo, Josh Wildey, Robert Toepfer, Trent Nelson

ECE 477 Design Review Team 8 Spring Mike Cianciarulo, Josh Wildey, Robert Toepfer, Trent Nelson ECE 477 Design Review Team 8 Spring 2008 Mike Cianciarulo, Josh Wildey, Robert Toepfer, Trent Nelson Outline Project overview Project-specific success criteria Block diagram Component selection rationale

More information

TA0139 USER MANUAL ARDUINO 2 WHEEL DRIVE WIRELESS BLUETOOTH ROBOT KIT

TA0139 USER MANUAL ARDUINO 2 WHEEL DRIVE WIRELESS BLUETOOTH ROBOT KIT TA0139 USER MANUAL ARDUINO 2 WHEEL DRIVE WIRELESS BLUETOOTH ROBOT KIT I Contents Overview TA0139... 1 Getting started: Arduino 2 Wheel Drive Wireless Bluetooth Robot Kit using Arduino UNO... 1 2.1. What

More information

LAMPIRAN I (LISTING PROGRAM)

LAMPIRAN I (LISTING PROGRAM) LAMPIRAN I (LISTING PROGRAM) #include LiquidCrystal lcd(8, 9, 4, 5, 6, 7); const int numreadings = 10; int readings[numreadings]; // the readings from the analog input int readindex =

More information

SWITCH 10 KILOHM RESISTOR 220 OHM RESISTOR POTENTIOMETER LCD SCREEN INGREDIENTS

SWITCH 10 KILOHM RESISTOR 220 OHM RESISTOR POTENTIOMETER LCD SCREEN INGREDIENTS 11 SWITCH 10 KILOHM RESISTOR 220 OHM RESISTOR POTENTIOMETER LCD SCREEN INGREDIENTS 115 CRYSTAL BALL CREATE A CRYSTAL BALL TO TELL YOUR FUTURE Discover: LCD displays, switch/case statements, random() Time:

More information

IMDL Fall 2010 Final Report

IMDL Fall 2010 Final Report IMDL Fall 2010 Final Report Robot Spotting Courtney Hayes Summary This robot project consists of a large robot and a smaller one interacting with each other. The larger robots objective is to track another

More information

Color Tracking Robot

Color Tracking Robot Color Tracking Robot 1 Suraksha Bhat, 2 Preeti Kini, 3 Anjana Nair, 4 Neha Athavale Abstract: This Project describes a visual sensor system used in the field of robotics for identification and tracking

More information

User Guide v1.0. v1.0 Oct 1, This guide is only available in English Ce manuel est seulement disponible en Anglais

User Guide v1.0. v1.0 Oct 1, This guide is only available in English Ce manuel est seulement disponible en Anglais ROVER ShiELD User Guide v1.0 v1.0 Oct 1, 2014 This guide is only available in English Ce manuel est seulement disponible en Anglais Description The DFRobotShop Rover Shield is the ideal all in one shield

More information

Formal Proposal (Special Sensor) [NOTE: Jump to Experimental Layout & Result Section] Si-Fo. The Universal Signs Follower.

Formal Proposal (Special Sensor) [NOTE: Jump to Experimental Layout & Result Section] Si-Fo. The Universal Signs Follower. Formal Proposal (Special Sensor) [NOTE: Jump to Experimental Layout & Result Section] Si-Fo The Universal Signs Follower Izhar Shaikh Intelligent Machine Design Lab EEL 4665, Fall 2015 Professors: Dr.

More information

Autonomous Rubik's Cube Solver Using Image Processing

Autonomous Rubik's Cube Solver Using Image Processing Autonomous Rubik's Cube Solver Using Image Processing Harshad Sawhney Sakshi Sinha Anurag Lohia Prashant Jalan Priyanka Harlalka Abstract Rubik's cube is a 3-D mechanical puzzle in which a pivot mechanism

More information

Modeling, Design, and Control of Robotic Mechanisms (MathWorks/Kyungnam Univ.) -1-

Modeling, Design, and Control of Robotic Mechanisms (MathWorks/Kyungnam Univ.) -1- CH. 4: Project Practice [1] How to use Arduino Mega 2560 [2] Input/output interface program (1) ON/OFF-type sensors and devices (2) Analog-type sensors (3) DC Motor and Servo Motor interface [3] PID position

More information

Sensors and Motors Lab

Sensors and Motors Lab Sensors and Motors Lab Gauri Gandhi Team G Robographers Teammates: Rohit Dashrathi Jimit Gandhi Tiffany May Sida Wang ILR #1 October 16, 2015 a. Individual Progress For the Sensors and Motors Lab, I was

More information

MegaPi Born to Motion Control

MegaPi Born to Motion Control MegaPi Born to Motion Control SKU: 10050 Weight: 130.00 Gram 1. Overview MegaPi is a main control board specially designed for makers and also an ideal option for being applied to education field and all

More information

Bluno Mega 2560 (SKU:DFR0323)

Bluno Mega 2560 (SKU:DFR0323) Bluno Mega 2560 (SKU:DFR0323) From Robot Wiki Contents 1 Introduction 2 Specification 3 Pin Out 4 Supported Android Devices 5 Supported Apple Devices 6 Tutorial o 6.1 More advantages o 6.2 The serial port

More information

Another Forking Robot

Another Forking Robot Another Forking Robot A.k.a. AFR Matt Silverman IMDL Summer 99 Table of Contents Abstract Page 3 Executive Summary 4 Introduction 5 Integrated System 5 Mobile Platform 6 Actuation 6 Sensors 6 Behaviors

More information

MS4SSA Robotics Module:

MS4SSA Robotics Module: MS4SSA Robotics Module: Programming and Sensors Brad Miller and Kim Hollan What are we doing today? Talk about why to program robots Learn about basic RobotC programming Learn how to make the robot move

More information

The Constant Gardener

The Constant Gardener The Constant Gardener Jose Jayma The Constant Gardener EEL5666: Intelligent Machine Design Laboratory A. Antonio Arroyo, PhD Eric M. Schwartz, PhD Abstract: This document presents the design specifications

More information

University of Jordan Faculty of Engineering and Technology Mechatronics Engineering Department

University of Jordan Faculty of Engineering and Technology Mechatronics Engineering Department University of Jordan Faculty of Engineering and Technology Mechatronics Engineering Department 2016 Control and Measurement Laboratory Robotino Robot (Mobile Robot System) Robotino Robot Objectives: The

More information

Freeduino USB 1.0. Arduino Compatible Development Board Starter Guide. 1. Overview

Freeduino USB 1.0. Arduino Compatible Development Board Starter Guide. 1. Overview Freeduino USB 1.0 Arduino Compatible Development Board Starter Guide 1. Overview 1 Arduino is an open source embedded development platform consisting of a simple development board based on Atmel s AVR

More information

ARDUINO LEONARDO ETH Code: A000022

ARDUINO LEONARDO ETH Code: A000022 ARDUINO LEONARDO ETH Code: A000022 All the fun of a Leonardo, plus an Ethernet port to extend your project to the IoT world. You can control sensors and actuators via the internet as a client or server.

More information

How-To #3: Make and Use a Motor Controller Shield

How-To #3: Make and Use a Motor Controller Shield How-To #3: Make and Use a Motor Controller Shield The Arduino single-board computer can be used to control servos and motors. But sometimes more current is required than the Arduino can provide, either

More information

Power Supply, Arduino MEGA 2560, and Stepper Motors Connections

Power Supply, Arduino MEGA 2560, and Stepper Motors Connections Power Supply, Arduino MEGA 2560, and Stepper Motors Connections By: Maram Sulimani Abstract: Arduino MEGA 2560 is required for this project to control the movement of the 3D printer axis and its extruder.

More information

EP486 Microcontroller Applications

EP486 Microcontroller Applications EP486 Microcontroller Applications Topic 6 Step & Servo Motors Joystick & Water Sensors Department of Engineering Physics University of Gaziantep Nov 2013 Sayfa 1 Step Motor http://en.wikipedia.org/wiki/stepper_motor

More information

Basic Kit for Turtle 2WD SKU:ROB0118

Basic Kit for Turtle 2WD SKU:ROB0118 Basic Kit for Turtle 2WD SKU:ROB0118 From Robot Wiki Contents 1 Function Introduction 1.1 STEP 1: Assemble Robot 1.2 STEP 2: Debug Motor 1.3 STEP 3:Install Upper Plate 1.4 STEP4: Debug Ultrasonic Sensor

More information

Laboratory 5 Communication Interfaces

Laboratory 5 Communication Interfaces Laboratory 5 Communication Interfaces Embedded electronics refers to the interconnection of circuits (micro-processors or other integrated circuits) with the goal of creating a unified system. In order

More information

Introduction to Robotics using Lego Mindstorms EV3

Introduction to Robotics using Lego Mindstorms EV3 Introduction to Robotics using Lego Mindstorms EV3 Facebook.com/roboticsgateway @roboticsgateway Robotics using EV3 Are we ready to go Roboticists? Does each group have at least one laptop? Do you have

More information

International Journal of Engineering Research ISSN: & Management Technology November-2016 Volume 3, Issue-6

International Journal of Engineering Research ISSN: & Management Technology November-2016 Volume 3, Issue-6 International Journal of Engineering Research ISSN: 2348-4039 & Management Technology November-2016 Volume 3, Issue-6 Email: editor@ijermt.org www.ijermt.org ROBOTIC ARM CONTROL THROUGH HUMAN ARM MOVEMENT

More information

International Journal of Artificial Intelligence and Applications (IJAIA), Vol.9, No.3, May Bashir Ahmad

International Journal of Artificial Intelligence and Applications (IJAIA), Vol.9, No.3, May Bashir Ahmad OUTDOOR MOBILE ROBOTIC ASSISTANT MICRO-CONTROLLER MODULE (ARDUINO), FIRMWARE AND INFRARED SENSOR CIRCUIT DESIGN AND IMPLEMENTATION, OPERATING PRINCIPLE AND USAGE OF PIRMOTION SENSOR Bashir Ahmad Faculty

More information

Parts List. XBEE/Wifi Adapter board 4 standoffs ¼ inch screws Cable XBEE module or Wifi module

Parts List. XBEE/Wifi Adapter board 4 standoffs ¼ inch screws Cable XBEE module or Wifi module Rover Wifi Module 1 Legal Stuff Stensat Group LLC assumes no responsibility and/or liability for the use of the kit and documentation. There is a 90 day warranty for the Sten-Bot kit against component

More information

Home Automation using IoT

Home Automation using IoT International Journal of Electronics Engineering Research. ISSN 0975-6450 Volume 9, Number 6 (2017) pp. 939-944 Research India Publications http://www.ripublication.com Home Automation using IoT Dr. A.

More information

Microcontrollers for Ham Radio

Microcontrollers for Ham Radio Microcontrollers for Ham Radio MARTIN BUEHRING - KB4MG MAT T PESCH KK4NLK TOM PERRY KN4LSE What is a Microcontroller? A micro-controller is a small computer on a single integrated circuit containing a

More information

Robotics Adventure Book Scouter manual STEM 1

Robotics Adventure Book Scouter manual STEM 1 Robotics Robotics Adventure Book Scouter Manual Robotics Adventure Book Scouter manual STEM 1 A word with our Scouters: This activity is designed around a space exploration theme. Your Scouts will learn

More information

Advanced Debugging I. Equipment Required. Preliminary Discussion. Basic System Bring-up. Hardware Bring-up, Section Plan

Advanced Debugging I. Equipment Required. Preliminary Discussion. Basic System Bring-up. Hardware Bring-up, Section Plan Advanced Debugging I Hardware Bring-up, Section Plan Equipment Required 192 car Logic analyzer with mini probes, cable PC scope with probes, M-F breadboard wire, USB cable Voltmeter Laptop with mouse,

More information

Introduction What is MIT App Inventor?

Introduction What is MIT App Inventor? Table of Contents Introduction What is MIT App Inventor? Arduino (From Arduino Website) Turn On and OFF an LED (Hello World) Creating Android App Connecting Bluetooth and programming Arduino Control LED

More information

Fire Bird V Insect - Nex Robotics

Fire Bird V Insect - Nex Robotics Fire Bird V Insect is a small six legged robot. It has three pair of legs driven by one servo each. Robot can navigate itself using Sharp IR range sensors. It can be controlled wirelessly using ZigBee

More information

Parts List. XBEE/Wifi Adapter board 4 standoffs ¼ inch screws Cable XBEE module or Wifi module

Parts List. XBEE/Wifi Adapter board 4 standoffs ¼ inch screws Cable XBEE module or Wifi module Rover Wifi Module 1 Legal Stuff Stensat Group LLC assumes no responsibility and/or liability for the use of the kit and documentation. There is a 90 day warranty for the Sten-Bot kit against component

More information

TA0297 WEMOS D1 R2 WIFI ARDUINO DEVELOPMENT BOARD ESP8266

TA0297 WEMOS D1 R2 WIFI ARDUINO DEVELOPMENT BOARD ESP8266 TA0297 WEMOS D1 R2 WIFI ARDUINO DEVELOPMENT BOARD ESP8266 Contents 1. Overview TA0297... 3 2. Getting started:... 3 2.1. What is WeMos D1 R2 Wifi Arduino Development Board?... 3 2.2. What is IDUINO UNO?...

More information

DT-ROBOT Line Follower

DT-ROBOT Line Follower DT-ROBOT Line Follower Trademarks & Copyright AT, IBM, and PC are trademarks of International Business Machines Corp. Pentium is a registered trademark of Intel Corporation. Windows is a registered trademark

More information

IMDL Final Report. EEL5666: Intelligent Machine Design Laboratory. Aaron Fisher. Robot: Lazy Maid

IMDL Final Report. EEL5666: Intelligent Machine Design Laboratory. Aaron Fisher. Robot: Lazy Maid IMDL Final Report EEL5666: Intelligent Machine Design Laboratory Aaron Fisher Robot: Lazy Maid Instructors: Dr. A. Antonio Arroyo Dr. Eric M. Schwartz TA: Thomas Vermeer Mike Pridgen Table of Contents

More information