viernes, 27 de febrero de 2015

Aislando la potencia del control ISO7420 de Texas Instruments

Hola buen dia!
En esta ocasion te traigo una pequeña entrada sobre como utilice los aisladores digitales  ISO7420 de Texas Instruments y sus ventajas frente a utilizar optoacopladores....

Uno de los problemas mas graves durante el desarrollo de mi StellarisBot, fue hacerle frente a los ruidos eléctricos provocados por los servomotores del brazo robotico, en especial cuando este sujetaba objetos duros, sucedia que en ese momento el ADC se volvia loco y las lecturas de los sensores analogicos junto a el, lo cual provocaba un funcionamiento erroneo del robot.

Para solucionar este problema, una  forma es utilizar algun tipo de aislamiento galvanico, en mi caso preferi utilizar aisladores digitales en concreto ISO7420 de Texas Instruments.

El diagrama es sencillo, cuenta con terminales para la alimentación de control (1.8V, 2.2V, 3.3V, 5V) y cuatro canales para servomotores A, B, C, D, en la salida cuenta con su bornera para la fuente de potencia (una fuente independiente del sistema de control)



El circuito requiere de dos fuentes de alimentacion distintas, que al final ese es el objetivo, de esta manera se minimiza la interferencia de ruidos eléctricos.





Hasta la proxima....

domingo, 19 de octubre de 2014

Algoritmos de la Escuela: "El Origen..."



Algoritmo de la Amistad (Sheldon Cooper)



¿Recuerdas esas clases de algoritmos?, Si, esas cuando apenas empezabas en el mundo de la programación, mmm bueno, antes de empezar a programar claro..., Los instructores dejaban como tareas resolver pequeños problemitas, casi siempre de calculo simple, pero que en esos dias, te parecia un reto imposible de solucionar, quien no recuerda, esos ejercicios de "Realice un algoritmo que encuentre los numeros pares, o impares,  o primos, abundantes, deficientes, sumar dos numeros, etc, etc,... Que nostalgia... Bueno la serie "Algoritmos de la Escuela" en cada episodio mostrara uno de esos algoritmos que nos hicieron en sus dias, desvelarnos, sin embargo los presentara de forma muy muy didactica, ¿Por que?, bueno porque asi se aprende de una forma mas concreta ¿No?...
Las serie no sera corrida, es decir, puede ser que hoy publique un episodio de la serie, mañana publique cosas como programación en tiempo real de micro-controladores, como hacer un hola mundo en un PLC Allen Bradley o cualquier cosa, se que me entiendes.... Esta entrada va a actualizarse cada vez que agregue un nuevo episodio, en forma de lista, en esta misma entrada van a estar los links para cada episodio, por lo cual te recomiendo (si estas interesado en la saga) que agregues esta entrada a tus favoritos de manera que te sea mas facil encontrarla...

Bueno sin mas, termino estas lineas, si tienes alguna sugerencia comenta, que sera muy apreciado!!


Sitios de Interes







sábado, 31 de agosto de 2013

Hablemos de hardware libre... Hazlo todo muy facil usando Arduino

Cierto día allí por principios del mes de Julio sali de vacaciones de mi trabajo, eran tres semanas las cuales debía aprovechar... Pero ¿Que podría hacer?.

Desde pequeño me fascinaba la idea los micro-controladores PIC de microchip, mi padre desde antes de conocer a mi madre siempre fue aficionado a la electronica, y en casa nunca falto una revista del titulo "Saber Electronica", desde la primera edición allá por los 80, hasta las versiones mas nuevas a todo color, en las cuales los proyectos dejaron de ser sencillos  circuitos (complejos en algunos casos por la cantidad de componentes) construidos con componentes discretos a ser maravillas controladas por PIC's.

Que debia hacer,... Bueno, intente conseguir algunos pics, y los consegui buscando en tarjetas electronicas en la chatarra que tenia por alli,... Use algunos dias para leer toda la documentacion que se me cruzaba en el camino ,... Llegue a un obstaculo, no tenia forma de programarlo, ni ganas de hacer un programador....

En mi segunda semana de vacaciones pude tener en mis manos una plataforma que esta muy de moda,... "Arduino", me la presto uno de los catedraticos en la universidad. Pues bien, con ella en mis manos comence a leer documentacion por la playground...

