Six crescent shaped legs

Dependencies:   mbed

Committer:
sim642
Date:
Tue Apr 26 12:22:05 2016 +0000
Revision:
25:a8bb69e99d6b
Parent:
24:fb1827be6f7e
Child:
26:c865244ca3cf
Tune rotation to work for new motor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
phairero 0:0b7259fdb68a 1 #include "mbed.h"
sim642 3:2235787e78c4 2 #include "EncoderMotor.hpp"
sim642 19:f21eb090a830 3 #include "SyncGroup.hpp"
phairero 0:0b7259fdb68a 4
phairero 0:0b7259fdb68a 5 InterruptIn bt(USER_BUTTON);
sim642 2:cf0147952fb9 6 Serial pc(USBTX, USBRX);
sim642 2:cf0147952fb9 7
sim642 23:d844cc906b66 8 //PIDData speedPIDData = {0.3f, 2.0f, 0.02f};
sim642 23:d844cc906b66 9 //PIDData turnPIDData = {5.0f, 0.1f, 0.04f};
sim642 23:d844cc906b66 10 PIDData speedPIDData = {0.5f, 0.0f, 0.0f};
sim642 25:a8bb69e99d6b 11 PIDData turnPIDData = {30.0f, 0.01f, 1.f};
sim642 19:f21eb090a830 12 SyncGroup sync;
sim642 19:f21eb090a830 13
sim642 23:d844cc906b66 14 MotorData mData = {PB_0, PC_0, PC_1};
sim642 22:bfc79c6ea2fd 15 //EncoderData encData = {PA_0, PA_1, 100 * 64};
sim642 23:d844cc906b66 16 EncoderData encData = {PA_0, PA_1, 102.083 * 64}; // https://www.pololu.com/product/2826
sim642 13:dc5f5f19e4e8 17
sim642 25:a8bb69e99d6b 18 EncoderMotor m(mData, encData, speedPIDData, turnPIDData, &sync);
sim642 23:d844cc906b66 19
sim642 23:d844cc906b66 20 //SpeedEncoder s(encData);
sim642 8:c3af2a1c206c 21
sim642 4:4d54794b99a5 22 //PIDController ec(0.2, 0.1, 0.01);
sim642 13:dc5f5f19e4e8 23 // PIDController ec(0.3, 2.0, 0.02);
sim642 4:4d54794b99a5 24 //PIDController ec(0.75, 2.0, 0.015);
sim642 5:7f800f61cb13 25 //PIDController ec(0.8, 1.5, 0.017);
sim642 13:dc5f5f19e4e8 26 // PIDController ecRot(5.0, 0.1, 0.04);
sim642 13:dc5f5f19e4e8 27 //EncoderMotor m(mData, encData, ec, ecRot);
sim642 4:4d54794b99a5 28 //Motor m(PB_0, PC_1, PC_0);
phairero 0:0b7259fdb68a 29
sim642 2:cf0147952fb9 30 void rise()
sim642 2:cf0147952fb9 31 {
sim642 24:fb1827be6f7e 32 //pc.printf("rise\n");
sim642 3:2235787e78c4 33 m.drive(0);
sim642 2:cf0147952fb9 34 }
phairero 0:0b7259fdb68a 35
sim642 2:cf0147952fb9 36 void fall()
sim642 2:cf0147952fb9 37 {
sim642 24:fb1827be6f7e 38 //pc.printf("fall\n");
sim642 22:bfc79c6ea2fd 39 m.drive(0.25);
sim642 2:cf0147952fb9 40 }
phairero 1:8b0322a353f4 41
sim642 2:cf0147952fb9 42 int main()
sim642 3:2235787e78c4 43 {
sim642 3:2235787e78c4 44 bt.rise(&rise);
sim642 3:2235787e78c4 45 bt.fall(&fall);
sim642 3:2235787e78c4 46
sim642 19:f21eb090a830 47 m.setup();
sim642 5:7f800f61cb13 48
sim642 25:a8bb69e99d6b 49 float rot, speed;
sim642 25:a8bb69e99d6b 50 //m.rotate(1.f, 0.5);
sim642 25:a8bb69e99d6b 51
sim642 25:a8bb69e99d6b 52 //sync.update(NULL, 0.5);
sim642 25:a8bb69e99d6b 53
sim642 2:cf0147952fb9 54 while(1)
sim642 2:cf0147952fb9 55 {
sim642 22:bfc79c6ea2fd 56 //scanf("%f", &turn);
sim642 23:d844cc906b66 57 //m.rotate(turn, 0.2);
sim642 25:a8bb69e99d6b 58 scanf("%f %f", &rot, &speed);
sim642 25:a8bb69e99d6b 59 m.rotate(rot, speed);
sim642 23:d844cc906b66 60 //m.drive(speed);
sim642 23:d844cc906b66 61 //printf("%f %f\n", s.getTurnSpeed(), m.getSetSpeed());
sim642 23:d844cc906b66 62 //printf("%f %f\n", m.s, m.getSetSpeed());
sim642 22:bfc79c6ea2fd 63
sim642 25:a8bb69e99d6b 64 printf("%ld %f %f\n", m.getEncoder().getCount(), m.getEncoder().getTurn(), m.getSetTurn());
sim642 23:d844cc906b66 65 //printf("%f %f\n", m.getEncoder().getTurn(), m.getSetTurn());
sim642 23:d844cc906b66 66 wait(1.f / 60);
phairero 0:0b7259fdb68a 67 }
sim642 2:cf0147952fb9 68 }