380 likes | 573 Views
t eam teneo. d illon krasovec : j erod e llingson : robert g lissmann : ben walker : patrick h anschen. +cdr. mission. universal human interface device intuitive alternative to mouse and keyboard or any difficult to learn remote controller. glove architecture. adc. adc.
E N D
team teneo dillon krasovec : jerod ellingson : robert glissmann : ben walker : patrick hanschen +cdr
mission • universal human interface device • intuitive alternative to mouse and keyboard or any difficult to learn remote controller
glove architecture adc adc
glove progress 80% • flex sensor + circuit design + analog input on MSP + testing • external ADCs + circuit design + spi communication + streaming data 33%
e progress 65% • accelerometer + circuit design + communication + streaming data + packet data • gyro + circuit design + analog input on MSP + process angle data + connecting to external ADC 50%
SPI Slave Data Out SPIState Machine Data In 1/x Slave Select SMClk SPI Master • 3 SPI State Machines • 2 different clock speeds MSP430F2616
asynchronous spi communication void main() { . . Place commands in FIFO buffer . [ Other tasks ] . Read data from FIFO buffer . void spi_interrupt() { . . Read next command . . Buffer received data . . Send next command . . FIFO Command Buffer FIFO Receive Buffer
ADXL Interrupt Request ADXL Data* ProcessADXL Data Request Flex Data* Quantize Flex Data Request Gyro Data* Process Data Send Data*
timing ADXL Interrupt ADXL Interrupt • what we want • + transmission specification: packets/sec • limitations • + get sufficient samples for precision • + allow sufficient processing • achieving correct timing • + set ADXL sampling clock • + choose buffer fill threshold Request ADXL Data* Request ADXL Data* ProcessADXL Data ProcessADXL Data Request Flex Data* Request Flex Data* Quantize Flex Data Quantize Flex Data Request Gyro Data* Request Gyro Data* Process Data Process Data Send Data* Send Data*
pc-hub -f2616
class diagram pc pc hub glove calls gets/sets shows/hides Gives data/ gets status gets data from transmits to calls calls calls displays modifies Gets data from polls Composed of
infrared cam • PixArt • wii remote • cmos + preprocessing • outputs x y coords and spot size • no official spec sheet • hacks and snooping
ared cam • intermediate circuit • 25Mhz oscillator • i2c – different clk • init() + mode + sensitivity • timer driven polling
radiofrequency • ez430-rf2500 • pin header interface • initially a risk • uart for debugging • spi ports + successful + only has two – pins are shared + no uart for debugging • current progress = 85%
packets 5 discrete bits middle 5 discrete bits index RC LC M I T accel x-vector accel y-vector 12 bytes accel z-vector 3 bits rotation misc. 3 bits palm gyro pitch gyro roll 15 8 7 0
pc hub gesture lookup 10 8 5 4 3 2 1 0 key RDir PDir RD LD T I M hash function
master to usb emulator • spi (3-wire) from master to USB emulator + frame packet (5-bytes) indicates key presses and mouse position + single status-byte returned by emulator + indicates whether a new Profile LUT is available + hub’s look-up table is updated with “focused transfer” • all other transactions and look-ups cease • tables are not persistent between sessions (mouse stored statically) + current progress = K1 K2 K3 ∆X ∆Y 25%
usb emulator module • atmel processor (At90USB1287) implements human interface device (HID) protocol + vendor ID (VID) and product ID (PID) distinguish unit from other USB devices + device descriptors • mouse • keyboard • generic device
emulator module • receives output reports from PC utility + when requested by the Hub master processor, reports are forwarded via SPI • receives commands from hub master via SPI: + keys and mouse state to assert in output reports • current progress = 30%
pc config utility • software utility allows for complete configuration of glove gesture mapping + written in visual c# • usability profiles enable users to save groups of gestures for a specific type of application + eight or fewer gestures per profile + three-key hotkeys • application saves profiles by serializing to XML <?xml version="1.0" encoding="utf-8" ?> <Profiles> <Profile name="Mouse" default="true" description="Basic mouse controller"> <Gesture id="g45t"> …
config utility • library support for device detection + windows messages provide connection notification • DLL wrapper enables communication to Hub device via host “output reports” + allows utility to detect when USB device is connected + gesture descriptors are packed into six-byte structures + profile description table transmitted via OUT reports • current progress = 70%
Overview - Compare prices helicopter hub design
pitch throttle pirouette roll
heli-hub architecture rc LPF MSP430F2616SP adc zigbee v follower dac jtag gpio
r blues controlle • controller is now optional + very challenging control application + may require more powerful processor + testing could be hazardous • testing shows… + even coaxial helicopter challenging to fly + hovering requires constant adjustment + uncertain if glove will be easier or harder
e 1 milestone • derive angle and movement from accelerometer • acquire and process flex and gyro data • IR cam prototyping • integrating RF + emulator + IR into hub proto • demonstrate pass-through function on heli-hub • rev. 1 PCB’s
milestone e 2 • glove construction • helicopter controllable by glove • glove fully emulates HID device on a PC • GUI with google sketchup profiles • rev. 2 PCB’s construction
budge t = $620 • repair parts and batteries for heli -= $60 • PCB sensors -= $60 • PCB revisions -= $200 • glove and accessories -= $60 • surface mount components -= $50 = $190
questions dillon krasovec : jerod ellingson : robert glissmann : ben walker : patrick hanschen