nov 3 2010

Hackeando calculadoras Casio – Introducción

Sí, habéis leído bien. Se puede hackear una calculadora. Aunque parezca increíble, es posible modificar el funcionamiento de varios modelos de Casio para añadir funciones ocultas, o se pueden mejorar las funciones de las calculadoras baratillas que todos tenemos. Tras un poquillo de investigación, he reunido una serie de hackeos o modificaciones que, además de ser útiles, sirven para fardar delante de los amigos. Mi intención original era condensarlos todos en una entrada, pero conforme he ido escribiendo, he descubierto más y más cosas acerca de la fascinante cara oculta de las calculadoras, así que lo repartiré a lo largo de algunos posts.

Esto tiene su base en un motivo muy sencillo: es más barato fabricar 2000 chips de tipo A que 1000 chips de tipo A y 1000 chips de tipo B. Tomemos el ejemplo de la fx-82ES y la fx-570ES. Por fuera tienen exactamente la misma forma:

fx-82ES

fx-82ES - 15€

fx-570ES - 25€

La fx-82ES tiene unas 250 funciones, mientras que la 570ES unas 400. ¿Es mejor el circuito de ésta útlima? No, porque es el mismo. Una calculadora “baratilla” como la 82ES puede hacer lo mismo que una avanzada, como la 570ES. Lógicamente, la fx-82ES está capada, o tiene una ligera modificación, para que no muestre todas sus capacidades. Para conseguir ampliar las funciones de nuestra calculadora, hay que hacer unos pequeños cambios que varían en función del modelo. En la próxima entrada explicaré cómo actualizar dos modelos de calculadora (fx-82Es y fx-82MS) a las versiones “caras” (fx-570Es y fx-115MS, respectivamente). Más adelante, también comentaré algunos trucos y programas ocultos en las calculadoras Casio.


sep 30 2010

Taller de Arduino

Como paso previo a la formación de un club de Robótica, hoy he dado una charla-taller en mi colegio sobre Arduino a los que compraron una placa el otro día. Para ser la primera cosa medianamente seria que hago en público (bueno, no era un gran público precisamente), ha ido bastante bien.

Además, me lo he pasado bastante bien, y, como me han dicho que haga otro taller un día de estos, seguramente repetiré (por otra parte, no he terminado de explicar lo básico, así que tenía que volver sí o sí).

He subido el Powerpoint de la charla a Slideshare; en la misma página se puede descargar:


mar 27 2010

MareNostrum, el superordenador

El viernes fuimos unos cuantos a Barcelona por una excursión del colegio. Algunos fueron por temas de Arte y otros fuimos por Informática (Bachillerato y unos pocos de 4º de ESO).

Lo primero que hicimos fue ir a una iglesia. ¿Iglesia? ¿Pero no era algo relacionado con la Informática?
Sí, fuimos a ver el MareNostrum, el superordenador más potente de España, emplazado en una antigua capilla de la Universidad Politécnica de Cataluña.
Este ordenador surgió a raíz de la idea de IBM de crear un superordenador utilizando tecnología estándar. El MareNostrum está compuesto por algo más de 2500 placas, almacenadas en 33 armarios refrigerados, que constan de dos procesadores a 2.2 GHz (hoy en día, un ordenador de sobremesa normal está entre los 2.6-2.8 GHz), un disco duro de 40 Gb que funciona como RAM, y algunas cosillas más.
La idea inicial era actualizar el hardware cada dos años para que el MareNostrum pudiese estar siempre entre los mejores del mundo. Cuando fue construido, en 2005, estaba en el Top500, y a finales del 2006, tras su mejora, llegó a ser el quinto del mundo. Sin embargo, cuando fueron a pedir dinero para actualizarlo en 2008, les dijeron que no: la crisis. Por suerte, hay un acuerdo entre Alemania, España, Inglaterra y algún otro país para invertir cada año dinero entre todos en un país, para que se construya un superordenador Top5 que pueda ser utilizado por todos los países dentro del acuerdo. Así, siempre habrá en Europa un ordenador muy potente disponible.
Normalmente, las supercomputadoras emplean electrónica punta, que tiene sus ventajas, pero también sus contras. La principal es el precio: hay que invertir mucho en investigación, mientras que en el MareNostrum se emplearon componentes ya inventados y asequibles.
Pero utilizar tecnología estándar también tiene sus problemas: el tamaño y el consumo. No es lo mismo tener un procesador muy potente con un consumo X, que 10 procesadores normales con un consumo 10X.
La visita estuvo muy interesante; acongojaba un poco tener un enorme cubo de cristal y acero lleno de procesadores y kilómetros y kilómetros de cable protegidos por un sistema de seguridad digno de una película de ciencia ficción junto a los capiteles de piedra y las vidrieras de colores de la capilla.
Después fuimos al Centro Nacional de Microelectrónica, pero fue una visita mucho más técnica, y lo que nos contaron se puede consultar fácilmente por Internet: creación de circuitos CMOS en obleas de silicio.

