My Project
ME 305 UI Term Project

ME 305 UI-Motor Term Project

This project focuses on determing how to communicate between UART and # Serial lines between a PC front end and an UI back end. The PC sends a user inputted signal to trigger data collection on the Nucleo. The Nucleo reads data from encoder's that helps measure the position and velocity of two motors. There is a controller involved to account for oscillation and to reduce error in the signals. Each week focuses on a different aspect of the project.

Week 1: Extending Your Interface

This week's project contains the UI_front, UI_data and main to send and recieve data from PC to Nucleo to plot data for 30 seconds. The project can be found at UI_data1.py UI_front1.py main1.py

Week 2: Incremental Encoders

This week's project contains the UI_front, UI_data, Encoder Driver, Encoder Controller, Shares and Main to retrieve and update encoder ticks. The user is able to start recording the continously updating encoder tick counter. The user is able to figure out the current position, delta of the position and zero the position based on key clicks in the PC front end. The encoder driver contains functions that the encoder controller uses to continuously update the encoder counter. The data is stores in a Shares file that is referenced in the UI_data and is sent to the UI_front if the user requests so. The project can be found at UI_front2.py task1.py task2.py encoder2.py shares2.py main2.py

Week 3: DC Motor Control

This week's projecy builds off of Week 1 with an addition of a Motor driver, Closed Loop Driver and a modified Controller task. The motor driver spins based on the pulse width modulation. The closed loop controller class encorporates the Encoder driver with the motor driver to perform closed-loop speed control. The project can be found at main3.py encoder3.py motor.py shares3.py UI_data3.py UI_front3.py closedLoop.py controllerTsk.py. However the project was not able to be fully finished but the referenced projects demonstrate the effort put in by the due date.

Week 4: Reference Tracking

This week's project will adapt the closed loop controller code to perform reference tracking instead of setpoint control. However, the project remains unfinished by the time it was due.