Virtual Imaging Peripheral for Enhanced Reality Aaron Garrett, Ryan Hannah, Justin Huffaker, Brendon McCool
Project Overview Our project, code named Virtual Imaging Peripheral for Enhanced Reality or VIPER, is an augmented/virtual reality system. It will track a handheld unit’s location and perspective and use this information to find the location of a camera position in a virtual environment. Through a LCD screen on the handheld unit the user will see the virtual environment at the cameras location as if the handheld unit was a window into the virtual world. As the user moves the handheld unit around a table top sized environment the handheld unit’s actual and virtual perspective changes, allowing for different viewing angles of the virtual space.
Project-Specific Success Criteria 1. An ability to communicate time stamp data using RF between the base unit and handheld unit. 2. An ability to display images to the LCD display. 3. An ability to estimate the angle and position of the handheld unit with respect to an origin point using accelerometer, gyroscope, compass, visual data, and ultrasonic data. 4. An ability to find angle displacement of the handheld unit’s front face relative to the IR beacon origin using mounted camera. 5. An ability to find distance from base to handheld unit using ultrasonic emitter and receiver.
Block Diagram
Beacon Unit – Software Design Considerations Requires use of PWM for LED Ultrasonic UART Xbee Timer Control Interrupt Global Variables timeToStartPWM_flag timeToStopPWM_flag pwmActive_flag
Beacon Unit Software FlowChart
Beacon Unit Software Hierarchal
VPChip – Software Design Considerations Requires use of I2C (TWI) Camera Commands SPI Transmit IR displacement angle ISI (Image Sensor Interface) AIC (Advance Interrupt Controller) Global Variables VariableSize (bytes) frameReady_flag1 buffer_pic (RGB array) copy_pic (RGB array) x_pixel4 (int) y_pixel4 (int) x_angle4 (float) y_angle4 (float)
VPChip Software FlowChart
VPChip Software Hierarchal
USB HUB – Software Design Considerations Requires use of SPI IR displacement angle input UART Xbee AtD Ultrasonic Receiver input I2C Sensor Control and Data bus USB External Interrupts Timer Elapsed Timer Flags accelerometerDataReady gyroscopeDataReady magnetometerDataReady atdReady serviceFlagsQueue serviceFlagsCount Variables newDataFlagArray dataArray elapsedTimerCounter recievingUltrasonic currentSPIInputByte tempDataArray Rs-232 circle buffer Head/Tail buffer pointers
USB HUB Software FlowChart
USB HUB Software Hierarchal
Beagle – Software Design Considerations Requires use of USB Graphics/OpenGL Running Ångström Linux distribution Global Variables State Vector External angle quaternion
Beagle Software FlowChart
Beagle Software Hierarchal