El post que buscas se encuentra eliminado, pero este también te puede interesar

Construir un MicroBot - Pic16f84 |Hecho Por Mi|

Este microbot lo hice para un proyecto para fin de año y es Ideal para los que estan empezando con este tema y especial para los que estan aprendiendo a programar PICs

Construir un MicroBot - Pic16f84 |Hecho Por Mi|

El objetivo del Proyecto es crear un "bicho" que sea totalmente automatizado, es decir, que no debe ser manejado por nosotros, para eso, el comportamiento que debe tener este microbot es el sig:

1 - Avanza.
2 - Al chocar cualquier objeto retrosede aprox. 1 segundo.
3 - Da un giro en el lugar, para cambiar su direccion.
4 - Vuelve al primer paso (Avanza).

Ahora que ya sabemos lo que debe hacer, vamos a dividir el proyecto en TRES partes:

1 - Sensores.
2 - El cerebro del microbot.
3 - Variadores de velocidad y motores.


SENSORES

Los sensores que van a utilizar son MicroSwitch, son pequeños pulsadores que podemos los podemos conseguir en un mouse roto, o comprarlos xq no salen muy caros.

Es algo básico el circuito que vamos a usar ya que no hay mucha ciencia en esto.

electronica

Si se animan pueden armarse unos sensores opticos, en la seccion tutoriales hay un articulo. De esta manera detectaría el las superficies blancas como un objeto.


CEREBRO

Esta es la parte mas linda. y un poco mas complicada asi que presten atencion:

Proyecto

Como es un microbot que vamos a alimentar con cuatro pilas AA (6V) vamos a conectar directamente el sensor al PIC. Yo opte por ponerle un trigger para que la entrada sea un "1" o un "0" y no haya ni ruidos, ni zonas de Incertidumbre.

En la salida del PIC vamos a crear una etapa o interface de potencia con un BC548 para activar los RELES que invierten el giro de los motores (Estos reles son de 5V, vamos a usar dos).

Elegí y me decidí por usar rele ya que con un PUENTE H* hay que hacer muchos calculos y me atrevo a decir que es imposible obtener una eficiencia del 100% en la velocidad del motor.


El encargado de realizar la inversion del giro o activacion de los reles, es un PIC16F84, uno de los que mas se venden y mas se usan (Por lo menos en San Fco ). El programa que realiza todo el trabajo es el sig:


;************************************************
;* Control microbot *
;* 31 de AGO de 2008 *
;* Desarrollo: Quiroga Maximiliano *
;************************************************

LIST P=16F84 , R=HEX
INCLUDE "P16F84.INC"

;-------REGISTROS DE USUARIO---------------------

RA EQU 10H
RB EQU 11H
RC EQU 12H

;************************************************

ORG 0X00
goto inicio

;-------CONFIGURACION PUERTOS--------------------

inicio bsf STATUS,RP0 ; BANCO 1
movlw 00H
movwf TRISB ; Configuracion de todo puerto B como salida
movlw 0FFH
movwf TRISA ; Configuracion de todo el A como entrada
bcf STATUS,RP0 ; Volver a BANCO 0
clrf PORTB ; limpia residuos de Puerto B

;-------DETECCION SENSORES DELANTEROS------------

izq btfss PORTA,0 ; comprueba que RA0 sea 0, sino se dirige a der
btfss PORTA,1 ; Comprueba que RA1 sea 1
goto der
goto retroi

der btfss PORTA,1 ; Comprueba que RA1 sea 0
btfss PORTA,0 ; Comprueba que RA0 sea 1 para ir a retrod, sino se dirige a izde
goto izde
goto retrod

izde btfss PORTA,0 ; Que RA0 sea 0
btfsc PORTA,1 ; Y que RA1 tambien sea 0
goto izq
goto retroi

;-------DETECCION SENSORES TRASEROS--------------

izq_tr btfss PORTA,2 ; Que RA2 sea 1, sino se dirige a der_tr
btfss PORTA,3 ; Que RA3 sea 0, en este caso gira
goto der_tr
bsf PORTB,1
bcf PORTB,0
call retardr
bcf PORTB,1
goto izq