feb 13 2010

Arduino

El martes fui a una charla del grupo Complubot en el Corte Inglés. Me envió un montón de gente información, se ve que soy predecible :-D
Bueno, pues Complubot es un grupo formado por un chico de 15 años y dos chicas de 17 que se dedica a la robótica. Los dos últimos años han ganado la competición robótica por excelencia, la Robocup. Como decían ellos, la noticia no ha tenido repercusión porque esto es España.
Nos estuvieron contando cosas sobre la robótica en general, y luego ya enfocaron en sus robots, que construían para los partidos de fútbol de la Robocup. Fue impresionante, la verdad.También comentaron que los procesadores que empleaban eran Arduino, una feliz coincidencia: un amigo de mi padre me estaba consiguiendo uno desde hacía unos días.
Y ayer recibí el Arduino (concretamente, el modelo Duemilanove, que en italiano significa “2009″). En resumen, se trata de una placa Open Hardware con diversos componentes: un procesador (Atmega328), entradas y salidas digitales y analógicas, y un conector USB para poder programarlo con el ordenador. El lenguaje de programación está basado en C, y el entorno se puede descargar para Windows, Mac y Linux (a mí sólo me funciona en Ubuntu; en XP se quedaba colgado). Aunque todavía estoy en procEl lenguaje de programación está basado en C, y el entorno se puede descargar para Windows, Mac y Linux (a mí sólo me funciona en Ubuntu; en XP se eso de aprendizaje, he hecho con mi padre este contador:
int pin2 = 2; // Salida del bit 0
int pin3 = 3; // Salida del bit 1
int pin4 = 4; // Salida del bit 2
int pin5 = 5; // Salida del bit 3
int timer = 300; // Tiempo entre dígito y dígito
int b0;
int b1;
int b2;
int b3;
int i;
void setup(){
pinMode(pin2, OUTPUT); // Establece el pin 2 como salida
pinMode(pin3, OUTPUT); // Establece el pin 3 como salida
pinMode(pin4, OUTPUT); // Establece el pin 4 como salida
pinMode(pin5, OUTPUT); // Establece el pin 5 como salida
}
void loop(){ // Las instrucciones siguientes serán de tipo bucle.
for (i = 0; i<10; b0 =" i" b1 =" i" b2 =" i" b3 =" i" i =" 9;">1; i=i-1){ // Asigna a la variable i el valor 9. Comprueba si i es mayor que 1. En caso afirmativo, resta 1
b0 = i & 1; // Bit 0 de la traducción del número i a binario
b1 = i & 2; // Bit 1 de la traducción del número i a binario
b2 = i & 4; // Bit 2 de la traducción del número i a binario
b3 = i & 8; // Bit 3 de la traducción del número i a binario

digitalWrite(pin2, b0); //Envía al pin 2 el estado de b0 (dígito 0)
digitalWrite(pin3, b1); //Envía al pin 3 el estado de b1 (dígito 1)
digitalWrite(pin4, b2); //Envía al pin 4 el estado de b2 (dígito 2)
digitalWrite(pin5, b3); //Envía al pin 5 el estado de b3 (dígito 3)
delay(timer); // Pausa
}
}

Foto:

A ver qué tal me va, la cosa pinta muy interesante :-)

dic 30 2009

