loading

Seguridad ante todo! Y en bicicleta con muchas mas razón por eso de regalo de navidad atrasado hice estas luces para mi amigo Cris, son bastante útiles y relativamente fácil de hacer.

En este proyecto vamos a tener un dispositivo con características interesantes: recargable, suficiente poder para unas 15 horas de luz continua y unas 27 de luces parpadeando.

Al utilizar ATTiny, que es el cerebro de este proyecto, necesitamos utilizar un Arduino como programador ISP y preparar el Arduino IDE con el bootloader correcto para este paquete, mas adelante veremos como hacerlo. Tambien podrias hacer esto con un Gemma lo que haría este proyecto ridiculamente facil con algunas desventajas... Pero dónde está la diversión en eso.

Ya que buscamos tener un paquete más compacto usamos un ATTiny 85, Neo-Pixels para simplificar el cableado, una batería 18650 reciclada de una vieja bateria de laptop y cargador TP4056. Si estan en Costa Rica pueden conseguir todo en CRCibernetica.com y les llegan los componentes al dia siguiente, fuera de Costa Rica también pueden pedir solo que va a durar un par de dias mas en llegarles.

Otro hardware que se puede usar es un Arduino Gemma y una batería de Li-Po , pero esta versión gasta un poco más de energía y no cuenta con circuito de carga.

Step 1: Componentes

La lista de componentes no es muy extensa pero la idea de este proyecto es que sea escalable y poco a poco lo hagamos más complejo o podamos usar los componentes en otro proyecto.

Ok! Necesitamos esto:

Agrego los links de CR Cibernetica pero podrían conseguirlo hasta en china, eso si tu seguridad puede esperar unos meses...

Step 2: Preparar El Arduino IDE

Necesitamos agregar el core de arduino para ATTiny 85 que muy amablemente prepararon nuestros amigos de HighLow Tech : MIT Media Lab.

Click AQUI para ir al tutorial completisimo que estos Cracks prepararon.

Step 3: Arduino Como Programador ISP - Quemar Bootloader En ATTiny 85

Placas como el Arduino UNO, Arduino Leonardo o Arduino Micro vienen con algo que conocemos como bootloader, esto los deja comunicarse como el Arduino lo hace y facilitar el proceso de programación.

Pero antes de llegar a poder programar un Arduino con un blink primero se tiene que preparar con el Bootloader.

Así que una vez tengas el soporte de ATTiny instalado vamos a preparar el Arduino como programador ISP y acto seguido vamos a "Quemar el Bootloader" al ATTiny.

PRIMERO iras a los ejemplos de Arduino IDE y en numero 11 de la lista superior encuentra ArduinoISP, abres el Sketch y lo subes a tu Arduino UNO. No voy a explicar mucho lo que esto hace, pero a grandes rasgos usa los puertos de ISP para programar el otro dispositivo.

Te recomiendo usar un Arduino UNO lo conectas a tu compu y subes este sketch, esto lo deja listo como programador.

Luego tienes que conectar el ATTiny a tu Arduino como lo muestra la imagen de este paso.

Una vez esta queda listo debes hacer esto:

  1. "Herramientas -> Programador" y escoger "Arduino as ISP"
  2. "Herramientas -> Placas ATTiny 25/45/85"
  3. "Herramientas -> Procesador -> ATTiny 85"
  4. "Herramientas -> Clock -> Internal 8 Mhz"
  5. "Herramientas -> Quemar Bootloader" Esperas unos segundos, si todo esta bien conectado debería de funcionar.

En caso de que el quemado del bootloader falle, debes revisar el cableado.

Felicidades! Tu ATTiny 85 está listo para ser programado, para subir tu sketch.

Step 4: Pequeño Y Poderoso

Nuestro ATTiny 85 ya está listo para funcionar como un Arduino pequeñito, pero al tener un paquete pequeño tenemos características especiales:

  1. 5 pines digitales
  2. 3 pines análogos
  3. SPI
  4. 8K de memoria
  5. Clock interno de 8 Mhz

En comparación al Arduino UNO tiene la mitad de la velocidad y una cuarta parte de la memoria pero el ATTiny sigue siendo un microcontrolador de 8-bits.

Claramente tenemos que ser más eficientes con el código pero tenemos la oportunidad e tener un paquete mas pequeño e igual de funcional.

Step 5: Prototipo En BreadBoard - ProtoBoard

