ME333 - Introduction to Mechatronics
The final project of MECH_ENG 333 was to create a robot arm that could follow a user-defined trajectory in MATLAB. The software for the microcontroller was built using C, and the user interface using MATLAB.
This project was the culmination of all the lessons learnt over the quarter:
· Coding - Using C to program the microcontroller and MATLAB to program the client interface
· Peripherals - Programming the pins on the microcontroller to be digital or analog I/O pins
· Interrupts - Writing Interrupt Service Routines so that the CPU can be freed up for other operations
· UART - Serial Communication between microcrontroller and computer
· PID control - Implement PID control using PWM output based on the position input from encoder
· Motors - Using the motor specs to determine the optimal working voltage and current
Due to the numerous challenges faced while working on the assignment, I learnt to troubleshoot effectively. As the problem could be either due to hardware, software, or a mix of both, the main challenge lies in isolating the source of the problem. As a result, I learnt to create checkpoints in my code (such as the flashing of LED) and split the hardware into smaller modules.
ME433 - Advanced Mechatronics
MECH_ENG 433 was an extension of MECH_ENG 333. This class was a lot more hands-on and was much more unguided. I learnt to properly read data sheets and reference manuals on my own to figure out how to implement features that I want and potential causes of failures.
For the final assignment, I had to apply all the skills learnt over the quarter:
· Coding - Using C to program the microcontroller in Harmony IDE
· Rapid Prototyping - Using laser cutters and 3D printers to create quick mock-ups from CAD
· Serial Communication - Using I2C, SPI and USB to communicate with other microcontrollers or computers
· Digital Signal Processing - Using digital filters such as MAF, IIR and FIR to reduce error in raw data
Through a series of assignments, we gained the skills required for the final assignment – to create a toy car that could navigate a race track using cues from the environment. The course ended with a friendly competition between the students to see how well each of our creations fared on the track. In addition to building the electronics, we were also expected to design our entire car. This includes motor mounts, wheels and the chassis.