Electrónica

Brazo robot controlado por voz II

Anteriormente ya había posteado el video de un trabajo de un brazo robot controlado por instrucciones de voz y programadas en lenguaje ensamblador de PIC. En este oportunidad grabé otro video, pero el algoritmo esta vez esta implementado en PIC C, el cual me permite mas fácilmente trabajar con enteros de 16 bits, los cuales me ayudan a diferenciar los diferentes rangos de las instrucciones de voz.

El circuito de este proyecto consiste simplemente en 1 microcontrolador, 1 microfono, y 1 pantalla lcd de 2×16, esta ultima solo es util para el momento de entrenar la voz, ya que es ahí donde se muestra la intensidad de sonido y la longitud de cada instrucción de voz.

httpv://www.youtube.com/watch?v=0zhj25Yz99g

Si les interesa el diagrama del circuito me escriben para postearlo.

Saludos.

La era de la BIOS llega a su fin, UEFI es lo nuevo

El BIOS (Basic Input/Output System) hace ya unos cuantos años que se viene encargando del proceso de arranque de nuestras computadoras, pero parece que se acerca la hora de su jubilación. 11 de las mayores empresas informáticas del mundo, con Intel a la cabeza, se han unido para desarrollar UEFI (Unified Extensible Firmware Interface) el cual promete encender nuestras computadoras instantáneamente.

Seguir leyendo …

Brazo robot controlado por voz

Este es un proyecto en el que vengo trabajando hace 3 meses, más o menos. El proyecto consiste en que mediante un micrófono, el kit de brazo robótico OWI-535, responda a instrucciones pre-definidas en el programa almacenado en un microcontrolador pic.

Este proyecto tiene parte electrónica en la cual no ahondaré mucho ya que no es mi área, solo diré que toda la voz es procesada por el pic y luego la señal de activación de la orden va como entrada a un l293B, el cual permite amplificar el amperaje para hacer que se mueva el brazo robot. Para la parte del algoritmo tampoco es muy complicado, solo que estoy haciendo un informe bien preparado para que así pueda ser entendido el algoritmo.

Esta es en realidad la segunda prueba del proyecto en el cual le agregue una instrucción mas de voz “arriba” , “para” y “salúdame”. Como pueden ver, para mi algoritmo le es más difícil diferenciar el “arriba” del “para”, ya que hay una orden mas agregada al programa, la cual hace que mezcle a veces los valores de los rangos de cada orden.

Para ser implementado con los registros de propósito general de 8 bits del 16f877A, ya es suficiente con 3 instrucciones de voz. Espero actualizar el algoritmo de procesamiento de voz, pero ya implementarlo en PIC C.

PD: Ahora esta implementado en asm de pic

Auto R/C + Voz + LPT

Bueno gente, por ahora ando queriendo mejorar el proyecto del brazo robot. Esta vez tendrá más funcionalidades, por lo que nos dividimos el trabajo con un compañero de la universidad y pues en el transcurso de mi semana de vacaciones que debió ser en realidad un mes (echémosle la culpa a intro*) ando buscando que cosas ponerle. En esa búsqueda denuevo volví con el bendito ADC0804 y mi fiel amigo el puerto paralelo u_U. Lo que hice esta vez es hacer que el auto a control remoto avance con una orden de voz que yo le doy por el micrófono electret, bueno, el procesamiento de la voz está hecha -como diría will- de una manera muy cutre, pues solo metí los bits leidos desde el puerto paralelo en una lista enlazada y luego comparé los rangos de cada nodo de la lista enlazada además del tamaño de la lista. Grabé un videíto pa’ que se den una idea de lo que hice, cuando mejore el algoritmo del procesamiento de voz, postearé como lo hice paso por paso, aunque a decir verdad usé cosas que ya posteado con anterioridad, como ese post de encender un led por voz. En realidad es lo mismo, solo que ahora proceso esa voz con mi algoritmo cutre =P.

*intro = Introducción a la arquitectura de computadoras

Controlando Auto R/C por el puerto paralelo – detalles

Bueno, como para darle el dinamismo perdido en el blog, voy a postear lo que me pidieron que explique en un par de comentarios sobre el auto r/c y su control por el puerto paralelo. Como puse en esos comentarios, no es nada del otro mundo, es mas, es sencillísimo, y como dicen que una imagen vale más que mil palabras pondré fotos y los pasos a seguir para hacer lo mismo con cualquier auto a r/c.

Pasos:

Desarmar el control remoto del auto y examinar la placa impresa.

Figura 1

Primero, las rayitas azules indican que desde la otra vista de la foto, es el mismo componente (interruptor), los puntos verdes son las partes del circuito que están abiertas y esperan ser cerradas por el interruptor, osea se cerraran cuando se presión las partes sombreadas del componente de color plomo al que señala la flecha roja.

Figura 2

Ahora, pueden ver el interruptor del otro lado y guiándonos de la vista anterior, nos podemos dar cuenta que por todo el interruptor señalado (porque hay otro en la parte superior derecha), está pasando la corriente correspondiente a V-, eso lo podemos comprobar rápidamente con un voltímetro, ya que se ponemos el terminal positivo al V+ y el otro al interruptor cerrado vamos a ver cómo nos marca bien el voltaje de la batería por la cual está siendo alimentado el control.