Alternativas a los transistores actuales

Un transistor es un componente electrónico al que se le dan dos usos: uno, en la electrónica analógica, como interruptor; y otro, en la electrónica digital, para almacenar información (en forma de unos y ceros, o encendido y apagado, lo que constituye un bit de información). No voy a entrar en detalles aquí sobre su funcionamiento, pero si queréis saber un poco más podéis empezar por esta página.

Actualmente, la inmensa mayoría de los aparatos electrónicos, y la totalidad de los que se venden en las tiendas están basados en transistores de silicio: desde el pequeño circuito de un coche teledirigido a un complejo procesador, están compuestos por transistores. Y, más concretamente, de silicio (de ahí el nombre de la zona en la que están varias de las grandes empresas de electrónica, Silicon Valley).

Desde 1947, cuando se inventó el primer transistor, se han inventado varias alternativas, pero, en esencia, han sido pequeñas variaciones y mejoras en torno al original. Aunque, eso sí, se ha reducido su tamaño (los del Intel Core i7 miden 45 nanómetros).

Una alternativa al silicio es el grafeno, una fina (y tanto: un átomo de espesor) de carbono. Aunque fue descubierto hace más de 70 años, el primer transistor de este material no se fabricó hasta el año pasado. Se descubrió que las velocidades que se pueden alcanzar con este tipo de transistor son mucho mayores que las proporcionadas por el silicio, llegando al rango de los 500-1000 GHz. Hoy en día, un ordenador potente apenas llega a los 4 GHz. Además,si se superan las dificultades técnicas, su pequeño tamaño permitirá que los chips se miniaturicen aún más.


Otro componente electrónico muy curioso es el memristor (de memory resistor, resistencia de memoria), predicho en 1971 y construido por vez primera en el 2008. Según pase corriente o no a través de él, su resistencia varía, por lo que puede ser utilizado para guardar información. Es una resistencia variable con memoria, al fin y al cabo: mirando su valor se puede saber en qué estado se encontraba antes. Una aplicación bastante útil es que se podría poner el ordenador en hibernación directamente: si hubiese un apagón, al volver la electricidad el ordenador seguiría haciendo lo mismo de antes.
Su pequeño tamaño en comparación con los transistores y su bajo consumo hacen del memristor algo a lo que yo le veo bastante futuro. Existe un prototipo de memoria, de HP, con una capacidad de 100 Gb en un cm2.

Alejándonos más de la electrónica, hay otra cosa muy interesante: la computación cuántica. Me explico.
La materia está formada por átomos. Los átomos, entre otras muchas partícualas, están compuestos por electrones. Una característica de estos es que pueden girar sobre sí mismos en sentido horario o antihorario. Esto puede utilizarse para almacenar información, al igual que con la polarización un fotón. Pero, además, pueden estar a la vez en los dos estados (algo que yo todavía no comprendo del todo)Toda información almacenada en un soporte cuántico está basada en qubits, y no en bits, como se venía haciendo hasta ahora.
Esto tiene muchas ventajas. Una de ellas es que ofrece una capacidad de encriptación mucho mayor que la que ofrece los bits actuales. Es por eso por lo que las agencias de seguridad invierten mucho dinero en esta tecnología: al poder estar el qubit en los dos estados a la vez, las operaciones de factorización (en lo que se basan muchísimas encriptaciones: las de tarjetas de crédito, contraseñas…) son mucho más rápidas. Aunque todavía son más lentos que los actuales, la cosa promete.

Otro tipo de ordenador, muy curioso, es el que opera utilizando el ADN. Utilizando las hebras de ADN y las diferentes configuraciones de los ácidos nucleicos se puede almacenar información. Este método cuenta con múltiples ventajas: las hebras se duplican “solas”, siempre se alinean bien (adenina-timina y guanina-citosina) y consumen mucho menos que los ordenadores basados en silicio. Un uso que se le puede dar, a mi parecer muy útil, es que se pueden implantar chips de ADN en el propio cuerpo que regulen, por ejemplo, la administración de un fármaco.

Bueno, la última entrada larga del año…


dic 29 2009

Clickomático

Próximamente…