Script 15-10-2019

Dependencies:   Servoaansturing mbed QEI HIDScope biquadFilter MODSERIAL FastPWM

Committer:
Rosalie
Date:
Fri Oct 11 06:55:29 2019 +0000
Revision:
5:9f1260408ef2
Parent:
4:6742476fadcf
Child:
6:64146e16e10c
project delen

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RobertoO 0:67c50348f842 1 #include "mbed.h"
Rosalie 3:6ee0b20c23b0 2 #include "HIDScope.h"
Rosalie 3:6ee0b20c23b0 3 #include "QEI.h"
RobertoO 1:b862262a9d14 4 #include "MODSERIAL.h"
Rosalie 3:6ee0b20c23b0 5 #include "BiQuad.h"
Rosalie 3:6ee0b20c23b0 6 #include "FastPWM.h"
WiesjeRoskamp 2:aee655d11b6d 7 #include <math.h>
Rosalie 5:9f1260408ef2 8 #include "Servo.h"
RobertoO 0:67c50348f842 9
Rosalie 3:6ee0b20c23b0 10 //definieer objecten
WiesjeRoskamp 2:aee655d11b6d 11 Serial pc(USBTX, USBRX);
Rosalie 3:6ee0b20c23b0 12
Rosalie 5:9f1260408ef2 13 //Servo myservo(D8);
Rosalie 5:9f1260408ef2 14
Rosalie 3:6ee0b20c23b0 15 Ticker myControllerTicker1;
Rosalie 3:6ee0b20c23b0 16 Ticker myControllerTicker2;
Rosalie 3:6ee0b20c23b0 17
Rosalie 4:6742476fadcf 18 AnalogIn potMeter1(A1);
Rosalie 4:6742476fadcf 19 AnalogIn potMeter2(A0);
Rosalie 3:6ee0b20c23b0 20
Rosalie 4:6742476fadcf 21 PwmOut motor1(D6);
Rosalie 4:6742476fadcf 22 PwmOut motor2(D5);
Rosalie 3:6ee0b20c23b0 23
Rosalie 4:6742476fadcf 24 DigitalOut motor1_dir(D7);
Rosalie 4:6742476fadcf 25 DigitalOut motor2_dir(D4);
Rosalie 3:6ee0b20c23b0 26
Rosalie 5:9f1260408ef2 27
Rosalie 4:6742476fadcf 28 InterruptIn button1(D1);
Rosalie 4:6742476fadcf 29 InterruptIn button2(D2);
WiesjeRoskamp 2:aee655d11b6d 30
Rosalie 3:6ee0b20c23b0 31 //richting wisselen van motor 1
Rosalie 3:6ee0b20c23b0 32 void direction1(void)
Rosalie 3:6ee0b20c23b0 33 {
Rosalie 3:6ee0b20c23b0 34 motor1_dir=!motor1_dir;
Rosalie 3:6ee0b20c23b0 35 }
Rosalie 3:6ee0b20c23b0 36
Rosalie 3:6ee0b20c23b0 37 //richting wisselen van motor 2
Rosalie 3:6ee0b20c23b0 38 void direction2(void)
Rosalie 3:6ee0b20c23b0 39 {
Rosalie 3:6ee0b20c23b0 40 motor2_dir=!motor2_dir;
Rosalie 3:6ee0b20c23b0 41 }
Rosalie 3:6ee0b20c23b0 42
Rosalie 3:6ee0b20c23b0 43
Rosalie 3:6ee0b20c23b0 44 //snelheid motor 1 aansturen
Rosalie 3:6ee0b20c23b0 45 void motor1Controller( )
WiesjeRoskamp 2:aee655d11b6d 46 {
Rosalie 3:6ee0b20c23b0 47 // Determine reference (desired) fan speed
Rosalie 3:6ee0b20c23b0 48 double y1_des = potMeter1.read();
Rosalie 3:6ee0b20c23b0 49 // Controller (calculate motor torque/pwm)
Rosalie 3:6ee0b20c23b0 50 if( y1_des > 1 ) y1_des = 1; // y1_des must be <= 1
Rosalie 3:6ee0b20c23b0 51 if( y1_des < 0 ) y1_des = 0; // y1_des must be >= 0
Rosalie 3:6ee0b20c23b0 52 double power1 = pow(y1_des, 2.0); // Inverse relation between input and output
Rosalie 3:6ee0b20c23b0 53 // Send to motor
Rosalie 3:6ee0b20c23b0 54 motor1.write( power1 );
Rosalie 3:6ee0b20c23b0 55 pc.printf("power1: %.2f\t",power1);
Rosalie 3:6ee0b20c23b0 56 }
Rosalie 3:6ee0b20c23b0 57
Rosalie 3:6ee0b20c23b0 58 //snelheid motor 2 aansturen
Rosalie 3:6ee0b20c23b0 59 void motor2Controller( )
Rosalie 3:6ee0b20c23b0 60 {
Rosalie 3:6ee0b20c23b0 61 // Determine reference (desired) fan speed
Rosalie 3:6ee0b20c23b0 62 double y2_des = potMeter2.read();
Rosalie 3:6ee0b20c23b0 63 // Controller (calculate motor torque/pwm)
Rosalie 3:6ee0b20c23b0 64 if( y2_des > 1 ) y2_des = 1; // y2_des must be <= 1
Rosalie 3:6ee0b20c23b0 65 if( y2_des < 0 ) y2_des = 0; // y2_des must be >= 0
Rosalie 3:6ee0b20c23b0 66 double power2 = pow(y2_des, 2.0); // Inverse relation between input and output
Rosalie 3:6ee0b20c23b0 67 // Send to motor
Rosalie 3:6ee0b20c23b0 68 motor2.write( power2 );
Rosalie 3:6ee0b20c23b0 69 pc.printf("power2: %.2f\n\r",power2);
Rosalie 3:6ee0b20c23b0 70 }
Rosalie 3:6ee0b20c23b0 71
Rosalie 3:6ee0b20c23b0 72
Rosalie 3:6ee0b20c23b0 73 int main()
Rosalie 3:6ee0b20c23b0 74 {
Rosalie 5:9f1260408ef2 75 // for(float p=0; p<1.0; p += 0.1)
Rosalie 5:9f1260408ef2 76 // {
Rosalie 5:9f1260408ef2 77 // myservo == p;
Rosalie 5:9f1260408ef2 78 // wait(0.2);
Rosalie 5:9f1260408ef2 79 // }
Rosalie 3:6ee0b20c23b0 80 myControllerTicker1.attach(motor1Controller, 0.1 ); // Every 1/10 second
Rosalie 3:6ee0b20c23b0 81 myControllerTicker2.attach(motor2Controller, 0.1 ); // Every 1/10 second
Rosalie 3:6ee0b20c23b0 82
Rosalie 3:6ee0b20c23b0 83 button1.mode(PullUp);
Rosalie 3:6ee0b20c23b0 84 button1.rise(direction1);
Rosalie 3:6ee0b20c23b0 85 button2.mode(PullUp);
Rosalie 3:6ee0b20c23b0 86 button2.rise(direction2);
Rosalie 3:6ee0b20c23b0 87
Rosalie 3:6ee0b20c23b0 88
Rosalie 3:6ee0b20c23b0 89 while( true ) { /* do nothing */ }
Rosalie 3:6ee0b20c23b0 90 return 0;
WiesjeRoskamp 2:aee655d11b6d 91 }
WiesjeRoskamp 2:aee655d11b6d 92
WiesjeRoskamp 2:aee655d11b6d 93
WiesjeRoskamp 2:aee655d11b6d 94
RobertoO 0:67c50348f842 95