sábado, 14 de abril de 2012

ARDUINO



LA HISTORIA


Arduino nació en el Instituto Italiano de Diseño Interactivo IVREA,  una escuela donde los estudiantes centraban sus experimentos en la interacción con dispositivos, muchos de ellos basados en microcontroladores.

Arduino surge de una necesidad, la de contar con un dispositivo para utilizar en clase, que fuera de bajo coste, que funcionase bajo cualquier sistema operativo y que contase con documentación adaptada a gente que quisiera empezar de cero.

El proyecto comenzó en Ivrea , Italia (el sitio de la compañía de computadoras Olivetti ), en el año 2005 para crear un dispositivo para el control de los proyectos construidos por estudiantes de diseño de interacción menos costoso que otros sistemas de creación de prototipos disponibles en el momento.

En mayo de 2011, más de 300.000 unidades de Arduino son "in the wild". Fundadores Massimo Banzi y David Cuartielles llamado el proyecto después de Arduino de Ivrea , el personaje principal histórico de la ciudad. "Arduino" es una italiana masculina nombre , que significa "amigo fuerte". La versión en Inglés del nombre es "Hardwin".

El proyecto Arduino es un tenedor de código abierto plataforma de cableado . El cableado fue creado por el artista colombiano y programador de HERNANDO BARRAGÁN , como una tesis de maestría en el Interaction Design Institute Ivrea , bajo la supervisión de Massimo Banzi y Casey Reas . Por otra parte, se basa en cableado de procesamiento y su entorno de desarrollo integrado creado por Casey Reas y Ben Fry .

 Arduino fue construido en torno al proyecto de cableado de Hernando Barragán. El cableado fue el proyecto de tesis de Hernando en el Interaction Design Institute Ivrea.

Fue pensado para ser una versión electrónica de procesamiento que utiliza nuestro entorno de programación y fue modelado después de la sintaxis de procesamiento.

En el año 2005, en IVREA coincidieron todos los actores de esta historia. Así lo cuenta el profesor MASSIMO BANZI: “Cuando estaba trabajando en esto conocí a DAVID CUARTELLES y comenzó a echarme una mano con el proyecto…Hicimos juntos el primer hardware de Arduino, luego vino DAVID MELLIS, un estudiante mío, que se unió para escribir el software, luego Tom Igde entró como consejero y GIANLUCA MARTINO que era el que producía las placas. Así se formó el equipo, añadiendo gente según sus habilidades”.

Arduino se implementó, no obstante, sobre los cimientos de Wiring. Verán, en Ivrea también daba clases Casey Reas, uno de los fundadores de la plataforma de programación Processing. Banzi pensó en cómo hacer un Processing para hardware. Comenzó, entonces, a trabajar con un estudiante suyo, que había hecho una tesis sobre el tema, Hernando Barragán.  “Después de que Hernando hiciera Wiring pensamos en como hacer toda la plataforma  más simple, más barata y  sencilla de usar. Se comenzó a reimplementar todo como un proyecto open source para que todo el mundo pudiera venir y ayudar, contribuir”.

El lenguaje de programación de Arduino es una implementación de Wiring que a su vez se basa en Processing,

Actualmente ya  se han creado oficialmente más de 120 mil placas Arduino. En cuanto a ventas, Nathan Seidle, CEO de sparkfun.com dice que han vendido 40.000 unidades de la versión Arduino USB (montada, probada y lista para funcionar).


¿QUE ES ARDUINO?


Arduino es una plataforma de desarrollo de computación física, de código abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software Processing (para esa placa). Arduino es hardware libre.

Para entenderlo mejor veremos que es:

·         Un microcontrolador es un “ordenador en un chip”. Es el cerebro electrónico utilizado para controlar juguetes, microondas, frigoríficos, televisores, ordenadores, impresoras, módems, el sistema de arranque de los coches etc. Es un circuito integrado (chip) que contiene memoria (para almacenar programas), un procesador (para procesar y llevar a cabo los programas) y pines de entrada/salida (para conectar interruptores, sensores, y dispositivos de salida como los motores) (Didactec).

