Primer avistamiendo de una RepRap en Canarias

Lo dijo Jesús Torres en la lista de correo de Canarnova, hace unas pocas horas.

"La reprap del departamento haciendo un engranaje"

"Ejemplo de como la reprap del departamento (http://www.isaatc.ull.es/) hace un engranaje de 7mm. de grosor en 50min."

Y este video tan enternecedor:

Creación de PCBs con KiCAD: una guía para principiantes

Te está gustando mucho tu Arduino. Haces luces parpadeantes y pitidos. Has hecho un robot que tenía buena pinta. O quizá no. No importa. Estás preparado para el siguiente paso. Quieres extenderlo. Aunque podrías limitarte a enchufar unos cables, hay cierto atractivo en hacer un shield.
En lugar de un barullo de cables conectados a la protoboard sobre la que has hecho el prototipado, puedes tener un bonito shield con conexiones etiquetadas y ocupando menos espacio. Así que voy a contarte todo lo que debes saber para capturar el esquema del circuito y la distribución de la PCB, para así conseguir un hermoso shield que podrás enchufar directamente encima de tu Arduino.

Nota: antes de nada, quiero dejar claro que no soy un experto en la creación de circuitos impresos, o de la electrónica en general, así que admito de buen grado correcciones (sobre todo en cuanto a terminología), precisiones, e incluso adiciones interesantes al texto. Sin embargo, téngase en cuenta que esto es principalmente una guía para enseñar a usar software como herramienta de creación de una placa; no pretende ser nada más profundo.

Dicho esto y dada la vena cacharrera de este blog y comunidad, pensé que es obvio que en algún momento, alguna persona que haya dado sus primeros pasos y tenga algún circuito funcionando, quiera quitarse de las placas de prototipado, sobre todo por el cablerío e inestabilidad que suelen suponer. Además, un circuito impreso queda de lo más molón, ande vamos a parar...

Hace unas semanas solté en la lista de correo un enlace a una traducción/adaptación de este tutorial escrito por Aaron Eiche. Luego he decidido que sería más conveniente reescribir el trabajo e incorporarlo al blog en forma de serie corta de artículos. Este primer artículo es una mera introducción a la motivación de escribirlo y la elección de herramientas.

Mi intención, al igual que la de Aaron, es sólo mostrar el uso de un programa de diseño para captura de circuitos esquemáticos y el diseño posterior de un circuito impreso que represente el esquema. No teoría de electricidad/electrónica (hay libros para eso). No cómo realizar la placa físicamente, si es que la quisiéramos hacer nosotros mismos. Tampoco cómo montar la placa una vez obtenido el resultado (soldadura, básicamente). Para eso seguro hay "cienes y cienes" de tutoriales en Internet o, en su defecto, seguro que algún otro compañero/a de Canarnova puede ilustrarnos.

La intención real al adaptar el artículo no fue la traducción en sí. El inglés puede o no ser un problema para vd., estimado lector. El objeto real es explicar el uso de KiCAD y me era mucho más sencillo hacerlo partiendo de un ejemplo real y que funciona. Además, el tutorial original cuenta el proceso de creación de una PCB (printed circuit board - un circuito impreso, vamos) haciendo uso de Eagle, software de la casa CadSoft, que yo ya conocía de antes, así que me facilitaba la labor de adaptación.

¿Por qué KiCAD? Eagle es un programa muy popular entre aficionados y se pueden encontrar montones de bibliotecas de componentes para él, de libre acceso y uso. Bastante recomendable, ciertamente, pero es software privativo y hay quien prefiere usar programas libres (como KiCAD). Aparte de esto, está el coste. Eagle se puede usar de forma gratuita, pero con limitaciones en la creación de circuitos impresos: concretamente, al número de capas de la placa (máximo 2); y las dimensiones máximas del producto. Ciertamente, para el uso habitual en una comunidad como Canarnova, esto no debería ser problema, pero si se quiere hacer algo más grande, el sistema de precios de Eagle se queda demasiado corto (pagar por una licencia Light sólo te ofrece una ampliación en el tamaño) o se pasa de largo para el uso casual. Hay una licencia para uso sin ánimo de lucro, eso sí, pero está por encima de los 100€ y habrá quien prefiera gastarse ese dinero en componentes...

