tag:blogger.com,1999:blog-68459888391859221362024-03-19T05:30:48.506-07:00Teoría de la información y métodos de codificaciónEduardo TrianaEduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.comBlogger19125tag:blogger.com,1999:blog-6845988839185922136.post-31986390147424941022013-05-09T07:11:00.000-07:002013-05-09T07:18:45.337-07:00Hamming Code<div style="text-align: center;">
<span style="color: #444444;"><span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;">Encoding and decoding with the Hamming Code</span></span></span></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Hola a todos mis compañeros y gente que visita el blog, esta entrada trata sobre la detección de errores en la transmisión de datos, mediante Hamming Code.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">En los protocolos de comunicación, como RS232, es muy común observar el uso de bits de paridad, los bits de paridad (0 o 1) nos sirven en un sistema para realizar detección de errores en una transmisión. Existen diversos motivos por los que puede haber un error en una transmisión, ya sea que se pierda el control de flujo de información, que la transmisión de datos sea intermitente, problemas de congestión, etc. Es por eso que un bloque de bits se transmite con una paridad específica, con la intención de encontrar errores en una transmisión.</span></div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidEknGLTE6N_BXpdooaP7g4CTP0fe9Sz5nLWvtaWGsamFzFywX2B0oQdPKZwUjBMm15mA6sf2A9EzpDZjXDxPGVVjvy4TLAuUfqxMyKsx_p9LtDuULrO7xnfnVOxutd0kv5FV8T1Wllr37/s1600/winterm.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidEknGLTE6N_BXpdooaP7g4CTP0fe9Sz5nLWvtaWGsamFzFywX2B0oQdPKZwUjBMm15mA6sf2A9EzpDZjXDxPGVVjvy4TLAuUfqxMyKsx_p9LtDuULrO7xnfnVOxutd0kv5FV8T1Wllr37/s320/winterm.gif" width="320" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Bien, en nuestro caso encontraremos estos errores mediante Hamming Code, a continuación explico el proceso a detalle.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Los pilares que considero en Hamming Code son:</span><b><span style="font-family: Arial,Helvetica,sans-serif;"> </span></b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b><span style="font-family: Arial,Helvetica,sans-serif;">1 - Multiplicación de matrices.</span></b><span style="font-family: Arial,Helvetica,sans-serif;"><b> </b></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b>2 - Aritmética de módulo 2</b>. </span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Se dice aritmética de módulo 2 porque solamente se emplean 2 dígitos para representar este sistema numérico, básicamente es lenguaje binario; la aritmética es porque vamos a realizar operaciones de adición y multiplicación.</span><span style="font-family: Arial,Helvetica,sans-serif;"></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">La adición de módulo 2 se realiza de la siguiente manera (noten que es un XOR):</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b><br /></b></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b>0+0 = 0 </b></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b>0+1 = 1</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b>1+0 = 0</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b>1+1 = 1</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b><br /></b></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Mientras que la multiplicación de módulo 2 se realiza de la siguiente manera (noten que es el operador lógico AND):</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b><br /></b></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b>0+0 = 0</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b>0+1 = 0</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b>1+0 = 0</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b>1+1 = 1</b></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b>3 - Paridad</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">La ya mencionada paridad se presenta en 2 sabores; paridad par y paridad impar. Una cadena de bits tiene una paridad par si contiene un número par de 1 (la suma número 2 de los bits es 0), de lo contrario tiene paridad impar (la suma número 2 de los bits es 1).</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;">Codificación</span></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Los códigos de Hamming tradicionales son códigos (7, 4). Esto quiere decir que codifica 4 bits de datos en siete bloques de bits, como podrán imaginarse, los bits "extra" del bloque, son bits de paridad (todos los bits de paridad son paridad par).</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Supongamos que tenemos los bits de datos: d1, d2, d3 y d4.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Podemos obtener nuestros bits de paridad de la siguiente manera:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">p1 = d2+d3+d4</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">p2 = d1+d3+d4</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">p3 = d1+d2+d4</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">La operación para obtener los bits de paridad es un XOR, como lo vimos anteriormente, por ejemplo si tenemos un bloque de bits de datos = 0110, el procedimiento para obtener p1 es: <br /><br />p1 = d2 + d3 + d4 = p1 = 1+1+0 = p1 = 0</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Luego p2 es: 0+1+0 = 1</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Luego p3 es: 0+1+0 = 1</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">De manera que nuestro bloque de bits, más nuestros 3 bits de paridad quedan así: "0110011"</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Lo siguiente que vamos a hacer es generar una matriz "G" de 4x7. Esto lo hacemos con la intención de transformar nuestra cadena de bits (4 bits) en un código Hamming de 7 bits (en una palabra: codificar).</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Seguido a esto, vamos a definir los 4 vectores de bits de datos, vamos a llamarlos d1,d2,d3 y d4</span></div>
<div style="text-align: justify;">
<pre><code>
d1 = [1 0 0 0]
d2 = [0 1 0 0]
d3 = [0 0 1 0]
d4 = [0 0 0 1]
</code></pre>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Ya que los definí, ahora vamos a obtener nuestros vectores pero ahora de bits de paridad, para obtenerlos solo tenemos que recurrir a las ecuaciones antes mencionadas:</span><br />
<br />
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">p1 = d2+d3+d4</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">p2 = d1+d3+d4</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">p3 = d1+d2+d4</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Quedando de la siguiente manera nuestros vectores de bits de paridad:</span><br />
<pre><code>
p1 = [0 1 1 1]
p2 = [1 0 1 1]
p3 = [1 1 0 1]
</code></pre>
<span style="font-family: Arial,Helvetica,sans-serif;">Ahora que contamos con los vectores de bits de datos y los vectores de bits de paridad, voy a formar la matriz generadora "G". Para formar la matriz G es muy sencillo, solo se tienen que acomodar los vectores anteriores en el siguiente orden [p1, p2, p3, d1, d2, d3, d4]; es decir, primero los vectores de bits de paridad, luego los vectores de bits de datos.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">Me queda una matriz como la siguiente:</span><br />
<pre><code>
p1 p2 p3 d1 d2 d3 d4
---------------------------
| |
|0 1 1 1 0 0 0 |
G = |1 0 1 0 1 0 0 |
|1 1 0 0 0 1 0 |
|1 1 1 0 0 0 1 |
| |
</code></pre>
<span style="font-family: Arial,Helvetica,sans-serif;">Bien, ya tenemos lo necesario para codificar, tomemos de ejemplo la cadena de bits "1010", vamos a codificarla con nuestro generador, lo que tenemos que hacer es multiplicar nuestro vector [1010] por el generador[G] que acabamos de hacer (por eso mencioné anteriormente que uno de los pilares para la codificación Hamming es la multiplicación de matrices).</span><br />
<pre><code>
| |
|0 1 1 1 0 0 0 |
|1 0 1 0| X |1 0 1 0 1 0 0 | = | 1 0 1 1 0 1 0 |
|1 1 0 0 0 1 0 |
|1 1 1 0 0 0 1 |
| |
</code></pre>
<span style="font-family: Arial,Helvetica,sans-serif;">Así pués, tenemos el código Hamming: "1011010" de la cadena "1010", con esto podemos concluir que la codificación dependerá de la matriz generadora que hagamos.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Implementé en python el proceso de "encoding", el código es el siguiente:</span><br />
<br />
<script src="https://gist.github.com/eddypre/5547470.js"></script>
<span style="font-family: Arial,Helvetica,sans-serif;"></span>
<br />
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><span style="font-size: large;">Dec</span>odificación</span></span></div>
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">El primer paso para la decodificación es comprobar los bits de paridad para ver si existe algún error. Si suponemos que en vez de la cadena "1011010" que recibimos anteriormente con la matriz generadora, hubieramos recibido esta otra "</span><span style="font-family: Arial,Helvetica,sans-serif;">1011011". Los bits de paridad podríamos obtenerlos de forma aritmética con las ecuaciones ya antes mencionadas:</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">p<sub>1</sub> = d<sub>2</sub> + d<sub>3</sub> + d<sub>4</sub> = 0 + 1 + 1 = 0<br />
p<sub>2</sub> = d<sub>1</sub> + d<sub>3</sub> + d<sub>4</sub> = 1 + 1 + 1 = 1<br />
p<sub>3</sub> = d<sub>1</sub> + d<sub>2</sub> + d<sub>4</sub> = 1 + 0 + 1 = 0</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Y si sabemos que los bits de paridad de nuestra cadena son los primeros 3, tenemos que "101" y "010" son todo lo contrario, osea cada bit de paridad resultante es erróneo.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">A continuación vamos a construir una matriz de verificación de paridad (de 3x7), precisamente para verificar los posibles errores en la transmisión. La matriz H está dada por:</span><br />
<br />
<pre><code>
| |
|1 0 0 0 1 1 1 |
H = |0 1 0 1 0 1 1 |
|0 0 1 1 1 0 1 |
| |
</code></pre>
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Existe una matriz llamada "síndrome" que es la que nos da el resultado si existen o no errores en la codificación. Existen 2 propiedades de la matriz "síndrome", si los valores de la matriz "síndrome" son todos ceros significa que los datos codificados están libre de errores.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Para obtener nuestra matriz "síndrome", tan solo tenemos que la matriz H por nuestro código obtendido en el proceso anteriormente abordado.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">No alcancé a implementar la parte de decodificación, pero intentaré terminar la entrada porque la actividad me pareció interesante.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">Por mi parte es todo. </span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Liga a mi git: <a href="https://github.com/eddypre/M-todosCodificaci-n">https://github.com/eddypre/M-todosCodificaci-n</a></span><br />
<br />
<b><span style="font-family: Arial,Helvetica,sans-serif;">Bibliografía</span></b><br />
<br />
<a href="http://en.wikipedia.org/wiki/Parity-check_matrix"><span style="font-family: Arial,Helvetica,sans-serif;">http://en.wikipedia.org/wiki/Parity-check_matrix</span></a><br />
<a href="http://michael.dipperstein.com/hamming/#example2"><span style="font-family: Arial,Helvetica,sans-serif;">http://michael.dipperstein.com/hamming/#example2</span></a><br />
<a href="http://elisa.dyndns-web.com/~elisa/teaching/comp/info/correct.pdf"><span style="font-family: Arial,Helvetica,sans-serif;">http://elisa.dyndns-web.com/~elisa/teaching/comp/info/correct.pdf</span></a></div>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Cualquier duda o aclaración pueden dejarla en la caja de comentarios. </span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Saludos a todos!</span></div>
Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com2tag:blogger.com,1999:blog-6845988839185922136.post-59100151051632674502013-04-25T06:42:00.001-07:002013-04-25T06:44:38.255-07:00Métodos adaptativos<div style="text-align: center;">
<span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;">Métodos adaptativos de compresión</span></span></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Hola, esta entrada trata sobre los métodos adaptativos de compresión de datos, para esta actividad se nos encargó inventar, implementar y evaluar nuestro propio método adaptativo de compresión.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Como ya lo había comentado en mi post anterior (no está de más); la compresión de información es el proceso de codificar de una manera efectiva con el objetivo de reducir el número de bits necesarios para representar cierta información.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">En la tarea pasada vimos un algoritmo que cumple con las tareas antes mencionadas, pero esta vez se nos pidió desarrollar un método de compresión dinámico o adaptativo.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Esto quiere decir que no hay un cálculo de frecuencia de los símbolos usados (como la pasada tarea en codificación de Huffman), estos métodos adaptativos son principalmente usados en el streaming de información ya que se adaptan a los cambios que se localizan en las características de los datos.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Debo mencionar que a mi no se me ocurrió ningún algoritmo donde pudiera implementar este tipo de método, sin embargo; en previas lecturas cuando realicé la tarea anterior (Huffman) conocí algunos tipos de compresión adaptativos, por ejemplo el LZW (Lempel-Ziv-Welsh) que es un sistema adaptativo del LZ (de Lempel y Jacob Ziv).</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Con el sistema LZW es posible crear "al vuelo" y en una sola pasada un diccionario de cadenas que se encuentren dentro del texto a comprimir mientras al mismo tiempo se procede a su codificación.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Para explicar de una manera práctica este método podemos comenzar con un diccionario de 3 caracteres, cada uno con una codificación del 1 al 3.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEa24Hw51tBjBMbZNNwfWZ0raUrehB5xtp5rD_K6y6I4t9wO8asaBXNXokQOgNvUlreKw_Kt5zmk68ssD8fGMCV3psTHT3fuyeP-djzr1m3LpIuBQ4ZhkABveWn4dADdS1bcSQ6NCw5WLV/s1600/im1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="169" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEa24Hw51tBjBMbZNNwfWZ0raUrehB5xtp5rD_K6y6I4t9wO8asaBXNXokQOgNvUlreKw_Kt5zmk68ssD8fGMCV3psTHT3fuyeP-djzr1m3LpIuBQ4ZhkABveWn4dADdS1bcSQ6NCw5WLV/s200/im1.png" width="200" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Tomemos de entrada la siguiente cadena: <b><i>ABABBABCABABBA</i></b></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b><i> </i></b>El algoritmo de compresión LZW hace lo siguiente:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b><i> </i></b></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiChlWMu94OQPw4jT7N7pN6vEWkZQJVg3fc_eQIAT_59a9ndwJZJ2bpgS_w1s_jsF95uM1yogpDSFQSRVB3CAHNX2otOzpvajpHbztJVhDp2DsEw6jnxNhOXcoWaH8ObybZS507w39OZb_O/s1600/im2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiChlWMu94OQPw4jT7N7pN6vEWkZQJVg3fc_eQIAT_59a9ndwJZJ2bpgS_w1s_jsF95uM1yogpDSFQSRVB3CAHNX2otOzpvajpHbztJVhDp2DsEw6jnxNhOXcoWaH8ObybZS507w39OZb_O/s400/im2.png" width="327" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b><i> </i></b></span></div>
<div style="text-align: justify;">
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Toma el primer caracter de entrada (s), luego toma el que le sigue(c), la salida (output), que será el código que representará a la cadena original, será el equivalente al valor del código que tiene el caracter s en nuestro diccionario, luego el código para nuestro nuevo string va aumentando una unidad y el nuevo string se guarda en nuestro diccionario (junto con su valor de código) para poder contar con patrones que luego se puedan repetir. El método hace lo mismo hasta que el contenido de nuestro mensaje sea nulo.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Para la descompresión podemos pintar una tabla similar, porque prácticamente se sigue el mismo proceso:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEWvUvLOCa4luCBqAsX5_HTDN9PAYfq-ZVCBpdlUaCZtlJpG2_6Bjqf7XiLxUFxXF9drHC9Ue4m0Kcub-LzPCdn5AiTPcjBvbBifKNPqewKEdNlUbHO0L0652JJ0Hh3UGZlVyekgC9TLGz/s1600/im3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="291" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEWvUvLOCa4luCBqAsX5_HTDN9PAYfq-ZVCBpdlUaCZtlJpG2_6Bjqf7XiLxUFxXF9drHC9Ue4m0Kcub-LzPCdn5AiTPcjBvbBifKNPqewKEdNlUbHO0L0652JJ0Hh3UGZlVyekgC9TLGz/s320/im3.png" width="320" /></a></div>
<div style="text-align: justify;">
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Noten que ahora la columna de output es la cadena original que introducimos.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Bien, yo codifiqué en python este método:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<script src="https://gist.github.com/eddypre/5459428.js"></script>
<span style="font-family: Arial,Helvetica,sans-serif;">En algunas de las notas que leí, mencionan que la relación de compresión de este método es de aproximadamente de un tercio del archivo; también mencionan que se utiliza en formatos universales como el GIF o el TIFF.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Yo realicé unas sencillas pruebas midiendo la proporción de compresión:</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><i><b>Prueba 1 </b></i></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_O5HSqDyCwhCphp6t5N2_Isll68A7h5x_pRpJiQIQGB7utMwlqNI6GOhz7uC93JtkYMuTp0j0ZJhYGCvSiR7dXVCARvIi0JtYPrfFaJRwO1DW0ko7isXgeZNlLvLH42YwO2fpwaDeJV3j/s1600/im4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_O5HSqDyCwhCphp6t5N2_Isll68A7h5x_pRpJiQIQGB7utMwlqNI6GOhz7uC93JtkYMuTp0j0ZJhYGCvSiR7dXVCARvIi0JtYPrfFaJRwO1DW0ko7isXgeZNlLvLH42YwO2fpwaDeJV3j/s640/im4.png" width="640" /></a></div>
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<hr />
<span style="font-family: Arial,Helvetica,sans-serif;"><i><b>Prueba 2</b></i></span>
<span style="font-family: Arial,Helvetica,sans-serif;"></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ-_4scnGCIcRPuhitq_QSV4bslcMoKTQgnRryjADklUtYhpJ8PmR4WqR6uzpQris7eu7VlCSjfS9mZzVMVqttVhwDKC6iOcgRXWAOf9XanXHdiaIAK-8XA6KoX_3K2XFdgGVvhOpir2eA/s1600/im5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="345" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ-_4scnGCIcRPuhitq_QSV4bslcMoKTQgnRryjADklUtYhpJ8PmR4WqR6uzpQris7eu7VlCSjfS9mZzVMVqttVhwDKC6iOcgRXWAOf9XanXHdiaIAK-8XA6KoX_3K2XFdgGVvhOpir2eA/s640/im5.png" width="640" /></a></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<br />
<hr />
<span style="font-family: Arial,Helvetica,sans-serif;"><i><b>Prueba 3</b></i></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYnX78allZ-3HuROf1qtERfAjPk24luh2afnorXAxKx2dpZvp30NMIfDMozYpKFkYxdA2pbZ3s90AzKk02i65zumF312JKN_XrN2yhh4iw2P5wDu3XPx1fSgDI9gbI7BZzfrkNBQsNq2Lr/s1600/im6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYnX78allZ-3HuROf1qtERfAjPk24luh2afnorXAxKx2dpZvp30NMIfDMozYpKFkYxdA2pbZ3s90AzKk02i65zumF312JKN_XrN2yhh4iw2P5wDu3XPx1fSgDI9gbI7BZzfrkNBQsNq2Lr/s640/im6.png" width="640" /></a></div>
<br />
<br />
<hr />
<i><b><span style="font-family: Arial,Helvetica,sans-serif;">Prueba 4</span></b></i><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4s5KL_LHIBr3KgFHWcVXDzJPKLI0ZyRtXFHG09ktDSHuvfjff014ef3h1wauuBahGQtuorp0S26HJ6_aPSJ7SOyawTFEQpl-Y9sycgBf_-NciAcIxZuKQlpWqLHd24xOv_ojz6kb-1LEO/s1600/im7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4s5KL_LHIBr3KgFHWcVXDzJPKLI0ZyRtXFHG09ktDSHuvfjff014ef3h1wauuBahGQtuorp0S26HJ6_aPSJ7SOyawTFEQpl-Y9sycgBf_-NciAcIxZuKQlpWqLHd24xOv_ojz6kb-1LEO/s640/im7.png" width="640" /></a></div>
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><b>Conclusiones</b></span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Bueno, como lo mencioné antes, en algunas notas mencionan que la relación de compresión es de aproximádamente un tercio del archivo. En mis pruebas lo máximo que obtuve fue comprimir a más de la mitad y seguía conforme iba aumentando el largo del mensaje original.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Una de las desventajas es que hay que agregar al diccionario los caracteres que vas a usar, y haciendo un diagnóstico más detallado nos podemos dar cuenta que muchos de los caracteres que agregamos ni siquiera se usan, ocupando demasiada memoria de una manera inecesaria en el diccionario.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><i><b> </b></i></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Mi repositorio de git: <a href="https://github.com/eddypre/M-todosCodificaci-n">https://github.com/eddypre/M-todosCodificaci-n</a></span><br />
<br />
<b><span style="font-family: Arial,Helvetica,sans-serif;">Bibliografía:</span></b><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="http://www.google.com.mx/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&ved=0CEQQFjAC&url=http%3A%2F%2Fusers.ece.utexas.edu%2F~ryerraballi%2FMSB%2Fpdfs%2FM2L2.pdf&ei=Grp4UfyBOsPW2AXMyoHgAQ&usg=AFQjCNG_lUgo8ViV0BAmANaIZbY4b6ItzA&sig2=C7FWVFXXc6vh6HRIzNLSzw">Compression adaptive </a></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="http://elisa.dyndns-web.com/~elisa/teaching/comp/info/adaptive.pdf">http://elisa.dyndns-web.com/~elisa/teaching/comp/info/adaptive.pdf</a></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Cualquier duda o aclaración pueden ponerla en los comentarios. </span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Saludos a todos!</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com2tag:blogger.com,1999:blog-6845988839185922136.post-76113270445031944662013-04-11T02:16:00.002-07:002013-04-11T02:26:09.615-07:00Algoritmo de Huffman<div style="text-align: center;">
<span style="color: #444444; font-family: Arial, Helvetica, sans-serif; font-size: x-large;"><b>Algoritmo de Huffman </b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial, Helvetica, sans-serif; font-size: x-large;"><b><br /></b></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Hola en esta entrada hablaré sobre el algoritmo de Huffman, este algoritmo se usa precisamente para construir códigos de Huffman, lo que hace es tomar un alfabeto de n símbolos, también toma las frecuencias para cada símbolo, luego produce un código de Huffman con estos elementos.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">El objetivo de construir códigos de Huffman es el de la compresión de datos, es decir, expresar de una manera distinta (más corta, obviamente) la misma información.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;"></span></div>
<div style="text-align: justify;">
<hr />
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">A continuación explicaré a detalle el funcionamiento del algoritmo.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Vamos a obtener el código de Huffman de la palabra: <span style="color: #073763;"><b><i>"ingeniero"</i></b>.</span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Lo primero a realizar es obtener las frecuencias de cada elemento de la sentencia, es decir, las veces que aparece cada caracter en nuestra palabra u oración, dependiendo el caso.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">En nuestro caso quedaría de la siguiente manera.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxWPPBp2kJlXNoFELWgvlOgXS7sEAFW7TjHkjOmkanmX4gZUeceYbVqmEKOeGhiUaTM4wlqcePth5yMIfYsn2GDXkeXo7W5jw6jjkc834AI2XPWSr14dhlQklEpPzYLZtGgo8k61xqIemf/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="108" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxWPPBp2kJlXNoFELWgvlOgXS7sEAFW7TjHkjOmkanmX4gZUeceYbVqmEKOeGhiUaTM4wlqcePth5yMIfYsn2GDXkeXo7W5jw6jjkc834AI2XPWSr14dhlQklEpPzYLZtGgo8k61xqIemf/s640/Capture.PNG" width="640" /></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Lo siguiente es ordenar estos caracteres en función a las frecuencias obtenidas, de menor a mayor y dejándo solo el caracter con su correspondiente frecuencia, quedaría de la siguiente manera.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWo7afTdkt7AproJcVCYSoHd-2ieMS6Zpi1gQZvmbBuq96_8EFZAqOfJ9qYdvGDw8tDYKN6OEjBIOFGXxM-lASMAMwVtuQR-nGAq0wUHJlPIsqBGufVXb8gi9zqySsFEnjIJfVKK4cbqmx/s1600/Capture2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWo7afTdkt7AproJcVCYSoHd-2ieMS6Zpi1gQZvmbBuq96_8EFZAqOfJ9qYdvGDw8tDYKN6OEjBIOFGXxM-lASMAMwVtuQR-nGAq0wUHJlPIsqBGufVXb8gi9zqySsFEnjIJfVKK4cbqmx/s640/Capture2.PNG" width="640" /></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Lo siguiente es la construcción de un árbol binario mediante la unión de nodos que contienen el caracter y su respectiva frecuencia, los nodos que tenemos hasta ahorita son los siguientes.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtj13DbhsYU_j6H36HpGO02LgBtRZbGGCfRgO_Im7RAmSL4lLdiJN9ggEfRJoDDKMA73JtRM5wZEyvGSRWlqjnhyphenhyphenMH7TWzKBDwkX0zs4-MzccbuT_09HfEUoqMc_wLtj6GXEWV2hrAEk4v/s1600/Capture6.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="88" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtj13DbhsYU_j6H36HpGO02LgBtRZbGGCfRgO_Im7RAmSL4lLdiJN9ggEfRJoDDKMA73JtRM5wZEyvGSRWlqjnhyphenhyphenMH7TWzKBDwkX0zs4-MzccbuT_09HfEUoqMc_wLtj6GXEWV2hrAEk4v/s640/Capture6.PNG" width="640" /></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;">Ahora lo que toca hacer es ir uniendo los nodos consecutivos en pares, sumaremos las frecuencias de esos dos nodos y luego con ellos crearemos un nuevo nodo. El nuevo nodo contendrá un caracter "null", seguido de la frecuencia obtenida al sumar las 2 frecuencias de los nodos con que se formó. Para entender mejor el concepto realizaremos este paso con los primeros 2 nodos de nuestro conjunto. El resultado es el siguiente.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT7fDYLQZKjKxtHEam_1SPslKYrqyKH7SYOvSRBJmuFFNuMDNhK20fbJukSd7qVc1Np0T3fUR-TfScCe52eE1GthBbUN6UwwjP10oH99I5uD642q8n3286o5Ktnh1st1tDrBrg5_ACusKK/s1600/Capture7.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT7fDYLQZKjKxtHEam_1SPslKYrqyKH7SYOvSRBJmuFFNuMDNhK20fbJukSd7qVc1Np0T3fUR-TfScCe52eE1GthBbUN6UwwjP10oH99I5uD642q8n3286o5Ktnh1st1tDrBrg5_ACusKK/s640/Capture7.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Noten que ahora el inicio es de nuestra lista es otro, ahora está al inicio el tercer nodo que teníamos en nuestra lista anterior, los nodos que retiramos ahora se encuentran dentro del nuevo nodo que formamos con la suma de sus respectivas frecuencias. El nuevo nodo es colocado al final de la lista.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Ahora, si seguimos el mismo procedimiento podemos concluir que obtendremos un árbol binario, donde las hojas del mismo serán los caracteres de nuestra palabra. Al seguir realizando el mismo procedimiento obtendremos lo siguiente.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg22E4N13QIHxyfWvoteu2JWRpaRY-xKu5Io2hZTMsXwo72k_zH7I59xBJ5mT3Dk_6A8Yj6fW8lt0TEKkSlZeGu2R4DRTQixOpHkJkX3ZD1y9pZzw-MOmiELqOuV0qzDm-R23m43RXtOVcV/s1600/Capture8.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg22E4N13QIHxyfWvoteu2JWRpaRY-xKu5Io2hZTMsXwo72k_zH7I59xBJ5mT3Dk_6A8Yj6fW8lt0TEKkSlZeGu2R4DRTQixOpHkJkX3ZD1y9pZzw-MOmiELqOuV0qzDm-R23m43RXtOVcV/s640/Capture8.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Luego.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSxu4g2yLlcprN6g8fqOtpIw2B4s1WvAIqF_cXESl-EUl_eWVJRUXllfAaNzziJmU4f3GLax6IHHY8Ho3HJZYAWJwp8rG1B5eTH-MyoLqW5ITOBXJe5oexg1GYx0wD7_fgYZJnJaZBTTlx/s1600/Capture9.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="174" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSxu4g2yLlcprN6g8fqOtpIw2B4s1WvAIqF_cXESl-EUl_eWVJRUXllfAaNzziJmU4f3GLax6IHHY8Ho3HJZYAWJwp8rG1B5eTH-MyoLqW5ITOBXJe5oexg1GYx0wD7_fgYZJnJaZBTTlx/s640/Capture9.PNG" width="640" /></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Hacemos el mismo procedimiento con los nodos nuevos, se crea un nodo nuevo con la suma de las frecuencias, y le antecede un null.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg5k0OpcZD7mViN8pPsyaAPoDILutREOX_sOMnmNcSLjHLmkA3hAL6ejHFghl-A68oR1YhLLDUYM9Imdb5kzIwDxOXrMDZ-qt-aQ1zf9zAZLKnd5h3OCfP70woBwlDfjXDBPhQbNbM5mdp/s1600/Capture10.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg5k0OpcZD7mViN8pPsyaAPoDILutREOX_sOMnmNcSLjHLmkA3hAL6ejHFghl-A68oR1YhLLDUYM9Imdb5kzIwDxOXrMDZ-qt-aQ1zf9zAZLKnd5h3OCfP70woBwlDfjXDBPhQbNbM5mdp/s640/Capture10.PNG" width="640" /></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Al final queda un árbol binario de la siguiente manera.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj69Zm8UGdlk-QGhRnLpqktZbbHLdP30SzNNHmOMbTZb25f-xNCuYASM330SoK6EB8G2jplMjKfphBorwnL0nLsl8ND-Lwmg0m6Ck2fcfmbDS_UT1MU10dnMKKWRjPezTAIalqsoAcJWSUf/s1600/Capture11.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="376" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj69Zm8UGdlk-QGhRnLpqktZbbHLdP30SzNNHmOMbTZb25f-xNCuYASM330SoK6EB8G2jplMjKfphBorwnL0nLsl8ND-Lwmg0m6Ck2fcfmbDS_UT1MU10dnMKKWRjPezTAIalqsoAcJWSUf/s640/Capture11.PNG" width="640" /></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Lo siguiente es asignar ceros y unos a las ramas del árbol, las de la izquierda serán ceros, mientras que las de la derecha serán unos.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcggZz4b4EPPeqREKGNt3WUkyUZkZkoKSpaU0Tf2ioT67ZsURkNxvJXg9dWArFp1Zh9FT-UkPsS7MwqDdXvsJChd6N4RhoTU186ggQtGsbOpz8n-dhKJ4bQiGsPy-QViIHa9hg8Amv8xPp/s1600/Capture12.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="376" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcggZz4b4EPPeqREKGNt3WUkyUZkZkoKSpaU0Tf2ioT67ZsURkNxvJXg9dWArFp1Zh9FT-UkPsS7MwqDdXvsJChd6N4RhoTU186ggQtGsbOpz8n-dhKJ4bQiGsPy-QViIHa9hg8Amv8xPp/s640/Capture12.PNG" width="640" /></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Mediante esta asignación de números podemos determinar el camino para llegar al caracter deseado, por ejemplo si queremos llegar a n, el recorrido es 00, mientras que para e, el recorrido es 01. Podemos hacer lo mismo para obtener el código de las demás letras de nuestra palabra, a continuación muestro una tabla con los caracteres, su frecuencia y su código de Huffman correspondiente a esta palabra.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrJNqjP5MnFwV5dv1Vb2vep0kQjROVT4nlcQoB3g2y9RwJB78quZJ-r75gvZJtoVTXbHbkE0SZTreXEAjZcJdkcAlEFmri1k1G3Gizu6hM8gqVkpOVqdOvB0mgW4WpUt7QMLD-2E5BLyD_/s1600/Capture13.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrJNqjP5MnFwV5dv1Vb2vep0kQjROVT4nlcQoB3g2y9RwJB78quZJ-r75gvZJtoVTXbHbkE0SZTreXEAjZcJdkcAlEFmri1k1G3Gizu6hM8gqVkpOVqdOvB0mgW4WpUt7QMLD-2E5BLyD_/s640/Capture13.PNG" width="640" /></a></div>
<br />
<hr />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Yo implementé el algoritmo de Huffman en python, el siguiente es el código fuente:</span><br />
<pre class="brush:py">
'''
Algoritmo de Huffman
Compresion de datos
'''
def huff():
text = raw_input("Put your text: ")
let = dict()
large1 = len(text)
for i in range (large1):
if text[i] in let:
let[text[i]] += 1
else:
let[text[i]] = 1
k = let.items()
large2 = len(k)
for i in range(large2):
men = k[i][1] #menor
for j in range(len(k)):
if k[j][1] > men:
men,let2 = k[j][1],k[j][0]
a,b = k[i][1],k[i][0]
k[j] = (b,a)
k[i] = (let2,men)
num = []
lett = []
comb = []
for i in range(len(k)):
num.append(k[i][1])
lett.append(k[i][0])
comb.append((k[i][0],0,0))
tam = 0
#Finish - tree
size = len(num)
while (len(num) > 1):
m = num[0] #
z = 0
a = lett[0]
for i in range(len(num)):
if num[i] < m:
m = num[i]
a = lett[i]
z = i
lett.pop(z)
num.pop(z)
mini = num[0]
j = 0
b = lett[0]
for i in range(len(num)):
if num[i] < mini:
mini = num[i]
b = lett[i]
j = i
add = m + mini
lett[j] = tam
num[j] = add
comb.append((tam,0,0))
if m >= mini:
counter = 1
con = 0
else:
counter = 0
con = 1
for q in range(len(comb)):
if comb[q][0] == a:
comb[q] = (a,counter,tam)
if comb[q][0] == b:
comb[q] = (b,con,tam)
tam += 1
#Finish1
num = [] #
leng = len(comb)
last = comb[leng-1][0]
k = 0
for i in range(size):
num.append([])
a,b,c = comb[i]
num[i].append(str(b))
q = i
cont = 0
while(q <= leng-2):
if(comb[q][0] == c):
c = comb[q][2]
num[i].append(str(comb[q][1]))
cont = c
if cont == last:
break
q += 1
num[i] =num[i][::-1]
#Finish2-
code = []
for i in range(len(text)):
last = 0
while (last <= size):
if comb[last][0] == text[i]:
break
last += 1
cads = "".join(num[last])
code.append((cads))
#print "Code: ",code
new = []
for i in range(len(code)):
new.append(str(code[i]))
new = "".join(new)
cal = []
j, k, i, l = 0,0,0,0 #another
temp = []
while(i < len(new)):
l = 1
j = 0
while(j < len(num) ):
k = 0
if new[i] == num[j][k]:
k += 1
if len(num[j]) == k:
l = k
temp.append(comb[j][0])
while (k < len(num[j])):
if new[i+k] == num[j][k]:
k += 1
if k == len(num[j]):
temp.append(comb[j][0])
l = k
else:
k = len(num[j])
j += 1
i += l
lenew = len(new)
trans = "".join(temp)
print "Binary: ",new
#print "Code: ",code
print "Translate: ",trans
print "\nLength of text: ", large1
print "In bytes: ", large1
bytecomp = float(lenew/8.0)
print "Bytes affter compression: ", bytecomp
print "Relation: ", float(large1/bytecomp)
if __name__ == '__main__':
huff()
</pre>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><span style="font-family: Arial, Helvetica, sans-serif;">Y este es el resultado de la ejecución del script.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">Para <i><b>"hello huffman"</b></i></span>:<br />
<span style="font-family: Arial, Helvetica, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG1xUIRpPtEXnhTj5BtNg-LxG97SadYp3rfF0DflUNgUKGw4kNxGweJDwmqpgat49bJiuBRKwFF0mMyfkZ0stnM2bo_9iDdQpGnj5aUDJEyTc6Iefny_vnBVhQpK8XA2EJn0wRPECEntwn/s1600/huff.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG1xUIRpPtEXnhTj5BtNg-LxG97SadYp3rfF0DflUNgUKGw4kNxGweJDwmqpgat49bJiuBRKwFF0mMyfkZ0stnM2bo_9iDdQpGnj5aUDJEyTc6Iefny_vnBVhQpK8XA2EJn0wRPECEntwn/s640/huff.png" width="640" /></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">Para</span> <i><b><span style="font-family: Arial,Helvetica,sans-serif;">"arsenal fc"</span></b></i><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9ZQUOfDXwkW5tv7lh9AHnk2IArDSojQdK6lTV8w1rm-Irf-zQVe_clkXhxWDptuEwfHMkCsCUtN6CDkVAAxSALrjb9Bcqh31OjF8JDI6iiwra0CwS4JgA6mEbzGy6Iub6OwvLFn79nSL2/s1600/huff2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="96" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9ZQUOfDXwkW5tv7lh9AHnk2IArDSojQdK6lTV8w1rm-Irf-zQVe_clkXhxWDptuEwfHMkCsCUtN6CDkVAAxSALrjb9Bcqh31OjF8JDI6iiwra0CwS4JgA6mEbzGy6Iub6OwvLFn79nSL2/s640/huff2.png" width="640" /></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Para <i><b>"Facultad de Ingenieria Mecanica y Electrica"</b></i></span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz8fCqNsqGLTAvAVrmdMjymDfKT6mwWyFmTpgtD9yb_pov3hkaAm9D45-1ANWjKuNsviksm3KKP1CpF1LFn68wkz02X4b4GR4GcuaKNFMWe_IvtsTPfE50Hqq598G2jgK5ANK4Tz3oXRbx/s1600/huff3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz8fCqNsqGLTAvAVrmdMjymDfKT6mwWyFmTpgtD9yb_pov3hkaAm9D45-1ANWjKuNsviksm3KKP1CpF1LFn68wkz02X4b4GR4GcuaKNFMWe_IvtsTPfE50Hqq598G2jgK5ANK4Tz3oXRbx/s640/huff3.png" width="640" /></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<hr />
<span style="font-family: Arial, Helvetica, sans-serif;"></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Para medir la efectividad de compresión de datos por el algoritmo de Huffman partimos de la idea de la equivalencia de un caracter y un byte, es decir el largo de caracteres de la cadena introducida será el valor de bytes de la misma, seguido de eso podemos obtener el valor de bytes después de la compresión, dividiendo la cadena binaria obtenida entre 8.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Por último imprimí también la relación entre la entrada y salida, quedando los resultados de la siguiente manera:</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBIwBjuc-lsCrQytrOwAectC3vD7Wmtx2reACko5h9_qbXm-9FjYhvCdfNBlftxC233eUEbsZMvR1phTgk1hmnfY9fqvZrH3JUvO_yW4fscFPKmj5_o7rEXoq29E4bZl037BbB8JtOXu7O/s1600/huff5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBIwBjuc-lsCrQytrOwAectC3vD7Wmtx2reACko5h9_qbXm-9FjYhvCdfNBlftxC233eUEbsZMvR1phTgk1hmnfY9fqvZrH3JUvO_yW4fscFPKmj5_o7rEXoq29E4bZl037BbB8JtOXu7O/s640/huff5.png" width="640" /></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">El resultado es una compresión de cerca del doble.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Veamos ahora con cadenas más largas.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj80e2I2kVKH-nQkAf6aCitxqJg6-pHfqjqkSgtBm-dehVbOxZXzrWpRpVJg56xKzK9uGdxq0GiJr20AV7S6_-bIAiPS_63Y-w-bESgWF43SF-Ow31t9bVB574nxSG0srMPW_waIgarLVfU/s1600/huff6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="368" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj80e2I2kVKH-nQkAf6aCitxqJg6-pHfqjqkSgtBm-dehVbOxZXzrWpRpVJg56xKzK9uGdxq0GiJr20AV7S6_-bIAiPS_63Y-w-bESgWF43SF-Ow31t9bVB574nxSG0srMPW_waIgarLVfU/s640/huff6.png" width="640" /></a></div>
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Podemos observar nuevamente que la relación es cercana al doble, tomando en cuenta que existe un mayor número de caracteres.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Es todo por esta entrada. </span><span style="font-family: Arial, Helvetica, sans-serif;">Cualquier duda o aclaración pueden dejarla en comentarios. </span><br />
<br />
<i><b><span style="font-family: Arial, Helvetica, sans-serif;">Bibliografía:</span></b></i><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><a href="http://www.alegsa.com.ar/Diccionario/C/1048.php">http://www.alegsa.com.ar/Diccionario/C/1048.php</a></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><a href="https://www.youtube.com/watch?v=8Gf8wutvS1w">https://www.youtube.com/watch?v=8Gf8wutvS1w</a></span>
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">Liga hacia mi git: <a href="https://github.com/eddypre/M-todosCodificaci-n">https://github.com/eddypre/M-todosCodificaci-n</a></span><span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif;">Saludos!</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com1tag:blogger.com,1999:blog-6845988839185922136.post-56317564711598723842013-02-20T23:21:00.002-08:002013-02-20T23:46:36.525-08:00Tarea 2<div style="text-align: center;">
<b><span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;">Tarea 2 - String matching</span></span></b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Hola, esta actividad consiste en realizar un programa en python sobre el tema de string matching. String matching son las coincidencias u ocurrencias de palabras (no necesariamente palabras) en una cadena de texto (no necesariamente de texto XD).</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">El escenario es el siguiente:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Dada una cadena de texto (T), y una cadena patrón (P), vamos a encontrar las ocurrencias presentadas. Por ejemplo:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><i><u>T = (issttstsis<span style="color: red;"><b>its</b></span>tsis<span style="color: red;"><b>its</b></span>ttt<span style="color: red;"><b>its</b></span>)</u></i></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><i><u>P = (its)</u></i></span></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Vamos a encontrar las veces que se hace un match, en el ejemplo anterior tendriamos 3 matches.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Los algoritmos que usaremos para la búsqueda de cadenas serán el de Boyer-Moore y el de Knuth-Morris-Pratt.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">A continuación explicaré el funcionamiento del algoritmo Boyer-Moore</span><br />
<i><b><span style="font-family: Arial,Helvetica,sans-serif; font-size: large;"><br /></span></b></i>
<span style="font-family: Arial,Helvetica,sans-serif;"><i><b><span style="font-size: large;">Boyer-Moore</span></b></i></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br />El algoritmo Boyer-Moore es un algoritmo de búsqueda de cadenas desarrollado por Bob Boyer y J Strother Moore en 1977. Lo que este algoritmo hace es buscar la coincidencia del último elemento de la cadena patrón con un elemento cualquiera de una cadena de texto; por ejemplo si la cadena patrón es 'a,b,c' y la cadena de texto es 'ccbacababca', el algoritmo realiza una comparación entre c (último elemento de la cadena patrón) y la cadena de texto. En caso de que ocurra una coincidencia, ahora se comparará la penúltima posición de la cadena patrón con la ocurrencia en la cadena de texto-1. Luego si también hay concidencia se compara la antepenúltima posición de la cadena patrón con la posición de la cadena de texto-2 y así sucesivamente, lo que provoca un buen ahorro de tiempo en ejecución debido a que no tiene . En conclusión y resumidas cuentas, el algoritmo hace una verificación hacia atrás.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Yo realicé el código en python de manera sencilla, lo que hice fue iterar el recorrido de toda la cadena de texto, luego cuando enontraba match de una letra de la cadena con la última posición de la cadena patrón, tomaba una sub cadena de la cadena de texto, donde esa subcadena se compone de la letra match más las posiciones anteriores correspondientes a la cadena patrón, al final comparé la subcadena con la cadena patrón. Si la comparación arroja un "True" pues cuento un match. Y así hasta recorrer toda la cadena de texto.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br />A continuación el código:</span></div>
<div style="text-align: justify;">
<br />
<pre class="brush:py">import random
from sys import argv
import string
import time
def boyer(largoM, largoN):
#Para m = largo de texto, n = largo de patron
archi=open('BM.dat','a') #Abro el archivo
#largoM = int(argv[1])
#largoN = int(argv[2])
newporcent = 0.0
M = []
N = []
com = []
# Llenando listas ------------------------------------
for i in range(largoM):
let = random.choice(string.ascii_lowercase)
M.append(let) #Rellenando la cadena de texto
for j in range(largoN):
let = random.choice(string.ascii_lowercase)
N.append(let) #Rellenando el patron
#print M
#print N, "\n\n"
# Algoritmo Boyer-Moore -------------------------------
tiempoInicial = time.time()
for x in range(largoM):
if x >= largoN:
if M[x] == N[-1]:
miLargo = (x)-(largoN-1)
com = M[miLargo:x+1]
#print "i = ",x, " - M[x] = ", M[x], " - com = ", com
print com
if com == N:
print "match: com = ", com, " - N = ", N
else:
print "No exito :("
tiempoFinal = time.time()
d = tiempoFinal - tiempoInicial
diferencia = round(d, 6)
newlargoM = str(largoM)
newlargoN = str(largoN) #Para poder meter los datos al dat
newdiferencia = str(diferencia)
if largoN != 10: # Cuando el largo del patron es 9, saltamos 2 lineas en el dat
archi.write(newlargoM) #Escribe largo de texto
archi.write(' ')
archi.write(newlargoN) # Escribiendo largo del patron
archi.write(' ')
archi.write(newdiferencia) #Escribiendo los promedios de tiempo
archi.write('\n')
else:
archi.write(newlargoM) #Lo mismo que arriba
archi.write(' ')
archi.write(newlargoN)
archi.write(' ')
archi.write(newdiferencia)
archi.write('\n\n')
archi.close() # Cerrando el archivo, se abre cada vez que se ejecuta esta subrutina
def main():
for i in range(10): #Correr distintos tipos de largo de texto
for j in range(10): #Correr distintos tipos de largo de patron
print "\nTransmitiendo con largo de texto = ", i+1, "y con patron = ", j+1 # Meramente informativo para el programador
boyer(i+1, j+1)
if __name__ == "__main__":
main()
</pre>
<br />
<br /></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Para poder graficar los tiempos hice que en un dat se fueran guardando los largos de cadena de texto y largos de cadena patrón, luego obtuve los tiempos para cada combinación. Al final realicé un plot con los datos obtenidos (como en la tarea anterior):</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">A continuación los datos obtenidos (en primera columna los largos de M ó largos de texto, en segunda columna los largos de N o patrón, y al final los tiempos obtenidos):</span><br />
<br />
<pre><code>
1 1 3e-06
1 2 3e-06
1 3 2e-06
1 4 3e-06
1 5 2e-06
1 6 2e-06
1 7 3e-06
1 8 2e-06
1 9 1e-06
1 10 2e-06
2 1 3e-06
2 2 2e-06
2 3 2e-06
2 4 2e-06
2 5 2e-06
2 6 2e-06
2 7 2e-06
2 8 2e-06
2 9 3e-06
2 10 2e-06
3 1 3e-06
3 2 2e-06
3 3 3e-06
3 4 2e-06
3 5 3e-06
3 6 2e-06
3 7 2e-06
3 8 3e-06
3 9 3e-06
3 10 2e-06
4 1 2e-06
4 2 2e-06
4 3 2e-06
4 4 2e-06
4 5 2e-06
4 6 3e-06
4 7 2e-06
4 8 2e-06
4 9 2e-06
4 10 2e-06
5 1 2e-06
5 2 3e-06
5 3 3e-06
5 4 2e-06
5 5 2e-06
5 6 2e-06
5 7 2e-06
5 8 2e-06
5 9 2e-06
5 10 2e-06
6 1 5.4e-05
6 2 4e-06
6 3 4.3e-05
6 4 2e-06
6 5 2e-06
6 6 2e-06
6 7 2e-06
6 8 2e-06
6 9 2e-06
6 10 2e-06
7 1 4.5e-05
7 2 2e-06
7 3 3e-06
7 4 2e-06
7 5 3e-06
7 6 2e-06
7 7 3e-06
7 8 2e-06
7 9 2e-06
7 10 1e-06
8 1 2e-06
8 2 1.8e-05
8 3 2e-06
8 4 1.8e-05
8 5 1.9e-05
8 6 1.8e-05
8 7 2e-06
8 8 1e-06
8 9 2e-06
8 10 2e-06
9 1 2e-06
9 2 2e-06
9 3 2e-06
9 4 1.9e-05
9 5 2e-06
9 6 2e-06
9 7 1e-06
9 8 2e-06
9 9 1e-06
9 10 2e-06
10 1 3e-06
10 2 2e-06
10 3 3e-06
10 4 2e-06
10 5 2e-06
10 6 2e-06
10 7 2e-06
10 8 2e-06
10 9 2e-06
10 10 2e-06
</code><span style="font-family: Arial,Helvetica,sans-serif;"> </span></pre>
<span style="font-family: Arial,Helvetica,sans-serif;">A continuación la gráfica obtenida:</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieRvllZB2DZ_8ZWH6mWoqRdeB8K1h3in7kL_13s66JHRNtHYE3kvGDw4B5aKDMaUrVjFTYxt_ldfkNttbvbov7X9GzwzRNfLTlkv7mOTiuJWycJOhxxtm3kk-J1OM7XeVI2ui46xLvl781/s1600/image1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="576" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieRvllZB2DZ_8ZWH6mWoqRdeB8K1h3in7kL_13s66JHRNtHYE3kvGDw4B5aKDMaUrVjFTYxt_ldfkNttbvbov7X9GzwzRNfLTlkv7mOTiuJWycJOhxxtm3kk-J1OM7XeVI2ui46xLvl781/s640/image1.png" width="640" /></a></div>
<span style="font-family: Arial,Helvetica,sans-serif;">Los resultados son tiempos bastante cortos y aceptables, donde es más tardado con largos 6 y 8 de texto y patrón respectivamente. </span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">En la siguiente <a href="http://es.wikipedia.org/wiki/Algoritmo_de_b%C3%BAsqueda_de_cadenas_Boyer-Moore">liga </a> se menciona más a detalle el funcionamiento de este algoritmo.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Quedo pendiente con el algoritmo Knuth-Morris-Pratt por falta de tiempo. </span><br />
<br />
<div style="text-align: left;">
<span style="font-family: Arial,Helvetica,sans-serif;">Liga a mi git (se encuetra el archivo py, dat y el plot): <a href="https://github.com/eddypre/M-todosCodificaci-n">https://github.com/eddypre/M-todosCodificaci-n</a></span><span style="font-family: Arial,Helvetica,sans-serif;"> </span></div>
<br />
<u><i><b><span style="font-family: Arial,Helvetica,sans-serif;">Bibliografía:</span></b></i></u><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="http://banyut.obolog.com/python-listas-115312">http://banyut.obolog.com/python-listas-115312 </a></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="http://techerald.com/page/python-generacin-cadena-aleatoria-de-letras-maysculas-y-cifras.html">http://techerald.com/page/python-generacin-cadena-aleatoria-de-letras-maysculas-y-cifras.html</a></span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Cualquier duda o aclaración pueden dejarla en comentarios.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Saludos para todos!</span><br />
<br /></div>
Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com1tag:blogger.com,1999:blog-6845988839185922136.post-45394362910708309362013-02-14T00:01:00.002-08:002013-02-14T10:01:25.528-08:00Tarea 1<div style="text-align: center;">
<span style="color: #666666;"><b><span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;">Tarea 1 - Transmisor de palabras</span></span></b></span></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Hola, para esta primera tarea de la materia de métodos de transmisión se nos pidió realizar en python un programa generador y transmisor de palabras, la idea es que determináramos el porcentaje de éxito con el que se mandaban las palabras, es decir tiene que haber un match entre la palabra generada y la palabra transmitida. Y las palabras generadas y transmitidas se componen de cadenas binarias (0 y 1)</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Para obtener los porcentajes de éxito debemos primero darle parámetros a nuestro transmisor, los parámetros con los que el generador/transmisor trabaja son:</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">- Largo de la palabra</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">- Frecuencia de ceros</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">- Porcentaje de ceros correctos</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">- Porcentaje de unos correctos </span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">El proceso que sigue mi transmisor es el siguiente:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">El generador produce palabras de largo 2^0, 2^1, 2^2 ... 2^9, luego realiza el proceso de transmisión con frecuencias de cero de 0.1%, 0.2% ... 0.9% (obviando que las frecuencias de 1 es 1-frecuencia de ceros), los porcentajes de ceros y unos correctos se definen como parámetros al ejecutar el programa. Seguido de eso se empiezan a transmitir las palabras, luego se comparan las palabras generadas con las palabras transmitidas. Al final se obtienen porcentajes de éxito.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Todos estos valores antes mencionados se van grabando en un archivo .dat para luego ser graficados en un gnuplot y ser analizados más fácilmente.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">A continuación les dejo con el código que realicé (generador y transmisor).</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Parte del generador:</span></div>
<div style="text-align: justify;">
<br /></div>
<pre class="brush:py">#Generador y transmisor de palabras
#Autor: Eduardo Triana
#FIME - ITS
import random
from sys import argv
def generador(l, cer): #Generador y transmisor de palabras
#freqzero = 0
freqzero = (cer/10.0) + 0.1
#z = 1
#for a in range(9):
archi=open('canalTriana.dat','a') #Abro el archivo donde se almacenaran todas las probabilidades de exito, junto con los largos y frecuencias
#length = int(argv[1])
length = pow(2,l) #El largo del archivo lo elevamos a la "l", necesito l para generar el dat
#freqzero = float(argv[1]) Esto ya va arriba, y ya no es con parametro
zerocorrect = float(argv[1])
onecorrect = float(argv[2]) # El orden de parametros por consola es: 1) Porcentaje de ceros correctos. 2) Porcentaje de unos correctos. 3) Repeticiones
repet = int(argv[3])
conteo0 = 0
conteo1 = 0
freqzeroProduct = freqzero*length
listaG = []
for i in range(length): #Todo esto es para generar cada una de las palabras
bit = int(random.randint(0,1))
if bit == 0:
if freqzeroProduct > conteo0: #Agregando los bits para formar las cadenas de palabras
listaG.append(0)
conteo0 = conteo0 + 1
else:
listaG.append(1)
else:
listaG.append(1)
print "Generated: " ,listaG #Imprimiendo la palabra generada
</pre>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Parte del transmisor:</span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<br />
<pre class="brush:py">#Transmision de palabras
zerocorrect = zerocorrect*length
onecorrect = onecorrect*length
exitos = 0.0
#print "zerocorrect:", zerocorrect
#print "onecorrect: ", onecorrect, "\n"
# Todo lo que sigue corresponde a la transmision de las palabras
for j in range(repet):
conteo0 = 0
contCorr0 = 0
contCorr1 = 0
listaT = []
for k in range(length):
bitransmited = int(random.randint(0,1))
if bitransmited == 0:
if freqzeroProduct > conteo0:
if zerocorrect > contCorr0:
listaT.append(0) #Esto es para que la frecuencia de ceros corresponda a la que indicamos
conteo0 = conteo0 + 1
contCorr0 = contCorr0 + 1
else:
listaT.append(1)
contCorr1 = contCorr1 + 1
else:
listaT.append(1)
else:
if onecorrect > contCorr1:
listaT.append(1)
contCorr1 = contCorr1 + 1 #Si ya rebasamos el limite de ceros creados, ahora ponemos unos
else:
listaT.append(0)
contCorr0 = contCorr0 + 1
if listaT == listaG: #Comparamos el contenido de las listas de palabras transmitidas con las generadas
exitos = exitos + 1 #Elevamos en 1 el exito obtenido
print "Transmited: ", listaT
porcent = (exitos/repet) #Creamos el porcentaje de exito, esto sera la columna 3 de nuestro archivo dat, es lo mero mero
print "\n", repet
print exitos
print porcent
newl = str(l) #
newfreqzero = str(freqzero) # Convirtiendo a string todos los datos para poder escribirlos en nuestro dat
newporcent = str(porcent) #
if cer != 8: # Cuando la frecuencia de ceros ya sea 0.9, saltamos 2 lineas en el dat
archi.write(newl)
archi.write(' ')
archi.write(newfreqzero) # Escribiendo en el dat
archi.write(' ')
archi.write(newporcent)
archi.write('\n')
else:
archi.write(newl)
archi.write(' ')
archi.write(newfreqzero)
archi.write(' ') #Escribiendo en el dat
archi.write(newporcent)
archi.write('\n\n')
archi.close() # Cerrando el archivo, se abre cada vez que se ejecuta esta subrutina
</pre>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Llamando a la función que genera/transmite con largo de palabras desde potencia 0,1,2 hasta 9, y con valores de frecuencias de 0 desde 0.1, 0.2 hasta 0.9:</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"></span><br />
<pre class="brush:py">def main():
for i in range(10): #Para poder correr el transmisor con potencias desde 0 hasta la 9
for j in range(9): #Para poder correr el transmisor con frecuencias de zero desde 0.1 hasta 0.9
print "\nTransmitiendo con largo = ", i, "y con freqzero = ", j # Meramente informativo para el programador
generador(i, j) #Correr el generador/transmisor con largos y frecuencias distintas
#i = 1
#while i <= 512:
#generador(i)
# i = i*2
if __name__ == "__main__":
main()
</pre>
<span style="font-family: Arial,Helvetica,sans-serif;"></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">Ejecutando mi generador/transmisor con los parámetros 0.8 y 0.8 20, que corresponden a la porcentaje de ceros correctos, unos correctos y repeticiones(esto es las veces con las que se promedia el experimento, es decir, se transmite 20 veces las palabras y se obtiene un promedio de éxito, decidí que lo pusiera como parametro el usuario para tener escenarios más amplios):</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3G4878JSmAJS8InRP4SXkI6WXQLVwCDvyC_n-XPGoi6Lvh4X-HnPwZ9DTAX4ybnx1RwK1g4wdijc0gYXMEidBIZHHn02fkKflanH6sag1hAI1YUAh5ZU7CGm3XohOoyFG2w7KjLo_1YiS/s1600/image1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3G4878JSmAJS8InRP4SXkI6WXQLVwCDvyC_n-XPGoi6Lvh4X-HnPwZ9DTAX4ybnx1RwK1g4wdijc0gYXMEidBIZHHn02fkKflanH6sag1hAI1YUAh5ZU7CGm3XohOoyFG2w7KjLo_1YiS/s640/image1.png" width="640" /></a></div>
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Algo de lo que se ve cuando se está ejecutando el transmisor, son las palabras generadas y transmitidas, esto lo hace para cada iteración de largo de palabras (esto no es tan relevante). </span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy1Ty124TE3MMxgtBwGM7LNBe5ffH9Dzf6HmzxwOH1eGOtNQ8ZHizwrGs9QvFsIuUsv5ncYuYmNlT3EAPiEupq6apNwjoC_mZuN9NTlQCUnGk6AUd2xzaoJ_lNdmYXAkKuqlgDNvNA99KA/s1600/image2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="420" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy1Ty124TE3MMxgtBwGM7LNBe5ffH9Dzf6HmzxwOH1eGOtNQ8ZHizwrGs9QvFsIuUsv5ncYuYmNlT3EAPiEupq6apNwjoC_mZuN9NTlQCUnGk6AUd2xzaoJ_lNdmYXAkKuqlgDNvNA99KA/s640/image2.png" width="640" /></a></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Ahora les muestro el archivo dat obtenido:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Esto es el archivo dat resultante con valores 0.8, 0.8 y 20, que corresponde a porcentajes de cero correctos, unos correctos y repeticiones respectivamente. Va con largos de palabra desde potencia 0 hasta 9 (con base 2, primera columna) y frecuencias desde 0.1 hasta 0.9 (segunda columna), la tercera columna corresponde a los porcentajes de éxito.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<br />
<pre><code>
0 0.1 0.55
0 0.2 0.45
0 0.3 0.45
0 0.4 0.6
0 0.5 0.5
0 0.6 0.7
0 0.7 0.5
0 0.8 0.35
0 0.9 0.55
1 0.1 0.55
1 0.2 0.15
1 0.3 0.35
1 0.4 0.5
1 0.5 0.4
1 0.6 0.2
1 0.7 0.05
1 0.8 0.35
1 0.9 0.25
2 0.1 0.1
2 0.2 0.3
2 0.3 0.35
2 0.4 0.0
2 0.5 0.0
2 0.6 0.05
2 0.7 0.1
2 0.8 0.1
2 0.9 0.05
3 0.1 0.45
3 0.2 0.0
3 0.3 0.0
3 0.4 0.0
3 0.5 0.0
3 0.6 0.0
3 0.7 0.0
3 0.8 0.0
3 0.9 0.0
4 0.1 0.25
4 0.2 0.0
4 0.3 0.0
4 0.4 0.0
4 0.5 0.0
4 0.6 0.0
4 0.7 0.0
4 0.8 0.0
4 0.9 0.0
5 0.1 0.0
5 0.2 0.0
5 0.3 0.0
5 0.4 0.0
5 0.5 0.0
5 0.6 0.0
5 0.7 0.0
5 0.8 0.0
5 0.9 0.0
6 0.1 0.0
6 0.2 0.0
6 0.3 0.0
6 0.4 0.0
6 0.5 0.0
6 0.6 0.0
6 0.7 0.0
6 0.8 0.0
6 0.9 0.0
7 0.1 0.0
7 0.2 0.0
7 0.3 0.0
7 0.4 0.0
7 0.5 0.0
7 0.6 0.0
7 0.7 0.0
7 0.8 0.0
7 0.9 0.0
8 0.1 0.0
8 0.2 0.0
8 0.3 0.0
8 0.4 0.0
8 0.5 0.0
8 0.6 0.0
8 0.7 0.0
8 0.8 0.0
8 0.9 0.0
9 0.1 0.0
9 0.2 0.0
9 0.3 0.0
9 0.4 0.0
9 0.5 0.0
9 0.6 0.0
9 0.7 0.0
9 0.8 0.0
9 0.9 0.0
</code></pre>
</div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Al final así es como se ve la gráfica generada en gnuplot:</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNikGW-rSpArlHNlmUDYBkdpCVPAN96L1ix4su8hCH1_YZ9SNXw57_-EGgr-L_ENsbBned0YCP_Y0Ke1P3FZhMaOda3RFE_kpp77bRWvFMMMHiUafKuYAEG5K_AKAY4_m4Jp5GZWDpvCFq/s1600/image10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="538" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNikGW-rSpArlHNlmUDYBkdpCVPAN96L1ix4su8hCH1_YZ9SNXw57_-EGgr-L_ENsbBned0YCP_Y0Ke1P3FZhMaOda3RFE_kpp77bRWvFMMMHiUafKuYAEG5K_AKAY4_m4Jp5GZWDpvCFq/s640/image10.png" width="640" /></a></div>
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Ahora hago el experimento con probabilidades menores de obtener ceros y unos correctos, con la misma cantidad de repeticiones:</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0ybUUbDwzipeh7gXf8Mxv4G3g8BV4B4Dn0lhRZp-1WCTV9mcQbfdjonmFLzTeZ8MOKeqUdEZn34mJDmQiZ1xpuNJXDmCapzRtRpi034zpDuFlQ_HAlAjP2XEpzqW8sXNI97rH9ZkoEKqx/s1600/imagen11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="98" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0ybUUbDwzipeh7gXf8Mxv4G3g8BV4B4Dn0lhRZp-1WCTV9mcQbfdjonmFLzTeZ8MOKeqUdEZn34mJDmQiZ1xpuNJXDmCapzRtRpi034zpDuFlQ_HAlAjP2XEpzqW8sXNI97rH9ZkoEKqx/s640/imagen11.png" width="640" /></a></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">El siguiente es el archivo dat obtenido tras correr el experimento con los parámetros mencionados:</span><br />
<br />
<pre><code>
0 0.1 0.5
0 0.2 0.6
0 0.3 0.6
0 0.4 0.65
0 0.5 0.5
0 0.6 0.5
0 0.7 0.6
0 0.8 0.6
0 0.9 0.5
1 0.1 0.7
1 0.2 0.45
1 0.3 0.55
1 0.4 0.0
1 0.5 0.6
1 0.6 0.0
1 0.7 0.0
1 0.8 0.0
1 0.9 0.0
2 0.1 0.15
2 0.2 0.25
2 0.3 0.0
2 0.4 0.0
2 0.5 0.5
2 0.6 0.3
2 0.7 0.1
2 0.8 0.0
2 0.9 0.0
3 0.1 0.45
3 0.2 0.0
3 0.3 0.0
3 0.4 0.15
3 0.5 0.0
3 0.6 0.0
3 0.7 0.0
3 0.8 0.0
3 0.9 0.0
4 0.1 0.0
4 0.2 0.0
4 0.3 0.0
4 0.4 0.0
4 0.5 0.0
4 0.6 0.0
4 0.7 0.0
4 0.8 0.0
4 0.9 0.0
5 0.1 0.0
5 0.2 0.0
5 0.3 0.0
5 0.4 0.0
5 0.5 0.0
5 0.6 0.0
5 0.7 0.0
5 0.8 0.0
5 0.9 0.0
6 0.1 0.0
6 0.2 0.0
6 0.3 0.0
6 0.4 0.0
6 0.5 0.0
6 0.6 0.0
6 0.7 0.0
6 0.8 0.0
6 0.9 0.0
7 0.1 0.0
7 0.2 0.0
7 0.3 0.0
7 0.4 0.0
7 0.5 0.0
7 0.6 0.0
7 0.7 0.0
7 0.8 0.0
7 0.9 0.0
8 0.1 0.0
8 0.2 0.0
8 0.3 0.0
8 0.4 0.0
8 0.5 0.0
8 0.6 0.0
8 0.7 0.0
8 0.8 0.0
8 0.9 0.0
9 0.1 0.0
9 0.2 0.0
9 0.3 0.0
9 0.4 0.0
9 0.5 0.0
9 0.6 0.0
9 0.7 0.0
9 0.8 0.0
9 0.9 0.0
</code></pre>
<span style="font-family: Arial,Helvetica,sans-serif;">Y la gráfica resultante con los datos obtenidos es la siguiente:</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaBDLNU88i7wUDIqdhBG1IIVRkWEdkrNKutZsrTY82qq1XN8ACdU8PH2kiG_7KClQXoaApYOS2Kh3RrcpDNEinkFLF0iMe92OpImzUAuk9kdagk5NXTRMe6zcXxnsIaip1seylCwpuI8lm/s1600/image20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="552" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaBDLNU88i7wUDIqdhBG1IIVRkWEdkrNKutZsrTY82qq1XN8ACdU8PH2kiG_7KClQXoaApYOS2Kh3RrcpDNEinkFLF0iMe92OpImzUAuk9kdagk5NXTRMe6zcXxnsIaip1seylCwpuI8lm/s640/image20.png" width="640" /></a></div>
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Ahora el código para realizar el plot en gnuplot:</span><br />
<pre><code>
set term postscript eps color 10
set view map
set pm3d map
set cbrange[0:100]
set xlabel 'Word length (power of 2)'
set ylabel 'Frequency of zeroes'
set title 'Avg. prob. of correct transmission'
set output "canalTriana.eps"
set palette color positive
set key off
set size square
set yrange [0.05:0.95]
set xrange [-0.75:9.75]
set xtics 0, 1
set ytics 0.1, 0.1
splot "canalTriana.dat" using ($1-0.5):($2+0.05):($3*100.0)
</code></pre>
<span style="font-family: Arial,Helvetica,sans-serif;"><br />En la bibliografía agrego una liga que me sirvió a la hora de implementar archivos de texto en python (lectura, escritura).</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Liga a mi git: <a href="https://github.com/eddypre/M-todosCodificaci-n">https://github.com/eddypre/M-todosCodificaci-n</a></span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">PD: Traduje del libro de Shannon de la página 41 a la página 45. </span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b><span style="font-family: Arial,Helvetica,sans-serif;">Bibliografía:</span></b></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<a href="http://pythonya.appspot.com/detalleconcepto?deta=Creaci%C3%B3n,%20carga%20y%20lectura%20de%20archivos%20de%20texto"><span style="font-family: Arial,Helvetica,sans-serif;">http://pythonya.appspot.com/detalleconcepto?deta=Creaci%C3%B3n,%20carga%20y%20lectura%20de%20archivos%20de%20texto</span></a></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Cualquier duda o aclaración pueden ponerla en comentarios. </span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Saludos a todos!</span></div>
Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com2tag:blogger.com,1999:blog-6845988839185922136.post-73689721735699476442012-10-22T19:40:00.000-07:002012-10-22T21:50:37.274-07:00Tarea 8<div style="text-align: center;">
<span style="color: #783f04;"><span style="font-family: Georgia,"Times New Roman",serif;"><b><span style="font-size: x-large;">Sistemas concurrentes / Redes Petri</span></b></span></span></div>
<br />
<div style="text-align: justify;">
Hola a todos, el tema de esta actividad son los sistemas concurrentes y su modelación con una red Petri. Empecemos con comentar lo que es un sistema concurrente.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Un sistema o un programa concurrente es la simultaneidad en la ejecución de múltiples tareas interactivas. Las tareas estas de las que comento pueden ser un conjunto de procesos o hilos de ejecución creados por un único programa. Las tareas se pueden ejecutar en una sola unidad central de proceso , en varios procesadores o en una red de computadoras distribuidas. La programación concurrente está relacionada con la programación paralela,
pero enfatiza más la interacción entre tareas. Así, la correcta
secuencia de interacciones o comunicaciones entre los procesos y el
acceso coordinado de recursos que se comparten por todos los procesos o
tareas son las claves de esta disciplina.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Y la red Petri la defino de la siguiente manera: Una Red de Petri es una representación matemática o gráfica de un sistema es decir, en esta actividad, es una representación gráfica que cuenta con lugares, trancisiones y arcos dirigidos. Para una definición un tanto más "formal" y completa pueden visitar este enlace: <a href="http://es.wikipedia.org/wiki/Red_de_Petri">http://es.wikipedia.org/wiki/Red_de_Petri</a> </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Bien, entendida la teoría vayamos a la actividad en concreto, lo encargado fue: Inventar un <b>pequeño</b>(esto me lo tomé muy enserio hehe) sistema concurrente y modelarlo con una red Petri. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Bueno el sistema concurrente que inventé fue uno que representara la solicitud de direcciones IP(por elementos de red: PC, dispositivos multimedia, refrigeradores, cámaras fotográficas, ipod, etc) a un router. Es en concreto un sistema de "address request", un protocolo DHCP.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Y el funcionamiento se basa en que un cliente solicita una dirección IP, y el router tiene una variable llamada "Contador", de manera que apartir de aquí se abren 2 trancisiones en las cuales si el contador es menor a 50(casi siempre son más, en telmex si creo que son 50), entrará a un estado de "IPEnviada". En caso contrario(cuando el contador es igual a 50), el sistema pasa a un estado llamado "SolicitudCancelada". Obviamente sabemos que el protocolo DHCP es más complejo y la cantidad límite de host que permite un router(wireless) es configurable(el límite es prácticamente la máscara de red), pero esto es solo una representación para ejemplificar los sistemas recurrentes</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El diagrama, al igual que mis compañeros lo realicé en python con la ayuda de las librerías python-snakes (era requisito de la actividad).</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El código para realizar el diagrama es el siguiente:</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<script src="https://gist.github.com/3936731.js"> </script>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La imagen del diagrama es la siguiente:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMkSFc0IdJD_wJtHTL44g1_0Z9IhDk3zHfa0ZnllUG-MnGaNZ3Tihhl7PXBD4uSlHGQ5a1lA953Qc-AXWTi9cF3hGL2zSaayFtlCmS4qQo2scZhl5qZkkwQ7qvFlw_Cb36FrvW0YK9jGcO/s1600/SistemaDHCP.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="347" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMkSFc0IdJD_wJtHTL44g1_0Z9IhDk3zHfa0ZnllUG-MnGaNZ3Tihhl7PXBD4uSlHGQ5a1lA953Qc-AXWTi9cF3hGL2zSaayFtlCmS4qQo2scZhl5qZkkwQ7qvFlw_Cb36FrvW0YK9jGcO/s400/SistemaDHCP.png" width="400" /></a></div>
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
Cualquier duda o aclaración pueden dejarla en comentarios.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: large;"><u><b>Bibliografía</b></u></span><br />
<br /></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<a href="http://coopn.wordpress.com/">http://coopn.wordpress.com/</a><br />
<a href="http://www.ibisc.univ-evry.fr/~fpommereau/snakes-api/snakes.plugins.gv-module.html">http://www.ibisc.univ-evry.fr/~fpommereau/snakes-api/snakes.plugins.gv-module.html </a><br />
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Saludos a todos!<br />
<span style="font-size: large;"><u><b><br /></b></u></span>
<span style="font-size: large;"><u><b><br /></b></u></span></div>
Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com1tag:blogger.com,1999:blog-6845988839185922136.post-71802235495453101442012-09-02T18:10:00.000-07:002012-09-04T07:23:05.140-07:00BDD<div style="text-align: center;">
<span class="Apple-style-span" style="color: #073763; font-family: Arial, Helvetica, sans-serif; font-size: x-large;"><b>Diagramas Binarios de Decisión</b></span><br />
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;">Hola, la tarea para la siguiente semana consiste en:</span></div>
</div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><br /></span>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><i>1 - Inventar una expresión Booleana, usando por mínimo 3 variables y 4 conectivos básicos.</i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><i>2 - Construir y dibujar su BDD.<o:p></o:p></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><i>3 - Reducir el BDD resultante a un ROBDD y dibujarlo.</i></span></div>
<div class="MsoNormal">
<span style="font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-font-style: italic; mso-bidi-theme-font: minor-latin;"><span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><br /></span></span></div>
<div class="MsoNormal">
<span style="line-height: 115%;"><span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;">Primeramente definiré el concepto de "Diagramas Binarios de Decisión".</span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;"><br /></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;">Un diagrama de decisión binario es un concepto usado en el campo de las ciencias de la computación y es una estructura de datos utilizada para representar una función booleana.</span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;"><br /></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;">Luego, mediante el diagrama binario de decisión se puede obtener la ecuación o expresión lógica de la proposición, y viceversa.</span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;"><br /></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;">1- Para realizar la expresión booleana lo hice al azar, y la tabla de verdad obtenida con los conectores básicos que empleé salió así:</span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;"><br /></span></span>
<br />
<div style="text-align: center;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;"><span style="color: #244061; font-family: "Calibri","sans-serif"; font-size: 12.0pt; line-height: 115%; mso-ansi-language: ES-MX; mso-ascii-theme-font: minor-latin; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-themecolor: accent1; mso-themeshade: 128;">((A˅B)˄C) ˅ (¬(B˅C))</span></span></span></div>
<div style="text-align: center;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;"><span style="color: #244061; font-family: "Calibri","sans-serif"; font-size: 12.0pt; line-height: 115%; mso-ansi-language: ES-MX; mso-ascii-theme-font: minor-latin; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-themecolor: accent1; mso-themeshade: 128;"><br /></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX0JzVbJPQfcwGYovKJsR6w7kpQSyCpRe7W2vfRNWugWxBldJXqNpRxa08efnjw2oFFXv1kQbqNZgZp7te2N5XzDK6gKTZJntUYiu0CA3ylybDLlEZ9NB561CEkUg1zB6j1TZXwxCyCqE0/s1600/BDD1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="184" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX0JzVbJPQfcwGYovKJsR6w7kpQSyCpRe7W2vfRNWugWxBldJXqNpRxa08efnjw2oFFXv1kQbqNZgZp7te2N5XzDK6gKTZJntUYiu0CA3ylybDLlEZ9NB561CEkUg1zB6j1TZXwxCyCqE0/s640/BDD1.jpg" width="640" /></a></div>
<div style="text-align: center;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;"><span style="color: #244061; font-family: "Calibri","sans-serif"; font-size: 12.0pt; line-height: 115%; mso-ansi-language: ES-MX; mso-ascii-theme-font: minor-latin; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-themecolor: accent1; mso-themeshade: 128;"><br /></span></span></span></div>
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;">2- Dibujar y construir BDD.</span></span><br />
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;"><br /></span></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0qjdYxKinx-2GXXeki5RUj4QLm4Dy9TK3Htl7Ct0RUEHo_dN43-3eTxerbuHt0c7OpBgcD9WIdLsq0-cZ29PsQMy09QMp8E15LMSYoViTmV3KShGFgG92mvUCWNYAngDIebtkoLtrABrD/s1600/BDD2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="281" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0qjdYxKinx-2GXXeki5RUj4QLm4Dy9TK3Htl7Ct0RUEHo_dN43-3eTxerbuHt0c7OpBgcD9WIdLsq0-cZ29PsQMy09QMp8E15LMSYoViTmV3KShGFgG92mvUCWNYAngDIebtkoLtrABrD/s400/BDD2.jpg" width="400" /></a></div>
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;"><br /></span></span><span class="Apple-style-span" style="line-height: 18px;"></span>
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<div style="color: black; font-family: 'Times New Roman'; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;">3 - Reducir el BDD resultante a un ROBDD y dibujarlo.<i><o:p></o:p></i></span><br />
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<div style="text-align: center;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><i><b>Removiendo terminales duplicadas...</b></i></span></div>
<div style="text-align: center;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><i><br /></i></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRkg6Jscy65u8tNqF3mziPeheAMtLvsU-W2X1q7TIvoE9PxzK9uanJjhdfD7B6F-lAumqyjwjyQJ0s0MVUMM0Lc4UZrcQNfiYPQTyoI2svwQWl3dGQ_YD4z55_DMZ0U4jNubBFxAAz2RTx/s1600/00.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="356" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRkg6Jscy65u8tNqF3mziPeheAMtLvsU-W2X1q7TIvoE9PxzK9uanJjhdfD7B6F-lAumqyjwjyQJ0s0MVUMM0Lc4UZrcQNfiYPQTyoI2svwQWl3dGQ_YD4z55_DMZ0U4jNubBFxAAz2RTx/s400/00.jpg" width="400" /></a></div>
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><i><br /></i></span>
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><i><br /></i></span>
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><i><br /></i></span></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<div style="text-align: center;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><i><b>Uniendo los nodos duplicados...</b></i></span></div>
<div style="text-align: center;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><i><b><br /></b></i></span></div>
<div style="text-align: center;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><i><b><br /></b></i></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBleQM-03SVKTGNiVbXcwCnH9uLyqSrjpd70LJbxzw2jbNkxczFrffeAjZJVGLOrywqq1Kkh8Q5q9VxznVBMW-OkTDfwUolgS4gbI7RICHSpFg2Wo45G4WAl7ile6izfSR4xmAC6rSXJE9/s1600/02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="393" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBleQM-03SVKTGNiVbXcwCnH9uLyqSrjpd70LJbxzw2jbNkxczFrffeAjZJVGLOrywqq1Kkh8Q5q9VxznVBMW-OkTDfwUolgS4gbI7RICHSpFg2Wo45G4WAl7ile6izfSR4xmAC6rSXJE9/s400/02.jpg" width="400" /></a></div>
<div style="text-align: center;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><i><b><br /></b></i></span></div>
<div style="text-align: center;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><i><b><br /></b></i></span></div>
<div style="text-align: center;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><i><b>Removiendo nodos redundantes (final)...</b></i></span></div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYY_WtfEDkBdnURaoDDccBVrZe55ydzp7swbKRyzsxcCIKSDzyTvTIHOnbGFFcV0ewkUmR6kA0O8c5D-LX1bpHnnMPoebiYP9R-QedlHtmPVrm0dPPT9D7eAhiH1w2C8mCtLvDjQAYkCLY/s1600/BDD3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYY_WtfEDkBdnURaoDDccBVrZe55ydzp7swbKRyzsxcCIKSDzyTvTIHOnbGFFcV0ewkUmR6kA0O8c5D-LX1bpHnnMPoebiYP9R-QedlHtmPVrm0dPPT9D7eAhiH1w2C8mCtLvDjQAYkCLY/s400/BDD3.jpg" width="343" /></a></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
</div>
<div class="MsoNormal" style="color: black; font-family: 'Times New Roman'; line-height: normal;">
</div>
<br />
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif; line-height: 18px;">Esto es todo para la tarea número 3. Gracias.</span><br />
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif; line-height: 18px;">Cualquier duda o aclaración pueden dejarla en comentarios.</span></div>
</div>
<div class="MsoNormal">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;"><br /></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;">Saludos!</span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;"><br /></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;"><br /></span></span></div>
<div class="MsoNormal">
<span class="Apple-style-span" style="color: #444444; font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="line-height: 18px;"><br /></span></span></div>
Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com1tag:blogger.com,1999:blog-6845988839185922136.post-55399742213582637292012-05-24T00:27:00.001-07:002012-05-24T00:27:18.402-07:00Proyecto Arduino<div style="text-align: center;">
<b><span style="color: #0b5394; font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;">Proyecto Arduino - Casa Inteligente (Iluminación)<br /></span></span></b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdp7uSycGPibR0YDtQCd1k888OzlY93EIRfiSdku5kgxKg9D9LSwcdv4LZOcDNbkGoy1YuDzCchPnwmezjYgPgpoWXD52RtYCJ7dOm7I7021AmQac2vNdw8XClMGmSnoLmTrtbzE5aatYu/s1600/M02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdp7uSycGPibR0YDtQCd1k888OzlY93EIRfiSdku5kgxKg9D9LSwcdv4LZOcDNbkGoy1YuDzCchPnwmezjYgPgpoWXD52RtYCJ7dOm7I7021AmQac2vNdw8XClMGmSnoLmTrtbzE5aatYu/s640/M02.jpg" width="640" /></a></div>
<div style="text-align: center;">
<br /><br /><br /></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">Como ya la mayoría sabe, mi proyecto de Arduino trata sobre un módulo de la casa inteligente, en específico, la iluminación.</span><br style="color: #444444; font-family: Arial,Helvetica,sans-serif;" /><br style="color: #444444; font-family: Arial,Helvetica,sans-serif;" /><span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">A principio de semestre yo tenía la idea de controlar la iluminación por medio de distintos medios, por ejemplo, se me había ocurrido controlar las luces por medio de aplausos, o también por medio de la voz. Pero al final, para combinar el proyecto de Cómputo Integrado con el de Dispositivos Móviles decidí en controlar la iluminación desde un móvil con Android, además esa idea ya la tenía junto con mis compañeros de equipo del semestre pasado, de hecho el trabajo de móviles (la aplicación), es decir, la parte del control de este proyecto la realizamos entre todos los elementos del equipo del semestre pasado.</span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">Bueno, como ya había comentado en posts anteriores, mi proyecto básicamente se compone de 2 circuitos fundamentales, el circuito de control (Arduino) y el circuito de potencia (el que controla las altas tensiones de 110v). </span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: center;">
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">Herramientas utilizadas</span></b></span></div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<ul>
<li><span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">Simulador de Android<br /></span></li>
<li><span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">Eclipse<br /></span></li>
<li><span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">IDE de Arduino<br /></span></li>
<li><span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">CIRCAD (Software para diseño de PCB's)<br /></span></li>
<li><span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">Java (Comunicación por medio de sockets con la aplicación móvil)<br /></span></li>
<li><span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">Arduino UNO<br /></span></li>
<li><span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">Tablet con Android para las pruebas en dispositivo</span></li>
</ul>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">Simulador de Android </span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"><br /></span></b></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-qPGX9CzDp1DcbYgovO67A3cy_6Ll0qf2R48BIKZ-t8LHxZN9gdQcI0c_8ygUlLKGPYPzdFc_pvnmgI8A7QtLb8DpUxMLfcjxH4K2woPg_4VUyxnB84UIkIabeMNFJ55g1xhjoRv6g1J9/s1600/screenAndroid.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="288" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-qPGX9CzDp1DcbYgovO67A3cy_6Ll0qf2R48BIKZ-t8LHxZN9gdQcI0c_8ygUlLKGPYPzdFc_pvnmgI8A7QtLb8DpUxMLfcjxH4K2woPg_4VUyxnB84UIkIabeMNFJ55g1xhjoRv6g1J9/s400/screenAndroid.png" width="400" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span></span></span></div>
<div style="text-align: justify;">
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Antes de pasar la aplicación y probarla en un dispositivo móvil, iba realizando las pruebas en el simulador.</span></span></span><b><span style="font-size: large;"></span></b></span></div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"></span></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"> </span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">IDE de Arduino UNO</span></b></span></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">Esta es la primera parte del código que está almacenado en el microcontrolador de Arduino, lo que hicé fue declarar los pines 12 y 13 como salidas, para simular focos en el 1er 2do piso de una casa, aunque los ffocos los puse uno seguido de otro :p. Pero esa es la idea.</span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"></span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"></span></span></div>
<div style="text-align: justify;">
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"></span><br /><span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">También establezco la velocidad de transferencia de los datos a 9600 baudios</span></span></div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"><br /></span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"><br /></span></b></span></div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJlRY24SoX34CH2uVoJomAp4OpDjgxTaVp4lDrOe9SrQNqtiZcwpHRhzBtKKnXjXp7etV9Cd6DXfem-NmnQt2IIn3cHzCbQJ7ESeEUMtO5zEo0-qI5GtayG3Aw4nxA87l1sGM80IvBTLXL/s1600/screenAndroid01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="278" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJlRY24SoX34CH2uVoJomAp4OpDjgxTaVp4lDrOe9SrQNqtiZcwpHRhzBtKKnXjXp7etV9Cd6DXfem-NmnQt2IIn3cHzCbQJ7ESeEUMtO5zEo0-qI5GtayG3Aw4nxA87l1sGM80IvBTLXL/s400/screenAndroid01.png" width="400" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">En la siguiente imagen lo que hago es leer los datos que envía la PC (a la PC le llegan del móvil), luego comparar para obtener la salida deseada </span><b><span style="font-size: large;"><br /></span></b></span></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhNmTLgGiMhvS0lGB6cjSnP_PsNpsxcmb1xJA_py5Jr44S8AhpRSIlZea_M2D30-UTjothHElh0sEqx8ZlWaFn0ALsAHVT1rWxPDsLfEtVk9U6Ribeb7QsPUNJ8A84IGUrS-vDUCCiCNSH/s1600/screenAndroid02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhNmTLgGiMhvS0lGB6cjSnP_PsNpsxcmb1xJA_py5Jr44S8AhpRSIlZea_M2D30-UTjothHElh0sEqx8ZlWaFn0ALsAHVT1rWxPDsLfEtVk9U6Ribeb7QsPUNJ8A84IGUrS-vDUCCiCNSH/s400/screenAndroid02.png" width="387" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">CIRCAD<br /><br /></span></b></span></div>
<div style="text-align: justify;">
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><span style="font-size: small;">El siguiente es el diseño que realicé del circuito de potencia, en el extremo izquierdo se encuentran las entradas del circuito (donde se conectan los pines de salida de Arduino). En el extremo derecho se encuentran pads para meter un molex, en el molex podremos conectar las salidas para los focos (voltaje de 110), es por eso que puse esas líneas más gruesas, ya que por ahí cruzará alta tensión</span></span></span><br /></div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"><br /></span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"><br /></span></b></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8dCY_3Cb49cuBLvuhHIF3eHM_Xb_Z3Gsy7rWE5O_-Eo0Wn-COAYgYJgnGw4H8wAA1JEExiqwlp8i7UzNXrI0iGrE-GIYRnMqlhA9iy_QmlfxHJNJeGIXsLWf0eVYJpaKaICccNLRGy2pb/s1600/image01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="183" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8dCY_3Cb49cuBLvuhHIF3eHM_Xb_Z3Gsy7rWE5O_-Eo0Wn-COAYgYJgnGw4H8wAA1JEExiqwlp8i7UzNXrI0iGrE-GIYRnMqlhA9iy_QmlfxHJNJeGIXsLWf0eVYJpaKaICccNLRGy2pb/s400/image01.png" width="400" /></a></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"><br /></span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"></span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"></span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"></span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"></span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"></span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"><br /><br />Java<br /><br /></span></b></span></div>
<div style="text-align: justify;">
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: large;"><span style="font-size: small;">Utilicé una sola función para envíar mensajes. Toda esta comunicación entre Arduino y Java (PC) la pude realizar gracias a la librería Rxtx de Java, la instalación un código los he explicado en un post pasado que trata sobre la librería Rxtx.</span></span></span></div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"><br /></span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"><br /></span></b></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyxUBLQ4l4QIvhzIMTdaRqqZj3dhEXvQiI-ZU56fODE6BV1HZCpg0BjcSVi_BMV1T277-LeJeqbaUPxW9QFQEUilnHJXUrV2rweUhVZdCtsQyInZfhWPSZHdvvepCzR8AyD8OFjFAW4UMb/s1600/java01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="100" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyxUBLQ4l4QIvhzIMTdaRqqZj3dhEXvQiI-ZU56fODE6BV1HZCpg0BjcSVi_BMV1T277-LeJeqbaUPxW9QFQEUilnHJXUrV2rweUhVZdCtsQyInZfhWPSZHdvvepCzR8AyD8OFjFAW4UMb/s640/java01.png" width="640" /></a></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"><br /></span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"><br /></span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"><br /></span></b></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">Después ya cuando llegan los Strings desde la aplicación móvil, los comparo en java y dependiendo de lo recibido yo decido que parametro pasarle a Arduino mediante mi función sendMessage, como pueden ver en las imágenes de arriba, programé el arduino para que cuando reciba un "1" la luz se encienda, haciendo lo contrario para el parámetro "2" (ver la imagen siguiente).<br /></span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> </span></span></div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHyCZrFJ9tZ2HbmRfLo6DP7MqllgeuJ1OgD6_BIBBe5pqCIrYipfVOYnGf-KqiRy3HTUKMqK63zjXrH0r5hcAH6wOn4R5wzB7P_cuDvk2gnt2aKwMS3lqORPe0e2hV48KUE8bgJd2c3962/s1600/screenAndroid02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMubk2zTtLlzjoRKFz4UTEjcsRnp9trGiL4dASFUaybFV5xTzxWegUDSIOnR3s6IKCm8dCkBXaYyn1cWNVaitgRzbhVNjV1DCQXhsnIXydjaDubXEOkKVUqin5UnOe9V-qkky74QdrrRxC/s1600/java02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="472" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMubk2zTtLlzjoRKFz4UTEjcsRnp9trGiL4dASFUaybFV5xTzxWegUDSIOnR3s6IKCm8dCkBXaYyn1cWNVaitgRzbhVNjV1DCQXhsnIXydjaDubXEOkKVUqin5UnOe9V-qkky74QdrrRxC/s640/java02.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyxUBLQ4l4QIvhzIMTdaRqqZj3dhEXvQiI-ZU56fODE6BV1HZCpg0BjcSVi_BMV1T277-LeJeqbaUPxW9QFQEUilnHJXUrV2rweUhVZdCtsQyInZfhWPSZHdvvepCzR8AyD8OFjFAW4UMb/s1600/java01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHyCZrFJ9tZ2HbmRfLo6DP7MqllgeuJ1OgD6_BIBBe5pqCIrYipfVOYnGf-KqiRy3HTUKMqK63zjXrH0r5hcAH6wOn4R5wzB7P_cuDvk2gnt2aKwMS3lqORPe0e2hV48KUE8bgJd2c3962/s1600/screenAndroid02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHyCZrFJ9tZ2HbmRfLo6DP7MqllgeuJ1OgD6_BIBBe5pqCIrYipfVOYnGf-KqiRy3HTUKMqK63zjXrH0r5hcAH6wOn4R5wzB7P_cuDvk2gnt2aKwMS3lqORPe0e2hV48KUE8bgJd2c3962/s1600/screenAndroid02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHyCZrFJ9tZ2HbmRfLo6DP7MqllgeuJ1OgD6_BIBBe5pqCIrYipfVOYnGf-KqiRy3HTUKMqK63zjXrH0r5hcAH6wOn4R5wzB7P_cuDvk2gnt2aKwMS3lqORPe0e2hV48KUE8bgJd2c3962/s1600/screenAndroid02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;">Arduino UNO</span></b></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHyCZrFJ9tZ2HbmRfLo6DP7MqllgeuJ1OgD6_BIBBe5pqCIrYipfVOYnGf-KqiRy3HTUKMqK63zjXrH0r5hcAH6wOn4R5wzB7P_cuDvk2gnt2aKwMS3lqORPe0e2hV48KUE8bgJd2c3962/s1600/screenAndroid02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> </span><b><span style="font-size: large;"><br /></span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"></span></b></span></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"></span></b></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://arduino.cc/en/uploads/Main/ArduinoUno_R3_Front_450px.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="276" src="http://arduino.cc/en/uploads/Main/ArduinoUno_R3_Front_450px.jpg" width="400" /></a></div>
<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: large;"><br /><br /><br /></span></b></span></div>
<div style="text-align: justify;">
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">Arduino UNO facilitó mucho la comunicación entre el microcontrolador y Java (PC), ya que si no lo hubiera usado, la programación se extendería demasiado, también hubiera sido más complejo aunque importara librerías.</span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> </span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> </span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">A continuación les dejo con unas imágenes que tomé del proyecto finalizado:</span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWpS0IhqeHBs1DObDpqLyfQj6k0c571TXN1N_7Xz16CmmTqxNVMl1lffAnKuvWl1pTYf1u_SMJt4DAuPN15LN_CZNI1qPwO1QZm9JVkuG9bY0__ViGmudvUQ8rnsptV6cfXJRxWAbArUg3/s1600/M01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWpS0IhqeHBs1DObDpqLyfQj6k0c571TXN1N_7Xz16CmmTqxNVMl1lffAnKuvWl1pTYf1u_SMJt4DAuPN15LN_CZNI1qPwO1QZm9JVkuG9bY0__ViGmudvUQ8rnsptV6cfXJRxWAbArUg3/s400/M01.jpg" width="400" /></a></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZH297BPlFQEAatCD9hbPjESdve2Dkc9FYB4Clm_RKcK33Ok0dULqlQwn7VBGXMjChPFDt_9CZf_sQtEADQ299G72Xp9QCBrHcLyHpuVqWqWpZWlHUMmk5enMOIiGZvyJGwY1PQhJvIu3w/s1600/M03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZH297BPlFQEAatCD9hbPjESdve2Dkc9FYB4Clm_RKcK33Ok0dULqlQwn7VBGXMjChPFDt_9CZf_sQtEADQ299G72Xp9QCBrHcLyHpuVqWqWpZWlHUMmk5enMOIiGZvyJGwY1PQhJvIu3w/s400/M03.jpg" width="400" /> </a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgftyxp6DylFtKmUkgMYCPvMj2NUJ9CfP3Q0vPN-J7QuWbWPh2yN4FG0UjX7PJOBH43yHFneAPyoZdEMaUJdvOBShvbZSqMtibad3L_tAJGUEdIAcbRqckA9f0vWqZlMntUUrJXf8vFoqF/s1600/M04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgftyxp6DylFtKmUkgMYCPvMj2NUJ9CfP3Q0vPN-J7QuWbWPh2yN4FG0UjX7PJOBH43yHFneAPyoZdEMaUJdvOBShvbZSqMtibad3L_tAJGUEdIAcbRqckA9f0vWqZlMntUUrJXf8vFoqF/s400/M04.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYxiBiR12dqxhTu7zLosNZi4cwkws-zlk0V9Et4RTPeoCkC7IzngdTUFQ5Wnrz_0JaYczMJMTY4GjAgd1ZkwfFN-7lYtIVjVhmc1H-dLZa11lkZ7U5MjrCXOPnASHUFRlGD5TY4WjKSy3R/s1600/M05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYxiBiR12dqxhTu7zLosNZi4cwkws-zlk0V9Et4RTPeoCkC7IzngdTUFQ5Wnrz_0JaYczMJMTY4GjAgd1ZkwfFN-7lYtIVjVhmc1H-dLZa11lkZ7U5MjrCXOPnASHUFRlGD5TY4WjKSy3R/s400/M05.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">En un futuro subiré los códigos realizados, el archivo de PCB creado en CIRCAD y un video del proyecto en acción :)</span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">Saludos!</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com0tag:blogger.com,1999:blog-6845988839185922136.post-60879961043206336182012-05-23T17:59:00.002-07:002012-05-23T17:59:46.790-07:00Módulos de Arduino<div style="text-align: center;">
<span style="color: #444444; font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;">Shields de Arduino</span></span></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Los shields
son placas que se colocan encima de la placa Arduino y que amplían una
nueva función para que sea controlada desde Arduino, para controlar
diferentes aparatos, adquirir datos para después procesarlos por la PC, etc.</div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Algunos compañeros de clase usaron algunos shields, la mayoría usaron el shield de Xbee. </div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
En esta entrada haré mención de algunos shields que se pueden montar a una placa Arduino.</div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
.</div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<h2 style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: center;">
<span style="font-size: x-large;">Xbee Shield</span></h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://image.flamingoeda.com/albums/userpics/normal_xbee_shield_v2_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://image.flamingoeda.com/albums/userpics/normal_xbee_shield_v2_2.jpg" width="400" /></a></div>
<h2 style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: center;">
<span style="font-size: x-large;"> </span></h2>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><h3 style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<span style="font-size: large;">Introducción</span></h3>
<h3 style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</h3>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
La Xbee shield permite a una placa Arduino comunicarse de forma inalámbrica usando Zigbee. Está basada en el módulo Xbee de MaxStream.
El módulo puede comunicarse hasta 100ft (30 metros) en interior o 300ft
(90 metros) al aire libre (en visión directa). Puede ser usado como
reemplazo del puerto serie/usb o puedes ponerlo en modo de comandos y
configurarlo para una variedad de opciones de redes broadcast o
malladas. La shield tiene pistas desde cada pin del Xbee hasta un
orificio de soldar. También provee conectores hembra para usar los pines
digitales desde 2 hasta 7 y las entradas analógicas, las cuales están
cubiertas por la shield (los pines digitales de 8 a 13 no están
cubiertos por la placa, así que puedes usar los conectores de la placa
directamente).
</div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
La Xbee shiel fue creada en colaboración con Libelium, quienes la desarrollaron para usarlo en sus SquidBee motes (usados para crear redes de sensores).
</div>
<div style="text-align: justify;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"></span></div>
<div style="text-align: justify;">
<br /><span style="color: #444444; font-family: Arial,Helvetica,sans-serif;"></span></div>
<h3 style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<span style="font-size: large;"> </span></h3>
<h3 style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<span style="font-size: large;">Configuración de los jumpers</span></h3>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
La Xbee shield tiene dos jumpers (las pequeñas fundas de plásticos
que están sobre los tres pines etiquetados como Xbee/USB). Estos
determinan como se conecta la comunicación serie del Xbee entre el
microcontrolador (Atmega8 o <span class="wikiword">ATmega168</span>) y el chip serie FTDI de la placa Arduino.
</div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Con los jumpers en la posición <strong>Xbee</strong>
(e.g. en los dos pines más cercanos al interior de la placa), el pin
DOUT de el módulo Xbee está conectado al pin RX del microcontrolador; y
el pin DIN está conectado a TX. Notar que los pines RX y TX del
microcontrolador están todavía conectados a los pines TX y RX
(respectivamente) del chip FTDI - los datos enviados desde el
microcontrolador serán transmitidos al ordenador vía USB y a la vez
enviados de forma inalámbrica por el módulo Xbee. El microcontrolador,
sin embargo, solo será capaz de recibir datos desde el módulo Xbee, no
desde el USB del ordenador.
</div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Con los jumpers en la posición <strong>USB</strong> (e.g. en los dos pines más cercanos al borde de la placa), el pin DOUT del módulo Xbee está conectado al pin RX del pin <em>del chip FTDI</em>,
y el DIN del módulo Xbee está conectado al pin TX del el chip FTDI.
Esto significa que el módulo Xbee puede comunicarse directamente con el
ordenador - sin embargo, <em>esto solo funciona si el microcontrolador ha sido quitado de la placa Arduino</em>.
Si el microcontrolador se deja en la placa Arduino, solo será capaz de
comunicarse con el ordenador vía USB, pero ni el ordenador ni el
microcontrolador podrán comunicarse con el módulo Xbee.
</div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><h3 style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /><br /><span style="font-size: large;">Redes</span></h3>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /><br />La Arduino <span class="wikiword">XBee</span> shield puede ser usada con diferentes módulos <span class="wikiword">XBee</span>. Las instrucciones a continuación son para los <strong>módulos <span class="wikiword">XBee</span> 802.15.4</strong>.
</div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><h4 style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /><br /><span style="font-size: large;">Direccionamiento</span></h4>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /><br />Hay múltiples parámetros que necesitan ser configurados correctamente
para que dos módulos puedan comunicarse entre ellos (de todos modos con
la configuración por defecto, todos los módulos deberían ser capaces de
hablar unos con otros). Necesitan estar en la misma red, definida por
el parámetro <strong>ID</strong> (ver "Configuración" a continuación
para más detalles sobre los parámetros). Los módulos necesitan estar en
el mismo canal, definido por el parámetro <strong>CH</strong>. Finalmente, la dirección de destino de un módulo (parámetros <strong>DH</strong> y <strong>DL</strong>) determina que módulo en esa red y canal recibirá los datos transmitidos. Esto puede suceder de las siguientes formas:
</div>
<ul style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<li>Si el <strong>DH</strong> de un módulo es 0 y su <strong>DL</strong>
es menor de 0xFFF (e.g. 16 bits), los datos transmitidos por ese módulo
serán recibidos por cualquier módulo cuyos 16 bits de dirección del
parámetro <strong>MY</strong> sea igual al <strong>DL</strong>.
</li>
<li>Si el <strong>DH</strong> es 0 y el <strong>DL</strong> es igual a 0xFFFF, las transmisiones del módulo serán recibidas por todos los módulos.
</li>
<li>Si el <strong>DH</strong> no es cero o el <strong>DL</strong>
es mayor de 0xFFFF, la transmisión solo será recibida por el módulo cuyo
número de serie sea igual a la dirección de destino del módulo
transmisor (e.g. cuyos <strong>SH</strong> es igual al <strong>DH</strong> del módulo transmisor y cuyo <strong>SL</strong> sea igual a su <strong>DL</strong>).
</li>
</ul>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
De nuevo, esta correspondencia de direcciones solo sucederá
entre módulos en la misma red y canal. Si dos módulos están en
diferentes redes o canales, no podrán comunicarse sea cual sea sus
direcciones. </div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
Estos son unos cuantos comandos útiles para configurar el módulo Xbee (necesitarás anteponer <code>AT</code>). </div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span>
<table style="color: #444444; font-family: Arial,Helvetica,sans-serif; margin-left: 0px; margin-right: 0px; text-align: left;"><tbody>
<tr><td style="text-align: center;" valign="top" width="10%"><b><em>Comando</em></b>
</td><td style="text-align: center;" valign="top" width="50%"><b><em> Descripción<br /></em></b>
</td><td valign="top" width="20%">
</td><td valign="top" width="20%">
</td></tr>
<tr><td style="text-align: center;" valign="top"> <code>RE</code>
</td><td style="text-align: center;" valign="top"> Restaura los valores por defecto (notar que como
el parámetro cambia, esto no es permanente a no ser que esté seguido por
el comando <code>WR</code>).
</td><td valign="top">
</td><td valign="top">
</td></tr>
<tr><td style="text-align: center;" valign="top"> <code>WR</code>
</td><td style="text-align: center;" valign="top"> Escribe un nuevo valor para un parámetro
configurado a la memoria no volátil (larga-duración). De otro modo, solo
durarían hasta que el módulo sea desconectado de la corriente.
</td><td valign="top">
</td><td valign="top">
</td></tr>
<tr><td style="text-align: center;" valign="top"> <code>CN</code>
</td><td style="text-align: center;" valign="top"> Sale del modo de comandos. (Si no mandas ningún
comando a él módulo durante unos pocos segundos, el modo de comandos
saldrá tras un tiempo incluso sin el comando <code>CN</code>).
</td></tr>
</tbody></table>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><h4>
<br /></h4>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<h2 style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: center;">
Arduino Ethernet Shield</h2>
<h2 style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: center;">
</h2>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: center;">
<img alt="" height="305" src="http://arduino.cc/es/uploads/Main/ArduinoEthernetShield.jpg" title="" width="400" /> </div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: center;">
</div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: center;">
</div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<strong></strong><a class="urllink" href="http://arduino.cc/es/uploads/Main/arduino-ethernet-shield-reference-design.zip" rel="nofollow"><br /></a>
</div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<strong></strong><a class="urllink" href="http://arduino.cc/es/uploads/Main/arduino-ethernet-shield-reference-design.zip" rel="nofollow"><br /></a>
</div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<strong></strong><a class="urllink" href="http://arduino.cc/es/uploads/Main/arduino-ethernet-shield-reference-design.zip" rel="nofollow"><br /></a>
</div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Este shield también fue usado por algunos compañeros de clase de Cómputo Integrado y Dispositivos Móviles. </div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
La Arduino Ethernet Shield permite a una placa Arduino conectarse a internet. Está basada en el chip ethernet Wiznet W5100.
El Wiznet W5100 provee de una pila de red IP capaz de TCP y UDP.
Soporta hasta cuatro conexiones de sockets simultáneas. Usa la librería Ethernet para escribir programas que se conecten a internet usando la shield.
</div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<em><br /></em>
</div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<em><br /></em>
</div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
La ethernet shield dispone de unos conectores
que permiten conectar a su vez otras placas encima y apilarlas sobre la
placa Arduino.
</div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Arduino usa los pines digitales 10, 11, 12, y
13 (SPI) para comunicarse con el W5100 en la ethernet shield. Estos
pines no pueden ser usados para e/s genéricas.
</div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
La shield provee un conectore ethernet estándar <span class="wikiword">RJ45</span>
</div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
El botón de reset en la shield resetea ambos, el W5100 y la placa Arduino.
</div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
La shield contiene un número de <span class="wikiword">LEDs</span> para información: </div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif;">
</span><ul style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<li>PWR: indica que la placa y la shield están alimentadas
<br /><br /></li>
<li>LINK: indica la presencia de un enlace de red y parpadea cuando la shield envía o recibe datos
<br /><br /></li>
<li>FULLD: indica que la conexión de red es full duplex
<br /><br /></li>
<li>100M: indica la presencia de una conexión de red de 100 Mb/s (de forma opuesta a una de 10Mb/s)
<br /><br /></li>
<li>RX: parpadea cuando la shield recibe datos
<br /><br /></li>
<li>TX: parpadea cuando la shield envía datos
<br /><br /></li>
<li>COLL: parpadea cuando se detectan colisiones en la red
</li>
</ul>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br />El jumper soldado marcado como "INT"
puede ser conectado para permitir a la placa Arduino recibir
notificaciones de eventos por interrupción desde el W5100, pero esto no
está soportado por la librería Ethernet. El jumper conecta el pin INT
del W5100 al pin digital 2 de Arduino.
</div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Bueno, como ya algunos saben, yo estuve trabajando en mi proyecto de la casa inteligente (módulo de ilumincación), así que intenté hacer mi propio módulo para Arduino :p.</div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Puse a mi tarjeta electrónica pines para poder ensamblarla sobre el Arduino, pero debido a las características de mi tarjeta no quise montarla para evitar cortos circuitos o que la alta tensión de mi tarjeta (110v) pase al Arduino y se dañe.</div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Les adjunto algunas imágenes de mi módulo, contiene el circuito de potencia para activar los focos que son alimentados con un voltaje de 110v (127v en realidad). </div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC4uEcUn52mya1THylG4jvqTXzMCHQNW7YlNGaytb89GIK6s-9OQmtVCbv-nsWZRtFLCbgexbeQHipsZNoRAzxnRBzpIfzcbLFNmGtLurC1xaQRSODBcUY1or7UwsLZB2aj0xXxZKYc88b/s1600/M01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC4uEcUn52mya1THylG4jvqTXzMCHQNW7YlNGaytb89GIK6s-9OQmtVCbv-nsWZRtFLCbgexbeQHipsZNoRAzxnRBzpIfzcbLFNmGtLurC1xaQRSODBcUY1or7UwsLZB2aj0xXxZKYc88b/s400/M01.jpg" width="400" /></a></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghS5SSosflfZYTRDMqWHNRHajoqhtNUkJv00U4c6E4S42L4DYFV_sjCbsKTsRwJr78GUrgMAaa7BOW1VnrPGEbghT1EoQkzKkMd_ANLWxtuOSxaOWLMXeUAIuOWGDavF1B9RjRhw5Ohubn/s1600/M02.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><br /></a> </div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
El espació donde están conectados los cables que salen del plástico gris es un puente de conexiones similar al de Arduino, terminé poniendo ese puente debido a las características de mi proyecto que comenté anteriormente, si ponía una hilera de pines para ensamblarlo al Arduino corría el riesgo de unir la parte del circuito de potencia con el circuito de control y el alto voltaje dañaría la placa Arduino. </div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9H34foFPzqpRmG_L_dYXZdOF6s4YiFVorSI7JjB3JJGsge5eSK-ZYac0Go0LrFJOB_CggOZCPbfdFwUn0N4ug0r9Wbr1Kj5XNvIdSaNoAG7VpFns_AvypH9oJBCjVlBhiUilmGll_mnVp/s1600/M03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9H34foFPzqpRmG_L_dYXZdOF6s4YiFVorSI7JjB3JJGsge5eSK-ZYac0Go0LrFJOB_CggOZCPbfdFwUn0N4ug0r9Wbr1Kj5XNvIdSaNoAG7VpFns_AvypH9oJBCjVlBhiUilmGll_mnVp/s400/M03.jpg" width="400" /></a></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
En esta última foto se puede ver la modificación que hice en mi tarjeta para poder comunicarme con Arduino, esos cables verdes (con blanco) y naranjas llevan los estados de switcheo de los focos y también la polarización del circuito de potencia (respectivamente).</div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Me hubiera gustado ensamblar mi tarjeta sobre Arduino pero corría mucho riesgo debido a las características de mi proyecto antes mencionadas.</div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg59q_1LBvo63U1Hqm2fdlOBePVvdgcKFdYs385fj7LSrY1uj92FE4rLz55FZDN4t9BomMV6ozIQxa20BoJtRGSmtGYEh9PT-myzkeZCVA63VEdS8sMQ2Z9d8U9dYS3ADJKiAzFYgXL-DK0/s1600/M04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg59q_1LBvo63U1Hqm2fdlOBePVvdgcKFdYs385fj7LSrY1uj92FE4rLz55FZDN4t9BomMV6ozIQxa20BoJtRGSmtGYEh9PT-myzkeZCVA63VEdS8sMQ2Z9d8U9dYS3ADJKiAzFYgXL-DK0/s640/M04.jpg" width="640" /></a></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: #444444; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Saludos!</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"> </span></div>Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com1tag:blogger.com,1999:blog-6845988839185922136.post-21845627474878322112012-05-17T01:28:00.003-07:002012-05-17T01:28:42.690-07:00Comunicación PIC - DB9<div style="text-align: center;">
<b style="color: #3d85c6;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif; font-size: x-large;">Comunicación PIC - DB9 (RS232)</span></b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">Existen un montón de aplicaciones de los microcontroladores donde es necesario comunicarse con una PC, por nombrar alguna aplicación, podemos decir que existen sistemas de monitoreo donde el microcontrolador está "escuchando" lo que pasa a su alrededor mediante sensores conectados a sus entradas, por ejemplo podría estar tomando como entradas sonidos del exterior o temperaturas, etc, datos que luego se desea que sean procesados por una PC, luego que la PC tome alguna decisión dependiendo de lo que haya reportando el microcontrolados.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<span style="font-family: Verdana,sans-serif;"><b><u><span style="font-size: large;"><span style="color: #0b5394;">Puerto Serie RS232 </span></span></u></b></span></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://wapedia.mobi/thumb/127f503/es/fixed/470/352/RS-232.jpeg?format=jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="239" src="http://wapedia.mobi/thumb/127f503/es/fixed/470/352/RS-232.jpeg?format=jpg" width="320" /></a></div>
<div style="text-align: center;">
<span style="font-family: Verdana,sans-serif;"><b><u><span style="font-size: large;"><span style="color: #0b5394;"> </span></span></u></b></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">La forma más común y sencilla de comunicar cualquier dispositivo con un ordenador es a través de su puerto serie que es compatible con el denominado estándar RS232. En una computadora hay puertos serie (en la mayoría de las actuales ya no viene, pero bien se podría usar un USB-Serie) que comúmente se denominan COM1, COM2, COM3, etc.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">Los puertos serie son accesibles mediante conectores. La norma RS232 establece 2 tipos de conectores llamados DB25 (25 pines) y DB9 (9 pines) machos y hembras. La norma RS232 se estableció para conectar una PC con um módem, por lo que aparecen muchos pines en los conectores DB25 que en otro tipo de aplicaciones no se utilizan y en las que es más común utilizar el conector DB9.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">Cada uno de los pines del conector RS232 tiene una función específica por la norma. Hay unos terminales por los que se transmiten y reciben datos y otros que controlan el establecimiento, flujo y cierre de la comunicación.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">La siguiente imagen muestra el pinout del conector DB9, vean las funciones de cada PIN (clickear sobre la imagen para ampliarla)</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"> </span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://hflink.com/interface/DB9_RS232_pinout.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="337" src="http://hflink.com/interface/DB9_RS232_pinout.gif" width="400" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /> </span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">Se puede observar en la pasada imagen que cada pin desempeña una función pero para la comunicación con un microcontrolador es suficiente con 3 líneas. </span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<ul>
<li><span style="font-family: Verdana,sans-serif;">Linea de transmisión (TxD), pin 3, transmisión de datos<br /><br /></span></li>
<li><span style="font-family: Verdana,sans-serif;">Línea de recepción (RxD), pin 2, recepción de datos<br /><br /></span></li>
<li><span style="font-family: Verdana,sans-serif;">Pin de masa (SG), pin 5, pin a tierra<br /></span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">Las especificaciones del puerto serie están contenidas en la norma RS232, entre las que se pueden destacar están las siguientes:</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: center;">
<span style="font-family: Verdana,sans-serif;"><u style="color: #0b5394;"><b><span style="font-size: large;">El baudio</span></b></u> </span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">Un dato importante a tener en cuenta en cualquier comuniación es la velocidad de transmisión, que es la cantidad de información enviada por la línea de transmisión en la unidad de tiempo.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">Hay distintas unidades para expresar esta medida, la más utilizada es el Baudio, que es proporcional a los Bits/segundo (bps), definidos como el número de bits de información enviados por un segundo.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">La velocidad a la que pueden trabajar los puertos COM de una PC está normalizada a 75, 150, 300, 600, 1200, 2400, 4800, 9600 Baudios. Estos valores son demasiado pequeños para los estándares de hoy en día, pero suficientemente rápidos para bastantes aplicaciones.<br /><br /><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: center;">
<span style="font-family: Verdana,sans-serif;"><u style="color: #0b5394;"><span style="font-size: large;"><b>Niveles lógicos RS232</b></span></u></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">Existen requisitos en cuanto a niveles lógicos que debe cumplir una transmisión serie según la norma RS232, en la siguiente imagen se ilustran estos requisitos (gráfica roja):</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.cursomicros.com/avr/usart-interface-rs-232/images/bmp/old/rs232-waveform.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="http://www.cursomicros.com/avr/usart-interface-rs-232/images/bmp/old/rs232-waveform.gif" width="400" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">Lo destacable o más importante en cuanto a requisitos que debe cumplir una transmisión serie según la norma RS232 es: </span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<ul>
<li><span style="font-family: Verdana,sans-serif;">Los datos se transmiten con lógica negativa, es decir, un voltaje positivo en la conexión representa un 0, mientras que un voltaje negativo representa un 1.<br /><br /></span></li>
<li><span style="font-family: Verdana,sans-serif;">Para garantizar un 0 lógico una línea debe mantener un voltaje entre +3 y +15 volts.<br /><br /></span></li>
<li><span style="font-family: Verdana,sans-serif;">Del mismo modo para un 1 lógico garantizado debe estar entre los -3 y -15 volts.<br /><br /></span></li>
<li><span style="font-family: Verdana,sans-serif;">Los voltajes más usados son +12 volts para el 0 y -12 volts para el 1.<br /><br /></span></li>
<li><span style="font-family: Verdana,sans-serif;">Es importante resaltar que cuando un puerto serie no está transmitiendo, mantiene el terminal de transmisión a 1 lógico, a -12 volts normalmente.<br /><br /></span></li>
<li><span style="font-family: Verdana,sans-serif;">La banda muerta entre los +3 y -3 volts se conoce como la región de transición donde los niveles lógicos no están definidos. Esto significa que cualquier valor entre los +3 y -3 volts puede interpretarse ambiguamente como 0 ó 1</span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span><span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">Si se aumenta la velocidad de transmisión las señales de datos se vuelven susceptibles a pérdidas de voltaje causadas por la capacidad, resistencia e inductancia del cable. Estas pérdidas son conocidas como efectos de alta frecuencia y aumentan con la longitud del cable.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br />Estos valores de tensión proporcionan un amplio margen de seguridad que es de gran utilidad cuando los cables deben pasar por zonas cercanas a elementos que generan interferencia eléctrias: motores, transformadores, equipos de comunicación, etc. Estos elementos unidos a la longitud del cable pueden hacer disminuir la señal hasta en varios voltios, sin que afecte al nivell lógico de la entrada.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: center;">
<div style="text-align: center;">
<u><b><span style="font-size: large;"><span style="color: #0b5394; font-family: Verdana,sans-serif;"> </span></span></b></u></div>
<div style="text-align: center;">
<u><b><span style="font-size: large;"><span style="color: #0b5394; font-family: Verdana,sans-serif;"> </span></span></b></u></div>
<div style="text-align: center;">
<u><b><span style="font-size: large;"><span style="color: #0b5394; font-family: Verdana,sans-serif;">MAX232</span></span></b></u></div>
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /><br /><br /><br />Bueno, como ya mencioné anteriormente los niveles lógicos de la transmisión por la norma RS232 son muy distintos a los niveles lógicos del PIC (señal digital convencional).</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /><br />Aquí surge la pregunta: ¿Cómo vamos a establecer la comunicación entre el PIC y la PC si las salidas de nuestro PIC no cumplen con los niveles lógicos de transmisión de la norma RS232?</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br />Pues la respuesta está en el chip MAX232, este integrado nos permitirá convertir de las señales digitales convencionales del PIC a señales que puedan cumplir con la norma RS232 para una correcta comunicación.<br /><br /><br /><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.febat.com/Elettronica/Elettronica_MAX232.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://www.febat.com/Elettronica/Elettronica_MAX232.gif" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.coolcircuit.com/circuit/rs232_driver/max232.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /><br /></a></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br style="font-family: "Courier New",Courier,monospace;" /></span><span style="color: black; font-family: Verdana,sans-serif; font-size: small;">El MAX232 (Maxim) es un circuito integrado utilizado
para adaptar los niveles requeridos en una conexión donde interviene un
dispositivo que maneja niveles de tensión TTL<strong></strong> (nuestro microcontrolador, por ejemplo) y otro capaz de trabajar bajo los parámetros de la norma EIA/TIA 232-E</span><span style="color: black; font-family: Verdana,sans-serif; font-size: small;"><strong></strong></span><span style="color: black; font-family: Verdana,sans-serif; font-size: small;"><strong></strong> y las V.28/V.24. Expresado en lenguaje de tensiones, los niveles TTL<strong></strong> operan entre los 0 y 5Volts y la otra norma, conocida en el mundo técnico como RS-232 (R<strong></strong><strong></strong>ecommended Standard 232<strong></strong><strong></strong>), utiliza tensiones que van desde los -12Volts a los +12Volts. Este circuito integrado el MAX232<strong></strong>) está especialmente diseñado para trabajar en equipos que utilicen bajos niveles de tensión (5Volts) y requiere de muy pocos componentes externos para lograr un funcionamiento óptimo.</span></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<br /><br /><span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: center;">
<div style="text-align: center;">
<span style="font-size: large;"><u style="color: #0b5394;"><b><span style="font-family: Verdana,sans-serif;">Conexión Puerto RS232 y PIC</span></b></u></span></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">Como ya mencioné con anterioridad para realizar la comunicación con un microcontrolador tan solo se necesitan 3 pines del conector DB9, estas son:</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<ul>
<li><span style="font-family: Verdana,sans-serif;">Pin de transmisión (TxD)<br /></span></li>
<li><span style="font-family: Verdana,sans-serif;">Pin de recepción (RxD)<br /></span></li>
<li><span style="font-family: Verdana,sans-serif;">Pin de masa (SG)<br /><br /></span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">La siguiente imagen es un esquema de la conexión para la comunicación entre la PC y el microcontrolador, como mencione anteriormente, las señales digitales del PIC primero deben ir al MAX232 para convertirlas en señales que cumplan con la norma RS232 luego ya saliendo del MAX232 pueden ir hacia la PC, de igual manera la PC no se comunica directamente con el PIC porque no se "entenderían", es por eso que debe pasar primero la señal por el MAX232, luego de ahí al microcontrolador.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /><br /></span><span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.iearobotics.com/proyectos/cuadernos/ct1/images/max232-conex.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="281" src="http://www.iearobotics.com/proyectos/cuadernos/ct1/images/max232-conex.jpg" width="400" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br />Se pueden encontrar bastantes librerías en la web sobre la comunicación serial PIC-PC para programar el PIC y realizar las pruebas. Es difícil realizar un programa relacionado a este tema desde 0 ya que se trata con temas complejos y de estándares de comunicación, es por eso que estas librerías de comunicación facilitan mucho el trabajo y solo es cuestion de llamar a las subrutinas de esas librerías para que se encargen de todo ese trabajo "sucio", obviamente es necesario incluir esas librerias de comunicación dentro del programa que estamos desarrollando.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">Luego de construir el software y el circuito se puede probar la comunicación mediante un programa que levante sesiones seriales. Yo he usado programas como Hyperterminal (en Windows XP) o Secure CRT (en Windows 7) pero si estas trabajando en Ubuntu puedes instalar el programa PuTTY SSH Client, es muy sencillo de manejar y si me ha servido.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br />Para levantar una sesión serial en Putty SSH Client tan solo tienes que seleccionar la opción Serial de la pantalla de inicio del programa, y elegir las demás opciones como velocidad de transmisión de los datos (9600 baudios). Esta es una captura de pantalla que saqué de mi PC.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7dxrQIfY4aiDoKyH7KkUGhlG4Qyefn7fIIYINmJpr-MAOD4bW63zNAmXjat6DJeK4i5bLZwsYV1L7B4LzsrlCJE571BORbYZqu7n0qCRvRZYS0hP2sY0gSBwiGWdZWel4ChJe1alcZ5ax/s1600/p01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="395" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7dxrQIfY4aiDoKyH7KkUGhlG4Qyefn7fIIYINmJpr-MAOD4bW63zNAmXjat6DJeK4i5bLZwsYV1L7B4LzsrlCJE571BORbYZqu7n0qCRvRZYS0hP2sY0gSBwiGWdZWel4ChJe1alcZ5ax/s400/p01.png" width="400" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /><br /><br /></span><span style="font-family: Verdana,sans-serif;">Es muy importante que tengas conectado el puerto DB9 a la PC y al MAX232, osea todo listo y conectado a la hora de abrir la sesión serial en Putty SSH Client para evitar problemas de que no encuentra el puerto.</span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;"><br /><br />Para los que usan Hyperterminal o Secure CRT el procedimiento es muy similar.<br /> </span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">Esto es todo!<br /><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Verdana,sans-serif;">Saludos!</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com1tag:blogger.com,1999:blog-6845988839185922136.post-52190855496681713532012-05-16T23:19:00.000-07:002012-05-16T23:19:08.949-07:00Arquitecturas<div style="text-align: center;">
<b><span style="color: #0b5394; font-family: Times,"Times New Roman",serif; font-size: x-large;">Arquitecturas de Microcontroladores</span></b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Courier New",Courier,monospace;"><br /><br />Existen 2 tipos de arquitecturas con las cuales trabajan algunos microcontroladores, es obvio que no se puede manipular, editar o escoger con cual tipo de arquitectura queremos contar en nuestro microcontrolador, este tipo de cosas viene de fábrica y no es posible cambiarla.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
</div>
<div style="text-align: center;">
<u><span style="font-size: large;"><b style="font-family: Times,"Times New Roman",serif;">Arquitectura Von Neumann</b></span></u></div>
<div style="text-align: center;">
<br /><br /><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://r-luis.xbot.es/pic1/imagen/newman.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="126" src="http://r-luis.xbot.es/pic1/imagen/newman.gif" width="320" /></a></div>
<div style="text-align: justify;">
<br /><span style="font-family: "Courier New",Courier,monospace;"><br /> </span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Courier New",Courier,monospace;">Dispone de una sola memoria principal
donde se almacenan datos e instrucciones de forma indistinta. A dicha
memoria se accede a través de un sistema de buses único (direcciones,
datos y control). </span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="font-family: Times,"Times New Roman",serif; text-align: center;">
<u><b><span style="font-size: large;">Arquitectura Harvard </span></b></u></div>
<div style="font-family: Times,"Times New Roman",serif; text-align: center;">
<br /></div>
<div style="font-family: Times,"Times New Roman",serif; text-align: center;">
<br /></div>
<div style="font-family: Times,"Times New Roman",serif; text-align: center;">
<br /></div>
<div style="font-family: Times,"Times New Roman",serif; text-align: center;">
<u><b><span style="font-size: large;"></span></b></u></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://r-luis.xbot.es/pic1/imagen/harvard.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="128" src="http://r-luis.xbot.es/pic1/imagen/harvard.gif" width="400" /></a></div>
<div style="font-family: Times,"Times New Roman",serif; text-align: center;">
<u><b><span style="font-size: large;"><br /></span></b></u></div>
<br />
<div style="text-align: justify;">
<span style="font-family: "Courier New",Courier,monospace;">Dispone de dos memorias independientes, una
que contiene sólo instrucciones, y otra que contiene sólo datos. Ambas
disponen de sus respectivos sistemas de buses de acceso y es posible
realizar operaciones de acceso (lectura o escritura) simultáneamente en
ambas memorias, ésta es la estructura para los PIC's.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Courier New",Courier,monospace;"></span></div>
<div style="text-align: justify;">
<span style="font-family: "Courier New",Courier,monospace;"></span></div>
<div style="text-align: justify;">
<span style="font-family: "Courier New",Courier,monospace;"></span></div>
<div style="text-align: justify;">
<span style="font-family: "Courier New",Courier,monospace;"></span></div>
<div style="text-align: justify;">
<span style="font-family: "Courier New",Courier,monospace;"><br /><br /> </span></div>
<div style="text-align: justify;">
<big> <span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;">Tradicionalmente los microprocesadores se basan en la estructura
de Von Neumann, como la de la figura siguiente, que se caracteriza por disponer de una
única memoria principal en la que se almacenan los datos y las instrucciones. A esta
memoria se accede a través de un sistema de buses único:<br /><br /></span></span></big><span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;">
</span></span><ul style="font-family: "Courier New",Courier,monospace;">
<li><span style="font-size: small;">Bus de datos</span></li>
<span style="font-size: small;">
</span>
<li><span style="font-size: small;">Bus de direcciones</span></li>
<li><span style="font-size: small;">Bus de control </span></li>
</ul>
<span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;"><br /></span></span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div class="separator" style="clear: both; font-family: "Courier New",Courier,monospace; text-align: center;">
<span style="font-size: small;"><a href="http://www.terra.es/personal/fremiro/images/VonNeu.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="281" src="http://www.terra.es/personal/fremiro/images/VonNeu.gif" width="640" /></a></span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<div align="JUSTIFY">
<span style="font-size: small;">El modelo Harvard , representado en la figura siguiente, dispone
de dos memorias:<br /><br /></span></div>
<span style="font-size: small;">
</span><ul>
<li><span style="font-size: small;">Memoria de datos</span></li>
<li><span style="font-size: small;">Memoria de Programa</span></li>
</ul>
<span style="font-size: small;">
</span><div align="JUSTIFY">
<span style="font-size: small;"><br /><br />Además cada memoria dispone de su respectivo bus, lo que permite,
que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la
de instrucciones. Como los buses son independientes éstos pueden tener distintos
contenidos en la misma dirección.</span></div>
<div align="JUSTIFY">
<br /></div>
<div align="JUSTIFY">
<br /></div>
<div align="JUSTIFY">
<br /></div>
<div align="JUSTIFY">
<br /></div>
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div class="separator" style="clear: both; font-family: "Courier New",Courier,monospace; text-align: center;">
<span style="font-size: small;"><a href="http://www.terra.es/personal/fremiro/images/Harvard.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="http://www.terra.es/personal/fremiro/images/Harvard.gif" width="640" /></a></span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;">Saludos!</span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;">
<span style="font-size: small;"> </span></div>Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com0tag:blogger.com,1999:blog-6845988839185922136.post-1243895074653177742012-05-16T21:43:00.002-07:002012-05-16T21:53:08.898-07:00Memoria del programa<div style="text-align: center;">
<b><span style="color: #444444; font-family: Verdana,sans-serif; font-size: x-large;">Memoria de programa (PIC)</span></b></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: center;">
<b><span style="color: #444444; font-family: Verdana,sans-serif; font-size: x-large;"> </span></b></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
El <span class="IL_AD" id="IL_AD9">microcontrolador</span> está diseñado para que en su memoria de <span class="IL_AD" id="IL_AD10">programa</span> se almacenen todas las <span class="IL_AD" id="IL_AD4">instrucciones</span> del programa de control. Ya que el contenido del programa siempre es el mismo, pues este debe estar grabado en forma "permanente".</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Existen algunos <span class="IL_AD" id="IL_AD7">tipos de</span> memoria adecuados para soportar estas <span class="IL_AD" id="IL_AD5">funciones</span>, de las cuales se citan las siguientes:</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /><br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
- <u>ROM</u> con máscara: se graba mediante el uso de máscaras. Sólo es recomendable para series muy grandes debido a su elevado coste.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
- <u>EPROM</u>: se graba eléctricamente con un
programador controlador por un PC. Disponen de una ventana en la parte
superior para someterla a luz ultravioleta, lo que permite su borrado.
Puede usarse en fase de diseño, aunque su coste unitario es elevado.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
- <u>OTP</u>: su proceso de grabación es similiar al
anterior, pero éstas no pueden borrarse. Su bajo coste las hacen idóneas
para productos finales.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
- <u>EEPROM</u>: también se graba eléctricamente, pero su
borrado es mucho más sencillo, ya que también es eléctrico. No se
pueden conseguir grandes capacidades y su tiempo de de escritura y su
consumo es elevado.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
- <u>FLASH</u>: se trata de una memoria no volátil, de <span class="IL_AD" id="IL_AD3">bajo consumo</span>, que se puede <span class="IL_AD" id="IL_AD1">escribir</span> y borrar en <span class="IL_AD" id="IL_AD2">circuito</span> al igual que las EEPROM, pero que suelen disponer de mayor capacidad que estas últimas.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Son recomendables aplicaciones en las que es necesario modificar el programa a lo largo de la vida del producto. Por sus mejores prestaciones, está sustituyendo a la memoria EEPROM para <span class="IL_AD" id="IL_AD6">contener</span> instrucciones.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
De esta forma Microchip comercializa dos microcontroladores prácticamente iguales que sólo se diferencian en que la memoria de programa de uno de ellos es tipo EEPROM y la <span class="IL_AD" id="IL_AD11">del otro</span> tipo Flash. Se trata del PIC16C84 y el PIC16F84, respectivamente.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
En la figura siguiente se observan los tres bloques en los que esta
dividido el Mapa de Memoria de programa del PIC, los 8 niveles de stack,
los vectores de memoria como el Reset, o el de interrupcion,ademas de
cada una de las paginas de la memoria, los vectores El que lleva el
control de el uso de la memoria es el PC (Program Counter) de 13 bit
capaz de accesar una memoria de 8Kx14 bit.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br />
<br />
<br />
<br /></div>
<div class="separator" style="clear: both; font-family: Arial,Helvetica,sans-serif; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQfahcDzh0aRQI8Y2Pf1pBd4R1r4-QCUNsYd6ZzHdO1semoxuWHrrDsS97YXH-BZdA3r6qQJkyCGxy8gID0HmT9f9kH2lKY0edgp8vJT3q-vnmiBD5yXv3oFWvikJCMQ8jQZlM60NgI_fC/s1600/memoria_de_programa.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<a href="http://perso.wanadoo.es/pictob/imagenes/memprog.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="http://perso.wanadoo.es/pictob/imagenes/memprog.gif" width="355" /></a></div>
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br />
<br />
<br />
El Vector de interrupcion es el 0004H, ahi es la parte del programa a donde el micro ira despues de cualquier interrupcion. </div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: center;">
<span style="font-size: large;"><b>Memoria de programa externa</b></span><br />
<span style="font-size: large;"><b><br /><br /> </b></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: center;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<span style="font-size: large;"><span style="font-size: small;">En clase comentabamos sobre si había posibilidad de expandir la memoria de programa de los microcontroladores, investigando encontré que se puede conectar una memoria externa para poder realizar el almacenamiento ahí.<br /><br /></span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<span style="font-size: large;"><span style="font-size: small;">Se trata de la memoria </span></span>24LC256A fabricada por Microchip. <span style="font-size: large;"><span style="font-size: small;"> </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<span style="font-size: large;"><span style="font-size: small;"><br />El pinout de la memoria es el siguiente:<br /><br /><br /><br /></span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div class="separator" style="clear: both; font-family: Arial,Helvetica,sans-serif; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz3TANLEjCEF8h5RNqNR_BjAfan8LXuJ__hfe1S3_rPdnqMigsgoNSVeMs2yXPQ8Ak0bW9ss9KKKpA8CBEByorx00Fnr4iK1q4BPYqKIl8HRJjwBSRc39TL0XpZDKlK4A8MgilSevkrNg0/s1600/chip.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="131" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz3TANLEjCEF8h5RNqNR_BjAfan8LXuJ__hfe1S3_rPdnqMigsgoNSVeMs2yXPQ8Ak0bW9ss9KKKpA8CBEByorx00Fnr4iK1q4BPYqKIl8HRJjwBSRc39TL0XpZDKlK4A8MgilSevkrNg0/s200/chip.png" width="200" /></a></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<span style="font-size: large;"><span style="font-size: small;"><br /><br /><br /></span><b> </b></span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif;">
Esta es una memoria que tiene un tamaño de 32 Kbytes, su estructura
está organizada en palabras de 1 byte (8 bits) de longitud, por lo tanto
dispondremos en total de 32x8=256 kbits para almacenar información.</div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br />
La característica principal de esta memoria es que implementa el
interfaz I2C para su comunicación serie con otros dispositivos
electrónicos.</div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: center;">
<span style="font-size: large;"><br /><br /><span style="color: #444444;">Protocolo I2C </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: center;">
<span style="font-size: large;"><br /></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: center;">
<span style="font-size: large;"><br /></span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif;">
El protocolo I2C fue desarrollado por la empresa Philips,
ahora llamada NXP, hace ya bastante tiempo impulsado por la necesidad
en el mercado de establecer una interfaz que comunicara entre si varios
dispositivos electrónicos y que ahorrara el máximo numero de patillas en
los componentes, hay mucha información en la red sobre este protocolo
por lo que solo voy ha citar a modo de resumen las características que
considero mas relevantes acerca de este protocolo. Al final del artículo
pondré los enlaces a varias fuentes para el que quiera profundizar en
este protocolo de comunicación. </div>
<h4 style="font-family: Arial,Helvetica,sans-serif;">
<br /><br />
Características básicas del protocolo I2C<br /><br /><br /></h4>
<ul style="font-family: Arial,Helvetica,sans-serif;">
<li>El bus de comunicación utiliza dos cables. Uno para transmitir los
datos (SDA) y otro para la señal de reloj (SCL). Ambas líneas se tienen
que conectar a la alimentación (Vcc) a través de resistencias Pull-UP
(en el esquema del ejemplo se muestra el conexionado). Además la masa de
los componentes que se interconexionan entre si debe de ser común. <br /><br /><br /></li>
<li>El protocolo de comunicación es del tipo Maestro-Esclavo, aunque el
protocolo permite que haya varios maestros, lo normal es que solo haya
uno, el dispositivo que hace de maestro es el que gobierna la
comunicación y es el que controla la señal de reloj (SCL). Los
dispositivos que hacen de esclavos responden a las peticiones del
maestro.<br /><br /><br /><br /> </li>
<li>Cada dispositivo conectado al bus se identifica por una única
dirección, el protocolo admite utilizar 7 ó 10 bits para el
direccionamiento, aunque lo normal es que sean siete.</li>
</ul>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Sería muy buena practica implementar este tipo de memorias externas para almacenar código de nuestros programas (aunque no se ocupe), con fin didáctico.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Les dejo una liga en la que realizan la conexión y comunicación de un PIC con esta memoria, la comunicación la realizan en C, y con el compilador CCS:<br />
<br />
<a href="http://www.blogger.com/goog_1689303497">http://www.aquihayapuntes.com/indice-practicas-pic-en-c/comunicacion-serie-i2c-entre-pic-y-eeprom-24lc256a.html</a><a href="http://www.aquihayapuntes.com/indice-practicas-pic-en-c/comunicacion-serie-i2c-entre-pic-y-eeprom-24lc256a.html"><br /></a></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
También encontré otra página donde realizan la conexión y comunicación de una memoria de esta misma familia, pero con un Arduino, para más detalles pueden visitarla:<br />
<br />
<a href="http://www.hispavila.com/3ds/atmega/i2c-eeprom.html">http://www.hispavila.com/3ds/atmega/i2c-eeprom.html</a></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Saludos! </div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="text-align: center;">
<br /></div>Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com0tag:blogger.com,1999:blog-6845988839185922136.post-48784434426241697182012-05-16T20:46:00.002-07:002012-05-16T20:48:12.326-07:00Uso del relé (Laboratorio)<div style="text-align: center;">
<span style="color: #444444; font-family: Arial,Helvetica,sans-serif; font-size: x-large;"><b>Uso del relé</b></span></div>
<div style="text-align: center;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Para esta entrada decidí hacer un mini tutorial de cómo conectar un relevador. La mayoría de mis compañeros de domótica utilizará este componente para switchear sus circuitos y poder hacer uso de tensiones de 110v o más.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
En una entrada anterior realicé un circuito de potencia pero no expliqué el funcionamiento y las distintas formas de conectar el relevador.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
Vamos a ver primero la definición formal del relevador.</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<div style="color: black; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
El relé o relevador es un dispositivo electromecánico.
Funciona como un interruptor controlado por un circuito eléctrico en el
que, por medio de una bobina y un electroimán,
se acciona un juego de uno o varios contactos que permiten abrir o
cerrar otros circuitos eléctricos independientes. Fue inventado por Joseph Henry en 1835.</div>
<div style="color: black; font-family: Arial,Helvetica,sans-serif; text-align: justify;">
<br /></div>
<span style="color: black; font-family: Arial,Helvetica,sans-serif;">
Dado que el relé es capaz de controlar un circuito de salida de mayor
potencia que el de entrada, puede considerarse, en un amplio sentido,
como un amplificador eléctrico. Como tal se emplearon en telegrafía, haciendo la función de repetidores que generaban una nueva señal con corriente procedente de pilas locales a partir de la señal débil recibida por la línea.</span><br />
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://upload.wikimedia.org/wikipedia/commons/a/a0/Relay_principle_horizontal_new.gif?uselang=es" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="177" src="http://upload.wikimedia.org/wikipedia/commons/a/a0/Relay_principle_horizontal_new.gif?uselang=es" width="200" /></a></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<br />
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Al relevador lo componen 2 pines de la bobina, y 3 pines de es el interruptor de 2 posiciones, en la bobina se conecta la corriente con la que accionaremos el interruptor, en la parte del interruptor existe un pin llamado común que es el que se moverá para cerrar o abrir el circuito. En el GIF anterior se aprecia el funcionamiento del relé, se puede observar que el pin común sería la lámina de enmedio porque es la que abre o cierra el circuito.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">La bobina del relevador se polariza con distintas corrientes dependiendo de las especificaciones del relavador </span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">Existen distintos tipos de relevadores que varían en la cantidad de los pines, las corrientes que soportan los pines, tiempos de activación, etc.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span><br />
<h4 style="font-family: Arial,Helvetica,sans-serif; text-align: center;">
<span style="font-size: large;"><span class="mw-headline" id="Rel.C3.A9s_electromec.C3.A1nicos"><br />Relés electromecánicos<br /><br /></span></span></h4>
<ul style="font-family: Arial,Helvetica,sans-serif;">
<li><b>Relés de tipo armadura</b>: pese a ser los más antiguos siguen
siendo lo más utilizados en multitud de aplicaciones. Un electroimán
provoca la basculación de una armadura al ser excitado, cerrando o
abriendo los contactos dependiendo de si es NA (normalmente abierto) o
NC (normalmente cerrado).</li>
</ul>
<ul style="font-family: Arial,Helvetica,sans-serif;">
<li><b>Relés de núcleo móvil</b>: a diferencia del anterior modelo estos
están formados por un émbolo en lugar de una armadura. Debido a su
mayor fuerza de atracción, se utiliza un solenoide para cerrar sus contactos. Es muy utilizado cuando hay que controlar altas corrientes.</li>
<li><b>Relé tipo <i>reed</i> o de lengüeta</b>: están constituidos por
una ampolla de vidrio, con contactos en su interior, montados sobre
delgadas láminas de metal. Estos contactos conmutan por la excitación de
una bobina, que se encuentra alrededor de la mencionada ampolla.</li>
</ul>
<ul style="font-family: Arial,Helvetica,sans-serif;">
<li><b>Relés polarizados o biestables</b>: se componen de una pequeña armadura, solidaria a un imán
permanente. El extremo inferior gira dentro de los polos de un
electroimán, mientras que el otro lleva una cabeza de contacto. Al
excitar el electroimán, se mueve la armadura y provoca el cierre de los
contactos. Si se polariza al revés, el giro será en sentido contrario,
abriendo los contactos ó cerrando otro circuito.</li>
</ul>
<h4 style="font-family: Arial,Helvetica,sans-serif; text-align: center;">
<span style="font-size: large;"><span class="mw-headline" id="Rel.C3.A9_de_estado_s.C3.B3lido"><br /><br />Relé de estado sólido<br /></span></span></h4>
<div style="font-family: Arial,Helvetica,sans-serif;">
Se llama relé de estado sólido a un circuito híbrido, normalmente
compuesto por un optoacoplador que aísla la entrada, un circuito de
disparo, que detecta el paso por cero de la corriente de línea y un
triac o dispositivo similar que actúa de interruptor de potencia. Su
nombre se debe a la similitud que presenta con un relé electromecánico;
este dispositivo es usado generalmente para aplicaciones donde se
presenta un uso continuo de los contactos del relé que en comparación
con un relé convencional generaría un serio desgaste mecánico, además de
poder conmutar altos amperajes que en el caso del relé electromecanico
destruirian en poco tiempo los contactos. Estos relés permiten una
velocidad de conmutación muy superior a la de los relés
electromecánicos.<span style="font-size: large;"><span class="mw-headline" id="Rel.C3.A9_de_corriente_alterna"> </span></span><br />
<br />
<span style="font-size: large;"><span class="mw-headline" id="Rel.C3.A9_de_corriente_alterna"> </span></span></div>
<h4 style="font-family: Arial,Helvetica,sans-serif; text-align: center;">
<span style="font-size: large;"><span class="mw-headline" id="Rel.C3.A9_de_corriente_alterna">Relé de corriente alterna</span><span class="mw-headline" id="Rel.C3.A9_de_corriente_alterna"><br /> </span></span></h4>
<div style="font-family: Arial,Helvetica,sans-serif;">
Cuando se excita la bobina de un relé con corriente alterna, el flujo magnético en el circuito magnético,
también es alterno, produciendo una fuerza pulsante, con frecuencia
doble, sobre los contactos. Es decir, los contactos de un relé conectado
a la red, en algunos lugares, como varios países de Europa y
latinoamérica oscilarán a 50 Hz y en otros, como en Estados Unidos lo harán a 60 Hz. Este hecho se aprovecha en algunos timbres y zumbadores, como un activador a distancia. En un relé de corriente alterna se modifica la resonancia de los contactos para que no oscilen.<br />
<br />
</div>
<h4 style="font-family: Arial,Helvetica,sans-serif; text-align: center;">
<span style="font-size: large;"><span class="mw-headline" id="Rel.C3.A9_de_l.C3.A1minas">Relé de láminas<br /></span></span></h4>
<div style="font-family: Arial,Helvetica,sans-serif;">
Este tipo de relé se utilizaba para discriminar distintas frecuencias. Consiste en un electroimán excitado con la corriente alterna de entrada que atrae varias varillas sintonizadas para resonar
a sendas frecuencias de interés. La varilla que resuena acciona su
contacto; las demás, no. Los relés</div>
<div style="font-family: Arial,Helvetica,sans-serif;">
de láminas se utilizaron en aeromodelismo y otros sistemas de telecontrol.</div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<i><b>Separación eléctrica</b></i> </div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
Debido a que en mi proyecto usaré relevadores para accionar voltajes de 110v dudé en usar mi Arduino porque pensaba que las altas tensiones podrían dañar mi tarjeta, pero según la página de fabricantes de algunos relevadores existe una separación eléctrica muy confiable para aislar la corriente de accionamiento (circuito de control) con la corriente de alta tensión (circuito de potencia).</div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
Bien, lo que yo quiero explicar es la manera de conectar el relevador, las terminales de la bobina del relevador serán nuestras entradas (salidas del Arduino o PIC, según lo que se esté usando). </div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
Para accionar el relevador normalmente se utiliza un arreglo de transistor y resistencias, también se puede realizar mediante el integrado ULN2003, pero en este caso yo utilicé un transistor (BD135).</div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif;">
En el diagrama podemos ver que la salida de Arduino la conectamos a la base del transistor (pin 3) posteriormente la corriente que saldrá hacia la bobina del relevador sale del colector del transistor (pin2), también del mismo colector se polariza la otra terminal de la bobina.<br />
</div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgujKwqtvLBzYwVXOoUzJaQv3t5ShwfBzoNBrF9ohyphenhyphenvI4eRuO2NUMlff0_5P4wxL-OFLnnhsaEjwpB7CUyPWDoI_mGLo58p8p2JenxABLM8YlRjVBC5EPKLDTtjzyLswtLRfiKeO1YqUQ6y/s1600/arduinos.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgujKwqtvLBzYwVXOoUzJaQv3t5ShwfBzoNBrF9ohyphenhyphenvI4eRuO2NUMlff0_5P4wxL-OFLnnhsaEjwpB7CUyPWDoI_mGLo58p8p2JenxABLM8YlRjVBC5EPKLDTtjzyLswtLRfiKeO1YqUQ6y/s640/arduinos.png" width="640" /></a></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Finalmente en la parte de switcheo tenemos de 2 sabores, si quieres que la salida de tu circuito, en mi caso un foco esté normalmente apagado o si quieres que esté normalmente encendido.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">Para saber en que posición está normalmente tu relevador debes checar con un probador de continuidad entre el pin común y los otros 2 pines de salida del relevador.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Una parte de tu probador de continuidad (función del multímetro) debe ir en el pin común, la otra terminal del probador debe ir en alguno de los pines de salida, sabrás cuál es el pin que deberás conectar a corriente cuando tu multímetro emita un sonido o no, eso ya depende de tu configuración, en mi caso con el pin que emitia el sonido lo descarté porque significaba que estaba normalmente cerrado, y ahí simplemente ese pin (con el que emite el sonido) se descarta y no se conecta a nada. </span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">Yo por ejemplo chequé continuidad y obtuve cual es el pin que debia conectar a 110v para que cada vez que energizara la bobina, se activara el relevador y el foco encendiera.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span><br />
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Saludos!</span><br />
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">,</span><br />
<br />Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com0tag:blogger.com,1999:blog-6845988839185922136.post-78672140092654974872012-05-08T09:39:00.000-07:002012-05-10T03:06:51.340-07:00<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<b style="color: #073763;"><span style="font-family: Arial,Helvetica,sans-serif; font-size: x-large;">Circuito de control y de potencia</span></b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<div style="text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Mi proyecto de Móviles (es el mismo para Integrado) es conformado por 2 circuitos escenciales: el circuito de control y el circuito de potencia.</span></span></div>
<span style="font-size: x-small;"><br /></span><br />
<br />
<div style="text-align: center;">
<span style="font-size: x-large;"><b><span style="font-family: Arial,Helvetica,sans-serif;">Circuito de control</span></b></span></div>
</div>
<div style="text-align: justify;">
<br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">El circuito de control lo defino como el circuito que hará la conmutación o tomará el control del circuito de potencia, en mi proyecto el circuito de control es el arduino porque es el que conmuta al relevador para que pueda encender el foco (110v).</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Noten que en el circuito estoy usando el pin 8 de Arduino como salida, para hacer esto deben configurar dicho pin como tal en el código de su programa. </span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Para alimentar el circuito de control pueden usar como fuente de alimentación al Arduino, deben tener cuidado de no hacer corto circuito en el proto o donde vayan a implementar el circuito ya que pueden dañar su placa Arduino.</span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">En el siguiente diagrama yo estoy alimentando el circuito desde Arduino.</span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><b>Nota</b>: el LED del circuito está mal polarizado, ánodo lo puse hacia tierra y viceversa, solo es cuestión de que inviertan la polaridad del LED respecto a mi diagrama.</span></span></div>
<div style="text-align: justify;">
<br />
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<div style="font-family: Arial,Helvetica,sans-serif;">
<i>(Circuito de control, clickear para ampliar)</i></div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCH3HpTz8GKOE7mt4x78cC9l69sOWHLhE6QPljo4cw771bhRtiUPuWfQAMq42q-KCQGDszf2qilX8Yr1Z_6fnGg2oh3-VY9YUixTZ6oStsCzE6Mhe2Dct7mcxBc8-cmU6DGJutp0sT4fqG/s1600/control.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCH3HpTz8GKOE7mt4x78cC9l69sOWHLhE6QPljo4cw771bhRtiUPuWfQAMq42q-KCQGDszf2qilX8Yr1Z_6fnGg2oh3-VY9YUixTZ6oStsCzE6Mhe2Dct7mcxBc8-cmU6DGJutp0sT4fqG/s640/control.png" width="640" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br />
<br /></div>
<div style="text-align: justify;">
<div style="text-align: center;">
<span style="font-size: x-large;"><b><span style="font-family: Arial,Helvetica,sans-serif;">Circuito de potencia</span></b></span></div>
<br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">El circuito de potencia es aquel que se encarga de manejar componentes que ocupan altas tensiones, por ejemplo en mi proyecto el circuito de potencia será el que está del lado del foco de 120v y del relevador.</span></span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Es muy importante que exista un aislante entre el circuito de control y el circuito de potencia ya que si llega a haber contacto entre estos 2 se pueden dañar los componentes que existan en el circuito de control. En esto no debe haber problema si se realizan las conexiones adecuadamente (cuidar no cruzar los pines del relevador, ya que está muy pegada la parte de baja tensión con la de alta tensión). </span></span><br />
<br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Material para realizar el circuito de potencia (todo lo conseguí en Steren):</span></span><br />
<br />
<br />
<div style="text-align: center;">
</div>
<div style="text-align: center;">
<span style="color: #666666; font-family: Arial,Helvetica,sans-serif; font-size: x-large;">Transistor BD135</span><br />
<br />
<br />
<br />
<br /></div>
</div>
<div style="text-align: justify;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.google.com.mx/url?source=imglanding&ct=img&q=http://www.tecnoastro.es/Fotos/fotos_tecnologia/componentes_bd-135.jpg&sa=X&ei=o4qrT6y7D8rM2AW9o_CmAg&ved=0CAkQ8wc&usg=AFQjCNGJ80reQu7kfx6g3FQpCma8hfPwzA" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.google.com.mx/url?source=imglanding&ct=img&q=http://www.tecnoastro.es/Fotos/fotos_tecnologia/componentes_bd-135.jpg&sa=X&ei=o4qrT6y7D8rM2AW9o_CmAg&ved=0CAkQ8wc&usg=AFQjCNGJ80reQu7kfx6g3FQpCma8hfPwzA" /></a></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<br />
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Transistor bipolar compuesto por silicio. Consiste en una plaquita de semiconductor con tres regiones consecutivas
de diferente conductibilidad eléctrica los cuales forman dos uniones
n-p-n, las dos regiones extremas tienen un mismo tipo de
conductibilidad, la intermedia, conductibilidad de otro tipo, estas son
llamadas emisor, colector y base. Este es muy difundido en las
industrias por el amplio uso al que es sometido en diversos aparatos
electrónicos.</span></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<div style="text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span></div>
<div style="text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span></div>
<div style="text-align: center;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span></div>
<div style="color: #666666; text-align: center;">
</div>
<div style="color: #666666; text-align: center;">
<span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;">Diodo 1N4004</span></span><br />
<br />
<br />
<br />
<br /></div>
<div style="color: #666666; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.google.com.mx/url?source=imglanding&ct=img&q=http://www.arduinoacademy.com/wp-content/uploads/2011/12/DIODO-SIMBOLO.png&sa=X&ei=SI2rT6GNMofi2gWNnf2mAg&ved=0CAoQ8wc4Pg&usg=AFQjCNHfsB7Gnpn4O_EL4E2azU1VuVppcg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.google.com.mx/url?source=imglanding&ct=img&q=http://www.arduinoacademy.com/wp-content/uploads/2011/12/DIODO-SIMBOLO.png&sa=X&ei=SI2rT6GNMofi2gWNnf2mAg&ved=0CAoQ8wc4Pg&usg=AFQjCNHfsB7Gnpn4O_EL4E2azU1VuVppcg" /></a></div>
<div style="color: #666666; text-align: center;">
</div>
<div style="color: #666666; text-align: center;">
</div>
<div style="color: #666666; text-align: justify;">
<br />
<br />
<br />
<br />
<span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="color: black; font-size: small;">Semiconductor rectificador de corriente, </span></span></span><span style="color: black; font-family: Arial,Helvetica,sans-serif;">deja pasar la corriente en un sentido y no la deja pasar en el sentido contrario, este lo uso para seguridad, para evitar cortos circuitos por polarización errónea.</span><br />
<br />
<br />
<span style="color: black; font-family: Arial,Helvetica,sans-serif;"> </span><span style="color: black; font-family: Arial,Helvetica,sans-serif; font-size: x-large;"><span style="color: black; font-size: small;"> </span></span></div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
</div>
<div style="color: #666666; text-align: center;">
</div>
<div style="color: #666666; text-align: center;">
<span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;">Resistencia 1k ohm</span></span><br />
</div>
<div style="color: #666666; text-align: center;">
<span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span></div>
<div style="color: #666666; text-align: center;">
<span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.google.com.mx/url?source=imglanding&ct=img&q=http://ehutronika.wikispaces.com/file/view/resistencia_1k.jpg/225728436/resistencia_1k.jpg&sa=X&ei=cI6rT56gH6Pg2QXp8dCmAg&ved=0CAkQ8wc&usg=AFQjCNEKZjNeA2rp1QYy5yvAKeWLqZ7hlw" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="111" src="http://www.google.com.mx/url?source=imglanding&ct=img&q=http://ehutronika.wikispaces.com/file/view/resistencia_1k.jpg/225728436/resistencia_1k.jpg&sa=X&ei=cI6rT56gH6Pg2QXp8dCmAg&ved=0CAkQ8wc&usg=AFQjCNEKZjNeA2rp1QYy5yvAKeWLqZ7hlw" width="200" /></a></div>
<div style="color: #666666; text-align: center;">
<span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span><br />
<span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span><br />
<span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span></div>
<div style="color: #666666; text-align: center;">
<span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;"></span></span></div>
<div style="color: #666666; text-align: center;">
<span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;"></span></span></div>
<div style="color: #666666; text-align: center;">
<span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;"></span></span></div>
<div style="color: #666666; text-align: justify;">
<span style="color: black; font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">Oposición al paso de corriente en nuestro circuito, es por eso que va hacia la base de nuestro transistor (ver la imagen del circuito de potencia abajo).</span></span></span><br />
<br />
<br /></div>
<div style="color: #666666; text-align: center;">
<br /></div>
<div style="text-align: center;">
</div>
<div style="color: #666666; text-align: center;">
</div>
<div style="color: #666666; text-align: center;">
<span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;">Relevador (5 pines)</span></span><br />
</div>
<div style="color: #666666; text-align: center;">
<a href="http://www.google.com.mx/url?source=imglanding&ct=img&q=http://www.tu-proyecto.com/Store/img/p/200531-3384-large.jpg&sa=X&ei=h4-rT-GSFoag2QXm0pynAg&ved=0CAoQ8wc47QE&usg=AFQjCNFY6WxynsPK3CAimMfNSEVZM6aIUg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://www.google.com.mx/url?source=imglanding&ct=img&q=http://www.tu-proyecto.com/Store/img/p/200531-3384-large.jpg&sa=X&ei=h4-rT-GSFoag2QXm0pynAg&ved=0CAoQ8wc47QE&usg=AFQjCNFY6WxynsPK3CAimMfNSEVZM6aIUg" width="320" /></a></div>
<div style="color: #666666; text-align: justify;">
</div>
<div style="color: #666666; text-align: justify;">
<br />
<span style="color: black; font-family: Arial,Helvetica,sans-serif;">Dispositivo electromecánico. Funciona como un interruptor
controlado por un circuito eléctrico en el que, por medio de una bobina y un electroimán, se acciona un juego de uno o varios contactos que permiten abrir o cerrar otros circuitos eléctricos independientes. <br /><br />En nuestro caso el relevador será accionado por el Arduino (circuito de control). </span><span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="color: black; font-family: Arial,Helvetica,sans-serif;"> </span></span></span></div>
<div style="text-align: center;">
</div>
<div style="color: #666666; text-align: center;">
<br />
<br />
<br />
<br />
<span style="font-size: x-large;"><span style="font-family: Arial,Helvetica,sans-serif;">Foco de alta tensión </span></span><br />
<br />
<br />
</div>
<div style="color: #666666; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.google.com.mx/url?source=imglanding&ct=img&q=http://www.americahomecenter.com.bo/images/thumbs/0000419_300.jpg&sa=X&ei=qZCrT_W0NInc2AWg2q2mAg&ved=0CAkQ8wc&usg=AFQjCNFE-w4wDkpsIZq7pGXlmp-bCVkWHQ" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://www.google.com.mx/url?source=imglanding&ct=img&q=http://www.americahomecenter.com.bo/images/thumbs/0000419_300.jpg&sa=X&ei=qZCrT_W0NInc2AWg2q2mAg&ved=0CAkQ8wc&usg=AFQjCNFE-w4wDkpsIZq7pGXlmp-bCVkWHQ" width="178" /></a></div>
<div style="color: #666666; text-align: center;">
</div>
<ul>
</ul>
<br />
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">Foco de 60W, salida que accionará el relevador en caso de que Arduino alimenté con 5 volts a la base de nuestro transistor.</span><br />
<br />
<br />
<br /></div>
<div style="text-align: center;">
<i style="font-family: Arial,Helvetica,sans-serif;">(Circuito de potencia, clickear para ampliar)</i><br />
<br /></div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHT97-Q7lf8RP9srFRlkzAKtUbt-GvVhjj-HK8VK-RYmhvwGQeCc9cLbOUq9T55hiJq5lZ5hrQmXNIYAprBVJe2_8PIdof_AOEuXCD6FXlTjYuMS7km7hF4khT4oiL7C4oTFf8VY_WeOOp/s1600/arduinos.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHT97-Q7lf8RP9srFRlkzAKtUbt-GvVhjj-HK8VK-RYmhvwGQeCc9cLbOUq9T55hiJq5lZ5hrQmXNIYAprBVJe2_8PIdof_AOEuXCD6FXlTjYuMS7km7hF4khT4oiL7C4oTFf8VY_WeOOp/s640/arduinos.png" width="640" /></a></div>
<br /></div>
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span><br />
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">La imagen anterior representa el diagrama de potencia, este diagrama puede ser usado por cualquiera que vaya a conmutar corrientes de 110v, en especial todos los de domótica.</span><br />
<span style="font-size: small;"><br /></span><br />
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">Es obvio que no voy a meter un voltaje de 110v al proto, solo lo puse ahí para representar más fácilmente el circuito, para realizar este circuito recomiendo que sea en una placa fenólica tomando en cuenta hacer las líneas conductoras anchas para soportar los 110v. </span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">También es obvio que no alimentaré el led con 110v, lo puse para representar un foco que resista altos voltajes (Fritzing no cuenta con ese componente).</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">Tomé el relevador como uno de 5 pines, como comenté anteriormente cualquiera que vaya usar relevadores en su proyecto puede guiarse con este diagrama solo les recomendaría checar la hoja de datos de sus relevadores.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">Ambos circuitos ya los implementé y funcionaron perfectamente, el circuito de control lo hice tal cual como está en este diagrama, el ciruito de potencia lo realicé parecido, solo que estaba controlando un buzzer de 16 v máximo. Pero el relé realizaba el switcheo perfectamente. </span><br />
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">,</span><br />
<br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">Saludos!</span><br />
<br />
<br /></div>
<div style="text-align: justify;">
<br /></div>Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com2tag:blogger.com,1999:blog-6845988839185922136.post-70994483194858171672012-04-14T21:16:00.035-07:002012-04-16T18:01:24.584-07:00Laboratorio<div style="text-align: center; font-weight: bold; color: rgb(0, 0, 102);"><span style="font-size:130%;"><span style="font-family:arial;">ELABORACIÓN DE PCB's<br /><br /><br /></span></span><div style="text-align: justify;"><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >En una entrada pasada había hablado sobre cómo crear tus archivos PCB desde una herramienta llamada CIRCAD, realicé un tutorial de cómo ma</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >n</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >ejar es</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >e pr</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >o</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >gr</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >ama y de qué manera imprimir el circuito para que pudieramos pasarlo a una tarjeta o placa fenólica</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >.<br /><br />Bueno, en esta entrada continuaré con el tutorial de elaboraci</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >ó</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >n de tarj</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >e</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >tas electrónicas, el resultado es igual a la tarjeta que les mostré en clase cuando presenté mi proyecto PIC.<br /><br />Si no vieron la entrada de mi tutorial CIRCAD pueden visitar este link: <a href="http://triana-integrado.blogspot.mx/2012/03/circad-laboratorio.html">http://triana-integrado.blogspot.mx/2012/03/circad-laboratorio.html</a><br /><br />Retomando el tema anterior, vamos a recordar que al momento de</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" > </span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >im</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >primir el circuito deben hacerlo con la mayor cantidad de tóner posible (configuren las prefer</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >enc</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >ias de su impresora para que arroje más tóner) y también <span style="font-weight: bold;">deben imprimirlo con</span></span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: bold;"> una</span></span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: bold;"> impresora láser (si lo intentan con impresora de inyección de tinta no va a fun</span></span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: bold;">cionar).</span><br /><br />Bien, para poder pasar tu circuito a una placa fenólica es necesario imprimirlo en hojas "especiales" llamadas hojas de transferencia, estas hojas las pueden encontrar en Steren, visiten la siguiente página: <a href="http://www.steren.com.mx/catalogo/prod.asp?f=&sf=&c=&p=2706&desc=hojas-de-transferencia-para-circuitos-impresos">http://www.steren.com.mx/catalogo/prod.asp?f=&sf=&c=&p=2706&desc=hojas-de-transferencia-para-circuitos-impresos</a><br /><br />Pero una recomendación que les doy es que primero lo i</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >mpri</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >man </span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >en hojas de máquina normales, esto para poder asegurarnos que nuestros componentes </span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >el</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >ectró</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >nicos encajen a la perfección con los pads que hayamos dibujado (tener las </span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >med</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >i</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >das correctas), yo también lo hago para saber de que tamaño salen las líneas ya que si son muy </span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >delgadas el cloruro férrico (solución para retirar el cobre no deseado de la placa) las va a des</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >apar</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >ecer, y por el contrario si las líneas son muy anchas a la hora de pasar el circuito a la placa est</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >as se tocarán y harán un corto circuito o producirán u</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >n ma</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >l funcionamiento.<br /><br />Así que es mejor primero imprimirlo en hoja de máquina, lue</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >go hacer las pruebas que queramos, verificar que todo "encaje" y al final imprimirlo en la hoja de </span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >transferencia.<br /><br />Yo seguiré el tutorial con el circuito de mi proyecto PIC (ta</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >mbién el tutorial que hicé para CIRCAD lo realicé en base a mi proyecto PIC).<br /><br /><span style="font-size:130%;"><span style="font-weight: bold; color: rgb(102, 102, 102);"><br /></span></span></span></span></span><div style="text-align: center;"><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-size:130%;"><span style="font-weight: bold; color: rgb(102, 102, 102);">Planchar el circuito sobre la placa fenólica</span></span></span></span></span><br /></div><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-size:130%;"><span style="font-weight: bold; color: rgb(102, 102, 102);"><br /></span></span><br />Bien, después de imprimir mi circuito en hoja de máquina y verificar que los componente electrónicos encajaran correctamente, ahorá si imprim</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >í so</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >bre la</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" > hoja</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" > de transferencia. El paquete de hojas cuenta con las instrucciones necesarias, </span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >pero lo</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" > más relevante en este paso es que se debe imprimir sobre la cara que no es brillo</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >sa (</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >del</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" > lado opaco), y nuevamente les repito con la mayor cantidad de tóner posible para log</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >rar una b</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >uena transferencia a la hora de plancharlo.<br /><br />Mis impresiones sobre la hoja de máquina y la hoja de transfere</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >ncias quedaron así:<br /><br /><br /><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPredXlGIwd8Sci11F_853oKpXOF2qcpKlwhs8YMOpo19rl91LRCz1BNITXjTP9JmqREup25CXJE_l0C4mknvCRv68fRg4TLloFAheT6WiMbmTIFKsWLGKfT9q3T9R4DkKuaxo8Zom1f_M/s1600/01.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPredXlGIwd8Sci11F_853oKpXOF2qcpKlwhs8YMOpo19rl91LRCz1BNITXjTP9JmqREup25CXJE_l0C4mknvCRv68fRg4TLloFAheT6WiMbmTIFKsWLGKfT9q3T9R4DkKuaxo8Zom1f_M/s400/01.jpg" alt="" id="BLOGGER_PHOTO_ID_5732120488947278482" border="0" /></a></span></span></span></span></span></span><br /><br />La hoja de abajo, obviamente es la hoja de transferencia.<br /><br />Después de imprimir sobre la hoja de transferencia el siguiente paso es pasar el circuito a la placa fenólica.<br /><br />La placa fenólica la pueden encontrar también en Steren, para esto deben comprar la placa que no sea perforada, debe ser lisa, similar a la de este link: <a href="http://www.steren.com.mx/catalogo/prod.asp?f=9&sf=115&c=1044&p=2516">http://www.steren.com.mx/catalogo/prod.asp?f=9&sf=115&c=1044&p=2516.</a><br /><br />Según el tamaño de su circuito va a ser el tamaño de su placa, yo utilicé </span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >una tabl</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >a de 7x10 cm, una recomendación que doy es lavar bien la placa fenólica antes de pasarle el circuito, pueden lavarla con agua y jabón en polvo, incluso algunas per</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >sonas lijan la placa con una lija suave, todo esto para quitarle manchas y grasa que pudiera traer de</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" > n</span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >uestras manos.<br /><br /><br /><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL6RmY9JH1p1IKW1QLp-EaGZtAeuqEnGfh_DyrETiId-nj8ocTri0hUDQkUFgRMu5JDLzpU8UOx3g0KdY0JkeFQy7d5aoxFWOURV87IA29cIV1ohP_QE_lYnIVFq1gQuehwt6VfadknryF/s1600/02.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL6RmY9JH1p1IKW1QLp-EaGZtAeuqEnGfh_DyrETiId-nj8ocTri0hUDQkUFgRMu5JDLzpU8UOx3g0KdY0JkeFQy7d5aoxFWOURV87IA29cIV1ohP_QE_lYnIVFq1gQuehwt6VfadknryF/s400/02.jpg" alt="" id="BLOGGER_PHOTO_ID_5732124720232433682" border="0" /></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Una vez limpia la placa yo recomiendo recortar de la hoja de tran</span><span style=" font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >sferencia el área donde se encuentra nuestro circuito, luego pegarlo con cinta a la placa fenólica para que no se mueva a la hora de pasarlo.</span><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Más o menos que quede algo así:</span><br /><br /><br /><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixqEl5_dURPbzQ4bsFZJAxbhUetkevGZdig4it_NYEnGcsbx1UGAYIAd439bZZBzb8Qa_HnEng-2d5qNIVQfGrbWZvG-tRoYXtTQBwuqaKfiI65DzXmTXNz7pqx2Q64S9a26pIt4f1zGai/s1600/04.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixqEl5_dURPbzQ4bsFZJAxbhUetkevGZdig4it_NYEnGcsbx1UGAYIAd439bZZBzb8Qa_HnEng-2d5qNIVQfGrbWZvG-tRoYXtTQBwuqaKfiI65DzXmTXNz7pqx2Q64S9a26pIt4f1zGai/s400/04.jpg" alt="" id="BLOGGER_PHOTO_ID_5732125192742986834" border="0" /></a><br /><br />Ya teniendo la placa pegada a la hoja la manera de transferir el circuito es mediante calor, y no la vamos a poner en la estufa, vamos a usar una plancha convencional.<br /><br />En el paquete de las hojas vienen las instrucciones que debes seguir, por ejemplo el tiempo de exposición de la placa con la plancha, la temperatura y demás cosas.<br /><br />Lo relevante es que mantengas la temperatura de la plancha a un </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >nivel </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >medio y que hagas presión sobre la placa durante 5 minutos, procuren que el con</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >tacto de la plancha con la placa sea uniforme para que se logre transferir todo el circuito, tampoco se </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >apa</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >lanq</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >uen en la plancha porque harán que las líneas se ensanchen provocando que algunas líneas se junten.<br /><br />Se van a dar cuenta que está lista cuando puedan ver el ci</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >rcuito sobre la hoja, es decir, las líneas del circuito se vuelven más obscuras.<br /><br />Recomiendo que antes de planchar la placa coloquen una hoja de </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >má</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >quina sobre el papel de transferencia para que no se les vaya a quedar pegada la cint</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" >a.<br /><br />Después de planchar la placa por 5 minutos, les quedará algo así:<br /><br /><br /><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4AcQZYEpH1Rc36nPMX9qGiFTkZ_HboJ6eA79UV-pxLTTSeYu1zoV33vroUZJIvqFIx17u21K0wVE2XeVrWHofkTUVKX80ksuyF3ttIXr96gWmR64hRtMoE2A5RBwryK6y50FH6eKl4NL_/s1600/05.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4AcQZYEpH1Rc36nPMX9qGiFTkZ_HboJ6eA79UV-pxLTTSeYu1zoV33vroUZJIvqFIx17u21K0wVE2XeVrWHofkTUVKX80ksuyF3ttIXr96gWmR64hRtMoE2A5RBwryK6y50FH6eKl4NL_/s400/05.jpg" alt="" id="BLOGGER_PHOTO_ID_5732128702241136818" border="0" /></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Noten que algunas partes de las líneas no se pasaron a la placa, incluso se alcanza a ver en la hoja de transferencia las partes de las líneas en color negro, esto me pasó porque no puse una presión uniforme sobre la placa, pero para "arreglar" esto remarque el cir</span><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >cuito (solo las partes que no se pasaron) con plumón permanente (si es color negro </span><span style=" font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >mejor).</span><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >En la siguiente imagen se nota más el detallé de las líneas que faltaron</span><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >:</span><br /><br /><br /><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAyARloyvxKtbRO_QkCchLNEV0Ttz-SjdDKkyTyvwX3mhOshGjvTaAA9azAbXd6JklvHHxsyqXVv8zQ2Z4AiYLioTvUkAZ2HaNQqX2vFfZ_dJkPtUZC8fN0qDmrPZNOmrJmWRMK_Bc2zOu/s1600/06.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAyARloyvxKtbRO_QkCchLNEV0Ttz-SjdDKkyTyvwX3mhOshGjvTaAA9azAbXd6JklvHHxsyqXVv8zQ2Z4AiYLioTvUkAZ2HaNQqX2vFfZ_dJkPtUZC8fN0qDmrPZNOmrJmWRMK_Bc2zOu/s400/06.jpg" alt="" id="BLOGGER_PHOTO_ID_5732130481199552050" border="0" /></a><br /><br />Después de remarcar con plumón permanente las partes de las líneas que faltaron de pasarse, la placa les debe quedar algo así (casi nunca se logra pasar completamente el circuito, creo que esto es lo mejor que me ha salido XD) :<br /><br /><br /><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTR1vC8NWL7tNshQiZUIy7m_9cdELpJh49aShRRgR0HNS21ejtuUode5agSBUyXQomW3xnSpRq6B4-WDcHkRByJOKwpo8zQ_hcU39eb0TP3tc0xKtq9z7BQa3e3RlDWh0l-V7B3Neg2KPL/s1600/08.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTR1vC8NWL7tNshQiZUIy7m_9cdELpJh49aShRRgR0HNS21ejtuUode5agSBUyXQomW3xnSpRq6B4-WDcHkRByJOKwpo8zQ_hcU39eb0TP3tc0xKtq9z7BQa3e3RlDWh0l-V7B3Neg2KPL/s400/08.jpg" alt="" id="BLOGGER_PHOTO_ID_5732132044030722866" border="0" /></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br /><br /><br /><div style="text-align: center;"><span style="color: rgb(102, 102, 102);font-size:130%;" ><span style=" font-weight: bold;font-family:arial;" >Cloruro férrico</span></span><br /></div><br /><br /><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Uv_eW0HvDJQvHHnCX2IXLMMpDOArbckm4GpnA3GAgxv6_b1adsCGRwm0jxWFJLXtsjvH0DBq-3BcI1YTZs9J1Hk59dGSnJlCYZyBZEGSjkP_78gGOegAb3nH-yN2hcrvg6TREfdSwmC3/s1600/09.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Uv_eW0HvDJQvHHnCX2IXLMMpDOArbckm4GpnA3GAgxv6_b1adsCGRwm0jxWFJLXtsjvH0DBq-3BcI1YTZs9J1Hk59dGSnJlCYZyBZEGSjkP_78gGOegAb3nH-yN2hcrvg6TREfdSwmC3/s400/09.jpg" alt="" id="BLOGGER_PHOTO_ID_5732138076918963378" border="0" /></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Al tener la placa lista, sigue la parte donde sumergiremos la placa fenólica sobre cloruro férrico, el cloruro férrico lo pueden conseguir en Steren, visiten está página para consultar precios: <a href="http://www.steren.com.mx/catalogo/search.asp?s=cloruro&search_type=prod">http://www.steren.com.mx/catalogo/search.asp?s=cloruro&search_type=prod</a></span><br /><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Este paso sirve para quitar las partes de cobre que no de</span><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >seemo</span><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >s de la</span><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" > placa, es decir, todo el cobre que no esté marcado del tóner de la impresora o d</span><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >el p</span><span style=" font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >lumón permanente se caerá, dejando solo las líneas que hayamos transferido de nuestro circuito.</span><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >El bote de cloruro férrico viene con las instrucciones de uso, pero lo más relevante es que mezclen el cloruro férrico con agua para que haga un mejor efect</span><span style=" font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >o (2 partes de cloruro férrico por una de agua), el recipiente donde pueden vaciar esta solución puede ser un bote de plástico como el que se ve en la siguiente imagen:</span><br /><br /><br /><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw_pY6jk0hLTpmuumE2tGnBNxecKylnYdEiMbOxXA4ivf4ilkS3usiHT-CMgrWZeUnDRx_2O-xjtzUKZvS1E_JtOqEb8-wRCWS_5LaCl0k6JPr8x6-q8pkE6GomqPkCwa6WLZh88WUAdyh/s1600/10.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw_pY6jk0hLTpmuumE2tGnBNxecKylnYdEiMbOxXA4ivf4ilkS3usiHT-CMgrWZeUnDRx_2O-xjtzUKZvS1E_JtOqEb8-wRCWS_5LaCl0k6JPr8x6-q8pkE6GomqPkCwa6WLZh88WUAdyh/s400/10.jpg" alt="" id="BLOGGER_PHOTO_ID_5732141649218189506" border="0" /></a></span></span></span></span></span></span></span></span></span></span></span></span><br /><span style=" font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Después de aventar la placa al cloruro asegúrense de que el cloruro cubra toda la placa, para esto pueden utilizar una pluma o algo para sumergirla. Como medidas de seguridad en el bote del cloruro recomiendan usar guantes de plástico, pero por experiencia personal les digo que si les cae directo a la piel no pasa nada, cuiden que no les caiga en la ropa porque ya no se quita (me han dicho XD).</span><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >También otra de las instrucciones que da el bote de cloruro es mover constantemente la placa para que haga reacción más rápido, cada que muevan la placa chequen como se va cayendo la parte de cobre, notarán más opaca la parte donde ya se calló el cobr</span><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >e.</span><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >No dejen mucho la placa en el cloruro porque se va a caer todo el cobre, incluyendo las líneas cubiertas por el tóner (por eso les digo que chequen constantemente como se cae el cobre), este proceso tarda alrededor de 15 minutos.</span><br /><br /><span style=" font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Al final la placa les quedará algo así:</span><br /><br /><br /><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0CQHhmMec_LD_EZrvfsdkJDz04v046xtc97UlzwnEXV5Ji6xjc5NslkLBtAggLCMNbPacJ_j5W46uZPlwOVTa98pZFJ1rEy7l4vVMEVafsUtErlf1WKYEgKpEcApTd1h0Gl5um7F0JppZ/s1600/11.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0CQHhmMec_LD_EZrvfsdkJDz04v046xtc97UlzwnEXV5Ji6xjc5NslkLBtAggLCMNbPacJ_j5W46uZPlwOVTa98pZFJ1rEy7l4vVMEVafsUtErlf1WKYEgKpEcApTd1h0Gl5um7F0JppZ/s400/11.jpg" alt="" id="BLOGGER_PHOTO_ID_5732145028248572978" border="0" /></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br /><br /><span style=" color: rgb(0, 0, 0); font-weight: normal;font-family:arial;" >Cuando ya hayamos acabado de usar el cloruro férrico podemos volverlo a vaciar al bote para usarlo nuevamente, obviamente va perdiendo sus propiedades después de usarlo varias veces porque se va mezclando cada vez con más cobre. Si piensan tirar el cloruro después de usarlo hagánlo en el resumidero o algo así, no lo tiren en el lavabo o el lavadero porque lo mancharán y es muy difícil quitarlo.</span><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Bien, al tener la placa libre del cobre que no deseamos ahora</span><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" > vamos a quitar el tóner que anteriormente protegió a nuestro circuito del cloruro férrico. Para </span><span style=" font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >hacer esto podemos usar thinner, yo vacié sobre estopa un poco de thinner y tallé sobre la placa para eliminar todo el tóner.</span><br /><br /><span style=" font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Para que la placa les quedé limpia de tóner deben vaciar más thinner. Al final la tarjeta les debe quedar algo así:</span><br /><br /><br /><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE1geFZgtT0FEBfTKmkPuoH2J-J69kUrBoEixIht0n-xDHGGrSK3TG3xo6lBkrlfuGNUUsS-4N-_6hyFOQoeObtESE6Su-eS6r6_qulcts7DNrT37Tt31aE4g3RQ4IrNKDNfS99QkHChPF/s1600/12.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE1geFZgtT0FEBfTKmkPuoH2J-J69kUrBoEixIht0n-xDHGGrSK3TG3xo6lBkrlfuGNUUsS-4N-_6hyFOQoeObtESE6Su-eS6r6_qulcts7DNrT37Tt31aE4g3RQ4IrNKDNfS99QkHChPF/s400/12.jpg" alt="" id="BLOGGER_PHOTO_ID_5732147349675733378" border="0" /></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br /><br /><br /><div style="text-align: center;"><span style=" color: rgb(102, 102, 102);font-family:arial;font-size:130%;" >Perforando la placa</span><br /></div><br /><br /><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP_ZdUhOohrH2H7VM1GqXhb64HnPWsSyIpYe08FSUBFZfyzOdKnh2kKxf22ZN3zZ1FCH6Ggao7mvAye1QFoLIWYJHcdMftxchUy_jmkqw2c-phfZmxfwwhg56PVccuxDKIB78N8sAlOTIE/s1600/13.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP_ZdUhOohrH2H7VM1GqXhb64HnPWsSyIpYe08FSUBFZfyzOdKnh2kKxf22ZN3zZ1FCH6Ggao7mvAye1QFoLIWYJHcdMftxchUy_jmkqw2c-phfZmxfwwhg56PVccuxDKIB78N8sAlOTIE/s400/13.jpg" alt="" id="BLOGGER_PHOTO_ID_5732152229247732370" border="0" /></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br /><br /><span style="font-family: arial; font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Esta es la parte donde más se batalla porque debes tener buen pulso para hacer los orificios de los pads. Para realizar los orificios yo utilicé un mini taladro (es difícil conseguir brocas tan chicas).</span><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Las medida de la broca la desconozco pero pueden guiarse por los pads de la tarjeta para conocer la medida.</span><br /><br /><span style=" font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Bien, la manera de hacer los pads es sencilla lo difícil es atinarle a los orificios, yo coloqué debajo de la tarjeta un pedazo de madera (la tapa de un borrador para pizarrón XD) para tener una superficie donde apoyar y hacer más fácil el trabajo. El pad que tanto menciono es el círculo donde vamos a insertar la pata de un componente electrónico, para agujerar este círculo yo les recomiendo que primero hagan una guía con un clavo (pueden pegarle con un martillo).</span><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Al terminar de hacer los orificios la tarjeta les quedará algo así:</span><br /><br /><br /><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjYPfraEpey1YTO6IZpBO4ASp9pxwIvsYf-3UmCvkUcXuaCVPEOCbYrvd1m7H-nyVGGR_wo7eXdaSUFqx4sbIb8v1QrHtk7UPGYhNMLS_pEaDhqvbI3p45d-q_wWI5BYIgoapIaBkFGsth/s1600/14.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjYPfraEpey1YTO6IZpBO4ASp9pxwIvsYf-3UmCvkUcXuaCVPEOCbYrvd1m7H-nyVGGR_wo7eXdaSUFqx4sbIb8v1QrHtk7UPGYhNMLS_pEaDhqvbI3p45d-q_wWI5BYIgoapIaBkFGsth/s400/14.jpg" alt="" id="BLOGGER_PHOTO_ID_5732154654247235426" border="0" /></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Ahora solo van metiendo los componentes para ver si cuadran con los orificios que hicieron, si no cuadran puden hacer el orificio más grande, nomás no se emocionen porque pueden llevarse la parte de cobre del pad y ya no tendrán superficie para soldar el componente.</span><br /><br /><br /><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0);font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><span style="font-family:arial;"><span style="color: rgb(0, 0, 0); font-family:arial;" ><span style="font-weight: normal;font-size:100%;" ><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wCUjeAiEVR3tOzD4mRyZ-phCSsJ1pVkZjIlgbwpKj4XOWKHEBwECjZ-fJjWxHmaHAmq2rmUJBH-fFPN6FzrWzi85L4tBg_9Y36gsVjuuFuRzgO05eysu-j4AoxIjsnqKc44qi7tPkvMG/s1600/15.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wCUjeAiEVR3tOzD4mRyZ-phCSsJ1pVkZjIlgbwpKj4XOWKHEBwECjZ-fJjWxHmaHAmq2rmUJBH-fFPN6FzrWzi85L4tBg_9Y36gsVjuuFuRzgO05eysu-j4AoxIjsnqKc44qi7tPkvMG/s400/15.jpg" alt="" id="BLOGGER_PHOTO_ID_5732156703711111378" border="0" /></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br /><br /><span style=" color: rgb(0, 0, 0);font-family:arial;font-size:100%;" ><span style="font-weight: normal;">En la foto anterior se ve como voy poniendo los componentes, yo recomiendo ir soldando los componentes que vayan metiendo porque si quieren soldar al final todo se van a complicar mucho.</span><br /><br /><span style="font-weight: normal;">El taladro que utilicé también lo pueden encontrar en Steren (Steren debería pagarme¬¬), en este link está el precio y las características: <a href="http://www.steren.com.mx/catalogo/prod.asp?f=0&sf=0&c=1105&p=1983&desc=mini-taladro-esmerilador-con-5-brocas-y-5-esmeriles-">http://www.steren.com.mx/catalogo/prod.asp?f=0&sf=0&c=1105&p=1983&desc=mini-taladro-esmerilador-con-5-brocas-y-5-esmeriles-</a></span></span><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Por último ya solo tienen que soldar cada uno de los componentes y rezar para que funcione XD.</span><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Bueno esto es todo, si tienen alguna duda o correción pueden ponerla en comentarios.</span><br /><br /><br /><span style="font-weight: normal; color: rgb(0, 0, 0);font-family:arial;" >Saludos!</span><br /><br /><br /></div></div>Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com1tag:blogger.com,1999:blog-6845988839185922136.post-43293034791037782332012-03-20T11:09:00.023-07:002012-04-14T21:13:12.127-07:00Tarea Intro<div style="text-align: center; font-family:verdana;"><span style="font-weight: bold; color: rgb(0, 0, 102);font-size:130%;" ><span style="font-family:arial;">LENGUAJE ENSAMBLADOR</span></span><br /><br /><div style="text-align: justify;"><span style="font-family:arial;">Para desarrollar programas ensamblador en Linux podemos elegir entre diversos compiladores.<br />GAS (GNU Assembler) es el estándar que lleva toda distribución Linux, GAS utiliza la sintaxis AT&T que difiere de la sintaxis Intel (según las opiniones Intel es más s</span><span style="font-family:arial;">encillo).<br /><br />NASM (Netwide Assembler) ofrece la misma funcionalidad que GAS pero utiliza la sintaxis de Intel.<br /><br />Más sobre toda esta teoría se los dejo en los links de abajo.<br /><br />Para la tarea intro de cómputo integrado decidí hacer un sencillo programa que determina si un número es par o impar, el programa lo hice en C luego lo pasé a ensamblador mediante la siguiente instrucción:<br /><br /><span style="font-style: italic; color: rgb(0, 102, 0); font-weight: bold;">triana@triana-Satellite-M645:~/Desktop/alfa$ gcc -S Pares.c</span><br /><br />Este es el programa que escribí en C:</span><br /><br /><script src="https://gist.github.com/2389922.js"> </script><br /><br /><br /><span style="font-family:arial;">Como se puede apreciar yo usé gcc para obtener el código ensamblador "Primos.s", gcc utiliza as como ensamblador, es decir el código que tengo es sintaxis AT&T. </span><br /><br /><span style="font-family:arial;">Lo podrán confirmar porque en mi código a los nombres de los registros se les añade el prefijo %</span><span style="font-family: arial;"> (pueden encontrar más diferencias entre la sintaxis Intel y AT&T en los links de abajo).</span><br /><br /><span style="font-family:arial;">Este es el código que me arrojó gcc, Pares.s:</span><br /><br /><br /><script src="https://gist.github.com/2379495.js"> </script><br /><br /><span style="color: rgb(51, 51, 153);font-size:130%;" ><span style=" font-weight: bold; font-style: italic;font-family:arial;" >Reducción de líneas</span></span><br /><br /><span style="font-family:arial;">En la optimización del código solo quité algunas líneas que no son escenciales para su funcionamiento. Las líneas que retiré de mi código fueron las iniciales del nombre del programa, la línea de sección y alineo.</span><br /><br /><span style="font-family:arial;">Retiré también las líneas correspondientes a la etiqueta .LFE0 que son las que dicen los parámetros del SO y gcc.</span><br /><br /><span style="font-family:arial;">Leí que las directivas CFI solo añaden información al código assembler para definir reglas de cálculo de funciones, por lo que también decidí quitar esas líneas.</span><br /><br /><span style="font-family:arial;">Después de "optimizar" mi código, quedó así (pasó de 63 líneas a 49) :</span><br /><br /><br /><script src="https://gist.github.com/2389488.js"> </script><br /><br /><span style="font-family:arial;">Para obtener el ejecutable de mi código realicé la siguiente instrucción:<br /><br /></span><span style="font-family:arial;"><span style="font-style: italic; color: rgb(0, 102, 0); font-weight: bold;">triana@triana-Satellite-M645:~/Desktop/alfa$ gcc -o MiPrograma Mejorado.s<br /><br /></span><br />Y al final para correr el programa solo hice:<br /><br /></span><span style="font-family:arial;"><span style="font-style: italic; color: rgb(0, 102, 0); font-weight: bold;">triana@triana-Satellite-M645:~/Desktop/alfa$ ./MiProgram</span></span><span style="font-family:arial;"><span style="font-style: italic; color: rgb(0, 102, 0); font-weight: bold;">a<br /><br /></span><span style="color: rgb(0, 102, 0);"><span style="color: rgb(0, 0, 0);"><br />Este es el programa corriendo:<br /><br /><br /><br /><span style="font-family:arial;"><span style="font-style: italic; color: rgb(0, 102, 0); font-weight: bold;"><span style="font-family:arial;"><span style="font-family:arial;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivsITVv1WToVd5O6fXOPwsOkRrHzpK4HfccvK2ydZqYHINMyH9gTy1qY61WtkpPKWuXQDA-fRwoOdt3daeUhxCC1y1m5yVSFtrJL0vTYruCafItCmOrFPq7rmp62i5ocYHG81h0S59Qz06/s1600/Assembler.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 115px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivsITVv1WToVd5O6fXOPwsOkRrHzpK4HfccvK2ydZqYHINMyH9gTy1qY61WtkpPKWuXQDA-fRwoOdt3daeUhxCC1y1m5yVSFtrJL0vTYruCafItCmOrFPq7rmp62i5ocYHG81h0S59Qz06/s400/Assembler.png" alt="" id="BLOGGER_PHOTO_ID_5731470639703671698" border="0" /></a></span></span></span></span><br /><br /></span></span></span><span style="font-family:arial;"><br />A continuación les dejo las ligas de las páginas que usé para comprender los mnemónicos y directivas de mi programa. En ellas también viene bastante información sobre los registros y las principales diferencias entre GAS y NASM.</span><br /><br /><ul><li style="font-family: arial;"><a href="http://moisesrbb.tripod.com/asm.html">http://moisesrbb.tripod.com/asm.html</a></li><li style="font-family: arial;"><a href="http://www.logix.cz/michal/devel/gas-cfi/">http://www.logix.cz/michal/devel/gas-cfi/</a></li><li style="font-family: arial;"><a href="http://linux.web.cern.ch/linux/scientific4/docs/rhel-as-en-4/balign.html">http://linux.web.cern.ch/linux/scientific4/docs/rhel-as-en-4/balign.html</a></li><li style="font-family: arial;"><a href="http://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax">http://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax</a></li><li style="font-family: arial;"><a href="http://www.set-ezine.org/index.php?num=29&art=3">http://www.set-ezine.org/index.php?num=29&art=3</a></li><li><a style="font-family: arial;" href="http://tigcc.ticalc.org/doc/gnuasm.html#SEC90">http://tigcc.ticalc.org/doc/gnuasm.html#SEC90</a></li></ul><br /><span style="font-family:arial;">Cualquier duda o aclaración pueden dejarla en los comentarios.</span><br /><br /><span style="font-family:arial;"><br />Saludos!</span><br /><br /><br /><br /></div></div>Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com2tag:blogger.com,1999:blog-6845988839185922136.post-72719410765646824252012-03-16T23:15:00.028-07:002012-03-17T21:58:03.037-07:00CIRCAD (Laboratorio)<div style="text-align: center;"><b style="font-family: Georgia, serif; font-size: large; ">Herramienta CIRCAD</b></div><div style="font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family: Georgia, serif; text-align: center; "><br /></div><div style="font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family: Georgia, serif; text-align: center; "><b style="font-size: large; font-family: Georgia, serif; "><br /></b></div><span style="font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span style="margin-right: auto; margin-left: auto; "><span style="font-family: Georgia, serif; font-size: 100%; "><span style="font-size: 100%; margin-right: auto; margin-left: auto;"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 130px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-iDHX8JtajikCyrApI328oZvYK0OgHLY676yGv58SFGwfuRSu4mXX0ktieQWAIw8UHUYUAwRVVFvtTHuvV1Ep3_OF7vUZIpjeLWCMIvqAKUzdn1Ueuz5mSPs4tXSo0SUe-fJKYjMWG9lx/s320/cc-avon.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5720752876272133858" /></span></span><div style="text-align: center; "><span><br /></span></div></span></span><div><div style="text-align: center;"><br /></div><div style="text-align: justify; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><span>CirCAD es una herramienta que se utiliza para realizar PCB's (Printed Circuit Board) o ta</span><span style="font-size: 100%; ">mbién llamadas tarjetas electrónicas perforadas.</span></span></div><div style="text-align: center; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div style="text-align: justify; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><span><span><span><span>Sirve también para hacer los esquemáticos y tiene editor de texto, sirve para </span></span><span style="font-size: 100%; ">otras </span></span><span style="font-size: 100%; ">cosas más, pero yo solo lo he usado para crear mis pcb's. Para mayor información pueden vi</span><span style="font-size: 100%; ">sitar la página oficial: </span><span style="font-size: 100%; "><span><b><a href="http://www.holophase.com/">http://www.holophase.com/</a></b></span></span></span></div><div style="text-align: center;"><span><br /></span></div><div style="text-align: justify; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><span><span>Básicamente lo que hacemos con este programa es construir el conj</span></span><span style="font-size: 100%; ">unto de líneas y pads que contienen las tarjetas electrónicas, mediante estas líneas se cond</span><span style="font-size: 100%; ">ucirá la c</span><span style="font-size: 100%; ">orriente eléctrica y hará funcionar el circuito.</span></span></div><div style="text-align: center;"><span><br /></span></div><div style="text-align: justify; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><span><span><span>Lo que nos facilita este software es que cuenta con una amplia librería d</span></span></span><span style="font-size: 100%; ">e componentes electrónicos, con las medidas estándar de separación entre sus pads, de manera que </span><span style="font-size: 100%; ">podemos contar con la seguridad que nuestros componentes "encajarán" </span><span style="font-size: 100%; "><span style="font-size: 100%; ">per</span></span><span style="font-size: 100%; ">fectamente en los pads (orificios donde serán metidos los pines de los componentes).</span></span></div><div style="text-align: center; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div style="text-align: justify; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><span>Este programa yo solo lo he usado en Windows, no se si h</span><span style="font-size: 100%; ">aya soporte para Linux, de igual manera pueden consultar en su página web.</span></span></div><div style="text-align: center; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div style="text-align: justify; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span>Para tener una idea de lo que se puede lograr, les pongo unas imágenes de los archivos que vienen como ejemplo con el programa:</span></div><div style="text-align: center;"><span><br /></span></div></div><div><div style="text-align: left;font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div style="text-align: center; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div style="text-align: center; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span style="font-size: 100%; ">(Esquemático de ejemplo ".SCH")</span></div><div style="text-align: center; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div style="text-align: justify; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div style="text-align: justify; "><div style="text-align: center;"><span><br /></span></div><span><span style="margin-right: auto; margin-left: auto; "><img style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 257px; " src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLXBenB9_C9LYddFzPRAvNubkxC_8UZbf7_i46NR56Ho1I3RIsAA3ZonJSmYOnWMXfl0_K8rgSn2wIW_CuP5BuEVjCcxS3AvKEFZuVpUnvnS3GcW9KD9qGcTQzBAxfRV_WKQsj0014hpK7/s400/esquematico.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5720755164647330402" /><div style="text-align: center;"><br /></div><div style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; text-align: left; font-size: medium; "></div></span></span></div><div><div style="text-align: justify;"><span><br /></span></div></div><div style="text-align: center; font-size: 100%; font-style: normal; font-weight: normal; font-variant: normal; line-height: normal; "><span><br /></span></div><div style="text-align: center; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span>(PCB de ejemplo .PCB)</span></div><div style="text-align: center; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div style="font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; text-align: center; "><div style="font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; text-align: justify; "><span></span></div><div><span><br /></span></div><span><span style="margin-right: auto; margin-left: auto; "><span style="margin-right: auto; margin-left: auto; "><br /><span style="font-size: 100%; margin-right: auto; margin-left: auto;"><img style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 184px; " src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGNrBNhU0pTKZGoFlH31Y1eKiNw_vdng_Y-qobZIe6jSvqvZZoTqn7EgrlErdadmgxJ_aOLWNhSGdy1WiGpiKFYEFcD_r4wm77nbdrds9ImjlGlgMCOs7S0JH-7jEDCAsuLZ3KkuFAJBIK/s400/pcb.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5720755789885824274" /></span><div style="text-align: center; "><span><br /></span></div><div><span><br /></span></div><div style="font-size: 100%; "><br /></div></span></span></span></div><div style="text-align: justify; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><span><span>Como ya lo dije, estos solo son archivos de ejemplo que vienen juntos con el software CirCAD, los pongo para que se den cuenta de los resultados tan profesionales que se pueden tener con una herramienta tan "fácil" de manejar. En lo personal nunca he trabajado diseñ</span><span style="font-size: 100%; ">os tan complejos como el de la segunda imagen, pero si he realizado muchas tarjetas y </span></span><span style="font-size: 100%; ">en ningún proyecto he tenido limitantes con este software.</span></span></div><div style="text-align: justify; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div style="text-align: justify; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span>Bueno ahora sí les enseñaré como usar esta útil herramienta:</span></div><div style="text-align: justify; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div style="font-style: normal; font-weight: normal; text-align: justify; font-size: 100%; font-variant: normal; line-height: normal; "><span>Para crear un nuevo archivo PCB, entramos a <b><i>File -> New -> Graphics File</i></b> (en la pantalla de incicio de CirCAD):</span></div><span><br /></span><div style="font-style: normal; font-weight: normal; text-align: justify; font-size: 100%; font-variant: normal; line-height: normal; "><span><br /></span></div><div style="text-align: justify; font-style: normal; font-weight: normal; font-size: 100%; font-variant: normal; line-height: normal; "><span><br /></span></div><div style="font-size: 100%; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><div style="font-size: 100%; "><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXg-uRpJIVFCIr69KFmwzn7ywjzcAdbMZZkpDR3EItr7zHb3lbT-G0B3QI8r7kD6Mbt_ALFtW7AEtlTDFGwsyHbcm1-gFjgnu91DJ1NOK4UskhW7x1jGtX14sGBjfG4cqxOzN-ycmv42C8/s400/inicio.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5720759897607653474" style="text-align: justify;float: left; margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; cursor: pointer; width: 400px; height: 178px; " /></div><div style="text-align: justify;"><span><br /></span></div></div><div style="text-align: center; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div><span><br /></span></div><div style="text-align: justify; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div style="text-align: justify; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><span><span>Si dejamos el puntero colocado en las distintas opciones </span><span style="font-size: 100%; ">no</span><span style="font-size: 100%; ">s sale una descripción de lo que hace cada función, esto sirve de guía </span><span style="font-size: 100%; ">para los que apenas se van </span></span><span style="font-size: 100%; ">familiarizando con esta herramienta.</span></span></div><div style="text-align: justify; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><span><br /></span></div><div style="text-align: left; "><div style="text-align: center; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div style="font-size: 100%; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div style="font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; text-align: justify; "><span><br /></span></div><div><span><span><span style="font-size: 100%;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCRHBfkE7sD4hWYWtj5k-FAiUNMwkHGmUNwvKTZQ-rBQtBLGWvr4SWsYkgaOjOl0fGsMiC_KY6-duweAJIVgHcOYxiySls-lBVM_UrO9nj5kRdpicyBGAIXW7RRgmZkaeUwZyri-_nPoPj/s400/size.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5720760316721342434" style="text-align: justify;float: right; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 273px; height: 261px; " /></span><div style="text-align: center;"><br /></div></span></span><div style="font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; text-align: justify; "><span><span style="font-size: 100%; "><br /></span></span></div><div style="font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; text-align: justify; "><span><span><span><span style="font-size: 100%; ">Después de entrar a new / Graphics File, nos saldrá una ventana para primero elegir que tipo de documento que queremos crear, tenemos 3 tipos </span></span></span><span style="font-size: 100%; "><span><span style="font-size: 100%; ">de documentos, nosotros eligiremos el que dice PCB, luego tambi</span></span></span><span style="font-size: 100%; "><span style="font-size: 100%; ">én </span><span style="font-size: 100%; ">debemos elegir el tamaño que tendrá n</span></span><span style="font-size: 100%; ">uestra tarjeta, para eso vienen las medidas de la A hasta la D, cada una tiene su medida precalculada, en este caso yo eligiré la A porque el proyecto no será tan grande.</span></span></div></div><div style="font-size: 100%; text-align: justify; font-weight: normal; font-style: normal; font-variant: normal; line-height: normal; "><span><br /></span></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; font-weight: normal; "><span><br /></span></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; font-weight: normal; "><span>Para crear el archivo hacemos <b>Confirm.</b></span></div><div style="text-align: justify; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-style: normal; font-variant: normal; line-height: normal; text-align: justify; font-size: 100%; font-weight: normal; "><span>Después de esto nos aparecerá una ventana para asignarle un nombre al archivo y guardarlo en la dirección que queramos. Presionamos <b>Guardar </b>y ya tendremos listo el archivo para empezar a trabajar.</span></div><div style="font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; text-align: justify; "><span><div></div><div><br /></div></span></div><div style="font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; text-align: justify; "><span><br /></span></div><div style="text-align: center; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "><span><br /></span></div></div><div style="font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><div style="font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; text-align: justify; font-weight: normal; "><span><br /></span></div><div style="font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; text-align: justify; font-weight: normal; "><span><br /></span></div><div style="font-style: normal; font-variant: normal; line-height: normal; text-align: justify; font-size: 100%; font-weight: normal; "><span>Lo que voy a crear es el circuito que presentaré para el proyecto de PIC. Lo que realicé para la práctica de PIC fue un sumador, tengo 4 interruptores que controlarán las entradas hacia el PIC, luego el PIC procesará esas entradas y entregará una salida por medio de un display de 7 segmentos.</span></div><div style="text-align: justify;"><span><br /></span></div><div style="text-align: left;font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; font-weight: normal; "><span><br /></span></div><div style="font-style: normal; font-variant: normal; line-height: normal; text-align: justify; font-size: 100%; font-weight: normal; "><span><span>La pantalla inicial cuando creas el pcb está marcada con un cuadro amarillo, </span><span style="font-size: 100%; ">el cual da a conocer cuales son tus limites de trabajo, esto se eligió al momentos de crear el archivo, nosotros elegimos el SizeA.</span></span></div><div style="text-align: center;font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; font-weight: normal; "><span><br /></span></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; font-weight: normal; "><span>Las opciones más importantes del menú son:</span></div><div style="text-align: left;font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; font-weight: normal; "><span><br /></span></div><div style="font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><ul><li style="text-align: justify;"><span><i><b>PLACE</b></i>: Esta función se encarga de dibujar en el área de trabajo, líneas, círculos, elipses, pad's, vias, texto, componentes electrónicos y demás cosas.</span></li></ul><ul><li style="text-align: justify;"><span><b><i>GRAB</i></b>: Se encarga de mover de lugar el componente que hayamos dibujado previamente.Para hacer uso de esta función se tiene que elegir el tipo de dibujo que vamosa mover, por ejemplo si queremos mover de lugar un capacitor, elegimos del submenú la opción "component".</span></li></ul><ul><li style="text-align: justify;"><span><b><i>EDIT:</i></b> Esta función puede editar los parámetros de los componentes o de cualquier dibujo, se pueden editar desde las medidas de los dibujos hasta el grosor del pad y también el color.</span></li></ul><ul><li style="text-align: justify;"><span><b><i>DELETE</i></b>: Nos ayuda a eliminar o borrar los dibujos que hicimos previamente, al igual quelas demás opciones, se debe seleccionar el tipo de dibujo que queremos borrar.</span></li></ul><ul><li style="text-align: justify;"><span><b><i>UN-DO</i></b>: Deshacer la acción previamente realizada.</span></li></ul><ul><li style="text-align: justify;"><span><b><i>SETUP</i></b>: Con esta función podemos configurar las líneas con las que estamos dibujando,además de otros parámetros. Yo por ejemplo lo uso comúnmente para seleccionar las capas de líneas que quiero usar en el área de trabajo.</span></li></ul><ul><li style="text-align: justify;"><span><b><i>BLOCK</i></b>: Con la opción block podemos seleccionar un grupo de componentes que hayamos dibujado, ya sea para moverlos, para eliminarlos o para editarlos.</span></li></ul><div style="text-align: justify;"><span><br /></span></div><div style="text-align: center;"><span><span><span>A continuación les dejo una imagen para que se ubiquen donde se encuen</span></span><span style="font-size: 100%; ">tran los menús que acabo de explicar.</span></span></div></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; font-weight: normal; "><span><br /></span></div><div style="text-align: left;font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; font-weight: normal; "><span><br /></span></div><div style="font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span style="margin-right: auto; margin-left: auto;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnh2WVpAXq7pa90IIFbnskGnMhQpQ2Dx98GteuNmLq9iH-fPR9oI5L7x8w70jMkaBx_ySsxhDtTsov8KyEx4EUSIMNEivPghpFQaU8aXhGJ9m7S_xsulwamtX8VZAC8iMI9rnguJZMv-GQ/s400/01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5720943207676293218" style="text-align: justify; font-size: medium; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 385px; height: 287px; " /></span><div style="text-align: center;"><span><br /></span></div></div><div style="text-align: justify; font-size: 100%; font-weight: normal; font-style: normal; font-variant: normal; line-height: normal; "><span><br /></span></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; font-weight: normal; "><b><span><br /></span></b></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><span>Empezaré por crear un componente de 18 pines que será el PIC, lo colcaré aproximadamente al centro del cuadro por cuestiones de diseño, recuerden que se p</span><span style="font-size: 100%; ">uede mover de lugar posteriormente.</span></span></div><div style="text-align: center;font-weight: normal; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><span>Para hacer esto vamos a Place->Component. Saldrá una ventana </span><span style="font-size: 100%; ">con los distintos tipos de componentes que podemos poner, pero primero debemos seleccionar la librería de co</span><span style="font-size: 100%; ">mponentes que vamos a usar, esto lo elegimos en la parte inferior de la columna de la izquierda como se muestra en la imagen siguiente:</span></span></div></div><div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span style="font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; "><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-ZYH9_jv282d6Oq330c79fqVxq0OMxlETLjxItpMuGu4w0UTJr9PUT9X79Rf_0NSlBy3LzF0kucj9f7GLe28_4xes0xiIRW1KsHp1xpg0fi2XAt9a4TVUPNTOwvQBpwiXyvW8QhEvR4Mr/s400/02.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5720953376971027666" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 387px; height: 400px; " /></span><div style="text-align: center;"><span><br /></span></div></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; font-weight: normal; "><b><span><br /></span></b></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; font-weight: normal; "><b><span><br /></span></b></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><span><span>De estas opciones elegimos la de PCB.LIB, si llegan a seleccionar otra, las medidas de los componentes serán distintas y por lo tanto a la hora de querer soldarlos no encajaran. SMD. LIB es usada para cuando queremos construir tarjetas que no serán perforadas, solo se sueldan los componetes y por lo general estos componentes son mucho </span><span style="font-size: 100%; ">más pequeños que los convencionales. Esto se aplica en la mayoría </span></span><span style="font-size: 100%; ">de las tarjetas electrónicas actuales.</span></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><span><span>Bueno volviendo al tema, nosotros seleccionamos PCB.LIB, después de seleccionar veremos </span></span><span style="font-size: 100%; "><span>la lista de todos los componentes que podemos usar, se listan resistencias, tra</span><span style="font-size: 100%; ">nsistores</span><span style="font-size: 100%; ">, capacit</span></span><span style="font-size: 100%; ">ores de disco, capacitores electrolíticos, diodos, etc. Todos estos componentes vienen también en distintas características o medidas (por lo menos las más usadas).</span></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><span>Ahora sí, en la lista buscaremos el grupo de "Dual inline" este grupo contiene los componentes DIP de distintos pines, como mi PIC (PIC16F84A) es de 18 pines, seleccionaré el </span><span style="font-size: 100%; ">DIP18, y de pasada también seleccionaré el DIP8, este DIP8 lo quiero para mi DIP switch de 4 ent</span><span style="font-size: 100%; ">radas.</span></span></div><div style="text-align: center;font-weight: normal; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>La siguiente imagen ilustra lo que acabo de explicar:</span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span></span></div><div><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div><span><span style="margin-right: auto; margin-left: auto; "><span style="font-size: 100%; margin-right: auto; margin-left: auto;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmliSMHuM6hlmRouKmSmr8LQnS7iQuf6FGvefegLn9ND7rHU_Tge4-EkCNbiZJMyF-ApKbDLu_fG7kJxU8-zLa0eTEUF9MOG5fn-7YBfnp-aA0lmtlNXTOP46JICTJCY2L7TPE9dPX-5Hn/s400/03.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5720967761117679922" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 390px; height: 400px; " /></span><div style="text-align: left; "><span><br /></span></div></span><div style="text-align: left;"><br /></div></span></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; font-weight: normal; "><b><span><br /></span></b></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>Bueno después de seleccionar el componente que queramos oprimimos<b style="font-weight: normal; "> </b><b>Confirm</b>. Luego ya podemos poner el componente en el área de trabajo. Sobre lo que mencioné arriba de aprovechar de poner también el DIP8, esto lo hice por separado, no puse los 2 al mismo tiempo, solo se puede seleccionar uno a la vez.</span></div><div style="text-align: left;"><span><br /></span></div></div><div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><span>Algo común que yo hago son zoom's para poner bien las líneas del circuito, luego cuando ya acabo de poner la línea alejo la imagen para ver que tan grande o chico va quedando, esto lo pueden hacer mediante click derecho (alejamiento) e izquierdo (acercamiento) del </span><span style="font-size: 100%; ">mouse.</span></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>Para hacer mi PCB usaré el siguiente esquemático que modifiqué y diseñé:</span></div><div style="text-align: justify;"><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="text-align: left; font-weight: normal; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>Esta imagen se ve mejor en mi presentación de PIC, la pueden encontrar en este mismo blog.</span></div><div style="text-align: left; font-weight: normal; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div><span><br /></span></div><div style="text-align: justify; "><div style="text-align: left;"><span><br /></span></div><span><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_axKgj4IUtWycJn50czKKtYiOj5fFu3d-tw2UYUvVrVoih13kr3HYpLblRF3LWz6gCA1Wsx5k2544eDE7wJWy3ffz7Lx_NBZfQYrrl0I3wlVjj5615WxI-nz2PinqJGdP8cNiZeGNu8F6/s400/micircuito.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5720981300735409122" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 216px; " /><div style="text-align: left;"><br /></div></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>En la siguiente imagen muestro el resultado del dibujo del DIP18 y el DIP 8 para el PIC y el DIP Switch respectivamente, noten que también puse 10 pads (a la derecha) para el display de 7 segmentos, les puse a cada pad el nombre del pin del display para ubicarnos mejor.</span></div><div style="text-align: left; font-weight: normal; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>También agregué un SIP de 3 pines para el regulador a 5 volts (7805), junto con 2 pad's más que llevarán la conexión de voltaje y tierra (extremo izquierdo) y también puse un texto con mi nombre :p.</span></div><div style="text-align: center; font-weight: normal; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="text-align: justify; "><div style="text-align: left;"><span><br /></span></div><span style="font-size: 100%; margin-right: auto; margin-left: auto;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHVO0QZAREaR0ikg7UiQgv0-C-0C3I0zbZGKIQmY5ehuoGcSCsHyM51TLwtobXRzmP-h4I2jRtsUNhM3qgGX7MQyPONWt0QfN7_6HO32MgMPIVGJ4R0xL9pkni5rPEHtNf6_9HrwjZJgkH/s400/04.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5721032625768827858" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 112px; " /></span><div style="text-align: left;"><span><br /></span></div><div><span><br /></span></div></div><div style="font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; font-weight: normal; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>Para poner los pads solo seleccioné Place-> pad y ya ubicas el pad donde quieras. Para poner el + y - de la corriente puse Place->text luego di click en la ubicación que quería y coloqué los signos.</span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>Ahora lo que haré es poner las líneas de conexión entre los pads, para poner las líneas pueden ir a Place->line, y ya dibujan la línea como si se tratara de Paint.</span></div><div style="text-align: left; font-weight: normal; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><span style="font-weight: normal; ">También pondré las resistencias, para esto haré Place->component y dentro de la ventana component selecciono </span><b>"Eighth watt resistor"</b> porque utilizaré resistencias de 1</span><span style="font-size: 100%; ">/8 de watt.</span></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>Hasta aquí solo me faltan algunas líneas más de las salidas del PIC (que van hacia el display) y unos pads para poner el cristal y unos diodos cerámicos que también van al PIC.</span></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2-nGv-i6ttXtEKI5LBZwrnWPQ3K-s95Hvu3r5IJfYnHCJO5fZ6r67vXUH1eCh1Vnkq4wVKqi00KbLpv4ZnInlC-W4BKSwuWqDn-7Yw53xan_Q-tDxm6n5ImvlmOjczkluwEj5xRS4xm9y/s400/08.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5721064089039339650" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 134px; " /><span><br /></span></div><div><span><br /></span></div><div style="text-align: justify;"><span>Al final así me quedó, noten que mi nombre lo puse en modo espejo, para que al imprimirlo en la hoja y después pasarlo a la tarjeta salga bien, lo demás si saldrá al revés para que concuerden los pines de los componentes.</span></div><div style="text-align: justify;"><span><br /></span></div><div style="text-align: justify;"><span>Por las partes en color negro no se preocupen, al final solo se imprimiré todo lo que está en color morado por lo tanto no se cruzarán las líneas.</span></div><div><span><br /></span></div><div><span><br /></span><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq9f2cGobq5vQWHb9IMg0KM1o0y1Y-iWGRlPkFGJfetzCr1QoO3TRmacarjsHX9yLALysWAbawVZkExY_f3OaJimHMkGZWL1ZwwDvNTUMMqwlLWVVm5Bzaj8GYm9auYsM9vnxf0VLTKfeK/s400/final.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5721083470330208178" style="text-align: center; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 142px; " /><span><br /></span></div><div><span><br /></span></div><div><span><br /></span><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>Para invertir mi nombre solo puse Edit->text Parameters, luego seleccioné el texto previamente dibujado y después en la ventana que aparece para edición seleccioné de la lista desplegable donde dice "Mirrored".</span></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>Al final para imprimir solo vayan a File->Printer out, luego en la ventana que les sale vayan a la pestaña Layers, pueden seleccionar que layers quieren imprimir, en mi caso solo seleccioné el layer morado que es el Master Pad.</span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>También en Format pueden elegir imprimirlo en espejo para que se den cuenta como les quedará al final en la tarjeta.</span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigAKQAErXH9uBfZisnH9THv7uYfGLp6BINki_i5caPxNkzbdmQjwkyV2qcHqH7iVcuJPoGo-8DlSJxHBVuV2YaKteAstsWTg7ibroKc9Sdl6gprLtUCYawICPBjHXL7Hn3LuYxIQf5Jfn2/s400/imprimir.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5721093749458433986" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 221px; height: 400px; " /></div><div><span><br /></span><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "> </div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>El software CIRCAD lo pueden descargar desde la liga que les dejé al principio.</span></div></div></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>Cualquier duda o aclaración pueden dejarla en comentarios.</span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span><br /></span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-size: 100%; "><span>Saludos!</span></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-family: Georgia, serif; font-size: 100%; "><br /></div><div style="font-weight: normal; text-align: justify; font-style: normal; font-variant: normal; line-height: normal; font-family: Georgia, serif; font-size: 100%; "><br /></div>Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com1tag:blogger.com,1999:blog-6845988839185922136.post-13933061203049349052012-03-05T17:38:00.027-08:002012-03-07T13:34:41.255-08:00Proyecto PIC (Clase)<div style="text-align: center; "><p class="MsoNormal" align="center" style="font-family: Georgia, serif; font-size: 100%; font-variant: normal; line-height: normal; font-style: normal; font-weight: normal; margin-bottom: 0.0001pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; "></p><p class="MsoNormal" align="center" style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin-bottom: 0.0001pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; "></p><p class="MsoNormal" align="center" style="font-family: Georgia, serif; font-size: 100%; font-variant: normal; line-height: normal; margin-bottom: 0.0001pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; "></p><p class="MsoNormal" align="center" style="margin-bottom: 0.0001pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; "><b><i><u><span style="font-size:12.0pt; mso-fareast-font-family:"Times New Roman";mso-bidi-font-family:Calibri; mso-bidi-theme-font:minor-latin;color:#17365D;mso-themecolor:text2;mso-themeshade: 191;mso-fareast-language:ES-MX">SUMADOR CON PIC16F84<o:p></o:p></span></u></i></b></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; ">Para mi proyecto de PIC decidí hacer un sumador, el PIC suma 2 números de 2 bits cada número (4 entradas en el PIC) de manera que la suma más grande que se puede hacer es 3+3, para expresar la salida decidí poner un display de 7 segmentos.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; ">Para esto hice uso de manejo de tablas en Ensamblador, el manejo de tablas es usado para resolver problemas que pueden plantearse mediante una tabla de verdad.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; ">Para escribir y compilar el código en ensamblador utilicé MPLAB IDE, para programar el PIC usé el software MicroPro.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; ">El IDE MPLAB lo pueden descargar de <a href="http://www.microchip.com">http://www.microchip.com</a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; "> <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; ">A continuación les pondré mi presentación con el código, un poco de la arquitectura del PIC16F84 y la lista de componentes que utilicé para armar el circuito.<o:p></o:p></p><p></p><p class="MsoNormal" style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin-bottom: 0.0001pt; text-align: justify; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; "><br /></p><p class="MsoNormal" style="font-style: normal; font-weight: normal; margin-bottom: 0.0001pt; text-align: justify; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; "><span></span></p><div style="font-style: normal; font-weight: normal; width: 425px; " id="__ss_11911269"><span><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/EduardoTriana/picsumador" title="PicSumador">PicSumador</a></strong><object id="__sse11911269" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=pic-120307153116-phpapp01&stripped_title=picsumador&userName=EduardoTriana"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="wmode" value="transparent"><embed name="__sse11911269" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=pic-120307153116-phpapp01&stripped_title=picsumador&userName=EduardoTriana" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="355"></embed></object><div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/EduardoTriana">Eduardo Triana</a>.</div><div style="padding:5px 0 12px"><br /></div><div style="text-align: left;padding-top: 5px; padding-right: 0px; padding-bottom: 12px; padding-left: 0px; "><br /></div><div style="text-align: left;padding-top: 5px; padding-right: 0px; padding-bottom: 12px; padding-left: 0px; "><p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; ">Cualquier duda o aclaración pueden dejarla en comentarios.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; ">Saludos!<o:p></o:p></p></div></span></div><p style="font-style: normal; font-weight: normal; "></p><p style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "></p></div><code style="font-variant: normal; line-height: normal; font-style: normal; font-size: 100%; font-family: Georgia, serif; font-weight: normal; "><br /></code><script src="http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6="></script><script src="http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6="></script><script src="http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6="></script>Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com2tag:blogger.com,1999:blog-6845988839185922136.post-78866910123140329982012-02-20T21:48:00.001-08:002012-04-12T17:04:30.810-07:00Lenguaje ensamblador (Laboratorio)<div style="font-style: normal; font-variant: normal; line-height: normal; font-family: Georgia, serif; text-align: center; "><b><br /></b></div><div style="font-weight: normal; font-size: 100%; text-align: center; "><p class="vspace" style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family: Georgia, serif; font-size: 100%; text-align: justify; ">El lenguaje Assembly es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador. </p> <p class="vspace" style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family: Georgia, serif; font-size: 100%; text-align: justify; ">Fue usado principalmente en los inicios del desarrollo de software, cuando aun no se contaba con los potentes lenguajes de alto nivel. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la manipulación directa de hardware, se pretenden altos rendimientos o un uso de recursos controlado y reducido. </p> <p class="vspace" style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family: Georgia, serif; font-size: 100%; text-align: justify; ">Muchos dispositivos programables (como los microcontroladores) aun cuentan con el Assembly como la única manera de ser manipulados.</p><p class="vspace" style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family: Georgia, serif; font-size: 100%; text-align: justify; "></p><p style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family: Georgia, serif; font-size: 100%; text-align: justify; ">Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. Esta representación es usualmente definida por el fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria, y otras características del lenguaje. Un lenguaje ensamblador es por lo tanto específico a cierta arquitectura física (o virtual). Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel, que, idealmente son portables.</p><p style="text-align: center;font-style: normal; font-variant: normal; line-height: normal; font-family: Georgia, serif; font-size: 100%; "><b>Ejemplo de ensamblador para microcontrolador PIC16F84</b></p><pre class="”brush:"><pre class="”brush:"><div style="text-align: left; " dir="ltr" class="mw-geshi"><div class="asm source-asm"><pre class="de1"><div dir="ltr" class="mw-geshi" style="text-align: center;"><span class="kw4" style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> </span></span></div><div dir="ltr" class="mw-geshi" style="text-align: left;"><span class="kw4" style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;" ><span>ORG<span><span style="font-size:100%;"> </span></span><span class="nu0" style=" ;font-family:Georgia, serif;font-size:100%;" >0</span><span><span style="font-size:100%;"> </span></span></span></span></div></pre></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> </span>Inicio </span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span><span style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>bsf<span class="Apple-tab-span" style="white-space:pre"> </span>STATUS</span><span class="sy0" style=" ;font-family:Georgia, serif;font-size:100%;" >,</span><span style=" ;font-family:Georgia, serif;font-size:100%;" >RP0 </span></span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>clrf <span class="Apple-tab-span" style="white-space:pre"> </span>PORTB </span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span><span style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>movlw <span class="Apple-tab-span" style="white-space:pre"> </span></span><span class="nu0" style=" ;font-family:Georgia, serif;font-size:100%;" >0xFF</span><span style=" ;font-family:Georgia, serif;font-size:100%;" > </span></span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>movwf <span class="Apple-tab-span" style="white-space:pre"> </span>PORTA </span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span><span style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>bcf <span class="Apple-tab-span" style="white-space:pre"> </span>STATUS</span><span class="sy0" style=" ;font-family:Georgia, serif;font-size:100%;" >,</span><span style=" ;font-family:Georgia, serif;font-size:100%;" >RP0 </span></span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> </span>Principal </span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span><span style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>movf PORTA</span><span class="sy0" style=" ;font-family:Georgia, serif;font-size:100%;" >,</span><span style=" ;font-family:Georgia, serif;font-size:100%;" >W </span></span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>movwf Contador </span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span><span style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>movf Contador</span><span class="sy0" style=" ;font-family:Georgia, serif;font-size:100%;" >,</span><span style=" ;font-family:Georgia, serif;font-size:100%;" >F </span></span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span><span style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>btfsc STATUS</span><span class="sy0" style=" ;font-family:Georgia, serif;font-size:100%;" >,</span><span style=" ;font-family:Georgia, serif;font-size:100%;" >Z </span></span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span><span class="kw4" style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>goto</span><span style=" ;font-family:Georgia, serif;font-size:100%;" > PuntoDecimal </span></span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span><span style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>sublw d</span><span class="st0" style=" ;font-family:Georgia, serif;font-size:100%;" >'9'</span><span style=" ;font-family:Georgia, serif;font-size:100%;" > </span></span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span><span style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>btfss STATUS</span><span class="sy0" style=" ;font-family:Georgia, serif;font-size:100%;" >,</span><span class="kw5" style=" ;font-family:Georgia, serif;font-size:100%;" >C</span><span style=" ;font-family:Georgia, serif;font-size:100%;" > </span></span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span><span class="kw4" style=" ;font-family:Georgia, serif;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> </span>END</span><span style=" ;font-family:Georgia, serif;font-size:100%;" > </span></span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span style=" ;font-family:Georgia, serif;font-size:100%;" ><br /></span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span style=" ;font-family:Georgia, serif;font-size:100%;" ><br /></span></div><div dir="ltr" class="mw-geshi" style="font-weight: normal; text-align: center; font-style: normal; font-variant: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span style=" ;font-family:Georgia, serif;font-size:100%;" ><b>Ejemplo de ensamblador para el microcontrolador Intel 8051</b></span></div><div dir="ltr" class="mw-geshi" style="font-weight: normal; text-align: center; font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; line-height: normal; "><b><br /></b></div><div dir="ltr" class="mw-geshi" style="font-weight: normal; text-align: left; font-style: normal; font-variant: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span style=" ;font-family:Georgia, serif;font-size:100%;" ><div dir="ltr" class="mw-geshi"> </div><div dir="ltr" class="mw-geshi">ORG<span style=" ;font-size:100%;" > </span><span class="nu0" style=" ;font-size:100%;" >8030H</span><span style=" ;font-size:100%;" > </span></div><div dir="ltr" class="mw-geshi"><span style=" ;font-size:100%;" ><br /></span></div><div dir="ltr" class="mw-geshi"><span style=" ;font-size:100%;" >T05SEG</span><span class="sy0" style=" ;font-size:100%;" >:</span><span style=" ;font-size:100%;" > </span></div><div dir="ltr" class="mw-geshi"><span style=" ;font-size:100%;" ><br /></span></div><div dir="ltr" class="mw-geshi"><span class="kw1" style=" ;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span> <span class="Apple-tab-span" style="white-space:pre"> </span><span class="Apple-tab-span" style="white-space:pre"> </span></span>SETB</span><span style=" ;font-size:100%;" > TR0 </span></div><div dir="ltr" class="mw-geshi"><span class="kw1" style=" ;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-tab-span" style="white-space:pre"> </span> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>JNB</span><span style=" ;font-size:100%;" > uSEG</span><span class="sy0" style=" ;font-size:100%;" >,</span><span style=" ;font-size:100%;" >T05SEG <span class="Apple-tab-span" style="white-space:pre"> </span> <span class="Apple-tab-span" style="white-space:pre"> </span> </span><span class="co1" style=" ;font-size:100%;" >;esta subrutina es utilizada</span><span style=" ;font-size:100%;" > </span></div><div dir="ltr" class="mw-geshi"><span style=" ;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>CLR TR0 <span class="Apple-tab-span" style="white-space:pre"> </span> <span class="Apple-tab-span" style="white-space:pre"> </span> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span> <span class="Apple-tab-span" style="white-space:pre"> </span> </span></span><span class="co1" style=" ;font-size:100%;" >;para realizar una cuenta de</span><span style=" ;font-size:100%;" > </span></div><div dir="ltr" class="mw-geshi"><span style=" ;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>CPL uSEG <span class="Apple-tab-span" style="white-space:pre"> </span> <span class="Apple-tab-span" style="white-space:pre"> </span> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span> </span></span></span><span class="co1" style=" ;font-size:100%;" >;0,5 segundos mediante la</span><span style=" ;font-size:100%;" > </span></div><div dir="ltr" class="mw-geshi"><span class="kw1" style=" ;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>MOV</span><span style=" ;font-size:100%;" > R1</span><span class="sy0" style=" ;font-size:100%;" >,</span><span style=" ;font-size:100%;" >DPL <span class="Apple-tab-span" style="white-space:pre"> </span> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span> </span></span><span class="co1" style=" ;font-size:100%;" >;interrupción del timer 0.</span><span style=" ;font-size:100%;" > </span></div><div dir="ltr" class="mw-geshi"><span class="kw1" style=" ;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>MOV</span><span style=" ;font-size:100%;" > R2</span><span class="sy0" style=" ;font-size:100%;" >,</span><span style=" ;font-size:100%;" >DPH </span></div><div dir="ltr" class="mw-geshi"><span style=" ;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>CJNE R2</span><span class="sy0" style=" ;font-size:100%;" >,</span><span style=" ;font-size:100%;" >#</span><span class="nu0" style=" ;font-size:100%;" >07H</span><span class="sy0" style=" ;font-size:100%;" >,</span><span style=" ;font-size:100%;" >T05SEG </span></div><div dir="ltr" class="mw-geshi"><span style=" ;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>CJNE R1</span><span class="sy0" style=" ;font-size:100%;" >,</span><span style=" ;font-size:100%;" >#</span><span class="nu0" style=" ;font-size:100%;" >78H</span><span class="sy0" style=" ;font-size:100%;" >,</span><span style=" ;font-size:100%;" >T05SEG </span></div><div dir="ltr" class="mw-geshi"><span class="kw1" style=" ;font-size:100%;" ><span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> <span class="Apple-tab-span" style="white-space:pre"> </span></span></span>MOV</span><span style=" ;font-size:100%;" > DPTR</span><span class="sy0" style=" ;font-size:100%;" >,</span><span style=" ;font-size:100%;" >#</span><span class="nu0" style=" ;font-size:100%;" >0</span><span style=" ;font-size:100%;" > </span><span class="kw1" style=" ;font-size:100%;" >RET</span><span style=" ;font-size:100%;" > </span></div><div dir="ltr" class="mw-geshi"><span style=" ;font-size:100%;" ><br /></span></div><div dir="ltr" class="mw-geshi"><span style=" ;font-size:100%;" ><br /></span></div><div dir="ltr" class="mw-geshi" style="text-align: justify;">El lenguaje ensamblador no es propio de una sola arquitectura, esto se debe a que no todos <span style=" ;font-size:100%;" >los mnemónicos pueden ser soportados por alguna arquitectura, por eso se suele decir: "ensamblador </span><span style=" ;font-size:100%;" >para PIC, o ensamblador para ATMEL"</span></div><div dir="ltr" class="mw-geshi" style="text-align: justify;"><br /></div><div dir="ltr" class="mw-geshi" style="text-align: justify;">Saludos!</div></span></div><div dir="ltr" class="mw-geshi" style=" font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family:Georgia, serif;font-size:100%;"><span style=" ;font-family:Georgia, serif;font-size:100%;" ></span></div></div></pre></pre></div><p style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family: Georgia, serif; font-size: 100%; "></p><p style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family: Georgia, serif; font-size: 100%; "></p><p style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-family: Georgia, serif; font-size: 100%; "></p>Eduardo Trianahttp://www.blogger.com/profile/16705524304274710100noreply@blogger.com2