A Clearpath SDSK trapezoidal motion controller

Committer:
williamweatherholtz
Date:
Thu Apr 05 19:12:24 2018 +0000
Revision:
1:491a39c644b1
Parent:
0:913deac5f975
a Clearpath SDSK trapezoidal control implementation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
williamweatherholtz 0:913deac5f975 1 #ifndef SDSK_h
williamweatherholtz 0:913deac5f975 2 #define SDSK_h
williamweatherholtz 0:913deac5f975 3
williamweatherholtz 0:913deac5f975 4 #include <mbed.h>
williamweatherholtz 0:913deac5f975 5
williamweatherholtz 0:913deac5f975 6 class SDSK
williamweatherholtz 0:913deac5f975 7 {
williamweatherholtz 0:913deac5f975 8 public:
williamweatherholtz 1:491a39c644b1 9 SDSK(PinName _pin_step, PinName _pin_dir, uint32_t _steps_per_rev=51200, double _max_acc=360, double _max_vel=180, uint32_t _min_us_step_pulse=4, bool _positive_is_ccw=true);
williamweatherholtz 0:913deac5f975 10
williamweatherholtz 0:913deac5f975 11 void move(double target_angle);
williamweatherholtz 0:913deac5f975 12
williamweatherholtz 0:913deac5f975 13 void reverse();
williamweatherholtz 0:913deac5f975 14 void zero();
williamweatherholtz 0:913deac5f975 15 void set_max_acc(double _max_acc);
williamweatherholtz 0:913deac5f975 16 void set_max_vel(double _max_vel);
williamweatherholtz 0:913deac5f975 17
williamweatherholtz 1:491a39c644b1 18 void take_step();
williamweatherholtz 0:913deac5f975 19
williamweatherholtz 0:913deac5f975 20 private:
williamweatherholtz 0:913deac5f975 21 DigitalOut step;
williamweatherholtz 0:913deac5f975 22 DigitalOut dir;
williamweatherholtz 0:913deac5f975 23 bool positive_is_ccw; // changes to -1 if untrue
williamweatherholtz 0:913deac5f975 24
williamweatherholtz 0:913deac5f975 25 double max_acc;
williamweatherholtz 0:913deac5f975 26 double max_vel;
williamweatherholtz 0:913deac5f975 27
williamweatherholtz 0:913deac5f975 28 uint32_t min_us_step_pulse;
williamweatherholtz 0:913deac5f975 29 double position_angle;
williamweatherholtz 0:913deac5f975 30
williamweatherholtz 0:913deac5f975 31 uint32_t steps_per_rev;
williamweatherholtz 0:913deac5f975 32 double steps_per_angle;
williamweatherholtz 0:913deac5f975 33
williamweatherholtz 1:491a39c644b1 34 Serial pc;
williamweatherholtz 1:491a39c644b1 35
williamweatherholtz 1:491a39c644b1 36 Timer profile_time;
williamweatherholtz 1:491a39c644b1 37
williamweatherholtz 0:913deac5f975 38 };
williamweatherholtz 0:913deac5f975 39 #endif