Final project design for Embedded Systems Software development class (ESET 369) in the Engineering Technology and Industrial Distribution department at Texas A&M University
This project implements the control logic for a class project, turning the microcontroller into a user-interactive controller for a servo and ultrasonic sensor, with feedback shown on both an LCD and over a serial terminal. It is typical for a final embedded systems course project combining input, output, actuation, and sensor integration.
This file, main.c, is the main program for an embedded systems project running on an MSP432 microcontroller. Its core purpose is to provide a menu-driven interface (via UART/serial terminal and an LCD) for controlling a servo motor and interacting with sensors.
Key Features and Functions:
- Menu System: On startup, it displays a menu over UART and on the LCD, allowing the user to choose from various options by entering a number via the terminal.
- Servo Motor Control: The user can center the servo, move it left/right, or control it with a potentiometer (via ADC readings).
- Ultrasonic Sensor: The program reads from an ultrasonic sensor to measure distances and displays the results.
- Automatic Mode: In this mode, the servo is automatically moved based on the proximity detected by the ultrasonic sensor.
- LCD and UART Output: Outputs status and results to an attached LCD and serial terminal.
- Hardware Initialization: Initializes ports, UART, timers, ADC, and LCD to interact with the microcontroller’s peripherals.
How it works:
- The main loop waits for user input via serial.
- Depending on the user’s menu choice, it performs actions such as:
- Displaying names or date.
- Moving the servo to preset positions (center, left, right).
- Allowing manual or automatic (sensor-triggered) servo control.
- Displaying data on the LCD and via UART.
- The code handles low-level hardware interaction (e.g., pin configuration, timer interrupts, ADC conversions).