Arbol Navidad

De Proyectos
Saltar a: navegación, buscar

Propósito

El objetivo es construir un PCB para hacer pruebas de soldado en Horno Reflow.En vez de diseñar la típica placa cuadrada con elementos smd podria hacer un arbol de navidad que llevase leds, integrados, resistencas, condensadores, ...También queria aprender a hacer diseño de pads smd. Para la teoria del diseño de pads smd he abierto otra entrada en la wiki, Soldadura SMD.

La placa debe llevar alimentación por bateria porque debe servir para poder colgarse en un arbol de navidad o de cualquier otra parte. Por lo tanto debe llevar una o dos baterias de boton.

Utilizaré un attiny85 por su reducido tamaño y consumo. Será la primera vez que trabaje con un microcontrolador no oficial arduino y que implante en una pcb hecha por mi mismo, lo que he ido haciendo hasta ahora eran shields para arduino. Por suerte, el attiny85 no necesita de elementos exteriores (cristales, condensadores o resistencias) para funcionar, solo unos conectores para poder programarlo via ISP.

Para poder controlar los leds teniendo un microcontrolador con tan pocas salidas utilizaré un PCF8574, aunque mientras he ido investigando también me he encontrado con otra solución muy elegante y que me gustaria probar en otra ocasión, DM631

La idea original era hacer la secuencia de leds con puertas lógicas, pero no encontré la manera de hacerlo. De momento lo haré con un microcontrolador y ya en el futuro a ver si encuentro la manera, o a lo mejor es que no se puede.

Electrónica

Lista de componentes (BOM)


PCB v3.1
Componente Características Encapsulado Unidades Precio
Led LED Kingbright, Rojo,
617 nm, 15 mcd, 2,5 V, 120°
1206 8u 0,077 X 8u = 0,616€
Resistencia 82 Ohm
Para los leds
1206 8u
Resistencia 2K2
Estabilizar lineas SDA/SCL
1206 2u
Resistencia 1K
Aislar SDA/SCL programador
1206 2u
Resistencia 10K
PullUp pulsador
1206 1u
Condensador 100nF
Desacoplo
1206 2u
Attiny85 Attiny85-20SH
8bits, 8KB Flash
512Bytes RAM 20Mhz
SOIC8 1u 1,025€
PCF8574 PCF8574
Remote 8-bit I/O expander
for I2C-bus
SO16 1u 0,67€
Porta pilas Keystone Battery Contact for 1
Top Spring Arm Contact
24mm Cell Diameter
1u 1,008€
Bateria CR2450 3V 610mAh
Lithium Manganese Dioxide Coin
1u 1,648€
Switch Alps SSSS213000
SPDT 0.3A PTH
1u 0,938€
Buzzer Buzzer activo 4 a 7 Vdc
12mm diámetro
Separación Pins : 7,6mm
Corriente Máxima: <30mA
1u 0,53€
Pulsador C&K PTS641 Series
Interruptores táctiles 50mA 250VAC
1u 0,11€
Total 6,545€


Esquemáticos

v1

  • Esquemático Arbol Navidad V1
  • PCB Arbol Navidad V1
  • En esta primera versión he hecho un arbol navideño muy grande. He puesto 22 leds y he necesitado 3 shift registers PCF8574. Lo he diseñado con dos baterias de botón puestas en seire para obtner 6 voltios, pero realmente con las dos puestas en paralelo (para tener el doble de capacidad) dando 3 voltios me daba para alimentar el attiny85 y los PCF8574.
  • El tamaño es enorme y mas para una placa de entrenamiento en soldadura smd por Horno Reflow. Además encontré este proyecto de Sean Hodgins, Christmas Ornaments y me parece un tamaño mas lógico, así que cambié a la versión 2.
  • Aún no habia aprendido que la capa Edge.Cuts permite cualquier forma y no sabia que los fabricantes de PCB te podian cortar la placa en la forma que les digas, así que en la imagen de la pcb se ve una pcb cuadrada.
  • Otro punto en contra es que al tirar pistas he cambiado la inclinación para adaptarme al contorno del árbol, y esos es un error porque acaba complicandose el diseño del pcb. Lo he hecho para que quedara más estético pero es contraproducente.

