Marcos Aguilar Arana..
ROBOT EXPLORADOR (DIEGOBOT) CON PIC 16F84 Y SENSORES INFRAROJOS
Lunes 29 de Septiembre 2008

Bueno ahora que ya tenemos algo de experiencia con el pic que mejor que construir algo interesante con el, y que mejor que un ROBOT si un juguete hecho por nosotros mismos y con piezas recicladas el que construí para Diego ( DIEGOBOOT) me quedo así:

Aunque la foto no es muy buena se pueden Apreciar las Ruedas, las baterías los circuitos de control en total son 3 ( El circuito del Pic o Etapa de Control, El circuito Potencia para los Motores, y el Circuito para los Emisores de Infrarrojos que serán los ojos del Robot) el circuito de los infrarrojos esta debajo del robot por cuestiones de espacio lo coloque allí.

Ok por donde comenzamos? Podemos comenzar por hacer los circuitos que y de acuerdo al tamaño de estos podremos decidir el ancho de la plataforma del robot como dije anteriormente la electrónica del robot se divide en 3 partes:

.1-EL Circuito de Control que enviara las señales a la etapa de potencia para hacer el control de los motores

Una cosa que podemos apreciar aquí también son los 2 Sensores (los conectados a los hilos verdes) a mi se me hizo muy complicado conseguir estos sensores en las tiendas de electrónica ya que solo habían sensores de 2 patitas, al final luego de varias pruebas los sensores que me quedaron muy bien los conseguí de tarjetas de Vds. players Viejos jajaja esos los compre en una tienda de chatarra electrónica donde desmantelaban DVDS es cosa de que prueben. Otra cosa muy importante también es la batería tenemos que Conseguir una Batería de preferencia recargable y de no mas de 6 voltios ya que si le ponemos de mas podemos quemar nuestro Pic. OJO esta Batería será independiente a la batería del Circuito de Potencia

2.- El circuito de Potencia que recibirá las señales del Pic y las amplificara haciéndolos pasar por el driver l293b ojo es necesario alimentar a este circuito con una batería distinta a la que alimentara al circuito de control por los picos que de corriente que generan los motores al arrancar o al cambiar de giro, es recomendable también agregar unas bobinas toroidales a las salidas del driver antes de conectar los motores esto para eliminar las corrientes parasitas aunque sin ellas también funcionan

El diagrama de Conexion muestra al Chip l293b conectado a los 2 motores que seran las ruedas del Robot, para Conectar el Circuito de Potencia con el Circuito de Control guiarse por los Colores de los cables que estan el el diagrama : )

 

2.- El circuito de los Emisores Infrarojos.Luego hay que hacer el circuito que emitira la luz infraroja la cual a su vez al rebotar contra algun objeto y ser detectado por alguno de los 2 sensores hara cambiar de direccion a nuestro Robot : ) , para alimentar este Circuito Podemos Usar la misma Bateria que alimenta al circuito de Control.

 

 

Este es el Circuito de Control

 

Este es el Circuito de Potencia

El circuito de los Emisores

AHORA en esta Foto esta el Sensor y las Baterias y el cargador de Las baterias

 
El Programa

Este Robot esta Basado en la idea de la pagina de Tjaco's el escribio el Programa Sencillo y muy Eficaz , este programa esta escrito en en asembler para descargarlo podemos copiar el texto siguiente y guardarlo en un Block de notas luego guardarlo con extension ASM asi ( archivo.asm) luego para compilarlo y convertirlo en Hex usaremos el Programa MPASM una herramienta muy Util que nos permite convertir archivos de ASM a Hexadecimal para asi poder grbarlas en nuestro PIC. Si no deseas hacer toda la compilacion bajate este archivo estan el ASM y el HEX........... CLIK AKI

 

;TJACO'S DESIGN GRAVEYARD: WWW.GEOCITIES.COM/TJACODESIGN		;
;22 JULY 2002								;
;CERBERES : MINI ROBOT WITH IR EYES  					;
;USES PIC16F84 µCONTROLLER						;
;WRITTEN IN MICROCHIP ASSEMBLY USE MPASM ASSEMBLER FROM MPLAB		;
;MPLAB CAN BE DOWNLOADED FROM WWW.MICROCHIP.COM				;