Y no hablemos del precio de otros paquetes de software comerciales, porque entonces sí que nos puede entrar la risa tonta.

Por cierto, que aparte de KiCAD hay otros paquetes de software EDA (de Automatización de Diseño Electrónico, por sus siglas en inglés) libres, como gEDA, aunque KiCAD siempre me ha parecido más maduro. Quizá es sólo una impresión, pero...

Importante: la versión de KiCAD que estoy usando era la última disponible en Debian unstable en el momento de escribir el artículo y es la de 14 de marzo de 2010.

Nota para fanáticos: la "K" en KiCAD no tiene nada que ver con KDE. Se basa en wxWidgets.

Especificidades de este tutorial

Hay un par de cosas que deberías saber antes de meterte en esto. Primero, que no te voy a enseñar todo sobre KiCAD. KiCAD es un programa complejo. De ninguna manera voy a cubrir todo su funcionalidad. Segundo, el motivo original de Aaron al escribir el tutorial era atraer a la gente a participar en sus pedidos de PCBs, concentrándose en la generación de ficheros Gerber. Por último por razones de simplicidad, vamos a hacer una placa que use sólo componentes de la SparkFun Library (SFE). Lo haremos así porque no vamos a explicar cómo crear nuevos diseños de componentes aparte de todo lo demás. Es más sencillo de esta manera, créeme. Vale, una cosa más: asumo que sabes usar tu computador. Esto no va a ser un tutorial "cómo usar tu ratón". Voy a centrarme en los aspectos específicos de KiCAD, pero necesitas saber lo básico. Llegados a este punto, me sorprendería encontrar a alguien que no estuviera familiarizado con los computadores pero tenga tanto interés en la electrónica como para plantearse el diseño de su propia PCB.

Un inciso. La biblioteca de componentes SFE está escrita por y para EAGLE, así que no la podemos usar directamente. En su lugar, busqué alguna manera de exportarla y encontré un script "semi-oficial" en la propia web de EAGLE, en el apartado de contribuciones de los usuarios. El script hace parte de su trabajo, pero no me gusta demasiado el resultado, así que decidí retocarlo un poco (y seguiré haciéndolo cuando investigue un poco más). Si te interesa usar el script en el futuro, lo encontrarás aquí. Ni que decir tiene que necesitarás instalar EAGLE para poder usarlo, ya que la idea es exportar bibliotecas desde EAGLE para usarlas en KiCAD.

Si prefieres saltarte este paso, siempre puedes descargar el producto final.

Cosas que necesitarás

Vas a necesitar todas estas cosas antes de empezar:

  • Una idea para tu shield (con eso no puedo ayudarte)
  • Una copia del programa KiCAD (para capturar el circuito)
  • Una copia de la biblioteca EAGLE de SparkFun (para los componentes: ver apartado anterior)
  • Las reglas de diseño (Design Rules) de tu "Fab house" favorita (ya hablaremos de esto).
Si eres usuario de Windows, puedes descargar KiCAD directamente desde su página. Si eres usuario de Linux, hay cierta probabilidad de que tu distribución favorita empaquete KiCAD (uso Debian y ése es el caso: apt-get install kicad ya te basta). Si tu plataforma es OSX, sé que existe una versión experimental, pero no estoy seguro de cómo de bien funciona...

Tras descargar e instalar KiCAD, descarga y extrae (o exporta) la biblioteca de SparkFun. Deberías obtener dos ficheros llamados SparkFun-XX-YY-ZZ, con extensiones .lib y .mod (XX-YY-ZZ hace referencia a la fecha de publicación; puede que quieras obtener algo más moderno). Es una biblioteca hecha por SparkFun Electronics. Me gusta porque tiene una gran variedad de componentes y footprints bastante fiables (el footprint es una representación del componente real e incluye sus medidas, que acaban en tu circuito impreso y es absolutamente crucial que sean correctas). Una ventaja de la biblioteca de SparkFun es que todo está licenciado bajo Creative Commons 3.0 Share-alike. Esto significa que puedes usarla de forma comercial, siempre y cuándo compartas cualquier modificación que hagas a ella. Otra biblioteca que recomiendo mucho (pero no es necesaria para este tutorial) es la Adafruit Industry's EAGLE Library.

