project-highlight-image

Embedded Systems Software - Multi-Peripheral Control Platform

hero-image

Rex Worley

Project Timeline

Aug 2024 - Dec-2024

OVERVIEW

This project demonstrates the design and implementation of a real-time embedded control system that coordinates multiple hardware peripherals through an interrupt-driven architecture and precise timing control. The system integrates motor control, servo actuation, human-machine interface components, and sensor processing to create a responsive mechatronic platform with simultaneous multi-tasking capabilities. Technical Approach: The system uses a Texas Instruments MSP430FR5994 microcontroller as the central processor, coordinating a 16x2 LCD display, a DC motor with PWM speed control, an MG996R servo motor, a piezo buzzer, and an analog joystick input. The hardware architecture employs memory-mapped I/O for direct peripheral control and implements multiple timer modules (Timer B0 for system timing, Timer A2 for tone generation) to achieve deterministic real-time operation. A custom PCB interface connects the microcontroller to the BH EDU Kit, with carefully routed GPIO pins for data (P3), control signals (P8), motor drive (P4.7, P1.2, P1.3), and ADC inputs (P4.1, P4.2). Control Implementation: The software architecture employs interrupt-driven event handling rather than polling, ensuring responsive system behavior and efficient processor utilization. Push-button inputs trigger state changes for a programmable countdown timer (initialized to 1:15), melody playback, and system control modes. The joystick's analog X-Y coordinates are continuously sampled through the onboard ADC, with normalized values driving proportional DC motor speed/direction and servo angular position. Timer interrupts at 1 Hz manage the countdown functionality while maintaining non-blocking operation of all other peripherals. Software & Hardware Integration: The 578-line C/C++ program implements modular peripheral drivers with hardware abstraction, enabling clean separation between application logic and low-level control. PWM signals generated through timer compare registers provide smooth motor speed control and precise servo positioning, with pulse widths mapped directly to joystick deflection. The system includes integral wind-up protection for the countdown timer and implements proper debouncing for mechanical button inputs. Real-time system state (joystick position, timer values, motor parameters) is transmitted via UART to LabVIEW for external visualization and data logging, demonstrating effective serial communication protocols for embedded debugging and telemetry. This project showcases practical application of embedded systems architecture, real-time operating principles, interrupt-driven programming, peripheral interfacing, and hardware-software co-design—skills directly applicable to industrial automation, consumer electronics, and IoT device development.

HighlightS

Technical Achievements:

  • Designed an interrupt-driven embedded system with 578 lines of C code, managing 7+ concurrent peripherals on a resource-constrained microcontroller
  • Implemented real-time multi-tasking architecture with deterministic timer interrupts (1 Hz countdown + dynamic tone generation)
  • Developed ADC-based analog input processing with normalized joystick control mapping to proportional motor speed and servo positioning
  • Created modular peripheral drivers with hardware abstraction for LCD, PWM motor control, servo actuation, and UART communication

System Integration:

  • Built a complete embedded mechatronic system interfacing digital I/O (buttons, LCD), analog inputs (joystick ADC), actuators (DC motor, servo, buzzer), and serial communication (UART to LabVIEW)
  • Achieved simultaneous control of all peripherals without blocking operations through proper interrupt prioritization
  • Implemented custom PCB wiring and pin mapping across multiple GPIO ports (P1, P3, P4, P5, P6, P7, P8)

Problem-Solving:

  • Designed state machine logic for timer control (reset, start, pause) with proper mode transitions and display updates
  • Implemented non-blocking tone generation for melody playback using timer compare interrupts
  • Developed a real-time data telemetry system transmitting sensor and state data to external visualization software via UART

SKILLS

Embedded C/C++ programmingInterrupt-driven architecturePWM generationADC interfacingUART serial protocolsMemory-mapped I/OHardware debuggingMicrocontroller peripheral configuration

ADDITIONAL CONTENTS

Home
Questions?
hero-image

Rex Worley

I am a Mechatronics Engineering student at Texas A&M University with hands-on experience in industrial automation and embedded systems. I've engineered PLC control systems, designed IoT dashboards with real-time sensor integration, and programmed autonomous robotic systems. I'm passionate about applying robotics and control systems to solve real-world engineering challenges.

| lowinertia |
Engineering Portfolio in 15 minutes
Create Your Portfolio