Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
You are viewing an older revision! See the latest version
cuadrupedo2018
Aquí encontrarás todo lo correspondiente al proyecto de embebidos de 7 semestre- Ingeniería
Mecatrónica
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.

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.

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

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

CONTROL ANALOGO¶
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

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. Ademas encontramos las declaraciones de las funciones en las cuales esta dividido el funcinamiento general del programa.
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;