The Minerva Project
Jeremiah F. CowdenCarolin L. KarimJason H. KummerlRachel A. SchaeferMatthew P. Spahr
Final PresentationDecember 12, 2003
CSE 480Senior DesignDr. Richard E.
Haskell
The Minerva Project Outline – Part I
Part I – OverviewIntroductionAutomated Highway SystemsTop-Level DesignCost Analysis
Part II – ComponentsPart III – DesignPart IV – Conclusion
The Minerva Project Introduction
Minerva “Roman goddess of education and science”
Project definitionCreate a sophomore design class
Students from all engineering disciplinesPrerequisites
CSE 141 – “Computer Problem Solving in Engineering and Computer Science” using Visual BasicCSE 171 – “Introduction to Digital Logic and Microprocessors”
A sample project—design a carPath detectionCollision avoidance
The Minerva Project Top-Level Design
Pre-built car from Radio ShackOOPic BoardMagnevation H-BridgeOriginal MotorFutaba S3003 Sharp GP2D12Fairchild QRB1114
The Minerva Project Cost Analysis
1 R/C car $20 1 OOPic board $79 1 Magnevation Dual PWM 3 Amp LT H-Bridge $751 Futaba S3003 servo $105 Fairchild QRB1114 sensors @ 89¢ $4.45 1 Sharp GP2D12 sensor $8.252 rods @ $2 $4
1 set of springs $2 1 Breadboard $1 3 Battery holders @ $1.66 $5 3 9V batteries @ $1.33 $4 16 AA batteries @ 37¢ $6 Miscellaneous $5Total $222.70Over-Budget $22.70
The Minerva Project Outline – Part II
Part I – OverviewPart II – Components
OOPicoServoX ObjectoDCMotor Object
Part III – DesignPart IV – Conclusion
The Minerva Project OOPic
The Minerva Project OOPic (cont.)
Language Options—objects are the same between themVisual BasicJavaC
Basic C & JavaDim NumOfPresses As New oByte oByte NumOfPresses = New oByte;Dim RedWire As New oDIO1 oDIO1 RedWire = New oDIO1;Dim Thing(3) As New oByte oByte Thing(3) = New oByte;Sub Main() void Main(void) If RedWire.Value = cvOn Then { Thing(1).Value = 27 If (RedWire.Value = cvOn) Thing(2).Value = 37 { Thing(3).Value = NumOfPresses Thing(1).Value = 27; End If Thing(2).Value = 37;End Sub Thing(3).Value = NumOfPresses;
}}
The Minerva Project OOPic (cont.)
96 Bytes for firmware objectsObjects Used Size of Object Quantity Total Bytes
oServoX 6 Bytes 1 6oIRRange 5 Bytes 1 5
oDIO1 1 Byte 5 5oDCMotor 5 Bytes 1 5
oBus 3 Bytes 5 15oGate 4 Bytes 5 20oIndex 4 Bytes 2 8oBuffer 8 Bytes 2 16oNibble 1 Byte 6 6
86
The Minerva Project oServoX Object
Included in the board firmwareUses one digital I/O lineCapable of positioning an RC servo anywhere within its 180º rotational span
Range -64 to +63 where 0 is center
Sends an RC servo repeated PWM signals until it reaches the specified position
The Minerva Project oServoX Object (cont.)
IOLine propertySpecifies which of 31 I/O lines is to be usedMust be set before the Operate property is set to 1
Operate propertySet to 1 to continuously output PWM control pulse to servoResults in servo holding position specified by the Value propertySet to 0, the object sets I/O line to 0 volts
Results in servo not holding a position, allowing it to be changed manually
The Minerva Project oServoX Object (cont.)
Offset property Sets the value of the center of the servoAn offset of 0 allows positioning at values -64 to +63An offset of 64 allows positioning at values 0 to +127An offset of -64 allows positioning at values -128 to -1
Value propertyRange -128 to +127Specifies position of the servo
InvertOut propertySpecifies if output pulse is reversed
The Minerva Project oDCMotor Object
Included in the board firmwareUses three digital I/O lines to control a DC motor
Speed – IOLinePBraking – IOLineBDirection – IOLineD
The Minerva Project oDCMotor Object (cont.)
Value propertyRange of -128 to + 127 or 0 to 255When Unsigned bit is 0, Value has range of -128 to + 127, When Unsigned bit is 1, Value has range of 0 to 255
Direction propertyValue of 0 or 1, setting the direction to forward or reverseIf the InvertOutD property is 1, direction is opposite
Brake propertyValue of 0 or 1, turning the brake off and onIf the InvertOutB property is 1, direction is opposite
The Minerva Project Outline – Part III
Part I – OverviewPart II – ComponentsPart III – Design
Hardware DesignSoftware DesignVirtual CircuitsVirtual Circuits – Code
Part IV – Conclusion
The Minerva Project Overview
The Minerva Project Hardware Design
9v
9v
9v
24v
+5V
H-Bridge
ControlGround
Servo
Line Sensors
5 Control Lines 1 For Each SensorMotor
OOPic
GroundControl Brake
Control DirectionControl PWM
Distance Sensor
+5VGroundControl Brake
The Minerva Project Controller Boards
OOPic Controller
Board
H-Bridge Sensor Breadboard
The Minerva Project Controller Boards (cont.)
OOPic Controller Board
Sensor Breadboard
H-Bridge
The Minerva Project Sensor Rack
Extra 8AA Batteries
Distance Sensor
Line Sensor Assembly
The Minerva Project Under Body
Extra 8AA Batteries
9V holders for OOPic
The Minerva Project Software Design
Rapid prototypingServoMotorDistance sensorLine sensors
Sluggish response with loopingQuick response with virtual circuits
The Minerva Project Virtual Circuits
Sensor_L2
oDCMotor
oBus
4oGate
oServoX
2545554525 Index_Motor
(oIndex)
Index_Servo (oIndex)
Sensor_Value
3 2 1 0
64 + 2064 + 7
6464 - 7
64 - 20
Sensor_L1Sensor_C
Sensor_R1Sensor_R2
The Minerva Project Virtual Circuit – Code
1. mSensor_C.Input.Link( C )2. mSensor_C.Output.Link( Sensor_Value )3. gSensor_C.Input1.Link( Sensor_C )4. gSensor_C.Output.Link( mSensor_C.Operate )5. gSensor_C.Operate = cvTrue 6. Index_Servo.Array.Link( Buff_Servo )7. Index_Servo.Index.Link( Sensor_Value )8. Index_Servo.Unit.Link( Servo.Value )9. Index_Servo.Operate = cvTrue
The Minerva Project Outline – Part IV
Part I – OverviewPart II – ComponentsPart III – DesignPart IV – Conclusion
Overall PerformancePicture of carLessons learnedReferences
The Minerva Project Overall Performance
Follows a straight lineFollows a curved lineFollows a 90º turnSlows down while turningStops to avoid objects
The Minerva Project Picture of Car
The Minerva Project Real Picture of Car
The Minerva Project Lessons Learned
Jason has zero short term memory and is insane
Carolin likes Corona
Rachel is growing
Don’t let other groups see your project
Rachel's attendance to class 1% - Rest of group 99%
Great group dynamic
Class should have been held at Mongolian Barbeque with Stacia or Diana
Matt never wears a coat
Jeremiah learned to be a player! (3) Loudest & funniest group Home Depot is the best place for RC car building?Our car eats batteries up “Yummy Style”OOPic is easier than the rest of the boardsKISS – Keep It Simple, StupidSEB 133 – Great for meeting guys & galsCSE 480 – BEST CLASS EVER!
The Minerva Project Real Lessons Learned
Rechargeable batteries are cheaper in the long runSingle distance sensor is not adequateThe more line sensors the more accurate the response0.2” is almost impossible to achieve after running into a wall
The Minerva Project References
http://www.wikipedia.org/wiki/Automated_highway_systems http://www.aaroads.com/high-priority/corr16.html http://www.path.berkeley.edu/PATH/Publications/Media/FactSheet/
pprogram.pdf http://www.berkeley.edu/news/media/releases/97legacy/DEMO_97.html http://future.newsday.com/10/fmon1011.htm http://www.itsonline.com/ahsra1.html http://www.ivsource.net/archivep/2000/aug/a000831_chauffeur.html http://faculty.washington.edu/jbs/itrans/bishopahs.htm http://www.cert.ucr.edu/research/project.asp?project=97http://electronickits.com/kit/complete/remote/ck1900.htmhttp://www.oopic.comhttp://www.oopic.com/servo.htmhttp://www.dprg.org/tutorials/1998-04a/http://www.magnevation.com/descriptionpwmx2a.htm
The Minerva Project
HAPPY HOLIDAYS!!!