![Page 1: TEAM 9 - MRAV SOFTWARE DESIGN NARRATIVE Nick Gentry, Vinayak Gokhale, Vineet Ahuja & Oliver Staton March 23, 2011](https://reader036.vdocument.in/reader036/viewer/2022082820/56649f4e5503460f94c6fc75/html5/thumbnails/1.jpg)
TEAM 9 - MRAVSOFTWARE DESIGN NARRATIVE
Nick Gentry, Vinayak Gokhale, Vineet Ahuja & Oliver Staton
March 23, 2011
![Page 2: TEAM 9 - MRAV SOFTWARE DESIGN NARRATIVE Nick Gentry, Vinayak Gokhale, Vineet Ahuja & Oliver Staton March 23, 2011](https://reader036.vdocument.in/reader036/viewer/2022082820/56649f4e5503460f94c6fc75/html5/thumbnails/2.jpg)
Design Considerations
Peripherals: ADC, UArt, Timer, I2C
Constants stored in Information memory portion of Flash
All peripherals will be Flag driven. Why?
JTAG ports will be used for debugging
![Page 3: TEAM 9 - MRAV SOFTWARE DESIGN NARRATIVE Nick Gentry, Vinayak Gokhale, Vineet Ahuja & Oliver Staton March 23, 2011](https://reader036.vdocument.in/reader036/viewer/2022082820/56649f4e5503460f94c6fc75/html5/thumbnails/3.jpg)
Main Design Consideration
ADC used to Sample Ultrasonic Sensors at 20 Hz
Gyroscope sampled at 250 – 300 Hz
Accelerometer sampled at 250 – 300 Hz
Magnetometer sampled at 10Hz
User inputs at 250 – 300 Hz
![Page 4: TEAM 9 - MRAV SOFTWARE DESIGN NARRATIVE Nick Gentry, Vinayak Gokhale, Vineet Ahuja & Oliver Staton March 23, 2011](https://reader036.vdocument.in/reader036/viewer/2022082820/56649f4e5503460f94c6fc75/html5/thumbnails/4.jpg)
START
INITIALIZE GLOBAL
VARIABLES
WRITE CONSTANTS TO NON-VOLATILE
FLASH
INITIALIZE:ADC
TIMER_A, BUART / I2C
VERIFY CONNECTION
W/BASE STATION
ENABLE PERIPHERALS
W/O INTERRUPTS except UArt
VERIFY SENSOR IDS
CHECK ESC ARM
CONDITION FLAG
INITIALIZE ESCs , BEGIN
IDLE CONDITION
WHILE (1)
SENSOR SAMPLE == 1
SAMPLE SENSORS by
enabling interrupts
PIDCOUNT == 50
CALCULATE MTR DUTY
CYCLES
IF HEARTBEAT
== 100
SET NEW PWM VALUES
TOGGLE HEARTBEAT LED
YES
NO
YES
NO
YES
NO
YES
YES
NO
YES
NO
NO
![Page 5: TEAM 9 - MRAV SOFTWARE DESIGN NARRATIVE Nick Gentry, Vinayak Gokhale, Vineet Ahuja & Oliver Staton March 23, 2011](https://reader036.vdocument.in/reader036/viewer/2022082820/56649f4e5503460f94c6fc75/html5/thumbnails/5.jpg)
Timer_A Interrupt
Enable interrupt, set flag & set counter to 0
Sensor counter == val
Increment counter
Exit
YES
NO
![Page 6: TEAM 9 - MRAV SOFTWARE DESIGN NARRATIVE Nick Gentry, Vinayak Gokhale, Vineet Ahuja & Oliver Staton March 23, 2011](https://reader036.vdocument.in/reader036/viewer/2022082820/56649f4e5503460f94c6fc75/html5/thumbnails/6.jpg)
PID
FBdt
dr.pNy.pNy.vN
r.pEy.pEy.vE
r.h y.h
y.w
r.yaw y.yawy.yawRate
PID
FBdt
d
PID
FBdt
d
PID
FBdt
d
PID
FBdt
d
ROTATE TO BODY
PID
FBdt
d
PIDw/ LPF
MOTOR MIXER
ROTATE TO BODY
North tilt
y.yaw
East tilt
y.yaw
SUM (L+R+F+B)
y.pitch
y.pitchRate
F-B
L-R
pitch
y.rollRatey.roll
roll
yawRate
L+R-F-B
-1
FBdt
d
PID STABILITY LOOPS
![Page 7: TEAM 9 - MRAV SOFTWARE DESIGN NARRATIVE Nick Gentry, Vinayak Gokhale, Vineet Ahuja & Oliver Staton March 23, 2011](https://reader036.vdocument.in/reader036/viewer/2022082820/56649f4e5503460f94c6fc75/html5/thumbnails/7.jpg)
Library Written Tested
UArt Yes No
Timer Yes Partially
I2C Yes In process
ADC Yes Yes
PID controller No Worked with James Goppert and developed full simulation in Scicos
Status
![Page 8: TEAM 9 - MRAV SOFTWARE DESIGN NARRATIVE Nick Gentry, Vinayak Gokhale, Vineet Ahuja & Oliver Staton March 23, 2011](https://reader036.vdocument.in/reader036/viewer/2022082820/56649f4e5503460f94c6fc75/html5/thumbnails/8.jpg)
The END