Carro a control remoto

Integrantes
Kahel Manjarrez
Alejandro Sarmiento

Universidad de San Buenaventura
Image Unavailable
Facultad de Ingeniería

Introducción

Se va emplear diversos conocimientos de micro controladores y de programación de los mismos para construir un carro controlado a distancia por un control remoto, éste podrá desplazarse detectando la orden en el control para luego ejecutarla y como característica relevante que detecta la proximidad de obstáculos y detenerse inmediatamente a una cierta distancia a uno. La disponibilidad de dispositivos cada vez más completos, junto con el desarrollo de nuevas librerías de alto nivel, hacen posible la programación básicamente en lenguaje C de las nuevas funcionalidades


Objetivos

• Diseñar un programa para que el micro controlador sea capaz de detectar las órdenes del control remoto y los obstáculos.
• Construir un carro que permita integrar el circuito con un micro controlador.
• Afianzar los conocimientos adquiridos durante el semestre.
• Obtener conocimientos acerca de cómo hacer un programa que permita al carro detenerse al estar frente a un obstáculo a distancia prudente para sortearlo.


Marco Teórico

Se pretende construir un carro controlado a distancia por un control remoto implementado un microchip programado con un lenguaje de programación que facilite ejecutar las instrucciones deseadas.

  • Lenguaje C.

La programación de PIC en C actualmente se encuentra en auge en Latinoamérica. Ha surgido una creciente demanda de información en castellano sobre como programar PIC en C, para lo cual han salido al mercado una importante cantidad de programas para compilar. El crecimiento ha sido de forma exponencial ya que los costos han presentado una reducción repercutiendo en la variedad de productos al alcance de un conjunto mayor de personas.

  • Sensores de proximidad

Los sensores de proximidad son empleados en múltiples aplicaciones, principalmente en el ámbito de control industrial, control de acceso en fraccionamientos ó estacionamientos, pero también en aplicaciones caseras o en edificios, especialmente en sistemas de ahorro de energía y sistemas de automáticos de seguridad.

Deben responder a una buena velocidad para que el carro no se choque contra el obstáculo y enviar la orden al micro controlador para que se detenga inmediatamente a una distancia prudente.


Materiales

• Baquela o Protoboard (como último recurso)
• PIC 18F4550
• Ruedas locas
• Contro remoto
• Softwares (interfaz virtual)
• Sensor de proximidad
• Quemador de PIC


Etapa de diseño

En esta etapa se planifica la estructura adecuada para soportar el peso de la electrónica sin afectar el desplazamiento, el tamaño del robot, el circuito con el micro chip con el cableado y el sensor de proximidad antes de empezar a construir y no perder tiempo y dinero en diseños obsoletos. Tomando como pauta inicial la mostrada en la siguiente imagen:

imagen_1.jpg?attachauth=ANoY7cpzWlEX6OTJfFdLFgcy3uZPtC23m0sngmSDP944yJMzkAt-7p6rjekfB4x3x65FtrXddOqAWa3IGmjmz_fLxveJk3_bbq3cwL6vlPrBxqXINSAcdlWy7AQXb0g1eHMOj0VDLRCKerKdYi2RaWUm4vDtNsEvufCZ4opeO_-7g-l2PruSZrBulsmj_UYn17orqNtQhedFcMcDfeWpe7nU4gTKcx2sE1JjHVrpe6QjO4rw5sWhckA%3D&attredirects=0

Se desea alcanzar lo representado aquí mediante la programación adecuada del micro controlador y la comunicación del control remoto con éste.

Los mecanismos de desplazamiento van a ser partes importantes a tener en cuenta. Los motores considerados como ideales son los motores de bajo consumo de corriente y los moto-reductores, aunque éstos últimos son más llamativos para realizar la labor.

imagen_2.jpg

La plataforma que servirá de base deberá abarcar todo el circuito electrónico, es decir, el micro controlador y ser suficiente para contener los sensores de proximidad y lo necesario para la comunicación mirco-mando remoto.

Como opcional se ha planeado incluir un diodo LED para indicar visualmente que el carro se ha detenido debido a la proximidad de un obstáculo.


Etapa de construcción

Gracias al pequeño tamaño de los micro controladores, es posible incluirlos abordo de lo que se desea controlar y así reducir la cantidad del cableado de señal y alimentación que habría que disponer para las partes móviles del vehículo, es decir las ruedas.
Se buscó el mejor lugar para los sensores de proximidad para que reconocieran a una distancia prudente el obstáculo y aun haya espacio suficiente para girar sin chocarse con él.

La estructura debe quedar lo más recta posible para darle una buena sustentación, así como como una buena presentación y que todas las ruedas giren perfectamente y no haya alguna que no toque el suelo o se presenten estancamientos.
El material elegido fue el acrílico porque es liviano y resistente considerando el peso.

El carro debe reconocer las instrucciones del mando remoto y para esto la comunicación debe ser perfecta así como el tiempo de respuesta debe ser el indicado y no haya un retardo muy largo.

Una rueda loca será la encargada de direccionar el carro y esta fue elegida por su versatilidad y gran margen de direcciones posibles.

El dispositivo para la comunicación está compuesto por un emisor y un receptor que funcionan por señales.


Programación

Para la programación se tomaron las líneas de código de los proyectos anteriores que sirven para los propósitos abarcados en éste proyecto. Uno que se tomó en consideración fue el de la programación de comunicacional y se tuvo presente el estándar UART y USART por si eran requeridos en algún momento.

Código

include <16F628A.h>

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES XT                       //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES NOMCLR                   //Master Clear pin used for I/O
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

#use delay(clock=4000000)

void main()
{

   while(TRUE)
   {
      if(input(PIN_A0)){ //adelante
        output_high(PIN_B0);
        output_high(PIN_B2);
        output_low(PIN_B1);
        output_low(PIN_B3);
        }
      if(input(PIN_A1)){ //atras
        output_high(PIN_B1);
        output_high(PIN_B3);
        output_low(PIN_B2);
        output_low(PIN_B0); 
        }  
     if(input(PIN_A2)){ //izquierda
        output_high(PIN_B0);
        output_high(PIN_B3);
        output_low(PIN_B1);
        output_low(PIN_B2);
        }
      if(input(PIN_A3)){ //adelante
        output_high(PIN_B1);
        output_high(PIN_B2);
        output_low(PIN_B0);
        output_low(PIN_B3);
        }  
   }

}

Referencias

  1. [http://www.puntoflotante.net/SENSOR1.htm]
  2. [http://www.uhu.es/tomas.mateo/investigacion/0511.pdf]
  3. [http://www.dspace.espol.edu.ec/bitstream/123456789/24402/1/Paper_Guerra-Morocho.pdf]
  4. [http://ics.nxp.com/lpcxpresso/~LPC1769/]
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License