" ...Un robot creado para beneficio de todos."

Home Acerca de Nosotros Tutoriales Proyectos Eventos Contacto

Biological Robot with Artificial Intelligence Not Programmed

Hola a todos!!!, les traigo el mas reciente proyecto de SOS-Robots BRAINP; Se puede decir que BRAINP es la fusión de el BEAM 001 (Bumpers) y BEAM 002 (Sigue Luz).

Cuando empecé de verdad en la robótica como tal fue con esos dos BEAM, Por ejemplo BEAM 002 n era así el solo caminaba hacia adelante, pero se me ocurrió que podía hacerlo mejor si ponía dos circuitos en vez de uno, y ahí fue donde hice mi primera modificación, de ahí trate de modificar los robots, la verdad es que como no tenia muchos cocimientos muchas modificaciones fueros fallidas, y siempre hubo una que quise hacer y no sabia como.

Fusionar mis dos primeras creaciones jejeje, la verdad es que hace mucho encontré alguien que lo había hecho, usando transistores, pero por aquella época los transistores eran mi frustración, nunca me funcionaban bien jajaja, y luego cuando aprendí lo suficiente nunca volví a encontrar el circuito que el uso, así que hace algunos meses me llego la idea de hacerlo, yo ya sabia programar y sabia lo sencillos que era usando pics, pero yo siempre quise hacerlo analógicamente pero no sabia como.

El problema radica en que los dos circuitos hacen cosas opuestas totalmente mientras el circuito de bumpers huye de las cosas que lo activan, el de luz va hacia las cosas que lo activan.

LDR IZQ. LDR DER. ROBOT
0 0 Nada
0 1 Derecha
1 0 Izquierda
1 1 Adelante

BUMPER IZQ. BUMPER DER. ROBOT
0 0 Adelante
0 1 Izquierda
1 0 Derecha
1 1 Atras

* "1" significa activado

Me fui a dormir con esto en mi cabeza y  mientras "Dormía" llego a mi un circuito usaba completas lógicas y era muy sencillo, pero la pregunta era funcionaria??, brinque de la cama y agarre papel y lápiz y a diseñar.

Eran las 3 de la maña y estaba haciendo tablas de la verdad para una red de compuertas, finalmente funcionaba según mis tablas. Pero nunca lo construí, tiempo después hace como un mes conseguí un software simulador de circuitos, y dije bueno para probarlo usemos mi diseño haber que, lamentablemente no funcionaba, y yo QUE!!! Luego me di cuenta que cometí un error en la tabla de l verdad de las compuertas AND, 0 y 0 No es 1 es "0"!!!!!!

Entonces estaba muy decepcionado, pero dije ahorque puedo simularlo lo Hare funcionar, me di cuenta que había una compuerta que funcionaba justo como necesitaba en lugar de la AND  una XNOR, así que el circuito estaba otra vez funcional!!, pero luego llega otro tropiezo, en mi tienda de electrónica no tienen ninguna XNOR, es mas ni siquiera XOR, entonces que puedo hacer???, pues  recuerdan que dije en los tutoriales que todas las compuertas se pueden hacer con ANDs y ORs??, pues eso hice cree la compuerta XNOR con 5 NANDs y listo tengo el circuito "BRAIN" originalmente BRAIN no significaba nada mas que cerebro escrito en mayúsculas, pero luego decidí ponerle un acrónimo llamativo jjejeje.

OK Mucha historia ya, así que adelante con el circuito:

CIRCUITO BRAIN:



Su funcionamiento es sencillo, tiene 4 entradas de los sensores, 2 Bumpers y 2 LDR, Tiene 2 Salidas Para los motores, (mas adelante veremos como se conectan los 2 motores a esas 2 salidas)

OK Ahora Como funciona?? Bien primero lo dividiré en dos partes  DETECTOR y COMPARADOR, analicemos las tablas de la verdad de cada uno.

DETECTOR:

En esta parte están los sensores

Primero analicemos que queremos que haga el robot:

El Robot Tiene 4 Movimientos

Adelante
Atrás
Izquierda
Derecha

Y tiene 4 Sensores que deben hacer eso 4 movimientos.

Si El Bumper Derecho es presionado avanzar a la Izquierda.
Si El
Bumper Izquierdo es Presionado Avanzar a la Derecha.
Si Ambos
Bumpers son presionados Avanzar hacia Atrás.

BUMPER IZQ. BUMPER DER. ROBOT
0 0 Adelante
0 1 Izquierda
1 0 Derecha
1 1 Atras

Si el LDR Derecho es activado Avanzar hacia la Derecha
Si el LDR Izquierdo es activado Avanzar hacia la Izquierda.
Si Ambos LDR son activados Avanzar hacia Adelante.

LDR IZQ. LDR DER. ROBOT
0 0 Nada
0 1 Derecha
1 0 Izquierda
1 1 Adelante

Ahora veamos que sensores hacen la misma tarea:

El Bumper Derecho y el LDR Izquierdo.
El Bumper Izquierdo y el LDR Derecho.

Ambos LDR  atrás.
Ambos Bumpers Adelante.

Entonces tenemos que queremos esto:

BUMPER IZQ. LDR IZQ. LDR DER. BUMPER DER. ROBOT
0 0 0 1 Izquierda
0 0 1 0 Derecha
0 1 0 0 Izquierda
1 0 0 0 Derecha
0 1 1 0 Adelante
1 0 0 1 Atras

Genial ahora ya agrupamos los sensores que hacen los mismo, ahora pesemos como programadores en realidad ya lo hicimos arriba al agrupar, solo debemos cambiar las oraciones por compuertas lógicas

Si  Bumper Derecho Ó el LDR Izquierdo se activan.
Es lo mismo:
Bumper Derecho 
OR LDR Izquierdo.

