Andrew Hellrigel / Mbed 2 deprecated SwerveDriveRobot

Dependencies:   DriveMotor mbed SteerMotor SwerveDrive SwerveModule

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?

UserRevisionLine numberNew 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 }