Skip to content

Brushed Motors

Guthrie edited this page Apr 14, 2023 · 10 revisions

Project Overview

On the rover exists a MCU board which essentially is a PCB powered by 12V which has various voltage lines and MCUs embedded on it. Two of the MCUs embedded on it is what we call the Motor MCUs, which are two STM32s chip whose tasks are to control the brushed motors of the rover.

The brushed motors which the STM32s control are the arm joints (Joints A, B, F, Finger, Gripper), Mast Gimbal (Pitch and Yaw), ISH carousel system, the SA system (Joints 1, 2, 3, Scoop, and Microscope).


System Overview

The two STM32 MCUs are connected via the same I2C line. They are both follower devices and the leader device in the I2C bus is the Raspberry Pi.


Top Level Code

The code is written in C++.

The I2C.cpp file is a wrapper for I2C. The Controller.cpp defines the Controller class which basically represents a motor. The ControllerMap.cpp file basically creates Controller devices based on the config (esw.yaml) file. The ROSHandler.cpp file defines all the functions that are called in response to services and topics.


Appendix

Motor MCU 0 Pinout

Arm Topics

Source is Teleop ESW ICD Sheet Google Sheets image

Arm Services

Source is Teleop ESW ICD Sheet Google Sheets image

Science Topics

image

Science Services

image

Clone this wiki locally