der_tr btfss PORTA,3 ; Que RA3 sea 0
btfss PORTA,2 ; Y RA2 sea 1 para girar, sino se dirige a izde_tr
goto izde_tr
bsf PORTB,0
bcf PORTB,1
call retardr
bcf PORTB,0
goto izq

izde_tr btfss PORTA,2 ; Que RA2 sea 0
btfsc PORTA,3 ; Y que RA3 tambien sea 0
goto unog
bsf PORTB,1
bcf PORTB,0
call retardr
bcf PORTB,1
goto izq

;-------RETROCESO DE MOTORES---------------------

retroi bsf PORTB,0 ; Ponemos a 1 RB0
bsf PORTB,1 ; y RB1
call retarfg ; Llama al retardo
bcf PORTB,0 ; Despues del retardo pone a 0, RB0
call retardr ; Vuelve a llamar al retardo
bcf PORTB,1 ; Y luego pone a 0 RB1
goto izq ; Se dirige a izq

retrod bsf PORTB,0
bsf PORTB,1
call retarfg
bcf PORTB,1
call retardr
bcf PORTB,0
goto izq

;-------RETARDO GRAL-----------------------------

retardg movlw 40
movwf RA
tresg movlw 40
movwf RB
dosg movlw 20
movwf RC
unog decfsz RC
goto izq_tr
decfsz RB
goto dosg
decfsz RA
goto tresg
return

;-------RETARDO DE GIRO--------------------------

retardr movlw 60
movwf RA
tresr movlw 40
movwf RB
dosr movlw 20
movwf RC
unor decfsz RC
goto unor
decfsz RB
goto dosr
decfsz RA
goto tresr
return

end

;-------FIN DE PROGRAMA--------------------------



El programa es muy simple, y esta todo explicado en el codigo asi que no hay mucho que decir.

Lo que hace es esperar que las entradas (Sensores) se active y apartir de eso determinar para donde realizar el giro. Utiliza dos rutinas de retardo:

· retardg

La utiliza para retroceder y es la mas larga de las dos.


· retardr

Esta es la que se usa para realizar el giro, y el periodo es mas corto.


VARIADOR DE VELOCIDAD Y MOTORES

Esta es la utlima etapa y es una parte muy sencilla. Esta etapa no es siempre necesaria (Variador de velocidad), porque a veces los motores no tienen mucha potencia y no hace falta bajarles la velocidad.

Les pongo el esquema de variador:

pic

Como ven es bien chiquito y nada dificil de hacer, lo pueden hacer en una placa de islas.

Los motores que utilizé yo, los saqué de un Radiograbador, al igual que a las ruedas.



MECANICA

Esto se hace a partir de su imaginacion y de los materiales que tengan o puedan conseguir. Yo lo arme de la sig manera:

Obviamente pueden hacerlo a su gusto, con una plataforma mas grande o de madera y no de acrilico, usar ruedas de una autito viejo o bandas elasticas en vez de correas...


Como pueden ver, en mi modelo, usé una base de acrilico de aprox. 4mm, las poleas de las ruedas las saqué de un Radiograbador al igual que a los motores. Para que las ruedas se agarren al piso, tenia una impresora vieja que le saque unas ruedas de goma, que usa para agarrar las hojas. La placa la agarre a la base con unos tornillos de 3mm separadas con Separadores

Para laspilas, usé un portapila para cuatro pilas AA.

Muchas de las cosas, son porquerias que encontré por ahi, que seguramente no hubiera podido encontrar en un negocio. Por eso cada cosa que crean que pueda servir, guardenla.

Creo que no hay mas nada para hablar y hay mucho para hacer!

Les dejo un video que hicimos, esto fue hace año y medio mas o menos, esta el mio (el mas chiquito) y el de unos ex compañeros de secundario (El mas rapido). Que fue hecho con otros circuitos, espero q les guste


link: http://www.videos-star.com/watch.php?video=f8RQSBoueAM

10 comentarios - Construir un MicroBot - Pic16f84 |Hecho Por Mi|

@Alterr333 +1
A la madre carnal, te rifaste. Algo pequeño, pero por algo se empieza. Felicidades y sigue creando cosas asi

te van 10!
@handicap +1
muy bueno!
TE FELICITO +5
@Seba08
si, pero el enjendro de gotita les rompio el culo a todos XD
@Vitaliza -1
FAIL! en programacion, igual tienen onda xD