All the client side code for sensors, valves, IMUs and the rest of the fun stuff.
Download the Arduino IDE.
We use the Teensy 4.0 board in addition to vanilla arduino boards. Setup the environment according to the instructions here.
Copy all of the contents of the libraries
directory into your Arduino IDE libraries directory.
If your Arduino is installed to the default directory you can use the following install scripts to do this.
On linux and mac navigate to the libraries folder and run the following commands:
chmod +x install.sh
./install.sh
On windows, please figure it out. (I'll add a script eventually).
If your Arduino is not installed to the default location, you'll need to find the path by clicking on File -> Preferences
in the Arduino IDE.
Duplicate the Template folder for a new client board.
The template code houses the client side communications protocol for our systems.
Each sensor has its own .h
file which can be included in any version of a client
code. The only requirement is that you provide a function of the form read_data()
that returns a struct with the current time and the sensor reading.
When you submit a pull request, include the average time your function takes in microseconds.
NOTE: This architecture is borrowed from McGill Rocket Team. See here for their documentation.
Do all of your development on a feature branch named along the lines of <your-name>_<sensor-name>
.
Try to commit frequently with descriptive messages. When you're done, push your code to your branch,
submit a pull request into master
and request a review from at least one other person
on the team.