Este blog esta dedicado al modelismo ferroviario en escala Z. Sin embargo en esta ocasión voy a hacer una excepción y me gustaría mostrar el motor V12 mas pequeño del mundo construido por José Manuel Hermo Barreiro (de apodo Patelo) un jubilado de 73 años residente actualmente en Noia (Galicia). Después de ver esto colocar un deco en una locomotora en escala Z me parece un juego de niños. Impresionante trabajo de este señor jubilado.
domingo, 4 de diciembre de 2011
miércoles, 12 de octubre de 2011
Nuevo Display y otros componentes
Llevaba unas cuantos semanas sin realizar ninguna entrada nueva en el blog y tiene una explicación pero no tiene disculpa, porque la verdad es que de alguna forma me gusta escribir entradas de mis progresos y quiero intentar mantenerlo actualizado aunque no siempre sea posible.
Estas semanas he estado leyendo un par de libros sobre programación de Arduino muy interesantes. Necesitaba ampliar mi nivel de conocimiento en programación y por eso me he comprado un par de libros, altamente recomendables. Dejo aquí la dirección en Amazon por si alguien les interesa. Arduino Cookbook Programming Interactivity
También he comprado un teclado, algunos pequeños interruptores, y un display OLED de 160x128 píxeles, de 65K ó 262K colores. Todo esto es para continuar con el desarrollo de la placa que comentaba en mi anterior post. La pantalla la he adquirido junto con una developer board para poder aprender y probar en el display los programas de forma fácil y rápida. Tengo pensado utilizar esta pantalla como monitor de información. Una aplicación posible seria usarla como monitor de información en las operaciones con los desvíos dentro de la estación oculta, y quizás otra segunda aplicación es utilizarla en el puente giratorio.
En cualquier caso existen muchas posibilidades y me gustaría primero experimentar un poco para ver de que soy capaz y luego pensaré en cómo aplicar todo lo conseguido.
Ahora con todos los componentes que tengo voy a conectarlos para controlar dos desvíos. Mi idea es introducir el numero del desvío que quiero controlar por el teclado. Una vez introducido el número de desvío entonces usando los pequeños interruptores podré mandar las órdenes de abrir o cerrarlo. Quiero que todo esto esté conectado a la red Loconet para que pueda conmutar el control al software que corre en el PC. Pero bueno lo mejor será primero hacerlo y después mostrarlo.
domingo, 28 de agosto de 2011
Leds brillando
El segundo test con los dos integrados ha ido bien. Como había explicado en mi anterior entrada quería controlar 8 leds, uno para cada linea de datos con el chip PCF8574 así como también añadir el 74LS244 porque en la primera prueba el led se iluminaba muy débilmente y de esta forma poder controlar las 8 líneas de E/S que tiene el integrado.
El programa que he usado lo he encontrado en Internet, el autor lo ha creado para controlar el encendido de un led y sencillamente lo que hace es enviar un byte con todo a 1 en un periodo de tiempo muy corto, he empezado con 1000 ms y pasado este tiempo envía de nuevo un byte con todo a cero. Esto produce que los leds se enciendan todos a la vez y se apaguen todos también a la vez. Como punto de partida esta bien, y ahora quiero complicarlo un poco colocando un par de circuitos integrados PCF8574 y 74LS244 pero voy a hacer que un chip controle los leds simulando las salidas y el otro controle una serie de pequeños micro-interruptores simulando entradas. No se si podré montarlo todo en la Protoboard porque no tendré mucho espacio. Aquí dejo un vídeo con el resultado.
sábado, 27 de agosto de 2011
I2C-bus
Sigo trabajando con el Arduino exactamente en un circuito multi-IO que sirve para controlar diferentes entradas y salidas, similar al Loco IO. Este circuito esta basado en el I2C-bus.
Este es un bus basado en un protocolo de comunicación serie desarrollado por Philips Semiconductors usado por muchos circuitos integrados para comunicarse entre ellos. Lo que lo hace realmente interesante es que para su funcionamiento requiere sólo dos líneas, una de reloj (SCL) y otra de datos (SDA) junto a dos resistencias de pull-up con cada una de estas líneas.
En el I2C-bus existe un rol para el dispositivo maestro y otro rol para el dispositivo esclavo El dispositivo maestro inicia/termina la comunicación y es quien debe generar una señal de reloj (SCL) para sincronizar todos los dispositivos conectados al bus. En cuanto a la línea de datos (SDA) es del tipo bidireccional (el maestro puede mandar o recibir), por lo general sólo suele haber un maestro (el micro-controlador, en este caso el Arduino) aunque el protocolo soporta más de uno. Todos los circuitos integrados conectados a este bus tienen una dirección física distinta de la de los demás, para que la comunicación solo se establezca de forma inequívoca con un esclavo/maestro determinado.
He utilizado el circuito integrado llamado PCF8574P , un chip de bajo coste que tiene un puerto cuasi bidireccional de 8 bit, la idea es expandir las pocas salidas que tiene el Arduino con estos chips, y de esta forma con solo dos lineas del I2C-bus podré expandir las lineas para E/S.
El PCF8574 tiene un consumo muy bajo de corriente e incluye las salidas tipo latch con capacidad de producir más corriente para conducir directamente LEDs. Por ultimo tiene una linea de interrupción (INT), que puede ser conectada a la lógica del micro-controlador Mediante el envío de una señal de interrupción sobre esta línea, la E/S remota puede informar al micro-controlador que hay datos entrantes en sus puertos sin necesidad de comunicarse a través del I2C-bus.
En el circuito de John aparece también el integrado 74LS244 un buffer octal para separar las lineas y dar nivel TTL a las lineas de E/S.
En la imagen se puede observar que he comenzado primero con el PCF8574P montada sobre la protoboard atacando a un paquete de 10 Leds. Inicialmente ha funcionado pero la intensidad del LED era muy baja- Voy a hacer los cambios y añadir el otro circuito para ver como funciona.
viernes, 8 de julio de 2011
Comunicación establecida
Como escribía en mi ultima entrada, por el momento he abandonado las pruebas con la placa locoIO, esto no quiere decir que más tarde vuelva de nuevo, pero creo que debo descubrir nuevas posibilidades. He comenzado a explorar un nuevo camino con Arduino. En Internet tenemos muchos lugares donde poder comenzar a buscar información.
El sitio de Alex Shepherd donde hay bastante material y ejemplos para comenzar a trabajar. Alex ha escrito código de varias librerías y módulos para Arduino y otros chips AVR. En la pagina source forge me he bajado un zip que contiene todas las librerías y un ejemplo de una aplicación que permite monitorizar la actividad en la red Loconet.
El primer problema ahora es interconectar físicamente Arduino con la red Loconet. Para hacer esto hace falta construir una interface.
La búsqueda por diferentes foros y grupos me ha ayudado ha encontrar una web de John Plocher. John es un desarrollador que ha participado en el proyecto JMRI, tiene un par de ejemplos en su pagina para Loconet y ha construido una interface para poder conectarse a Arduino. John la ha construido sobre la protoboard, pero en mi caso lo he echo sobe una placa de circuito impreso para prototipos también ha usado parte del código de Alex . Este es el esquema creado por John.
Este el circuito impreso con los componentes una vez soldados todas las conexiones que yo he construido para hacer las primeras pruebas de comunicación entre Arduino y Loconet.
En este punto ya podía hacer las primeras pruebas con el código de la aplicación Loconet Monitor de Alex. En lo primeros intentos no he conseguido compilar bien el código, al final después de leer y entender las lineas de código, he colocado bien las librerías y lo he compilado de forma correcta Arduino lo ha cargado esta vez sin problemas. Para poder ver los resultados hay que abrir la ventana Serial Monitor del IDE de Arduino.
Aquí inicialmente no he visto ningún tipo de actividad y he tenido que volver a repasar todos los cables de conexión de la placa de circuito impreso. Como no tengo osciloscopio ni analizador lógico, pues la tarea de buscar el posible fallo se hace a ciegas y de esta forma no he podido comprobar en la diferentes partes del circuito que estaba pasando.
Finalmente he recordado que ya tenia montado un circuito que conectaba con Loconet. La placa Loco IO. Esta placa se podia convertir si le quitaba el PIC y la podía aprovechar como interface para Loconet. Este es el montaje que he utilizado. Solamente dos cables que me permiten la comunicación.
Los pines D7 y D8 de Arduino son los Tx y Rx que se conectan a los pines 2 y 3 que usaba el PIC en la placa Loco IO. Esta ha sido una forma sencilla y rápida de conseguir una interface entre Arduino y Loconet sin los problemas de las conexiones que aparecen en la creación de una primera placa.
En las siguientes pruebas con el código de Alex todo estaba funcionado y ahora a través de Arduino puedo leer los mensajes que hay en la red loconet. Se ha conseguido un primera escala en el camino , ya he establecido la comunicación como se puede ver en esta imagen.
Suscribirse a:
Entradas (Atom)