Para los que trabajamos en la automatizacion industrial esta plataforma parece de "juguete", sin embargo utilizando la imaginacion pueden lograrse cosas increibles.

La primera cosa que se me ocurrio hacer con Arduino fue un muy muy sencillo pero funcional vehiculo capaz de evaluar el terreno, elegir la mejor ruta (basada en los parametros) y bueno si se encuentra un obstaculo en su camino esquivarlo....

Empezando, le nombre Wall-E a la tortrix, un sencillo roboduino divertido de hacer


El cerebro utilizado es un Arduino Uno Revision 3

Una plataforma que nos sirve un microcontrolador Atmega328P-PU un prcesador de 8 bits en formato DIP (algo muy ventajoso para este tipo de proyectos, ya que permite su facil reemplazo en caso de dañarlo), dandonos un facil acceso a sus puertos de comunicacion a través de headers hembra, muy utilies para prototipado.

La dificultad mas grande para construir mi pequeño roboduino, era la construccion del chasis, bueno, tambien consegui uno muy completo con sus motores, cajas reductoras, ruedas, rueda loca... etc....

A por cierto, como bien sabemos un pequeño microcontrolador no esta diseñado para manejar potencias, por esta razon intentar mover los motores directamente con arduino haria que este de dañara,... Permanentemente... Para el control de forma comoda de los motores utilice un puente H basado en el circuito integrado L298N, este artilugio me permite controlar no solo el sentido de giro de los motores, tambien puedo controlar la velocidad de rotacion utilizando las salidas PWM del arduino, de esta manera se tiene un control completo del roboduino.

En todo proyecto que se desea sea autonomo, por decir que va a moverse solito por alli sin necesidad de que estemos sobre el, o que dependa de cables, se necesita de una buena fuente de alimentacion, pues bien las pilas son lo mas aconsejable.
Utilice dos packs de pilas de niquel cadmio de 1300 mAh, uno de 7.2V y otro de 3.6V conectados en serie y con un punto en comun, la razon de hacerlo asi es porque para alimentar la placa del arduino necesitamos de un minimo de 7 voltios (si la alimentamos con menos no funciona bien, ya que se torna en exceso inestable) y para los motores 7.2 + 3.6 = 10.8v bueno, la razon de proporcionar un alto voltaje me viene por el torque que deseo en las ruedas, ya que la velocidad de avance del roboduino es reducida, para darle tiempo de reaccionar sin problemas ante los obstáculos del camino. Cabe destacar que como seguridad el pack de pilas tiene un fusible rearmable, por aquello que se desconecte un cable y haga de las suyas provocando cortocircuito, es sabido que las pilas de alto ratio de descarga son altamente peligrosas en este aspecto y pueden fácilmente provocar accidentes.... Ahora bien, para que el microcontrolador pueda percibir el mundo exterior necesita algo muy importante,... Si, necesita sensores.


Sensores:

Como sensor principal utilice un practico HC-SR04 este sensor emite una onda ultrasonica cuando enviamos una señal por el pin trigger, luego su pin echo permanecera activo el tiempo que la onda ultrasonica tarde en regresar, sabiendo esto y la velocidad del sonido nos resulta sumamente sencillo calcular la distancia a la que se encuentra el objeto, o lo que sea que haga que la onda de sonido rebote hasta el receptor. En la imagen a la derecha se puede ver la base que use para montarlo, si, esa cosa celeste que esta alli la construi con el shield de un cargador de una laptop, y la ruedita venia con el servomotor que mueve al sensor, todo esta construido de forma en que se adapte y se acople de forna facil y precisa. Este sensor ultrasonico se encarga de funcionar como sonar para poder detectar cual es el camino mas factible.

Para detectar los obstaculos, utilice sensores infrarrojos, pero no, no de esos que compras, como los famosos Sharp, esas cosas son demasiado caras para lo que sirven, y como buenos hobistas que somos, por que no desarrollar nuestros propios sensores infrarrojos?.....
Pues los sensores se construyen muy facilmente utilizando dos diodos IR comunes y un foto transistor IR comun, ambos deben trabajar en la misma longitud de onda claro esta. Mis sensores tiene 4 cables, algo que resulto despues de muchas pruebas, errores y pruebas, hasta desarrollar un algoritmo que me permitiera controlarlos de forma correcta.                                                              




