servo visual

Dependencies:   MAX7219 mbed

Realizamos mediante comunicacion serial, ingresando el comando para los servomotores:

COMANDO MOVER MOTOR

POS 1POS 2POS 3POS 4POS 5
<#M,#°G>
  1. M -> indica el motor que se va a mover (00,01,02)
  2. °G -> indica los grados a mover del servomotor <,> -> inicio, separdor y fin de comando el inicio de comando no se almacena en el buffer

si el comando no tiene correctamente ingresado los simbolos ',' y '>', nos dara un error.

comando para el paso a paso:

COMANDO MOVER PASO A PASO

POS 1POS 2POS 3POS 4POS 5
<#MDIR#PASOS>
  1. M -> indica el motor que se va a mover ( 03)
  2. PASOS -> indica los pasos a mover del motor paso a paso DIR -> indica la direccion en la que girara el motor (00-derecha, 01- izquierda) < > ->inicio, separdor y fin de comando

el inicio de comando no se almacena en el buffer.

En la visualizacion de la matriz se observara el numero del motor que se esta moviendo y su direccion indicada con una flecha

<- hacia la izquierda cuando el angulo de los servos sea mayor que 90, y el sentido del paso a paso sea este. ^ hacia arriba cuando el angulo de los servos sea 90 -> hacia la derecha cuando el angulo de los servos sea menor que 90, y el sentido del paso a paso sea este.

1- servomotor uno (00) 2-servomotor dos (01) 3-servomotor tres (02) 4- paso a paso (03)

vision.h

Committer:
Paxtel
Date:
2017-04-27
Revision:
1:908a41a33553

File content as of revision 1:908a41a33553:





DigitalOut _A0(PA_9); // pines motor paso a paso
DigitalOut _A1(PC_7);
DigitalOut _A2(PB_6);
DigitalOut _A3(PA_7 );


PwmOut mipwm(PA_0); // pin servomotor1
PwmOut mipwm2(PA_1);// pin servomotor2
PwmOut mipwm3(PB_0);// pin servomotor3

Serial command(USBTX, USBRX); // definicion serial

Max7219 pantalla(PB_15, PB_14, PB_13, PB_12); //pines matriz


DigitalOut led(LED1); // pin led1




void stepper(uint8_t num_steps, uint8_t direction); // funcion que define el numero de pasos
void clockwise() ; // funcion para giro en sentido horario

void anticlockwise();  // funcion para giro en sentido antihorario
void Print_pantalla_tabla(unsigned char *pValor); //funcion imprimir imagen en la matriz

unsigned char clear[]= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; // limpiar matriz
unsigned char m1up[]= {0x00,0x04,0x06,0x27,0xf7,0x06,0x04,0x00};  //secuencia 1
unsigned char m1left[]= {0x04,0x0e,0x1f,0x00,0x00,0x20,0xf0,0x00};  //secuencia 2
unsigned char m1right[]= {0x00,0x20,0xf0,0x00,0x00,0x1f,0x0e,0x04};  //secuencia 3
unsigned char m2up[]= {0x00,0x04,0x06,0xf7,0x07,0xf6,0x04,0x00};  //secuencia 4
unsigned char m2left[]= {0x04,0x0e,0x1f,0x00,0xf0,0x00,0xf0,0x00};  //secuencia 5
unsigned char m2right[]= {0x00,0xf0,0x00,0xf0,0x00,0x1f,0x0e,0x04};  //secuencia 6
unsigned char m3up[]= {0x00,0x04,0xf6,0x07,0xf7,0x06,0xf4,0x00};  //secuencia 7
unsigned char m3left[]= {0x04,0x0e,0x1f,0xf0,0x00,0xf0,0x00,0xf0};  //secuencia 8
unsigned char m3right[]= {0xf0,0x00,0xf0,0x00,0xf0,0x1f,0x0e,0x04};  //secuencia 9
unsigned char m4up[]= {0x00,0x04,0x06,0x77,0x47,0xf6,0x04,0x00};  //secuencia 10
unsigned char m4left[]= {0x04,0x0e,0x1f,0x00,0x70,0x40,0xf0,0x00};  //secuencia 11
unsigned char m4right[]= {0x00,0x70,0x40,0xf0,0x00,0x1f,0x0e,0x04};  //secuencia 12