v2

  • Esquemático Arbol Navidad V2
  • PCB Arbol Navidad V2
  • En esta versión ya he utilizado la capa Edge.cuts pero he dibujado la forma del arbol con las herramientas que trae el Kicad. Me ha quedado bastante mal.
  • He reducido el tamaño del pcb y el número de leds. Al reducir el número de leds he puesto solo un PCF8574.
  • He mantenido las dos baterias en serie para poder tener 6v para alimentar el circuito, pero luego me di cuenta que con 3v tengo bastante.

v3

  • Esquemático Arbol Navidad V3
  • PCB Arbol Navidad V3
  • Al final he sacado el dibujo de una imagen de google. La he convertido a vector ustilizando el Corel Draw y después a la capa Edge.Cuts
    • Para poder convertir una imagen/vector a componente de Kicad se pueden seguir los pasos de la web de cascologix.com
    • Lo primero es crear una imagen del contorno y guardarla en png
    • Luego con la utilidad que trae el Kicad, Bitmap2Component, cargamos esta imagen y en Opciones ponemos Negativo.
    • Nos fijamos en Información del Bitmap/Tamaño. Si el tamaño es igual al que hemos diseñado todo perfecto.
    • Exportamos el bitmap a .kicad_mod
    • Si el tamaño del componente no es el mismo que el del contorno que hemos creado deberemos ir a la web escalalibre.com para ajustar la escala del componente. Pero creo que con la versión de Kicad 4.0.4 no hay ese problema
    • El último paso es abrir el componente con un editor de texto y cambiar la capa donde está el dibujo. Esta capa empieza con (fp_poly .... Al final de todo cambiamos (layer F.SilkS) por (layer Edge.Cuts)
    • Ahora ya podemos pegar el archivo en la carpeta de la libreria que queramos y cargarlo desde el Kicad
  • He cambiado las dos baterias por una sola. Con 3V ya alimento el cricuito y con las baterias de boton que he encontrado puedo tener hasta 1000mhA que es muy superior al consumo que tendrá el circuito

v3.2

  • Esquemático Arbol Navidad V3
  • PCB Arbol Navidad V3
  • PCB Arbol Navidad V3
  • He agregado un buzzer para que suene una melodia navideña mientras los leds se encienden y apagan. En total pondré 4 melodias.
  • El hacer varias tareas a la vez (encender los leds, reproducir una melodia y leer un pulsador) va a ser un reto a nivel software. Tuve que estudiar la manera de hacer multitarea con arduino (que no es multitarea real, realmente simula hacer multitarea, pero cambia tan rapido entre tareas que a nosotros nos parece que es multitarea)
  • He puesto un pulsador para cambiar de melodia y que si aprieto durante 1 segundos se apaga la melodia pero continuan los leds
  • He añadido el interruptor para apagar el arbol

Software

enlaces multitarea




CODIGO

  • Lights
  • Musica
    • Switch con las 4 canciones. Variable song controla que cancion se esta reproduciendo
    • funcion playMusic recibe: frecuencias, duracion del tono, duracion de la pausa de esa frecuencia y numero de notas de la cancion
    • funcion playMusic:
      • siempre que haya notas en el array:
        • miramos que la nota que vamos a reproducir es la nota actual
        • llamamos a la funcion tone pasandole la frecuencia de la nota y su duracion
        • reseteamos el contador tBuzzer
        • pasamos a la siguiente nota
        • ahora tenemos que esperar el tiempo que marca la duracion de la pausa de esta nota antes de tocar la siguiente
        • Cuando ya ha pasado ese tiempo marcamos la nota actual como lo que era la nota siguiente y volveremos a llamar a tone con la nueva nota
      • Cuando ya no hay notas en el array pasamos a la siguiente cancion con nextSong()
  • Leer boton
    • Debounce no bloqueante
      • Cuando boton pulsado (flanco subida) mido tiempo boton pulsado
      • Si menos de un segundo llamo a nextSong()
      • Si mas de un segundo apago musica

Resumen

  • Creacion perfil Edge.Cuts

Enlaces

  • cascologix.com - Guia de como convertir imagen PNG a componente Kicad en la capa Edge.Cuts
  • escalalibre.com - Modificar escala de un componente Kicad




Cosas que quedan por hacer