·         La computación física es crear un dialogo entre el mundo físico que nos rodea y el mundo virtual creado por los ordenadores. Para que este diálogo se produzca hay que capturar la información a través de sensores que obtengan la información análoga y la envié al ordenador en  lenguaje digital. A su vez necesitamos un programa que sea capaz de interpretar los datos enviados por los sensores y realizar alguna tarea, bien en el mundo virtual del ordenador o bien sobre el mundo físico como, por ejemplo, encender la calefacción si hace frío o apagarla si hace calor. Se crea un dialogo bidireccional entre estos dos mundos. (Qué es la computación física). El Gurú de la computación física es Tom Igoe.

·         Processing es un lenguaje de programación, un entorno de desarrollo y una comunidad online, que desde 2001 ha promovido la alfabetización de software en las Artes Visuales. Es decir, enseñar programación a no programadores en un contexto visual. Processing fue fundada por Ben Fry y Casey Reas.


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 un ordenador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de software (p.ej. Flash, Processing, MaxMSP).

Las placas pueden ser hechas a mano o compradas montadas de fábrica; el software puede ser descargado de forma gratuita. Los ficheros de diseño de referencia (CAD) están disponibles bajo una licencia abierta, así pues eres libre de adaptarlos a tus necesidades.

Con el siguiente ejemplo lo verán todo bastante claro. Se trata de MakerBot, una  impresora 3D construida con  varios Arduinos. A partir de un modelo 3D (que puede ser descargado de Internet, diseñado por uno mismo o escaneado), la máquina fabrica, en plástico, una, cien o mil unidades del objeto, por ejemplo un perchero, un abrebotellas, una taza… En  la Red hay multitud  de modelos 3D gratuitos que podemos fabricar por nosotros mismos. Ya no necesitamos una cortadora láser o una máquina de fabricación de circuitos integrados.



MENCIONES

Arduino recibió una Mención Honorífica en la sección Digital Communities de la edición del 2006 del Ars Electronica Prix. El equipo Arduino (Arduino team) es: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis. Credits



ARDUINO UNO



El Uno Arduino es una placa electronica basada en el ATmega328 ( ficha técnica ). Cuenta con 14 entradas / salidas digitales pines (de los cuales 6 pueden ser utilizados como salidas PWM), 6 entradas analógicas, un oscilador de cristal de 16 MHz, una conexión USB, un conector de alimentación, una cabecera de ICSP, y un botón de reinicio. Contiene todo lo necesario para apoyar a la micro, sólo tiene que conectarlo a un ordenador con un cable USB o el poder con un adaptador AC-DC o la batería para empezar.
El Uno difiere de todas las placas anteriores en que no utilizan el chip controlador USB FTDI a serie. Por el contrario, cuenta con la Atmega16U2 (Atmega8U2 hasta la versión R2) programado como un convertidor de USB a serie.

Revisión 2 de la junta Uno tiene una resistencia tirando de la línea HWB 8U2 a tierra, por lo que es más fácil de poner en modo DFU .

Revisión 3 de la junta directiva tiene las siguientes características nuevas:
1,0 pinout: añade pines SDA y SCL que se encuentran cerca al pin AREF y dos pasadores de otros nuevos que se pongan cerca del pin de RESET, el IOREF que permiten a los escudos de adaptarse a la tensión proporcionada por la junta.
En el futuro, escudos serán compatibles tanto con la tarjeta que utiliza el regulador, que operan con 5V y con el Arduino Debido que funcionan con 3.3V. El segundo es un pin no está conectado, que se reserva para usos futuros.
REINICIAR más fuerte del circuito.
Atmega 16U2 reemplazar el 8U2.

"Uno" significa uno en italiano y se nombra para celebrar el próximo lanzamiento de Arduino 1.0. El Uno y la versión 1.0 será la versión de referencia de Arduino, de seguir adelante. El Uno es el último de una serie de placas Arduino USB, y el modelo de referencia para la plataforma Arduino, una comparación con las versiones anteriores, consulte el índice de la placa Arduino .

Resumen

Microcontroladores ATmega328
Voltaje de funcionamiento           5V
Voltaje de Entrada (recomendado)         7-12V
Voltaje de entrada (los límites)     6-20V
Digital pines I / O     14 (6 de las cuales proporcionan una salida PWM)
Pines de entrada analógica         6
Corriente de I / S de CC Pin         40 mA
De corriente continua de 3,3 V Pin         50 mA
Memoria Flash        32 KB (ATmega328) de los cuales 0,5 KB utilizado por gestor de arranque
SRAM            2 KB (ATmega328)
EEPROM      1 KB (ATmega328)
Velocidad de reloj   16 MHz

