Getting started
This page: structure of this subsystem and where to find what........................................................................................................................................................
components/arm_board folder contains 3 libraries:
- firmware
- movement
- simulink
Firmware contains the generated CubeMX code. You do not need to touch this after generating.
NOTE: do make sure that after generating your code in CubeMX, you run the post generation script. You can set a post generation script in CubeMX itself. However, if you use Windows you may need to run the bash script manually. This script can be found in scripts/post_code_generation.bash.
Simulink contains code generated by control subteam. You also do not need to touch this, since it is not code that is ran on embedded side. It is a helpful reference for the output data that control will be giving your system.
Specifically, in control.h, struct ExtY gives the external outputs. These will be transferred across the robot using protobufs. So for us, this struct contains the inputs for the motors on the robotic arm.
Movement is currently the only "real" library that is written by hand. It contains the source code for controlling stepper motors.
See
In src/arm_board there is main.c
This is the code that will be ran when building and uploading using pio. Main should contain some multithreading for running separate tasks.
In ERC-Protobufs/components/arm_board there are the protobuffers for this subsystem
These are used to communicate between software, control and embedded about the motors on the arm.