Description
Abstract
In the final project of the semester, you (and your group of four students) will use the B-L475E-IOT01A to build an interactive application that combines the features explored in the earlier labs. The project is open-ended (you choose the final objective), but must meet requirements related to the number of board features it uses to be eligible for full credit.
Deliverables
● Initial demonstration of progress in the development of features (week of Nov 13)
● Final demonstration of completed project (week of Nov 27)
Grading
● 5% Project proposal
● 15% Initial demonstration
● 25% Initial report
● 25% Final demonstration
● 30% Final report
Changelog
● 16-Oct-2020 Initial revision.
● 17-Nov-2020 The I2C feature may be claimed if a project integrates an external sensor using the GPIO interface.
● 23-Oct-2023 A few additional possible features or example projects have been added.
Overview
For the final project, you will implement an interactive application that takes input from one or more sensors, performs some sort of computation, and provides audible or visual feedback. For full credit, (a) make use of four (4) of the following features of your choice, and (b) attempt to enhance performance using one (1) of the following approaches. Note: a project with three (3) features may receive up to 80% credit.
Application features must be chosen from the following list; alternatives may be approved upon request.
Feature checklist
● Bluetooth
● CMSIS DSP, CMSIS NN, or STM32Cube.AI*
● DAC Speaker
● DFSDM Microphone
● I2C Sensor**
● QSPI Flash
● Time-of-flight Sensor
● UART***
● USB
● WiFi
Input must be taken from one or more sensors; the UART does not count as an input sensor. Output must be available from or more of the LEDs, the speaker, or the UART.
Note*: for use of CMSIS or STM32Cube libraries to qualify as a feature, it must be used extensively in support of the application. Want to use a library that’s not listed? Just ask.
Note**: with permission, another external sensor source may be substituted for this feature, e.g., an ultrasonic sensor interfaced with GPIO.
Note***: using the UART for menu interaction or debugging purposes is not sufficient to count toward your three required features.
A performance enhancement must be chosen from the following list; changes in application behavior must be quantified (i.e., measured); alternatives may be approved upon request.
Performance Enhancements Checklist
● Manual optimization of assembly
● Assisted optimization using compiler directives*
● Use of sub-word parallel arithmetic (SIMD) instructions and associated data types
● Use of conditional execution
● Bitbanding
● OS for threading**
● Low-power operation, e.g., using wait-for-interrupt
Note*: simply changing -O0 to -On is not sufficient to count as performance enhancement. Further information about compiler optimization is available here.
Note**: trivial threading is not sufficient to count as your performance enhancement.
Examples
I hope that you’ll be inspired to create something that excites you; feel free to use, extend, or take inspiration from the following ideas. Note that none of these suggestions have been tested for feasibility; further, not all ideas as specified necessary meet the above feature requirements.
Driving game
● Road and car position print on UART
● Accelerometer determines movement of car on road
● Speaker plays sound effects or … something
● OS manages threads for different parts of the application
Singing game
● Match the duration and pitch of sounds played by the DAC
● Input taken by the microphone
● Something is stored in Flash
● Feedback provided by the UART
Neural networks
● Make use of CMSIS NN to build a neural network
● Classify sensor input, and provide visual or audible feedback
Telecommunications
● Establish communication between two boards, wired or wirelessly
● Exchange coded packets using AES or RSA
Other past examples and ideas
● Rhythm game
● Memory game
● Talking sensor
● Video game controller
Blacklisted Projects
The following project types are blacklisted, and may not be proposed to meet project requirements.
● Audio mixer
● Musical instrument
Proposal
The proposal will define the project, indicate your planned features, and allow us to give you feedback on your project’s overall direction. In this brief report, present the application you wish to develop, and how you plan to test it. Break the project into milestones, which can be individually tested and implemented. Include the expected contributions from each group member and how you plan to collaborate.
The proposal will a document of one (1) page (IEEE conference format) consisting of:
1. Project Group Members
2. Description of Project
3. Project Milestones and Planned Timeline
The proposal does not have to be perfect, and it is expected that your project goals may change, but should be used to provide a roadmap as your project progresses. We will provide feedback as to whether your project is at the right level of difficulty and meets the above requirements.
This portion of the project will be graded as follows, out of 10 points:
1. Clarity— e.g., grammar, syntax, quality of figures (if any), 2 pts
2. Organization— e.g., structure and flow of the proposal, 2 pts
3. Technical content— e.g., proposed design, evaluation methodology, timeline, etc, 6 pts
Hand in, via MyCourses, a single PDF.
Reviews
There are no reviews yet.