Las bibliotecas para EAGLE se componen de un único fichero con extensión .lbr e incluyen todo lo necesario para poder trabajar con un componente, desde su diseño esquemático (número de pins, sus nombres, sus tipos, etc.) para la captura del circuito hasta el footprint (o los, en plural, ya que un mismo componente puede tener varios) que usarás en el diseño de la PCB.

En KiCAD las cosas son diferentes. Por un lado (simplificando) tenemos las bibliotecas de componentes esquemáticos (.lib), de donde los escogeremos durante la captura; mientras que por otro están los footprints, en ficheros .mod. En principio da igual dónde los instalemos. Los míos los guardo bajo ~/.kicadlibs si los voy a compartir entre varios proyectos, aunque puedes poner las bibliotecas junto con el resto de ficheros del proyecto, teniéndolas así localizadas en un lugar relativo al resto del proyecto, facilitando la vida si tienes que compartirlo con alguien. Usaré el "repositorio central" en los ejemplos; cámbialo si lo ves necesario.

(En mi caso, en concreto, los archivos exportados desde EAGLE los instalo bajo ~/.kicadlibs/from_eagle).

En el siguiente artículo empezaremos de verdad, explicando cómo se captura el esquema de un circuito.

Muestras gratis

Andaba mirando sensores, y me acordé de que algunas empresas ofrecen muestras gratuitas, sí, tal como lo lees.
Y te preguntarás: ¿por qué regalan muestras?
La respuesta es simple: si estás diseñando una placa que haga uso de circuitos integrados, tendrás que elegir entre el catálogo de componentes de algún fabricante.
Si vas a hacer una placa para uso personal, no tendrá más relevancia: adquieres los componentes, los sueldas y ya está.
Pero si estás pensando en hacer unas cuantas, la cosa cambia y mucho, porque te interesará tener un buen proveedor para los componentes.
Aquí está la gracia de las muestras: a los fabricantes les interesa enseñarte las bondades de sus productos, para que te suministren el material cuando vayas a ensamblar en cadena.
Tras esta perogullada, estarás planteándote: vale, ¿y de qué me sirve si no voy a fabricar cientos de arduinos?
En esencia: te puedes ahorrar unos cuantos euros (créeme, hablamos de unos CUANTOS) para hacer prototipado, o tener un circuito de andar por casa (¿recuerdas la estación metereológica?).
Ojo a un detalle: algunos fabricantes mandan muestras a particulares, algunos no, tendrás que investigar un poco.
Mi experiencia personal ha sido con maxim, y grata, por cierto: te permiten pedir hasta 2 unidades de varios componentes, siempre que entre un pedido y otro no pasen menos de 90 días.
Hará cosa de un año pedí un DS1307, un 18B20 y algún circuitillo más que no recuerdo, sin coste alguno, puesto en casa por correo postal sin coste alguno (tardó 2-4 semanas). Desconozco si las condiciones han cambiado, pero sigue siendo un lujo.
Para un listado más completo de fabricantes, te recomiendo este excelente post de Limor http://www.ladyada.net/library/procure/samples.html


Estación meterológica DIY

Primera entrada de un servidor en el blog :)
Si alguien no conoce el término DIY, comentarle que son las iniciales de Do It Yourself (hazlo tú mismo), algo asi como el bricolaje de toda la vida, pero extendido a ámbitos como la electrónica, etc...

¡Pero si venden estaciones metereológicas ya montadas!
Aunque se trata de un tema más que trillado, y hay mil y una versiones diferentes, montar una estación metereológica de andar por casa es un proyecto fácil de montar (si no te importa usar protobards no tendrás que soldar nada), instructivo (sensores, comunicación entre arduino y pc, envío inalámbrico de datos, displays, standby, etc...) y, sobre todo, divertido.
Huelga comentar que todo el desarrollo será libre, tanto la documentación aportada en este blog, como el código fuente, y los diagramas para montar los componentes.

Qué esperamos de la estación
Evidentemente, hacer lecturas de datos, y poder visualizarlas, ¿ te parece poco ?
Ahora en serio, la meta será llevar a buen puerto un proyecto compuesto por dos unidades:

