Robot luchador de sumo "Billy"

muy lindo..

Yo en mis timepos de secundaria tambien arme mi sumo con un 16f84 un inversor para la marcha de los motores a mosfetfet dos sensores infrarojos caseros para detecion del ring y un sensor ultrasonico para la deteccion del enemigo, motores dc con controlados por pwm para el torque.

utilizaba 4 puertos para los inverters en los motores y 3 para los sensores..
 
interesante pero estaria bueno si podes subir los esquemas y el codigo de los programas.
a mi me interesa saber como hace para detectar y perseguir al enemigo.
o sea cuando encuentra al enemigo, como sabe que es otro robot o es un obstaculo comun? y despues como hace para perseguirlo? que sensores uso para esto y como.

me interesa para modificar este carrito:

https://www.forosdeelectronica.com/f19/carrito-control-remoto-42229/

slds
 
Simplemente los sensores GP que lleva en la parte frontal (encima de la rampa) envian un 1 al pic si detectan cualquier obstaculo a 23 cm del mismo, funcionan por IR, al detectar algo el pic recibe un 1 (estado alto) en la entrada y dependiendo de donde este situado hace girar los motores derecho o izquierdo, y si detecta por los dos sensores continua de frente o despaldas.

Esta formado por un pic 16f876, 8 sensores 4 GP2D15 y 4 CNY70, los cny detectan la diferencia de color B/N y al ser el ring negro con el borde blanco evita el salirse del mismo. un lm298 entre el pic y los motores que controla 2 motores dc con reductor incorporado. No diferencia un robot de un obstáculo pero habiendo un robot que suele ser bastante mas grande que un obstáculo atacara al robot antes por campo visual. Ademas de sus diodos cristales d cuarzo.... que te voy a contar jeje.

Por cierto muy bueno tu carrito me ha impresionado responde perfectamente alas ordenes enviadas por el mando, me interesaria mucho saber la estructura de la Radio frecuencia, además de un pic conectado a un codificador y una antena emisora y luego una antena receptora un descodificador y otro pic que elementos básicos necesita un buen control por RF?

Espero haber aclarado tus dudas.

interesante pero estaria bueno si podes subir los esquemas y el codigo de los programas.
a mi me interesa saber como hace para detectar y perseguir al enemigo.
o sea cuando encuentra al enemigo, como sabe que es otro robot o es un obstaculo comun? y despues como hace para perseguirlo? que sensores uso para esto y como.

me interesa para modificar este carrito:

https://www.forosdeelectronica.com/f19/carrito-control-remoto-42229/

slds
 
Simplemente los sensores GP que lleva en la parte frontal (encima de la rampa) envian un 1 al pic si detectan cualquier obstaculo a 23 cm del mismo, funcionan por IR, al detectar algo el pic recibe un 1 (estado alto) en la entrada y dependiendo de donde este situado hace girar los motores derecho o izquierdo, y si detecta por los dos sensores continua de frente o despaldas.

Esta formado por un pic 16f876, 8 sensores 4 GP2D15 y 4 CNY70, los cny detectan la diferencia de color B/N y al ser el ring negro con el borde blanco evita el salirse del mismo. un lm298 entre el pic y los motores que controla 2 motores dc con reductor incorporado. No diferencia un robot de un obstáculo pero habiendo un robot que suele ser bastante mas grande que un obstáculo atacara al robot antes por campo visual. Ademas de sus diodos cristales d cuarzo.... que te voy a contar jeje.

Por cierto muy bueno tu carrito me ha impresionado responde perfectamente alas ordenes enviadas por el mando, me interesaria mucho saber la estructura de la Radio frecuencia, además de un pic conectado a un codificador y una antena emisora y luego una antena receptora un descodificador y otro pic que elementos básicos necesita un buen control por RF?

Espero haber aclarado tus dudas.

Lo voy a tener en cuenta, gracias por la explicacion. creo que voy a tener que invertir un poquito para los 8 sensores jeje!!

en cuanto al carrito mio, yo no lo hice con microcontroladores, use codificadores y decodificadores ht pero tranquilamente se puede usar un micro y asi tener mas bits de salida, con los ht se tienen 4 bits. en el hilo al final hay ejemplos de como usar un 16f628, tambien podria ser cualquier otro pic.