Si LDR Izquierdo 
Y  LDR Derecho se activan
Es lo mismo:
LDR Izquierdo
AND el LDR Derecho

*Como podrán notar las Ó se cambian por OR y para las "Y" se pone AND.

Ahora solo necesitamos dibujar las compuertas y quedaría así::



La tabla de la verdad de este pedazo de circuito seria asi:

BUM IZQ. LDR IZQ. LDR DER. BUM DER. IZQ. ADE ATRAS DER.
0 0 0 0 0 0 0 0
CA SO S SEN SI LL O S
0 0 0 1 1 0 0 0
0 0 1 0 0 0 0 1
0 1 0 0 1 0 0 0
1 0 0 0 0 0 0 1
CA SO S DO B L E S
1 0 0 1 0 0 1 0
0 1 1 0 0 1 0 0
CA SO S IM PO SI BLE S
0 1 0 1 1 0 0 0
1 0 1 0 0 0 0 1
0 0 1 1 1 0 0 1
1 1 0 0 1 0 0 1
0 1 1 1 1 1 0 1
1 1 1 0 1 1 0 1
1 1 0 1 1 0 1 1
1 0 1 1 1 0 1 1
1 1 1 1 1 1 1 1

*Esta tabla se puede llenar simplemente numerando de el 0 al 15 en binario, así se verán todos los posibles casos, pero no quise ponerla en orden, sino dividirla
en los casos fijos y los que no importan en el diseño básico, pero hay que poner atención porque mas adelante si serán importantes ya que esos no deben afectar en correcto funcionamiento
Los Casos IMPOSIBLES se llaman así ya que el robot no puede avanzar a la izquierda y a la derecha al mismo tiempo ni hacia adelante y atrás al  mismo tiempo, ni que se diga a 3 Y menos a las 4 direcciones juntas.

**Muchos de estos casos Imposibles no pueden siquiera suceder ya que recuerden que es imposible que se active atrás ni adelante sin que se activen ambos lados.

Ahora necesitamos un circuito que compare esas cuatro entradas y les diga a los motores que deben hacer.

COMPARADOR:

El trabajo de el comparador es simplemente evitar esos casos imposibles y decir al motor en que dirección girar, yo quise que me diera una salida doble donde 1 quiere decir adelante y 0 atrás, Motor A es el motor #1 y B el #2.

Les seré sincero, el comparador fue la parte que llego a mi en el sueño, así que no recuerdo como lo diseñe jajaja, a veces digo: "Como se me ocurrió usar esas compuertas!!"



Este circuito esta diseñado para por defecto avanzar hacia adelante, luego usando las compuertas compara, analicemos un poco la tabla de la verdad:

Veamos los casos más sencillos

IZQUIERDA ADELANTE ATRAS DERECHA MOTOR A MOTOR B
0 0 0 0 1 1
0 0 0 1 1 0
0 0 1 0 0 0
0 1 0 0 1 1
1 0 0 0 0 1
1 1 1 1 0 0

*Pueden comprobarlo revisando compuerta por compuerta y siguiendo las líneas, no lo hago porque tendría que hacer muchos dibujos, es mejor a mano jaja.

Como pueden ver los casos sencillos funcionan perfecto, por lo que la primera tarea del comparador esta bien, la pregunta ahora es: "Evita que los casos imposibles afecten el funcionamiento normal de el robot??"

Vamos los casos imposibles:

IZQUIERDA ADELANTE ATRAS DERECHA MOTOR A MOTOR B
1 0 0 1 0 0
0 1 1 0 0
0
0 0 1 1 0
0
1 1 0 0 1
1
0 1 1 1 0
0
1 1 1 0 0
0
1 0 1 1 0 0
1 1 0 1 0 0

*Muchos de estos casos no pueden siquiera suceder ya que recuerden que es imposible que se active atrás ni adelante sin que se activen ambos lados.

El resultado es satisfactorio!!! Los casos se neutralizan y no afectan el funcionamiento del robot, ahora como manejamos motores usando un solo cable!!!!!??? Pues con un puente H, ahora usare uno muy sencillo modificado un poco para funcionar con un solo cable.

Veamos:


*Recuerden que VDD es voltaje "+" y VSS es Tierra "-". Ese voltaje de VDD dependerá del voltaje del motor .

Si no aprecian bien, les explicare.

Hay dos relevadores con sus respetivos diodos para evitar la inductancia, y el motor, eso es todo, cada relevador tiene su patita de "+" y "-" que van a dar al común que a su vez va a las patas de el motor, entonces cuando el relé se activa invierte de "+" a "-" en el común y esto cambia el giro de el motor.

Entonces ahora tenemos un puente H que cambia de estado con un solo cable "0" y el motor avaza a un lado; "1" y avanza al otro.

Claro que no podemos conectar directo el relevador a las compuertas lógicas ya que estas no tienen el amperaje para activarlos y esto las quemaría sin duda, entonces usaremos un transistor, o un Darlington array con un tip 120 o un ULN2803.

Así seria:



El circuito final seria este:




AHORA UNOS TRUCOS PARA EL CIRUITO:

NO CONSIGO COMPUERTAS XNOR!!!!:

Bueno como dije se puede fabricar con 5 NAND:



Quedando asi:


Y SI QUIERO QUE EN VEZ DE SEGUIR LA LUZ LA ESQUIVE O SE COMPORTE DISTINTO?:

Puedes jugar con las conexiones, aquí te muestro como:


*Como pueden observar puse 3 Switches SPDT para invertir la conexión entre derecha/izquierda y adelante/atrás.

Moviendo estos swicthes cambiaras el comportamiento del robot.

Esto es todo por ahora, saludos y suerte.