Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Buenas, UCfort y yo hace tiempo que trabajamos en un proyecto que queremos compartir con todos vosotros.
Se trata de un sistema de placa entrenadora y adaptadores de diferentes micros para poder probar esos microcontroladores de diferentes fabricantes, a diferentes voltajes (5V y 3,3V de momento). Adjunto los originales de la última versión de la placa, además de con los adaptadores de algunos micros y unas fotos de uno de los prototipos (el último que hicimos) ya funcionando perfectamente.
¿A quien no le gustaría tener una o varias placas entrenadoras tan completas como las de mikroElectronica? Pero por tamaño y precio no era lo que queríamos. Además suelen ser específicas de un fabricante (y/o modelos). Con todo eso en mente, os expongo las ideas básicas que nos llevaron a hacer esta placa:
1) Necesitabamos una placa para probar diferentes microcontroladores. Muchos de ellos son de Microchip, pero no siempre. Algunos necesitan una alimentación a 5V y otros a 3,3V.
2) Nos fijamos como límite de tamaño una placa comercial de 10x15 cm, positiva, a una sola cara. Solemos trabajar con ese tamaño, ya que es fácil encontrarlo en cualquier tienda de electrónica. No queríamos que fuera de doble cara para que resulte más senzillo de fabricar a la gente no muy experta.
3) Limitamos el número máximo de pines del micro a 64 pines.
4) La placa tenía que tener los componentes mínimos necesarios para probar las funciones básicas de un micro y que nosotros (hobistas de la robótica) utilizamos, pero sin elementos opcionales que encarezcan o compliquen la placa.
5) Constaría de dos partes: la entrenadora y el módulo adaptador del microcontrolador. De esta forma el micro es independiente de la entrenadora y se puede usar cualquiera siempre que cumpla las especificaciones de la entrenadora y a través de un módulo adaptador.
6) Los pines de programación/debuger irían siempre en el zócalo adaptador, nunca en la entrenadora.
7) Debía ser una placa de fácil construcción y económica. Se utilizarían componentes thru-hole o smd fáciles de obtener y soldar.
Con estas premisas, y después de numerosos rediseños y modificaciones, hemos llegado a algo así:
* Vista superior con un módulo de dspic30F4011 pinchado:
* Misma vista superior sin flash (sale algo borrosa):
* Vista inferior sin ningún módulo. Se observan los reguladores de voltage, el interrutor on/off y el potenciómetro para regular el brillo del display:
Características del sistema entrenadora multi-microcontrolador:
* Zona de prototipado con dos mini-breadboard pegadas a la placa. Disponibles connectores hembra de Tensión de alimentación, 5V, 3,3V y GND. Está pensada para utilizarse con cablecillos macho-macho.
* Connector alimentación tipo Jack y espadin normal (para conectar directamente una LiPo pequeña, por ejemplo).
* Interruptor de encendido/apagado.
* Display lcd de 8x2. Como el que monta el robot 3pi de pololu, también disponible por ebay. Por falta de tiempo es el único componente que no hemos comprobado que funcione correctamente, espero que lo haga!!
* 9 pulsadores. La alimentación se puede elegir por medio del conector hembra.
* Zócalo para driver tipo MCP19E4 o similar. Este dirver mosfet (se puede pedir gratuitamente como sample a Microchip) se puede usar directamente para controlar motores como los pololu HP utilizados en los robots velocistas o para atacar cargas que necesiten más potencia (relés, mosfets, por ejemplo).
* Dip-Switch de 4 pines. La alimentación se puede elegir por medio del conector hembra.
* Dos potenciómetros, para simular entradas analógicas. La alimentación se puede elegir por medio del conector hembra.
* Un zumbador piezoeléctrico. Funciona directamente conectandole la salida de un pin del micro.
* Ocho leds de 3mm.
* Un led RGB.
* Un zócalo hembra de 2x2 pines con un led para probar directamente los sensores cny70. Con una plaquita adaptadora se podría utilizar para probar otros sensores similares pero en encapsulado smd.
Funcionamiento de la placa:
2) En el zócalo se elige, con un jumper, el voltage que utilizará el micro (5V o 3,3V).
3) Se conecta la alimentación a la entrenadora.
4) Se enciendo con el interruptor.
5) Se conectan los cablecillos macho-macho a los diferentes elementos de prueba (protoboard, interruptores, leds, etc).
Nota) La placa no necesita el módulo del micro para funcionar. Se puede usar para probar componentes, sensores, etc sin necesidad de tener ningún micro insertado.
Justificación del formato del conector del zócalo adaptador: 2x30 pines en un solo lado.
Y aquí dejo los ficheros comprimidos en rar para quien los quiera revisar/probar, todos en formato Eagle (placa+esquemático. No se si se abren con la versión sin registrar...):
Entrenadora: https://dl.dropbox.com/u/14855888/Entrenadora/entrenadora.rar
Adaptador dspic30-smd-44 pines: https://dl.dropbox.com/u/14855888/Entrenadora/adaptador44_dspic30F.rar
Adaptador pic16F877-th-40 pines: https://dl.dropbox.com/u/14855888/Entrenadora/adaptador40_16F877.rar
Adaptador dspic30F4013-th-40 pines: https://dl.dropbox.com/u/14855888/Entrenadora/adaptador40_30F4013.rar
Adaptador propeller-40 pines: https://dl.dropbox.com/u/14855888/Entrenadora/adaptador40_Propeller.rar
Adaptador dspic33ep256mu806-64 pines: https://dl.dropbox.com/u/14855888/Entrenadora/adaptador28_33EP64MC502.rar
Adaptador atmel-at90-8515-40 pines: https://dl.dropbox.com/u/14855888/Entrenadora/adaptador40_AT90-8515.rar
Adaptador atmel-at90-8535-40 pines: https://dl.dropbox.com/u/14855888/Entrenadora/adaptador40_AT90-8535.rar
Cambios/mejoras/actualizaciones previstas a corto plazo:
1) Esta versión está específicamente pensada para hacerse la placa uno mismo en casa y a una sola cara. Tenemos previsto hacer un modelo para enviar a producir profesionalmente, tanto de entrenadora como de adaptadores, ya sea en iteadstudio o en cualquier otro fabricante económico de placas. Hay que cambiar todo el ruteado de pistas y vías, cambiar algunos componentes thru-hole por smd, puede que resituar alguno, preparar la serigrafía, etc.
2) En la parte central queda espacio vacío (aunque está bien que donde irá "la maraña" de cables esté despejada) que quizá se podría aprovechar para poner algún componente más. Zócalo X-bee quizás? Display 7 segmentos (con driver? sin driver? cuantos dígitos?)
3) Otra idea es añadir un conector usb (normal?, mini?, micro?) para alimentar la placa por si se usa con un ordenador y no se tiene fuente de alimentación a mano.
4) Hacer adaptadores para otros micros. Hay muchos pendientes, en diversos tamaños, encapsulados y fabricantes. Incluso se podrían hacer adaptadores para pinchar directamente arduino nano, mbed, microstick, etc, etc.
5) Donde va el conector de 2x30 de los pines del micro hacia la zona de componentes (no el de la izquierda donde se pincha el zócalo adaptador, sinó el que está al lado, pero un poco más a la derecha) hay espacio para poner una plantilla de papel con los nombres de cada pin que usa ese micro con ese zócalo en concreto. No se si esto queda muy claro, cuando tenga tiempo de hacer una, le hago una foto y la subo también.
6) Quizá añadir otro/s regulador/es de voltage para abarcar a micros de bajo voltaje?
Nos gustaría recibir vuestros comentarios, críticas, sugerencias, etc. El ánimo de este proyecto es que sea open source hardware (cc-by-sa). Que cualquiera pueda fabricarse las placas en casa o pedirlas a un fabricante. Que se pueda usar en casa o en colegios/institutos para hacer prácticas.
Como véis aun quedan muchas cosas por pulir, mejorar y hacer. Si alguno se anima a participar/ayudar, nosotros estaríamos encantados.
Hablando de ese display (no soy ningún experto, todo lo que se de microcontroladoras, electrónica, etc es fruto de ser mi principal afición así que lo mismo se me escapa alguna burrada), mirando un poco el esquemático de la placa he llegado a la conclusión de ánodo (+) común. ¿Cierto?
Esos cambios suenan muy muy bien. La actual placa (10x10cm) está ya super completa, de integrar mejoras como las que comentas, habría que subir el tamaño un poco al menos. Y es ahí dónde me viene a la cabeza que quizás...pueda hacerse algo 'modular'. Es decir, lo que comentas por ejemplo del voltímetro, display gráfico, micro arduino... ser otra placa/módulo de 10x10cm que se 'pinche' en un lateral e ir ampliando la entrenadora cómo si fuese un puzle.
Es sólo una idea, a lo mejor hace que sea una entrenadora 'escalable' y cómo ya la habéis dejado tan bien y completamente documentada, puede que la gente se anime incluso a crear sus propios módulos.
Aunque sé que no es fácil, habría que pensar en cómo sería el pinout de conexión entre módulos y permitir que esto fuese escalable para añadir varias placas. Aunque principalmente propagando las líneas de alimentación (1.7, 3.3, 5) creo que ya sólo eso sería bastante útil y a lo mejor no haría falta más.
Si, y con el jumper seleccionas si se activa el lcd, los leds o ambos.
La protoboard, un display y casi todo lo que hay ahora cabría en la misma placa sin cambiar el tamaño, aunque muy condensado. Hay muchas posibilidades, lo difícil es decidirse por una. Intento no hacer placas mas frandes de 10x10, ya que el precio sube bastante.
La comunicación entre placa base y módulos había pensado hacerla con cables macho-macho de quita y pon, siguiendo la misma filosofia que en la base. Como mucho pondría dos/tres pines fijos (3,3V/5V/Masa) por la parte de abajo y en cada lado para poder enchufar los módulos.
Ya tengo casi lista la versión nueva con display de 0.96" y micro ATMega32u4 integrado. Tengo una duda, a ver si alguno me la puede solucionar:
Me sobran dos pines del micro, los que en Arduino controlan los leds RX y TX. Me gustaria usarlos para dos pulsadores que controlen las opciones del programa en Arduino, pero no se si eso es posible con el bootloader de Arduino.
¿Hay alguna manera de desbloquear esos dos pines y usarlos como entradas digitales?
En Atmel Studio ya se que sí, pero desde el entorno Arduino no se si existe la posibilidad.
He encontrado este instructable sobre el tema:
http://www.instructables.com/id/Step-by-Step-Guide-to-the-Arduino-Leonardo/ " onclick="window.open(this.href);return false;
Por lo que dice allí, el pin LED RX puede usarse como D17 (y es el pin PB0). El LED TX (pin PD5) no parece que tenga ninguna asignacion posible.
También he encontrado este include donde se definen los pines del Arduino:
https://learn.adafruit.com/system/assets/assets/000/009/337/original/pins_arduino.h " onclick="window.open(this.href);return false;
Viendo como lo hace, ¿creeis que se podría añadir un pin mas (de los 30 que tiene) para usar PD5 como D30 en Arduino y que eso no interfiera con el bootloader ni el funcionamiento normal?
Estoy fuera unos días y no tengo ninguna placa para probarlo, solo tengo acceso a internet.
No sé cómo va Arduino, pero si pones una resistencia en serie con la entrada digital?, si esos pines solo encienden y apagan dos leds cuando se carga el bootloader y no van conectados a nada más, puedes meter una r en serie. Si durante la carga del bootloader el pin pone a 0 su salida y lo que tienes conectado está a 1 la R limita la corriente y evita el corto, cuando no esté funcionando el bootloader habría que configurarlos como entradas.
En el entorno de Arduino creo que también se puede meter código de avr-gcc? para configurar directamente los pines, en el caso de que se quiera usar alguno sin usar las librerías de Arduino, podrías hacer una función a medida.
Si no has usado los avr te puedo recomendar unos tutoriales 😀