martes, 12 de abril de 2011

Calculo del factorial usando recursividad

El siguiente código usa recursividad como alternativa a la forma iterativa de hallar el cálculo de un numero factorial.

/*************************************************************************
*Autor: *
* Carlos Lino Rengifo
* Usando Parte del codigo del Ing Julio Fabio
* De La Cruz
* *
*Descripcion: *
* Ingreso de datos desde teclado, utilizacion de funciones *
* Calculo del factorial de un numero usando recursividad. *
**************************************************************************/
String sNum="";
String sNum2="1";
void setup (){
size (400,400);
}
void draw (){
background(0);
fill (255,0,0);
text ("Digite un numero",10,20);
text (sNum,10,40);
text (sNum2+"! = "+nCalculoFactoria(int(sNum2)),10,60);
}
/*=========================================================================
Funciones
===========================================================================*/
//Lectura de un valor desde teclado
void keyPressed (){
  if (key=='\n') {
    sNum2=sNum;
    sNum="";
  }else
    sNum=sNum+key;
}
//Calculo del factorial
int nCalculoFactoria(int Numero){
  if (Numero == 1 || Numero == 0){
    return 1;
  }
  else{
    return(Numero*nCalculoFactoria(Numero-1));
  }
}

lunes, 11 de abril de 2011

Modificación de un servo para rotación continua

Aqui estan los enlaces que muestran como modificar un servo motor para rotación continua.
Para operarlos como un motor DC normal, hay que deshabilitar el circuito interno y conectar el motor como si se tratara de uno normal DC.
Para operar el motor DC se necesita un puente H, se puede utilizar el L293 o el L298
Enlaces sobre modificación del servo
http://my.opera.com/gatodrolo/blog/modificar-un-servo-para-conseguir-movimiento-rotativo-continuo
http://www.roboticapy.com/servo2.asp

Fuentes de letras para utilizar en processing

MgOpenModata

Estas fuentes son libres
http://www.wazu.jp/index.html
Estas aparecen en varias categorias de uso
http://es.fonts2u.com/category.html?id=36
Para utilizarlas en processing se guarda el archivo de la fuente en la carpeta data

domingo, 10 de abril de 2011

Calculo de un factorial en processing

Este es un ejemplo de como ingresar valores desde teclado y sobre la utilización de funciones, en este caso una función para calcular el factorial de un numero.


/*************************************************************************
*Autor:                                                             *
*           Julio Fabio De La Cruz Gomez                                 *
*                                                                        *
*Descripcion:                                                            *
*            Ingreso de datos desde teclado, utilizacion de funciones    *
*            Calculo del factorial de un numero                          *
**************************************************************************/
String sNum="";
String sNum2="1";
void setup (){
  size (400,400);
}
void draw (){
  background(0);
  fill (255,0,0);
  text ("Digite un numero",10,20);
  text (sNum,10,40);
  text (sNum2+"! = "+nCalculoFactoria(int(sNum2)),10,60);
}
/*=========================================================================
  Funciones
===========================================================================*/
//Lectura de un valor desde teclado
void keyPressed (){
  if (key=='\n')  {
    sNum2=sNum;
    sNum="";
  }else
    sNum=sNum+key;
}
//Calculo del factorial
int nCalculoFactoria(int Numero){
  int nFactorial;
  int i;
  nFactorial = 1;
  for(i=Numero;i>=1;i--){
    nFactorial = nFactorial*i;
  }
  return nFactorial;
}

Robotica BEAM

