Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: DriveMotor mbed SteerMotor SwerveDrive SwerveModule
main.cpp@0:c6a3095b5843, 2022-04-23 (annotated)
- Committer:
- andrewh33
- Date:
- Sat Apr 23 23:55:36 2022 +0000
- Revision:
- 0:c6a3095b5843
- Child:
- 2:69d290bd4b7d
first commit
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| andrewh33 | 0:c6a3095b5843 | 1 | #include "mbed.h" |
| andrewh33 | 0:c6a3095b5843 | 2 | #include "SteerMotor.h" |
| andrewh33 | 0:c6a3095b5843 | 3 | #include "DriveMotor.h" |
| andrewh33 | 0:c6a3095b5843 | 4 | #include "SwerveModule.h" |
| andrewh33 | 0:c6a3095b5843 | 5 | #include "SwerveDrive.h" |
| andrewh33 | 0:c6a3095b5843 | 6 | |
| andrewh33 | 0:c6a3095b5843 | 7 | Timer t; |
| andrewh33 | 0:c6a3095b5843 | 8 | |
| andrewh33 | 0:c6a3095b5843 | 9 | // Steer Motor Pins |
| andrewh33 | 0:c6a3095b5843 | 10 | DigitalOut bl_sdir(p9); |
| andrewh33 | 0:c6a3095b5843 | 11 | DigitalOut bl_step(p10); |
| andrewh33 | 0:c6a3095b5843 | 12 | DigitalOut br_sdir(p11); |
| andrewh33 | 0:c6a3095b5843 | 13 | DigitalOut br_step(p12); |
| andrewh33 | 0:c6a3095b5843 | 14 | DigitalOut fl_sdir(p7); |
| andrewh33 | 0:c6a3095b5843 | 15 | DigitalOut fl_step(p8); |
| andrewh33 | 0:c6a3095b5843 | 16 | DigitalOut fr_sdir(p5); |
| andrewh33 | 0:c6a3095b5843 | 17 | DigitalOut fr_step(p6); |
| andrewh33 | 0:c6a3095b5843 | 18 | |
| andrewh33 | 0:c6a3095b5843 | 19 | // Drive Motor Pins |
| andrewh33 | 0:c6a3095b5843 | 20 | DigitalOut bl_ddir(p20); |
| andrewh33 | 0:c6a3095b5843 | 21 | PwmOut bl_pwm(p21); |
| andrewh33 | 0:c6a3095b5843 | 22 | DigitalOut br_ddir(p19); |
| andrewh33 | 0:c6a3095b5843 | 23 | PwmOut br_pwm(p22); |
| andrewh33 | 0:c6a3095b5843 | 24 | DigitalOut fl_ddir(p18); |
| andrewh33 | 0:c6a3095b5843 | 25 | PwmOut fl_pwm(p23); |
| andrewh33 | 0:c6a3095b5843 | 26 | DigitalOut fr_ddir(p17); |
| andrewh33 | 0:c6a3095b5843 | 27 | PwmOut fr_pwm(p24); |
| andrewh33 | 0:c6a3095b5843 | 28 | |
| andrewh33 | 0:c6a3095b5843 | 29 | // Motors |
| andrewh33 | 0:c6a3095b5843 | 30 | SteerMotor bl_steer(bl_sdir, bl_step); |
| andrewh33 | 0:c6a3095b5843 | 31 | SteerMotor br_steer(br_sdir, br_step); |
| andrewh33 | 0:c6a3095b5843 | 32 | SteerMotor fl_steer(fl_sdir, fl_step); |
| andrewh33 | 0:c6a3095b5843 | 33 | SteerMotor fr_steer(fr_sdir, fr_step); |
| andrewh33 | 0:c6a3095b5843 | 34 | DriveMotor bl_drive(bl_ddir, bl_pwm); |
| andrewh33 | 0:c6a3095b5843 | 35 | DriveMotor br_drive(br_ddir, br_pwm); |
| andrewh33 | 0:c6a3095b5843 | 36 | DriveMotor fl_drive(fl_ddir, fl_pwm); |
| andrewh33 | 0:c6a3095b5843 | 37 | DriveMotor fr_drive(fr_ddir, fr_pwm); |
| andrewh33 | 0:c6a3095b5843 | 38 | |
| andrewh33 | 0:c6a3095b5843 | 39 | // Modules |
| andrewh33 | 0:c6a3095b5843 | 40 | SwerveModule bl_module(&bl_steer, &bl_drive); |
| andrewh33 | 0:c6a3095b5843 | 41 | SwerveModule br_module(&br_steer, &br_drive); |
| andrewh33 | 0:c6a3095b5843 | 42 | SwerveModule fl_module(&fl_steer, &fl_drive); |
| andrewh33 | 0:c6a3095b5843 | 43 | SwerveModule fr_module(&fr_steer, &fr_drive); |
| andrewh33 | 0:c6a3095b5843 | 44 | |
| andrewh33 | 0:c6a3095b5843 | 45 | SwerveDrive swerve(&fl_module, &fr_module, &bl_module, &br_module); |
| andrewh33 | 0:c6a3095b5843 | 46 | |
| andrewh33 | 0:c6a3095b5843 | 47 | DigitalOut myled(LED1); |
| andrewh33 | 0:c6a3095b5843 | 48 | |
| andrewh33 | 0:c6a3095b5843 | 49 | uint32_t curr_time = 0; // In microseconds |
| andrewh33 | 0:c6a3095b5843 | 50 | |
| andrewh33 | 0:c6a3095b5843 | 51 | int main() { |
| andrewh33 | 0:c6a3095b5843 | 52 | t.start(); |
| andrewh33 | 0:c6a3095b5843 | 53 | swerve.begin(); |
| andrewh33 | 0:c6a3095b5843 | 54 | |
| andrewh33 | 0:c6a3095b5843 | 55 | |
| andrewh33 | 0:c6a3095b5843 | 56 | while(1) { |
| andrewh33 | 0:c6a3095b5843 | 57 | curr_time = t.read_us(); |
| andrewh33 | 0:c6a3095b5843 | 58 | swerve.update(curr_time); |
| andrewh33 | 0:c6a3095b5843 | 59 | swerve.drive(0.1f, 0.1f, 0.1f); |
| andrewh33 | 0:c6a3095b5843 | 60 | myled = 1; |
| andrewh33 | 0:c6a3095b5843 | 61 | } |
| andrewh33 | 0:c6a3095b5843 | 62 | } |
