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:
#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:
   
  • http://www.4dsystems.com.au


  •    
  • http://arduino.cc/en/Serial/Print
  • Arduino + Sparkfun Keypad 4x3

    - SparkFun Keypad 4x3

    Sparkfun Keypad


    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:
      

  • 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
  • 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?




    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 "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
    Pololu Orangutan USB