martes, 18 de marzo de 2014

Processing con Pinguino X4

Processing con Pinguino X4

En el blog tengo publicaciones previas de como interactuar con la tarjeta Pinguino desde Processing, pero el código correspondiente a la tarjeta Pinguino, ya no es compatible con el nuevo IDE X4, por lo cual al compilarlo generara errores.
La librería correspondiente a Processig sigue siendo la misma y sigue operando bien para la versión actual de Processing.

USB Processing Código Para Pinguino X4

Este código corresponde al modo de operación de comunicación modo Bulk tal como esta para la nueva versión del IDE de programación del la tarjeta Pinguino que tiene instrucciones diferentes para la lectura y escritura.
El siguiente código se probo con un microcontrolador 18f4550 con el bootloader versión 2.12
La conexión la probé desde GNU/Linux con Ubuntu



//Por: Julio Fabio De La Cruz G. 2014
//http://micropinguino.blogspot.com 
//Adaptacion a pinguino X4 para emplear la libreria usbprocessing
//Basado en el trabajo de Stéphane Cousot, Jean-Pierre Mandon y Douglas Edric Stanley.
int i;
int temp;
u8 receivedbyte;
char rbuffer[64];
char sbuffer[2];
void setup(){
    TRISB=0;
    for(i=8;i<=12;i++)
        pinMode(i,INPUT);  
    for(i=21;i<=28;i++)
        pinMode(i,INPUT);
}
void loop(){
    receivedbyte=0;
    if(BULK.available()) 
        do {
            receivedbyte = BULK.read(rbuffer);
        } while (receivedbyte == 0);
    rbuffer[receivedbyte] = 0;
    if (receivedbyte > 0){
      if(rbuffer[0]=='+'){
        if (rbuffer[1]=='C')
            PORTB=0;
        if(rbuffer[1]=='W'){
            if(rbuffer[2]=='D')
                digitalWrite(rbuffer[3],rbuffer[4]);
            if(rbuffer[2]=='A'){
                temp=rbuffer[4]+(rbuffer[5]*256);
                analogWrite(rbuffer[3], temp );
            }
        }
        if(rbuffer[1]=='R'){
            if(rbuffer[2]=='D'){
                sbuffer[0]=digitalRead(rbuffer[3]);
                BULK.write(sbuffer[0], 1);
            }
            if(rbuffer[2]=='A'){
                temp=analogRead(rbuffer[3]);
                sbuffer[0]=temp;
                sbuffer[1]=temp/256;
                BULK.write(sbuffer, 2);
            }
        }
      }
    }
}

martes, 11 de marzo de 2014

Entradas y salidas digitales con la DAQ 6009


Montaje guía para la practica con la daq 6009
El montaje mostrado se empleara para la realización de una practica de electrónica digital con la tarjeta de adquisición de datos de National DAQ 6009.

Materiales

  • 1 DAQ 6009
  • 4 pulsadores
  • 4 Resistencias de 10 Kohm
  • Display de 7 segmentos de cátodo común
  • 15 resistencias de 330 ohm
  • 74LS138
  • 8 LED rojos comunes

Consideraciones en el montaje

  • La alimentación la suministra la tarjeta el cable negro indica tierra y el rojo 5V
  • Los pulsadores están en configuración de Pull Up
  • Los valores de las resistencias no son críticos y pueden sustituirse por valores próximos
  • Tener en cuenta la conexión de los LED dado que el 74LS138 tiene salidas activas bajas, por eso en el esquema el ánodo del LED esta a 5 V. Esto se hace para hacer una configuración en modo de dreno de corriente y encienda el LED cuando la salida en el 74LS138 es baja.

Guías e Información

Prueba básica de entradas y salidas digitales con la daq 6009


viernes, 7 de marzo de 2014

Control de un circuito desde la pantalla con Processing


Activación de una Foto Resistencia o LDR desde Processing.

Para los que recién empiezan a programar y montar pequeños circuitos, se les dificulta hacer aplicaciones de hardware que puedan ser controladas desde un dispositivo móvil o el computador.
Lo que se propone a continuación es el emplear la pantalla del computador y una foto resistencia para activar un LED y un motor, este ejemplo sirve como base para ampliase y controlar más de un circuito.

Circuito Básico

LDR transistor
El circuito básicamente consiste en un divisor de voltaje conformado por una resistencia fija y una foto resistencia. El transistor actúa como un interruptor según la intensidad de luz recibida por la foto resistencia.
Para lograr un ajuste de sensibilidad la resistencia fija del divisor se puede reemplazar por un potenciómetro.
Montaje LDR protoboard
Para el montaje físico se empleo un cable largo para la conexión de la foto resistencia o LDR que es el termino en ingles.



Vídeo que muestra la aplicación

Código en Processing

void setup() {
  size(600, 400);
}
void draw() {
  if (mousePressed) {
    background(255);
  }
  else {
    background(0);
  }
}