This is the repository containing all the code for One Degree North Robotics's ROV for the 2021 MATE Ranger competition.
controls_pygame
- original pygame version of control GUI. no longer working. deprecated.controls_pyqt
- new PyQt5 version of the control GUI.gui.py
- main GUI script.key_signal.py
- helper script containing key signal class.exit_program.py
- program exit and cleanup
docs
command-list.md
- list of commands that can be sent between the microcontroller and control station.packet-structure.md
- document detailing how packets work and how they are sent in communications.mcu_cli.md
- list of commands formcu_cli.py
mcu-code
mcu-code.ino
- contains all microcontroller-side code.
mcu_lib
mcu.py
- main script containing theMCUInterface
class.command_constants.py
- various constants to import.packets.py
- script containing packet classes representing each type of return packet, as well as generic
mcu_tests
multi-sensor-test/multi-sensor-test.ino
- test ICM20649. outdatedmulti-serial-test/multi-serial-test.ino
- test multiple serial channels, including debug, on M0+-type chipspwm-test/pwm-test.ino
- test one PWM motor.
comms.py
- communication layer interface between a GUI andmcu.py
.main.py
- main script, to be run by the user.mcu_cli.py
- command line tool for manually sending commands tomcu.py
. seedocs/mcu_cli.md
.
- PyQt5 (should also work with PySide2/PySide6/PyQt6)
- PySerial v3.0+ (recommend v3.5b0 honestly)
- Arduino SAMD
- Adafruit's Board Manager URL (
https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
)- Adafruit SAMD
- On Linux, make sure you have
arm-none-eabi-gcc
working
Clone the repo:
git clone https://github.com/One-Degree-North/mate-rnd-oqbot
cd mate-rnd-oqbot
Install dependencies, if needed:
python3.9 -m pip install PyQt5 pyserial
On Linux, allow read/write/execute access on the tty
port that you want to use:
# replace X with the one you're using (usually 0)
sudo chmod a+rwx /dev/ttyUSBX
Run the script:
python3.9 main.py
- System integration diagram
- Technical Paper (soon)
- Team Developers
- Jefferson Zhang (lutet88)
- Ayam Babu (ayambabu23)
- Liam Kelly (fillnye)
- Nitya Arora (arora767287)
- Other team contributors
- Ming Jin Yong
- Emilio Orcullo