- Recolectora: autónoma, encargada de recoger los datos (temperatura, humedad, intensidad lumínica, presión atmosférica, etc etc etc ).
Con autónoma me refiero a que sea capaz de funcionar sin mantenimiento, que la montemos una vez y se encargue de recabar los datos independientemente de donde esté situada físicamente.
A modo de adelanto, comentar que tengo una en la terraza con un emisor inalámbrico, un elevador de tensión de 5V (no te vuelvas loco, quédate con que es un circuito capaz de darte 5V a partir de dos pilas) y un arduino con sensor de temperatura, funcionando 24h sin interrupciones, ni mantenimiento (al menos hasta que se agoten las pilas).
Profundizaremos en el diseño de esta unidad en otro post.

- Receptora: encargada de recibir las lecturas, procesarlas y visualizarlas.
Esta unidad tendrá un diseño diferente, orientado, en principio, a enviar los datos de las lecturas hacia el PC, sin más.
Fácil, ¿verdad? Siempre podemos ir un pasito más allá, y añadirle un par de displays de 7 segmentos para ver la lectura sin tener que ir al pc, o un LCD, etc ...

Componentes
En el próximo post comentaremos el montaje, diagramas, cableado, etc etc...
Idealmente, deberías contar con un par de arduinos (ojo, no hace falta que sean dos placas, basta una placa con puerto usb y un microcontrolador con el arduino bootloader), un emisor/receptor (he probado con este http://www.sparkfun.com/commerce/product_info.php?products_id=8946, funciona genial aún con varias paredes por medio y no es caro) , una batería (puedes usar pilas con un elevador de tensión, batería con placa solar... hay muchas alternativas) y, al menos, un sensor de temperatura, como el LM35, para ir empezando.
Ah, por supuesto, una azotea o una terraza donde montarlo, salvo que prefieras monitorizar la nevera :P
Calma, no te asustes, eso es el equipamiento ideal, y si estás empezando con este mundillo, lo más probable es que tengas sólo una placa duemillanova y una protoboard.
En este caso, puedes hacer un montaje más modesto, aunque necesitarás, igualmente, un sensor para recoger datos.
Lo más simple sería usar una resistencia LDR en cualquier tienda de electrónica, para comprobar la intensidad lumínica.
Si prefieres hacer lecturas de temperatura, puedes conseguir un LM35 en varias tiendas a través de internet, o usando eBay.
Es un sensor económico y muy bien documentado, que te servirá en otros proyectos con seguridad.
Según vayamos avanzando en el montaje, veremos que hay muchos sensores: humedad, presión barométrica... incluso se vende un kit muy completo con anemómetro, rosa de los vientos y precipitación, aunque viendo el precio (ronda los 60-70 euros), mejor esperar un poco :P

Y hasta aquí esta primera entrada, ¡espero que hayas disfrutado!

Qué es Canarnova (toma 1)

¿Hola? Probando, probando ...

No hablo por los demás, conste, pero me pareció razonable empezar con "algo". :-)

Canarnova es un espacio que hemos creado para hablar entre varios que estamos interesados, en Canarias, en arduinos, repraps y demás artefactos de la fabricación libre.

Una parte de nosotros, si no todos, veníamos ya del software libre (gulic, en concreto).

Y, ya puestos, del conocimiento libre (wikipedia, appropedia, etc).

¿Y ahora qué?

Bueno, no sé. Estamos empezando. Un pasito, luego otro. El objetivo, por supuesto, es la dominación mundial. ;-)

Estamos creando esta bitácora, como propuesta, para tener un espacio en el que mostrar lo que vayamos haciendo, pequeño o grande. Puede haber varios autores, cada cuál poniendo lo que haga, descubra o resuma. Alguna vez se anunciará algo gordo, como una reunión pública para mostrar los primeros o los segundos o los terceros cacharros.

El objetivo, claro, no es tener una bitácora, sino tener hardware libre:
  1. Hardware: cacharros. Lo que significa que construimos esos cacharros.
  2. Libre: que otros puedan reproducir. Lo que significa que exponemos lo que hacemos para facilitar que otros hagan lo mismo.
Conste, para los que no saben nada, que esto no es una "parida" local. Hay más como nosotros.