Esquema de diseño de referencia

EAGLE archivos: arduino-uno-Rev3-reference-design.zip (NOTA: trabaja con Eagle 6.0 y posteriores)
Esquema: arduino-uno-Rev3-schematic.pdf
Nota: El diseño de referencia Arduino puede utilizar un Atmega8, 168, o 328, los modelos actuales utilizan una ATmega328, pero una Atmega8 se muestra en el esquema de referencia. La configuración de pines es idéntico en los tres procesadores.

Poder

El Uno Arduino puede ser alimentado a través de la conexión USB o con una fuente de alimentación externa. La fuente de alimentación se selecciona automáticamente.

Externo (no USB), el poder puede venir de un adaptador de CA a CC (en la pared verruga) o la batería. El adaptador se puede conectar al conectar un centro de 2.1mm-positivo enchufe en toma de alimentación de la placa.

Cables de la batería se puede insertar en los encabezados de pin GND y Vin del conector de alimentación.
La junta puede operar en un suministro externo de 6 a 20 voltios. Si se suministran con menos de 7V, sin embargo, el pasador de 5V puede suministrar menos de cinco voltios y la junta puede ser inestable.

Si utiliza más de 12V, el regulador de voltaje se puede sobrecalentar y dañar la placa. El rango recomendado es de 7 a 12 voltios.
Los pines de alimentación son los siguientes:

·         VIN. El voltaje de entrada a la placa Arduino cuando se utiliza una fuente de alimentación externa (a diferencia de 5 voltios de la conexión USB o de otra fuente de alimentación regulada). Usted puede suministrar tensión a través de este pin, o, si el suministro de tensión a través de la toma de poder, acceder a ella a través de este pin.
·         5V. Este pin genera una 5V regulado por el regulador en el tablero. El tablero puede ser alimentado ya sea desde la entrada de alimentación (7 - 12 V), el conector USB (5V), o el pasador de VIN de la junta (7-12V). El suministro de tensión a través de los pasadores de 5V o 3.3V no pasa por el regulador, y puede dañar la placa. No se lo aconsejo.
·         3V3. Un suministro voltios 3,3 generada por el regulador de a bordo. Consumo de corriente máxima es de 50 mA.
GND. Estacas.

Memoria       

El ATmega328 tiene 32 MB (con 0,5 KB utilizados para el gestor de arranque). También dispone de 2 KB de SRAM y 1 KB de memoria EEPROM (que se puede leer y escribir con la librería EEPROM ).

Entrada y salida

Cada uno de los 14 pines digitales en el Uno se puede utilizar como entrada o de salida, usando pinMode () , digitalWrite () , y digitalRead () funciones. Ellos operan a 5 voltios. Cada pin puede proporcionar o recibir un máximo de 40 mA y tiene una interna de resistencia pull-up (desconectado por defecto) de 20 a 50 kOhm. Además, algunos pines tienen funciones especializadas:

·         Serie:. 0 (RX) y 1 (TX) Se utiliza para recibir (RX) y transmisión (TX) datos serie TTL. Estos se encuentran conectadas a los pines correspondientes de la ATmega8U2 USB-a-chip de serie TTL.
·         Interrupciones externas: 2 y 3 Estos pines pueden ser configurados para activar una interrupción en un valor bajo, un flanco ascendente o descendente, o un cambio en el valor. Ver la attachInterrupt () la función para más detalles.
·         PWM:. 3, 5, 6, 9, 10 y 11 Proporcionar 8-bits de salida PWM con la analogWrite () función.
·         SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Se trata de las espigas de apoyo con la comunicación SPI. biblioteca de SPI .
·         LED: 13 Hay un built-in LED conectado al pin digital 13.. Cuando el pin es de alto valor, el LED está encendido, cuando el pasador es bajo, es apagado.

