kalibratie stappen project EMG

Dependencies:   HIDScope MODSERIAL biquadFilter mbed

Fork of Milestone_sample by Marijke Zondag

Committer:
MarijkeZondag
Date:
Mon Oct 01 11:42:25 2018 +0000
Revision:
6:f4bbb73f3989
Parent:
5:107eb09fb095
Child:
7:f32005d13749
Milestone 1 making 2 motors turn;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vsluiter 0:c8f15874531b 1 #include "mbed.h"
vsluiter 0:c8f15874531b 2 #include "MODSERIAL.h"
vsluiter 0:c8f15874531b 3
MarijkeZondag 6:f4bbb73f3989 4 DigitalOut directionpin1(D4);
MarijkeZondag 6:f4bbb73f3989 5 PwmOut pwmpin1(D5);
MarijkeZondag 6:f4bbb73f3989 6 AnalogIn potmetervalue1(A1);
MarijkeZondag 6:f4bbb73f3989 7 DigitalIn button2(D9); //klopt dit?
MarijkeZondag 6:f4bbb73f3989 8
MarijkeZondag 6:f4bbb73f3989 9 DigitalOut directionpin2(D7);
MarijkeZondag 6:f4bbb73f3989 10 PwmOut pwmpin2(D6);
MarijkeZondag 6:f4bbb73f3989 11 AnalogIn potmetervalue2(A2);
MarijkeZondag 6:f4bbb73f3989 12 DigitalIn button1(D10); //klopt dit?
MarijkeZondag 6:f4bbb73f3989 13
vsluiter 0:c8f15874531b 14 MODSERIAL pc(USBTX, USBRX);
vsluiter 0:c8f15874531b 15
vsluiter 0:c8f15874531b 16 int main()
MarijkeZondag 3:a3ad58758696 17 {
vsluiter 0:c8f15874531b 18 pc.baud(115200);
MarijkeZondag 6:f4bbb73f3989 19 pc.printf("hello\n\r");
MarijkeZondag 6:f4bbb73f3989 20 pwmpin1.period_us(60); //60 microseconds PWM period, 16.7 kHz
MarijkeZondag 6:f4bbb73f3989 21
vsluiter 0:c8f15874531b 22
MarijkeZondag 2:2f4444f1504d 23 while (true)
MarijkeZondag 2:2f4444f1504d 24 {
MarijkeZondag 6:f4bbb73f3989 25
MarijkeZondag 6:f4bbb73f3989 26 float u1 = potmetervalue1;
MarijkeZondag 6:f4bbb73f3989 27 float u2 = potmetervalue2;
MarijkeZondag 6:f4bbb73f3989 28
MarijkeZondag 6:f4bbb73f3989 29 float m1 = ((u1*2.0f)-1.0f);
MarijkeZondag 6:f4bbb73f3989 30 float m2 = ((u2*2.0f)-1.0f);
MarijkeZondag 6:f4bbb73f3989 31
MarijkeZondag 6:f4bbb73f3989 32 // pc.printf("Motor value is %f\n\r",m);
MarijkeZondag 6:f4bbb73f3989 33
MarijkeZondag 6:f4bbb73f3989 34 /*if (m <= -0.005)
MarijkeZondag 6:f4bbb73f3989 35 {
MarijkeZondag 6:f4bbb73f3989 36 directionpin.write(0);
MarijkeZondag 6:f4bbb73f3989 37 pwmpin = fabs(m); //pwm duty cycle can only be positive, floating
MarijkeZondag 6:f4bbb73f3989 38 pwmpin.period_us(60); //60 microseconds PWM period, 16.7 kHz
MarijkeZondag 6:f4bbb73f3989 39 pc.printf("Motor draait naar A\n\r");
MarijkeZondag 6:f4bbb73f3989 40 }
MarijkeZondag 6:f4bbb73f3989 41
MarijkeZondag 6:f4bbb73f3989 42 else if (m >= 0.005)
MarijkeZondag 6:f4bbb73f3989 43 {
MarijkeZondag 6:f4bbb73f3989 44 directionpin.write(1);
MarijkeZondag 6:f4bbb73f3989 45 pwmpin = fabs(m);
MarijkeZondag 6:f4bbb73f3989 46 pwmpin.period_us(60); //60 microseconds PWM period, 16.7 kHz
MarijkeZondag 6:f4bbb73f3989 47 pc.printf("Motor draait naar B\n\r");
MarijkeZondag 6:f4bbb73f3989 48
MarijkeZondag 6:f4bbb73f3989 49 }
MarijkeZondag 6:f4bbb73f3989 50
MarijkeZondag 6:f4bbb73f3989 51 else if (-0.4 < m && m < 0.)
MarijkeZondag 6:f4bbb73f3989 52 {
MarijkeZondag 6:f4bbb73f3989 53 //pwmpin = 0.0;
MarijkeZondag 6:f4bbb73f3989 54 pwmpin.period_us(60); //60 microseconds PWM period, 16.7 kHz
MarijkeZondag 6:f4bbb73f3989 55 pc.printf("Motor zou moeten stoppen.\n\r");
MarijkeZondag 6:f4bbb73f3989 56 }
MarijkeZondag 6:f4bbb73f3989 57
MarijkeZondag 6:f4bbb73f3989 58 Met deze code kunnen we serial communication gebruiken. Als we dit niet nodig hebben en alleen de motor willen aansturen, dan gebruiken we de code hieronder.
MarijkeZondag 6:f4bbb73f3989 59 */
MarijkeZondag 6:f4bbb73f3989 60
MarijkeZondag 6:f4bbb73f3989 61 pwmpin1 = fabs(m1*0.6f)+0.4f; //pwm duty cycle can only be positive, floating, 0.4f is "inefficiënt", dit tellen we erbij op, en keer 0.6 om te corrigeren voor de helling.
MarijkeZondag 6:f4bbb73f3989 62 directionpin1.write(m1>0); //Indien waar, motor draait rechtsom. Indien niet waar, motor draait linksom.
MarijkeZondag 6:f4bbb73f3989 63 wait(0.001f); //zodat de code niet oneindig doorgaat.
MarijkeZondag 6:f4bbb73f3989 64
MarijkeZondag 6:f4bbb73f3989 65 pwmpin2 = fabs(m2*0.6f)+0.4f;
MarijkeZondag 6:f4bbb73f3989 66 directionpin2.write(m2>0);
MarijkeZondag 6:f4bbb73f3989 67 wait(0.001f);
MarijkeZondag 6:f4bbb73f3989 68
vsluiter 0:c8f15874531b 69 }
vsluiter 0:c8f15874531b 70 }
MarijkeZondag 4:fbea05c8fe2b 71