Ya es posible concursar de nuevo en Instructables… o eso parece.

Tengo que desdecirme de mi post sobre la imposibilidad de concursar en instructables, me gustaria pensar que mi queja junto a ese post tuvo algo que ver en el cambio que he podido ver en las condiciones de los concursos aunque seguro que peco de optimista.

En fin, parece ser que ahora salvo que vivas en algun país de lo que EEUU califica como el “eje del mal” se puede concursar.

Asi pues al igual que instructables ha cambiado los requisitos yo cambio mi postura sobre el tema y me arremangaré para presentar algo este verano cuando tenga algo de tiempo… a ver si organizan algun concurso interesante para hacer en julio o agosto.

furri

Adaptador I2C para pantallas LCD con Arduino

Hace mucho que me compré un adaptador I2C para pantallas LCD y hoy por fin lo he probado, el adaptador está basado en el micro PCF8574T y tiene dos conectores, el tradicional de 16 pines en linea para conectar la LCD y los 4 del conector I2C, tambien posee un jumper para habilitar la luz de fondo (que se puede apagar/encender por software) y un potenciometro para regular la luz de los caracteres.

adaptador

Para probarlo he usado una pantalla LCD con luz azul de 2 lineas por 16 caracteres cada una.

lcd

Como en ambos tengo montados pines macho he montado todo sobre una protoboard, solo tener en cuenta que los pines esté correctamente alineados, contad con que el pin 1 es GND que es facil de localizar.

montaje_1

El montaje completo incluyendo las conexiones I2C:

adaptador_I2C_LCD

El código fuente:

// ********************************************************************
// ********************************************************************
/* Demostracion de modulo adaptador I2C LCD
basado en PCF8574T */

#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);

void setup()
{
lcd.begin (16,2); // activamos modulo 16×2
lcd.setBacklightPin(3,POSITIVE);

lcd.home (); // igual que lcd.setCursor(0,0);
lcd.print(” furrichip “);

lcd.setBacklight(LOW); // Apagar luz de fondo
delay(500);
lcd.setBacklight(HIGH); // Encender luz de fondo
delay(500);

lcd.setBacklight(LOW); // Apagar luz de fondo
delay(500);
lcd.setBacklight(HIGH); // Encender luz de fondo
delay(500);

}

void loop()
{
lcd.setCursor (4,1); // empezamos en la segunda linea fila 4
lcd.print(millis());
delay(100);
}

// ********************************************************************
// ********************************************************************

La libreria LiquidCrystal he usado esta:
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads

Solo me queda mencionar que en caso de necesidad podeis cambiar la dirección I2C del adaptador (0x27 por defecto) puenteando los pads A0, A1 y A2, dichos pads están en modo pull-up por lo que su valor lógico es “1”, al puentearlos cambiamos dicho valor a “0” y usando la siguiente tabla podemos ajustar la dirección a nuestras necesidades:

I2C_LCD_Direcciones


Enlaces de interes:

Datasheet PCF8574 de Texas Instruments
Datasheet PCF8574 de NXP
Tutorial PCF8574 en ingles

 

Adios a concursar en Instructables ¿la LPI otra vez?

Me apetecia retomar algun reto de instructables, usandolo como motivación para desarrollar algo interante, util o simplemente divertido. Ya lo hice hace 4 años con el concurso de reciclado.

http://blog.xbot.es/?p=657

Despues de entrar en la web de instructables encuentro algunos concursos accesibles y al mirar las normas me encuentro con la sorpresa de que nadie residente en España puede participar… bueno, si podemos enviar proyectos pero no podrán ser elegidos para ningún premio.

Empecé a escarbar un poco y me encontré esto en la sección de preguntas frecuentes:

I live in -----, why can't I enter?!
Chances are your country has incredibly strict laws regarding gambling, sweepstakes and contests. We try our best to play by the rules, and if we can't meet the minimum requirements to run a contest in your country, we don't run them there!

que traducido asi mas o menos…

Vivo en España, por qué no puedo entrar?!
Es probable que su país tenga leyes muy estrictas en cuanto a juegos de azar, sorteos y concursos.
Hacemos todo lo posible por cumplirlas pero si no podemos cumplir con los requisitos mínimos para hacer un concurso en su país, no lo hacemos.

Entiendo que para esta gente resulte mas facil excluir a los residentes en paises que tienen leyes como la LPI o vete tu a saber si las tenemos peores. Lo que no llego a entender es que en este pais tengamos alguna ley que de una forma o de otra impida que nos premien por nuestras ideas…

