Title: Automated Recuperation Manager
1Automated Recuperation Manager
Group 9 Ryan Cash Sharon Mantor Scott
McCracken Patrick Shea
2Overview
- Goals and Objectives
- Project Subsystems
- Budget and Financing
- Project Status
- Project Schedule
3Goals and Objectives
- Provide the physician with crucial data and
analysis - regarding a patients rehabilitation
- Focus on arm injury recuperation
- Provide the physician with a rich set of data
analysis - and interpretation software tools
- Provide the patient with a small sensing system
to be - worn, which will gather important data
4High Level Project Diagram
5ARM Software
6ARM Software Objectives
- Store and Display Patient Information
- Provide the doctor with the ability to retrieve
data from the device - Provide Doctor with data analysis capabilities
- Provide the Doctor with the ability to program
the device for each patient
7Main Window
8GUI Overview User Options
Data Retrieval
Main Window
Data Analysis
View Patient
Create Patient
9Store / View Patient Information
Open View Patient Dialog Box
View or Edit Patients Data
Update Database
Close Dialogue Box
Open New Patient Dialog Box
Enter New Patients Data
10New/View Patient Dialogue Box
11Data Retrieval
- Data Retrieval means The software will read a
set of binary files from the flash memory and
store the contents of those files in a temporary
database table - Each binary file contains the patients id for
identification, the start date/time of the log,
and a sequence of angles - The analysis algorithms will sort through the raw
data and store selected values in the database - Values calculated include Days range of motion,
Amount of time the device was worn for each day,
how fast the arm was moving on average for the
day, the number of repetitions achieved during
the day
12Data Retrieval
SQL Insert
Database
Patient ID
Start Date
Table Temp
Convert to Appropriate DataType
Column Patient_ID
Start Time
Column Date
Angle
Column Time
Column Angle
13Data Retrieval Calculate Values
- After the angles are sorted by Date, the
filtering process begins
Analysis Algorithms ----------------- Select Max
Angle Where Date X Select Min Angle Where Date
X Select Angle Where Date X Where Time
angles 10miliseconds Max_Reps ? Min_Reps
? Mobility ? Avg_Reps ?
- Tables Patient Stats
- -----------------
- Columns
- Patient_ID
- Date
- Max_Angle
- Min_Angle
- Wear_Time
- Avg_Reps
- Max_Reps
- Min_Reps
- Mobility
- Tables Temp
- -----------------
- Columns
- Patient_ID
- Date
- Time
- Angle
14Data Analysis
Serial Date used for BEGIN and END
Range of Motion in Degrees
Hours patient has worn the device
How fast the arm moves per min-hour-day
Repetitions per hour-day-week
15Parameters
- Doctors Prescription
- Only the max and min angles will be programmed
into the device. The other measurements are for
comparison during analysis
One Limb per Patient
Recommendations
Free text areas for further description
16Programming the Device
- The software will create a binary file on the
flash memory card that will be read by the device - This file will contain the max (bad) and min
(good) angles
17Planned Enhancements
- Line graphs that will show the stats over time
18Graphics Software
19Objectives
- Create a custom software simulation tailored to
arm - movement
- Allow physician to visually view patients arm
- movements throughout data log session
- Provide physician with real time simulation and
- feedback of the arms movement
- Keep software at lowest possible level to aid in
- computational efficiency
20Software Design
213D Arm Model
- Purchased from turbosquid.com for 15.00
- 4165 Vertex Coordinates, 5970 Texture
Coordinates - 4165 Normal Coordinates, 4144 Polygon faces
v 0.061694 10.3666 0.533114 v 0.294577 9.97859
0.977747 ... 4165 vt 0.747845 0.341981 vt
0.530273 0.622305 ... 5970 vn 0.0381134
-0.673374 0.738319 vn -0.19732 0.91825
-0.343339 ... 4165 f 1388/2109/1388
1385/2102/1385 367/637/367 1386/2103/1386 f
1387/2106/1387 1388/2107/1388 1386/2104/1386
366/636/366 ... 4144
22Class GUI
- Responsible for handling all user interaction
- Play, Stop, Pause, and Slider controls are used
to - control animation playback
- Open File icon used to load in device data log
files - Keys X,Y,Z rotate 3D arm around respective axis
- Key S zooms in or out
- Key F1 toggles menu
- Key F2 and F3 toggle reference angles
- Key F4 takes a snapshot of current rendered
- image as ScreenShot.bmp
- Key W toggles skin/wireframe
23GUI Data Replay Mode
24GUI Real Time Mode
25ScreenShot000.BMP
26ScreenShot001.BMP
27Reference Angles
- Allows physician to compare arms position with
- various critical references in place
28Class Arm
- Graphics core of application
- Responsible for actual rendering of 3D arm
- Transforms static model into dynamic model
29Class USB
- Used for real time motion capture mode
- Handles all intricate details of communication
with - FTD2XX USB driver
- Provides main application with simple yet robust
- interface to access USB functionality
- Interface consists of 4 simple member functions
to - accommodate the designs needs
bool USBConnect() bool USBDisconnect() bool
USBIsConnected() BYTE USBGetByte()
30Class Animator
- While in real time mode, Animator translates USB
- data into arm movements
- While in data replay mode, Animator translates
log - file data (.ARM) into arm movements
- Provides timing to redraw frames at intervals of
- 100ms to match data log speed
- Provides timekeeper functions which are parallel
to - hardware timekeeper functions (used by class
GUI)
31Software Design
32Joint Position Sensor
33Joint Position Sensor
- Purpose
- Safely perform real-time measurement of the
motion of an injured arm while presenting minimal
hindrance and discomfort to the user. - Requirements
- Attachable to existing medical brace
- Does not impede rehabilitation or promote further
injury - Shock resistant and physically robust
- Accurate to 0.5 across 160 range of motion
- Low current (lt 10 mA)
- Compatible with microcontroller (output impedance
lt 10 kO)
34Joint Position Sensor
- Proposed Solutions
- Exoskeletal (2-D)
- Radial Potentiometer/Transducer
- Attach a radial pot or radial position transducer
to a rigid frame and measure single-plane angle
of motion. - Linear Displacement Potentiometer/Transducer
- construct a small pulley at the joint and convert
linear displacement measurement to single-plane
angle of motion. - Flexible (3-D)
- Triple-Axis Accelerometer Network
- Use triple-axis accelerometers to measure
orientation vectors across sections of the arm.
35Joint Position Sensor
Proposed Solution 1 - Radial Potentiometer Pr
os Simple to design and construct Linear
response simplifies measurement Physically
robust Controllable power level Reasonable Cost
( 30 for precision pot) Cons Exoskeleton
impedes motion and may be uncomfortable
36Joint Position Sensor
Proposed Solution 2 Linear Position
Transducer Pros High accuracy along a
single plane of motion Ultra-low current for
maximum battery life ( 1 µA) Cons Complex and
fragile structure Difficult fabrication with
given resources Difficulty acquiring
parts Requires exoskeleton to gain usable
measurement
37Joint Position Sensor
Proposed Solution 3 Triple-Axis
Accelerometers Pros Allows 3-D motion
capture using relative orientation Low current (lt
1 mA per sensor) Does not impede motion (no
exoskeleton) Reasonable Cost ( 10 per
sensor) Cons Unknown accuracy for this
application Requires complex rendering code 5
connections per analog sensor (digital out of
stock)
38Joint Position Sensor
- Course of Action
- Construct radial potentiometer sensor as a
simple and reliable fallback. - Attempt to develop a usable accelerometer
network as a preferred solution. - Justification
- Accelerometer implementation presents
significant technical challenges under the given
timetable. - Potentiometer sensor has been the basis of most
of the groups work to-date.
39Wheatstone Bridge Operation
R1, R2 and R3 are known. A/D conversion
determines supply voltage and VBC. The
resistance of the potentiometer R4 is calculated
using the governing equation. Resistance is
converted to an angle of rotation according to
the characteristics of the potentiometer. Angle
is stored to flash memory.
40Joint Position Sensor
Radial Potentiometer Implementation
Wheatstone bridge resistive network with
unity-gain difference amplification stage.
41ST Microelectronics LIS3L02AS4 MEMS Inertial
Sensor 3-Axis 2g/6g Linear Accelerometer
- Favorable Characteristics
- 2.4 V to 3.6 V single DC supply operation
- Low current draw when active ( 0.85 mA )
- Sleep mode to conserve battery charge ( 2 µA )
- Adjustable output voltage and sensitivity
- High shock survivability ( 3000 g for 5 ms )
- Most suitable device available for purchase
- Unfavorable Characteristics
- 3 analog outputs per sensor (x, y, x)
- 110 kO output impedance
- SO24 package
Reprint permission pending from ST
Microelectronics. Typical component values given
according to manufacturer datasheet.
42ST Microelectronics LIS3L02AS4 MEMS Inertial
Sensor 3-Axis 2g/6g Linear Accelerometer
- Ordered four units for testing purposes (proof
of concept). Initial testing indicates possible
viability. - Analog accelerometers require op-amp based
output amplification stage to reduce output
impedance for reliable A/D conversion. This
adds substantial wiring and circuitry when
compared to the radial potentiometer. - Digital accelerometers feature I2C and SPI
serial interface for ease of integration with
microcontroller, but all shock- resistant units
are on back order from known distributors.
43Joint Position Sensor
- Successes
- Design of radial potentiometer sensor circuitry
- Challenges
- Precision potentiometer acquisition
- Fabrication of sensor armature
- Accelerometer testing and software development
44User Interface
45Objective
- To provide a communication link between the user
- and the ARM design.
- To provide a visual and non-visual feedback
system.
46User Interface
47User Interface
48Microcontroller Requirements
- Enough I/O ports to connect all of the
peripherals - Available memory to store settings and Menu
- System
- I2C Compatible Serial Module
- Development Tool
49Texas Instruments
- eZ430-F2013 Development tool
- USB debugging interface
- Detachable MSP430F2013
- target board
- IAR Embedded Workbench IDE
- Low cost 20.00
Permission pending from Texas Instruments
50Microchip Technology
- PICkit 2 Starter Kit
- PICkit 2 Microcontroller
- Programmer
- PICkit 2 Low Pin Count Demo
- Board
- PIC16F690 included
- MPLAB IDE
- 12 Lessons
- Low cost 49.99
Permission to use photo by Microchip
51PIC16F690 Microcontroller
- 18 I/O
- 256 bytes of EEPROM data memory
- Compatible with the development tool
- SSP w/ I2C Compatible Address mask
- option
- Free samples of PIC16F690
Permission to use photo by Microchip
52Communication with Data Acquisition System
- Initial 64 byte packet which will include the
- patients ID and the min/max angles.
- Position updates every 100ms.
53Dallas Semiconductor
- DS1307 serial real-time clock
- Clock/calendar
- Battery Backup
- (1.25 x 3V 3.75V)
- I2C serial interface
- Lifespan 9 years (17 years
- typically)
- Low cost 14.95
Permission pending from Spark Fun
54Clock/Calendar
typedef struct _TIME unsigned char Year
// 06 (2006) unsigned char Month
// 1 - 12 unsigned char Day
// 1-31 unsigned char WeekDay // 1-7
(1-gtsunday,7-gtsaturday) unsigned char Hour
// 0 - 23 unsigned char Minute
// 0 - 59 unsigned char Second // 0 -
59 unsigned char AMPM // 0-gtAM 1-gtPM
unsigned char TH // twelve hour
(1-gt12 HR 0-gt24 HR) TIME,PTIME
55Speaker/Buzzer Requirements
- Will be able to interface with the
- microcontroller that is chosen via
- an I/O pin that is under program
- control.
- The intensity of the sound volume
- will be between 70dB and 90 dB.
- Operates on a DC voltage under 5V.
56Spark Fun Electronics
- CEM-1203(42) Magnetic Buzzer
- Operating voltage 3.05.0
- Dimensions 12.0 X 8.5 (mm)
- Sound output 85 dB
- Low cost 0.95
Permission pending from Spark Fun
57Navigation Controls Requirements
- Will be able to interface with the
- microcontroller that is chosen via an
- I/O pin that is under program control.
- Each key will be self explanatory.
- Select keys that are durable and will
- withstand over time.
58LCD Requirements
- Interface with microcontroller
- High Contrast Ratio
- Transflective Type
- Dimensions need to be small
- Light weight
- Display Format 16 x 2
Permission pending from Lumex
59Lumex
- LCM S01602DSF/C
- Display Format 16 X 2
- Yellow/Green LED Backlight
- Super Twisted Nematic (STN)
- Transflective Type
- Overall size with Backlight
- 85.00 x 30.00 x 12.70 (mm)
- Low Cost 22.41
Permission pending from Allied Electronics
60Menu System
61Flowchart
62Flowchart
63Data Acquisition
64Objectives
- Create a system to sample an analog signal and
then - digitize this signal
- Digitized sample is then either logged to a file
or sent - immediately to USB port for real-time
interpretation - System must have very precise timing features
- System should provide easy method to tell exact
time - occurrence of each and every sample logged to
file - System must provide streaming output of
digitized - data to be used by User Interface System
- System operation should be controlled externally
by - User Interface System
65Hardware Block Diagram
66USB to UART Bridge
- Translates asynchronous TTL serial signal to USB
- Performs all functions of USB protocol
automatically - Custom Windows XP USB driver provided (FTD2XX)
- Easy to use interface on both microcontroller
side - and PC side
- Does not require power from microcontroller
- Purchased for 14.95 from sparkfun.com
67Flash Card Interface Module
- Handles all intricate details of flash card
protocol - Writes files in FAT32 file system
- Provides microcontroller with simple
asynchronous - serial interface to read/write files
- Handles SD or MMC flash cards
- Handles flash cards with up to 2 GB storage
- Purchased for 50.00 from hobbyengineering.com
68Hardware Abstraction Layers
- Promotes efficient software design
- Helps to keep design modular
- Allows software to easily adapt to various
design - changes as hardware specific code is kept to a
- minimum
69SSP Module HAL
- Hardware module is Synchronous Serial Port (SSP)
- HAL Layer created to facilitate I2C protocol
- Real Time Clock interface and UI interface
created on - top of I2C HAL
void I2C_Start(void) void I2C_Stop(void) void
I2C_SendByte(BYTE) BYTE I2C_ReadByte(void) void
I2C_SendAcknowledge(void) void
I2C_ReadAcknowledge(void)
70Real Time Clock API
- Extremely simple and easy to use
- Requires only 2 functions to access all clock
- functionality
typedef struct _TIME BYTE Year BYTE
Month BYTE Day BYTE WeekDay
BYTE Hour BYTE Minute BYTE
Second BYTE AMPM BYTE TH
TIME,PTIME void GetTime(PTIME pTime) void
SetTime(PTIME pTime)
71Bit Bang HAL
- Provides abstract interface to hardware I/O pins
- Allows API level code to remain fixed if
hardware - changes are made
BYTE IsRTEnable(void) BYTE IsDAEnable(void) void
DAEnableDisable(BYTE) void RTEnableDisable(BYTE)
72User Interface API
- Used to facilitate communication between user
- interface module and data acquisition system
typedef struct _DASTATUS BYTE DAEnable
BYTE RTEnable DASTATUS,PDASTATUS void
GetDAStatus(PDASTATUS) void SetDAStatus(PDASTATUS
) void SendSettings(BYTE ) void
ReceiveSettings(BYTE ) void SendArmAngle(BYTE)
void ReceiveArmAngle(BYTE )
73Asynchronous Serial HAL
- Hardware module is UART on PIC16F690
- HAL layer handles hardware specific features of
UART - Configures baud rate, start and stop bits, and
allocates - ports to be used for communication (RX and TX)
- If future hardware changes are made, only HAL
needs - to be modified (other software remains fixed)
-
void SerialInit(void) void PutChar(BYTE) void
PutString(BYTE ) BYTE GetChar(void) void
GetString(BYTE )
74USB API
- Facilitates communication with USB to UART
bridge - while in real time mode
- Redirects asynchronous serial output to USB
- Formats data to meet Windows XP USB API
- specifications
define SELECT_USB void SendValueUSB(BYTE)
75Flash Card API
- Provides easy to use functions similar to
classic - ltstdio.hgt library file functions
- Redirects asynchronous serial output to Flash
Card - Interface Module
- Effectively hides the details of file handling
void FOpen(BYTE FH, BYTE Filename, BYTE
Mode) void FClose(BYTE FH) void FWrite(BYTE FH,
BYTE Data, BYTE Length) void FRead(BYTE FH,
BYTE Data, BYTE Length)
76Hardware Abstraction Layers
77Data Acquisition Code Flowchart
78Iteration Timing Analysis
79Power Supply
80Power Electronics
- Purpose
- Convert battery supply voltage to appropriate
levels for electronic components and facilitate
safe charging of battery using AC adapter. - Goals
- Minimize current levels for maximum battery life
- Minimize component size for maximum portability
- Requirements
- 24 hour battery life during normal continuous
operation - Auto-shutoff for dangerously depleted battery
- Internal Li-Ion battery charging circuitry
- Provide regulated DC supply
81Battery
- Three types of rechargeable batteries are
considered - Lithium Ion (Li-Ion)
- Nickel-Metal Hydride (NiMH)
- Nickel-Cadmium (Ni-Cad)
Chosen Technology Lithium Ion
82Regulated DC Voltage Reference
- Three types of DC-DC converters are considered
- Switched Power Converter (SPC)
- Low Dropout Regulator (LDO)
- Charge Pump
- SPC provides regulated output but produces EMI
during switching - LDO provides regulated output but is less
efficient than SPC - Charge pump provides unregulated output but is
more efficient across specific current draws than
LDO or SPC. - Chosen Technology Microchip TC13xx Series
83Microchip TC13xx Voltage Reference
- Two independent voltage references
- 500 mA SPC (buck regulator)
- Continuously adjustable output voltage (0.8 4.5
V DC)Used to power microcontrollers and
peripherals - 300 mA LDO regulator
- Incrementally adjustable output voltage (1.5
3.3 V DC) - LDO can be powered off while SPC operatesUsed to
power analog sensor - Sensor plug completes circuit to LDO enable,
providing automatic shutdown when sensor is
disconnected.
84Battery Charge Controller
- Microchip MCP738xx Series
- Utilizes constant current/constant voltage
charge profile required for Li-Ion batteries. - Automatically powers down when AC adapter is
disconnected. - Indicates charge status to microcontroller.
- Thermistor input to prevent overheating of
battery. Overheating can lead to dangerous
rapid disassembly of battery. - Must be mounted close to battery contacts
85Battery Charge Controller
Microchip MCP738xx Series Status Output Pins
Allows battery status to be displayed on
LCD. battery is charging (STAT1 on) charge
cycle complete (STAT1 flashing 1 Hz) dangerous
heat level (STAT2 flashing 1 Hz)
Reprinted with permission from Microchip.
86Voltage Supervisor (optional)
Li-Ion Operating Range Permanent degradation may
occur if the battery is allowed to operate at a
low charge level.
- Microchip MCP1320
- Monitors battery voltage and communicates with
microcontroller watchdog timer. - Designed to safely power down the system when
battery is operating in an overly depleted mode. - Trigger adjustable in 100 mV increments ( 2.0
4.7 V)
87(No Transcript)
88Power Electronics
- Successes
- Parts selection
- Recommended circuits specified by manufacturer
- Low power consumption
- Low PCB profile components
- Challenges
- Estimating current requirements and battery
capacity - Packages cannot be manually soldered
89Budget and Financing
Research and Development Total 942.93
90Project Status
91Workload Allocation
92Project Schedule
93Summary
- Goals and Objectives
- Project Subsystems
- Budget and Financing
- Project Status
- Project Schedule
94Automated Recuperation Manager
Questions?