Wilson Guerrero / Mbed 2 deprecated Entrega_Primer_Corte_8_servomotores

Dependencies:   mbed

Fork of intentomatriz by Wilson Guerrero

embebidos sistemas programacion

Entrega primer corte 8 servomotores

El objetivo propuesto para este primer corte era comunicar la tarjeta stm32 con el PC, para poder comunicarnos por UART, y entregarle telecomandosa la tarjeta, en los cuales le entregábamos 5 parámetros:

Ejemplo:

comando inicio | comando tipo | comando numero de servo| comando grados | comando final 0xFF | 0x01 | 0x01 a 0x08 | 0x00 a 0xb4 | 0xFE

Se realizara la correspondiente explicación del funcionamiento del código:

Este proyecto cuenta con tres vectores,

vbuff: vector que recibe la información y la valida. mbuff: matriz para guardar la información después de ser validada vgrados: vector donde se guardan los grados en los cuales se encuentra cada servomotor

las variables

filas y columnas: que son el tope de numero de filas y columnas de las matrices o vectores ms: que es el periodo en mili segundos que para el pwm de cada servomotor

se crea la clase serial poder intercambiar información entre la tarjeta y el PC.

se define la salida de propósito general a cada servomotor

se ingresa el valor de periodo a cada servomotor

sincroniza la velocidad de intercambio de datos entre el PC y la stm32. imprime en coolterm (herramienta que nos permite intercambiar datos entre el PC y la STM por medio del puerto serial), la señal de inicio de comunicación "start".

mientras se diligencia el vector con los datos que se remiten por el puerto serial el vector "vbuff" recibe y valida los datos recibidos, las validaciones que hace son si el telecomando inicia con el comando correcto(ff), el numero de servomotor se encuentra entre 1 a 8 y si los grados se encuentran entre 0 y 180, si no cumple estos parámetros descarta la información de ese motor y remite un mensaje de error.

la matriz que recibe la información es "mbuff" ademas se encarga de almacenar los datos después de que se realizaron las validaciones, con esto aseguramos que le entregamos datos correctos para que el programa pueda trabajar sin inconvenientes.

el vector vgrados, cuenta con 8 casillas, una por cada servomotor, y en las cuales se guardaran los valores de los grados asignados a cada servomotor en pulsos.

una vez se cuenta con esta información procesada, se imprime en la pantalla de Coolterm la matriz "mbuff" para que el usuario pueda confirmar visualmente que los datos que se enviaran a los servomotores son los correctos, se imprimen en formato Hexadecimal.

Se imprime el vector de pulsos asignado para cada servo, este datos se entrega en números decimales con un decimal.

se imprime en decimal el valor de los grados ingresados en decimal.

Como paso final, se le asigna a cada motor el valor de pulsos para que se mueva al angulo correspondiente.


All wikipages