Siento el off-topic, pero algo tenia que decir despues de pasarme años pagando un impuesto injusto y abusivo por usar CDs para hacer copias de mis trabajos, cosas como el cierre de google news, zancadillas a la financiación de proyectos via crodfunding, etc, etc, todo gracias a las leyes promulgadas por nuestros politicos que en vez de defender a los que los votan defienden a la SGAE, grupos editoriales y bancos.

Saludos.

Cañon de aire comprimido (1)

Como me sobraban tubos de PVC del ultimo invento he decidido utilizarlos en un proyecto casero que tenia en mente hace tiempo.

La idea es hacer un calderín o camara de presión con tubos de PVC usando como entrada de aire un inflador de bicicleta y como salida una electrovalvula a 12V que permite una apertura muy rapida que es vital a la hora de lanzar objetos.

La valvula de entrada la he sacado de un neumático viejo de mi bicicleta, la electrovalvula la compré hace como dos años en ebay asi que solo quedaba ir a comprar adaptadores variados, un par de terminales ciegos y pegamento para PVC.

He usado tubo de 50mm por que era el que tenia de sobra en mi trastero, me habria gustado usar un tubo mas grueso y asi poder hacer una camara de presión mas compacta y no tan alargada, pero bueno… es lo que tiene el reciclado.

Los componentes:

IMG_20150501_160327

Arriba dos trozos de PVC de 50mm de diametro y 50cm de largo cada uno, total 100cm de largo, al final harán una calderín o camara de presión de algo mas de 1,5 litros.

una T de unión para acoplar la reductora a tubo de 20mm que es donde va el adaptador roscado de la electrovalvula, el resultado final quedará algo asi como esto:

IMG_20150501_160901

Las diferecias de color, unas veces gris (su color real) y otras azul, son debido a cambios en la luz natural y a la camara de mi teléfono movil que no es lo mejor para estos menesteres.

El cortado de tubos se hace facil con herramientas de uso común y asequibles.

IMG_20150501_161509

La unica parte algo mas complicada de este proyecto es la instalación de la valvula de bicicleta, aunque tampoco tiene mucha ciencia, taladro de 8mm y pegado con cola de contacto.

IMG_20150501_161551 IMG_20150501_161645 IMG_20150501_161743

IMG_20150501_160452

Y el resto pegado con pegamento de PVC.

IMG_20150501_162449

IMG_20150501_162557 IMG_20150501_162633 IMG_20150501_162707

IMG_20150501_162911 IMG_20150501_162931 IMG_20150501_163102

Para terminar por hoy solo el detalle de los adaptadores para la electrovalvula, esta no va pegada sino a rosca…

IMG_20150501_160641

Dejaremos que se pegue todo…  hasta el proximo domingo.

furri.

Calibrando brujula CMPS03

Queria recuperar mi vieja brújula CMPS03 y al probarla no daba con el norte ni por casualidad, asi que he tenido que recalibrarla y para ello tuve que buscar bastante hasta dar con una página donde explicaban el proceso.

http://www.robot-electronics.co.uk/htm/cmps3tech.htm

cmps3pin2

El sensor se puede calibrar por I2C o montando un pulsador… asi que opté por este ultimo sistema, el circuito es tan simple como este:

cmps3pin2_circuitoN

Y el proceso es tan sencillo como poner el lado Norte de la brujula apuntando al norte real asi que id buscandoos una brujula “manual”.

Alimentamos el circuito y veremos el led del pin “calibrating” encendido, procedemos a continuación con la siguente secuencia:

– Pulsamos una vez y el led se apagará.
– Giramos 90º a la derecha y pulsamos otra vez.
– Volvemos a girar 90º a la derecha y pulsamos otra vez.
– Volvemos a girar 90º a la derecha y pulsamos otra vez.

Ahora el led deberia haberse encendido de nuevo y eso indica que hemos terminado la calibración la cual se ha quedado guardada en la eeprom del micro y no tendremos que calibrarla mas salvo que tengamos que usarla en un lugar lejano del que hemos hecho la calibración o que se haya desajustado por otros motivos.

 

AtmelStudio y Attiny – ecTiny841 (2-programacion)

Como hacer un programa para Attiny con Atmel Studio no es tan complicado como pudiera parecer, es lo que tiene haber trabajado con PICs durante tantísimos años.