El esquemático muestra como tiene que ir todo conectado pero lo más importante es saber donde están conectados los Neo-Pixels y el botón.

Los Neo-Pixel son delicados, el pin de datos se puede dañar muy fácilmente si no se hace el circuito bien. Es IMPORTANTE poner una resistencia de 300-400 ohm entre el pin de datos y a salida del ATTiny 85 y del arduino en cualquier otro proyecto. Estos leds también necesitan energía constante por eso ponemos un capacitor electrolítico de 1000 - 1500 uF de al menos 6 voltios.

La razón por la cual agregamos una resistencia de 10K es para hacer el botón con un PullDown, esto quiere decir que mientras no presionamos el botón vamos a mandar negativo por la resistencia, y al presionar enviamos positivo.

Una vez armado el circuito subimos el sketch, siempre utilizando su Arduino Uno(o el que tengan) como programador, importante tomar en cuenta que el puerto serial tiene que apuntar a este arduino.

Prueba que todos los modos del botón funcionen, esto es lo que debería de pasar:

  1. Al encenderse las luces deben de estar en rojo. En el sistema el contador en este momento está en cero.
  2. Presiona una vez y las luces tiene que parpadear en rojo. El contador ahora está en uno.
  3. Vuelve a presionar, cambia a color amarillo, el valor del contador es 2.
  4. Presiona botón y las luces parpadean en amarillo, contador en 3.
  5. Vuelve a presionar el botón y las luces regresan a rojo.

En el paso 5 al presionar el botón el contador suma a 4, en el loop cuando el contador es 4 se reinicia a 0 y las luces vuelven a rojo.

Para hacer que el botón funcione correctamente no utilizamos delay excepto después de la lectura del pin digital al que lo conectamos, esto para no retrasar el encendido de las luces.

Step 6: Armando El Circuito Final

Siguiendo el esquemático armamos el circuito en el siguiente orden:

  1. Poner las luces en la configuración que quieran.
  2. Soldar cables para positivo y negativo de la batería.
  3. Poner los cables de entrada del neopixel, agregar la resistencia y el capacitor.
  4. Soldar circuito del botón y ponerlo en la posición deseada, yo lo ubique en el frente de las luces.
  5. Soldar positivo de la batería a la salida"BAT+" del cargador.
  6. Unir todos los cables de positivo en una sola terminal, esta terminal sera el poder del circuito. (ATTiny, Button y luces).

  7. Agregar el switch de encendido y apagado en medio de la linea de la batería y el poder del circuito.
  8. Soldar lineas de positivo y negativo al ATTiny.
  9. Soldar linea de datos del Neopixel al Pin Digital 3 del ATTiny 85.
  10. Soldar linea del botón al Pin Digital 4 del ATTiny 85.

  11. Unir todos los cables del negativo en una sola terminal incluyendo el de la batería.
  12. Soldar todas las terminales negativas a la salida de "BAT-" en el cargador.
  13. Agregar termo-encogible / tape para evitar cortos circuitos.
  14. Proteger el ATTiny en un trozo de termo-encogible / tape.

Listo!! prueba que las luces enciendan y el botón funcione.

Step 7: Empaque / Enclosure / Case

Esta es la parte que es 100% "Hecho en casa", le hacen el case de la forma y el material que quieran.

En mi caso usé un Termo-encogible de dos pulgadas en el que todo cabe cómodamente y me iba a dar un case ligeramente "Impermeable". Y se ve muy cool!

Solo recordar dejarle el espacio para poder acceder al puerto micro-usb para cargar la batería y al botón. Claramente las luces también tienen que estar expuestas, la idea es que se vean...

Step 8: Instalación

La instalacion tambien es "al gusto", estas luces las hice para mi amigo Cris, puse las luces en el asiento para que fuera más "fácil" cargarlo. Saca el asiento se lo lleva al cuarto y lo pone a cargar.

O lo conecta en la cochera, da igual...

Espero que les sea de mucha utilidad, si tienen alguna duda me dicen en los comentarios, el código es bastante sencillo.

Happy Making/Coding!!!

<p><font><font> These are really useful, great setup :)</font></font></p>
<p>All yours amigooo!</p>

About This Instructable

301views

2favorites

License:

More by techboycr:Luces de Seguridad para Bicicleta / ATTiny - NeoPixels -  
Add instructable to: