ODrive用ライブラリ

Dependents:   ODriveTest

Revision:
0:c191cf9bf1a3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ODriveLibTest.h	Fri Sep 13 05:05:14 2019 +0000
@@ -0,0 +1,50 @@
+
+#ifndef ODriveLibTest_h
+#define ODriveLibTest_h
+
+#include "mbed.h"
+#include "string"
+
+//using std::string;
+
+class ODriveLibTest {
+public:
+    enum AxisState_t {
+        AXIS_STATE_UNDEFINED = 0,           //<! will fall through to idle
+        AXIS_STATE_IDLE = 1,                //<! disable PWM and do nothing
+        AXIS_STATE_STARTUP_SEQUENCE = 2, //<! the actual sequence is defined by the config.startup_... flags
+        AXIS_STATE_FULL_CALIBRATION_SEQUENCE = 3,   //<! run all calibration procedures, then idle
+        AXIS_STATE_MOTOR_CALIBRATION = 4,   //<! run motor calibration
+        AXIS_STATE_SENSORLESS_CONTROL = 5,  //<! run sensorless control
+        AXIS_STATE_ENCODER_INDEX_SEARCH = 6, //<! run encoder index search
+        AXIS_STATE_ENCODER_OFFSET_CALIBRATION = 7, //<! run encoder offset calibration
+        AXIS_STATE_CLOSED_LOOP_CONTROL = 8  //<! run closed loop control
+    };
+
+    ODriveLibTest(Stream& serial);
+
+    // Commands
+    void SetLimit(int motor_number, float vel_limit, float current_lim);
+    void ODriveInit(int motor_number);
+    //void SetPosition(int motor_number, float position);
+    //void SetPosition(int motor_number, float position, float velocity_feedforward);
+    void SetPosition(int motor_number, float position, float velocity_feedforward = 0.0f, float current_feedforward = 0.0f);
+    void SetVelocity(int motor_number, float velocity);
+    void SetVelocity(int motor_number, float velocity, float current_feedforward);
+    void SetCurrent(int motor_number, float current);
+    void TrapezoidalMove(int motor_number, float position);
+    // Getters
+    float GetVelocity(int motor_number);
+    // General params
+    float readFloat();
+    int32_t readInt();
+
+    // State helper
+    bool run_state(int axis, int requested_state, bool wait);
+private:
+    string readString();
+
+    Stream& serial_;
+};
+
+#endif //ODriveArduino_h
\ No newline at end of file