<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Jorge Iván Meza Martínez &#187; Desarrollo de hardware</title> <atom:link href="http://blog.jorgeivanmeza.com/category/desarrollo-de-hardware/feed/" rel="self" type="application/rss+xml" /><link>http://blog.jorgeivanmeza.com</link> <description>The Fire Within Me: &#34;knowledge will set you free&#34;</description> <lastBuildDate>Tue, 31 Jan 2012 18:18:13 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Ejemplo rápido y simple de AJAX con PHP y PrototypeJS</title><link>http://blog.jorgeivanmeza.com/2009/11/ejemplo-rapido-y-simple-de-ajax-con-php-y-prototypejs/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ejemplo-rapido-y-simple-de-ajax-con-php-y-prototypejs</link> <comments>http://blog.jorgeivanmeza.com/2009/11/ejemplo-rapido-y-simple-de-ajax-con-php-y-prototypejs/#comments</comments> <pubDate>Tue, 24 Nov 2009 17:33:24 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Desarrollo de hardware]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[AJAX]]></category> <category><![CDATA[Hipergalaxia]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Prototype]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=2148</guid> <description><![CDATA[Introducción. Intentando recuperar mis neuronas que saben de Prototype para continuar por fin con uno de los proyectos que se encontraba en pausa permanente, el día de hoy me día a la breve tarea de recordar un poco la invocación &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/11/ejemplo-rapido-y-simple-de-ajax-con-php-y-prototypejs/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>Introducción.</h2><p>Intentando recuperar mis neuronas que saben de <a
href="http://prototypejs.org/" target="_blank">Prototype</a> para continuar por fin con uno de los proyectos que se encontraba en pausa permanente, el día de hoy me día a la breve tarea de recordar un poco la invocación asíncrona y la manipulación del DOM utilizando esta librería.  Para hacer una pequeña práctica decidí modificar el ejemplo de la <a
href="http://blog.jorgeivanmeza.com/2009/10/ejemplo-de-ajax-rapido-y-simple-con-php-y-jquery/" target="_blank">calculadora que se basaba en jQuery y PHP</a> para migrar su código de acuerdo con la especificación de Prototype.</p><p>Las modificaciones necesarias se centraron en la inclusión de la librería javascript en la página web (<em>frontend</em>) y en reescribir la invocación asíncrona de la aplicación web en PHP (<em>backend</em>).</p><h2>Procedimiento.</h2><p>Reemplazar la inclusión de la librería de jQuery por la de Prototype.  Para este caso se continúo utilizando el API de Google AJAX.</p><pre class="javascript">&lt;script src="http://www.google.com/jsapi"&gt;&lt;/script&gt;
&lt;script&gt;google.load("prototype", "1.6");&lt;/script&gt;</pre><p>Posteriormente se asoció el manejo del evento de presión del botón <span
style="font-family: courier new,courier;">igual</span> a la invocación de la función <span
style="font-family: courier new,courier;">procesar</span>, esto se realiza tan pronto como la estructura de la página (código HTML) se encuentra cargada completamente por el navegador.</p><pre class="javascript">/* Código a ejecutarse tan pronto como la
   página ha sido cargada por el navegador */
