This repository contains the firmware solution for an induction cooktop control system. The system enables users to control the induction cooktop's power levels, monitor its activation status, and handle pot presence detection.
- The device features a power on/off button.
- Pressing the button when the device is off turns it on.
- Pressing and holding the button for at least 1 second when the device is on turns it off.
- A LED indicates the device's status.
- The device operates at four power levels: 300W, 500W, 1000W, and 1500W.
- After turning on the device, users can increase or decrease the power using dedicated buttons.
- Upon powering on, the cooktop starts at 0W, and the burner is considered inactive.
- Once the desired power level is selected, the burner is activated if it's not changed within 5 seconds.
- Users can adjust the power while the burner is active, but the new setting is applied if not changed within 5 seconds.
- Power adjustment buttons must be held for at least 1 second for the command to take effect.
- A LED indicates burner activation.
- The LED operates as follows based on the power level:
- 0W: LED off
- 300W: Flashing with a period of 2 seconds
- 500W: Flashing with a period of 1 second
- 1000W: Flashing with a period of 500ms
- 1500W: Flashing with a period of 250ms
- The device ensures that the burner activates only when a pot is present on the cooktop.
- If the pot is removed while the burner is active, an LED signals the anomaly for 10 seconds.
- If the pot is not replaced within this time, the device deactivates the burner (power set to 0W).
- Power On/Off Button
- Power Increase Button
- Power Decrease Button
- Pot Presence Sensor
- Device Power LED (indicates if the burner is on, remains lit when the burner is active)
- Error LED (illuminates in case of an error)
- Burner Activation LED (indicates the power level of the burner)
The team is required to produce and deliver:
- System design including use cases, activity diagrams, and state diagrams
- System modeling in Simulink using Stateflow
- Test environment in Simulink Test with at least 5 significant use cases
- Source code and hardware demonstrator with firmware generated from the Matlab environment
-
Harnesses: Contains Test Harnesses created for model validation. Each file represents a test scenario for each component, and there is also a general file that includes all test scenarios for each component. Total files: 21.
-
TestManager: Contains test files to be run with MATLAB's Test Manager tool. Each file tests a specific component and includes all test scenarios. Total files: 5.
-
Firmware: Folder generated by MATLAB during the system build process, necessary for firmware deployment.
-
Documentation.pdf: Documentation containing:
- Design
- Description of the StateFlow model
- Description of the test scenarios implemented in Stateflow
- Description of the test scenarios performed on the device after firmware deployment.
-
InductionCooker.slx: StateFlow project file used during phases 2 and 3. Contains the harnesses from the Harnesses folder. Open this file to run tests using SimulinkTestManager and the files in the TestManager folder.
-
InductionCookerDeploy.slx: StateFlow project file used during phase 4 (Deploy). Contains blocks for the Simulink Coder Support Package for STMicroelectronics Nucleo Boards. Use this file to execute "Build, Deploy, and Start" to obtain the firmware in the Firmware folder.
-
SuddivisioneAttività.xlsx: Time log of each group member's commitment in various project phases.
-
induction_cooker_test.mp4: Video of tests performed on the board, available at the link 'https://drive.google.com/file/d/1zgwOxmIYmiG65LBd2DkA6K30v3RwfV6D/view?usp=sharing' or in the GIT repository (the URL is in Documentation.pdf).
Last Name, First Name | ID | |
---|---|---|
Cerasuolo Cristian | c.cerasuolo2@studenti.unisa.it | 0622701899 |
Ferrara Grazia | g.ferrara75@studenti.unisa.it | 0622701901 |
Guarini Alessio | a.guarini7@studenti.unisa.it | 0622702042 |