El circuito electronico como se puede apreciar en la imagen, es muy sencillo, un simple divisor de voltaje y nuestro sistema de IR's, la resistencia que utilice es de 10K porque ese fue el valor que me dio mejores resultados durante las pruebas, el valor de medicion en la entrada analogica se mantiene estable y nuca llega a mas de 1000 aunque se tape por por completo el fototransistor. La entrada digital de este sensor, es simplemente para encender y apagar los diodos IR, en intervalos de 1mS, esto lo veremos ahora en la parte del algoritmo utilizado en los sensores.

El codigo es realmente sencillo, casi no pareciera que llegar a ese algoritmo fue una batalla campal, y que luego de idearlo, testearlo y recibir los resultados que deseaba, lo que invadio mi mente en ese momento solo lo podria coprender aquella persona que por fin logro alcanzar la cima del mote everest (bueno quiza no tanto asi, pero para poder darse una idea del tiempo y esfuerzo invertido para lograr el desarrollo del algoritmo mas optimo. La explicacion es muy sencilla y viene asi: En primer lugar los parametros que recibe esta funcion son tres.
1. Lecturas: La cantidad de veces que se almacenaran los valores analogicos para luego promediarlos, el valor mas optimo lo encontre en cinco, pero la funcion admite cualquier valor por si alguien encuentra mejor una cantidad distinta.
2. pinDigital: Simplemente el pin que utilizaremos para enviar el tren de pulsos.
3. pinAnalogo, el pin en el cual leeremos los valores.
En primer lugar inicalizamos a cero los valores, pues si no se nos quedan almacenados en la Ram de nuestro pequeño arduino y van a pasar cosas feas hasta que se nos desborde la pila.
Luego, leemos el valor de los fototransistores y lo almacenamos en la variable IrAmbiente, despues, prendemos los led IR y leemos el valor analogico para guardarlo en la variable irReflejo, estos dos valores los restamos, y la diferencia sera la cantidad de rayos o la densidad de luz IR que se recogieron en el fototransistor, de esta manera nos aseguramos que la luz del Sol no nos afectara en nada,... Simple, sencillo pero muy eficaz.

Bueno, estas fueron las cosas mas relevantes en la construccion del automata, por lo cual personalmente no veo necesario explicar como se arma el chasis, y como se montan las piezas, eso queda en la creatividad de cada quien.... Bueno, eso seria lo mejor.....

Cabe destacar que para evitar ruidos y perturbaciones en las entradas analogicas opte por instalar capacitores ceramicos en las terminales de los motores los causantes de que las lecturas en las terminales analogicas del pequeño arduino, sean de lo mas inestables.

Dejo el repo en GitHub, por si quieres mejorar mi codigo fuente, o simplemente necesitas una pequeña guia para hacer el tuyo.
https://github.com/Servtes/Wall-Eduino/

Si tienes alguna duda, o algo por el estilo puedes comunicarte conmigo al mail jose_sosa@ymail.com.








miércoles, 25 de enero de 2012

Subida por la Vida “Escalando el Volcán de Agua”

Un lindo sábado 21 de enero del corriente 2012 se llevo acabo una actividad en forma de protesta contra la violencia en Guatemala, a la cual asistí muy gustosamente. Tuve el gusto de conocer muchas personas y formar parte de un equipo de gente, compañeros, realmente increíble!. Bueno mi pasión es la fotografía, soy aficionado a este arte, en especial usando macro, pero nunca desperdicio un buen momento para hacer un recuerdo con mi cámara…

395995_313Grupo con el que comparti muy a gusto

El quipo con el que muy a gusto compartí la “Subida por la Vida”

396245_2885755395627_1612426687_2482761_689500739_n

Juntos en el Cráter del Coloso

414204_3216620580758_1423664130_33359075_1816059076_o

Disfrutando de un merecido descanso

Saludando a la Cámara desde la Cima

Y bueno… Pues no me resisto a fotografiar =)

Hasta la proxima!