Para ultima parte del curso de introducción a la ingeniería electrónica, esta como propuesta la construcción de un robot beam.
Este tipo de robots no utiliza microcontroladores para gobernar su comportamiento, utiliza componentes simples y su contruccion es un muy buen proyecto para los estudiantes de primeros semestres de ingeniería y tecnología que tengan su interés en la robotica.
Aqui dejo algunos enlaces para que se vayan informando de que trata y piensen como pueden hacer su robot.
Definiciones e introduccion a la robotica BEAM
http://www.uco.es/~i02digoe/BEAM%20WEB/BEAM.htm
Un pequeño robot, explicación y circuito
http://www.webelectronica.com.ar/news14/nota08.htm
Pagina con muchos robots
http://www.tombot.net/beamrobots.html
Videos de robots que utilizan un motor para caminar (el que sugiero que realicen)
http://www.youtube.com/watch?v=bxxmN2sQvjk&feature=related
http://www.youtube.com/watch?v=chciyjCAubg&feature=related
http://www.youtube.com/watch?v=L984o5mT9HI&feature=related
http://www.youtube.com/watch?v=Lb7EpbHzcrs&feature=related
Pagina wiki de robotica beam
http://www.beam-wiki.org/wiki/Main_Page
Ejemplos con planos
http://www.beam-wiki.org/wiki/Freeform_Microcore_Walker_Tutorial
http://www.beam-wiki.org/wiki/Andrew_Miller's_2-Motor_Walker_Tutorial
http://www.beam-wiki.org/wiki/UCrawler
http://www.beam-wiki.org/wiki/%22Dummy%22_%26_%22Not_so_Dummy%22_Walkers

miércoles, 6 de abril de 2011

Juego que aplica movimiento parabolico

Este es un juego que realizo un estudiante de segundo semestre de Ingenieria Electronica de la UNIAJC
El juego lo realizo en processing .
Aqui pueden descargar el juego en processing.
https://sites.google.com/site/camachomedia/home/archivos/movparabolico.zip?attredirects=0&d=1
Agradesco a Carlos Andres Betancourt por su colaboración con este juego.
Invito a los demas estudiantes que deseen mostrar sus juegos o aplicaciones en processing me las envien para publicarlas en el blog

martes, 5 de abril de 2011

Flisol Cali

Me gustaria invitarlos a que asistan al flisol aqui en cali. Sera en la universidad libre. Pueden cosultar en este enlace la programacion del evento.
http://flisol.info/FLISOL2011/Colombia/Cali
En la charla 09:00am Software Libre en la UNIAJC / Alexis Ramirez, UNIAJC. Se hablara de pinguino y processing.
Se puede aprovechar y tambien inscribirse en los talleres

lunes, 4 de abril de 2011

comunicacion CDC con pinguino y processing

Este es el enlace original del blog oficial de pinguino
http://jpmandon.blogspot.com/2010/11/pinguino-cdc-and-processing.html

En Linux el modulo RXTXbin no reconoce /dev/ttyACM0 que es como se detecta pinguino con CDC.
Para que la reconozca como dispositivo de comunicación serial se crea un enlace simbólico desde la terminal

sudo ln -s /dev/ttyACM0 /dev/ttyS20

Este es el codigo de que se descarga a pinguino, hice unas modificaciones al original, esta compilado con la version de pinguino beta 9-05



// Pinguino cdc with processing
// Jean-Pierre Mandon 2010
// Modificado por Julio Fabio De La Cruz G


unsigned char i;


unsigned char receivedbyte;
unsigned char rxstr[64];


void setup(){
   for (i=0;i<4;i++){
      pinMode(i,OUTPUT);
      digitalWrite(i,LOW);
   }
}
void loop(){
   receivedbyte=CDC.read(rxstr);
   if (receivedbyte>0)
      rxstr[receivedbyte]=0;
   if(rxstr[0]=='S')
      digitalWrite(0,HIGH);
   if(rxstr[0]=='R')
      digitalWrite(0,LOW);
}



Este es el codigo en processing



import processing.serial.*;

Serial myPort;
String port[];
int i;

void setup(){
   port=Serial.list();
   println(port[0]);
   myPort=new Serial(this,port[0],115200);
}

void draw(){
   for (i=0;i<4;i++){
      myPort.write("S"+str(i));
      delay(50);
      myPort.write("R"+str(i));
      delay(50);
   }
}

void stop(){
   myPort.stop();
}

Pinguino y windows 7

Para los usuarios de windows 7 y vista , ! No instalen asi no mas la tarjeta pinguino!!!, pues se desactivan todos los puertos USB del computador.
Aquí están las indicaciones y el driver para windows 7
http://www.roboops.es/2010/10/13/pinguino-project-beta-9-03-ahora-tambien-en-w7/