ME 305 Group 6 Documentation
|
This is the documentation site for Chris Linthacum and Caleb Savard's ME305 Lab Group 6. On this site you will find all documentation for the lab projects completed for the class.
The first lab objective is to become familiar with hardware I/O by implementing a program that cycles through three different LED blink states on the Nucleo L476. Please see led_blinks.py for details. For source code, visit the Bitbucket Repo
Here is a demo of the project in action:
This lab consists of creating a driver for a rotary encoder, then creating a program that uses that driver to gather data from the encoder and respond to character commands from the serial connection. For source code, visit the Bitbucket Repo For details, see main.py Here is a demo of the project:
This homework assignment required us to develop a set of Kinetic and Kinematic equations to describe the motion of a platform and ball system. This assignment is in preparation for our term project - balancing a ball on top of a platform. To view more, visit Homework 2.
This lab assignment required us to develop a motor and driver class to control multiple motors using the DRV8847 motor driver. We also expanded the user interface from Lab 2 to include more functionality like testing and motor control. Check it out at Lab 3.
This lab continued to develop the program created in the previous labs, extending our interface by adding a proportional controller to the system. A step-function response sub-program has been implemented to test the step-response of motor to a target velocity. See more here - Lab 4.
This lab had us create a driver for an IMU to obtain device position, orientation, and velocity. With this information we used our closed loop controller class to balance our platform. The deliverable for this project was a demo, and all relevant information regarding this lab has been incorporated into the term project, as the project simply built off of this lab as a foundation.
For our term project, we attempted to balance a ball on the platform we previously balanced. Using a cascaded controller to adjust the panel angle to position the ball, we were able to keep a ball balanced on a platform for up to 25 seconds at a time. With further tuning and adjustment to the controller we could likely have balanced the ball indefinitely. For more information, visit Term Project.
To review source code for the modules covered in this documentation, click the direct links in each section description. To access the complete repository, click here.