Esta es una actualización de la “guia-burro” que me hice cuando aprendí, en este caso basandonos en este circuito con ecTiny841.

IMG_20150314_201702

Microcontrolador: Attiny841 (oscilador interno)
Pines A0,A1,A2,A3 – leds
Pin A7 – pulsador.
Alimentacion: 3.3V


 

Abrimos Atmel Studio
AtmelStudio62

Creamos un nuevo proyecto.
AtmelStudio62_01

Elegimos el tipo de proyecto, le damos nombre y carpeta donde guardarlo.
AtmelStudio62_02

Ahora elegimos microcontrolador.
AtmelStudio62_03

Ya tenemos un programa en blanco.
AtmelStudio62_04

En el que sustituiremos todo el código fuente por este otro:


 

#include <avr/io.h>
#define F_CPU 8000000UL            //clock frequency
#include <util/delay.h>

int main(void)
{
//A0-A5 salida A6 y A7 entrada
DDRA = 0b00111111;

while(1)
{
if (bit_is_clear(PINA,7)) // mientras PINA7 a nivel bajo
{ PORTA = 0b00000000; } // apago todo
else
{  // secuencia “coche fantastico”
PORTA = 0b00000001;
_delay_ms(150);
PORTA = 0b00000010;
_delay_ms(150);
PORTA = 0b00000100;
_delay_ms(150);
PORTA = 0b00001000;
_delay_ms(150);
PORTA = 0b00000100;
_delay_ms(150);
PORTA = 0b00000010;
_delay_ms(150);
}
}
}


 

Una vez pegado, compilamos (Built Solution) y revisamos la sección “output” para verificar que la compilación ha sido correcta.
AtmelStudio62_05

En este momento ya tenemos un fichero .HEX ubicado en la carpeta donde creamos el programa (ver primeros pasos de este tutorial)  que podemos grabar en el microcontrolador, para grabarlo existen diversas opciones ya sea por que tengamos un grabador integrado con el IDE de AtmelStudio o si por el contrario tenemos un grabador externo, como ejemplo:

– Externo: Grabación con AVRDudeSS y ArduinoISP.
– Integrado: Grabación con MKII y AtmelStudio.

 

 

Grabación con AtmelStudio y MKII

Si dispones de un grabador MKII o un clon del mismo no es necesario salir del IDE de AtmelStudio para grabar tu microcontrolador, siempre y cuando hayas instalado bien los drivers.

Una vez compilado vuestro programa teneis que iros a la opcion Tool/Device Programming.
AtmelStudio62_06

Os aparecerá una pantalla donde podreis verificar el programador, el microcontrolador y el interface, una vez confirmado con “Apply” nos apareceran las opciones disponibles antes de la grabación, en nuestro caso (que hemos hecho todo bien) tan solo seleccionar la opción “Memories” y a continuación ejecutar la grabación con “Program” y veremos el resultado de la grabación.
AtmelStudio62_07

y listo para funcionar…

 

Iniciación con ecTiny841 (1-preparativos)

He dado con un kit de iniciación basado en el Attiny841, para los que quieren algo pequeñito y diferenciarse de todo el mundillo asociado a Arduino, diseñado y montado aqui en nuestro pais y ademas barato, se llama ecTiny841.

Consta de 4 modulos:
IMG_20150314_201702

ecPower con el que podreis alimentar todo el circuito con un cargador de movil.
ecSwitch que es un pulsador con prevención de rebotes incorporado.
ecLeds que no tiene mucha ciencia, 4 leds de distinto color.
ecTiny841 que es la placa principal con el microcontrolador.

Particularmente el ecPower me pareció una verdadera maravilla ya que cada vez que tengo un montaje a 3v3 ando parcheando aqui y allá… con esto ya lo tengo solucionado asi que igual me pido alguna mas.

Primeros pasos:

1) Hardware, comprando el kit ecTiny841 ya tenemos lo suficiente para empezar, tan solo una protoboard y cables para montar el circuito.

2) Software, toca bajarse las herramientas del fabricante, en este caso el programa AtmelStudio (conocido como AVRStudio en versiones anteriores), en mi caso concreto me quedé en la versión 6.2.1153 por compatibilidad con mi programador clon MKII.

3) Programador, aqui me extenderé un poco mas ya que hay un gran abanico de posibilidades, en caso de querer un programador integrado con el IDE de AtmelStudio os aconsejo que os compreis un MKII o compatible, en el caso de que no querais compraroslo o que aún lo estais pensando podeis ir tirando con un ArduinoISP y usando AVRDude como software de grabación.

