Ya estan aqui las gastadas, se acercan multitud de horas de entretenimiento frikil.
Contenido:
6 x panel pvc amarillo 30x40mm
3 x Receptor IR TSOP4838
1 x Cable adaptador mando PS2
1 x separadores 20mm
lunes, 29 de junio de 2009
Recepcion IR con Arduino (protocolo NEC)
Lo que tenemos aqui es un receptor IR 38khz TSOP4838 y la idea es programar el Arduino para que reciba los codigos IR de mandos a distancia, en concreto los mandos que he probado parecen usar el protocolo NEC que esta bastante extendido
El primer paso es conectar el receptor IR como se ve en la foto, con el positivo a una resistencia de 220 ohm, aqui abajo se muestra el esquema de conexionado del datasheet, pero voy a obviar algunos componentes por simplificar la tarea.
Seguidamente nos descargamos la libreria NECIRcv de http://wikiputer.org/arduino/NECIRrcv.zip y la copiamos el directorio usual arduino-013/hardware/libraries/
Podemos cargar el ejemplo que viene con la libreria pero hay que añadir un include al principio para que la compilacion no de errores, quedaria como lo siguiente:
// look for IR codes and print them as they are received
#include <WProgram.h>
#include <NECIRrcv.h>
#define IRPIN 8 // pin that IR detector is connected to
NECIRrcv ir(IRPIN) ;
void setup()
{
Serial.begin(9600) ;
Serial.println("NEC IR code reception") ;
ir.begin() ;
}
void loop()
{
unsigned long ircode ;
while (ir.available()) {
ircode = ir.read() ;
Serial.print("got code: 0x") ;
Serial.println(ircode,HEX) ;
}
}
Una vez compilado y subido al arduino abrimos la consola serie y pulsando alguno de los botones de los mandos los codigos HEX salen en pantalla
Mandos usados para las pruebas, mando para receptor Yamaha RX-V340 y mando para sintonizador TDT-USB Zappa:
Referencias:
- post original: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556/0
- informacion util sobre protocolos IR: http://www.sbprojects.com/knowledge/ir/ir.htm
Mas gastadas, MicroFresadora Proxxon MF70 + motores CENECE 23HR56
Llegaron las ultimas gastadas para el proyecto del cacharro CNC, aqui estan algunas imagenes ilustrativas de los elementos:
motores Cenecé 23HR56 de 400 pasos:
motor encima de una misteriosa caja
el carton lleva dentro un misterioso contenido
aqui esta el ansiado articulo
mesa de coordenadas que lleva la maquina
en el interior esta lo interesante
varios angulos del aparato
Referencias:
http://www.cenece.com
http://www.proxxon.com/
motores Cenecé 23HR56 de 400 pasos:
motor encima de una misteriosa caja
el carton lleva dentro un misterioso contenido
aqui esta el ansiado articulo
mesa de coordenadas que lleva la maquina
en el interior esta lo interesante
varios angulos del aparato
Referencias:
http://www.cenece.com
http://www.proxxon.com/
viernes, 17 de abril de 2009
Arduino + LM35
Para poder leer la temperatura del sensor LM35 en Arduino solo hay que conectar el sensor como el siguiente esquema:
Donde R1 es una resistencia de 100K conectada a tierra formando un "Pull-Down", una vez hecho esto cargamos el siguiente codigo en el IDE de Arduino y abrimos el puertos serie donde deberia mostrar cada 5 segundos la temperatura recogida.
PD: lo mas importante precio menos de 2€
/*
*
* Lectura de temperatura de sensor LM35
*
* LM35 pinout
* pin Vs a arduino +5V
* pin Vout a analogpin y resistencia de 100K a GND (Pull-Down)
* pin GND a arduino GND
*/
int analogPin = 0; // Pin analogico 0 de Arduino
int temperature = 0;
int lm35read;
void setup()
{
Serial.begin(9600);
}
void loop ()
{
lm35read = analogRead(analogPin);
temperature = (5.0 * lm35read * 100.0)/1024.0;
Serial.print(temperature);
Serial.println("C");
delay(5000);
}
Referencias:
Ultima gastada, controladora CNC 3 ejes
Ya me llego la controladora para el proyecto CNC que estoy montando, seguire informando de los avances de la construccion del cacharro.
Caracteristicas:
Stepperworld FET-3, controladora por puerto paralelo de 3 Ejes con soporte de motores paso a paso unipolares de hasta 15A por fase, lleva 12 transistores Mosfets, 2 salidas auxiliares TTL para relés y 3 entradas para interruptores de fin de carrera.
Referencias:
http://www.stepperworld.com/fet3.htm
lunes, 16 de marzo de 2009
Video con µoled-128-G1 + Arduino
Aqui esta el esperado video de ejemplo de Arduino controlando un display µoled-128-G1 reproduciendo video.
PD: en la realidad se ve mejor el display, es cosa del video
El ejemplo usado es el siguiente:
Libreria: Uoled_latest.tar.gz
Manual de usuario: uOLED-128-G1_Users_Manual_Rev1.0.pdf
Referencias:
http://www.4dsystems.com.au
http://arduino.cc/en/Serial/Print
PD: en la realidad se ve mejor el display, es cosa del video
El ejemplo usado es el siguiente:
#include <oled.h>
void setup() {
Serial.begin(9600);
pinMode(8, OUTPUT); // sets the digital pin as output
//function from Oscar's library, using pin8 to control reset of the OLED
OLED_Init();
//cler screen
OLED_Clear();
}
void loop() {
// Video
Serial.print(0x40, BYTE); // extCmd
Serial.print(0x56, BYTE); // @V Play video
Serial.print(0, BYTE); // x
Serial.print(0, BYTE); // y
Serial.print(128, BYTE); // width
Serial.print(128, BYTE); // height
Serial.print(16, BYTE); // colourMode
Serial.print(0, BYTE); // delay in milliseconds
Serial.print(0x2, BYTE); // frames msb
Serial.print(0x2c, BYTE); // frames lsb ( 022C = 556 frames)
Serial.print(0, BYTE); // sectorAdd hi
Serial.print(16, BYTE); // sectorAdd mid
Serial.print(0, BYTE); // sectorAdd lo
OLED_GetResponse();
}// end loop
Libreria: Uoled_latest.tar.gz
Manual de usuario: uOLED-128-G1_Users_Manual_Rev1.0.pdf
Referencias:
Arduino + Sparkfun Keypad 4x3
- SparkFun Keypad 4x3
![Sparkfun Keypad](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sXfey-x6rpUPWg6KqxlgpoguUvfHbw0U8M75sSYz0RzQPPutMLvu2lF8d-geY_JkH_PAxyZLxfEdZHARgthM5n4az01W0ty1GFSs7my1uIMOXTtWVCuUkcROtrX0XaP5zWieK9yGJh=s0-d)
Para hacer funcionar este keypad con Arduino hay que realizar una serie de modificaciones en la libreria (ver descarga al final del post), ya que este modelo de keypad usa un pineado no standard, ademas aprovechando las caracteristicas del microcontrolador Atmel168 usaremos los "pull-ups" internos para ahorrarnos un par de resistencias en las entradas. Ver el enlace sobre sobre DigitalPins en arduino mas abajo para leer mas sobre los "pull-ups".
Editar el archivo "keypad.cpp"
- Cambiar los defines:
- Por los siguientes:
Editar el archivo "keypad.cpp"
- Una vez hecho las modificaciones y subido el programa al Arduino procedemos a conectar los pines como lo siguiente:
- Una vez ejecutandose en el Arduino debemos ver los numeros pulsados en el "serial-monitor" del IDE del Arduino
- Finalmente el resultado se veria asi (el video no esta sincronizado lo se)
Libreria: http://www.arduino.cc/playground/uploads/Main/matrixKeypad.zip
Referencias:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1209003950/0
http://www.arduino.cc/en/Tutorial/DigitalPins
http://www.arduino.cc/playground/Main/KeypadTutorial
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1235495599/0#0
Para hacer funcionar este keypad con Arduino hay que realizar una serie de modificaciones en la libreria (ver descarga al final del post), ya que este modelo de keypad usa un pineado no standard, ademas aprovechando las caracteristicas del microcontrolador Atmel168 usaremos los "pull-ups" internos para ahorrarnos un par de resistencias en las entradas. Ver el enlace sobre sobre DigitalPins en arduino mas abajo para leer mas sobre los "pull-ups".
Editar el archivo "keypad.cpp"
- Cambiar los defines:
#define COL0 6
#define COL1 5
#define COL2 4
#define COL3 7
#define ROW0 3
#define ROW1 2
#define ROW2 1
#define ROW3 0
- Por los siguientes:
#define COL0 11 // #05
#define COL1 12 // #01
#define COL2 13 // #03
#define COL3 5 // not used as this is a 3 Col x 4 Row keypad
#define ROW0 7 // #02
#define ROW1 8 // #07
#define ROW2 9 // #06
#define ROW3 10 // #04
Editar el archivo "keypad.cpp"
Seccion original "solo funcion init"):
void keypad::init ()
{
for (int c=0; c<num_cols; c++)
{
pinMode(col[c],OUTPUT); // Set column pins as outputs for writing
digitalWrite(col[c],HIGH); // Make all columns inactive to start with.
}
col_select = 0; // Start with the first column.
}
New: "añadir el texto marcado en rojo"
void keypad::init ()
{
for (int c=0; c<num_cols; c++)
{
pinMode(col[c],OUTPUT); // Set column pins as outputs for writing
digitalWrite(col[c],HIGH); // Make all columns inactive to start with.
}
for (int r=0; r<num_rows; r++)
{
digitalWrite(row[r],HIGH); // Make all rows turn on pullup resistor.
}
col_select = 0; // Start with the first column.
}
- Una vez hecho las modificaciones y subido el programa al Arduino procedemos a conectar los pines como lo siguiente:
Row0 = keypad pin 2 -> Arduino pin 7
Row1 = keypad pin 7 -> Arduino pin 8
Row2 = keypad pin 6 -> Arduino pin 9
Row3 = keypad pin 4 -> Arduino pin 10
Col0 = keypad pin 3 -> Arduino pin 11
Col1 = keypad pin 1 -> Arduino pin 12
Col2 = keypad pin 5 -> Arduino pin 13
- Una vez ejecutandose en el Arduino debemos ver los numeros pulsados en el "serial-monitor" del IDE del Arduino
- Finalmente el resultado se veria asi (el video no esta sincronizado lo se)
Libreria: http://www.arduino.cc/playground/uploads/Main/matrixKeypad.zip
Referencias:
jueves, 12 de marzo de 2009
Tutorial de display slideshow con uOLED-128-G1 paso a paso
- Primer paso, descargar e instalar el programa Graphics Composer de la pagina del fabricante: "http://www.4dsystems.com.au/downloads/Graphics_Composer/Ver2.XX/GraphicsComposer.zip"
- Una vez instalado, crear un nuevo proyecto con "File->New" y añadir las imagenes con "Add->Multiple->Image":
- IMPORTANTE el programa deja mucho que desear en cuanto al tratamiento de imagenes, con lo cual para evitar problemas es muy recomendable tratar las imagenes con algun software de edicion (Ej. Irfanview) y reescalar las imagenes a 128x128 pixeles, esto evitara futuros dolores de cabeza y frustraciones.
- Despues de añadir las imagenes quedaria como lo siguiente:
- Para poder visualizar la secuencia correctamente añadiremos un delay de 4 segundos entre fotograma para poder ver cada imagen correctamente
- Quedando como lo siguiente:
- A continuacion entraremos en el menú de opciones de carga donde elegiremos la unidad donde tendremos la tarjeta micro-sd, mediante un adaptador usb, lector de tarjetas o similar
- En este caso elegiremos la opcion "Serial Command Platform" ya que es la que viene por defecto, y la letra que corresponde a la tarjeta micro-sd
- Finalmente pulsar en el boton de "Load Device"
- Si todo el proceso fue correcto, deberia aparecer la siguiente imagen mostrando el resultado:
- Aqui esta el video del resultado final, una linda secuencia de imagenes de bellas marmotitas, acaso no son adorables?
- Una vez instalado, crear un nuevo proyecto con "File->New" y añadir las imagenes con "Add->Multiple->Image":
- IMPORTANTE el programa deja mucho que desear en cuanto al tratamiento de imagenes, con lo cual para evitar problemas es muy recomendable tratar las imagenes con algun software de edicion (Ej. Irfanview) y reescalar las imagenes a 128x128 pixeles, esto evitara futuros dolores de cabeza y frustraciones.
- Despues de añadir las imagenes quedaria como lo siguiente:
- Para poder visualizar la secuencia correctamente añadiremos un delay de 4 segundos entre fotograma para poder ver cada imagen correctamente
- Finalmente pulsar en el boton de "Load Device"
- Si todo el proceso fue correcto, deberia aparecer la siguiente imagen mostrando el resultado:
- Aqui esta el video del resultado final, una linda secuencia de imagenes de bellas marmotitas, acaso no son adorables?
miércoles, 11 de marzo de 2009
martes, 10 de marzo de 2009
µOLED-128-G1
Video del display oled µOLED-128-G1 conectado mediante un adaptador usb-serie µUSB-CE5 al PC
jueves, 5 de marzo de 2009
Reprogramacion de Arduino bootloader con Pololu Orangutan USB
Sencillos pasos para subir el bootloader al Arduino mediante el programador Polulu Orangutan via conector ISP
- Abrir el archivo "
- Abrir arduino y elegir menu "Tools->Burn Bootloader->w/AVR ISP v2"
Y success!!!
Fotos de referencia:
- Programador Pololu Orangutan USB
- Abrir el archivo "
arduino-012/hardware/programmers.txt
" y añadir:avrispv2.name=AVR ISP v2
avrispv2.communication=serial
avrispv2.protocol=avrispv2
- Abrir arduino y elegir menu "Tools->Burn Bootloader->w/AVR ISP v2"
Y success!!!
Fotos de referencia:
- Programador Pololu Orangutan USB
sábado, 21 de febrero de 2009
Recuperacion de bootloader en Arduino
No es nada extraño que por algun problema hardware/software el bootloader del arduino quede corrupto y no se pueda volver a subir sketchs para mucha gente es un error faltal y creen que ya no se puede recuperar, pero no es asi la cosa pues hay varias alternativas para volver a cargar el bootloader.
La opcion mas facil, rapida y asequible es una que realizando una pequeña modificacion en la propia placa de arduino podemos volver a cargar el bootloader y revivir nuestra plaquita alegrandonos el dia, este sistema usa el modo BitBang del chipset usb-serie que lleva incorporado el arduino permitiendo usarlo como programador AVR.
En este enlace se puede ver como se realiza el asunto: http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html
La opcion mas facil, rapida y asequible es una que realizando una pequeña modificacion en la propia placa de arduino podemos volver a cargar el bootloader y revivir nuestra plaquita alegrandonos el dia, este sistema usa el modo BitBang del chipset usb-serie que lleva incorporado el arduino permitiendo usarlo como programador AVR.
En este enlace se puede ver como se realiza el asunto: http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html
Suscribirse a:
Entradas
(
Atom
)