El Uno tiene 6 entradas analógicas, etiquetados A0 a A5, cada una de las cuales proporcionan 10 bits de resolución (es decir 1024 valores diferentes). Por defecto miden desde el suelo a 5 voltios, aunque es posible cambiar el extremo superior de su rango con el pasador y el AREF analogReference () función. Además, algunos pines tienen funciones especializadas:

·         IST: A4 o A5 y pin SDA o SCL pasador de soporte de comunicación con el IST. librería Wire .
Hay un par de alfileres en el tablero:
·         AREF. Voltaje de referencia para las entradas analógicas. Se utiliza con analogReference ().
·         Restablecer. Lleve esta línea LOW para reiniciar el microcontrolador. Normalmente se utiliza para añadir un botón de reinicio para escudos que bloquean el uno en el tablero.


Comunicación

El Uno Arduino tiene una serie de facilidades para comunicarse con un ordenador, otro Arduino, u otros microcontroladores. El ATmega328 ofrece UART TTL (5V) de comunicación en serie, que está disponible en los pines digitales 0 (RX) y 1 (TX). Un ATmega16U2 en los canales de comunicación a bordo esta serie a través de USB y aparece como un puerto COM virtual con el software en el ordenador. El firmware '16U2 utiliza el estándar de los controladores USB, COM, y no hay ningún controlador externo es necesario. Sin embargo, en Windows, un archivo. inf se requiere .

El software de Arduino incluye un monitor de serie que permite a los simples datos de texto que se envía desde y hacia la placa Arduino. Los LEDs RX y TX en el tablero parpadea cuando se están transmitiendo datos a través de la ficha de USB a serie y la conexión USB a la computadora (pero no para la comunicación de serie en los pines 0 y 1).
Una biblioteca de SoftwareSerial permite la comunicación de serie en cualquiera de los pines digitales de la ONU.

El ATmega328 también soporta comunicación I2C (TWI) y SPI. El software de Arduino incluye una librería Wire para simplificar el uso del bus I2C, consulte la documentación para más detalles. Para la comunicación SPI, utilice la biblioteca de SPI.

Programación

El Uno Arduino puede ser programado con el software de Arduino ( descarga ). Seleccione "Arduino Uno de los menú Herramientas> Consejo (de acuerdo con el microcontrolador en el tablero). Para obtener más información, consulte la referencia y tutoriales .

El ATmega328 en la Arduino Uno viene pre-quemado con un gestor de arranque que le permite cargar nuevo código a la misma sin el uso de un programador de hardware externo. Se comunica utilizando el protocolo original STK500 ( de referencia , los archivos de cabecera C ).

También puede pasar por alto el gestor de arranque y el programa del microcontrolador a través de la ICSP (programación In-Circuit Serial) cabecea, ver las instrucciones para los detalles.

El ATmega16U2 (o 8U2 en los REV1 y REV2 tablas) el código fuente está disponible el firmware. El ATmega16U2 / 8U2 está cargado con un cargador de arranque DFU, que puede ser activado por:

·         En Rev1 juntas: conectar el puente de soldadura en la parte posterior de la placa (cerca del mapa de Italia) y luego reiniciar el 8U2.
·         En Rev2 o tablas posteriores: hay una resistencia que tirando de la línea de 8U2/16U2 HWB a tierra, por lo que es más fácil poner en modo DFU.

A continuación, puede utilizar el software FLIP de Atmel (Windows) o el programador de DFU (Mac OS X y Linux) para cargar un nuevo firmware. O puede utilizar el encabezado de ISP con un programador externo (sobrescribir el gestor de arranque DFU). Ver este tutorial aportado por los usuarios para obtener más información.
  
Automática (Software) Restablecer

En lugar de exigir una prensa físico del botón de reinicio antes de que una carga, el Uno Arduino está diseñado de una manera que le permite ser restaurada mediante el software que se ejecuta en un ordenador conectado.

 Una de las líneas de control de flujo de hardware (DTR) de la ATmega8U2 / 16U2 está conectado a la línea de reposición del ATmega328 través de un condensador 100 nanofaradios.

Cuando esta línea se afirma (tomado bajo), la línea de reset cae lo suficiente como para restablecer el chip. El software de Arduino utiliza esta capacidad que le permite cargar el código con sólo pulsar el botón de subida en el entorno Arduino.

