Elkin Rojas / Mbed 2 deprecated BrazoM

Dependencies:   mbed

BrazoRobot 1

Uso de brazo robótico para selección y almacenamiento de cajas de colores por medio de mbed

Integrantes: Morales Mateo, Moreno Bryan, Pérez Camilo, Rojas Elkin

Sistemas Embebidos - Corte 1

Universidad ECCI

INTRODUCCIÓN

En el siguiente documento se describe el ensamblaje y programación inicial del brazo que se utilizará para la clasificación y almacenamiento de las cajas de colores. Dicho robot se moverá por medio de servomotores y a partir del programa generado se podrá controlar por medio de tele-comandos las posiciones del robot en cada una de las celdas y ademas cada uno de los motores individualmente.

ENSAMBLE

El diseño y ensamble del brazo robótico se realizo a partir de uno ya propuesto en diferentes paginas, el PocketSized RobotArm Versión 4. Los planos fueron modificados para utilizar servo motores más robustos, referencia MG 995. Todo el instructivo correspondiente a ensamble, planos de corte y materiales se encuentran en el enlace a continuación:

https://www.instructables.com/id/Pocket-Sized-Robot-Arm-meArm-V04/

/media/uploads/SajoR/2012-01.jpg

PROGRAMACIÓN

Para programar el robot se utilizó una tarjeta nucleo STM-L433RC-P y los comandos correspondientes para el funcionamiento del robot son ingresados a través del programa CoolTerm.

El codigo de programacion se realizó asignando puertos PWM a cada uno de los servomotores, variables de entrada con las cuales se inicializa el programa y la comunicación serial. Se crean funciones en las cuales estan guardados los parametros a ejecutar por el programa el principal dependiendo del valor de entrada.

A continuación los aspectos mas importantes a tener en cuenta en el programa:

Lectura de datos

 
void leer_datos(){
    while(command.getc()!= INITCMD); // Inicio de programa
    TC=command.getc(); // Tipo de movimiento a ejecutar
    PA=command.getc(); // Posición de los actuadores para cada movimiento

Programa principal

int main() {
 
    setup_uart();
    setup_servo();
    //command.printf("inicio de programa");
    while(1){    
        leer_datos();
        switch(TC){
            case 0x01:
                mover_brazo(PA);
                break;
            case 0x02:
                mover_pinza(PA);
                break;
            default: // Movimientos independientes de actuadores
                if(TC<=06)
                mover_servo(TC-2, PA);
                break; 
        }

Los valores de entrada de los telecomandos estan definidos en lenguaje hexadecimal y estos son ingresados a traves de CoolTerm asi:

/media/uploads/SajoR/screenshot_-97-.png

CONCLUSIONES

- Gracias a la comunicación serial podemos hay un intercambio de información con la tarjeta núcleo que permite el control y posicionamiento del robot.

- Gracias al CoolTerm se pueden ejecutar los diferentes movimientos del robot mediante lenguaje Hexadecimal.


All wikipages