EGR314 Team 205 - Deepit Arora, Enoch Choi, Michael Gross
“Our mission is to design and develop an embedded system that incorporates environmental sensors, providing users with real-time data on temperature and wind speed. By leveraging affordability and small form-factor technologies, we strive to deliver a product that will benifit the user and exceed their expectations.”
This is a product that will assist people in wheelchair to block the wet rain or the very hot sunlight. This device will be activated when either the temperature detects very hot weather or the user feels rain coming down. When it rains, the wind speed sensor will use the data collected of the wind speed and calculate the direction of the wind to direct the umbrella to go against the rain the protect the user from getting wet. The umbrella that is mounted in this device is a umbrella that is able to open and close with a push of a button which will be pressed by the solenoid motor. Also, there is a clamp at the bottom of the device that will be able to clamp onto the side poles of the back supports of wheelchairs.
During the decision-making process for our selected design, we realized that the initial three ideas did not fully meet the requirements of the course project, nor did they demonstrate the functionality of our project as we had hoped. To address this, we brainstormed new ideas and agreed to use the temperature sensor and hall effect sensor, given their compatibility and our prior experience with testing them. Ultimately, we settled on the innovative concept of a weather umbrella assistant for wheelchairs.
The following illustration demonstrates the team’s projected hardware system and how it interconnects with the centered microcontroller and ESP32 Module. Additionally, the team utilizes I2C as the core communication between our sensors and PIC module.
Solution | Image |
---|---|
Motor Driver (DRV8830DGQR) | ![]() |
Adafruit 5V Solenoid | ![]() |
Pololu 84 RPM 6V Micro Gearmotor | ![]() |
Solution | Image |
---|---|
TC74A4 | ![]() |
Solution | Image |
---|---|
AS5600 | ![]() |
Solution | Image |
---|---|
PIC18LF26K40 | ![]() |
Refer to Appendix E for more information
The following is the schematic for our team PCB
Check Appendix H - Hardware Proposal for more information
In the development of our embedded systems project, it is crucial to carefully consider the power budgeting of the system. Our design currently relies on a wall power system but will need to rely on a standalone battery supply in our proposed application. With this said, It is imperative to evaluate ways in which power budgeting can be made more efficient. One approach that our team can consider, although slightly over the top, is the utilization of enable pins that can be controlled by unused pins from the microcontroller. Such power-saving techniques can extend the battery life of the system. Furthermore, more advanced methods, such as reducing power consumption during idle periods or implementing sleep modes, can also be explored.
Optimizing the hardware design is another important aspect to improve the performance and reliability of the system by utilizing more efficient hardware configurations. For instance, passive components packages (0805) can be standardized internally and avoid smaller IC packages as our motor controller was non-functional due to potential hardware issues with installation.
Leaving room for expansion and adaptability is an important quality to have when manufacturing. Additional sensors or hardware components can be easily added through connection pins and designing the software architecture to allow for easy modification. The potential for modularized sensor systems, such as atmospheric and humidity sensors, was discussed during the innovation showcase and should be considered for future development.
By taking into account these areas of improvement, our team can create a more efficient and reliable mobile weather station and the above changes can be implemented to ensure the system is adaptable for future versions.
Our software proposal outlines the steps for the program to effectively operate. It begins by initializing all sensors and drivers and establishing a secure connection with each of them. The program then monitors sensor values and compares them with predefined thresholds to determine the appropriate actions, including controlling the motors. By following these steps, our software will enable smooth and reliable operation of the system.
Check Appendix G - Software Proposal for more information
See the following figures for the peripherals and pin GPIO structure utilized in the MPLAB Code Configurator
Below is our table summarizing all the published and subscribed messages for our topic:
Below is our feedback controller diagram which outlines the simplistic software loop to actuate our motors based on measured sensor data
The current system uses an OLED screen for displaying data via bar charts. Adding additional user interface elements on top of our button, such as more complex read-only ESP32 commands, would allow the user for more interactivity and control.
The code performance can be optimized for smaller-scale embedded systems such as these which have minimal processing energy and memory. Utilizing simpler functions, algorithms, and smaller data types will reduce memory usage and optimize the overall hardware platform. Small changes such as declaring constant variables and reducing utilization of global variables will also create a better performance impact.
Given that our microcontroller only has 10kb of programmable memory, we could consider writing data to an onboard SD card if more peripherals and sensors were added to the system. With our current design, we were exceeding 90% capacity so external memory could be a valid option. The PIC Microcontrollers have slower processing speeds so utilizing interrupt service protocols (ISP) in our code algorithms will significantly improve performance and reduce the apparent lag of our single-threaded code capacity.
Appendix B - User Needs, Benchmarking, and Requirements
Appendix D - Verification Table
Appendix E - Component Selection
Appendix F - Microcontroller Selection
Appendix G - Software Proposal