Download presentation
Presentation is loading. Please wait.
1
SOUTHEASTCON 2016 HARDWARE COMPETITION
Michael Miranda Roberto Miguel Sanchez Joseph Mousa
2
HAMPTON ROADS SHIPPING CONTAINER TERMINAL CHALLENGE
A roadstead or road is a body of water sheltered form water related hazards where ships can anchor without dragging Here ships wait their turn to enter port OBJECTIVE Build a fully automated robot that: Picks up goods (containers) from a barge Identifies goods Drops them off to correct shipping zones Do these tasks in under 5 minutes
3
MAP:
4
MAP A:
5
MAP B:
6
OBSTACLES: Boat Shipping zone Rail Shipping zone Truck Shipping zone
Start area Tunnel Barge Containers Qr Codes
7
BARGE 3 zones A (all blue 5” containers) 7” off of ground
B ( mixed blocks of 5” and 2.5” containers) 10” off Ground C ( mixed blocks of 5” containers) 5” off Ground
8
CONTAINERS Zone A: Go to boat shipping zone
1.5”x1.5”x5” 8 stacks of 2 all blue blocks Zone B: Go to rail shipping 8 stacks of 2 12 1.5”x1.5”x 5” multi colored 8 1.5”x1.5”x2.5 multi colored Zone C: Blue blocks go to boat shipping zone others go to truck shipping 8 Stacks of 2 1.5”x1.5”x5” multi colored blocks All blocks except blue in zone A have QR codes All blocks spaced 1” apart
9
BOAT SHIPPING ZONE 24” by 36”
10
RAIL SHIPPING ZONE Each car is 10.75”L x 7.75”W x 5”H .5” thick walls
Spaced 1” apart Have QR codes
11
TRUCK SHIPPING ZONE
12
START AREA & TUNNEL Start Area – 20”x 30” has start led signals
Same height as tunnel Tunnel 17” by 17” has 1/2” drop Robot can expand after tunnel
13
QR CODES 4 QR codes – one for each color Yellow Red Green Blue
14
Total Number of shipping containers on barge at start of competition
SCORING Shipping Container (starting location and description) Destination (location of block at end of game) Total Number of shipping containers on barge at start of competition Boat Truck Rail Red Green Blue Rail Yellow Zone A 5” Blue Block (no QR) 3 -1 16 Zone B 2.5” Red Block -2 10 2 2.5” Green Block 2.5” Blue Block 2.5” Yellow Block 5” Red Block 15 5” Green Block 5” Blue Block 5” Yellow Block Zone C 5 4 Additional Scoring* Robot moves 25 points Robot drives through tunnel Robot successfully moves any shipping container 10 points
15
OUR SOLUTION A fully automated robot Needs: Start
IR line follower - recognizing zones Switch for programming between both maps Mobility Navigation Adjustable height QR scanner Color sensors to differentiate between half blocks Pick up drop off mechanism
16
OUR SOLUTION A fully automated robot Requirements:
Must leave start area after button press/ switch Must pick up blocks Must read blocks Must drop off blocks Constraints Initial robot size is 12” x 12” x 12” can expand to 20”x 20” x 20” Pins available 5 minute time limit Accessibility to different drop off zones
17
OUR SOLUTION’S STRATEGIC IMPLEMENTATION
18
HARDWARE
19
MECHANICAL DESIGN Front View Side View Angled View
20
MAJOR PARTS OF ROBOT WITH PRICES
Quantity Price CIM motors 6 28 Other motors 3 14 Encoders 10 15 Motor Controllers 5 Arudino Mega 1 46 Rasberry pi 30 Arduino uno 25 IR SHARP SENSORS Rack and pinion gear for arm movement 2 2 screws for scissor lift Bars for scissor lift 8 Dowels 24 Screw for pushing wall Mount/ boat for moving wall Top/bottom chassis 2 20 Conveyor belt 1 30 Color sensors 8 Qr reader 24 Sprockets Circuitry FREE Gear chains IR LINE FOLLOWER 10 Batteries Battery charger Mecanum wheels 4 Free Total= 1092
21
WEIGHT OF ROBOT Robot qty lbs weight total motors base 4 2.8 11.2
wheels 1 motors others 6 0.5 3 battery 12.5 conveyor belt sensors base motor controllers 5 qr reader color sensors 2 0.25 scissor lift base micro controllers Total= 40.45 torque required 2.25 kgcm req
22
HOW WE WANT THE BASE TO BE
23
MECANUM WHEELS
24
MOTORS FOR WHEELS - CALCULATIONS
25
MOTORS FOR WHEELS - CALCULATIONS
26
MOTOR SPECS Physical Specs:Size: 2.5 inch diameter, 4.34 inch long body Output Shaft size: / , with 2mm keyway Weight: 2.82 pounds Mounting Holes: #10-32 tapped holes (2), on a 2" bolt circle Wire Gauge: 14 AWG Performance Specs:Voltage: 12 volt DC No load RPM: 5,310 (+/- 10%) Free Current: 2.7 amps Maximum Power: 337 Watts (at 2655 rpm, 172 oz-in, and 68 amps) Stall Torque: 2.42 N-m, or oz-in Stall Current: 133 amps
27
POWER -12 V 9 AH BATTERY CIM motor - Base motors + scissor lift motors: 16.2 amp hour CCL motor- other motors: 5.4 amp hour Total: 21.6 amp hour Battery: 9 V 12 amp hour battery Each round is 5 mins. Battery will last around 30mins 2 batteries and 1 charger (12 V 4 amp hour)
28
SCISSOR LIFTS Bot is 2 inches off ground.
Need bot to raise 11 inches to reach 13 inches. The calculated length for 2 stacks of scissors 7.77 inches. To keep stability we chose this length so the scissors do not extend pass 45 degrees.
29
SENSORS 2 COLOR SENSORS 1 QR SENSORS 2 LONG SHARP RANGE IR SENSORS
Used to differentiate blocks on conveyor belt. 1 QR SENSORS Used to distinguish railroad carts. 2 LONG SHARP RANGE IR SENSORS Used in navigation for orientation of robot. 4 SHORT SHARP RANGE IR SENSORS Used to detect walls and object.
30
TOP HALF OF ROBOT - DESIGN
Angled View Front View
31
SOFTWARE
32
CONTROL UNITS Bottom Arduino mega 2560 Top Raspberry Pi 2 Arduino Uno
33
BOTTOM COMMUNICATION
34
TOP COMMUNICATION
35
NAVIGATION Use dead reckoning Adjust at known places
Calculating current position based on previous position and distance traveled Adjust at known places Use sensors to center at known spots Update current position with known position
36
BOTTOM PROGRAMMING //initialize all components
//Function and class declarations Class Point { Public: Double x; Double y; Point (double a=0, double b=0):x{a},y(b){} }; Enum Movements (forward,backwards,left,right); Enum Direction (NORTH, EAST, SOUTH, WEST); directions& operator++(directions& d) { directions original = d; d= static_cast<directions>((d+ 1)%4); return original; } directions& operator--(directions& d) d= static_cast<directions>((4 + d -1)%4);
37
BOTTOM PROGRAMMING Void lift (int height); Void navigate(Point p);
Void turn90Right(); Void turn90Left(); Void turn180(); Void ReadRails(); Move(movements m); Point ZoneA, ZoneB, ZoneC, Rail1,Rail2,Rail3,Rail4, Truck,Boat; Point * Red, Green, Blue, Yellow; Grid[x][y] //grid to represent map 1 represent obstacles {1, 1,1,1,1,1 1, 0,0,0,0,1 ……} Int height; Point position; Direction direction;
38
BOTTOM PROGRAMMING Int main(){ While(led is not on){ Check for led}
Navigate (zoneA); Adjust(zoneA); Lift(7); SignalTop(pickUpBlocks); While(notDoneZoneA) { if(TopSignaledToMove) Point newPoint = GetPointFromTop Navigate(newPoint); Adjust(newPoint); SignalTop(Ready); } if(TopSignaledToLift) Lift(newHeight);
39
BOTTOM PROGRAMMING Navigate (zoneB); Adjust(zoneB); Lift(10);
SignalTop(pickUpBlocks); While(notDonePickingUp); Navigate(Rail1); Adjust(Rail1); ReadRails(); SignalTop(Ready); While(notDoneZoneB) { if(TopSignaledToMove) Point newPoint = getColorFromTop; Navigate(newPoint); Adjust(newPoint); } if(TopSignaledToLift) Lift(newHeight);
40
BOTTOM PROGRAMMING Navigate (zoneC); Adjust(zoneC); Lift(10);
SignalTop(pickUpBlocks); SignalTop(Ready); While(notDoneZoneC) { if(TopSignaledToMove) Point newPoint = getColorFromTop; Navigate(newPoint); Adjust(newPoint); } if(TopSignaledToLift) Lift(newHeight);
41
BOTTOM PROGRAMMING Void turn90Right() {
//use wheels and IR sensors to turn direction++; } Void turn90Left() direction--; Void turn180() turn90Right();
42
BOTTOM PROGRAMMING Void turn90Right() {
//use wheels and IR sensors to turn direction++; } Void turn90Left() direction--; Void turn180() turn90Right();
43
BOTTOM PROGRAMMING Void navigate(Point p) { movements m;
While( abs(p.x – destination.x) > tolerance && abs(p.y – destination.y) || tolerance) { while(abs(p.x – destination.x) > tolerance ) { If(destination.x > p.x) {m = //Move West left/right/forward/back based on current facing direction //check grid to see if can keep moving in this direction, if not break loop Move(m); destination.x -= distance traveled; } else {m = //Move East left/right/forward/back based on current facing direction destination.x += distance traveled; } //end x coordinate loop and send StopSignal to arduino uno
44
BOTTOM PROGRAMMING //Void navigate(Point p) continued
while(abs(p.y – destination.y) > tolerance ) { If(destination.y > p.y) {m = //Move North left/right/forward/back based on current facing direction //check grid to see if can keep moving in this direction, if not break loop Move(m); destination.y -= distance traveled; } else {m = //Move South left/right/forward/back based on current facing direction destination.y += distance traveled; }//end y coordinate loop and send StopSignal to arduino uno }// end navigate
45
BOTTOM PROGRAMMING Void move(movements m) {
//send signal to arduino uno based on the movement //arduino uno spins motors until stop signal is sent }
46
LEARNING COMPONENTS
47
POSSIBLE PROBLEMS As top moves away and closer to bottom the wires between the two sections might get pinched or pulled apart Delay of parts Breaking of parts Not enough pins BUDGET
48
BY NEXT PRESENTATION Top of robot cad design
Finalized parts to purchase/begin purchasing call companies for more funding Revise based on comments today.
49
QUESTIONS?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.