RPi Python Board

Tarjeta RPi, una placa para aprender Python con la Raspberry Pi

ACTUALIZACION: Esta tarjeta ha aparecido en el blog de Adafruit. Estoy muy contento, para mi es un gran reconocimiento y solo puedo decir gracias!!

Continuo trabajando con Juan Brito y Danny Macancela, del blog Desafio Ecuador, desarrollando nuevas tarjetas para acercar la tecnología y los lenguajes de programación a l mayor número de gente posible. Nuestro último trabajo ha sido el desarrollo de una tarjeta para utilizarla con la Raspberry Pi y enfocada a aprender el lenguaje Python. La tarjeta contiene los elementos básicos para poder comenzar a desarrollar programas con este lenguaje de programación. Además, cone le desarrollo de la PCB se han eliminado todos los cableados externos, evitando así problemas de conexiones, inversiones de polaridad, cables sueltos,…Asi, con esta tarjeta la única preocupación es centrarse en el lenguaje de programación, porque la parte hardware funcionará!

El Hardware

DSC04584La tarjeta RPi está orientada hacia un entorno educacional, por lo que el hardware es sencillo y contiene elos elementos básicos para comenzar a trabajar con Python. Hemos desarrollado esta tarjeta para que se ajuste a la Raspberry Pi y utilizar los pines de E/S de ésta para manejar los diferentes elementos. ¿Por qué Raspberry Pi? Porque, en estos momentos, es de las tarjetas más baratas y con mayor soporte a nivel mundial. Existe multitud de documentación y soporte detrás de ella. En un post futuro, hablaré más profundamente acerca de esta tarjeta. Si quieres más información acerca de la Raspberry Pi, puedes consultar aqui, aqui o aqui (los dos últimos enlaces son en ingés).

El esquema de la tarjeta se puede descargar desde aqui: RPI PYTHON BOARD SCHEMATIC

Como se puede ver, los elementos que incluye la tarjeta son los siguientes:

  • Cuatro led difusos de 10mm:

Estos leds son los mismos que utilicé anteriormente en la tarjeta teclado para Arduino K4S. Estos leds están conectados a pines generales de E/S de la RAspberry Pi (ver esquema) a través de un transistor Mosfeet FDV301N. Estos transistores no son estrictamente necesarios, porque la corriente por los led’s es pequeña, pero he preferido ponerlos para proteger los pines E/S de la Raspberry. Para activar los leds, hay que poner el correspondiente pin a nivel alto, y para apagarlo, hay que poner el pin a nivel bajo.

  • Dos pulsadores:

Los pulsadores permiten interactuar con la Raspberry, y se tratan como entradas. De esta forma, leyendo su valor se puede saber si están o no pulsados, y actuar en consecuencia en función de su estado. Por defecto, cuando un pulsador no está pulsado, se lee un nivel alto, y cuando se pulsa, se leerá un nivel bajo.

  • Un zumbador:

El zumbador permite obtener señales acústicas. Se puede programar un tono contínuo o pitidos de una duración variable, depende de lo que se programe. Al igual que con los leds, he puesto un transistor Mosfet para proteger el pin de la Raspberry. Para activar el zumbador, hay que enviar un nivel alto al pin. Y para apagarlo, simplemente hay que mandar un nivel bajo!

  • Un conector para un LCD 2×16

Este conector permite montar un display estándar LCD de 2×16, para enviar mensajes y mostrar información. Se puede poner un display LCD estándar o uno OLED, en función de los elementos que se monten. He decidido montar displays OLED porque son realmente interesantes y proporcionan un aspecto más moderno que los módulos LCD tradicionales. Además, como los displays OLED generan su propia luz, no se requiere backlight. Esto reduce el consumo necesario para que funcione el display OLED, y además es lo que hace que estos displays tengan un contraste tan alto. He elegido dos colores para el prototipo, rojo y azul, del fabricante Raystar, que además proporciona una nota de aplicación para trabajar con estos módulos. Desde aqui, dar las gracias a Jorge Galán de RC Microelectrónica por su ayuda y soporte para conseguirlos.

RPI PYTHON BOARD RPI PYTHON BOARD

  •  Conector para el bus I2C

He previsto un conector de 4×1 y paso 2,54mm con las señales del bus I2C, para poder conectar periféricos externos a la Raspberry. En el futuro, seguro que los uso!!

  • Led’s de alimentación

No hay mucho que decir aqui, dos led’s verdes para indicar que las alimentaciones de 5V y 3V3 provenientes de la Raspberry están OK:

 RPI PYTHON BOARDDiseño de la PCB

Esta vez he utilizado los servicios de Hackvana para fabricar las placas. Quería comprobar si las placas eran tan buenas como la gente suele decir por internet. Y si, es cierto, la calidad de las tarjetas es excelente!. Aqui un par de fotos de las PCB’s sin componentes:

Como siempre, he montado las tarjetas a mano. He utilizado componentes SMD en formato 1206 y solo por la cara superior, porque no hay problemas de espacio y los componentes 1206 son fáciles de montar a mano. Después de montar los prototipos, el siguiente paso es montar la tarjeta sobre la Raspberry , para comprobar que todas las dimensiones son correctas. He utilizado los dos agujeros de la Raspberry Pi para fijar la tarjeta, utilizando dos espaciadores de M2.5×18 de Harwin. Para el display, he utilizado tres separadores de M2.5×11, también de Harwin.   El resultado ha sido muy satisfactorio:

[metaslider id=1027]

Programando en Python

Una vez comprobado que todo está Ok, es hora de comenzar a programar. Hay muchisimos manuales y referencias en internet acerca de como comenzar a programar en Python. Aqui trataré unos ejemplos básicos para comenzar a trabajar con la tarjeta. Asumo que dispones de una Raspberry Pi con una distribución instalada. Yo he utilizado la distribución Raspbian para trabajar con la tarjeta. Esta distribución incluye por defecto el interprete de Python y la versión de Scratch S4A, que permite trabajar con la tarjeta teclado K4S que desarrollé anteriormente. A continuación hay unos ejemplos básicos para comenzar a trabajar con la tarjeta y con Python:

 

 

 

 

 En una posterior entrada, comentaré el código en Python para mostrar mensajes en el display OLED, porque es un código más complejo y requiere conocimientos más técncos.

Feliz programación y depuración!!

  • Twitter
  • del.icio.us
  • Digg
  • Facebook
  • Technorati
  • Reddit
  • Yahoo Buzz
  • StumbleUpon

This post is also available in: Inglés

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.