document.observe('dom:loaded', function()
{
    /* Asociar el evento de clic del botón 'igual'
       con la lógica del negocio de la aplicación */
    Event.observe('igual', 'click', procesar);
});</pre><p>Finalmente se implementa la función <span
style="font-family: courier new,courier;">procesar</span> que realizará la invocación asíncrona del cálculo matemático.  Esta función consta de las siguientes partes.</p><ol><li>Información básica del requerimiento.</li><li>Que hacer en caso de éxito.</li><li>Que hacer en caso de fracaso.</li></ol><p>El requerimiento incluye la siguiente información básica de conexión.</p><ul><li>El URL de la aplicación remota a invocar (<em>backend</em>).</li><li>El método HTTP a utilizar.</li><li>Los parámetros de la página web a enviarse.</li></ul><pre class="javascript">function procesar()
{
    new Ajax.Request('calcular.php',                                         /* URL a invocar asíncronamente */
    {
        method:       'post',                                                /* Método utilizado para el requerimiento */
        parameters:   $('formulario').serialize(true),                       /* Información local a enviarse con el requerimiento */</pre><p>En caso de que la invocación asíncrona tenga un resultado exitoso se deberán realizar los siguientes pasos.</p><ul><li>Mostrar un mensaje de éxito en color verde.</li><li>Desplegar el valor del resultado obtenido en el campo definido para tal fin.</li></ul><pre class="javascript">        /* Que hacer en caso de ser exitoso el requerimiento */
        onSuccess: function(transport)
        {
            /* Cambiar el color del texto a verde */
            $('mensaje').setStyle('color: #0ab53a');
            /* Mostrar un mensaje informando el éxito sucedido */
            $('mensaje').update("Operación realizada exitosamente");
            /* Mostrar el resultado obtenido del cálculo solicitado */
            $('resultado').update(transport.responseText);
        },</pre><p>En caso de que fracase el proceso de invocación asíncrona se deberán realizar los siguientes pasos análogos.</p><ul><li>Mostrar el mensaje de error proveniente del servidor, en color rojo.</li><li>Limpiar cualquier resultado previo para evitar confusiones con la operación.</li></ul><pre class="javascript">        /* Que hacer en caso de que sea fallido el requerimiento */
        onFailure: function(transport)
        {
            /* Cambiar el color del texto a rojo */
            $('mensaje').setStyle('color: #ff0e0e');
            /* Mostrar el mensaje de error */
            $('mensaje').update('Error: ' + transport.responseText);
            /* Limpiar cualquier resultado anterior */
            $('resultado').update('Error');
        }
    });
}</pre><h2>Enlaces.</h2><ul><li>Demostración &amp; descarga del código fuente.<br
/> <a
href="http://demo.jorgeivanmeza.com/Prototype/AjaxSimpleRapido-Calc/" target="_blank">http://demo.jorgeivanmeza.com/Prototype/AjaxSimpleRapido-Calc/</a></li><li>Prototype Javascript Framework.<br
/> <a
href="http://prototypejs.org/" target="_blank">http://prototypejs.org/</a></li><li>Prototype Introduction to Ajax.<br
/> <a
href="http://www.prototypejs.org/learn/introduction-to-ajax" target="_blank">http://www.prototypejs.org/learn/introduction-to-ajax</a></li><li>Prototype's AJAX Request API.<br
/> <a
href="http://api.prototypejs.org/ajax/ajax/request.html" target="_blank">http://api.prototypejs.org/ajax/ajax/request.html</a></li><li>Prototype's Element API.<br
/> <a
href="http://api.prototypejs.org/dom/element.html" target="_blank">http://api.prototypejs.org/dom/element.html</a></li><li>Ejemplo de AJAX rápido y simple con PHP y jQuery.<br
/> <a
href="http://blog.jorgeivanmeza.com/2009/10/ejemplo-de-ajax-rapido-y-simple-con-php-y-jquery/" target="_blank">http://blog.jorgeivanmeza.com/2009/10/ejemplo-de-ajax-rapido-y-simple-con-php-y-jquery/</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/11/ejemplo-rapido-y-simple-de-ajax-con-php-y-prototypejs/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Comunicación de la tarjeta Arduino con el computador</title><link>http://blog.jorgeivanmeza.com/2009/06/comunicacion-de-la-tarjeta-arduino-con-el-computador/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=comunicacion-de-la-tarjeta-arduino-con-el-computador</link> <comments>http://blog.jorgeivanmeza.com/2009/06/comunicacion-de-la-tarjeta-arduino-con-el-computador/#comments</comments> <pubDate>Tue, 16 Jun 2009 03:01:37 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Desarrollo de hardware]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Arduino]]></category> <category><![CDATA[Hipergalaxia]]></category> <category><![CDATA[Serial]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1780</guid> <description><![CDATA[Introducción. La tarjeta Arduino incluye un puerto serial que puede accederse a través de los pines digitales 0 (RX) y 1 (TX) o desde el computador a través del puerto USB.  Esto se realiza a través del objeto Serial con &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/06/comunicacion-de-la-tarjeta-arduino-con-el-computador/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>Introducción.</h2><p>La tarjeta <a
href="http://arduino.cc/" target="_parent">Arduino</a> incluye un puerto serial que puede accederse a través de los pines digitales 0 (RX) y 1 (TX) o desde el computador a través del puerto USB.  Esto se realiza a través del objeto <a
href="http://arduino.cc/en/Reference/Serial" target="_parent">Serial</a> con el que es posible realizar las siguientes acciones.</p><ul><li><a
href="http://arduino.cc/en/Serial/Begin" target="_parent"><span
style="font-family: courier new,courier;">Serial.begin</span></a>: Establecer la tasa de transmisión de datos (bits por segundo &#8211; bps).</li><li><a
href="http://arduino.cc/en/Serial/Available" target="_parent"><span
style="font-family: courier new,courier;">Serial.available</span></a>: Verificar si hay bytes pendientes por ser leidos en el puerto.</li><li><a
href="http://arduino.cc/en/Serial/Read" target="_parent"><span
style="font-family: courier new,courier;">Serial.read</span></a>: Leer bytes del puerto serial.</li><li><a
href="http://arduino.cc/en/Serial/Flush" target="_parent"><span
style="font-family: courier new,courier;">Serial.flush</span></a>: Limpiar el <em>buffer</em> de entrada.</li><li><a
href="http://arduino.cc/en/Serial/Flush" target="_parent"><span
style="font-family: courier new,courier;">Serial.print</span></a> y <a
href="http://arduino.cc/en/Serial/Println" target="_parent"><span
style="font-family: courier new,courier;">Serial.println</span></a>: Enviar información a través del puerto serial.</li><li><a
href="http://arduino.cc/en/Serial/Write" target="_parent"><span
style="font-family: courier new,courier;">Serial.write</span></a>: Enviar información binaria a través del puerto serial.</li></ul><h2>Descripción general de las funciones de E/S.</h2><h3>Establecer tasa de transmisión de datos.</h3><pre class="cpp">void Serial.begin(int velocidad);</pre><ul><li>Debe realizarse como paso previo a la emisión/recepción de información a través del puerto serial.</li><li>La tasa puede ser una de las estándar: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 y 115200, o cualquiera personalizada.</li><li>La velocidad utilizada para realizar la conexión con el computador es de 9600.</li></ul><h3>Verificar bytes pendientes por lectura.</h3><pre class="cpp">int Serial.available();</pre><ul><li>Como su nombre lo indica, la transmisión de información a través del puerto serial se realiza de manera serial, es decir un byte a la vez.</li><li>Este método permite verificar si hay bytes pendientes de lectura retornando el número de bytes disponibles en el <em>buffer</em> del puerto serial.</li><li>El <em>buffer</em> del puerto serial puede retener hasta 128 bytes.</li><li>Retorna 0 si no hay bytes pendientes de lectura en el puerto.</li></ul><h3>Leer información.</h3><pre class="cpp">int Serial.read();</pre><ul><li>Obtiene el siguiente byte disponible en el <em>buffer </em>del puerto serial.</li><li>Retorna -1 si no hay información disponible.</li></ul><h3>Limpiar el <em>buffer</em> de entrada.</h3><pre class="cpp">void Serial.flush();</pre><ul><li>Limpia el <em>buffer</em> de entrada del puerto serial, descartando cualquier contenido que se encuentre allí.</li></ul><h3>Enviar información.</h3><pre class="cpp">void Serial.print(datos);
void Serial.print(datos, tipo);
void Serial.println(datos);
void Serial.println(datos, tipo);</pre><ul><li>Envían la información (<span
style="font-family: courier new,courier;">datos</span>) en el formato especificado (<span
style="font-family: courier new,courier;">tipo</span>) a través del puerto serial.</li><li>El formato (<span
style="font-family: courier new,courier;">tipo</span>) puede ser uno de los siguientes.<ul><li><span
style="font-family: courier new,courier;">DEC</span>: representación en cadena de un número decimal (<span
style="font-family: courier new,courier;">79</span>).</li><li><span
style="font-family: courier new,courier;">HEX</span>: representación en cadena de un número hexadecimal (<span
style="font-family: courier new,courier;">4F</span>).</li><li><span
style="font-family: courier new,courier;">OCT</span>: representación en cadena de un número octal (<span
style="font-family: courier new,courier;">117</span>).</li><li><span
style="font-family: courier new,courier;">BIN</span>: representación en cadena de un número binario (<span
style="font-family: courier new,courier;">1</span><span
style="font-family: courier new,courier;">001111</span>).</li><li><span
style="font-family: courier new,courier;">BYTE</span>: un único byte.</li></ul></li><li>Si no se especifica un formato (<span
style="font-family: courier new,courier;">tipo</span>), se utiliza por defecto a <span
style="font-family: courier new,courier;">DEC</span>.</li><li>La diferencia entre <span
style="font-family: courier new,courier;">print</span> y <span
style="font-family: courier new,courier;">println</span> es que el segundo agrega un retorno de carro (ASCII 13 o '<span
style="font-family: courier new,courier;">\r</span>') y un salto de línea (ASCII 10 o '<span
style="font-family: courier new,courier;">\n</span>') al final de de la información enviada.</li></ul><h3>Enviar información binaria.</h3><pre class="cpp">void Serial.write(datos);
void Serial.write(buffer, longitud);</pre><ul><li>Envía información binaria: un byte o una secuencia de bytes, al puerto serial.</li><li>Los <span
style="font-family: courier new,courier;">datos</span> a enviarse pueden ser un número o una cadena.</li><li>Si se desea enviar un arreglo (<span
style="font-family: courier new,courier;">buffer</span>) es necesario especificar su <span
style="font-family: courier new,courier;">longitud</span>.</li></ul><h2>Depurando la transmisión de datos.</h2><p>Es posible revisar fácilmente con el IDE de Arduino lo que la tarjeta está transmitiendo al computador a través del puerto USB mediante el <strong>Monitor Serial</strong>.  Esto es muy útil también para la depuración rápida de los <em>sketches</em>.</p><p>Para activar el <strong>Monitor Serial</strong> se debe presionar el ícono <a
href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/serial_monitor.gif"><img
class="alignnone size-full wp-image-1785" title="serial_monitor" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/serial_monitor.gif" alt="serial_monitor" width="21" height="21" /></a> y utilizar las funciones de envío de información mencionadas anteriormente, de esta manera aparecerá en la sección inferior del IDE una consola donde se podrán apreciar los mensajes enviados por la Arduino.</p><div
id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 568px; width: 1px; height: 1px;"><p>void Serial.print(datos, tipo);</p></div> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/06/comunicacion-de-la-tarjeta-arduino-con-el-computador/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>El cuarto sketch: The LED with fotoresistor</title><link>http://blog.jorgeivanmeza.com/2009/06/el-cuarto-sketch-the-led-with-fotoresistor/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=el-cuarto-sketch-the-led-with-fotoresistor</link> <comments>http://blog.jorgeivanmeza.com/2009/06/el-cuarto-sketch-the-led-with-fotoresistor/#comments</comments> <pubDate>Mon, 15 Jun 2009 22:58:56 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Desarrollo de hardware]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Arduino]]></category> <category><![CDATA[Hipergalaxia]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1776</guid> <description><![CDATA[Descripción. Este sketch utiliza una fotoresistencia como sensor, es decir, la cantidad de luz recibida por el componente determina la cantidad de voltaje que es permitido pasar a través de él.  Como actuador se utiliza el mismo LED de siempre &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/06/el-cuarto-sketch-the-led-with-fotoresistor/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<div
id="attachment_1778" class="wp-caption aligncenter" style="width: 650px"><a
href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/TheLEDWithPhotoResistor.png"><img
class="size-full wp-image-1778" title="TheLEDWithPhotoResistor" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/TheLEDWithPhotoResistor.png" alt="Sketch 'The LED with fotoresistor'." width="640" height="552" /></a><p
class="wp-caption-text">Sketch &#39;The LED with fotoresistor&#39;.</p></div><h2>Descripción.</h2><p>Este <em>sketch</em> utiliza una fotoresistencia como sensor, es decir, la cantidad de luz recibida por el componente determina la cantidad de voltaje que es permitido pasar a través de él.  Como actuador se utiliza el mismo LED de siempre que nos mostrará de manera visual cuanto voltaje atravieza por el sistema.</p><p>A mayor cantidad de luz percibida el LED tendrá un mayor brillo.</p><h2>Implementación.</h2><h3>Hardware.</h3><p>En términos de la implementación del hardware suceden dos cosas interesantes.</p><ol><li>Como ya se había hecho en el <em>sketch</em> anterior, <a
href="http://blog.jorgeivanmeza.com/2009/06/el-tercer-sketch-the-led-with-button-and-fade/" target="_blank">The LED with button and fade</a>, para provocar el efecto de intensidad de luz del LED es necesario conectarlo a uno de los pines con soporte para modulación por ancho de pulsos (PWM), es decir, a los pines 9, 10 y 11, y enviarle la inforamción correspondiente con la instrucción <span
style="font-family: courier new,courier;">analogWrite</span>.</li><li>La foto resistencia, a diferencia del botón que tiene sólo dos estados: presionado o no presionado, es capaz de producir un rango de valores según la cantidad de luz que recibe en un momento específico del tiempo.  Para leer su información es necesario utilizar las entradas (pines) análogos ubicados en la parte inferior derecha de la tarjeta Arduino y leer su información con la instrucción <span
style="font-family: courier new,courier;">analogRead</span>.</li></ol><h3>Software.</h3><p>En términos de software el <em>sketch</em> es muy sencillo, sólo debe realizar los siguientes pasos.</p><ol><li>Leer estado del sensor.</li><li>Modificar la intensidad del LED de acuerdo a lo leído del sensor.</li><li>Esperar un momento para reinciar la iteración.</li></ol><p>Es <span
style="text-decoration: underline;"><strong>muy importante</strong></span> tener en cuenta que la instrucción <span
style="font-family: courier new,courier;">analogRead</span> retornará un número entre 0 y 1023 mientras que la instrucción <span
style="font-family: courier new,courier;">analogWrite</span> espera un valor numérico como parámetro entre 0 y 255, por esto será necesario dividir entre 4 el valor de la lectura hacia la escritura si se va a utilizar directamente.</p><pre class="cpp">#define SENSOR 0                    // Analog pin for the fotoresistor
#define LED    9                    // Digital pin (PWM) for the LED
void setup()
{
  pinMode(LED, OUTPUT);            // LED pin is output
  // Analog pins are always INPUT.
}
void loop()
{
  int fr = analogRead(SENSOR);      // Read the status of the fotoresistor
  analogWrite(LED, fr/4);           // Change the brightness of the LED
                                    // acording the fotoresistor's value
  delay(10);                        // Wait a moment fot next iteration
}</pre>]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/06/el-cuarto-sketch-the-led-with-fotoresistor/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>El tercer sketch: The LED with button and fade</title><link>http://blog.jorgeivanmeza.com/2009/06/el-tercer-sketch-the-led-with-button-and-fade/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=el-tercer-sketch-the-led-with-button-and-fade</link> <comments>http://blog.jorgeivanmeza.com/2009/06/el-tercer-sketch-the-led-with-button-and-fade/#comments</comments> <pubDate>Wed, 10 Jun 2009 04:36:15 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Desarrollo de hardware]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Arduino]]></category> <category><![CDATA[Hipergalaxia]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1757</guid> <description><![CDATA[Descripción. Este sketch es la continuación del anterior, The LED with button and state, agregándole el efecto de desvanecimiento mientras se modifica la intensidad del LED. Si se mantiene presionado el botón (mas de 500 ms.) la intensidad del LED &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/06/el-tercer-sketch-the-led-with-button-and-fade/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<div
id="attachment_1758" class="wp-caption aligncenter" style="width: 506px"><a
href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/sketch3.png"><img
class="size-full wp-image-1758" title="sketch3" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/sketch3.png" alt="Sketch 'The LED with button and fade'" width="496" height="409" /></a><p
class="wp-caption-text">Sketch &#39;The LED with button and fade&#39;</p></div><h2>Descripción.</h2><p>Este <em>sketch</em> es la continuación del anterior, <a
href="http://blog.jorgeivanmeza.com/2009/06/modificacion-del-segundo-sketch-the-led-with-button-and-state/" target="_blank"><em>The LED with button and state</em></a>, agregándole el efecto de desvanecimiento mientras se modifica la intensidad del LED.</p><p>Si se mantiene presionado el botón (mas de 500 ms.) la intensidad del LED aumenta hasta llegar a su máximo, momento en el cual se apaga por completo y vuelve a iniciar el proceso.  Si se presiona el botón por un momento corto (menos de 500 ms.) la luz del LED se desvanece hasta llegar a cero brillo.</p><p>El proceso aparente de desvanecimiento se logra con la combinación de pulsos cada vez mas largos (o mas cortos) que se traducen longitudes de tiempo en que el LED permanece encendido, esto unido al efecto de persistencia del ojo humano (lentitud en el refrescamiento de la imagen de la retina).</p><h2>Implementación.</h2><h3>Hardware.</h3><p>Para hacer esto se utilizan los pines digitales 9, 10 u 11 que soportan <a
href="http://es.wikipedia.org/wiki/PWM" target="_blank">Modulación por ancho de pulsos (PWM)</a> y permiten manipular la longitud de los pulsos, por esto se movió el LED del pin 13 que había sido habitual hasta ahora, al 9.  Probablemente habría sido precavido agregar una resistencia entre el LED y la tierra (cable azul).</p><p>La magia del desvanecimiento se observa en el software.</p><h3>Software.</h3><p>En términos generales el <em>sketch</em> realiza lo siguiente.</p><ul><li>Si se presionó el botón:<ul><li>Cambia el estado a encendido (<span
style="font-family: courier new,courier;">HIGH</span>).</li><li>Almacena el momento en que fue presionado.</li></ul></li><li>Si se presionó el botón y se mantiene presionado (mas de 500 ms.):<ul><li>Aumenta el brillo.</li><li>Reinicia el brillo (<span
style="font-family: courier new,courier;">0</span>) si este excede el máximo (<span
style="font-family: courier new,courier;">255</span>).</li></ul></li><li>Si se presionó el botón corto tiempo (menos de 500 ms.):<ul><li>Cambia el estado a apagado (<span
style="font-family: courier new,courier;">LOW</span>).</li></ul></li><li>Almacena el estado actual del botón como último estado para la siguiente iteración.</li><li>Si el estado es encendido aumenta el brillo con la instrucción: <span
style="font-family: courier new,courier;">analogWrite(LED, brightness)</span>.</li><li>Si el estado es apagado disminuye gradualmente el brillo del LED hasta llegar a cero.</li></ul><p>Se debe tener siempre en cuenta que la función <span
style="font-family: courier new,courier;">analogRead</span> retorna un entero entre 0 y 1023 mientras que <span
style="font-family: courier new,courier;">analogWrite</span> recibe un entero entre 0 y 255, un cuarto del rango del valor retornado por la lectura.</p><pre class="cpp">#define LED 9              // Digital PIN for the LED
#define BUTTON 7           // Digital PIN for the Button
int brightness          = 0;      // Amount of light of LED
int lastValue           = LOW;    // Last button status
int state               = LOW;    // Current button status
unsigned long startTime = 0;      // Time of last button pressed
/**
 * Executes only once when the sketch starts, sets initial values
 */
void setup ()
{
  pinMode(LED, OUTPUT);      // LED pin is output
  pinMode(BUTTON, INPUT);    // Button pin is input
}
/**
 * Executes continuously and infinitely
 */
void loop()
{
  int button = digitalRead(BUTTON);         // Reads the button status
  if(button == HIGH &amp;&amp; lastValue == LOW)    // The button is pressed
  {
    state = HIGH;                           // The state is ON now
    startTime = millis();                   // Gets the current time
    delay(10);                              // Waits 10 ms.
  }
  if(button == HIGH &amp;&amp; lastValue == HIGH)   // The button keeps beign pressed
  {
    if(millis() - startTime &gt;= 500)         // Checks if the button is pressed by
    {                                       // more than 500 ms.
      brightness ++;                        // Amounts the brightness of the LED
      delay(15);                            // Waits for 15 ms.
      if(brightness &gt; 255)                  // If the brightness exceeds 255
        brightness = 0;                     // backs to 0, its a byte
    }
  }
  if(button == LOW &amp;&amp; lastValue == HIGH)    // The button is released
  {
    if(millis() - startTime &lt; 500)          // and was pressed less than 500 ms.
      state = LOW;                          // The state is OFF now
  }
  lastValue = button;                       // Sets the current button status as
                                            // last value for the next iteration
  if(state == HIGH)                         // If the state is ON ...
    analogWrite(LED, brightness);           // Make the LED shine with its new brightness
  else                                      // Else, because its OFF ...
    fadeOut();                              // Turn it off gracefully
}
/**
 * Turns off the LED by reducing its brightness until total darkness
 */
void fadeOut()
{
  for(int i=brightness; i&gt;=0; i--)          // Begins with the current level of brightness
  {                                         // decreasing by units until complete off
    analogWrite(LED, i);                    // Sends the reduced brightness to the LED
    delay(10);                              // Waits for 10 ms.
  }
  brightness = 0;                           // Resets the brightness reference to zero
}</pre>]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/06/el-tercer-sketch-the-led-with-button-and-fade/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Modificación del segundo sketch: The LED with button and state</title><link>http://blog.jorgeivanmeza.com/2009/06/modificacion-del-segundo-sketch-the-led-with-button-and-state/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=modificacion-del-segundo-sketch-the-led-with-button-and-state</link> <comments>http://blog.jorgeivanmeza.com/2009/06/modificacion-del-segundo-sketch-the-led-with-button-and-state/#comments</comments> <pubDate>Tue, 09 Jun 2009 00:36:58 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Desarrollo de hardware]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Arduino]]></category> <category><![CDATA[Hipergalaxia]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1748</guid> <description><![CDATA[Descripción. Este sketch se encuentra completamente basado en el anterior al cual se le modifica su funcionalidad permitiendo manipular un estado para el LED, es decir, cuando se presiona el botón el LED se enciende, aún sin necesidad de que &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/06/modificacion-del-segundo-sketch-the-led-with-button-and-state/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>Descripción.</h2><p>Este <em>sketch</em> se encuentra completamente basado en el <a
href="http://blog.jorgeivanmeza.com/2009/06/08/el-segundo-sketch-the-led-with-button/" target="_blank">anterior</a> al cual se le modifica su funcionalidad permitiendo manipular un estado para el LED, es decir, cuando se presiona el botón el LED se enciende, aún sin necesidad de que el usuario final continúe presionandolo; este comportamiento se mantendrá hasta que el usuario presione nuevamente el botón para apagar el LED.</p><p>Ya que los cambios introducidos desde el <em>sketch</em> anterior corresponden a su funcionalidad, el hardware permanece sin variaciones y estas son introducidas en el software.</p><h2>Implementación.</h2><h3>Software.</h3><pre class="cpp">#define LED 13              // Digital PIN for the LED
#define BUTTON 7            // Digital PIN for the Button
int state = 0;              // The current state of the LED
int lastState = 0;          // The past state of the button
void setup ()
{
  pinMode(LED, OUTPUT);      // LED pin is output: turn it on/off
  pinMode(BUTTON, INPUT);    // Button pin is input: read it
}
void loop()
{
  int currentState = digitalRead(BUTTON);
  // Consider a button's change of state only when is pressed
  if (lastState == LOW &amp;&amp; currentState == HIGH)
  {
    state = !state;
    delay(10);
  }
  lastState = currentState;
  digitalWrite(LED, state);
}</pre>]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/06/modificacion-del-segundo-sketch-the-led-with-button-and-state/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>El segundo sketch: The LED with button</title><link>http://blog.jorgeivanmeza.com/2009/06/el-segundo-sketch-the-led-with-button/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=el-segundo-sketch-the-led-with-button</link> <comments>http://blog.jorgeivanmeza.com/2009/06/el-segundo-sketch-the-led-with-button/#comments</comments> <pubDate>Mon, 08 Jun 2009 21:22:12 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Desarrollo de hardware]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Arduino]]></category> <category><![CDATA[Hipergalaxia]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1741</guid> <description><![CDATA[Descripción. Este sketch incluye el uso de un sensor (botón de pulsación) y un actuador (LED) nos permite manipular el ambiente de acuerdo a lo percibido. La tarjeta Arduino es capaz de notar que ha sido presionado el botón (debajo &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/06/el-segundo-sketch-the-led-with-button/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<div
id="attachment_1742" class="wp-caption aligncenter" style="width: 535px"><a
href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/theledwithbutton.png"><img
class="size-full wp-image-1742" title="theledwithbutton" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/theledwithbutton.png" alt="Sketch 'The LED with a button'" width="525" height="409" /></a><p
class="wp-caption-text">Sketch &#39;The LED with a button&#39;</p></div><h2>Descripción.</h2><p>Este <em>sketch</em> incluye el uso de un <em>sensor</em> (botón de pulsación) y un <em>actuador</em> (LED) nos permite manipular el ambiente de acuerdo a lo percibido.</p><p>La tarjeta Arduino es capaz de notar que ha sido presionado el botón (debajo del dedo en la imagen) y esta responde encendiendo el LED.  De manera antagónica, cuando el botón es liberado, la tarjeta Arduino apaga el LED.</p><h2>Implementación.</h2><h3>Hardware.</h3><ul><li>En el pin digital 13 se inserta nuevamente el LED.</li><li>El botón se inserta en la <em>protoboard</em>.</li><li>Una de las patas del botón va a Power-5v.</li><li>La otra pata va al pin 7 (entrada &#8211; lectura de datos).</li><li>Una resistencia une la segunda pata del botón con la tierra.</li></ul><h3>Software.</h3><pre class="cpp">#define LED 13              // Digital PIN for the LED
#define BUTTON 7            // Digital PIN for the Button
void setup ()
{
  pinMode(LED, OUTPUT);      // LED pin is output: turn it on/off
  pinMode(BUTTON, INPUT);    // Button pin is input: read it
}
void loop()
{
  if (digitalRead(BUTTON) == HIGH)    // Button is pressed
    digitalWrite(LED, HIGH);          // Turn the LED on
  else                                // Button is NOT pressed
    digitalWrite(LED, LOW);           // Turn the LED off
}</pre>]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/06/el-segundo-sketch-the-led-with-button/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Mi primer sketch con Arduino: The blinking LED</title><link>http://blog.jorgeivanmeza.com/2009/06/mi-primer-sketch-con-arduino-the-blinking-led/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mi-primer-sketch-con-arduino-the-blinking-led</link> <comments>http://blog.jorgeivanmeza.com/2009/06/mi-primer-sketch-con-arduino-the-blinking-led/#comments</comments> <pubDate>Mon, 08 Jun 2009 05:00:28 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Desarrollo de hardware]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Arduino]]></category> <category><![CDATA[Hipergalaxia]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1734</guid> <description><![CDATA[Descripción. Este es tal vez el programa mas sencillo que se puede hacer con Arduino, lo utilizo para verificar el éxito del proceso de instalación recién realizado. Este sketch enciende y apaga un led con la frecuencia proporcional a los &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/06/mi-primer-sketch-con-arduino-the-blinking-led/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<div
id="attachment_1738" class="wp-caption aligncenter" style="width: 576px"><a
href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/theblinkingled.png"><img
class="size-full wp-image-1738" title="theblinkingled" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/theblinkingled.png" alt="The blinking LED" width="566" height="424" /></a><p
class="wp-caption-text">The blinking LED</p></div><h2>Descripción.</h2><p>Este es tal vez el programa mas sencillo que se puede hacer con Arduino, lo utilizo para verificar el éxito del <a
href="http://blog.jorgeivanmeza.com/2009/06/07/instalacion-de-la-plataforma-arduino-0016-en-linux-ubuntu-904/" target="_parent">proceso de instalación</a> recién realizado.</p><p>Este <em>sketch</em> enciende y apaga un led con la frecuencia proporcional a los tiempos de retardo que se especifiquen.  Estos son los pasos que realiza el algoritmo.</p><ol><li>Define al pin digital 13 como la constante <span
style="font-family: courier new,courier;">LED</span>.</li><li>Convierte al pin <span
style="font-family: courier new,courier;">LED</span> como salida (escribir información).</li><li>Realiza infinitamente la siguiente subrutina.<ol><li>Enciende el <span
style="font-family: courier new,courier;">LED</span>.</li><li>Espera un segundo.</li><li>Apaga el <span
style="font-family: courier new,courier;">LED</span>.</li><li>Espera dos tercios de segundo.</li></ol></li></ol><h2>Implementación.</h2><h3>Hardware.</h3><ul><li>Tome un LED e inserte su pata positiva (mas larga) en el pin digital número 13 y su pata negativa (mas corta) en el pin digital de tierra (<span
style="font-family: courier new,courier;">GND</span>) ubicado al lado izquierdo del pin 13.</li></ul><p>Este paso es opcional, si no se utiliza un LED "externo", el software utilizará el LED que incluye la tarjeta Arduino para propósitos de experimentación.</p><h3>Software.</h3><pre class="cpp">#define LED 13              // The LED is on 13th digital pin
void setup()
{
  pinMode(LED, OUTPUT);    // The LED digital pin is an output
}
void loop()
{
  digitalWrite(LED, HIGH);  // Turns the LED on
  delay(1000);              // Waits for a second
  digitalWrite(LED, LOW);   // Turns the LED off
  delay(666);               // Waits for 2/3 of second
}</pre><h2>Despliegue.</h2><ol><li>Digite el código anterior en el IDE de Arduino.</li><li>Presione <a
href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/save.gif"><img
class="size-full wp-image-1737 alignnone" title="save" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/save.gif" alt="save" width="21" height="21" /></a> para almacenar el código.  Este paso es importante, de lo contrario recibirá mensajes de error del siguiente estilo.<span
style="font-family: courier new,courier;">Couldn't determine program size: NullPointerException</span></li><li>Presione <a
href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/play.gif"><img
class="alignnone size-full wp-image-1736" title="play" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/play.gif" alt="play" width="23" height="23" /></a> para verificar el código y de ser posible, si no hay errores, compilarlo.</li><li>Presione <a
href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/export.gif"><img
class="alignnone size-full wp-image-1735" title="export" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/export.gif" alt="export" width="21" height="21" /></a> para enviar el software binario al microcontrolador de la tarjeta Arduino.</li><li>Observe la tarjeta Arduino, el LED deberá estar titilando según las instrucciones del código.</li></ol> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/06/mi-primer-sketch-con-arduino-the-blinking-led/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Instalación de la plataforma Arduino 0016 en Linux Ubuntu 9.04</title><link>http://blog.jorgeivanmeza.com/2009/06/instalacion-de-la-plataforma-arduino-0016-en-linux-ubuntu-904/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=instalacion-de-la-plataforma-arduino-0016-en-linux-ubuntu-904</link> <comments>http://blog.jorgeivanmeza.com/2009/06/instalacion-de-la-plataforma-arduino-0016-en-linux-ubuntu-904/#comments</comments> <pubDate>Mon, 08 Jun 2009 04:07:19 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Desarrollo de hardware]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Arduino]]></category> <category><![CDATA[Hipergalaxia]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[Ubuntu]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1731</guid> <description><![CDATA[Procedimiento. Instalar Java. $ sudo aptitude install sun-java6-jre $ sudo update-alternatives &#8211;config java Instalar otras dependencias requeridas. $ sudo aptitude install gcc-avr avr-libc Descargar la última versión de Arduino disponible en http://arduino.cc/en/Main/Software. $ cd ~/ &#38; mkdir Arduino &#38; cd &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/06/instalacion-de-la-plataforma-arduino-0016-en-linux-ubuntu-904/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>Procedimiento.</h2><p>Instalar Java.</p><p><span
style="font-family: courier new,courier;">$ sudo aptitude install sun-java6-jre</span></p><p><span
style="font-family: courier new,courier;">$ sudo update-alternatives &#8211;config java<br
/> </span></p><p>Instalar otras dependencias requeridas.</p><p><span
style="font-family: courier new,courier;">$ sudo aptitude install gcc-avr avr-libc</span></p><p>Descargar la última versión de Arduino disponible en <a
href="http://arduino.cc/en/Main/Software" target="_parent">http://arduino.cc/en/Main/Software</a>.</p><p><span
style="font-family: courier new,courier;">$ cd ~/ &amp; mkdir Arduino &amp; cd Arduino</span></p><p><span
style="font-family: courier new,courier;">$ wget http://arduino.googlecode.com/files/arduino-<strong>0016-linux</strong>.tgz</span></p><p><span
style="font-family: courier new,courier;">$ tar zxvf arduino-<strong>0016-linux</strong>.tgz</span></p><p>Conectar la tarjeta al computador a través del cable USB.</p><p><span
style="font-family: courier new,courier;">$ cd arduino-0016/</span></p><p><span
style="font-family: courier new,courier;">$ ./arduino</span></p><p>Seleccionar el puerto serial (emulado) en el cual se encuentra la tarjeta.</p><p>Elija el menú <strong>Tools</strong> &gt; <strong>Serial Port</strong>.</p><p>Seleccione el puerto USB disponible, probablemente sea <span
style="font-family: courier new,courier;">/dev/ttyUSB0</span>.</p><h2>Enlaces.</h2><ul><li>Download the Arduino software.<br
/> <a
href="http://arduino.cc/en/Main/Software" target="_parent">http://arduino.cc/en/Main/Software</a></li><li>Installing Arduino on Linux.<br
/> <a
href="http://www.arduino.cc/playground/Learning/Linux" target="_parent">http://www.arduino.cc/playground/Learning/Linux</a></p><ul><li>Install Arduino on Ubuntu Linux.<br
/> <a
href="http://www.arduino.cc/playground/Linux/Ubuntu" target="_parent"> http://www.arduino.cc/playground/Linux/Ubuntu</a></li></ul></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/06/instalacion-de-la-plataforma-arduino-0016-en-linux-ubuntu-904/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Una primera mirada a Arduino</title><link>http://blog.jorgeivanmeza.com/2009/06/una-primera-mirada-a-arduino/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=una-primera-mirada-a-arduino</link> <comments>http://blog.jorgeivanmeza.com/2009/06/una-primera-mirada-a-arduino/#comments</comments> <pubDate>Mon, 08 Jun 2009 03:24:07 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Desarrollo de hardware]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Windows]]></category> <category><![CDATA[Arduino]]></category> <category><![CDATA[Hipergalaxia]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1729</guid> <description><![CDATA[Introducción. Es una plataforma de hardware y software de código abierto. Por este motivo, es posible obtener los planos del circuito, adquirir los componentes y ensamblar las tarjetas sin pagar ningún tipo de licenciamiento o de regalías.  De igual manera, &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/06/una-primera-mirada-a-arduino/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>Introducción.</h2><ul><li>Es una plataforma de hardware y software de código abierto.</li><li>Por este motivo, es posible obtener los <a
href="http://arduino.cc/en/Main/ArduinoBoardSerialSingleSided3" target="_blank">planos del circuito</a>, adquirir los componentes y ensamblar las tarjetas sin pagar ningún tipo de licenciamiento o de regalías.  De igual manera, también es posible <a
href="http://www.marlonj.com/blog/tienda/" target="_blank">adquirir la tarjeta ya ensamblada</a>.</li><li>Su costo es bajo con respecto a soluciones análogas.</li><li>Fue diseñada pensando en los artistas, diseñadores, entusiastas y en cualquiera interesado en crear objetos y ambientes interactivos.</li><li>Su principal virtud es la de permitir crear prototipos de manera rápida y flexible, evitando la necesidad de desarrollar todo desde cero.</li><li>Permite percibir el ambiente mediante gran cantidad de <em>sensores</em> e interactuar con él mediante la manipulación de distintos <em>actuadores</em>.</li><li>El microcontrolador se programa en el <a
href="http://arduino.cc/en/Reference/HomePage" target="_blank">lenguaje de Arduino</a> el cual se basa en <a
href="http://wiring.org.co/" target="_blank">Wiring</a> y que a su vez es similar en su sintáxis al lenguaje C.</li><li>Los proyectos desarrollados con esta plataforma pueden actuar de manera independiente o hacerlo directamente con el software en un computador.</li><li>Su ambiente de desarrollo es multiplataforma, se ejecuta en Windows, Macintosh OS X y Linux.</li><li>Su conexión se realiza vía USB en lugar de Serial.</li><li>Su comunidad de usuarios es muy activa y la liberación de mejoras es frecuente.</li></ul><h2>La plataforma.</h2><ul><li>Se encuentra formada por dos partes fundamentales.<ul><li>El hardware: la tarjeta Arduino.</li><li>El software: el Arduino IDE (<em>Integrated Development Enviroment</em>).</li></ul></li><li>Al ser una solución de alto nivel que combina el hardware con el software permite la modificación ágil y flexible de los prototipos elaborados.</li></ul><h3>El hardware.</h3><ul><li>La tarjeta Arduino se basa en el microcontrolador <a
href="http://www.atmel.com/dyn/products/Product_card.asp?part_id=3303" target="_blank">ATmega168</a>.</li><li>Su conexión con el computador es a través del puerto USB.</li><li>Existen varias versiones de la tarjeta.</li><li>Cuenta con pines análogos y digitales de entrada y de salida.</li><li>Su alimentación se puede proveer a tarvés del puerto USB, de cargadores USB y de adaptadores AC de 9v.</li></ul><h3>El software.</h3><ul><li>Permite el desarrollo de los <em>sketch</em> (programas).<ul><li>Escritura.</li><li>Verificación (<em>verify</em>).</li><li>Conversión a lenguaje C.</li><li>Compilación.</li><li>Carga en la tarjeta (<em>upload</em>).</li></ul></li></ul><h2>Enlaces.</h2><ul><li>Arduino &#8211; sitio oficial.<br
/> <a
href="http://arduino.cc/" target="_parent">http://arduino.cc/</a></li><li>Arduino &#8211; Introduction.<br
/> <a
href="http://arduino.cc/en/Guide/Introduction" target="_parent">http://arduino.cc/en/Guide/Introduction</a></li><li>Getting started with Arduino.<br
/> <a
href="http://oreilly.com/catalog/9780596155513/" target="_blank">http://oreilly.com/catalog/9780596155513/</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/06/una-primera-mirada-a-arduino/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Desempacando mi primer Arduino</title><link>http://blog.jorgeivanmeza.com/2009/06/desempacando-mi-primer-arduino/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=desempacando-mi-primer-arduino</link> <comments>http://blog.jorgeivanmeza.com/2009/06/desempacando-mi-primer-arduino/#comments</comments> <pubDate>Sat, 06 Jun 2009 23:03:09 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Desarrollo de hardware]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Arduino]]></category> <category><![CDATA[Hipergalaxia]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1720</guid> <description><![CDATA[Por fin este fin de semana tuve tiempo de desempacar mi primer Arduino.  Esta es, según su propio sitio web, una plataforma opensource para la elaboración de prototipos basados en hardware y software flexible y fácil de utilizar, desarrollado para &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/06/desempacando-mi-primer-arduino/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Por fin este fin de semana tuve tiempo de desempacar mi primer Arduino.  Esta es, según su propio sitio web, una plataforma <em>opensource</em> para la elaboración de prototipos basados en hardware y software flexible y fácil de utilizar, desarrollado para artistas, diseñadores, entusiastas y cualquiera interesado en crear objetos o ambientes interactivos.</p><p>En palabras [muy] informales, una tarjetica que sirve para hacer proyectos interactivos basados en software y hardware, muy interesante sobre todo para ingenieros que ya se nos olvidó la electrónica y que preferimos el desarrollo de software a la manipulación del hardware de bajo nivel.  Todo un mundo por descubrir.</p><div
id="attachment_1722" class="wp-caption aligncenter" style="width: 650px"><a
href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/arduino1.png"><img
class="size-full wp-image-1722" title="arduino1" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/06/arduino1.png" alt="Freeduino v1.20" width="640" height="466" /></a><p
class="wp-caption-text">Freeduino v1.20</p></div><p>El <em>kit</em> incluye los siguientes elementos.</p><ul><li>Una <a
href="http://www.marlonj.com/blog/tienda/venta-freeduino/" target="_blank">tarjeta Freeduino versión 1.20</a>.</li><li>Un cable USB.</li><li>Una <a
href="http://es.wikipedia.org/wiki/Protoboard" target="_blank"><em>protoboard</em></a>.</li><li>Resistencias.</li><li>Leds.</li><li>Leds infrarrojos (emisor y receptor).</li><li>Fotoresistencia.</li><li>Cables.</li></ul><p>Este paquete y otro hardware similar (Freeduino, iDuino, LilyPads, etc.) se pueden adquirir facilmente en Colombia a través de la <a
href="http://www.marlonj.com/blog/tienda/" target="_blank">Tienda de Marlonj</a> que tiene estos productos para la venta o el alquiler a precios bastante econónicos.</p><h2>Enlaces.</h2><ul><li>Arduino &#8211; web oficial.<br
/> <a
href="http://www.arduino.cc/" target="_blank">http://www.arduino.cc/</a></p><ul><li>Introducción.<br
/> <a
href="http://arduino.cc/en/Guide/HomePage" target="_blank">http://arduino.cc/en/Guide/HomePage</a></li><li>Ejemplos.<br
/> <a
href="http://arduino.cc/en/Tutorial/HomePage" target="_blank">http://arduino.cc/en/Tutorial/HomePage</a></li><li>Referencia del lenguaje.<br
/> <a
href="http://arduino.cc/en/Reference/HomePage" target="_blank">http://arduino.cc/en/Reference/HomePage</a></li><li>Descarga del software.<br
/> <a
href="http://arduino.cc/en/Main/Software" target="_blank">http://arduino.cc/en/Main/Software</a></li></ul></li><li>Arduino en español.<br
/> <a
href="http://www.arduino.cc/es/" target="_blank">http://www.arduino.cc/es/</a></p><ul><li>Como montar la tarjeta.<br
/> <a
href="http://arduino.cc/es/Metodologia/Montaje" target="_blank">http://arduino.cc/es/Metodologia/Montaje</a></li><li>Guía rápida.<br
/> <a
href="http://arduino.cc/es/Metodologia/GuiaRapida" target="_blank">http://arduino.cc/es/Metodologia/GuiaRapida</a></li><li>Foro.<br
/> <a
href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=espanol" target="_blank">http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=espanol</a></li></ul></li><li>Blog de Marlonj &#8211; sección de Arduino.<br
/> <a
href="http://www.marlonj.com/blog/tag/arduino/" target="_blank">http://www.marlonj.com/blog/tag/arduino/</a></li><li>Tienda de Marlonj.<br
/> <a
href="http://www.marlonj.com/blog/tienda/" target="_blank">http://www.marlonj.com/blog/tienda/</a></li><li>Arduino tutorial &#8211; learn electronics using Arduino.<br
/> <a
href="http://www.ladyada.net/learn/arduino/" target="_blank">http://www.ladyada.net/learn/arduino/</a></li><li>Arduino Programming Notebook.<br
/> <a
href="http://www.lulu.com/content/1108699" target="_blank">http://www.lulu.com/content/1108699</a></li><li>Taller de Arduino.<br
/> <a
href="http://www.iua.upf.edu/~cplatero/taller_arduinos/" target="_blank">http://www.iua.upf.edu/~cplatero/taller_arduinos/</a></li><li>Getting started with Arduino.<br
/> <a
href="http://oreilly.com/catalog/9780596155513/" target="_blank">http://oreilly.com/catalog/9780596155513/</a></li><li>Taller Arduino "Escuela de Artes Antonio López" Tomelloso.<br
/> <a
href="http://groups.google.es/group/arduino-tomelloso/files" target="_blank">http://groups.google.es/group/arduino-tomelloso/files</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/06/desempacando-mi-primer-arduino/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> </channel> </rss>
