Overview
The C++ Arduino firmware is the brain behind our robot, enabling it to perform complex tasks with precision and efficiency. The Arduino microcontroller, known for its ease of use and extensive library ecosystem allowed us to incorporate sensors and motors with ease without compromising customizability. Arduino's IDE uses a subset of C++, simplifying some parts to make it more accessible. C++ is a powerful and efficient language offering object-orientated capabilities. While not as high-level as something like Java, C++ offers great robustness and low-latency performance ideal for ensuring smooth communication between various components. By leveraging the robustness of C++ and the versatility of Arduino, we have crafted a firmware solution that is both powerful and adaptable, making it suitable for a wide range of robotic applications.
Core Features
Object Orientated
Customizable step size
Customizable speed
Custom Built Stepper Motor Library
Supports synchronous rotation of multiple steppers with varying gear ratios
Custom Built Linear Actuator Library
Proportional control via quadrature encoder
Low Latency
Implementation
All versions of firmware can be found here. Our latest iteration uses NRF radio communication, an integrated LCD display, servos, stepper motors, and a DC- motor powered linear actuator.
Optimization and Performance Enhancements
Our code is fully debugged, with minimal lag in radio communication. Our performance metrics can be found in the above sections, with visuals detailing response times. Our controller has many features which can be accessed by use of toggle menus and joystick buttons.