IMG_20150312_195506AVRISPmkII

 

 

 

 

 

Regrabar Bootloader en una Arduino (2)

Hace casi 5 años ya me encontré con este problema… fastidiar el micro de una arduino (vieja, eso si..) y tener que meter el bootloader de nuevo asi que no me extenderé demasiado ya que podeis leer el artículo de aquella epoca que solucioné con un programador por puerto paralelo muy barato de fabricar.

http://blog.xbot.es/?p=262

Ahora nos encontramos con que pocos ordenadores de sobremesa y ningún portatil trae puerto paralelo por lo que una alternativa USB vendria muy bien y lo que he hecho es aprovechar mi Programador ArduinoISP quedando el montaje tal que asi.

IMG_20150312_195506

En el USB tenemos una Arduino con el programa ArduinoISP (la de color rojo), esa tarjeta, sea la Arduino que sea no es mas que una pasarela hacia la segunda (la de color azul) y es esta ultima la que tenemos que seleccionar en Herramientas/Tarjetas… en mi caso la roja es compatible con Decimilia con micro Atmega168 pero da igual, podria ser una MEGA 2560… tan solo hace de pasarela. La tarjeta azul es una Duemilanove con micro Atmega328, por lo que en la configuración elegiré “Duemilanove w/Atmega328”.

tarjeta

A continuación comprobaremos que hemos seleccionado el programador adecuado.

Prog_ArduinoISP

Y por fin pulsaremos la opción que el IDE de Arduino nos da para programar el bootloader de la tarjeta seleccionada.

Prog_ArduinoISP_2

La arduino (azul) quedará como recien comprada y lista para trabajar.

Hasta pronto.
furri.

Programando ATtiny85 con Arduino

Utilizar micros Attiny puede resolvernos una necesidad por poco dinero y poca complicación a la hora de programarlos, como poco es divertido… 😛

1) HARDWARE.

Antes de nada hay que montar el grabador, bien cableado en una protoboard (no os lo aconsejo) o montaros una shield que os costará un par de euros y un rato soldando.

Para el que quiera cablear en una protoboard, este es el esquema.
esquema_attiny-arduino


2) Preparando el programador.

Para preparar el programador solo tenemos que enchufar una Arduino cualquiera, en mi caso utilizo una Duemilanove pero deberia funcionar con cualquiera.

Verificar que no teneis enchufada ninguna shield ni nada cableado, la Arduino solita.

Seleccionamos el tipo de tarjeta y puerto, a continuación abrimos la carpeta de ejemplos, elegimos “ArduinoISP” y grabamos.

En este momento nuestra tarjeta Arduino se ha convertido en un programador por lo que procedemos a enchufar nuestra placa o cableamos según el esquema del punto 1 de este tutorial.


3) IDE – Preparación del entorno de programación.

Para programar un Attiny85 con el entorno de Arduino tenemos que añadir dicho microcontrolador como si fuera una tarjeta mas seleccionable dentro del IDE de Arduino, esto lo haremos descargando la información de dicho micro e instalandolo en dos pasos simples.

– Descargar cores de microcontroladores Attiny.
En la página de Arduino podeis encontrar diversos cores adecuados a vuestras necesidades y la versión del IDE que tengais.
http://playground.arduino.cc/Main/ArduinoOnOtherAtmelChips

Los cores que tengo instalados en el IDE 1.0.6. los podeis descargar de aqui, incluye los que he ido encontrando por ahí, son los Attiny 24/44/84/25/45/85/13/2313/4313

– Descomprimir
Facil, en la carpeta (Arduino)\Hardware\

– Abrir IDE de Arduino
y verificar en Herramientas/Tarjetas si el sistema las reconoce.


4) Programación del Attiny85

Ya solo queda hacer un programa y grabarlo en el microcontrolador, lo primero que hacemos es irnos a Herramientas/Tarjeta y seleccionamos “Attiny85 @ 1MHz (Internal Oscillator, BOD disabled)”.

Abrimos un ejemplo como el tradicional “BlinkWithoutDelay” y cambiamos el pin 13 por el 0, que en el Attiny85 se corresponde con el pin 5 como podeis comprobar en el siguiente grafico.

ATtiny

Pulsamos el botón de grabar y ya tenemos nuestro primer Attiny85 funcionando en cualquier protoboard con tan solo V+, GND y un led en el pin 5 que deberia parpadear.

Espero que os haya gustado.

furri