;***SET UP THE CONTANTS & VARIABLES****

       LIST            P=16C84
       ERRORLEVEL      -302    ;SUPPRESS BANK SELECTION MESSAGES

STATUS	EQU H'03'		;STATUS REGISTER
TRISB 	EQU H'86'		;TRISB REGISTER FOR SETUP OF PORTB
PORTB 	EQU H'06'		;PORTB REGISTER TO DRIVE PORT B
COUNT1 	EQU H'0C'		;COUNT VARIABLE 1 IS IN GENERAL PURPOSE REG 08H
COUNT2 	EQU H'0D'		;COUNT VARIABLE 2 IS IN GENERAL PURPOSE REG 09H

;***SET UP PORT B IN & OUTPUT****
	BSF 	STATUS,5	;SWITCH TO BANK0 TO SET UP PORT B
	MOVLW 	B'11110000'	;RB7,6,5,4 IS INPUT
	MOVWF 	TRISB		;RB3,2,1,0 IS OUTPUT
	BCF 	STATUS,5	;SWITCH BACK TO BANK0 TO USE PORT B

;***MAIN PROGRAM****
START	MOVLW 	B'00000101'	;MAKE RB0&2 HIGH: MOVE FORWARD
	MOVWF 	PORTB		;
	MOVLW 	H'FE'		;RESET COUNT1 TO 254
	MOVWF 	COUNT1		;	
	MOVLW 	H'FE'		;RESET COUNT2 TO 254
	MOVWF 	COUNT2		;
	BTFSS 	PORTB,5		;CHECK RB5 (INPUT); IF IT IS LOW
	CALL 	BACKL		;THEN EXECUTE BACKLEFT ROUTINE
	BTFSS 	PORTB,6		;CHECK RB6 (INPUT); IF IT IS LOW
	CALL 	BACKR		;EXECUTE BACKRIGHT ROUTINE
	GOTO 	START		;RETURN TO LABEL START

;***BACKLEFT ROUTINE****
BACKL	MOVLW 	B'00001010'	;MAKE RB1&3 HIGH: MOVE BACKWARD
	MOVWF 	PORTB		;
	CALL 	DELAY		;
	MOVLW 	B'00001001'	;MAKE RB2&3 HIGH: ROTATE LEFT
	MOVWF 	PORTB		;
	CALL 	DELAY		;
	RETURN
;***BACKRIGHT ROUTINE****
BACKR	MOVLW 	B'00001010'	;MAKE RB1&3 HIGH: MOVE BACKWARD
	MOVWF 	PORTB		;
	CALL 	DELAY		;
	MOVLW 	B'00000110'	;MAKE RB2&3 HIGH: ROTATE RIGHT
	MOVWF 	PORTB		;
	CALL 	DELAY		;
	RETURN

DELAY	MOVLW 	H'EE'		;RESET ALL COUNTER VARIABLES
	MOVWF 	COUNT1		
	MOVLW 	H'99'	
	MOVWF 	COUNT2

LOOP1	CLRWDT			;RESET THE WATCHDOG TIMER
	DECFSZ 	COUNT1,1	;this is a delay loop    
	GOTO 	LOOP1		;tuned to make Cerberes 
	DECFSZ	COUNT2,1	;turn about 90 degrees
	GOTO	LOOP1	
	RETURN

	END;

 Desde aqui le Mando un saludo a mi amiga Pamelita de Argentina que esta trabajando en su propio Robot Mucha suerte Pamelita espero que todo te salga bien : )

  DEJA AQUI TUS COMENTARIOS

DEJA AQUI TUS COMENTARIOS

 



Los Visitantes Escribieron :

hola Sat, 27 Jun 2009 01:09:45 GMT +0

hola el archivo asm no ingresa

amigo Fri, 26 Jun 2009 22:10:32 GMT +0

sube mas fotos

daniel Fri, 26 Jun 2009 22:00:08 GMT +0

el video no se ve muy bien sube otro

simple php dgboot Page - 1

 

kazuki_22@hotmail.com