Esto significa que el gestor de arranque puede tener un tiempo de espera más corta, como la reducción de DTR puede ser bien coordinada con el inicio de la carga.

Esta configuración tiene otras implicaciones. Cuando el Uno se conecta a un ordenador con Mac OS X o Linux, se pone a cero cada vez que se realiza una conexión a ella desde el software (a través de USB). Para el siguiente medio segundo más o menos, el gestor de arranque se está ejecutando en la ONU.

Mientras que está programado para ignorar los datos con formato incorrecto (es decir, nada, además de un proceso de carga del nuevo código), que interceptará los primeros bytes de datos enviados a la junta después de una conexión se abre.

Si un esquema que se ejecuta en la placa recibe una configuración en tiempo u otros datos cuando se inicia por primera vez, asegúrese de que el software con el que se comunica espera un segundo después de abrir la conexión y antes de enviar estos datos.

El Uno contiene una traza que se puede cortar para deshabilitar la auto-reset. Las almohadillas en cada lado de la huella puede ser soldadas entre sí para volver a habilitar la misma. Ha marcado "RESET-ES". También puede ser capaz de desactivar el reinicio automático mediante la conexión de una resistencia de 110 ohmios de 5V a la línea de reset, ver este hilo del foro para más detalles.

USB Protección contra sobrecorriente

El Uno Arduino tiene un polifusible reajustable que protege a los puertos USB de tu ordenador de cortos circuitos y de sobrecorriente. Aunque la mayoría de las computadoras ofrecen su protección interna, el fusible proporciona una capa adicional de protección. Si hay más de 500 mA se aplica al puerto USB, el fusible automáticamente se corta la conexión hasta que el cortocircuito o una sobrecarga se ha eliminado.
  
Características físicas

