Upload
joanne
View
74
Download
1
Tags:
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
team teneo
dillon krasovec : jerod ellingson : robert glissmann : ben walker : patrick hanschen
+cdr+cdr
mission: universal human
interface device: intuitive alternative to mouse and
keyboard or any difficult to learn remote controller
glove architecture
adc adc
glove schematic
gyro schematic
: flex sensor+ circuit design+ analog input on MSP+ testing
: external ADCs + circuit design+ spi communication+ streaming data
80%
33%
glove progress
e progress
: accelerometer+ circuit design+ communication+ streaming data+ packet data
: gyro + circuit design+ analog input on MSP+ process angle data+ connecting to external ADC
65%
50%
MSP430F2616
SMClk
SPIState Machine
1/x
Slave Select
Data OutData In
SPI Master•3 SPI State Machines•2 different clock speeds
asynchronous spi communication
void spi_interrupt(){.. Read next command.. Buffer received data.. Send next command..
void spi_interrupt(){.. Read next command.. Buffer received data.. Send next command..
void main(){.. Place commands in
FIFO buffer. [ Other tasks ]. Read data from FIFO buffer.
void main(){.. Place commands in
FIFO buffer. [ Other tasks ]. Read data from FIFO buffer.
FIFO Command
Buffer
FIFO Command
Buffer
FIFO Receive Buffer
FIFO Receive Buffer
Request ADXL Data*
Request
Flex Data*
Quantize
Flex Data
Request Gyro Data*
Process
Data
ProcessADXL Data
Send Data*
Request ADXL Data*
Request Flex Data*
Quantize Flex Data
Request Gyro Data*
Process Data
ProcessADXL Data
Send Data*
Request ADXL Data*
Request Flex Data*
Quantize Flex Data
Request Gyro Data*
Process Data
ProcessADXL Data
Send Data*
: 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
timing
-f2616
pc-hub
HubController<<controller>>
+RF_receive();+HID_emulator();+IR_tracker();
+SlaveSelect();+LookupTable();
HID_emulator<<boundary>>
+DeviceDescriptor();
+sendMouseState();+sendKeyboardState();
RF_receiver<<boundary>>
+inBuff[]; char+outBuff[]; char
+getHandState();
IR_camera<<entity>>
+Init();+transmit();+transmitComplete();
AtmelUSB_interface<<entity>>
+sendFeature(char []);+writeBytes(char[]);+readBytes(char &[]);+connect(ID);
MainUI_window<<controller>>
+List<Profile> profile();+ProfileBuffer();+XmlFileInterface();+save();+cancel();+createNewProfile();+editProfile();+downloadProfile();
ProfileBuffer<<entity>>
+ActiveProfile+list<Gesture> gestures+rename(string);+saveProfile();+cancel();+createNewGesture();+saveGesture();+cancelGesture();
Profile<<entity>>
+List<Gesture>gestures+name(); string+description(); string+setName();+getName();+setDescription();+getDescription();+getGestureList(); List<Gesture>+addGesture(Gesture);+removeGesture();
Gesture<<entity>>
+ID(); string+BitwiseDescriptor();+XmlNodeDescriptor();+getName()+getBitwiseDescriptor();+getXmlNode();+populateFromXmlNode():
Xml_interface<<boundary>>
+filename
+getProfileList();+saveProfileList();+loadSettings();+saveSettings();
GloveController<<controller>>
+HandState(); struct+FingerTrends();+AccelTrends();ControllerState();+getSensorData();+sendHandStat()+executeScheduledTasks();+processCurrentState();
Accelerometer<<entity>>
+getx();+gety();+getz();+setMode();
RF_transmitter<<boundary>>
+inBuff[]; char+outBuff[]; char+sendBuff();
AnalogSensor<<entity>>
+polledByADC();
gets/sets
calls
shows/hides
displays
calls
modifies
Composed of
Gives data/ gets status
Gets data from
gets data from
transmits to
calls
calls
polls
class diagram
: PixArt: wii remote: cmos + preprocessing: outputs x y coords and spot size: no official spec sheet: hacks and snooping
infrared cam
: intermediate circuit: 25Mhz oscillator: i2c – different clk: init()
+ mode+ sensitivity
: timer driven polling
ared cam
: 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 =
radiofrequency
85%
packets
15 0
accel x-vector
accel y-vector
TILCRC M 5 discrete bits middle 5 discrete bits index
gyro pitchgyro roll
12
byte
s
accel z-vector
8 7
3 bits palm 3 bits rotation
misc.
pc hub gesture lookup
RDir PDir RD LD T I M10 8 5 4 3 2 1 0
hashfunction
index keyboard seq. mouse action
0 3 chars 2 bits
1 3 chars 2 bits
… … …
8 3 chars 2 bits
key
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%
pc hub schematic
: 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
usb 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%
emulator module
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%
Configuration Utility UI
helicopter hub design
Overview - Compare prices
throttle
pirouette roll
pitch
heli-hub architecture
rc LPFgpio
adc
zigb
eejta
g
v follower
dac
helicopter hub schematic
: 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
controlle bluesr
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
1e
: glove construction: helicopter controllable by glove: glove fully emulates HID device on a PC: GUI with google sketchup profiles: rev. 2 PCB’s construction
milestone 2
e
: repair parts and batteries for heli -= $60: PCB sensors -= $60: PCB revisions -= $200: glove and accessories -= $60: surface mount components -= $50
budge t= $620
= $190
Division of Labortask dillon robert ben patrick jared
IR unit d r
drivers / USB d r
gyroscopes / accelerometers b
flex sensors / buttons p j
software system sesign d r
sensor processing and comm b
helicopter controller interface p j
PCB d r b p j
construction d r b p j
dillon krasovec : jerod ellingson : robert glissmann : ben walker : patrick hanschen
questions