Para la radiofrecuencia utilizo unos modulos rf que funcionan por modulacion ask. La modulación ASK es similar a la modulación AM de la radio comercial de la banda de AM. En la modulación ASK un 0 lógico se representa con la ausencia de la señal portadora y un 1 lógico con la presencia de señal. Los módulos de radio tienen la capacidad de transmitir a una velocidad de 9600 bits por segundo y de recibir a una velocidad de 4800 bits por segundo pero eso puede variar de un modulo a otro.


este es un ejemplo hecho por Juan Ricardo Clavijo Mendoza

transmisor:

LAIPAC-emisor.gif


receptor:

LAIPAC-receptor.gif


Este es el código fuente en C de los micros TX y RX. El compilador utilizado es el CCS PICC de Hi-Tech, pero puede ser emigrado a cualquier otro compilador que trabaje en C:

#include <pic.h>

void TxSerial( char d_ ) // Función para transmitir un dato de forma serial
{
TXREG = d_;
while( !TRMT );
}

void InicioSerial( void ) // Función d inicio de la USART
{
TRISB1 = 1;
TRISB2 = 0;
TXSTA = 0x24;
RCSTA = 0x90;
BRGH = 1; // Configuración de la USART a 2400 bits por segundo
SPBRG = 103;
}

void main( void ) // Funcion principal
{
char DATO;
INTCON = 0; // Configuración de las interrupciones
TRISB = 0xFF; // Se configuran los pines de los leds como salidas
RBPU = 0; // Se activan las resistencias PULL-UP
InicioSerial(); // Función d inicio de la USART
while(1)
{
DATO = (~PORTB>>4)&15; // Se guarda en la variable DATO el valor de los 4 pulsadores
TxSerial( 170 ); // Se transmite una bandera de inicio con la secuencia de bits: 10101010
TxSerial( DATO ); // Se transmite el dato de manera redundante. 8 veces
TxSerial( DATO );
TxSerial( DATO );
TxSerial( DATO );
TxSerial( DATO );
TxSerial( DATO );
TxSerial( DATO );
TxSerial( DATO );
}
}

__CONFIG( 0x3F09 );

receptor:
#include <pic.h>

// Declaración de variables de trabajo
char n=0;
char Trama[4]={1,2,3,4};
char DATO;

void InicioSerial( void )// Función para la configuración de la USART.
{
TRISB1 = 1;
TRISB2 = 0;
TXSTA = 0x24;
RCSTA = 0x90;
BRGH = 1;
SPBRG = 103;
}

void interrupt VET( void ) // Vector de interrupciones.
{
if( RCIF ) //Interrupción serial
{
DATO = RCREG; //Lectura del buffer de entrada serial
switch( DATO ) // Se evalúa el dato que llega
{
case 170: for( n=0; n<4; n++ )Trama[n]=n; n=0; break; // bandera de entrada.
// Se guardan los datos de entrada en el búfer de la trama.
default : Trama[n++]=DATO;
// Se evalua cuanda a llega el cuarto byte de la trama.
if( n==4 )
{
// Se comparan los datos 1,2,3 del bufer de la trama
if( Trama[1]==Trama[2] )

if( Trama[2]==Trama[3] )//y verifica que sean iguales.
{
// cuando el dato es correcto se muestra por
// el puerto b en los LEDs
PORTB = Trama[1]*16;
for( n=0; n<8; n++ )Trama[n]=n;
}
n=4;
}
}
RCIF=0;
}
}

void main( void ) // Funcion principal.
{
INTCON = 0; // Se apagan todas las interrupciones.
PEIE=1; // Se activan las interrupciones periféricas.
RCIE=1; RCIF=0; // Se activan las interrupciones por recepción serial.
GIE = 1; // Se activan las interrupciones de forma general.
TRISB = 0x0F; // Se configuran los pines b como entrada y salida.
PORTB = 0; // Se apagan los pines del puerto b
InicioSerial(); // Se inicializa la USART.
while(1); // bucle infinito para la espera de interrupciones.
}


__CONFIG( 0x3F09 );
 
Última edición:
Atrás
Arriba