La longitud máxima y la anchura de la Junta de Coordinación Uno son 2,7 y 2,1 pulgadas respectivamente, con el conector USB y conector de alimentación se extiende más allá de la dimensión anterior. Cuatro orificios de los tornillos permite que la tarjeta sea sujeto a una superficie o caja. Obsérvese que la distancia entre los pines digitales 7 y 8 es de 160 milésimas de pulgada (0,16 "), no un múltiplo par de la separación 100 milésimas de los pasadores de otros.

sábado, 24 de marzo de 2012

PROTOCOLO MESI



El protocolo MESI, también conocido como protocolo Illinois, es un extendido protocolo de coherencia de caché y coherencia de memoria, que fue creado por Intel en el procesador Pentium para "dar soporte más eficientemente a write-back en lugar del write-through de caché de CPU usado con anterioridad en el procesador 486".

ESTADOS

Cada línea de caché se marca con uno de los cuatro estados siguientes (codificados con dos bits adicionales):
§  M - Modified (Modificado): La línea de caché sólo está en la caché actual, y está "sucia"; ha sido modificado el valor de la memoria principal. Es necesario que los datos sean escritos otra vez en la memoria principal antes de permitir cualquier otra lectura del estado de la memoria (ya no es válida).
§  E - Exclusive (Exclusivo): La línea de caché sólo se encuentra en la caché actual, pero está "limpia"; coincide con el valor de la memoria principal.
§  S - Shared (Compartido): Indica que esta línea de caché puede estar duplicada en otras cachés.
§  I - Invalid (Inválido): Indica que esta línea de caché no es válida.
Para cualquier par de cachés, los estados permitidos para una línea de caché son los siguientes:


M
E
S
I
M
NO
NO
NO
SI
E
NO
NO
NO
SI
S
NO
NO
SI
SI
I
SI
SI
SI
SI




OPERACIONES
Se puede leer de caché en cualquier estado excepto en Inválido. Una línea inválida puede ser cogida (de los estados Compartido o Exclusivo) para satisfacer una lectura.
Una escritura sólo puede ser llevada a cabo si la línea de caché está en estado Modificado o Exclusivo. Si está en estado Compartido todas las otras copias en otras cachés deben ser puestas en estado Inválido antes. Esto se hace habitualmente con una operación broadcast.
Una caché puede cambiar el estado de una línea en cualquier momento, pasándolo a estado Inválido. Una línea Modificada debe ser escrita antes.
Una caché que contenga una línea en estado Modificado debe sondear (interceptar) todos los intentos de lectura (de todas las CPUs del sistema) a la memoria principal y copiar los datos que tiene. Esto se hace habitualmente forzando la lectura back off (cancelar el bus de transferencia a memoria), para luego escribir los datos en memoria principal y cambiar la línea de caché a estado Compartido.
Una caché que contenga una línea en estado Compartido debe también sondear todas las operaciones broadcast inválidas de otras CPUs, y descartar la línea (cambiándola a estado Inválido) una vez hecho.
Una caché que contenga una línea en estado Exclusivo también debe sondear todas las peticiones de lecturas del resto de CPUs y cambiar la línea a estado Compartido una vez hecho.
Los estados Modificado y Exclusivo son siempre precisos: corresponden a los poseedores de la línea correcta en el sistema. El estado Compartido puede ser impreciso: si alguna otra CPU descarga una línea Compartida, y esta CPU es la única que tiene una copia, la línea no será cambiada a estado Exclusivo. (Porque cambiar todas las líneas de caché de todas las CPUs no es práctico en un bus de sondeo broadcast)
En ese sentido el estado Exclusivo es una optimización oportunista: si la CPU quiere modificar la línea de caché a estado Compartido, es necesario un intercambio por el bus para invalidar cualquier otra copia en caché. El estado Compartido permite modificar una línea de caché sin ningún intercambio por el bus.
Existen unos errores en el diagrama de estados de la imagen de arriba, en la transición BusRd/Flush del estado S al I. Debería de ser BusRdX, ya que no tiene sentido que por una lectura, se realice una invalidación en el resto de cachés para esa línea. Por otro lado, los BusRd/Flush de las transiciones de E a S no deberían incluir el Flush, porque por una lectura no es necesario realizar una actualización de la línea en memoria principal.

lunes, 19 de marzo de 2012

¡Lo que hacemos por ser Ingenieros de Sistemas!




1. Cuando el ingeniero de sistemas le diga que acude en su ayuda, desconéctese de la red y vaya por un café. No nos espere, para nosotros no es ningún problema acordarnos de todos las claves de usuario.

2. Cuando nos llame para decirnos que cambiemos su computador de sitio, asegúrese de que lo deja bien enterrado bajo media tonelada de postales, fotos de sus niños, animales de toda clase, flores secas, trofeos varios, etc. A nosotros, como no tenemos vida privada, nos encanta echar un vistazo a la suya.

3. Cuando el ingeniero de sistemas le envíe un correo electrónico de importancia alta, bórrelo inmediatamente sin leer: Lo más probable es que estemos haciendo pruebas.

4. Cuando el ingeniero de sistemas esté almorzando, entre sin ninguna consideración y explíquele sus problemas esperando a que se le responda en el acto. Estamos aquí para servirle y siempre a punto para solucionar problemas.

5. Cuando el ingeniero de sistemas esté tomando un café tranquilamente, pregúntele algo acerca de los computadores. La única razón por la que nos vamos a tomar café, es para atender a las personas que no tienen correo electrónico o teléfono.

6. Mande todos sus mensajes en mayúsculas. El servidor de correo lo recogerá inmediatamente y lo tratará como mensaje urgente.

7. Cuando llame al teléfono del ingeniero de sistemas, pulse el número 5 para saltarse el mensaje que le dice que está de vacaciones y grabe su mensaje. Entonces, espere exactamente 24 horas antes de mandar un correo electrónico directamente a su jefe quejándose de que no ha recibido ninguna respuesta a su llamada. Usted no se merece este trato.

8. Cuando la fotocopiadora no funcione, llame al ingeniero de sistemas. Al fin, la fotocopiadora tiene cable, ¿no?

9. Cuando su módem le dé el mensaje: 'No hay tono de marcado', en casa, llame al ingeniero de sistemas. Podemos solucionar problemas de teléfono desde donde sea.

10. Cuando su computador no funcione, tírelo encima de la silla del ingeniero de sistemas y no deje ningún papel con su nombre ni la descripción del problema. Nos encanta el misterio.

11. Cuando el ingeniero de sistemas le esté explicando cómo cambiar algún parámetro de su configuración, póngase a leer el periódico. De hecho, no esperamos que usted tenga que hacer nada, simplemente nos encanta oírnos a nosotros mismos cuando explicamos algo.

12. Cuando le demos alguna explicación sobre algún programa, no se moleste en aprender. Siempre estaremos ahí para volver a hacerlo.

13. Cuando la impresora no imprima, reenvíe su trabajo al menos 20 veces. A veces los trabajos que intenta imprimir desaparecen en el cosmos sin razón aparente.

14. Cuando la impresora no imprima tras los 20 intentos, envíe su trabajo a todas las demás impresoras de la empresa. Seguro que alguna imprimirá.

15. No use la ayuda que viene en los programas. Estas ayudas on-line sólo son para brutos.

16. Cuando vaya a tomar algún cursillo de informática, no dude en practicar con la red de la empresa e instalar y probar todo lo que desee. Estaremos encantados de trabajar hasta la madrugada para arreglar todos los estragos que usted cause.

17. Cuando lleguemos a reparar su computador y esté usted comiendo, deguste con calma su almuerzo en nuestra cara. Funcionamos mejor bajo presión.

18. Nunca nos dé las gracias. Nos encanta nuestro trabajo y, además, ¡nos pagan!

19. Cuando el ingeniero de sistemas le pregunte si ha instalado algún nuevo programa en su computador, mienta. ¡A nadie le importa lo que usted tiene en su PC!

20. Si el cable de su ratón siempre tira el gatito de porcelana que tiene usted encima de la mesa, levante el computador y pise el cable con él. Los cables de ratón están diseñados para aguantar 80 kilos de peso.

21. Si la tecla {Enter} de su teclado no funciona, échele la culpa a la actualización del correo electrónico. Además, los teclados funcionan mucho mejor con medio kilito de migas de galleta, cabellos y manchas secas de Coca Cola debajo de las teclas.

22. Cuando el sistema le muestre la típica ventana de 'Está usted seguro...', conteste siempre que 'Sí' o 'Aceptar'. ¿Si no estuviera usted seguro no lo habría hecho, verdad?

23. Siéntase completamente libre para decir 'No tengo ni idea acerca de esta mierda de informática'. A nosotros nunca nos ha molestado que la gente diga que nuestra profesión es una mierda.

24. Cuando necesite cambiar el cartucho de tóner, llame al ingeniero de sistemas. El cambio de cartucho es una tarea extremadamente complicada y Epson recomienda que solamente la realice un ingeniero con una maestría en hardware.

25. Cuando le suceda algo a su computador, pida a su secretaria (si la tiene) que nos llame. A los que trabajamos en un Help Desk nos encanta tener que tratar con una tercera persona que no tiene ni idea de cuál es su problema.

26. Cuando escanée la foto de su última parranda, de 30 megas, a tope de colores y resolución, enviéla a todo el mundo a través de su correo electrónico y, por supuesto, indique alta prioridad. Tenemos montooooones de megas libres en el servidor y un procesador del carajo.

27. Cuando tenga que imprimir tropocientos mil folios, no se le ocurra ir imprimiendo de poco en poco: ¡Mándelos todos de una vez! Los demás pueden esperar, usted tiene prioridad.

28. Cuando se encuentre por casualidad a su ingeniero de sistemas durante el fin de semana, no dude en hacerle preguntas acerca de computadores. Nosotros trabajamos 24 horas al día, 7 días a la semana, incluida la playa en verano, la nieve en invierno, supermercados, cines, etc.

29. Si sus hijos estudian informática, tráigalos el fin de semana a la oficina. Ahí estaremos para prestarles cualquier equipo, reparar su base de datos de Access hecha trizas por su copia ilegal de Visual Basic, etc.

30. Cuando nos traiga su computador clónico de casa para que se lo reparemos gratis, por favor recuérdenos que es urgente para que por la tarde pueda usted jugar al solitario. ¡Ahí estaremos! 
Nos sobra tanto tiempo, y el día es tan largo. De todas formas, ¡todo el mundo sabe que perdemos constantemente el tiempo navegando por Internet!

31. Cuando necesite la ayuda del ingeniero de sistemas para hacer una presentación, no se afane, puede pasarla unas pocas horas antes. ¿Acaso no sabe que podemos hacer milagros?

Ah, ¡y discúlpennos por ser ingenieros de sistemas!