miércoles, 9 de noviembre de 2011

El pastel de facebook

Hace un tiempo se dijo que quien no desarrollara aplicaciones para dispositivos móviles (iOS y Android, principalmente), simplemente no estaría dentro de la jugada y por lo tanto no le tocaría una rebanada de ese pastel. Y fue cierto!
Hoy, yo creo, que quien no esté desarrollando o diseñando PARA facebook, podría quedarse fuera de la jugada también. Podrán mantenerse escépticos pero saben que todo apunta para allá, entonces ¿cómo podría evitarse esa tendencia de que facebook se convierta en un nuevo navegador?. Creo yo que eso recae en qué tanto te puede ofrecer una página web, ya no se trata de contenido, por que todos tienen texto, fotos, videos y juegos; y al final se republica el contenido de blog en blog y de usuario a usuario. Se trata de la experiencia que te pueda dar esa página. Que realmente te haga sacar de tu boca "qué chido está" y te haga compartirlo con los demás.
Ustedes ¿qué opinan?

lunes, 28 de junio de 2010

Taller de Arduino en Cholula

flyer-Arduino

Sin lugar a dudas el Arduino ha sido la plataforma de desarrollo más popular en los último años. Bien vale la pena aprender a usar esta accesible herramienta.

Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos.

Arduino puede tomar información del entorno a través de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación Arduino(basasdo en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a una computadora, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de software (p.ej. Flash, Processing, MaxMSP).

Por si todavía les suena en chino todo esto, les dejo unos videos de proyectos realizados con Arduino.

El primer video muestra la interacción del Arduino con Flash, hay un sensor de proximidad conectado al Arduino y el este le indica la distancia de un objeto a la animación de Flash.

El segundo video muestra la interacción del arduino con MAX/MSP

El tercer video muestra la interacción autónoma entre el Nunchuk del Wii y el Arduino, se puede ver como se usa el joystick para controlar el robot o también por medio del acelerómetro.

Si estás interesado en el taller, deja un comentario es esta entrada con tus datos. Si conoces a alguien más que le podría interesar este taller, compártelo por Facebook o Twitter.

domingo, 30 de agosto de 2009

Lo que ellas quieren es un robot

Cuando estaba por participar para el concurso Sparks Will Fly de Microsoft me encontraba pensando en cuál podría ser un dispositivo de la casa del futuro. Algo que solucione un problema en el hogar. Decidí recurrir a mis primas, ya que las dos están casadas y con hijos. Una de ellas, arquitecta, me planteaba el problema de la sustentabilidad en los hogares, principalmente el problema con el agua ya que en muchos hogares no se cuida lo suficiente este recurso natural y cada vez es más escaso. Al término de una explicación un poco extensa de cómo debería ser la arquitectura de una casa sustentable, mi otra prima después de haber guardado silencio, sólo volteó a verme y me dijo: Mauricio... cuando invenes una Robotina te harás rico y famoso.

A pesar de que un planteamiento tenía extensos fundamentos ambientalistas y el otro reflejaba el capricho exigente de una ama de casa, los dos me parecieron bastante atractivos e igual de interesantes.

Pero si nos enfocamos al desarrollo de un robot que nos asistiera en las tareas del hogar, podremos darnos cuenta que muy probablemente no estemos tan lejos de esa realidad. En los último años se han logrado avances interesantes en la robótica, hoy en día podemos encontrar robots tan pequeños como una cucaracha, tan ágiles que pueden correr o atrapar una pelota en el aire, tan emotivos que pueden gestualizar moviendo la boca y los ojos, tan fuertes que pueden levantar a una persona, tan hospitalarios que te recordarán cuando tomarte la medicina, y tan ecológicos que pasan por la basura a tu casa. La pregunta es ¿Cuándo serán tan inteligentes como para asistirnos en todo lo que necesitemos? Prestando un poco de atención y haciendo algunas búsquedas en Internet descubriremos que ya existe un robot para muchas de las tareas ordinarias, y si no lo hay seguro está desarrollo. Tal es caso en el Laboratorio de algoritmos y sistemas de aprendizaje (LASA, Francia) donde están enseñando a un robot a cocinar, a través de la utilización de un modelo probabilístico, el robot progresivamente aprende a generalizar la habilidad a distintas situaciones.



Aquí es donde rebota el eco de la pregunta y escuchamos la contra pregunta ¿Qué tan seguro será darle un cuchillo a un robot?, ya ni pensemos en armas. Aunque existan las tres leyes de la robótica escritas por Isaac Asimov, y suponiendo que se implementaran en cada robot doméstico, ya saben que nunca falta el error Run32.dll en la sopa. La ciencia en la robótica aún le falta camino por recorrer, pero digamos que ya está más cerca que lejos de la meta final, creo que ya están las piezas del rompecabezas, ahora hay que unirlas. Por lo pronto seguiré esperando un NS-5 como el de Yo, Robot.

Las tres leyes del a robótica:
  1. Un robot no debe dañar a un ser humano o, por su inacción, dejar que un ser humano sufra daño.
  2. Un robot debe obedecer las órdenes que le son dadas por un ser humano, excepto si estas órdenes entran en conflicto con la Primera Ley.
  3. Un robot debe proteger su propia existencia, hasta donde esta protección no entre en conflicto con la Primera o la Segunda Ley.

martes, 28 de abril de 2009

Hackeando la caja del Dremel Versatip



Me compré el Dremel Versatip, un cautín portatil de gas butano, y lo primero que hice con él fue modificar el estuche en el que viene. Le puse un par de bisagras para que la tapa séa más eficiente.

lunes, 6 de abril de 2009

Make: en Español

En los últimos días, no había publicado nada en el blog, porque estaba ocupado con otro proyecto el cual ha prosperado bastante bien.

Se trata de un nuevo blog, Make: en Español. Por el momento se encuentra todavía en fase "no oficial" pero muy muy pronto lo veremos de manera oficial.

Se buscan colaboradores, sí estás interesado manda un mail a mauriciogomezp@gmail.com con tus datos.

Entra al blog!, todos los días hay nuevas entradas.


Actialización: quiero anunciarles que ya es oficial Make: en Español, entra y descubre los proyectos que puedes hacer.


domingo, 8 de febrero de 2009

Pole Camera

El pasado fin de semana me motivé para hacer uno de los proyectos de fin de semana de Make, se trata de un Pole Camera.

Básica mente consiste en colocar una cámara fotográfica en un palo extensible de los que usan los pintores. La idea es poder tomar fotos desde otro ángulo de manera que se puede apreciar otro punto de vista al cuál normalmente no podemos acceder en cualquier lugar.

El pole camera que construyen en Make es con madera, yo opté por utilizar el material que tenía aquí en el apartamento y evitar gastar dinero. Así que recurrí al acrílico que ya tenía. Descubrí que no es complicado doblar el acrílico, solo basta aplicar calor con una flama, en mi caso usé la estufa, sin embargo creo que puede quedar mejor usando un soplete.

Intenté tomar fotos de todo el proceso de como hice el mío, pero la verdad es que me concentré tanto haciendolo que me olvidé de tomar fotos.

Una vez terminada la estructura de acrílico, hice las perforaciones necesaria y coloqué los servos y el receptor. Hice algunas pruebas con el radiocontrol y todo funcionó de maravilla.

Finalmente salí con mi roomie a tomar algunas fotos y he aquí los resultados.





Un espacio común

Samsung 151x
iPhone 2G 8Gb
Sony Vaio K-13
Acer Aspire One A100

lunes, 19 de enero de 2009

viernes, 9 de enero de 2009

Sparks Will Fly


Healthy Fridge


What problem are you trying to solve?

There are approximately 300 million obese people in the world and if it included people with overweight be talking about a billion people.
Obesity and overweight are defined as abnormal or excessive accumulation of fat that can be harmful to health. Being obese means a decrease in life expectancy of at least 7 years, which increases to 14 if you are a smoker snuff. This problem has grown over the years, both in developed and developing countries.
The main reasons for this problem are characterized by:
• A high power loss.
• Reduced physical activity
• Sedentary Lifestyle
• Elimination of smoking

Forbes has conducted a detailed statistical data on individuals over 15 years, based on measures of weight and height. The United States is the first Western country that appears in the ranking, occupying the ninth place with 74.1 percent of the population considered obese.

What is your proposed solution to the problem?

Because the factors that promote obesity in an individual are poor diet and inactivity, Healthy Fridge, a smart refrigerator, will monitor the obese subject in question, which will report the amount of calories consumed and exercise done in the day. But, how can the Healthy Fridge to follow when the subject is not at home? To this end, the subject must carry a Bluetooth digital clock (supplied with the Healthy Fridge) through which RFID technology will continue to monitor the food we consume the subject, like the clock will register a constant heart rate and blood pressure of the subject conducted to detect any physical activity during the day and the Healthy Fridge can make an estimate of how many calories burned on the subject during the day. Healthy Fridge proposes users a balanced diet according to the user's lifestyle, auto-supply store online.

Why would the solution be best implemented as an embedded solution?

Main features of the Healthy Fridge:
• Touch screen for easy use
• Biometric fingerprint reader to display information for users, and block the opening of doors for hours for each user.
• RFID readers to detect the consumption of food and supplies to apply online stores, according to a specific diet for each user
• Internet connection (Wireless / Ethernet) to a database that provides the user with recipes for basic subsistence and appropriate to their daily lives, in addition to proposing basic exercises to encourage physical activity.
• Bluetooth connection to synchronize the data from the user's clock and other devices
• Direct connection to a telephone emergency line in case of pressure too high / low or heart attack of the subject, giving the exact location where he is
• User friendly interface, dynamic and intelligent to show through the graphical user tracking and highlight their improvements according to the diet proposed by the system

For all these needs and achieve a Healthy Fridge affordable to the majority of the public VIA Artigo embedded device platform is a very viable option.

lunes, 1 de diciembre de 2008

Acer Aspire One + Arduino = Rover AA1

Esta idea ya la tenia pensada desde hace varios meses, ya que imaginé que sería una forma práctica de realizar un robot. Y sí lo fué. No lo habia hecho porque primero lo quería hacer con mi laptop normal (Vaio K-13) pero estaba un poco complicado porque la laptop pesa aproximadamente 3.5 kg. lo cuál representaba mucho peso para moverlo con los Tamiyas. Hasta que finalmente tengo la oportunidad de tener una Netbook Acer Aspire One, y por su tamaño y peso quedó perfecto para el proyecto.

¿Como lo construí?
Usé un cuadro de acrílico cortado a la medida de la AA1 (netbook) y con espacio suficiente para colocar en la parte de atrás el circuito necesario.
Perforé con el taladro lo hoyos necesarios para colocar los Tamiya Gearbox y poner las llantas.
En la parte de atrás, justo en medio, puse una "rueda loca" para que tenga libertad de movimiento.
También pegué sobre el acrílico una Protoboard Tiny y el Arduino Diecimila.
En el protoboard usé un puente H L293D para manejar los motores de DC con el Arduino.
Coloqué todo junto sobre el acrílico, y escribí un pequeño código en el Arduino que simplemente leyera el puerto serial por el USB y que dependiendo el valor en el puerto realizara cierta acción (girar a la izq, girar a la derecha, avanzar, detenerse).
Después escribí otro pequeño programa en Processing el cual abre un applet de java y al presionar las teclas de flecha en el teclado manda la información por el puerto serial y el Arduino las interpreta.
Finalmente hago una conexión desde otra computadora al escritorio remoto de la AA1, configuro un programa (webcamXP) para que transmita el video de la webcam de la AA1 por una dirección IP local y pueda verlo desde la otra laptop.
Y listo, eso fue suficiente para hacerlo funcionar.




Este es uno de mis mejores proyectos y pienso seguir desarrollandolo, se me ocurren varias ideas pero iré haciendo una a la vez.

Problemas conocidos:
  • No tiene reversa
  • La netbook no está firmemente sujetada a la base
  • Se usa dos aplicaciones por separado (webcamXP y Processing)
  • Los motores no se cordinan lo suficiente cuando avanzan al mismo tiempo
  • Complicado de conducir
Mejoras deseadas:
  • Reversa
  • Sensor de distancia
  • Hacer la velocidad variable
  • Conducir con un Wii Nunchuck
  • Una misma aplicación
  • Base más segura
  • Conducir con un iPhone
¿Tienes alguna otra sugerencia? Soy todo oidos.

update:

Código Arduino:

int powe = 2;
int act = 11;
int act2 = 10;

void setup(){
Serial.begin(9600);
pinMode(powe, OUTPUT);
}

void loop()
{
byte val;
digitalWrite(powe,HIGH);
if (Serial.available())
{
val= Serial.read();
if(val==10){
analogWrite(act, 0);
analogWrite(act2, 0);
}
if(val==20){
analogWrite(act, 170);
analogWrite(act2, 170);
}
if(val==30){
analogWrite(act,170);
analogWrite(act2, 0);
}
if(val==40){
analogWrite(act, 0);
analogWrite(act2, 170);
}
}
}

Código Processing:

import processing.serial.*;
Serial port;

void setup()
{
size(320,240);
println("Available serial ports:");
println(Serial.list());
port = new Serial(this, "COM3", 9600);
}

void draw()
{
keyPressed();
void keyPressed(){
if (key == CODED){
if (keyCode == DOWN){
port.write(10);
}
if (keyCode == UP){
port.write(20);
}
if (keyCode == RIGHT){
port.write(30);
}
if (keyCode == LEFT){
port.write(40);
}
}
}




domingo, 30 de noviembre de 2008

New Stuff!

Hace algunos dias atrás me donaron y adquirí nuevo material/herramientas para desarrollo de proyectos. Uno de ellos es un par de Tamiya Gearbox de 6 velocidades cada uno, con llantas sport incluidas. Estos en especial me agradaron mucho porque pienso que son básicos para armar un robot. Donados por Lutgardo. He buscado más de estos en internet y no he encontrado, hay otros modelos pero son más pequeños, exactamente este no lo he visto por ningun lado.


Tambien adquerí un Router Linksys wrt54g version 5.0, hasta donde estos routers son muy convenientes ya que les puede modificar el firmaware, bueno pero la version que tengo creo que es más complicado. Sin embargo creo que tambien le podré sacar provecho en algún proyecto de comunicacion Wi-Fi.

Si algún día deseas hacerme una donación en apoyo a mis proyectos, te lo agradeceré muchisimo.

domingo, 19 de octubre de 2008

Cambiar el disco duro de la Acer Aspire One





Mi amigo Victor se hizo de una Acer Aspire One, pero como buen envidioso se compró la más básica, así que solo venia con 512 mb en RAM y con un SSD de 8 GB, para cuando me enteré que la tenía ya le habia cambiado la memoria a 1GB y había instalado XP, pero no quedó conforme y el espacio en disco duro no le agradó mucho, asi que me preguntó que si le podia ayudar a cambiarle el disco duro, el anteriormente había encontrado un página donde demostraba que se podía cambiar el disco duro SSD por uno de un iPod. Así que accedí a ayudarlo.Conseguí un disco duro de 30gb de iPod de quinta generacion que es el que se encesita para esto (ZIF). Les dejo una página donde pueden comparar mejor los discos duros del iPod. En mi caso usé el Toshiba MK3008GAL.
Lo primero que hay que hacer es retirar la baterias y sacar todos los tornillos de la parte de abajo de la Acer One, incluso los que se encuentran debajo de las gomitas en la base de la Netbook.
Posteriormente hay que levantar el teclado haciendo presion en los sujetadores que tiene justo arriba de las teclas F2, F8, Pausa. Hay que tener cuidado al momento de levantar el teclado y desconectar la membrana levantando el sujetador hacia arriba.
Después hay que quitar los tornillos de la carcasa por la parte de arriba, una vez hecho eso, quitamos la carcasa superior con cuidado.
Quitamos la tarjeta inalambrica, la tarjeta I/O del lado derecho y el SSD.
Usaremos la misma membrana del disco duro para ponerselo al nuevo. Hay que tener cuidado al momento de ponerle la membrana al disco duro de iPod, cuesta un poco de trabajo meterla.
En la parte de abajo de la tarjeta madre, hay que hacer espacio eliminando unos soportes que tienes para la tarjeta y para el SSD, en mi caso usé unas pinzas de corte pero también se puede usar un Dremel. Esto último, para que el disco duro tenga espacio y se pueda acomodar a la perfección y quede debajo de la motherboard. Finalmente conectamos el DD a la motherboard y listo, ensamblamos todo otra vez.

No pude instalarle Windows XP porque no tengo una CD-ROM externo, pero mañana lo haré y les cuento como me fué.

Si te gustó este mini tutorial, entonces vas a encontrar muuuuy interesante Make: en Español, hay un sin fin de proyectos que puedes hacer tú mismo!

viernes, 3 de octubre de 2008

ReleShield para Arduino

Este es un proyecto patrocinado por ElectroLabo, distribuidor de Arduino en México


Para las personas que ya están más familiarizadas con el Arduino este proyecto lo pueden encontrar interesante.
Se trata de un prototipo para el Arduino usando un protoshield y algunos otros componentes, la finalidad es simple pero muy útil. ¿Alguna vez has deseado controlar las luces de tu casa desde la computadora? O tal vez algún otro electrodoméstico de la casa. Bueno pues este proyecto va más o menos dirigido a eso. El ReleShield tiene la capacidad de activar/desactivar hasta tres dispositivos al mismo tiempo pero independientemente uno del otro, los cuales requieran estar conectado a la corriente alterna, siendo que el ReleShield es de corriente directa. ¿Cómo lo hace? El relé o relevador (del francés relais, relevo) es un dispositivo electromecánico, que funciona como un interruptor controlado por un circuito eléctrico en el que, por medio de un electroimán, se acciona un juego de uno o varios contactos que permiten abrir o cerrar otros circuitos eléctricos independientes (wikipedia), entonces con las salidas digitales del Arduino podemos controlar varios relés.

Material necesario:

1 placa ProtoShield para Arduino
3 Relés RAS-0510 (puede ser cualquier otro pero tienes que conocer sus especificaciones)
6 terminales dobles
2 sensores LM35 (opcional)
Cable el necesario para soldar y cable plano
Tira de pines (28 aprox)
5 leds (opcional)

Manos a la obra!

Anteriormente ya había hecho un circuito similar donde únicamente conectaba las terminales al relé y a un par de pines para conectarlo al Arduino, por lo tanto ya estoy un poco familiarizado en cuanto a como hay que hacer las conexiones, el funcionamiento y la programación para éstos, por ello hice algo que no tenía que hacer y que fue brincarme un paso. Monté todo como fuera cayendo y no realicé un esquemático previo a armarlo. Así que yo recomiendo altamente que hagan un esquemático para facilitar el trabajo de soldar y evitar cruzar tantos cables. De todas formas hice el mío después de terminarlo, siempre es bueno hacerlo y tenerlo a la mano para futuras referencias.


Bien, ahora empecemos a armar el ReleShield.

Primero soldamos los pines sobre el protoshield para los pines digitales y el power, únicamente.
Aprovechamos para soldar también las terminales en los lados correspondientes como se muestra en la imagen.
Después, montamos los relés, esta parte puede ser un poco difícil ya que la orientación de los pines de los relés no coinciden del todo bien con las perforaciones del protoshield, así que hay que ayudarse de una pinzas de punta para doblar un poco las patitas y lograr meterlos. Como se puede notar en la imagen, existe una separación entre cada componente que hasta ahora hemos colocado, normalmente cualquiera pudiera pensar que lo mejor es ahorrar espacio y posiblemente agregar más componentes, pero la razón de hacerlo de esta forma es porque conforme se va armando el prototipo hay que ir pensando hacia delante, es decir el siguiente paso ha realizar que es hacer todas las conexiones, soldando, por debajo de la placa (preferentemente), y el tener los componentes demasiado cerca puede complicar esa tarea.
Una vez que ya tenemos colocado los tres relés, volteamos la placa y soldamos primero el pin (2) de cada relé que tiene que ir a tierra (cable verde), después conectamos los pines (1) que van del relé a los pines digitales del Arduino (2, 3, 4), finalmente terminamos las demás conexiones de los pines (3, 4, 5) de los relés hacia las terminales, como se ve en el esquemático.


Cabe mencionar que los relevadores que se usaron en este proyecto tienen las siguientes especificaciones: Relevador 1 polo, 2 tiros, bobina de 5 VDC, contactos de 120 VAC/10 Amp., 250 VAC/7 Amp. y/o 24 VDC/10 Amp. (http://www.sunhold.com/ras2.html)
Esto quiere decir que el relevador se conmuta con señales TTL (5v) y que del lado de potencia soporta 120v a 10 amperes, 250v a 7 amperes o 24v a 10amp, prácticamente nos puede servir para casi cualquier electrodoméstico.

Listo!

Hasta este momento ya tenemos la primera parte del ReleShield terminada. Lo cual quiere decir que ya podemos montar sobre el Arduino el ReleShield y hacer las primeras pruebas.
Para hacer una pequeña prueba y ver que todo quedó bien conectado, corremos el siguiente código en el Arduino.
int Re1Pin = 2; //indicamos los pines que se van a usar
int Re2Pin = 3;
int Re3Pin = 4;

void setup(void){ //se configuran como salida para mandar las señales
pinMode(Re1Pin, OUTPUT);
pinMode(Re2Pin, OUTPUT);
pinMode(Re3Pin, OUTPUT);
}

void loop(void){

digitalWrite(Re1Pin, HIGH); //se activa el Relé 1, el 2 y 3 desactivado
digitalWrite(Re2Pin, LOW);
digitalWrite(Re3Pin, LOW);
delay(200);
digitalWrite(Re1Pin, LOW); //se activa el Relé 2, el 1 y 3 desactivado
digitalWrite(Re2Pin, HIGH);
digitalWrite(Re3Pin, LOW);
delay(200);
digitalWrite(Re1Pin, LOW); //se activa el Relé 3, el 1 y 2 desactivado
digitalWrite(Re2Pin, LOW);
digitalWrite(Re3Pin, HIGH);
delay(200);

}
Con este código, se hará que cada relé se active solo por 200 milisegundos uno tras del otro, de esta forma con el multímetro podemos checar que las conexiones en la terminales sean las correctas. Si todo sale lo correcto, entonces ya podemos empezar a usar el ReleShield.

Sin embargo, aun se puede mejorar más el proyecto, en esta segunda parte agregaremos un par de sensores de temperatura LM35 y unos cuantos LEDs. La segunda parte es totalmente opcional, ya que el ReleShield ya está 100% funcional y cumple su objetivo principal. Pero si queremos algo más robusto, agregamos algunos LEDs que nos indiquen alguna parte del proceso en el que se encuentra el Arduino. Y si además queremos hacer un control basado en la temperatura ambiente, ya sea una habitación o un electrodoméstico como un refrigerador, agregamos un sensor de temperatura LM35.

¿Para que poner un sensor de temperatura?

Bueno, la principal razón es para controlar ciertos dispositivos de acuerdo a la temperatura ambiente o artificial. En mi caso fue porque mi refrigerador se descompuso y trabaja sin apagarse, es decir, el termostato no está regulando bien, es por eso que incorporé dos sensores, uno interno (soldado en el ReleShield) y otro externo con una extensión de cable plano para conectarlo al ReleShield y colocarlo en zonas donde no conviene exponer el Arduino y el ReleShield. Igualmente, otras ideas puede ser: activar un ventilador o un aire acondicionado si hace mucho calor, o activar un calentador si hace frio, etc.
Además, el sensor externo se puede quitar y usar cualquier otro sensor que mande señales analógicas.

Finalmente así queda la configuración final:

¿Cómo crees que se pueda mejorar el ReleShield?

domingo, 28 de septiembre de 2008

Hackeando el escritorio


Hace un tiempo atrás, mientras estaba en Buenos Aires, Argentina, compré un cable adaptador para conectar un disco duro de IDE a USB, y así poder utilizar el disco duro de 80 Gb que tengo. Resulta ser un poco molesto tener el disco duro sobre el escritorio y que solo esté estorbando. Ya que no es un dispositivo con el cuál cargue con él a todas partes, decidí incorporarlo completamente al escritorio.