miércoles, 27 de abril de 2011
piro sensor
http://www.futurlec.com/PIR_Sensors.shtml
De este tipo de sensores se consigue poca informacion o almenos yo casi no la consigo, su conexion segun lo que encontre es la siguiente (no lo he probado)
El terminal 1 va a 5 voltios
El terminal 2 es la salida
El terminal 3 va a tierra
la terminal 1 se identifica por que el sensor tiene como una pestaña saliente en la cubierta para su indicacion.
Decodificador de tonos conectado al celular
Esta es la direccion donde venden el dispositivo CM8870 que es un decodificador de tonos.
http://www.sigmaelectronica.net/cm8870-p-1415.html
La idea es conectar el manos libres al decodificador de tonos y por medio de los tonos del teclado enviar datos a la plataforma pinguino.
Este es el data del CM8870
http://www.biltek.tubitak.gov.tr/gelisim/elektronik/dosyalar/18/ics8870.pdf
ejemplos en video
http://www.youtube.com/watch?v=3JgrGtE-oHs&feature=related
http://www.youtube.com/watch?v=REASIxCSrwE
http://www.youtube.com/watch?v=HgsCJMyiXXw&feature=related
http://www.youtube.com/watch?v=ysBDURN7xwE&feature=related
Gracias al profesor Javier Cortes de UNIAJC por la informacion suminstrada
http://www.sigmaelectronica.net/cm8870-p-1415.html
La idea es conectar el manos libres al decodificador de tonos y por medio de los tonos del teclado enviar datos a la plataforma pinguino.
Este es el data del CM8870
http://www.biltek.tubitak.gov.tr/gelisim/elektronik/dosyalar/18/ics8870.pdf
ejemplos en video
http://www.youtube.com/watch?v=3JgrGtE-oHs&feature=related
http://www.youtube.com/watch?v=REASIxCSrwE
http://www.youtube.com/watch?v=HgsCJMyiXXw&feature=related
http://www.youtube.com/watch?v=ysBDURN7xwE&feature=related
Gracias al profesor Javier Cortes de UNIAJC por la informacion suminstrada
Figuras sobre puestas en processing
Este es un ejemplo básico de dibujo de figuras en processing, para mostrar la superposición de figuras según el orden en que se dibujan.
void setup(){
//dimensiones de la pantalla de dibujo size(ancho,alto)
size(400,400);
}
void draw(){
fill(255,0,255);
ellipse(200,200,400,400);
fill(0,255,0);
ellipse(200,200,140,140);
fill(255,255,0);
rect(150,150,100,100);
fill(0,255,255);
ellipse(200,200,100,100);
}
void setup(){
//dimensiones de la pantalla de dibujo size(ancho,alto)
size(400,400);
}
void draw(){
//dibuja el cuadro azul
fill(0,0,255);
rect(190,0,210,220);
//dibuja el circulo amarillo
fill(255,255,0);
ellipse(110,110,220,220);
//dibuja el cuadro verde
fill(0,255,0);
rect(0,190,210,210);
//dibuja el circulo rojo
fill(255,0,0);
ellipse(290,290,220,220);
}
martes, 26 de abril de 2011
Archivos De Pinguino Para Windows
En esta carpeta están los instaladores de Pinguino para windows 7, el Pinguino beta 9-05, processing-1.2.1, algunas imágenes del montaje de la plaqueta, la carpeta Pinguino con processing y algunos manuales (2 hechos por el profesor Julio Fabio De La Cruz y 2 manuales hechos por mi).
Link de descarga de la carpeta http://www.megaupload.com/?d=33QK583X
Si de pronto los links de los archivos que he subido se rompe o no funcionan déjenme un comentario con mucho gusto lo arreglo .
lunes, 25 de abril de 2011
Convertidor de frecuencia a voltaje
Una forma de sensar la velocidad de un motor es utilizando otro motor acoplado a su eje como taco generador, pero esto puede ser engorroso.
Otra forma seria utilizando un convertidor de frecuencia a voltaje, en este caso con un integrado como el LM2907, al motor se le acoplaría un codificador óptico, para el gráfico que aparece se puede utilizar el CNY70 configurado tal como he explicado en una publicación anterior.
Dejo los enlaces.
http://www.national.com/ds/LM/LM2907.pdf
http://ing-electronik.blogspot.com/2008/09/tacometro-ir.html
http://www.robotroom.com/Maze-Solving-Robot-All-Right5.html
http://www.alanmacek.com/robot/
domingo, 24 de abril de 2011
Microcontroladores o PLC ?
He escuchado varias inquietudes de los estudiantes con respecto a que los micros no tienen uso en ambientes industriales. Hace meses atrás un estudiante me mostró un dispositivo de uso industrial con un pic, el aparato llevaba 15 años operando, de todos modos aquí coloco el siguiente articulo al respecto.
http://www.ingeniosolido.com/blog/2010/10/microcontroladores-vs-plcs-en-la-industria/
http://www.forosdeelectronica.com/f12/estudiar-microcontroladores-plc-39777/index2.html
http://www.ingeniosolido.com/blog/2010/10/microcontroladores-vs-plcs-en-la-industria/
http://www.forosdeelectronica.com/f12/estudiar-microcontroladores-plc-39777/index2.html
Ejemplos De Condicionales En Pseint
Ejemplo de menú sencillo.
https://sites.google.com/site/camachomedia/home/archivos/menu00.psc?attredirects=0&d=1
Ejemplo de submenus para cálculos con ley de OHM y Potencia.
https://sites.google.com/site/camachomedia/home/archivos/menu01.psc?attredirects=0&d=1
https://sites.google.com/site/camachomedia/home/archivos/menu00.psc?attredirects=0&d=1
Ejemplo de submenus para cálculos con ley de OHM y Potencia.
https://sites.google.com/site/camachomedia/home/archivos/menu01.psc?attredirects=0&d=1
CNY70 configurado en modo de operación ON - OFF
Este circuito es útil para aquellos que quieran hacer un robot seguidor de linea o un sensor óptico de proximidad.
En mi diseño conecte el ánodo del led emisor a la resistencia de 120 Ohm y el emisor del fototransistor a la resistencia de 20Kohm. La salida la hago por el emisor.
Estos valores pueden variar según el diseño, en mi caso lo probé para el seguidor de linea y con una alimentación de 5 voltios.
Aquí dejo la guía de mi montaje
https://sites.google.com/site/camachomedia/home/archivos/montajecny70onoff.pdf?attredirects=0&d=1
Estos son los enlaces para que complementes mas sobre el funcionamiento y otros montajes
http://www.info-ab.uclm.es/labelec/solar/otros/infrarrojos/sensor_cny70.htm
http://www.micropik.com/pdf/cny70.pdf
http://www.jmnlab.com/cny70/cny_70.html
http://www.madridbot.org/sensores_cny70.htm
http://indianabot.tripod.com/
http://platea.pntic.mec.es/~lmarti2/veloraton/sensoroptref.htm
En mi diseño conecte el ánodo del led emisor a la resistencia de 120 Ohm y el emisor del fototransistor a la resistencia de 20Kohm. La salida la hago por el emisor.
Estos valores pueden variar según el diseño, en mi caso lo probé para el seguidor de linea y con una alimentación de 5 voltios.
Aquí dejo la guía de mi montaje
https://sites.google.com/site/camachomedia/home/archivos/montajecny70onoff.pdf?attredirects=0&d=1
Estos son los enlaces para que complementes mas sobre el funcionamiento y otros montajes
http://www.info-ab.uclm.es/labelec/solar/otros/infrarrojos/sensor_cny70.htm
http://www.micropik.com/pdf/cny70.pdf
http://www.jmnlab.com/cny70/cny_70.html
http://www.madridbot.org/sensores_cny70.htm
http://indianabot.tripod.com/
http://platea.pntic.mec.es/~lmarti2/veloraton/sensoroptref.htm
Puente H con el LM386
Una forma fácil y practica de montar un puente H es utilizando el amplificador de audio LM386, este integrado que esta destinado para el manejo de una carga inductiva como un parlante también puede ser dispuesto para el manejo de una motor.
Aquí esta el enlace de la guía de montaje
https://sites.google.com/site/camachomedia/home/archivos/puentehlm386.pdf?attredirects=0&d=1
Aquí están otros enlaces para una consulta mas detallada
http://www.todomicrostamp.com/pocket_projects.php?proyecto=4
http://proyectoselectronicadearnaldo.blogspot.com/2009/05/lm386-como-puente-h.html
http://fuhrer-luftwaffe.blogspot.com/2009/07/cambio-de-giro-con-lm386.html
http://jorgefloresvergaray.blogspot.com/2009/06/el-lm-386-como-controlador-de-motor.html
sábado, 23 de abril de 2011
Yo no patearía un perrito
http://www.enter.co/software/%E2%80%9Ccompetir-con-microsoft-es-como-patear-un-perrito%E2%80%9D-director-de-linux/
Yo hace rato que no juego con ese perrito al cual se refiere el articulo. Como ejemplo complementario al articulo he colocado un pantallazo de un juego basado en procesamiento de imágenes en el cual estoy trabajando, la resolución es 1280 x 1080, para los que han trabajado en este tipo de procesamiento saben a que me refiero. En el equipo de prueba un CoreI3 El consumo de memoria es del 7,4 % de 3,1 gigas (incluyendo sistema operativo y juego corriendo) y los cuatro núcleos con un consumo menor a 50%.
Para que un perrito si esta cancerbero a disposición.
jueves, 21 de abril de 2011
Explicación LCD y LM35 y conexión a Pinguino
En este enlace se puede descargar la guía de conexión de pinguino con una pantalla LCD.
https://sites.google.com/site/camachomedia/home/archivos/guiapinguinoLCD.pdf?attredirects=0&d=1
La librería para el manejo de la pantalla LCD esta disponible en pinguino 9.04 y pinguino 9.05
Esta guía también explica como funciona la pantalla y puede aplicarse para cualquier otro dispositivo microcontrolado o entorno de programación
Puente H con el L298
Este circuito es muy útil para el control de giro y velocidad de un motor DC. En este caso con el L298
Enlace de descarga del dasheet del L298
http://www.st.com/stonline/books/pdf/docs/1773.pdf
Este es el enlace de la guia de indicaciones del montaje en protoboard.
https://sites.google.com/site/camachomedia/home/archivos/puenteHl298.pdf?attredirects=0&d=1
Archivo para comunicación de pinguino con processing
Para que pinguino pueda entenderse con processing necesita programarse con el siguiente programa con el pinguino IDE.
https://sites.google.com/site/camachomedia/home/archivos/usbprocessing.pde?attredirects=0&d=1
Este es el enlace del creador de la librería pinguino con processing
http://ubaa.net/shared/processing/pinguino/
Este es el enlace donde explico como se instala la librería en processing. En la carpeta guía de instalación esta la explicación.
https://sites.google.com/site/camachomedia/home/archivos/pinguinoconprocessing.zip?attredirects=0&d=1
La guía la elabore utilizando Wink
http://www.debugmode.com/
Estos son algunos vídeos sobre aplicaciones de pinguino con processing
http://www.youtube.com/watch?v=j1sVjgk8Xtc
http://www.youtube.com/watch?v=uU2_B-BDTLE
http://www.youtube.com/watch?v=b9DeM-cbJaQ
Archivo HEX para convertir el microcontrolador en pinguino
Los microcontroladores 18f2550 y 18f4550 de por si vienen en blanco, para convertirlos a pinguino hay que descargarles un archivo .hex este archivo esta en la propia carpeta del instalador del pinguino IDE.
De todos modos aquí dejo el enlace para que descarguen este archivo y puedan programar el micro.
Aquí esta el enlace: Bootloader
Montaje en protoboard del pinguino con el 18f2550
Este es el enlace para descargar la guia de montaje
https://sites.google.com/site/camachomedia/home/archivos/montaje2550.pdf?attredirects=0&d=1
jueves, 14 de abril de 2011
Manual para Pinguino.IDE Y Manual Para Manejar Pinguino Desde Netbeans
He hecho un pequeño manual para los estudiantes de la Universidad Del Valle Sede Palmira y obviamente para las demás personas que estén interesados en estos manuales del programador Pingüino.IDE para aquellos compañeros que están empezando y que se están interesando en todo este cuento de la tarjeta pingüino, es un manual donde se explican los comandos básicos pero no menos importantes de la programación en Pingüino.IDE.
Además de esto también adiciono otro manual llamado “Manual Para Conexión Netbeans-Pingüino” el cual explica como conectar y manejar la tarjeta pingüino con este programador, Este manual lo hice con el fin de facilitar la realización de una interfaz para aquellos compañeros que saben programar en java y no les queda tiempo para leer los comandos de processing , trate de hacerlo muy fácil de entender y espero que logren conectar sus tarjetas y realizar sus proyectos.
Link descarga desde megaupload http://www.megaupload.com/?d=UV57UJ7C
Si desafortunadamente megaupload desaparecio pero pues para que este trabajo que hice no se pierda lo eh subido a mediafire y aqui esta el link, que pena por la demora pero pues eh estado algo ocupado espero aun te sirva Janman
http://www.mediafire.com/?c0qllo3u01dcy93
miércoles, 13 de abril de 2011
Fractales con rotación HSV
//Autor Ing Carlos Lino Rengifo
float angulo;
float x,y;
int col;
void setup()
{
size(800,600);
background(0);
col= 0;
colorMode(HSV);
angulo = 0;
x=120;
y=300;
koch(5,480);
curvakoch(3);
curvapeano(3);
}
void gira(float ang)
{
angulo+= PI*ang/180;
}
void salta(float xx, float yy)
{
x= xx;
y= yy;
}
void salta(float distancia)
{
float xx = x+distancia*cos(angulo);
float yy = y-distancia*sin(angulo);
salta(xx,yy);
}
void traza(float distancia)
{
float xx= x+distancia*cos(angulo);
float yy= y-distancia*sin(angulo);
col = (col+1)%256;
stroke(col,255,255);
line(int(xx),int(yy),int(x),int(y));
salta(xx,yy);
}
void koch(int nivel, float distancia)
{
if ( nivel == 0)
{
traza(distancia);
}
else
{
koch(nivel-1,distancia/3);
//salta(distancia/3);
gira(60.0);
koch(nivel-1,distancia/3);
//salta(distancia/3);
gira(-120.0);
koch(nivel-1,distancia/3);
//salta(distancia/3);
gira(60.0);
koch(nivel-1,distancia/3);
}
}
void curvakoch(int orden)
{
float distancia = (3*height-30)/(2*1.732);
x= width/2 - distancia/2;
y= (distancia/3)*1.732/2+5;
salta(x,y);
koch(orden,distancia);
gira(-120.0);
koch(orden,distancia);
gira(-120.0);
koch(orden,distancia);
}
void peano(int nivel, float distancia)
{
if (nivel == 0)
{
traza(distancia);
}
else
{
peano(nivel-1,distancia/3);
gira(-90.0);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
peano(nivel-1,distancia/3);
}
}
void curvapeano(int orden)
{
float distancia = width/3;
x= width/2-height/2;
y=width/2;
salta(x,y);
peano(orden,distancia);
}
martes, 12 de abril de 2011
Fractales y recursividad
Una de las ventajas del uso de algoritmos recursivos, es la posibilidad de resolver un problema subdividiendo este, en problemas más pequeños, como ejemplo están los fractales que son curvas que repiten su estructura básica de forma infinita, el uso de recursividad hace que el problema de programarlos sea más sencillo que usando algoritmos iterativos.
ma info en wikipedia http://es.wikipedia.org/wiki/Fractal
El siguiente es un ejemplo de código en processing
//Autor Ing Carlos Lino Rengifo
float angulo;
float x,y;
void setup()
{
size(800,600);
angulo = 0;
x=120;
y=300;
koch(5,480);
curvakoch(3);
curvapeano(3);
}
void gira(float ang)
{
angulo+= PI*ang/180;
}
void salta(float xx, float yy)
{
x= xx;
y= yy;
}
void salta(float distancia)
{
float xx = x+distancia*cos(angulo);
float yy = y-distancia*sin(angulo);
salta(xx,yy);
}
void traza(float distancia)
{
float xx= x+distancia*cos(angulo);
float yy= y-distancia*sin(angulo);
line(int(xx),int(yy),int(x),int(y));
salta(xx,yy);
}
void koch(int nivel, float distancia)
{
if ( nivel == 0)
{
traza(distancia);
}
else
{
koch(nivel-1,distancia/3);
//salta(distancia/3);
gira(60.0);
koch(nivel-1,distancia/3);
//salta(distancia/3);
gira(-120.0);
koch(nivel-1,distancia/3);
//salta(distancia/3);
gira(60.0);
koch(nivel-1,distancia/3);
}
}
void curvakoch(int orden)
{
float distancia = (3*height-30)/(2*1.732);
x= width/2 - distancia/2;
y= (distancia/3)*1.732/2+5;
salta(x,y);
koch(orden,distancia);
gira(-120.0);
koch(orden,distancia);
gira(-120.0);
koch(orden,distancia);
}
void peano(int nivel, float distancia)
{
if (nivel == 0)
{
traza(distancia);
}
else
{
peano(nivel-1,distancia/3);
gira(-90.0);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
peano(nivel-1,distancia/3);
}
}
void curvapeano(int orden)
{
float distancia = width/3;
x= width/2-height/2;
y=width/2;
salta(x,y);
peano(orden,distancia);
}
El siguiente es un ejemplo de código en processing
//Autor Ing Carlos Lino Rengifo
float angulo;
float x,y;
void setup()
{
size(800,600);
angulo = 0;
x=120;
y=300;
koch(5,480);
curvakoch(3);
curvapeano(3);
}
void gira(float ang)
{
angulo+= PI*ang/180;
}
void salta(float xx, float yy)
{
x= xx;
y= yy;
}
void salta(float distancia)
{
float xx = x+distancia*cos(angulo);
float yy = y-distancia*sin(angulo);
salta(xx,yy);
}
void traza(float distancia)
{
float xx= x+distancia*cos(angulo);
float yy= y-distancia*sin(angulo);
line(int(xx),int(yy),int(x),int(y));
salta(xx,yy);
}
void koch(int nivel, float distancia)
{
if ( nivel == 0)
{
traza(distancia);
}
else
{
koch(nivel-1,distancia/3);
//salta(distancia/3);
gira(60.0);
koch(nivel-1,distancia/3);
//salta(distancia/3);
gira(-120.0);
koch(nivel-1,distancia/3);
//salta(distancia/3);
gira(60.0);
koch(nivel-1,distancia/3);
}
}
void curvakoch(int orden)
{
float distancia = (3*height-30)/(2*1.732);
x= width/2 - distancia/2;
y= (distancia/3)*1.732/2+5;
salta(x,y);
koch(orden,distancia);
gira(-120.0);
koch(orden,distancia);
gira(-120.0);
koch(orden,distancia);
}
void peano(int nivel, float distancia)
{
if (nivel == 0)
{
traza(distancia);
}
else
{
peano(nivel-1,distancia/3);
gira(-90.0);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
gira(90.0);
peano(nivel-1,distancia/3);
peano(nivel-1,distancia/3);
}
}
void curvapeano(int orden)
{
float distancia = width/3;
x= width/2-height/2;
y=width/2;
salta(x,y);
peano(orden,distancia);
}
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));
}
}
/*************************************************************************
*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
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;
}
/*************************************************************************
*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
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
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
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;
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
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/
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/
sábado, 2 de abril de 2011
Cosas que se pueden hacer con un play station y linux
Un play station no es solo para jugar, aqui se muestra el proyecto condor de la fuerza area de estados unidos
http://www.fayerwayer.com/2011/03/condor-la-supercomputadora-de-vigilancia-compuesta-de-1-716-playstations/
Aqui esta el enlace de wikipedia donde explica lo de linux en el play
http://es.wikipedia.org/wiki/Anexo:Linux_en_PlayStation_3
http://www.fayerwayer.com/2011/03/condor-la-supercomputadora-de-vigilancia-compuesta-de-1-716-playstations/
Aqui esta el enlace de wikipedia donde explica lo de linux en el play
http://es.wikipedia.org/wiki/Anexo:Linux_en_PlayStation_3
Suscribirse a:
Entradas (Atom)