Luego, sabemos que el V- es un 0 lógico, por lo que si queremos que el carro avance sin presionar cerrar el interruptor, pues solo debemos mandar un 0 lógico desde la pc, en este caso por el puerto paralelo. Entonces si usamos el registro 0×378 y suponiendo que enviamos el dato por el pin 2, el código para que el carro avance seria 11111110, ya que el pin 2 vendría a ser el 0, la cual es la señal necesaria para que el auto avance; esto en hexadecimal se vería así: 0xFE.

Finalmente, el puerto paralelo entrega algo de 3.3 V y nosotros necesitamos el voltaje de la batería del control remoto, por lo que simplemente yo usé un L293B para amplificar la señal, la salida del las cada una de las 4 salidas del L293B serán asignadas a los interruptores, osea uno para cada instrucción AVANZAR, RETROCEDER, IZQUIERDA y DERECHA. Aquí solo pondré una foto de cómo sería para el código de AVANZAR osea 0xFE por el pin 2 del conector db25 del lpt.

Figura 3

El cable azul: CONTROL AUTO, es el mismo cable azul que sale del punto verde del circuito de la Figura 1 y bueno el código del programa en java esta en el post original en http://ifxperu.com/2010/01/jugando-con-mi-auto-rc/

Son la 01:02 de la mañana y creo eso es todo por ahora, espero postear más seguido, lo que pasa es que me da pereza escribir =P.

Saludos.

Prendiendo un led con un sonido

Esto que hice fue un pequeño experimento que hice para ver si podía convertir la entrada analógica de un sonido a una salida digital con el adc0804. La primera parte consiste en polarizar el micrófono electret, lo cual se puede conseguir con el siguiente circuito que encontré en Electronica Facil.

polarizacion microfono electret

En donde la salida output va a ser la entrada analógica Vin+ al adc0804. Si ponemos el terminal positivo de un voltímetro al output del micrófono electret, podremos ver como mientras vamos haciendo ruidos mas fuertes, va aumentando el voltaje en el multitester, esto varia en mili voltios para lo cual tenemos que regular el voltaje de referencia del adc. Yo lo regulé a un tamaño de paso igual a 20 mV, lo que me daba un voltaje de referencia de 5.1 voltios y por lo tanto un Vref/2 de 2.55 voltios.

Ahora, el resto del circuito es el mismo para sensar cualquier magnitud física que pueda variar en su tensión, tal como ya lo había hecho en otro post con el lm35, ahora pondré el diagrama circuital para que vean como armarlo:

diagrama circuital - mic

Por ahora solo estoy poniendo leds en las salidas del adc, pero si lo que quieren es mantener prendido un led, solo agréguenle un flip-flop D (74ls74) a alguno de los bits de las salidas del adc, lo cual podrían hacerlo de dos formas, la que hice yo fue la de conectar la entrada D y la entrada CLK del FF D al un mismo bit del adc, esto hará que cuando pase de 1 a 0 por el ruido pase lo mismo en el CLK y el Q’ pueda encenderse. La parte del circuito encerrado con rojo puede ser reemplazado por cualquier tipo de sensor, así como había hecho con el lm35.

Ahora pondré un video de como funciona el circuito de la segunda figura

Y este que es ya usando el flip-flop.

Jugando con mi auto R/C

Desde chibolo siempre me han gustado los autos a control remoto, sin embargo, nunca tuve uno. En la navidad pasada, se me dio por comprarme uno simple en radioshack y me salió un poco mas de 50 soles con baterías y todo.

Estuvimos jugando con el carrito toda la noche buena yo y mi primo de 12 años xD. Al día siguiente, ya me había aburrido un poco, así que se me dio por desarmar el control remoto para ver el circuito =P. Y pues –como no se mucho de electrónica- entendí solo el 10% del circuito, lo cual fue suficiente para poder darme cuenta que el auto se movía con la presión de 2 pares de interruptores.

P1050290

Seguir leyendo …

Queriendo hacer un brazo robótico (II)

Yo no soy alguien muy entendido con la electrónica; sin embargo, me llama mucho la atención, y es por eso que anteriormente ya había posteado algo sobre los motores paso a paso y como echarlos a andar con java y c++.

Pues ahora pondré un video de la aplicación para la que usé estos motores. En realidad el principio de funcionamiento no es muy difícil, solo lo de los motores y claro ponerle un par de resortes en donde se requiera. Obvio que para hacer algo mas complejo, aun necesitaría saber algunas cosas mas sobre mecánica y mucho mas sobre engranajes, para así lograr los movimientos exactos y no necesitar tanta potencia por parte de la fuente para mover los motores. Lo que si me costo trabajo fue armar en si el brazo y darme cuenta que los motores no iban a poder mover por si solos las articulaciones, lo que solucione –como ya dije antes- con un conjunto de resortes y la aplicación precisa de voltaje a los motores para dar un buen torque.

El brazo se mueve desde la PC, en un programa hecho en java, el cual controla independientemente cada motor mediante un hilo cada uno.

Sin mas que decir, aquí les dejo un video:

PD: El material que usé es acrílico, el cual se me ocorruió al ver una foto de esta web: http://blog.bricogeek.com/noticias/robotica/brazo-robot-casero-de-5-ejes-y-motores-paso-a-paso/