Mateusz Kociołek / Mbed 2 deprecated Motor_PWM_problem

Dependencies:   mbed Motordriver

Committer:
kociol1994
Date:
Sat Mar 02 12:12:08 2019 +0000
Revision:
1:00bee38b3f75
Parent:
0:d080961d29a3
Opisane w main.cpp

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kociol1994 0:d080961d29a3 1 #include "mbed.h"
kociol1994 0:d080961d29a3 2 #include "motordriver.h"
kociol1994 0:d080961d29a3 3 #include "Map.hpp"
kociol1994 0:d080961d29a3 4
kociol1994 0:d080961d29a3 5
kociol1994 1:00bee38b3f75 6
kociol1994 1:00bee38b3f75 7
kociol1994 1:00bee38b3f75 8 /*
kociol1994 0:d080961d29a3 9
kociol1994 1:00bee38b3f75 10 Problem jest w tym że trzeba zamienić dane z potencjometru na wartosci -1 do 1
kociol1994 1:00bee38b3f75 11 Trzeba zmapować zmienną w taki sposób żeby w zakresie 0 do 0.5 przyjmowała wartości od -1 do 0
kociol1994 1:00bee38b3f75 12 a w zakresie 0.5 do 1 wartości od 0 do 1.
kociol1994 1:00bee38b3f75 13 W arduino wyglądało to następująco:
kociol1994 1:00bee38b3f75 14 Y = map(wartosc_Y, 0, 0.5, -1, 0);
kociol1994 1:00bee38b3f75 15 Y = map(wartosc_Y, 0,5, 1, 0, 1);
kociol1994 1:00bee38b3f75 16 Tutaj niestety trzeba bardziej kombinować. Znalazłem biblioteke Map.hpp ale nie wiem jak ona działa :-|
kociol1994 1:00bee38b3f75 17 Trzeba albo ją rozkminić albo znaleźć inny sposób.
kociol1994 1:00bee38b3f75 18
kociol1994 1:00bee38b3f75 19 Bez sterownika też można to robić bo wewnętrzny kompilator sprawdza wszystko.
kociol1994 1:00bee38b3f75 20 Jeśli komuś się uda to niech da znać to sprawdze to na Nucleo.
kociol1994 1:00bee38b3f75 21
kociol1994 1:00bee38b3f75 22
kociol1994 1:00bee38b3f75 23 */
kociol1994 1:00bee38b3f75 24
kociol1994 1:00bee38b3f75 25 float X0, X1, X;
kociol1994 1:00bee38b3f75 26 float Y0, Y1, Y;
kociol1994 0:d080961d29a3 27
kociol1994 0:d080961d29a3 28
kociol1994 0:d080961d29a3 29 Motor A(D6, D4, D7, 1); // pwm, fwd, rev, can brake
kociol1994 0:d080961d29a3 30 Motor B(D5, D2, D3, 1); // pwm, fwd, rev, can brake
kociol1994 0:d080961d29a3 31
kociol1994 0:d080961d29a3 32 AnalogIn joy_X(A0);
kociol1994 0:d080961d29a3 33 AnalogIn joy_Y(A1);
kociol1994 0:d080961d29a3 34
kociol1994 0:d080961d29a3 35 Serial pc(SERIAL_TX, SERIAL_RX);
kociol1994 0:d080961d29a3 36
kociol1994 0:d080961d29a3 37
kociol1994 0:d080961d29a3 38 int main() {
kociol1994 0:d080961d29a3 39 while(1){
kociol1994 0:d080961d29a3 40
kociol1994 0:d080961d29a3 41 X0 = joy_X.read();
kociol1994 0:d080961d29a3 42 Y0 = joy_Y.read();
kociol1994 0:d080961d29a3 43
kociol1994 0:d080961d29a3 44 Map(0, 0.5, -1, 0);
kociol1994 0:d080961d29a3 45 Map(0.5, 1, 0, 1);
kociol1994 0:d080961d29a3 46 X = X1;
kociol1994 0:d080961d29a3 47
kociol1994 0:d080961d29a3 48 Map(0, 0.5, -1, 0);
kociol1994 0:d080961d29a3 49 Map(0.5, 1, 0, 1);
kociol1994 0:d080961d29a3 50 Y = Y1;
kociol1994 0:d080961d29a3 51
kociol1994 0:d080961d29a3 52 printf("Pomiar: ");
kociol1994 0:d080961d29a3 53 printf("measure X = %.0f ", X);
kociol1994 0:d080961d29a3 54 printf("measure Y = %.0f \r\n", Y);
kociol1994 0:d080961d29a3 55 wait_ms(50);
kociol1994 0:d080961d29a3 56
kociol1994 0:d080961d29a3 57
kociol1994 0:d080961d29a3 58 if(X0==1) {
kociol1994 0:d080961d29a3 59 A.speed(Y0);
kociol1994 0:d080961d29a3 60 B.speed(Y0);
kociol1994 0:d080961d29a3 61 }else{
kociol1994 0:d080961d29a3 62
kociol1994 0:d080961d29a3 63 A.stop(1);
kociol1994 0:d080961d29a3 64 B.stop(1);
kociol1994 0:d080961d29a3 65 }
kociol1994 0:d080961d29a3 66 /*
kociol1994 0:d080961d29a3 67 wait(1);
kociol1994 0:d080961d29a3 68 A.coast();
kociol1994 0:d080961d29a3 69 B.coast();
kociol1994 0:d080961d29a3 70 */
kociol1994 0:d080961d29a3 71
kociol1994 0:d080961d29a3 72 }
kociol1994 0:d080961d29a3 73 }