Latest commit
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
* TEAM MEMBERS * Sudharshan Ramesh - sr7431 * Zhixiang Zhou - zz4819 * Junhao Zhu - jz7244 Evaluation of Embedded Sentry Code against Grading Criteria: 1. Ability to successfully achieve the objectives: - The code uses data collected from an onboard accelerometer/gyro to record and match hand movement sequences. - A "Record Key" functionality is implemented with `RECORDING_FLAG` to indicate the start and end of sequence recording. - A visual LED-based indication system (green for unlocked, red for locked) ensures the status of the lock is clearly visible. - The unlock process checks recorded sequences against new gestures using correlation with a defined threshold (CORRELATION_THRESHOLD). 2. Repeatability and robustness of unlock sequence: - The `correlation` function computes the similarity of gestures, ensuring only closely matching sequences are accepted. - A cleaning function (`clean_Track`) removes noise from raw gyroscope data to improve robustness. - Tolerances are controlled via the correlation threshold (`CORRELATION_THRESHOLD`), balancing security and usability. - More details are elaborated in the video. 3. Ease of use: - User interaction is intuitive, with clear visual feedback via LEDs and an LCD interface. - Graphical elements like "lock" and "unlock" icons provide an accessible user interface. - Interrupt-based controls for starting/stopping recordings and unlocking reduce user error. 4. Creativity: - The project allows users to record gestures for their preferred time period rather than fixed time. - The project combines gesture recognition and embedded graphics to create an interactive locking system. - The visual design and LED-based indications add a layer of user-friendly interaction. - The implementation of gesture-controlled unlocking is a novel application of the IMU. 5. Well-written code: - The code is modular and follows clear separation of concerns, with dedicated functions for data processing, graphics, and core logic. - Code comments explain the purpose of major functions, enhancing readability and maintainability. - The use of well-defined flags (e.g., RECORDING_FLAG, UNLOCK_FLAG) simplifies state management. 6. Complexity: - Advanced techniques such as correlation calculation and data normalization are used for sequence matching. - Multiple threads handle LCD updates, LED indications, and accelerometer data processing concurrently, showcasing an understanding of multitasking. - The project involves intricate hardware interactions, including LCD, touch input, and gyroscope data integration.