Andres Castañeda / Mbed 2 deprecated Entrega

Dependencies:   mbed

You are viewing an older revision! See the latest version

cuadrupedo2018

Table of Contents

    Aquí encontrarás todo lo correspondiente al proyecto de embebidos de 7 semestre- Ingeniería Mecatrónica/media/uploads/andrescas/whatsapp_image_2018-10-08_at_8.47.35_pm.jpg

    TARJETA DE CONTROL

    Para la segunda entrega de la materia embebidos se busca realizar el movimiento de un cuadrúpedo el cual tendrá forma de araña, el dispositivo de control sera la tarjeta STM32F446. La programación esta hecha mediante el lenguaje C++ el cual es ampliamente utilizado en proyectos de sistemas embebidos debido a su gran versatilidad y compatibilidad con estos sistemas.

    /media/uploads/andrescas/-ndice.jpg

    ENTORNO DE PROGRAMACION

    El entorno de programación utilizado para el proyecto es Mbed, es una plataforma y sistemaoperativo para dispositivos conectados a Internet basados ​​en microcontroladores ARM Cortex-Mde 32 bits. Dichos dispositivos también se conocen como dispositivos de Internet de las Cosas. El proyecto es desarrollado colaborativamente por Arm y sus socios tecnológicos.

    /media/uploads/andrescas/images.png

    ACTUADORES

    El conjunto de actudores utilizado para este proyecto son los servomotores SG90 los cuales Servo2

    poseen un troque de 1.8 Kg/cm. Esto representa un baja inversión y es mas que suficiente para realizar el movimiento de las 8 articulaciones del cuadrúpedo.

    Aquí podrás encontrar su Datasheet con sus características y conexiones : http://akizukidenshi.com/download/ds/towerpro/SG90.pdf

    /media/uploads/andrescas/tower-pro-sg90-micro-servo-9g.jpg

    SENSOR

    En este apartado encontramos el sensor de color TCS3200 con el cual detectaremos distintos colores mediante una conversión de frecuencias las cuales nos darán unos rangos adecuados para cada color detectado y con esto haremos distintos movimiento programados anteriormente en el código. Aquí podrás encontrar su Datasheet con sus características y conexiones : https://www.mouser.com/catalog/specsheets/TCS3200-E11.pdf

    /media/uploads/andrescas/gy-31-tcs230-tcs3200-color-sensor.png

    equipado con un modulo joystick con el cual se controlara el avance y retroceso de la araña. este funciona mediante una señal analoga segun la pocision en la que se este direccionando la palanca, esta señal en la tarjeta de control se vuelve digital y de este modo se define un proceso. en el siguiente link se encuentran sus caracteristicas y especificaciones: http://www.energiazero.org/arduino_sensori/joystick_module.pdf

    /media/uploads/andrescas/joystick-dos-2-ejes-x-y-arduino-pic-20599-mlm20192330379_112014-o.jpg

    CODIGO

    En esta parte del programa se encuntran las declaraciones de los pines de entrada y salida, aqui se encuentran los pines usados para el funcionamiento de los servomotores, entradas analogas para el funcionamiento del Joyestick y el sensor de color.

    include the mbed library with this snippet

    #include "mbed.h"
    Serial pc(USBTX, USBRX);    // leer comnunicacion serial
    Serial pcBT(D8, D2);        // tx, rx
    AnalogIn analog_value(A0);  // definimos puerto para leer analogamente el joystick
    PwmOut myServo1(PC_7);      // definir puertos de los servos
    PwmOut myServo2(PB_4);
    PwmOut myServo3(PB_5);
    PwmOut myServo4(PB_8);
    PwmOut myServo5(PA_6);
    PwmOut myServo6(PB_9);
    PwmOut myServo7(PA_8);
    PwmOut myServo8(PA_7);
    DigitalOut led(LED1,0);     //led indicador de interrupcion
    DigitalOut S0(PA_13);       //definimos los puertos del sensor
    DigitalOut S1(PA_14);
    DigitalOut S2(PA_15);
    DigitalOut S3(PC_8);
    DigitalIn  leer(PC_9);      // puerto donde leemos la frecuencia que envia el sensor
    Timer tiempo;               // timer para uso del sensor
    Timeout timeout;            //creamos el objeto timeout
    unsigned int lectura();     //respuesta de lectura de sensor
    unsigned int inicio=0, final=0, resultado=0, rojo=0,verde=0,azul=0;// variables que se usan en los procesos
    float meas_r;               //variables del joystick
    float meas_v;
    void moving();
    void grupomover();
    void mover_ser(uint8_t nmotor, uint8_t pos);
    void timer_interrupt();
    void read_command();        // definimos los 4 numeros hexadecimales enviados
    void read_commandbt();      // definimos los 4 numeros hexadecimales enviados
    void adelante();
    void atras();
    void init_servo();
    char init_c;
    int read_cc;
    uint32_t grados;
    uint32_t nmotor;
    int endc;
    

    All wikipages