Mateusz Kociołek / Mbed 2 deprecated Motor_PWM_problem

Dependencies:   mbed Motordriver

main.cpp

Committer:
kociol1994
Date:
2019-03-02
Revision:
1:00bee38b3f75
Parent:
0:d080961d29a3

File content as of revision 1:00bee38b3f75:

#include "mbed.h"
#include "motordriver.h"
#include "Map.hpp"


    
    
    /*
    
    Problem jest w tym że trzeba zamienić dane z potencjometru na wartosci -1 do 1
    Trzeba zmapować zmienną w taki sposób żeby w zakresie 0 do 0.5 przyjmowała wartości od -1 do 0
    a w zakresie 0.5 do 1 wartości od 0 do 1.
    W arduino wyglądało to następująco:
        Y = map(wartosc_Y, 0,  0.5, -1,  0);
        Y = map(wartosc_Y, 0,5,  1,  0,  1);
    Tutaj niestety trzeba bardziej kombinować. Znalazłem biblioteke Map.hpp ale nie wiem jak ona działa :-|
    Trzeba albo ją rozkminić albo znaleźć inny sposób.
    
    Bez sterownika też można to robić bo wewnętrzny kompilator sprawdza wszystko. 
    Jeśli komuś się uda to niech da znać to sprawdze to na Nucleo.
    
    
    */
    
float X0, X1, X;
float Y0, Y1, Y;    
    

Motor A(D6, D4, D7, 1); // pwm, fwd, rev, can brake 
Motor B(D5, D2, D3, 1); // pwm, fwd, rev, can brake

AnalogIn joy_X(A0);
AnalogIn joy_Y(A1);

Serial pc(SERIAL_TX, SERIAL_RX);


int main() {
        while(1){
        
        X0 = joy_X.read();
        Y0 = joy_Y.read();
        
        Map(0,  0.5, -1,  0);
        Map(0.5,  1,  0,  1);
        X  = X1;
        
        Map(0,  0.5, -1,  0);
        Map(0.5,  1,  0,  1);
        Y  = Y1;
    
        printf("Pomiar: ");
        printf("measure X = %.0f ", X);
        printf("measure Y = %.0f \r\n", Y);
        wait_ms(50);    
    
    
    if(X0==1) {
        A.speed(Y0); 
        B.speed(Y0); 
    }else{
    
    A.stop(1);
    B.stop(1);
    }
    /*
    wait(1);
    A.coast();
    B.coast();
    */
    
    }
}