Navigational Aid for a Blind Individual Electrical/ Computer Engineering Team P12015: Bob Evans Jackson Lamp David Sachenik David Yip P12016: Curtis Beard Aalyia Shaukat David Taubman Oliver Wing
Summary Introduction/Review Power Calculations Battery User Input (Keypad) Microcontroller Navigation Algorithm Schematics Magnetometer RFID Reader/Antenna/Tags Testing Procedures Bill of Materials
Our Navigation Aid Device
P12015: Power Calculations RFID Reader1.5796W*hr Motors W*hr MCU W*hr Magnetometer0.0913W*hr Keypad W*hr *Sum W*hr *For (10) 20 minute intervals of navigation Battery is 3.7V, 1000mA*hr, 3.70 W*hr Voltage Output: 3.3V
P12016: Power Calculations Total Power (mW/hr)Total (mW)Battery Life (%)Total hours of Life Battery is 3.7V, 1100mA*hr, 4.01W*hr Voltage Output: 3.3V *For (10) 20 minute intervals of navigation Min Usage (mAh) = Min Usage (mWh ) = Average (mAh) = Average (mWh) = Worst Usage (mAh) = Worst Case (mWh) =
PRT 3.7 V 1000 mAh 2.09” x 1.3” x 0.225” oz 2-pin JST-PH connector P12015: Battery
P12016: Battery Tenergy Li-ion 3.7V 1100mAh 0.71” x 2.09” (Diameter x Height) 1.04 oz. Molex Pin Connector
Comparison of Voltage Regulation output and POK – Threshold Reached Indicator
User Input (Keypad) 7 Pin Connection Contact rating: 20mA, 24VDC 2.52” L x 2.01” W x 0.28” H 0.26 ounces Output Pin No. Symbol 1ROW 1 2ROW 2 3ROW 3 4ROW 4 5COL 1 6COL 2 7COL 3
Microcontroller Selection Flow Chart Memory Usage Clock Speeds Approx. Number of Instructions processes for algorithm
Program Flow
Path Finding Algorithm
Path Following Algorithm
/* performs dijkstras algorithm upon the building graph */ "dijkstra(graph *g, int start) { int i,j; bool intree[MAXV]; int distance[MAXV]; int v; int w; int weight; int dist; for (i=1; i nvertices; i++) { intree[i] = FALSE; distance[i] = MAXINT; parent[i] = -1; } distance[start] = 0; v = start; while (intree[v] == FALSE) { intree[v] = TRUE; for (i=0; i degree[v]; i++) { w = g->edges[v][i].v; weight = g->edges[v][i].weight; if (distance[w] > (distance[v]+weight)) { distance[w] = distance[v]+weight; parent[w] = v; } v = 1; dist = MAXINT; for (i=1; i nvertices; i++) if ((intree[i] == FALSE) && (dist > distance[i])) { dist = distance[i]; v = i; } Navigation Algorithm
Navigation Algorithm Time Calculation
Mapping Data Structures RFIDTag Representation of an RFID tag. May be implemented as a 64 bit integer. Tags are stored in an array in FLASH and are referenced with an index value. StaticNode Basic node in a map graph. Composed of multiple RFIDTags, destinations, and references to other Nodes using NodeVectors. StaticNodes are stored in an array FLASH and are referenced with an index value. Elements numTags: The number of tags referenced by this Node. tags: The array of RFIDTag indicies referenced by this Node. numDestinations: The number of destinations associated with this Node. destinations: The array of destinations associated with this Node. numNodes: The number of NodeVectors leading to other nodes associated with this Node. nodes: The array of NodeVectors leading to other nodes associated with this Node.
Mapping Data Structures Node Nodes are used as proxies to the StaticNode structures held in ROM. They consist of an index value which is used to identify the StaticNode they correspond to as well as a “visited” bit which is used by both the path finding and path following algorithms. An array of these is loaded into memory on system startup in an array which mimics the StaticNode array. Elements node: The index of the StaticNode this Node represents. visited: The visited status of the node. NodeVector Represents a link from one node to another. Includes heading and distance information, which is used to determine edge costs in the navigation algorithm and to direct the user during the path following stage. Elements node: The index of the Node referenced by this NodeVector. heading: The direction of the referenced node. distance: The distance to the referenced node.
Mapping Data Structures Destination Structure representing a destination using an integer identifier and a heading/distance vector. Elements id: The room number or other identification code of the Destination. heading: The direction of the Destination from the host Node. distance: The distance to the Destination from the host Node.
Mapping Data Structures
Memory Requirement Estimate Tags300 Tag:Node Ratio2 Avg. Branches:Node3 Avg. Dest:Node2 Max Branches in Map8 StructureStruct Size (b)Extra Size (b)Size (b)Instances in RAMInstances in ROMSize in RAM (B)Size in ROM (B) RFIDTag StaticNode Node NodeVector Destination Total
MCU Specs TI MSP430F5438A 16-bit ISA 25 MHz Clock 16 KB SRAM/256 KB FLASH 8 USCI interfaces with support for SPI, I 2 C, and other serial protocols 18 Programmable PWM Outputs Extremely low power operation—1.05 mW to 35 mW active mode, 1.1 μW to 300 μW sleep mode
Magnetometer ST Micro Electronics LSM303DLH Tilt Compensated Compass Supply Voltage 3.3V Current in Operating Mode 0.83mA 16-bit data out I 2 C serial interface
RFID Antenna/Reader/Tags HperLink Wireless 900 MHz 8 dBi Flat Patch Antenna (HG908P) Skytek M9 Module Alien Briggs Tag Type ALN-9640 Squiggle Inlay
Block Diagrams/Schematic USB Interface with Microcontroller USB Transient Suppressor USB Charging Circuit Linear Regulator Keypad RFID Reader PWM (Motors) Magnetometer
Testing Procedures Battery & PCB Keypad MCU Magnetometer RFID Reader
Battery & PCB testing Test Points (TPs) will be placed in the PCB to verify functionality. Voltage of test points will be measured and compared with their theoretical values. When the battery is fully charged, all test points should be within +/- 10% of theoretical value.
Example of a TP Table Test Point (TP)Theoretical Value [V] Measured Value (When battery is fully charged, falls within +/- 10% of theoretical) [V] TP13.7 TP23.3
Keypad Testing Input Room Numbers/Destinations -Monitor MCU data collection -Feedback from vibrating motors Powering on/off
MCU Testing When possible, testing is performed while debugging the MCU. Navigation algorithm will be tested in the following cases: Known tag ID and destination supplied; path returned in < 1s. Known tag ID and unknown destination supplied; failure reported in < 1s. Unknown tag ID and known destination supplied; failure reported in < 1s. Interfaces with other devices will be tested individually prior to the code being integrated with the main program.
Magnetometer Tests Correct indication of Northern Direction -With/Without interference (Different areas within building) -Flat surface vs. Tilted at various angles -Walking motion test Data interface with microcontroller Power consumption test Heat Dissipation
RFID Reader/Antenna Tests Antenna Position/Polarity Read distance Optimal reading angles Read Time Power Consumption Test Heat Dissipation
P12015: Bill of Materials TypePartManufactuer Manufacturer Part #QuantityUnit PriceShipping CostTotal Cost ($) Component 900 MHz 8 dBi Flat Patch Antenna - 4ft SMA Male Connecto L-com Global ConnectivityHG908P-SM1$54.99$10.95$65.94 Component Precision Haptic 10mm Vibration Motor - 15mm Type model 1Precision Microdrives $7.56 $22.68 Component Precision Haptic 10mm Vibration Motor - 15mm Type model 2Precision Microdrives $7.56 $15.12 ComponentPico Vibe 12mm Vibration Motor - 3.4mm TypePrecision Microdrives $6.48$17.97$24.45 Component 3D Compass and Accelerometer Carrier with Voltage Regulators Pololu Robotics & ElectronicsLSM303DLH1$19.95 ComponentLSM303DLH Tilt Compensated Compass ChipST Micro ElectronicsCOM $ $10.81 ComponentPolymer Lithium Ion Battery mAhSparkfun ElectronicsPRT $11.95 Component16-Bit Ultra-Low-Power MicrocontrollerTexas InstrumentsMSP430F5438A1$12.13 ComponentSmall KeypadFuturlec ElectronicsKEYPADSM1$2.20$4.00$6.20 ComponentSkyeModule M9SkyeTekM9 V ComponentPCB 1$ ComponentIC BATT CHRGR LI+ 1CELLMAXIM MAX1555EZK+TC T-ND2$2.37 $4.74 ComponentIC REG LDO 3.3/ADJ 500MAMAXIM MAX1818EUT33 +T2$3.25 $6.50 ComponentIC USB FS SERIAL UARTFTDIFT232RL2$4.50 $9.00 CaseRod, ABS, Beige, 1 In Dia x 1 Ft LGrainger1ZBU61$8.59 Case RIT-1.998$10.00 $19.98 Total Cost: $538.04
P12016: Bill of Materials
Questions