tag:blogger.com,1999:blog-20359009588811919772024-03-13T15:35:55.350-07:00Computo integradoAVEhttp://www.blogger.com/profile/04905651130741095696noreply@blogger.comBlogger31125tag:blogger.com,1999:blog-2035900958881191977.post-39954697785550378482012-05-24T05:13:00.003-07:002012-05-24T05:13:49.372-07:00Proyecto Integrados - Carrito controlado arduino + android<b>Descripcion:</b><br />
Es un pequeño carro de juguete armado por nosotros, que se mueve por medio de indicaciones del celular con Android que son recibidas por el arduino por medio de blutooth del android y un modulo de blutooth que se le puso al arduino uno.<br />
<b><br /></b><br />
<b>Materiales:</b><br />
<ul>
<li>Arduino UNO </li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJHpRX0jaTANeKcc3aAjNd8RDQae-YsV6MuTN5jkQn2oZZjGbJIw39-b92Y_T2mxODZWWbyzFCSSp8A5j8VVJX5b11Ozaux_TsDYs-5qgu7t3jiaMUaPxwwB3iZ-mNcSINCYbxlZckwm9H/s1600/arduinounofront.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="165" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJHpRX0jaTANeKcc3aAjNd8RDQae-YsV6MuTN5jkQn2oZZjGbJIw39-b92Y_T2mxODZWWbyzFCSSp8A5j8VVJX5b11Ozaux_TsDYs-5qgu7t3jiaMUaPxwwB3iZ-mNcSINCYbxlZckwm9H/s200/arduinounofront.jpg" width="200" /></a></div>
<ul>
</ul>
<br />
<ul>
<li>Android</li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoB3LfdNc7tD1emvT_9ElLlU-TkHNahVEathBUjVxwovznkbklNCYFd0lHYN1VVvnVbwY0-JuDiNUAhvCQGh3i-AsQBhXrCURY3P81V65AAV3Gv19BSOgTRgK6f-_Tvp_UJaNaBsQo2-kC/s1600/android61.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="194" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoB3LfdNc7tD1emvT_9ElLlU-TkHNahVEathBUjVxwovznkbklNCYFd0lHYN1VVvnVbwY0-JuDiNUAhvCQGh3i-AsQBhXrCURY3P81V65AAV3Gv19BSOgTRgK6f-_Tvp_UJaNaBsQo2-kC/s200/android61.jpeg" width="200" /></a></div>
<ul>
<li>Modulo Bluetooth </li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8XlxtUkKKm5Z-_LL3Q_mKan62RncMqwgueR2ruyYmjLkj3otOF8XOK3lEdqWFBVwgXMGKp99fWQ5I6Mb3zk9WJvqn7hcPJJuAHmj1MN6KdZAg9xp8dk5jYbgrLjj4gAv1nPiEPDgDo2zI/s1600/modulo-bluetooth.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8XlxtUkKKm5Z-_LL3Q_mKan62RncMqwgueR2ruyYmjLkj3otOF8XOK3lEdqWFBVwgXMGKp99fWQ5I6Mb3zk9WJvqn7hcPJJuAHmj1MN6KdZAg9xp8dk5jYbgrLjj4gAv1nPiEPDgDo2zI/s200/modulo-bluetooth.jpg" width="200" /></a></div>
<br />
<ul>
<li>Motores</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2HmSqPrXxNHHD2aqET4YFfKcl7NUFZ4kl9w5xO3_hcoLVD3XYvutUOA2MNN9AYXlxA7Ntydi0l08NOXEDmOhcjuscAjCIbuyCkXmQIEYD7C9mmPT9r0XvalUnuc2nRLOuVMmHj-Aa_SHc/s1600/motor-dc.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2HmSqPrXxNHHD2aqET4YFfKcl7NUFZ4kl9w5xO3_hcoLVD3XYvutUOA2MNN9AYXlxA7Ntydi0l08NOXEDmOhcjuscAjCIbuyCkXmQIEYD7C9mmPT9r0XvalUnuc2nRLOuVMmHj-Aa_SHc/s200/motor-dc.jpg" width="200" /></a></div>
<br />
<ul>
<li>Placa de carrito </li>
<li>Llantas</li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimxu33u4ayZ1Ln6icTrmTRLHQOKTWPmibW_ltoTLWjJV6kLPxxMm1Cpc1FQ1AnRh-w8CoxP-GAN-2lFv6okEtYY4jixRUpiSv5JvWQKlQQPrXPcLKab7N1_GImcuEitfCXzgWBrjPdZPYW/s1600/1320715561_277244376_1-Fotos-de--4-llantas-para-carro-traxxas.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimxu33u4ayZ1Ln6icTrmTRLHQOKTWPmibW_ltoTLWjJV6kLPxxMm1Cpc1FQ1AnRh-w8CoxP-GAN-2lFv6okEtYY4jixRUpiSv5JvWQKlQQPrXPcLKab7N1_GImcuEitfCXzgWBrjPdZPYW/s200/1320715561_277244376_1-Fotos-de--4-llantas-para-carro-traxxas.jpg" width="200" /></a></div>
<br />
<ul>
<li>Esqueleto de carrito</li>
<li>Pilas</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFjC_14HZa9p35eMCMF9u6kUHYAY_vIf-Wo1A_PXu8XtABgywBQ-Wal8pu0bSrr_nKMUgzCqhJOF-31s4fh_Jr6pTG6SHgyfPoRFmoldNi0xe-JO1F8m8Nevz-RKQyLseJRLwYi0humcix/s1600/mn1500__26343__63941_zoom.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFjC_14HZa9p35eMCMF9u6kUHYAY_vIf-Wo1A_PXu8XtABgywBQ-Wal8pu0bSrr_nKMUgzCqhJOF-31s4fh_Jr6pTG6SHgyfPoRFmoldNi0xe-JO1F8m8Nevz-RKQyLseJRLwYi0humcix/s200/mn1500__26343__63941_zoom.jpg" width="200" /></a></div>
<br />
<br />
<br />
<b>Herramientas:</b><br />
<ul>
<li>Processing</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWWcZc0K92cnNu8JFZu2gsQ9hPTcX4V64yzO5grTzBe4eYySnz8WC67ASFYVlajwjouHU9ouZzE1zPC3_ZOm_fneXamIw7ov1fEJQmGklW8LiDFAtVOMaK4XObq0C22gplCFLOEIiwc3Ra/s1600/256px-Processing_Logo_Clipped.svg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWWcZc0K92cnNu8JFZu2gsQ9hPTcX4V64yzO5grTzBe4eYySnz8WC67ASFYVlajwjouHU9ouZzE1zPC3_ZOm_fneXamIw7ov1fEJQmGklW8LiDFAtVOMaK4XObq0C22gplCFLOEIiwc3Ra/s200/256px-Processing_Logo_Clipped.svg.png" width="200" /></a></div>
<br />
<br />
<br />
<ul>
<li>IDE arduino</li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhoaaXxKBdiSIQxqNvQYtpL0j7bamUx6FBav-sLjstJKuUDyO7hjrUDA5ptusGCL4izfXlYjvGqftVeA2ISmySLd7u7QCQqlF_KCyejk2ivvOjUUjVWzvx7dwlm47oK6vqEUWo4YmMe5uP/s1600/arduino_ide.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhoaaXxKBdiSIQxqNvQYtpL0j7bamUx6FBav-sLjstJKuUDyO7hjrUDA5ptusGCL4izfXlYjvGqftVeA2ISmySLd7u7QCQqlF_KCyejk2ivvOjUUjVWzvx7dwlm47oK6vqEUWo4YmMe5uP/s320/arduino_ide.png" width="266" /></a></div>
<br />
<ul>
<li>SDK android </li>
</ul>
<br />
<b>Elaboracion:</b><br />
Se programo el android por medio de Processing, el arduino con su IDE, se armo el carrito con piezas y materiales encontrados de cada integrante de juguetes cuando eramos pequeños, se fueron haciendo pruebas con arduino y processing, y tambien con difierentes carritos armados, hasta que por fin el carro que les presentamos pudo dar sus primeros pasos.<br />
<br />
Primer intento: <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVM16MV8YioNACBfywIxqEUIADlcvLdyV1nxr2a7cUyuw-Ai1p1SEB3l5g4RBBS-iSHSFtp7X2lgXMn1z_ZvL21Sf6s_kJDN3BO3mhLNpDZ-TBSb2sTjJ6QQDFLT_MqSebqDMZHhE1TCfy/s1600/cosa.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVM16MV8YioNACBfywIxqEUIADlcvLdyV1nxr2a7cUyuw-Ai1p1SEB3l5g4RBBS-iSHSFtp7X2lgXMn1z_ZvL21Sf6s_kJDN3BO3mhLNpDZ-TBSb2sTjJ6QQDFLT_MqSebqDMZHhE1TCfy/s320/cosa.png" width="320" /></a></div>
<br />
Segundo y final intento:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrac1QHXx74PIt4k7QiDbGck2So0E77Sb5fkS4eVu40EYQiViPAWe1H8WMBDZdAm1tuXy52oDYaUWnffdZbw8jPg0eFnD-sAXMgEUeXGD0Wtyw5Q76ua3a9oWtSgGHoCJtteVPVdh-oYkv/s1600/cosa2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrac1QHXx74PIt4k7QiDbGck2So0E77Sb5fkS4eVu40EYQiViPAWe1H8WMBDZdAm1tuXy52oDYaUWnffdZbw8jPg0eFnD-sAXMgEUeXGD0Wtyw5Q76ua3a9oWtSgGHoCJtteVPVdh-oYkv/s320/cosa2.png" width="320" /></a></div>
<br />
<br />
<b><br /></b><br />
<b>Codigo:</b><br />
<br />
<script src="https://gist.github.com/2776035.js?file=arduino.c">
</script>
<br />
<b><br />Funcionamiento:</b><br />
El carro solo da en dos direcciones hacia adelante y hacia atra, cuando da de reversa el carro levanta las llantas traseras para poder asi girar sobre su propio eje y poder dar vuelta. <br />
<b><br /></b><br />
<b>Video:</b><br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/s5LGztQKXMg" width="560"></iframe>Obed Guevarahttp://www.blogger.com/profile/04970162450835967179noreply@blogger.com9tag:blogger.com,1999:blog-2035900958881191977.post-51966191952062645862012-05-23T19:48:00.002-07:002012-05-23T20:02:12.719-07:00Tecnicas de optimizacion<br />
<div style="text-align: center;">
<span style="font-size: large;"><b><i>Tecnicas de Optimización:</i></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/AVvXsEhdJryIFJRJDPMnf5HRpa_R7nHmk2o4rxnZsHOT0yX-QukRKOaZVFv0NA6JB8Y8Jqh6H4xfy45WJLlfTnwwrGvhLFRTQBvPmzd7IlnEcOPs71s3E6yN2Vb6XeDERTsHnBxhmu3soxSmbaHa/s1600/optimizacion-web1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdJryIFJRJDPMnf5HRpa_R7nHmk2o4rxnZsHOT0yX-QukRKOaZVFv0NA6JB8Y8Jqh6H4xfy45WJLlfTnwwrGvhLFRTQBvPmzd7IlnEcOPs71s3E6yN2Vb6XeDERTsHnBxhmu3soxSmbaHa/s200/optimizacion-web1.png" width="200" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Simpre que se implementa cierto codigo ya sea para programacion para computo integrado o algun codigo esencial y de suma importancioa siempre se tiene que tener en cuenta variso factores:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>1-. El tiempo de procesamiento de los datos</b></div>
<div style="text-align: justify;">
<b>2-. Cantidad de memoria utilizada</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
En especial estas dos anteriores son muy importantes para lso diferentes circuitos integraods pos su baja memoria y su cpu.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
y siempre es necesario estimar la entrada de datos del problema comunmente esto se le llama complejidad del problema.<br />
<br />
La optimizacion o las tecnicas de la optimizacion son meramente diferentes tipos de herramientas para resolver diferentes tipos de problemas complejos ya sea meramente de informatica o mejorar series de pasos o procesos para una mejor ejecución</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<b><i>Cuando es adecuado utilizar la optimización.</i></b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
Varias de las veces el programador intenta realizar la optimizacion mientras esta codificando y esto esta meramente incorrecto ya que si es algo nuevo que realizarmo es realmente dificil que resulte algo bueno de la optimizacion sin antes conocer el problema o cierto algoritmo.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Lo primero que se tiene que realizar es crear el codigo o el algoritmo de tal manera que quede lo mas entendible para el programador y posteriormente realizar la optimización.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Existen diferentes tipos de herramientas que nos pueden ayudar a verificar la optimizacion para realizar pruebas de combertura de codigo y de memoria que es lo mas importante para CPU integrados:</div>
<br />
<span style="font-family: Arial; font-size: x-small; text-align: justify;">GNU Cov: </span><a href="http://www.sunsite.ualberta.ca/Documentation/Gnu/gcc-3.0.2/html_node/gcc_133.html#SEC133">http://www.sunsite.ualberta.ca/Documentation/Gnu/gcc-3.0.2/html_node/gcc_133.html#SEC133</a><br />
<span style="font-family: Arial; font-size: x-small; text-align: justify;">GNU Prof:</span><a href="http://projects.gnome.org/memprof/">http://projects.gnome.org/memprof/</a><br />
<span style="font-family: Arial; font-size: x-small; text-align: justify;">Memprof: </span><a href="http://projects.gnome.org/memprof/">http://projects.gnome.org/memprof/</a><br />
<br />
Posteriormente de esto podemos utilizar varias tecnicas para optimizar:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLBRooR9BphutdkgOlerhnbTZSK3rA0uPseJsjlR1O81xJw7Y-YjYeiHD27PxFyfz03FfheuAyyiB1FGfWKyGAkdKOorTcUXyVkX3JQir2BFGJF04FAfziLsePC6frp_oFOpCmFsLm4WZy/s1600/La-necesidad-de-plantear-objetivos-claros.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="199" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLBRooR9BphutdkgOlerhnbTZSK3rA0uPseJsjlR1O81xJw7Y-YjYeiHD27PxFyfz03FfheuAyyiB1FGfWKyGAkdKOorTcUXyVkX3JQir2BFGJF04FAfziLsePC6frp_oFOpCmFsLm4WZy/s200/La-necesidad-de-plantear-objetivos-claros.jpg" width="200" /></a></div>
<br />
<br />
1-. Eliminar codigo inecesario<br />
2-. Evitar los bluces lo mayot posible<br />
3-. Optimizar el acceso a la memoria (importante para los TLC o CPU integrados)<br />
4-.Identificar partes del codigo mas pesado y enfocarse en esas partes del codigo<br />
<br />
<div style="text-align: center;">
<b>Ventajas de la Optimización:</b></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/AVvXsEiKYLLNjqAySOSxIDgPtxGVCU7X15VZksoH-bJSbngZWkffFqVzDNIKC194T1oC4BH1YDpYdHgWh-MbfJgSpwNDyZ57m-M0HDzhyM9q4MSqMmYEBGBtPP0NVJSz6EXs9qWPZfk3MLBpjLrU/s1600/optimizar-blog.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="199" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKYLLNjqAySOSxIDgPtxGVCU7X15VZksoH-bJSbngZWkffFqVzDNIKC194T1oC4BH1YDpYdHgWh-MbfJgSpwNDyZ57m-M0HDzhyM9q4MSqMmYEBGBtPP0NVJSz6EXs9qWPZfk3MLBpjLrU/s200/optimizar-blog.jpg" width="200" /></a></div>
<br />
<br />
Una de las primeras ventajas es que mejora considerablemente el codigo y al hora de ejecutarlo.<br />
<br />
En caso de los integrados:<br />
<br />
1- Mejora el tiempo de oscilacion del reloj<br />
2-. Es mas eficiente al entrar la memoria<br />
3-. Ocurren menos fallas.<br />
<br />
<br />
Aqui una imagen o una grafica de como se puede manejar la optimizacion dependiendo del problema:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFzcHf2S7dxnGRvQqzjEremxPqMlcSxtoa4-fATUrZCbcju21GFmUbPtU6pfNd3bk01aHGjdtbANNQmeC43jOSoZB8GzciEtPHramPyhY-YNvHAK3IqYb-hzrSQfk0VlcfKFqPn_pN5ekW/s1600/zztree.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFzcHf2S7dxnGRvQqzjEremxPqMlcSxtoa4-fATUrZCbcju21GFmUbPtU6pfNd3bk01aHGjdtbANNQmeC43jOSoZB8GzciEtPHramPyhY-YNvHAK3IqYb-hzrSQfk0VlcfKFqPn_pN5ekW/s320/zztree.gif" width="320" /></a></div>
<br />
<br />
Referencias:<br />
<a href="http://www.tufuncion.com/optimizar-codigo">http://www.tufuncion.com/optimizar-codigo</a><br />
<a href="http://msdn.microsoft.com/es-es/library/xz7ttk5s(v=vs.80).aspx">http://msdn.microsoft.com/es-es/library/xz7ttk5s(v=vs.80).aspx</a><br />
<br />
<br />
<br />
<br />
<br />
<br />AVEhttp://www.blogger.com/profile/04905651130741095696noreply@blogger.com1tag:blogger.com,1999:blog-2035900958881191977.post-41774800104303535122012-05-20T19:20:00.002-07:002012-05-20T19:21:32.191-07:00Ambientes inteligentesUn usuario llega a la oficina y de forma automática unos dispositivos electrónicos adaptan la luz y la temperatura de la sala. El ordenador se conecta y activa los programas más utilizados habitualmente. Todo el entorno físico está personalizado y se adapta a las necesidades de cada persona: son los ambientes inteligentes, una de las grandes apuestas tecnológicas para el futuro que modificará nuestro entorno más próximo a escala doméstica, social y laboral.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-vZRf1ayG8lLB7QlZI4FlYa3JKpP_VAoDvM9dYwpB09pm7kgB9cesyeIIKjAp6rYVaEZOVwhf8dXacZXTeY6QFpYbvPkYDLf6nadVhlS4x5S1m65hnlKliPKcQYXiOgS-dm_i_2g3yc_o/s1600/domoticas.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-vZRf1ayG8lLB7QlZI4FlYa3JKpP_VAoDvM9dYwpB09pm7kgB9cesyeIIKjAp6rYVaEZOVwhf8dXacZXTeY6QFpYbvPkYDLf6nadVhlS4x5S1m65hnlKliPKcQYXiOgS-dm_i_2g3yc_o/s200/domoticas.jpeg" width="197" /></a></div>
<br />
<br />
<b>¿Que son los ambientes inteligentes?</b><br />
Es una propuesta. A todas aquellas personas que piensen que la comodidad es algo importante, que les guste mantenerse a la vanguardia en la tecnología, las que con una pequeña inversión quieran hacer ganar plusvalía a una propiedad en muy corto tiempo, o las que piensen que la seguridad de su familia es algo primordial.<br />
<b><br />Propiedades</b><br />
Ubicuidad, transparencia e inteligencia son las tres propiedades básicas de los ambientes inteligentes: ubicuidad para encontrarlos en el punto donde esté el usuario, transparencia para pasar desapercibidos en el medio físico e inteligencia para adaptarse a las preferencias de cada individuo. "La capacidad de alimentación autónoma -comenta López Villegas- es uno de los aspectos más significativos de los dispositivos. Por esto, tenemos que encontrar metodologías eficientes, es decir, materiales y sistemas que puedan aprovechar al máximo la energía y para reducir al mínimo el consumo de las unidades de emisión-recepción".<br />
<b><br />¿Qué es la domótica?</b><br />
Domótica es el término "científico" que se utiliza para denominar la parte de la tecnología (electrónica e informática), que integra el control y supervisión de los elementos existentes en un edificio de oficinas o en uno de viviendas o simplemente en cualquier hogar. También, un término muy familiar para todos es el de "edificio inteligente" que aunque viene a referirse a la misma cosa, normalmente tendemos a aplicarlo más al ámbito de los grandes bloques de oficinas, bancos, universidades y edificios industriales.<br />
<b><br />¿QUÉ APORTA LA DOMÓTICA?</b><br />
La domótica contribuye a mejorar la calidad de vida del usuario:<br />
<ul>
<li>Facilitando el ahorro energético: gestiona inteligentemente la iluminación, climatización, agua caliente sanitaria, el riego, los electrodomésticos, etc., aprovechando mejor los recursos naturales, utilizando las tarifas horarias de menor coste, y reduce de esta manera la factura energética. Además, mediante la monitorización de consumos, se obtiene la información necesaria para modificar los hábitos y aumentar el ahorro y la eficiencia.</li>
<li>Fomentando la accesibilidad: facilita el manejo de los elementos del hogar a las personas con discapacidades de la forma que más se ajuste a sus necesidades, además de ofrecer servicios de teleasistencia para aquellos que lo necesiten.</li>
<li>Aportando seguridad de personas, animales y bienes: controles de intrusión y alarmas técnicas que permiten detectar incendios, fugas de gas o inundaciones de agua, etc.</li>
<li>Convirtiendo la vivienda en un hogar más confortable: gestión de electrodomésticos, climatización, ventilación, iluminación natural y artificial…</li>
<li>Garantizando las comunicaciones: recepción de avisos de anomalías e información del funcionamiento de equipos e instalaciones, gestión remota del hogar, etc. </li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHvbuzUkd3oIKqDXPsYDrKV513pDgliAzwKxAfNSH96eGjVBkfA3_DIcCuuw_ptFkRlOP20SoPTIPe2Q6S5zyV029g9jPV_O-L1rkLjP-HsHMlsjg3b7XB0OlLuPmemP1KSSWXDf8NwjNI/s1600/domotica-caracteristicas.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHvbuzUkd3oIKqDXPsYDrKV513pDgliAzwKxAfNSH96eGjVBkfA3_DIcCuuw_ptFkRlOP20SoPTIPe2Q6S5zyV029g9jPV_O-L1rkLjP-HsHMlsjg3b7XB0OlLuPmemP1KSSWXDf8NwjNI/s200/domotica-caracteristicas.jpg" width="200" /></a></div>
<br />
<b>Tipo de Arquitectura</b><br />
La arquitectura de un sistema domótico, como la de cualquier sistema de control, especifica el modo en que los diferentes elementos de control del sistema se van a ubicar. Existen dos arquitecturas básicas: la arquitectura centralizada y la distribuida.<br />
<u><i><br />Arquitectura centralizada: </i></u>Es aquella en la que los elementos a controlar y supervisar (sensores, luces, válvulas, etc.) han de cablearse hasta el sistema de control de la vivienda (PC o similar). El sistema de control es el corazón de la vivienda, en cuya falta todo deja de funcionar, y su instalación no es compatible con la instalación eléctrica convencional en cuanto que en la fase de construcción hay que elegir esta topología de cableado.<br />
<u><i><br />Arquitectura distribuida:</i></u> Es aquella en la que el elemento de control se sitúa próximo al elemento a controlar. Hay sistemas que son de arquitectura distribuida en cuanto a la capacidad de proceso, pero no lo son en cuanto a la ubicación física de los diferentes elementos de control y viceversa, sistemas que son de arquitectura distribuida en cuanto a su capacidad para ubicar elementos de control físicamente distribuidos, pero no en cuanto a los procesos de control, que son ejecutados en uno o varios procesadores físicamente centralizados.<br />
<br />
En los sistemas de arquitectura distribuida que utilizan como medio de transmisión el cable, existe un concepto a tener en cuenta que es la topología de la red de comunicaciones. La topología de la red se define como la distribución física de los elementos de control respecto al medio de comunicación (cable).<br />
<br />
Cada elemento del sistema tiene su propia capacidad de proceso y puede ser ubicado en cualquier parte de la vivienda. Esta característica proporciona al instalador domótico una libertad de diseño que le posibilita adaptarse a las características físicas de cada vivienda en particular.<br />
<b><br />Aplicaciones. </b><br />
<u><i>Seguridad </i></u><br />
Detección de intrusos, de humo, gas e incendio; control de válvulas de agua. Sistema completo de seguridad que también permite programar códigos de usuario para la seguridad y personalizarlos con eventos. Programa 8 números telefónicos para notificación en caso de emergencia.<br />
<br />
<a href="http://ambientes-inteligentes.com/images/Fotos/camara.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://ambientes-inteligentes.com/images/Fotos/camara.png" /></a><br />
Vigilancia: Vigile a sus seres queridos, bríndeles tele asistencia,
proteja sus bienes patrimoniales y su seguridad personal. Por medio de
sistema de vigilancia con cámaras análogas o IP (para verlas desde
internet), grabe los acontecimientos, las cámaras le notifican si sucede
algo o responda su video portero desde donde esté. <br />
<br />
<br />
<br />
<a href="http://ambientes-inteligentes.com/images/Fotos/teclado.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://ambientes-inteligentes.com/images/Fotos/teclado.png" /></a><u><i>Control de Acceso</i></u>:Por teclados, etiquetas, tarjetas de proximidad o
simplemente con la huella de su dedo, puede controlar el acceso a
ciertas áreas de la residencia o armar escenas completas.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<a href="http://ambientes-inteligentes.com/images/Fotos/iluminacion%20escena.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://ambientes-inteligentes.com/images/Fotos/iluminacion%20escena.png" /></a><u><i>Control de Iluminación</i></u>: Control de iluminación por horarios, detección de movimientos, apertura de puertas etc. Crea eventos como relax, lectura, luces on y off, romántico y demás escenas que le proporcionan comodidad en el hogar. Puede operar dispositivos de diferentes marcas y tener una completa integración. <br />
<br />
<br />
<br />
Confort.<br />
<u><i>Termostatos</i></u>: Los termostatos le permiten controlar. La
temperatura del hogar, programarlos por horarios o eventos como (en casa
dormido, ausente, etc.). Control total de la temperatura en, lugares
como los áticos, sótanos, patios, cavas, etc. Y teniendo un control
inteligente de estos, reducimos el consumo de energía innecesaria<br />
<br />
<br />
<a href="http://ambientes-inteligentes.com/images/Fotos/ASD11RBK_ALL_ot_15.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://ambientes-inteligentes.com/images/Fotos/ASD11RBK_ALL_ot_15.jpg" /></a><br />
<br />
<u><i>Distribución
de Audio y Video</i></u>: Disfrute de la música en cualquiera de las zonas de la
casa u oficina, y seleccione en cualquier momento la fuente que desee.
Controle los horarios y programación del entretenimiento por TV y audio
para los más pequeños, disfrute de una buena película, una fiesta y de
la tranquilidad que solo la música le puede dar. <br />
<br />
<br />
<br />
<u><i></i></u> <br />
<br />
<u><i>Accesibilidad:</i></u> En la accesibilidad se incluyen las aplicaciones o instalaciones de control remoto del entorno que favorecen la autonomía personal de personas con limitaciones funcionales, o discapacidad.<br />
La domótica aplicada a favorecer la accesibilidad es un reto ético y creativo pero sobre todo es la aplicación de la tecnología en el campo más necesario, para suplir limitaciones funcionales de las personas. El objetivo de estas tecnologías es favorecer la autonomía personal. Los destinatarios de estas tecnologías son todas las personas, ya que por enfermedad o envejecimiento, todos somos o seremos discapacitados, más pronto o más tarde.<br />
<br />
<b>Bibliografias:</b><span style="font-size: x-small;"> </span><br />
<span style="font-size: x-small;"><a href="http://noticias.universia.es/ciencia-nn-tt/noticia/2005/01/25/609407/ambientes-inteligentes.html">http://noticias.universia.es/ciencia-nn-tt/noticia/2005/01/25/609407/ambientes-inteligentes.html</a><span style="background-color: white; color: #333333; display: inline ! important; float: none; font-family: Arial,Helvetica,sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17px; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"> </span></span><br />
<span style="font-size: x-small;"><a href="http://www.monografias.com/trabajos35/domotica/domotica.shtml">http://www.monografias.com/trabajos35/domotica/domotica.shtml</a></span><span style="font-size: x-small;"><span style="background-color: white; color: #333333; display: inline ! important; float: none; font-family: Arial,Helvetica,sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17px; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"> </span></span><br />
<span style="font-size: x-small;"><a href="http://ambientes-inteligentes.com/gpage.html">http://ambientes-inteligentes.com/gpage.html</a></span><span style="font-size: x-small;"><span style="background-color: white; color: #333333; display: inline ! important; float: none; font-family: Arial,Helvetica,sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17px; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"> </span></span>Obed Guevarahttp://www.blogger.com/profile/04970162450835967179noreply@blogger.com0tag:blogger.com,1999:blog-2035900958881191977.post-91730354348656831962012-05-20T12:48:00.000-07:002012-05-20T17:54:51.380-07:00Dispositivos Perifericos<span style="font-size: small;">Las Computadoras son una herramienta esencial, prácticamente en casi todos los campos de nuestras vidas; es útil, ayuda a la mejora y excelencia del trabajo; lo que lo hace mucho mas fácil y práctico<br /><br />El papel que juegan los dispositivos periféricos de la computadora es esencial, ya que sin tales dispositivos la computadora no sería útil a los usuarios.<br /><br />Los dispositivos periféricos nos ayudan a introducir a la computadora los datos para que esta nos ayude a la resolución de problemas y por consiguiente obtener el resultado de dichas operaciones, es decir; estos dispositivos nos ayudan a comunicarnos con la computadora, para que esta a su vez nos ayude a resolver los problemas que tengamos y realice las operaciones que nosotros no podamos realizar manualmente.<b> </b></span><br />
<span style="font-size: small;"><br /></span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1THdrMDYISGjYpxFf_pIq4IA7jf5aHUW4-0MC1VbmKPxQvVuCjlbsJ2Q4RDkjeryC2JyO9e4xjqMoQrlfXEvugj13Ya3ktOpxEA7M3Wd3M4Uswd9SZ85sJoJ0nzgbapdiWFTvtOCSMfXc/s1600/elementos.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1THdrMDYISGjYpxFf_pIq4IA7jf5aHUW4-0MC1VbmKPxQvVuCjlbsJ2Q4RDkjeryC2JyO9e4xjqMoQrlfXEvugj13Ya3ktOpxEA7M3Wd3M4Uswd9SZ85sJoJ0nzgbapdiWFTvtOCSMfXc/s200/elementos.jpg" width="200" /></a></span></div>
<br />
<span style="font-size: small;"><b>Dispositivos perifericos de entreada</b><br />Un dispositivo periférico que genera entradas para la computadora, tal como un teclado, explorador, etc.<br /><br />Los dispositivos de entrada más comunes son:</span><br />
<ul>
<li><span style="font-size: small;">Teclado (Keyboard)</span></li>
<li><span style="font-size: small;">Ratón (Mouse)</span></li>
<li><span style="font-size: small;">Bola de guía (Trackball)</span></li>
<li><span style="font-size: small;">Lápiz óptico (Optical reader)</span></li>
<li><span style="font-size: small;">Explorador (Scanner)</span></li>
<li><span style="font-size: small;">Palanca de juegos (JoyStick)</span></li>
<li><span style="font-size: small;">Cámara digital (Digital camera)</span></li>
<li><span style="font-size: small;">Micrófono (Microphone).</span></li>
</ul>
<span style="font-size: small;"><b>Dispisitivos perifericos de salida</b><br />Cualquier dispositivo periférico que recibe la salida de la computadora, tal como una pantalla de vídeo, impresora, perforadora de tarjetas o unidad de comunicaciones. A pesar de que los discos y cintas reciben la salida de la computadora, son considerados dispositivos de almacenamiento.<br /><br />Los dispositivos de salida más comunes son:</span><br />
<ul>
<li><span style="font-size: small;">Monitor (Monitor)</span></li>
<li><span style="font-size: small;">Impresora (Printer)</span></li>
<li><span style="font-size: small;">Graficadores (Plotter)</span></li>
<li><span style="font-size: small;">Bocinas.</span></li>
</ul>
<span style="color: black;"><b>Dispositivos de almacenamiento</b></span><br />Es todo aparato que se utilice para grabar los datos de la computadora de forma permanente o temporal. Una unidad de disco, junto con los discos que graba, es un dispositivo de almacenamiento. A veces se dice que una computadora tiene dispositivos de almacenamiento primarios (o principales) y secundarios (o auxiliares). Cuando se hace esta distinción, el dispositivo de almacenamiento primario es la memoria de acceso aleatorio (RAM) de la computadora, un dispositivo de almacenamiento permanente pero cuyo contenido es temporal. El almacenamiento secundario incluye los dispositivos de almacenamiento más permanentes, como unidades de disco y de cinta. <br /><br /> <br />
<ul>
<li>Discos flexibles </li>
<li>Discos duros.</li>
<li>Cintas magnéticas </li>
<li> CD-ROMs </li>
</ul>
<br />
<b>Dispositivos de entrada y salida</b> <br />
Son aquellos dispositivos que pueden enviar datos y que a su vez pueden recibir datos. Entre ellos se encuentran.<br />
<ul>
<li>
El Módem </li>
<li>El Fax/Módem </li>
<li>Tarjetas de red.</li>
</ul>
<br />
<br />
<span style="font-size: small;"><b>¿Cómo se instalan?</b></span><br />
<span style="font-size: small;"><b><br /></b>Dependiendo del tipo de dispositivo elegido,
como un teclado, ratón,grabadora de formato DVD o Blu-ray, tarjeta de
sonido y disco duro, se lleva a cabo un proceso de instalación muy
distinto a los demás. En base hay dos grandes grupos. Por un lado, los
dispositivos y accesorios que se instalan en el equipo informático
mediante el uso de una conexión USB o inalámbrica.</span><span style="font-size: small;"><b> </b></span><br />
<span style="font-size: small;"><b> </b></span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdq0GnjFNhqCorbNzc0WHxii238tgGbALMtogmI_i3T6xk7oNzAmxUORpzZ2XrXbD8dEElKWUlFKLkVWlb-ljI8_VpfaJqQ9oJfizGHy4AjiW1zL98Q0OEsqSmn9VptJxB1LJilyk7fz2Z/s1600/cd-rom3.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdq0GnjFNhqCorbNzc0WHxii238tgGbALMtogmI_i3T6xk7oNzAmxUORpzZ2XrXbD8dEElKWUlFKLkVWlb-ljI8_VpfaJqQ9oJfizGHy4AjiW1zL98Q0OEsqSmn9VptJxB1LJilyk7fz2Z/s200/cd-rom3.jpg" width="191" /></a><span style="font-size: small;"> </span><br />
<span style="font-size: small;">En este caso los propios dispositivos envían una señal al ordenador desde la conexión USB para transmitirles todos los datos de instalación. Con este tipo de accesorios sólo hay que esperar unos minutos, ya que el ordenador se encargará absolutamente de todo el proceso. Algunos dispositivos de instalación por USB son la cámara Logitech HD Webcam C510 por 40 euros enPCComponentes.com y el Kensington ValuKeyboard por 9,20 euros enAcuista.com.<br /><br />Por otro lado están los dispositivos que requieren una instalación directamente en la torre del ordenador, siendo un requisito imprescindible abrirla y buscar el lugar adecuado para cada componente. Esta instalación es un poco más complicada, y se recomienda apagar el equipo al completo para no sufrir ninguna avería. Una vez se han colocado las piezas se vuelve a montar el equipo tal y como estaba la primera vez. Un buen ejemplo es el WE Caviar Green por 68,90 euros en Alternate.es, constatado el 30 de julio de 2011.<br /><br />En resumen, los dispositivos periféricos son accesorios imprescindibles, en su justa medida, como el teclado y el ratón, y se instalan en base a dos procesos: con conexión automática USB o realizando un añadido de componentes dentro del ordenador.</span><br />
<br />
<span style="font-size: small;"><b>Caracteristicas de los dispositivos perifericos</b> </span><br />
Duración<br />
Es la permanencia sin alteración de los datos a lo largo del tiempo. Algunos soportes van perdiendo la señal escrita a lo largo del tiempo y acaban perdiendo los datos por obsolencia física del soporte.<br /><br />Tipo de acceso<br />
Característica vinculada al dispositivo lector/grabador. Un dispositivo es de acceso secuencial si para acceder a un dato determinado debemos acceder primero a todos los que le preceden físicamente (Ejemplo: las cintas magnéticas). Se dice, en cambio, que un dispositivo permite el acceso directo si podemos acceder a un dato sin necesidad de pasar por los datos que le preceden (Ejemplo: disco magnético).<br /><br />Transportabilidad<br />
Un soporte de información es transportable, si es susceptible de ser trasladado de una unidad periférica a otra. Ejemplo: el disquete puede ser utilizado en distintas disqueteras de su mismo formato. Por el contrario hay soportes de información fijos, que no pueden extraerse de la unidad correspondiente. (Ejemplo disco duro).<br />
<br />
<b><span style="font-size: x-small;">Bibliografia:</span></b><br />
<span style="font-size: x-small;"><a href="http://disperifericos.galeon.com/">http://disperifericos.galeon.com/</a></span><br />
<span style="font-size: x-small;"><a href="http://es.over-blog.com/Que_son_los_dispositivos_perifericos_y_como_se_instalan-1228321779-art318123.html">http://es.over-blog.com/Que_son_los_dispositivos_perifericos_y_como_se_instalan-1228321779-art318123.html</a></span><span style="font-size: x-small;"> </span>Obed Guevarahttp://www.blogger.com/profile/04970162450835967179noreply@blogger.com1tag:blogger.com,1999:blog-2035900958881191977.post-3825373774200553132012-05-17T12:19:00.000-07:002012-05-17T20:16:54.524-07:00Poyecto PIC<b>Auto Increible. </b> <br />
Lo que se realizo fue un programa que prende y apaga 8 led´s secuencialmente de ida y de regreso. Simulando las luces del auto increible XD.<br />
<b><br /></b><br />
<b>Componenetes</b><br />
<div style="text-align: left;">
Pic16f628a </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjElbn1WawbcPWjnpCE-jTwm96-HtGaNumrMzWHHpdGlllC90YgUfHHe-gE9ruPc35t3RN4DUhiWZZ00AW2MeCddeX-Bd8UkBbmkRq59XUuKRa5xaKSHNqAdIhSnMxO2t2vUki2CHH4JY6J/s1600/PIC16F628A-IP.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjElbn1WawbcPWjnpCE-jTwm96-HtGaNumrMzWHHpdGlllC90YgUfHHe-gE9ruPc35t3RN4DUhiWZZ00AW2MeCddeX-Bd8UkBbmkRq59XUuKRa5xaKSHNqAdIhSnMxO2t2vUki2CHH4JY6J/s200/PIC16F628A-IP.jpg" width="189" /></a></div>
<br />
<div style="text-align: left;">
8led´s</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ia4USgsKyDCwRB2rECNBllAsgD2mstDlLXsDQAlqElGpkhiTWip1NuP8VrnLLq9Dj8UCI0QkXRGVAj8xm4xJi__PnTpatf6Z_ZcKo_ptvZv6yJr0_mne8SBZN6eZsf1VHdMVYg6OM8zT/s1600/1198806730_leds.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ia4USgsKyDCwRB2rECNBllAsgD2mstDlLXsDQAlqElGpkhiTWip1NuP8VrnLLq9Dj8UCI0QkXRGVAj8xm4xJi__PnTpatf6Z_ZcKo_ptvZv6yJr0_mne8SBZN6eZsf1VHdMVYg6OM8zT/s200/1198806730_leds.jpg" width="200" /></a></div>
<br />
<div style="text-align: left;">
8 resistencias de 330 ohms</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBMSp42uZN9GvYEucRy2CHcWnx_05f9kv5FJfxn6jiqpANoAyxPCoYxK2sFSId0BS21G0Zle0YbJzlqGddK5Ar01D17AI4jGQ1kIA4e7Q5P2CHyAxh6EdHLDniZWMiq_Sz3l4gOd77lnqT/s1600/resistencias.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBMSp42uZN9GvYEucRy2CHcWnx_05f9kv5FJfxn6jiqpANoAyxPCoYxK2sFSId0BS21G0Zle0YbJzlqGddK5Ar01D17AI4jGQ1kIA4e7Q5P2CHyAxh6EdHLDniZWMiq_Sz3l4gOd77lnqT/s200/resistencias.jpg" width="200" /></a></div>
<br />
<div style="text-align: left;">
Cable </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhazk_dAZRrMKdKmMAD0vGdJdEkL_xgpc8Y-NLbSFq9oXwmZMCjDE0slbV27QNLb0BavEJ-VIBdDemzOXiShhApr0Pnivh79-U3KLTyygzfRgMwgx0ny0Tm71MOWI_6zc129D8EnBXDYXEH/s1600/set-de-cables-premium-para-protoboard-100-unid.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhazk_dAZRrMKdKmMAD0vGdJdEkL_xgpc8Y-NLbSFq9oXwmZMCjDE0slbV27QNLb0BavEJ-VIBdDemzOXiShhApr0Pnivh79-U3KLTyygzfRgMwgx0ny0Tm71MOWI_6zc129D8EnBXDYXEH/s200/set-de-cables-premium-para-protoboard-100-unid.jpg" width="200" /></a></div>
<br />
<div style="text-align: left;">
Protoboard</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG15ipP7ZODhJYEAFiN8wA0cSZ7jdw07Xjvt1eGWC_SvJkCqJOdiqIJNsEc_NMCG_bzWyVOjIn5cMosVFLy5JJcwQvzH7ctn-ViTzDUGaG-lk7pD7_vXxd6_7poN-jmdFCpsRBIaXy-WCi/s1600/protoboar.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="116" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG15ipP7ZODhJYEAFiN8wA0cSZ7jdw07Xjvt1eGWC_SvJkCqJOdiqIJNsEc_NMCG_bzWyVOjIn5cMosVFLy5JJcwQvzH7ctn-ViTzDUGaG-lk7pD7_vXxd6_7poN-jmdFCpsRBIaXy-WCi/s320/protoboar.jpg" width="320" /></a></div>
<br />
IDE PCW<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidQoy3OPqIFjJ311yvcq4qi4cr76FYjP7ZWnQJNDDWv1Cv8XOA142iqCt0SIHgs9Hw65yzum9kPEGJ0B6e9eVXgguJXWr0zaf1KJrKaaB4vXNRb6_mFQdEm0jleKq8rM9l08Td2FloScgi/s1600/ide.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidQoy3OPqIFjJ311yvcq4qi4cr76FYjP7ZWnQJNDDWv1Cv8XOA142iqCt0SIHgs9Hw65yzum9kPEGJ0B6e9eVXgguJXWr0zaf1KJrKaaB4vXNRb6_mFQdEm0jleKq8rM9l08Td2FloScgi/s200/ide.png" width="200" /></a></div>
<br />
Proteus<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitlKNv-GgPhZ8nubu4MaTR2QajWA2HrziPMgye-hLQc0c8mJASQ2em97Fzu0nQnHESwEZVl5Do1hSBzngXyer6u67W8kzeskor4KAGthax9OL7nUUka9GA5cmVJafLVB9ydyyKzEsIx17k/s1600/proteus7.4L(1).png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="118" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitlKNv-GgPhZ8nubu4MaTR2QajWA2HrziPMgye-hLQc0c8mJASQ2em97Fzu0nQnHESwEZVl5Do1hSBzngXyer6u67W8kzeskor4KAGthax9OL7nUUka9GA5cmVJafLVB9ydyyKzEsIx17k/s200/proteus7.4L(1).png" width="200" /></a></div>
<br />
<br />
<br />
Diagrama en proteus: <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG7MwFODPjuipzlUXo8p5lFYJ3z1BKRim4U-7UDuoJAQUKM7roFmtmp1CijG5AdYIR6vPRcUfvOQgxxePn8O26f9YkDlyG-4zAMkx-XPtFCcbqoPDgb1QNTkKVjffDrOeXPT4VkUiwAZbe/s1600/cosa3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG7MwFODPjuipzlUXo8p5lFYJ3z1BKRim4U-7UDuoJAQUKM7roFmtmp1CijG5AdYIR6vPRcUfvOQgxxePn8O26f9YkDlyG-4zAMkx-XPtFCcbqoPDgb1QNTkKVjffDrOeXPT4VkUiwAZbe/s200/cosa3.png" width="200" /></a></div>
<br />
<br />
Programador: <b>Micro PRO</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCyE6tpHCsLM9THbg2pL8P1svCKWiM2fUeGKOeoKsWkQ5InSqXiyz2T_EtYbjQYkM5AXCO2_zd1ki07mvAKKsiarmJWqsZjYHwKiL4Lt1pgrlYHqSK1Qhu__WzXQuKekvz2ZVeAVYGiXOp/s1600/cosa2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCyE6tpHCsLM9THbg2pL8P1svCKWiM2fUeGKOeoKsWkQ5InSqXiyz2T_EtYbjQYkM5AXCO2_zd1ki07mvAKKsiarmJWqsZjYHwKiL4Lt1pgrlYHqSK1Qhu__WzXQuKekvz2ZVeAVYGiXOp/s200/cosa2.png" width="200" /></a></div>
<br />
Codigo:<br />
<script src="https://gist.github.com/2720843.js?file=trabajo.c"></script>
<br />
Problemas:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8AgJ0c02AqDfHURIz2zkcOWA-aROq-yrWh0k1k0OjT_Rb9obPsknfPz21nUjgUYug7MfTSuTw5yWyJJApv8teoHStG8WJpyGgQnTkCsMbn2EdYpJykl23pFkWsXOjKKuqmuT7bavOKKEf/s1600/cosa.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8AgJ0c02AqDfHURIz2zkcOWA-aROq-yrWh0k1k0OjT_Rb9obPsknfPz21nUjgUYug7MfTSuTw5yWyJJApv8teoHStG8WJpyGgQnTkCsMbn2EdYpJykl23pFkWsXOjKKuqmuT7bavOKKEf/s200/cosa.png" width="200" /></a></div>
<br />
Cuando se programaba el pic, cada vez que se elejia un .hex a cargar los fuses que estaban preseleccionados se quitaban entonces se tenian que volver a poner, por lo tanto no prendian los led´s despues de muchos intentos y cambiar eso este fue el resultado.Obed Guevarahttp://www.blogger.com/profile/04970162450835967179noreply@blogger.com0tag:blogger.com,1999:blog-2035900958881191977.post-68424265231134969532012-05-15T18:40:00.002-07:002012-05-17T20:52:49.527-07:00Programando para arduinoEn esta ocacion les hablare un poco sobre los diferentes puertos que tiene el arduino en especial los puertos seriales que es el tx (pin 1) y rx (pin 0).<br />
<br />
<br />
El "TX" que básicamente significa transmisión de datos, como su nombre nos indica nos sirve para resivir datos de dispositivos Seriales como las usb o desde un modulo de bluetooth que explicare mas adelante.<br />
<br />
El otro puerto rx es para enviar información desde el arduino asía algún puerto serial.<br />
<br />
Es necesario configurar las velocidades de transmisión de datos de los bytes.<br />
<br />
Para configurar el modulo de bluetooth desde linux es necesario instalar el "man bluetooth", ya que el que tiene como default no funciona mucho para este tipo de cosas, este paquete se puede instalar desde el synaptic o desde el centro de software de ubuntu. Ya instalado, es necesario que el modulo de bluetooth este en funcionamiento,esto lo podemos realizar con ayuda de nuestro arduino. conectamos el VCC del modulo con el pin de voltaje de 3.3 y con algun pin de tierra para su funcionamiento, ya realizando esto el man bluetooth lo detectara y podremos configurarlo sin ningun problema como serial y modificar los diferentes tiempos de transferencia.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh86_eH5z55b7lvrTUf_LBQCiL-g2Lng3I8AtRcQZgJUG9aNNuWZyOlKcg0Vpgp3W19zceKaMXzkuw0yarnT4__if9FACj0xSJYCsr856nPuTCeMVDGvdC4G8Hq9FXyPAA0pQXcW0Ffgz4f/s1600/IMG053.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh86_eH5z55b7lvrTUf_LBQCiL-g2Lng3I8AtRcQZgJUG9aNNuWZyOlKcg0Vpgp3W19zceKaMXzkuw0yarnT4__if9FACj0xSJYCsr856nPuTCeMVDGvdC4G8Hq9FXyPAA0pQXcW0Ffgz4f/s200/IMG053.jpg" width="150" /></a></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/AVvXsEjOpv2QT5Zdf4dJT6Ko4wwAy4rn5uSUQv8xjxEUU2VDIczw4axrASMtyRC6Rfs2iGMcjXSh9S3isnvV3f39-24wC_7R5i3dPhA6EONERPw520QVW-GFJl5dPOz276kYAYDNv2ReP_phc81v/s1600/manbluetooth.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOpv2QT5Zdf4dJT6Ko4wwAy4rn5uSUQv8xjxEUU2VDIczw4axrASMtyRC6Rfs2iGMcjXSh9S3isnvV3f39-24wC_7R5i3dPhA6EONERPw520QVW-GFJl5dPOz276kYAYDNv2ReP_phc81v/s320/manbluetooth.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
Transferencia actualmente ocnfigurada: 115200<br />
<br />
Ahora el programa de ejemplo en android :<br />
<br />
<script src="https://gist.github.com/2706603.js">
</script>
<br />
En este ejemplo tenemos dos variables, una variable booleana que no guarda el String resivido por parte del serial, y una variable estado que controlara el funcionamiento de un led.<br />
<br />
dentro del metodo inicial "setup" agregamos la linea sobre la tasa de trnasferencia de la informacion que tiene que ser la misma que el serial y declarar el pin que se utilizara para salidas.<br />
<br />
dentro de nuestro ciclo repetitivo tenemos la instruccion "if (Serial.available() > 0) " esto quiere decir que si detencta que los puertos estan en funcionamiento o resiven algun dato lo dara como verdadero en caso que no sera 0 y no entrara en el cliclo.<br />
<br />
la instruccion "<span class="Apple-tab-span" style="white-space: pre;"> </span>incomingByte = Serial.read();" le los datos resividos por el puerto "RX" y posteriormente sigue una serie de condiciones para apagar o prender un led.<br />
<br />
<br />
Algo de programación con Processing para bluetooth<br />
Para poder conectarnos con los diferentes dispositivos de bluetooth en este caso con algun modulo de bluetooth, es necesario la creacion de diferentes sockets para la entrada de datos y salida de datos.<br />
<br />
<br />
Para poder activar el dispositivo de bluetooth es necesario las siguientes lineas :<br />
<br />
<br />
<span style="color: blue;">void onStart()</span><br />
<span style="color: blue;">{</span><br />
<span style="color: blue;"> super.onStart();</span><br />
<span style="color: blue;"> println("onStart");</span><br />
<span style="color: blue;"> adaptador = BluetoothAdapter.getDefaultAdapter();</span><br />
<span style="color: blue;"> if (adaptador != null)</span><br />
<span style="color: blue;"> {</span><br />
<span style="color: blue;"> if (!adaptador.isEnabled())</span><br />
<span style="color: blue;"> {</span><br />
<span style="color: blue;"> Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);</span><br />
<span style="color: blue;"> startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);</span><br />
<span style="color: blue;"> }</span><br />
<span style="color: blue;"> else</span><br />
<span style="color: blue;"> {</span><br />
<span style="color: blue;"> }</span><br />
<span style="color: blue;"> }</span><br />
<span style="color: blue;">}</span><br />
<span style="color: blue;"><br /></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpMRRELwoptenowkfvRSxBPnbCtCfdPPtbAzs0a1zzsfI5OwEZJlKq1vHg9WCCJUjyfsfEyMEIqM7QH_2bmvE-bqbGkj-_AQEtxBLVrpM7ga1XNYxLMw0HI9mRhxS2Fqotmf8b4YVss7H5/s1600/IMG_0053.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpMRRELwoptenowkfvRSxBPnbCtCfdPPtbAzs0a1zzsfI5OwEZJlKq1vHg9WCCJUjyfsfEyMEIqM7QH_2bmvE-bqbGkj-_AQEtxBLVrpM7ga1XNYxLMw0HI9mRhxS2Fqotmf8b4YVss7H5/s200/IMG_0053.JPG" width="150" /></a></div>
<span style="color: blue;"><br /></span><br />
<br />
<br />
En el celular nos mostrara o preguntara que si queremos activar el dispositivo de bluetooth. posteriormente si se activa el dispositivo de bluetooth se pueden hacer muchas cosas como conectarse con el dispositivo automáticamente o mostrar los dispositivos.<br />
<br />
A Continuaciin unas variables importantes:<br />
<br />
<br />
<span style="color: blue;">BluetoothAdapter adaptador; </span><br />
<span style="color: blue;">BluetoothDevice dispositivo;</span><span style="color: red;"> // guardar el dispositivo a usar</span><br />
<span style="color: blue;">BluetoothSocket socket;</span> <span style="color: red;"> // para enviar y resivir informacion</span><br />
<span style="color: blue;">InputStream ins;</span> <span style="color: red;"> // para resivir informacion</span><br />
<span style="color: blue;">OutputStream ons; </span><span style="color: red;">// enviar informacion</span><br />
<br />
<br />
Para poder conectarse al dispositivo es necesario realizar las conexiones con los sockets.<br />
<br />
dispositivo = (BluetoothDevice) dispositivos.get(elegido); // aqui se conecta con el dispositivo elegido de una lista o manera automatica.<br />
<br />
socket = dispositivo.createRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));<br />
<div>
<br /></div>
<br />
<br />
<br />
<span style="color: blue;"> socket.connect(); </span><br />
<span style="color: blue;"> ins = socket.getInputStream(); </span><br />
<span style="color: blue;"> ons = socket.getOutputStream(); </span><br />
Y ya para enviar datos solo se ase lo siguiente:<br />
<br />
<br />
<span style="color: blue;"> ons.write(0);</span> <span style="color: red;"> // en algun metodo ya sea dentro de algun escuchador de algun boton</span><br />
<div>
<br /></div>
<br />
<br />
<br />
Referencia y tutoriales con android, process y arduino<br />
<a href="http://webdelcire.com/wordpress/archives/1045">http://webdelcire.com/wordpress/archives/1045</a><br />
<a href="http://wiki.processing.org/w/Android">http://wiki.processing.org/w/Android</a><br />
<a href="http://arduino.cc/en/Reference/serial">http://arduino.cc/en/Reference/serial</a>AVEhttp://www.blogger.com/profile/04905651130741095696noreply@blogger.com0tag:blogger.com,1999:blog-2035900958881191977.post-58620647005182397982012-05-13T15:04:00.003-07:002012-05-22T23:48:18.043-07:00Sistemas operativos especificos<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<div style="text-align: center;">
<span dir="auto" style="font-size: large;"><b>Sistema embebido</b></span></div>
</div>
<div style="text-align: center;">
<div style="text-align: center;">
<span dir="auto"><b><br /></b></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirHmAA5kQ5NrDLpEoyPwRfx-P2zJV9vGTgIkKrXxg6Q7TzkeIto-NDMhZ1tGc_abKUvuhoKnT0KnZJCkkFdoPGUahAVY0LZA_Ka0mssgN3t6gfw9parUX-ksOXl-oUlcauQe-k_fstQ9Gm/s1600/image39551.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirHmAA5kQ5NrDLpEoyPwRfx-P2zJV9vGTgIkKrXxg6Q7TzkeIto-NDMhZ1tGc_abKUvuhoKnT0KnZJCkkFdoPGUahAVY0LZA_Ka0mssgN3t6gfw9parUX-ksOXl-oUlcauQe-k_fstQ9Gm/s200/image39551.jpg" width="200" /></a></div>
<div style="text-align: center;">
<span dir="auto"><b><br /></b></span></div>
</div>
<div style="text-align: left;">
<span id="goog_1767680749"></span><span id="goog_1767680750"></span><br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Es un sistema de computación diseñado para realizar pocas o algunas operaciones diseñadas específicamente o dedicadas a un sistema de computo en tiempo real.</div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
Estos sistemas se diseñan y se implementa para tareas especifico, la mayoría de estos sistemas los podemos encontrar el la placa madre de una computadora, como en las tarjetas de vídeo, de red, audio y entre otras cosas mas.</div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
<br /></div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
En lo general un sistema embebido consiste en un sistema con un microprocesador cuyo hardware y software están específicamente diseñados y optimizados para resolver un problema concreto eficientemente, Común mente ineractuan con el contorno para vigilar o controlar algún proceso mediante una serie de sensores.<br />
<br />
<div style="text-align: center;">
<b><i>Componentes de un sistema embebido:</i></b></div>
<div style="text-align: center;">
<br /></div>
1-. el microprocesador que aporta la capacidad de computo del sistema</div>
<div style="text-align: justify;">
2-. Comunicación del sistema puede incluir RS-232<span style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; text-align: -webkit-auto;">, </span>RS-485<span style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; text-align: -webkit-auto;">, </span>SPI<span style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; text-align: -webkit-auto;">, </span>I²C<span style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; text-align: -webkit-auto;">, </span>CAN<span style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; text-align: -webkit-auto;">, </span>USB<span style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; text-align: -webkit-auto;">, </span>IP<span style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; text-align: -webkit-auto;">, </span>Wi-Fi<span style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; text-align: -webkit-auto;">, </span>GSM<span style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; text-align: -webkit-auto;">, </span>GPRS entre otros.<br />
3-. Actuadores que son los elementos electronicos a controlar<br />
4-. Entradas y salidas analogias y digitales<br />
5-. Modulo del reloj es el oscilador del sistema que se encarga de enviar las señales en cierto tiempo.<br />
6-. Modulo de energia se encarga de modular la energia para todo el sistema embebido.<br />
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<div style="text-align: center;">
<b><i>Aplicaciones de los Sistemas embebido:</i></b></div>
</div>
<div style="text-align: justify;">
<div style="text-align: center;">
<br /></div>
</div>
<div style="text-align: justify;">
<div style="text-align: center;">
Fabricas</div>
</div>
<div style="text-align: justify;">
<div style="text-align: center;">
Maquinarias</div>
</div>
<div style="text-align: justify;">
<div style="text-align: center;">
Puntos de ventas</div>
</div>
<div style="text-align: justify;">
<div style="text-align: center;">
Decodificadores</div>
</div>
<div style="text-align: justify;">
<div style="text-align: center;">
Sistemas de radar de aviones</div>
</div>
<div style="text-align: justify;">
<div style="text-align: center;">
Cajeros</div>
</div>
<div style="text-align: justify;">
<div style="text-align: center;">
<br /></div>
</div>
<div style="text-align: justify;">
<div style="text-align: center;">
Entre otras mas</div>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<b><i><span style="font-size: large;">Windows Embedded NavReady</span></i></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguGV4rxYnvQRPtup4jSgW1Rg2fayxuoiLeJy-BjupfHJl5mvNJ6nv7y1RUSoZtdvG4XTtYhhyphenhyphenSVNwTytVoyNzsgzU3anTH6LtJ0gfnBUCgWNHIIhA9009Sv7k1vFdFyTU4q6KIffVo1hRh/s1600/1032354-1298504.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguGV4rxYnvQRPtup4jSgW1Rg2fayxuoiLeJy-BjupfHJl5mvNJ6nv7y1RUSoZtdvG4XTtYhhyphenhyphenSVNwTytVoyNzsgzU3anTH6LtJ0gfnBUCgWNHIIhA9009Sv7k1vFdFyTU4q6KIffVo1hRh/s200/1032354-1298504.jpg" width="200" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Otro de los sistemas operativos especificos es uno de navegacion que saco Microsoft ase tiempo llamado Windows Embedded NavReady</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Aqui una liga de esto :<a href="http://www.microsoft.com/windowsembedded/en-us/windows-embedded.aspx">http://www.microsoft.com/windowsembedded/en-us/windows-embedded.aspx</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ahora este sistema operativo esta basado en la version 5.0 de windows CE otro sistemas operativo especifico, y funciona con procesadores ARM con arquitectura de 32 bits. Este sistema ofrece gran soporte para trabajar con diferentes dispositivos, comunicacion, ofrese un soporte de trabajar en tiempo real y los diferentes servicios que ofrece Microsoft.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<span style="background-color: white; font-size: large;"> <strong style="font-family: Arial, Helvetica, sans-serif; line-height: 20px; text-align: -webkit-auto;">Pocket PC OS</strong></span></div>
<div style="text-align: center;">
<span style="background-color: white; font-size: large;"><strong style="font-family: Arial, Helvetica, sans-serif; line-height: 20px; text-align: -webkit-auto;"><br /></strong></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqhSaDWcg9yR2DU2-LULOMWoez0qM7BL9diBAKWFUmaDILgv7tNdE8QHWtJyT9smw6Jb15OTU08mVOvaXWik_7hEXIje2Cgg4v-jT68JsPvycwuYmQDovCEOKFfANRwNVvYNzekvLesa-3/s1600/Programming-The-Pocket-Pc-Os-For-Embedded-Ir-Applications.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="116" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqhSaDWcg9yR2DU2-LULOMWoez0qM7BL9diBAKWFUmaDILgv7tNdE8QHWtJyT9smw6Jb15OTU08mVOvaXWik_7hEXIje2Cgg4v-jT68JsPvycwuYmQDovCEOKFfANRwNVvYNzekvLesa-3/s320/Programming-The-Pocket-Pc-Os-For-Embedded-Ir-Applications.jpg" width="320" /></a></div>
<div style="text-align: center;">
<span style="background-color: white; font-size: large;"><strong style="font-family: Arial, Helvetica, sans-serif; line-height: 20px; text-align: -webkit-auto;"><br /></strong></span></div>
<div style="text-align: justify;">
<strong style="background-color: white; font-family: Arial, Helvetica, sans-serif; line-height: 20px; text-align: -webkit-auto;"><br /></strong></div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: Arial, Helvetica, sans-serif; line-height: 20px; text-align: -webkit-auto;"> Este sistema se desarroll mas que nada para el movil de Palm OS en los PDA. Este sistema operativo o estos dispositivos esta mas orientado para las empresas ya que son especificos para diferentes redes de trabajo, y no es especificamente hecho para los consumidores. Este dispositivo ofrece una seguridad mayor a comparacion de otros dispositivos por cuestiones de trabajo, a la vez de poder controlar ciertos dispositivos o terminales mediante una red empresarial.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<b><i><span style="font-size: large;">TinyOS</span></i></b></div>
<div style="text-align: center;">
<b><i><span style="font-size: large;"><br /></span></i></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz9MVxuGyURDEuvU8KWlAmRt0F58znp4TRnntWvJwXco6bIR6stIr7eq2cnDjH-u9_cp1yBA7RMTui4lfEvZi-O3R0bmN8INTJHI1PLfKLicI6g5PYVi05aQoGf-psd8fwe2swx6lemQld/s1600/tos-jwall.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="76" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz9MVxuGyURDEuvU8KWlAmRt0F58znp4TRnntWvJwXco6bIR6stIr7eq2cnDjH-u9_cp1yBA7RMTui4lfEvZi-O3R0bmN8INTJHI1PLfKLicI6g5PYVi05aQoGf-psd8fwe2swx6lemQld/s200/tos-jwall.jpg" width="200" /></a></div>
<div style="text-align: center;">
<b><i><span style="font-size: large;"><br /></span></i></b></div>
<div style="text-align: justify;">
<br /></div>
<div>
<div style="text-align: justify;">
Este sistema especifico fue uno de los primeros sistemas creados para sensores inalambricas de redes.Este sistema trabaja en un lenguaje llamado nesc un lenguaje muy parecido al lenguaje c como un conjunto de procesos y tareas que trabajan entre si.Ademas este sistema operativo ofrece configuraciones especificas, interfaces,y un estilo modelo de trabajo multithreading.</div>
</div>
<div>
<div style="text-align: justify;">
modulos que permiten a los programadores trabajar mas a gusto.</div>
</div>
<div style="text-align: justify;">
<br /></div>
<br />
<br />
<br />
ligas:<br />
<a href="http://www.benito.org.mx/blog/software/microsoft-presenta-sistema-operativo-especifico-para-dispositivos-de-navegacion.html">http://www.benito.org.mx/blog/software/microsoft-presenta-sistema-operativo-especifico-para-</a><br />
<a href="http://www.benito.org.mx/blog/software/microsoft-presenta-sistema-operativo-especifico-para-dispositivos-de-navegacion.html">dispositivos-de-navegacion.html</a><br />
<a href="http://www.os.catacamas.net/Sistemas%20integrados/sistemas%20operativos%20integrados.html">http://www.os.catacamas.net/Sistemas%20integrados/sistemas%20operativos%20integrados.html</a></div>
<div id="bodyContent" style="font-size: 0.8em; line-height: 1.5em; position: relative; width: 1127px;">
<div id="contentSub" style="background-color: white; color: #7d7d7d; font-family: sans-serif; font-size: 11px; line-height: 1.2em; margin-bottom: 1.4em; margin-left: 1em; margin-right: 0px; margin-top: 0px; width: auto;">
</div>
</div>AVEhttp://www.blogger.com/profile/04905651130741095696noreply@blogger.com0tag:blogger.com,1999:blog-2035900958881191977.post-81554882059814387712012-05-13T12:13:00.002-07:002012-05-17T20:17:52.649-07:00Lenguaje C en PicAlgunas de esas características son:<br />
<ul>
<li>Al compilar genera un código máquina muy compacto y eficiente.</li>
<li>Se integra perfectamente con MPLAB y otros simuladores/emuladores como PROTEUS para el proceso de depuración.</li>
<li>Incluye una biblioteca muy completa de funciones precompiladas para el acceso al hardware de los dispositivos (entrada/salida, temporizaciones, conversor A/D, transmisión RS-232,bus I2C….,etc.</li>
<li>Incorpora drivers para dispositivos externos, tales como pantallas LCD, teclados numéricos, memorias EEPROM, conversores A/D, relojes en tiempo real, etc.(los drivers son pequeños programas que sirven de interfaz entre los dispositivos hardware y nuestro programa).</li>
<li>Permite insertar partes de código directamente en Ensamblador, manteniendo otras partes del programa en C.</li>
</ul>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoSzCplOZIIOk4p01-bI9H3FPmSD9qI15Vqy2BgOIgxJzYuR0j9ScVuTDJVBgGI5GJuHBpiZ1711dns3gi3fEPiwcmjmbzd5eEbr1m0BdoVm_BDm2rQbRG17FfO5wehVMbz3OyMLXOdN40/s1600/CCS+Logo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoSzCplOZIIOk4p01-bI9H3FPmSD9qI15Vqy2BgOIgxJzYuR0j9ScVuTDJVBgGI5GJuHBpiZ1711dns3gi3fEPiwcmjmbzd5eEbr1m0BdoVm_BDm2rQbRG17FfO5wehVMbz3OyMLXOdN40/s200/CCS+Logo.jpg" width="199" /></a></div>
<b><br />Características del lenguaje C para este compilador</b><br />
El lenguaje C estándar es independiente de cualquier plataforma. Sin embargo, para la programación de microcontroladores es necesario disponer de determinados comandos que se refieran a partes específicas de su hardware, como el acceso a memoria, temporizadores, etc. Por este motivo, además de los comandos, funciones y datos del lenguaje ANSI C, el compilador PCW incluye bibliotecas que incorporan determinados comandos que no son estándar, sino específicos para la familia de microcontroladores PIC. Éstos son básicamente de dos tipos: directivas del preprocesador y funciones precompiladas<br />
<br />
<br />
<b>Directivas del preprocesador.</b><br />
El compilador PCW dispone de 7 tipos básicos de directivas:<br />
Directivas derivadas del estándar de C, que permiten, entre otras funciones, un control básico del código y del flujo en el proceso de compilación:<br />
<ul>
<li>#DEFINE</li>
<li>#ELIF</li>
<li>#ELSE</li>
<li>#ENDIF</li>
<li>#ERROR</li>
<li>#IF</li>
<li>#IFDEF: Esta directiva actúa como el #IF sólo que aquí el pre-procesador simplemente comprueba que reconoce el id especificado (creado con un #DEFINE). Nótese que veerifica si se definió un id. </li>
<li>#IFDEF: Comprueba que no está definido el id. </li>
<li>#IFNDEF</li>
<li>#INCLUDE</li>
<li>#LIST: Guarda el código fuente en el archivo .LST</li>
<li>#NOLIST</li>
<li>#PRAGMA</li>
<li>#UNDEF: El identificador ID no tendrá ya significando para el pre-procesador. </li>
</ul>
<br />
Directivas asociadas a las bibliotecas precompiladas, que proporcionan al compilador información relacionada con estas bibliotecas:<br />
<ul>
<li>#USE DELAY </li>
<li>#USE FAST_IO: Esta directiva afecta al código que el compilador generará para las instrucciones de entrada y salida.</li>
<li>#USE FIXED_IO</li>
<li>#USE I2C</li>
<li>#USE RS232: Esta directiva le dice al compilador la velocidad en baudios y los pines utilizados para la I/O serie. Esta directiva tiene efecto hasta que se encuentra otra directiva RS232.</li>
<li>#USE STANDARD_IO</li>
</ul>
<br />
Directivas relacionadas con la especificación del dispositivo, por un lado, para definir los mapas de memoria y el juego de instrucciones, y por otro, incluir información necesaria para la programación del dispositivo en los ficheros de salida de la compilación:<br />
<ul>
<li>#DEVICE</li>
<li>#ID</li>
<li>#FUSES: Esta directiva define qué fusibles deben activarse en el dispositivo cuando se programe.</li>
<li>#TYPE</li>
</ul>
<br />
Directivas de cualificación de funciones, para identificar características especiales de una función:<br />
<ul>
<li>#INLINE</li>
<li>#INT_DEFAULT: La función que sigue a la directiva será llamada si el PIC activa una interrupción y ninguno de los flags de interrupción está activo. </li>
<li>#INT_GLOBAL</li>
<li>#INT_xxxxx</li>
<li>#SEPARATE </li>
</ul>
<br />
Directivas de control del compilador, para definir opciones referidas a la compilación del código del programa:<br />
<ul>
<li>#CASE: Hace que el compilador diferencie entre mayúsculas y minúsculas. Por defecto el compilador hace esta distinción.</li>
<li>#OPT</li>
<li>#ORG</li>
<li>#PRIORITY: Esta directiva se usa para establecer la prioridad de las interrupciones. Los elementos de mayor prioridad van primero. </li>
</ul>
<br />
Directivas de control de la memoria del microcontrolador, para gestionar y reservar el uso de determinadas zonas de memoria para variables:<br />
<ul>
<li>#ASM</li>
<li>#BIT</li>
<li>#BYTE</li>
<li>#ENDASM</li>
<li>#LOCATE</li>
<li>#RESERVE: Permite reservar posiciones de la RAM para uso del compilador</li>
<li>#ROM</li>
<li>#ZERO_RAM: Directiva que pone a cero todos los registros internos que pueden usarse para mantener variables, antes de que comienze la ejecución del programa.</li>
</ul>
<br />
Identificadores predefinidos. Todas las directivas citadas hasta ahora, son comandos destinados a ser interpretados por el compilador, no por el microcontrolador. Dentro del término genérico de directiva se incluyen, además de estos comandos, unas variables que contienen información sobre el proceso de compilación. Estas variables son lo que se denominan identificadores predefinidos del compilador:<br />
<ul>
<li>__DATE__</li>
<li>__DEVICE__</li>
<li>__PCB__</li>
<li>__PCH__</li>
<li>__PCM__</li>
</ul>
<br />
En un programa, las directivas se reconocen fácilmente porque comienzan por el símbolo #, mientras que los identificadores empiezan y acaban por doble subrayado (__).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJEsmcIV_dPc2jZH3BDwQc9b09sLbDkfpmuvLZPhmPdI2vPAj4E2qvdfPsQbXxb2CW18vRmfyA4Jfuz4xl7M2S3TJx82sV1G_qqqFNiA1qsFPm0xu5AiMt57FHoqU7_nDA1PbWD-hJ6O2Q/s1600/ide.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJEsmcIV_dPc2jZH3BDwQc9b09sLbDkfpmuvLZPhmPdI2vPAj4E2qvdfPsQbXxb2CW18vRmfyA4Jfuz4xl7M2S3TJx82sV1G_qqqFNiA1qsFPm0xu5AiMt57FHoqU7_nDA1PbWD-hJ6O2Q/s320/ide.png" width="320" /></a></div>
<div style="text-align: center;">
esta es la IDE de PCW compiler </div>
<br />
<b>Funciones precompiladas.</b><br />
<b></b> Se puede facilitar considerablemente la tarea de programación si no es necesario construir por nosotros mismos aquellas funciones que son de utilización más frecuente, como leer la entrada de un teclado o imprimir un determinado mensaje en una pantalla LCD conectada como salida.<br />
<br />
Existen funciones en C incluidas en el compilador PCW para manejar los diferentes recursos del microcontrolador, desde el bus I2C hasta el conversor A/D.<br />
<br />
<b>Utilidades adicionales</b><br />
El entorno PCW incluye, además del IDE y del compilador, una serie de utilidades adicionales con las que se amplían las posibilidades de éste, y que se encuentran en los menús View y Tools de la barra de menús, veamos algunas de ellas:<br />
<br />
<u><i><b>Monitor del puerto serie:</b></i></u> Consiste en un terminal que monitoriza la entrada y la salida del puerto serie del computador.<br />
<u><i><b><br />Selección de dispositivos (Device Selection Tool):</b></i></u> Esta utilidad consta de una base de datos con los dispositivos que puede programar el compilador, incluyendo todas sus características hardware, de manera que se puede emplear para buscar aquellos dispositivos que cumplan una serie de propiedades comunes.<br />
<u><i><b><br />Editor de dispositivos (Device Editor):</b></i></u> Este programa también emplea la base de datos de dispositivos, y permite editar los componentes para modificar sus características hardware, así como añadir nuevos dispositivos o eliminar algunos de ellos.<br />
<u><i><b><br />Conversor numérico:</b></i></u> Esta utilidad realiza conversiones entre los tipos de datos unsigned, signed, hex y float.<br />
<u><i><b><br />Extracción de datos de calibrado:</b></i></u> Esta opción permite leer los datos de calibración existentes en la memoria de programa de un determinado dispositivo. Estos datos contienen información particular de cada microcontrolador a su salida de fábrica, y se refieren a posibles problemas especiales que pudieran haber tenido lugar durante el desarrollo y fabricación. Mediante esta opción es posible leer estos datos y grabarlos en un fichero .H o .C que incorporará una directiva #ROM para dicho dispositivo, con lo que cada vez que se programe el microcontrolador se incluirán estos datos de calibrado.<br />
<u><i><b><br />Desensamblador:</b></i></u> Esta opción lee un fichero en Código máquina y lo traduce a su equivalente en Ensamblador, con lo que se podría insertar este código en un programa en C, mediante las directivas #ASM y #ENDASM.<br />
<br />
<u><i>Si quieren saber algo mas de las directivas y sus funciones ya que no defini completamente todas aqui les dejo el link de un manual</i></u>.<a href="http://profepipe.bligoo.cl/media/users/8/424623/files/32382/CCS_C_Manual.pdf"> Manual.</a> <br />
<br />
Para descargar este compilador aqui esta el link:<br />
<a href="http://www.ccsinfo.com/downloads.php">http://www.ccsinfo.com/downloads.php</a><br />
yo descargue el demo y me a ido muy bien con el solo tienes que llenar una encuesta y lo tendras :D<br />
<br />
<u><i>Ahora si quieren comprobar sus programas creados en este compilador les dejo un pequeño tutorial de como integrar CCS a proteus ya que si no lo haces el simulador no correra el programa.</i></u><br />
<a href="https://www.box.com/shared/110xv0btch">https://www.box.com/shared/110xv0btch</a><br />
<b><br /></b><br />
<b>Ejemplo:</b><br />
Ahora realizare un pequeño programa en donde un display muestre numeros del 0 al 9 infinitamente.<br />
<br />
<script src="https://gist.github.com/2720843.js?file=ejemplo2.c"></script>
<br />
<div class="separator" style="clear: both; text-align: left;">
Para correr el programa en el simulador proteus despues de haberle integrado el CCS, le damos doble click en la imagen de pic y escogemos nuestro .HEX que a sido arrojado por el PCW compiler, despues le damos click en la parte inferior donde viene el boton de play y ocurrira esto</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWtvAyICw6gaYUaf9_FsdNCCbK6WbXVq-ms3tz9H7zkDBVO4vTNYsBshcEMvMfTVbIaiZAS0VCifHRtQrhUbsEEm5Dh1OcvRHqOjGNTTKSUiiXeal-0lbjeKw73vLXLbcEOgE2n178xgmq/s1600/hacer3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWtvAyICw6gaYUaf9_FsdNCCbK6WbXVq-ms3tz9H7zkDBVO4vTNYsBshcEMvMfTVbIaiZAS0VCifHRtQrhUbsEEm5Dh1OcvRHqOjGNTTKSUiiXeal-0lbjeKw73vLXLbcEOgE2n178xgmq/s200/hacer3.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpg1XsGnu6ggnTg6EWQ8xnkVLpBS64J3X8-Jr784Yl8Hr52G4NCiakicKE_wJYCZZBVQVzjORtIBKTDvrmVfp0LdRgB8I7gnHvkOpuRbZtZQq8boWrbUyY__J32qpvzYauWRIfeiZ5-5pN/s1600/hacer2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpg1XsGnu6ggnTg6EWQ8xnkVLpBS64J3X8-Jr784Yl8Hr52G4NCiakicKE_wJYCZZBVQVzjORtIBKTDvrmVfp0LdRgB8I7gnHvkOpuRbZtZQq8boWrbUyY__J32qpvzYauWRIfeiZ5-5pN/s200/hacer2.png" width="200" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4CRTCfdkPiwmxRow8kJL-R5XKj25zm3fE0-cPE9_ifLHLq_Mzsj906tUicUWuOcQEAvHLWCkpih0EVkHbP7drMAM3bB5qow7dbAEZdE_qqtOiTqy9Puidpte7zuXa4M6gOjdmLoLCEuht/s1600/hacer4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4CRTCfdkPiwmxRow8kJL-R5XKj25zm3fE0-cPE9_ifLHLq_Mzsj906tUicUWuOcQEAvHLWCkpih0EVkHbP7drMAM3bB5qow7dbAEZdE_qqtOiTqy9Puidpte7zuXa4M6gOjdmLoLCEuht/s200/hacer4.png" width="200" /></a></div>
Aqui solo puse pocas imagenes pero el simulador si me muestra todos los numeros del 0 al 9 XD.<br />
<br />
<br />
<b>Bibliografias:</b><br />
<a href="http://www.ccsinfo.com/">http://www.ccsinfo.com/</a><br />
<a href="http://www.aquihayapuntes.com/compilador-pcw-ccs.html">http://www.aquihayapuntes.com/compilador-pcw-ccs.html</a>Obed Guevarahttp://www.blogger.com/profile/04970162450835967179noreply@blogger.com1tag:blogger.com,1999:blog-2035900958881191977.post-32078740882635588752012-05-13T11:21:00.002-07:002012-05-17T20:18:11.960-07:00Interrupciones en microcontroladores.Es una de las caracterasticas de los microcontroladores, de las mas importantes que constituye la capacidad de sincronizar la ejecucion de programas con acontecimientos externos; es decir, cuando se produce una interrupcion, el micro automaticamente deja lo que esto haciendo, va a la direccion 04h de programa y ejecuta lo que encuentre a partir de alli hasta encontrarse con la instruccion RETFIE que le hara abandonar la interrupcion y volver al lugar donde se encontraba antes de producirse dicha interrupcion. Hemos de diferenciar entre dos tipos de interrupciones posibles en un PIC:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzggm6XVrIUfGQn7ZRVEbH0GNfXBturSk6CXDEFRHjYsNj2vhnBa-d_OE-JvdN6tM3bq-jJ7ekyzMPyyDHBfHFV_YAkMMWpPH1WccQ6-moHql4Vgde-iWDX6BxP565vCZNW3Amxd6JJG0A/s1600/INTERRUPT.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="141" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzggm6XVrIUfGQn7ZRVEbH0GNfXBturSk6CXDEFRHjYsNj2vhnBa-d_OE-JvdN6tM3bq-jJ7ekyzMPyyDHBfHFV_YAkMMWpPH1WccQ6-moHql4Vgde-iWDX6BxP565vCZNW3Amxd6JJG0A/s200/INTERRUPT.jpg" width="200" /></a></div>
<br />
1. - Mediante una accion interna. El desbordamiento de la Pila (Stack) por una operacion indebida, por ejemplo: <br />
<ul>
<li> Al completarse la escritura de datos en una EEPROM. </li>
<li> Por desbordamiento del registro TMR0 al rebasar el valor 255 (FFh) a 0.</li>
</ul>
<br />
2. - Mediante una accion externa, la mas util. Al producirse un cambio del nivel en uno de sus pines por una accion externa. <br />
<ul>
<li>Estando en el modo de reposo (SLEEP), un cambio de nivel en el pin RB0/INT . </li>
<li>Un cambio de nivel en uno de los pines RB4 a RB7 estando configurados como entrada. </li>
</ul>
<br />
Una interrupción es un evento que hace que el microcontrolador deje de ejecutar la tarea que está realizando para atender dicho acontecimiento y luego regrese y continue la tarea que estaba realizando antes de que se presentara la interrupción. El pic 16F628 (y el 16F628A) tiene 10 fuentes de interrupción, si las interrupciones están habilitadas cada vez que una de estos acontecimientos se presente el pic dejará de ejecutar el programa para ir a atender la interrupción y al termino de la misma continuará ejecutando el programa donde lo había dejado. Las fuentes de interrupción son: <br />
<br />
o Interrupción externa RB0/INT <br />
o Interrupción por cambio lógico en el puerto B (pines RB7 a RB4) <br />
o Interrupción por desborde del timer 0 (TMR0) <br />
o Interrupción por desborde del timer 1 (TMR1) <br />
o Interrupción por comparación exitosa exitosa en TMR2 <br />
o Interrupción del comparador <br />
o Interrupción del transmisor del USART <br />
o Interrupción del receptor del USART <br />
o Interrupción del módulo CCP <br />
o Interrupción del EEPROM <br />
<br />
Cuando ocurre un evento de los descritos anteriormente, se produce una peticion de interrupcion, guardando el valor actual del PC (contador de programa) en la Pila, sea cual sea la fuente de la interrupcion, se pone a cero el bit7 GIE (Global Interrupt Enable), con lo cual inhibe cualquier otra peticion de interrupcion, el registro PC se carga con el valor 0004h que, es la posicion del vector de interrupcion. Aqui, empieza la ejecucion del programa de atencion a la interrupcion ISR (Rutina deServicio de Interrupcion). El tiempo de procesamiento de la ISR debe ser lo mas breve posible, para que se ejecuten las otras interrupciones ya que, pueden habilitarse mas de una de ellas. Ademas, cualquier tipo de interrupcion tambien puede sacar al micro del modo de reposo (SLEEP). <br />
<br />
Una interrupcion puede ser inhibida solo si existe otra interrupcion en curso. Esto se debe a que, una interrupcion esta controlada por dos bits que indican la fuente de la interrupcion, un bit actua como bandera (flag) indicando si se ha producido una interrupcion y el otro bit, actua como bit de inhibicion o prohibicion de la interrupcion en su, debido a que existe otra interrupcion en ejecucion y todo esto se realiza de forma automatica por parte del micro. <br />
<br />
Es decir, el bit GIE es el responsable del permiso de interrupcion que se borra automaticamente cuando se acepta una interrupcion evitando asi que se produzca ninguna otra interrupcion mientras se atiende a la primera. Estos bits de control se encuentran en el registro INTCON (0Bh y 8Bh). Estos bits corresponden al registro INTCON que cambia de nivel 0 a 1 cuando se produce la interrupcion, excepto el ultimo bit (bandera) que se encuentra en el registro EECON1. <br />
<br />
Los registros asociados con las interrupciones son el registro de control de interrupcion INTCON, el registro habilitacion de interrupciones de perifericos PIE1 y el registro de interrupciones de perifericos PIR1. En el registro INTCON se encuentra el bit de habilitacion global de interrupcionesGIE, el bit de habilitacion de interrupcion por perifericos PEIE y los bits de habilitacion de algunas interrupciones como la interrupcion externa del pin RB0 (INTE), la interrupcion por cambio de estado en los pines RB4 a RB7 (RBIE) y la interrupcion por desborde del timer 0 (T0IE), asi como las banderas correspondientes a cada interrupcion (INTF, RBIF y T0IF). En el registro PIE1 se encuentran los bits de habilitacion de las demas interrupciones y en el registro PIR1 se encuentran las banderas asociadas con cada interrupcion.<br />
<br />
Para habilitar las interrupciones se deben seguir los siguientes pasos:<br />
<ul>
<li>Habilitar el bit correspondiente a cada interrupcion.</li>
<li>Limpiar la bandera correspondiente a la interrupcion habilitada para evitar falsas interrupciones.</li>
<li>En caso de ser necesario habilitar el bit PEIE del registro INTCON (necesario para todas las interrupciones con excepcion de INTE y RBIE).</li>
<li>Habilitar el bit de habilitacion global de interrupciones GIE del registro INTCON.</li>
</ul>
Aunque el pic cuenta con 10 fuentes distintas de interrupción solamente tiene un vector de interrupción por lo que si se habilitan varias interrupciones al momento de presentarse cualquiera de ellas el programa saltara a la misma rutina de interrupcion y es responsabilidad del programador crear una rutina que identifique la fuente de la interrupcion.<br />
<br />
Aqui un ejemplo de interrupciones en C<br />
<br />
<script src="https://gist.github.com/2720843.js?file=ejemplo1.c"></script>
<br />
<br />
<br />
Ahora crearemos en el simulador de proteus nuestro ejemplo para combrobar que funcione.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw0WWj5GjeItB4zELksLFPdLUYyF_Powvdps8zwgzKPOCs5zHHMaPSfdnG9yrl_RI3IFSG1kfgnx_o8j6ptr7JmCjsQ9qbFyDcrY5GQ7kjgJZc9IJ8Z_gmXfptPhjHCiyKz6B1iJuNasbw/s1600/hacer6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw0WWj5GjeItB4zELksLFPdLUYyF_Powvdps8zwgzKPOCs5zHHMaPSfdnG9yrl_RI3IFSG1kfgnx_o8j6ptr7JmCjsQ9qbFyDcrY5GQ7kjgJZc9IJ8Z_gmXfptPhjHCiyKz6B1iJuNasbw/s320/hacer6.png" width="320" /></a></div>
<br />
<br />
Al terminar nuestro diagrama en el proteus le damos doble click al pic y le damos click en la carpeta para asi escoger el .HEX que nos creo el compilador que estemos usando en este caso el PCW compiler. <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd1HUNacBZF4DCsYqPDBKXTkvavdad8sl8Y42lc0NtreGgjk4XHUf3oD0_w0sHJWftIDSUh5_Ui1bdyKID2F0SbiPumKm7DK76ZcPJcjbRp1Xu08nDWlkN-Y0CP2Dxt1R9q1z01dfL5Y92/s1600/hacer7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd1HUNacBZF4DCsYqPDBKXTkvavdad8sl8Y42lc0NtreGgjk4XHUf3oD0_w0sHJWftIDSUh5_Ui1bdyKID2F0SbiPumKm7DK76ZcPJcjbRp1Xu08nDWlkN-Y0CP2Dxt1R9q1z01dfL5Y92/s320/hacer7.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKG-ZdfbJm5yKyo6NqSA7OM47zSveNYs2RmU0uK-5SxZTkkwUpjVHhzV7HtpA6Jp1z7xZyHels_21f-0BjwgaGWQ26P86by7p7X5Cv0jtiXOUX_FB8yIWzAmwbNxnkv41ZH8wcuEU3OR-t/s1600/hacer5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
Despues le damos click en play en la parte de abajo de proteus donde se encuentra nuestra simulacion.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKG-ZdfbJm5yKyo6NqSA7OM47zSveNYs2RmU0uK-5SxZTkkwUpjVHhzV7HtpA6Jp1z7xZyHels_21f-0BjwgaGWQ26P86by7p7X5Cv0jtiXOUX_FB8yIWzAmwbNxnkv41ZH8wcuEU3OR-t/s1600/hacer5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKG-ZdfbJm5yKyo6NqSA7OM47zSveNYs2RmU0uK-5SxZTkkwUpjVHhzV7HtpA6Jp1z7xZyHels_21f-0BjwgaGWQ26P86by7p7X5Cv0jtiXOUX_FB8yIWzAmwbNxnkv41ZH8wcuEU3OR-t/s320/hacer5.png" width="320" /></a></div>
<br />
Aqui vemos que si esta en funcionamiento nuestro pequeño codigo con interrupciones el led prende y apaga de manera intermitente <br />
<br />
<b>Bibliografias:</b> <br />
<br />
<a href="http://micropic.wordpress.com/2007/06/08/manejo-de-interrupciones/">http://micropic.wordpress.com/2007/06/08/manejo-de-interrupciones/</a> <br />
<br />
<a href="http://www.hispavila.com/3ds/chipspic/interrupciones.html">http://www.hispavila.com/3ds/chipspic/interrupciones.ht</a><a href="http://www.hispavila.com/3ds/chipspic/interrupciones.html">ml</a>Obed Guevarahttp://www.blogger.com/profile/04970162450835967179noreply@blogger.com3tag:blogger.com,1999:blog-2035900958881191977.post-78787739144869740832012-05-12T16:23:00.002-07:002012-05-17T20:18:27.521-07:00Memoria en picsEl microcontrolador está diseñado para que en su memoria deprograma se almacenen todas lasinstrucciones del programa de control. Como éste siempre es el mismo, debe estar grabado de forma permanente.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgffSki26IzjzJumY0MRlpV8xz3oXt7RatQxqWyJkpQJc1F7Q35ieHZdxVANC9WAxLmDXrJo8TcSeLgJ36T4X22hVbs270d3ak741ebNqVy-hNd5NJolbLKgdua0-9o9i2VnIMpLSx2guBk/s1600/220px-MC68HC11_microcontroller.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgffSki26IzjzJumY0MRlpV8xz3oXt7RatQxqWyJkpQJc1F7Q35ieHZdxVANC9WAxLmDXrJo8TcSeLgJ36T4X22hVbs270d3ak741ebNqVy-hNd5NJolbLKgdua0-9o9i2VnIMpLSx2guBk/s200/220px-MC68HC11_microcontroller.jpg" width="200" /></a></div>
<br />
<br />
<b>Memoria</b><br />
<br />
En
los microcontroladores la memoria no es abundante, aquí no encontrará
Gigabytes de memoria como en las computadoras personales. Típicamente la
memoria de programas no excederá de 16 K-localizaciones de memoria no
volátil (flash o eprom) para contener los programas.<br />
<br />
La memoria
RAM está destinada al almacenamiento de información temporal que será
utilizada por el procesador para realizar cálculos u otro tipo de
operaciones lógicas. En el espacio de direcciones de memoria RAM se
ubican además los registros de trabajo del procesador y los de
configuración y trabajo de los distintos periféricos del
microcontrolador. Es por ello que en la mayoría de los casos, aunque se
tenga un espacio de direcciones de un tamaño determinado, la cantidad de
memoria RAM de que dispone el programador para almacenar sus datos es
menor que la que puede direccionar el procesador.<br />
<br />
El tipo de
memoria utilizada en las memorias RAM de los microcontroladores es SRAM,
lo que evita tener que implementar sistemas de refrescamiento como en
el caso de las computadoras personales, que utilizan gran cantidad de
memoria, típicamente alguna tecnología DRAM. A pesar de que la memoria
SRAM es más costosa que la DRAM, es el tipo adecuado para los
microcontroladores porque éstos poseen pequeñas cantidades de memoria
RAM.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheVh8lpXc9ir9CpI7i1ASFo5JXcBgCCtcToakv7fw0NHuMpeoXD1xm0cdYMEHgzLVJUV3epF7ftMr8dcNTf4gGhcwHCjJgj31c-gCnsfY76i_VUH172DdffSErx2gI90FfgnspwqcDwTKa/s1600/441.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheVh8lpXc9ir9CpI7i1ASFo5JXcBgCCtcToakv7fw0NHuMpeoXD1xm0cdYMEHgzLVJUV3epF7ftMr8dcNTf4gGhcwHCjJgj31c-gCnsfY76i_VUH172DdffSErx2gI90FfgnspwqcDwTKa/s320/441.jpg" width="320" /></a></div>
<br />
<span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><span class="editsection" style="float: right; font-size: 13px; margin-left: 5px;"> </span><br />
En el caso de la memoria de programas se utilizan diferentes tecnologías, y el uso de una u otra depende de las características de la aplicación a desarrollar, a continuación se describen las cinco tecnologías existentes, que mayor utilización tienen o han tenido:<br />
<br />
<u><i><b>Máscara ROM</b></i></u>. En este caso no se “graba” el programa en memoria sino que el microcontrolador se fabrica con el programa, es un proceso similar al de producción de los CD comerciales mediante masterización. El costo inicial de producir un circuito de este tipo es alto, porque el diseño y producción de la máscara es un proceso costoso, sin embargo, cuando se necesitan varios miles o incluso cientos de miles de microcontroladores para una aplicación determinada, como por ejemplo, algún electrodoméstico, el costo inicial de producción de la máscara y el de fabricación del circuito se distribuye entre todos los circuitos de la serie y, el costo final de ésta, es bastante menor que el de sus semejantes con otro tipo de memoria.<br />
<br />
<u><i><b>Memoria PROM</b></i></u> (Programmable Read-Only Memory) también conocida como OTP (One Time Programmable). Este tipo de memoria, también es conocida como PROM o simplemente ROM.Los microcontroladores con memoria OTP se pueden programar una sola vez, con algún tipo de programador. Se utilizan en sistemas donde el programa no requiera futuras actualizaciones y para series relativamente pequeñas, donde la variante de máscara sea muy costosa, también para sistemas que requieren serialización de datos, almacenados como constantes en la memoria de programas.<br />
<u><i><b><br />Memoria EPROM</b></i></u> (Erasable Programmable Read Only Memory). Los microcontroladores con este tipo de memoria son muy fáciles de identificar porque su encapsulado es de cerámica y llevan encima una ventanita de vidrio desde la cual puede verse la oblea de silicio del microcontrolador.Se fabrican así porque la memoria EPROM es reprogramable, pero antes debe borrase, y para ello hay que exponerla a una fuente de luz ultravioleta, el proceso de grabación es similar al empleado para las memorias OTP.Al aparecer tecnologías menos costosas y más flexibles, como las memorias EEPROM y FLASH, este tipo de memoria han caído en desuso, se utilizaban en sistemas que requieren actualizaciones del programa y para los procesos de desarrollo y puesta a punto.<br />
<b><br /></b><u><i><b>EEPROM</b> </i></u>(Electrical Erasable Programmable Read Only Memory). Fueron el sustituto natural de las memorias EPROM, la diferencia fundamental es que pueden ser borradas eléctricamente, por lo que la ventanilla de cristal de cuarzo y los encapsulados cerámicos no son necesarios.Al disminuir los costos de los encapsulados, los microcontroladores con este tipo de memoria se hicieron más baratos y cómodos para trabajar que sus equivalentes con memoria EPROM.Otra característica destacable de este tipo de microcontrolador es que fue en ellos donde comenzaron a utilizarse los sistemas de programación en el sistema que evitan tener que sacar el microcontrolador de la tarjeta que lo aloja para hacer actualizaciones al programa.<br />
<u><i><b><br />Memoria flash.</b></i></u> En el campo de las memorias reprogramables para microcontroladores, son el último avance tecnológico en uso a gran escala, y han sustituido a los microcontroladores con memoria EEPROM.A las ventajas de las memorias flash se le adicionan su gran densidad respecto a sus predecesoras lo que permite incrementar la cantidad de memoria de programas a un costo muy bajo. Pueden además ser programadas con las mismas tensiones de alimentación del microcontrolador, el acceso en lectura y la velocidad de programación es superior, disminución de los costos de producción, entre otras.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxXIfuJdoMgmmkoiLmoibPoVgIZlBcoa7IwFGQ0WatI0XbqxBSSsPp7nDHNO82pgpAW1X7naeSsLt33B6RGpy6pKMhHy5ZWiQHRxInWsuHZ-E3iI5eKCU8qzJnuuCSvKjm6L8Kmuwqs3kT/s1600/memoria.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="108" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxXIfuJdoMgmmkoiLmoibPoVgIZlBcoa7IwFGQ0WatI0XbqxBSSsPp7nDHNO82pgpAW1X7naeSsLt33B6RGpy6pKMhHy5ZWiQHRxInWsuHZ-E3iI5eKCU8qzJnuuCSvKjm6L8Kmuwqs3kT/s320/memoria.png" width="320" /></a></div>
<br />
<br />
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 contenerinstrucciones.<br />
<br />
De esta forma Microchip comercializa dos microcontroladoresprácticamente iguales que sólo se diferencian en que la memoria deprograma de uno de ellos es tipo EEPROM y la del otro tipo Flash. Se trata del PIC16C84 y el PIC16F84, respectivamente.<br />
Memoria de datos<br />
<br />
Los datos que manejas los programas varían continuamente, y esto exige que la memoria que los contiene debe ser de lectura y escritura, por lo que la memoria RAM estática (SRAM) es la más adecuada, aunque sea volátil.<br />
<br />
Hay microcontroladores que disponen como memoria de datos una de lectura y escritura no volátil, del tipo EEPROM. De esta forma, un corte en el suministro de la alimentación no ocasiona la pérdida de la información, que está disponible al reiniciarse el programa. ElPIC16F84 dispone de 64 bytes de memoria EEPROM para contener datos.<br />
<br />
Bibliografias:<br />
<a href="http://www.unicrom.com/Tut_PICs2.asp">http://www.unicrom.com/Tut_PICs2.asp</a> <br />
<a href="http://www.monografias.com/trabajos12/microco/microco.shtml">http://www.monografias.com/trabajos12/microco/microco.shtml</a>Obed Guevarahttp://www.blogger.com/profile/04970162450835967179noreply@blogger.com0tag:blogger.com,1999:blog-2035900958881191977.post-56126364900714188292012-05-12T09:16:00.000-07:002012-05-17T20:53:05.915-07:00Interrupciones<br />
<div style="text-align: center;">
<b><i>Interrupciones</i></b></div>
<div style="text-align: center;">
<br /></div>
Los diferentes tipos de interrucciones y exepciones ya sea solo al precionar u simple boton ya sea en computadoras o procesadores son de gran importancia. Estos tipos de sucesos son realmente continuos y no aslados aunq nosotros no nos demos cuenta de lo que esta susediendo y que se realiza en caso de que exista algun error aunq sea minusculo.<br />
<br />
Costantemente los microprocesadores actuan con diferentes perifericos en su exterior ya sea enviando diferentes tipos de datos o reciviendo de estos mismos y procesandolos. Pero como le ase el procesador o el microcontrolador para saber cuando el perifierico necesita lo necesita en caso de que el microprocesador este haciendo alguna tarea y el periferico tenga mas prioridad, en estos casos se utliza las interrpciones para dar paso al periferico<br />
<br />
<br />
Las diferentes interrupciones que realizan llevan un proceso con el hardware y el mismo software de ejecuión:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2YCPs-HIBtnGp2Mfjwq1KMN-Hj7e_Du5CVmGaa7FuslnZHyF1LcuhHfR_GsNNKU_lO64yo7Z29OBUrkU4rfeGXCEdYi8kDkTOaWJprt-emNt5b8DDbgjkOCBOZcFhKTtWBHhyGd86GlYm/s1600/HARD-SOFT.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="273" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2YCPs-HIBtnGp2Mfjwq1KMN-Hj7e_Du5CVmGaa7FuslnZHyF1LcuhHfR_GsNNKU_lO64yo7Z29OBUrkU4rfeGXCEdYi8kDkTOaWJprt-emNt5b8DDbgjkOCBOZcFhKTtWBHhyGd86GlYm/s320/HARD-SOFT.gif" width="320" /></a></div>
<br />
<br />
<br />
<br />
<div style="text-align: center;">
<b><i>Usos de las interrupciones:</i></b></div>
<div style="text-align: center;">
<br /></div>
->Permitir comunicacion sin bloqueos con dispositivos perifericos.<br />
-> Conmutar tareas diferentes tareas dentro de lo planificado.<br />
<br />
<br />
<br />
Existen diferentes tipos de interrupciones dependiendo el microprocesador <big><big><span style="font-size: x-small;">6502</span></big></big><br />
<br />
<b><i>BRK</i></b>: Es una interripcion del software. <span style="text-align: justify;">Normalmente esta instrucción se inserta en un programa durante el periodo de depuración para analizar el contenido de registros y posiciones de memoria durante la ejecución de un programa.</span><br />
<span style="text-align: justify;"><br /></span><br />
<span style="text-align: justify;"><b><i>IRQ</i></b>: Es una interrupcion enmascarable del hardware. Una linea baja da lugar auna secuencia de interrupciones. Como la interrupcion de un proceso actualmente en ejecución, Garda el contenido de alguna instruccion o banco de memoria e impide nuevamente su ejecuccion entre otras </span><br />
<span style="text-align: justify;"><br /></span><br />
<span style="text-align: justify;"><b><i>NMI</i></b>: Interrupcion no mascarable del hardware. En este caso cuando se realisa la peticion de interrupción, se termina primero la ejecuion que se esta realizando en ese instante.</span><br />
<span style="text-align: justify;"><br /></span><br />
<span style="text-align: justify;"><b><i>RES</i></b>: Reinicializacion del sistema. Como su nombre lo indica se utiliza para reiniciar el sistema, en diferentes tipos de eventos.ya sea por falla del mismo software o hardawer como ejemplo una bateria baja.</span><br />
<div style="text-align: justify;">
<span style="color: red;"><span style="font-size: 12px;"><b><br /></b></span></span></div>
<br />
<br />
<br />
Referencias:<br />
<br />
<a href="http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/INTSI02.htm">http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/INTSI02.htm</a><br />
<a href="http://www.scribd.com/jaimemontoya/d/2191146-Interrupciones-del-Microprocesador">http://www.scribd.com/jaimemontoya/d/2191146-Interrupciones-del-Microprocesador</a><br />
<a href="http://www.terra.es/personal/fremiro/interrupciones1.htm">http://www.terra.es/personal/fremiro/interrupciones1.htm</a><br />
<br />AVEhttp://www.blogger.com/profile/04905651130741095696noreply@blogger.com0tag:blogger.com,1999:blog-2035900958881191977.post-6940424652456859292012-05-03T06:05:00.000-07:002012-05-17T20:53:27.722-07:00Dispositivos Perifericos<div>
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<b>Dispositivos Periféricos</b></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/AVvXsEiOVLmLtaiKqrzNfGDGaw102sFkeoomf5H0ourDDgNZQ31hYKPUz9dhiR2Uj5uqdu9ebuqnHxyWSzsY9gtvvc8h-N_zDTipl8djaK52TL6FUJahSaFiPj0aL1xgkUm1Y1gquNoetANL01mK/s1600/perifericos.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="117" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOVLmLtaiKqrzNfGDGaw102sFkeoomf5H0ourDDgNZQ31hYKPUz9dhiR2Uj5uqdu9ebuqnHxyWSzsY9gtvvc8h-N_zDTipl8djaK52TL6FUJahSaFiPj0aL1xgkUm1Y1gquNoetANL01mK/s200/perifericos.jpg" width="200" /></a></div>
<br />
<br />
<div style="text-align: center;">
<b>Que son los dispositivos periféricos?</b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
Los dispositivos periféricos son aparatos, gadgets , u otros dispositivos auxiliares que facilitan ciertas tareas e independientes a los diferentes procesadores, computadoras o micro-controladores.</div>
<div style="text-align: justify;">
Los periféricos comunican con el mundo exterior, como a los sistemas que archivan y guardan diferentes tipos de información sirviendo de memoria principal</div>
<br />
<div style="text-align: center;">
<b>Algo de Historia:</b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
La historia de los perifericos se remota asi 40 años desde la creación del primer mouse para facilitar el manejo de los ordenadores y revoluciono la forma en que se veian las computadoras.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="color: #222222; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; line-height: 18px;">Ideado por Douglas Engelbart y construido por William English, consistía en una caja de madera con una palanca pequeña y un único botón. Segun estos inventores le pusieron el nombre de: "X-Y Position Indicator for a Display System", pero claro, al tener un tamaño pequeño y una cola , fue apodado rápidamente con el nombre con el que se haría famoso: ratón.</span></div>
<div style="text-align: justify;">
<span style="color: #222222; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; line-height: 18px;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8RVvZiyi3F9jH6bxaIhrx9SbplL5UYx5w2VJywm2g8-crqFmRC9Aq7UJnIAcA0EiGFeV4LrS5acWqNYYCOyaASmXGQVf02P6F3qkW3eYnCz7NMTXNL79sZntoxLZKkWG6exMDYz32T7oc/s1600/primeraton.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="135" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8RVvZiyi3F9jH6bxaIhrx9SbplL5UYx5w2VJywm2g8-crqFmRC9Aq7UJnIAcA0EiGFeV4LrS5acWqNYYCOyaASmXGQVf02P6F3qkW3eYnCz7NMTXNL79sZntoxLZKkWG6exMDYz32T7oc/s200/primeraton.jpg" width="200" /></a></div>
<div style="text-align: justify;">
<span style="color: #222222; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; line-height: 18px;"><br /></span></div>
<div style="text-align: justify;">
<span style="color: #222222; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; line-height: 18px;"><br /></span></div>
<div style="text-align: justify;">
<span style="color: #222222; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; line-height: 18px;">Posteriormente llego el teclado en primer instancia en las maquinas de escribir posteriormente se pasaron para el uso de los ordenadores creando diferentes tipos de ordenamiento de las teclas hasta que aparecio el famosisimo teclado "QWERTY" cuyo nacimiento se remota 1868.</span></div>
<div style="text-align: justify;">
<span style="color: #222222; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; line-height: 18px;"><br /></span></div>
<div style="text-align: justify;">
<span style="color: #222222; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; line-height: 18px;">Pero esto no fue suficiente ya que la tecnologia iva cada ves mas avansada y se requerian nuesvas adaptaciones y en eso nacio el monitor que a tenido cambios sgnificatios durante todo el tiempo.</span></div>
<div style="text-align: justify;">
<span style="color: #222222; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; line-height: 18px;"><br /></span></div>
<div style="text-align: justify;">
<span style="color: #222222; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; line-height: 18px;"> En 1964 el Instituto Tecnológico de Massachussets (MIT), los laboratorios Bell y la empresa General Electric crearon un sistema llamado </span>Multics<span style="color: #222222; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; line-height: 18px;">, que ya permitía hacer más cosas pero que requería una nueva interfaz. Así nació el primer monitor </span></div>
<div style="text-align: justify;">
<span style="color: #222222; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; line-height: 18px;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8RK_crYsBJQxTdffr4NwkT01a4Zet4jZku-TlpgzsV1TsRemOGUCdIDYqdHz6E6JVOTxXCiwKcxUQuPjzSfyixjfJxzmNGuTX7ott4FZG3q2-9ePOog0oWBnB3C-bB5SmIOjbgsaYh4EA/s1600/visicalc.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="136" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8RK_crYsBJQxTdffr4NwkT01a4Zet4jZku-TlpgzsV1TsRemOGUCdIDYqdHz6E6JVOTxXCiwKcxUQuPjzSfyixjfJxzmNGuTX7ott4FZG3q2-9ePOog0oWBnB3C-bB5SmIOjbgsaYh4EA/s200/visicalc.gif" width="200" /></a></div>
<span style="color: #222222; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-size: 14px; line-height: 18px;"><br /></span><br />
<span style="color: #222222; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif;"><span style="font-size: 14px; line-height: 18px;"><br /></span></span><br />
<div style="text-align: center;">
<b>Generalidades</b>:</div>
<div style="text-align: center;">
<br /></div>
Hoy en dia se utiliza diferentes tipos de procesadores, microprocesadores entre otro tipo de cosas, pero para que pueda realizar diferentes asañas o el simple hecho para poder programarlos se necesitan Dispositivos Periferico</div>
<div>
<br /></div>
<div>
Estos dispositivos Perifiericos son independientes de los procesadores, microprocesadores o computadoras y tiene diferentes tipos de caracteristicas.</div>
<div>
<br /></div>
<div>
Los Perifericos en si realizan diferentes tipos de funciones, sin ser parte esencial de los procesadores y no son necesarios para el funcionamiento de los diferentes microcontroladores.</div>
<div>
<br /></div>
<div>
Los perifericos se pueden <b>clasificar</b> de diversas maneras:</div>
<div>
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDB2gOqAz-jogQbf-45V_9NVPA2WoZHxLABFLGT1kUrt1Uax1SevqEpP1tqFxffAHsLHXFSgoQfaLWszfsUWav0xgYqdZUSQZ5_vkGm_8jB6MPlvkustK4Jj_RA5HCOSnhto7lCJTNcMsF/s1600/arduino.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDB2gOqAz-jogQbf-45V_9NVPA2WoZHxLABFLGT1kUrt1Uax1SevqEpP1tqFxffAHsLHXFSgoQfaLWszfsUWav0xgYqdZUSQZ5_vkGm_8jB6MPlvkustK4Jj_RA5HCOSnhto7lCJTNcMsF/s320/arduino.jpg" width="320" /></a></div>
<br />
<br />
<b><br /></b><br />
<b>Periféricos de entrada de datos</b></div>
<div>
<b>Periféricos de salida de datos</b></div>
<div>
<b>Periféricos E/S que engloban a los anteriores</b></div>
<div>
<b><br /></b></div>
<div>
<br /></div>
<div>
<br />
<br />
<br />
<br />
<br />
En la actualidad estan emergiendo difernetes tipos de perifericos para diferentes situaciones como los ambientes inteligentes, algo relativamente nuevo con ayuda de la inteligencia artificial.</div>
<div>
<br /></div>
<div>
Esta inteligencia ambiental esta en pleno desarrollo para ser utlizada en algun futuro muy cercano. Para abrir una nueva prespectiva a nuestro mundo donde habitamos.</div>
<div>
<br /></div>
<div>
Hoy en dia existe diferentes tipos de esta nueva tecnologia, en donde con solo entrar alguna habitacion detecta a la persona y prende los focos<br />
<br />
Una de las principales proyectos en donde se utiliza esta tecnologia es en la domotica<br />
En donde un conjunto de sistemas, microcontroladores, inteligencia artificial, perifericos entre otro tipo de dispositivos.<br />
<br />
Para utilizarse en diferentes servicios, como la seguridad, comunicacion, bienestar entre otro tipo de aplicaciones.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKi-qUcZTUif6FuOy94t1RKkCrS2h0eNU66ABUfKYevDC0D8JAD-vC6PTS2InZaL37vzxpwAhcCP5TciaMWGX0nqdtJC-QAw9iOrUA-SgoxntxlqrrgI2aBFdNAE3wyxU4GvZFpofn53bh/s1600/imagencasa.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKi-qUcZTUif6FuOy94t1RKkCrS2h0eNU66ABUfKYevDC0D8JAD-vC6PTS2InZaL37vzxpwAhcCP5TciaMWGX0nqdtJC-QAw9iOrUA-SgoxntxlqrrgI2aBFdNAE3wyxU4GvZFpofn53bh/s320/imagencasa.gif" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
</div>
<div>
<div style="text-align: center;">
<b>Aplicaciones en caso de la domotica:</b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Que son los dispositivos periféricos?<br />
<br />
Los dispositivos periféricos son aparatos, gadgets , u otros dispositivos auxiliares que facilitan ciertas tareas e independientes a los diferentes procesadores, computadoras o micro-controladores.<br />
Los periféricos<br />
comunican con el mundo exterior, como a los sistemas que archivan y guardan diferentes tipos de información sirviendo de memoria principal<br />
<br />
Historia:<br />
<br />
La historia de los perifericos se remota asi 40 años desde la creación del primer mouse para facilitar el manejo de los ordenadores y revoluciono la forma en que se veian las computadoras.<br />
<br />
Ideado por Douglas Engelbart y construido por William English, consistía en una caja de madera con una palanca pequeña y un único botón. Segun estos inventores le pusieron el nombre de: "X-Y Position Indicator for a Display System", pero claro, al tener un tamaño pequeño y una cola , fue apodado rápidamente con el nombre con el que se haría famoso: ratón.<br />
<br />
Posteriormente llego el teclado en primer instancia en las maquinas de escribir posteriormente se pasaron para el uso de los ordenadores creando diferentes tipos de ordenamiento de las teclas hasta que aparecio el famosisimo teclado "QWERTY" cuyo nacimiento se remota 1868.<br />
<br />
Pero esto no fue suficiente ya que la tecnologia iva cada ves mas avansada y se requerian nuesvas adaptaciones y en eso nacio el monitor que a tenido cambios sgnificatios durante todo el tiempo.<br />
<br />
En 1964 el Instituto Tecnológico de Massachussets (MIT), los laboratorios Bell y la empresa General Electric crearon un sistema llamado Multics, que ya permitía hacer más cosas pero que requería una nueva interfaz. Así nació el primer monitor<br />
Ahorro de Energia</div>
<div style="text-align: center;">
Conford</div>
<div style="text-align: center;">
Seguridad</div>
<div style="text-align: center;">
Comunicaciones</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<b>Aplicaciones Generales:</b></div>
<div style="text-align: center;">
<b><br /></b></div>
<div style="text-align: center;">
<b>Agricultura</b></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifY8ic_2eeXf7w7N-cwboiMVhoyikkzDeFARCT0a7u6OWde5cUtjQDQXrQssYdEWXAObGdQrH0fh9fjWu93HWnoBUkDtS4_qNoC6AEZpbfXszNgNnswBasikiFZbSrvVSL7-dW08d7DaZK/s1600/agricultura.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifY8ic_2eeXf7w7N-cwboiMVhoyikkzDeFARCT0a7u6OWde5cUtjQDQXrQssYdEWXAObGdQrH0fh9fjWu93HWnoBUkDtS4_qNoC6AEZpbfXszNgNnswBasikiFZbSrvVSL7-dW08d7DaZK/s200/agricultura.jpg" width="200" /></a></div>
<br />
<br />
<div style="text-align: center;">
Riego Automatico</div>
<div style="text-align: center;">
Menos desperdicio</div>
<div style="text-align: center;">
Menos capital humano</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<b>Transportes</b></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/AVvXsEgyZcV3LecqRDaNaRW4sccZ-AVpBqQa_VTlZPKmQQ396ic546lzvxBvOTpHJ30GRmz-6RZ18P6vr-D6Jd_c55hxCcZ0JtIH1qV9pG4b70WUzWfe2ybb3QjWMmOwOFbx9AjTxeOdIid_eI_9/s1600/transportes.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="129" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyZcV3LecqRDaNaRW4sccZ-AVpBqQa_VTlZPKmQQ396ic546lzvxBvOTpHJ30GRmz-6RZ18P6vr-D6Jd_c55hxCcZ0JtIH1qV9pG4b70WUzWfe2ybb3QjWMmOwOFbx9AjTxeOdIid_eI_9/s200/transportes.jpg" width="200" /></a></div>
<br />
<br />
<div style="text-align: center;">
Mas eficientes</div>
<div style="text-align: center;">
Redusen gastos diversos como el combustible por un mejor uso</div>
<div style="text-align: center;">
Amigable con la ecologia</div>
<br />
<div style="text-align: center;">
<b>Ecologia</b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Transportes mas eficientes</div>
<div style="text-align: center;">
Edificios con paneles solares inteligente, se mueven scierto grado para mayo energia</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<b>Comodidad urbana</b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Domitica</div>
<div style="text-align: center;">
Semaforos inteligentes</div>
<div style="text-align: center;">
<br /></div>
<b>Que elemntos deven intervenir:</b><br />
Ejemplos:<br />
1-. Microcontroladores: <b>PICS</b></div>
<div>
2-. Sensores <b>Temperatura</b><br />
3-. Terminales<br />
4-. Perifericos <b> Pantallas tactiles</b><br />
5-. Tecnologia de Comunicacion (Redes) <b>Wi-fi</b><br />
<br />
<br /></div>
<div>
<a href="http://es.wikipedia.org/wiki/Dom%C3%B3tica">http://es.wikipedia.org/wiki/Dom%C3%B3tica</a></div>
<div>
<a href="http://inteligenciaambiental.blogspot.mx/">http://inteligenciaambiental.blogspot.mx/</a></div>
<a href="http://es.wikipedia.org/wiki/Perif%C3%A9rico_%28inform%C3%A1tica%29">http://es.wikipedia.org/wiki/Perif%C3%A9rico_(inform%C3%A1tica)</a><br />
<a href="http://www.ciudad.com.ar/espectaculos/58292/historias-de-los-perifericos">http://www.ciudad.com.ar/espectaculos/58292/historias-de-los-perifericos</a>AVEhttp://www.blogger.com/profile/04905651130741095696noreply@blogger.com0tag:blogger.com,1999:blog-2035900958881191977.post-5725839851663520002012-05-01T12:45:00.000-07:002012-05-17T20:53:43.097-07:00Arquitecturas y Memorias Microprocesadoes<br />
<div style="text-align: justify;">
Los microcontroladores existen con diferentes tipos de arquitecturas y cada una de ellas tienen diferentes tipos de memorias.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="color: black;">Los Microcontroladores PIC</span><span style="background-color: white; font-family: sans-serif; line-height: 18px;">, basados en la arquitectura RISC contienen instrucciones homogeneas, reducido numeros de instrucciones y con esto una mayor velocidad.</span></div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;"><br /></span><br />
<span style="font-family: sans-serif;"><span style="line-height: 18px;"><br /></span></span><br />
<span style="background-color: white; font-family: sans-serif; line-height: 18px;"><br /></span></div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;">Inicialmente los Microcontroladorea adoptaron una arquitectura de </span><span style="background-color: white; font-family: sans-serif; line-height: 18px;">Von Neumann, peor a los pasos de los años estos an sido cambiandose asta predominar la arquitectura Harvad.</span></div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;"><br /></span></div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;">La </span><span style="color: black;">Arquitectura de Von Neumann</span><span style="background-color: white; font-family: sans-serif; line-height: 18px;"> se caracteriza por disponer 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;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;"><br /></span></div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;">La arquitectura Harvard empleada en los microcontroladores actuales, dispone de dos memorias independientes: una que contiene sólo instrucciones y otra sólo datos.</span></div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;"><br /></span></div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;"><br /></span></div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;">Organizacion de la memoria en arquitecturas Harvad es de la siguiente manera:</span></div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;">En los pic de baja gamma el registri del programa (PC), proporciona la direccion de memoria a la vez su longuitud que puede oscilar entre 9 y 11 bits, segun la capacidad del mismi controlador.</span></div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;"><br /></span></div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;">Los pic de rangos medios tienen un registro contador de programa de aproximada mente 13 bits capaz de direccionar un espacio de 8kb x 14</span></div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;"><br /></span></div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;">El bloque total de 8K x 14 de memoria de programa, está subdividido en 4 páginas de 2K x 14</span></div>
<span style="background-color: white; font-family: sans-serif; line-height: 18px;"><br /></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiezYiPsL-tmdHojYfjID6wNKKBXCn5WkAwxa_UZWOVLrytcJVApB9pHFqnsLyr7AYqDUsXFMIQ4ECzYs4z5Cq_PvOtSukhatNbMFipHj2naWl9Vai5px1liZQKLSY0daM_915kBd4Pp2ju/s1600/Memoria_de_programa_de_los_PIC_de_la_gama_media1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiezYiPsL-tmdHojYfjID6wNKKBXCn5WkAwxa_UZWOVLrytcJVApB9pHFqnsLyr7AYqDUsXFMIQ4ECzYs4z5Cq_PvOtSukhatNbMFipHj2naWl9Vai5px1liZQKLSY0daM_915kBd4Pp2ju/s1600/Memoria_de_programa_de_los_PIC_de_la_gama_media1.jpg" /></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: justify;">
Los datos de memorias se organizan en barrios o bancos podiendo existir asta cuatro en maxima capacidad como en la imagne de arriba.</div>
<div class="separator" style="clear: both; text-align: justify;">
Cada uno de los diferentes tipos de bancos tienen sus diferentes capacidades la primera siempre tiene una capacidad doble en general que las demas. Por lo generar este tipo de estructura son de los procesadores de gamma media y cada uno de bytes son las diferentes tipos de posiciones para almacenar la información.</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;">En los bancos despues del primer banco son inacsesible sino estos se direcciona desde el valor 00h al 0Fh. y dependiendo el valor es el banco al que se va accesar.</span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;"><br /></span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;">Estos microprocesadores cuentan con dos diferentes tipos de memorias:</span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;">Registros de Propósito Especial (SFR) = Se refiere a los diferentes tipos de perifericos</span></div>
<span style="background-color: white; font-family: sans-serif; line-height: 18px;"></span><br />
<div style="text-align: justify;">
<span style="background-color: white; font-family: sans-serif; line-height: 18px;">• Registro de Propósito General (GPR) = Son comparables a las memorias RAm</span></div>
<span style="background-color: white; font-family: sans-serif; line-height: 18px;">
</span><br />
<div class="separator" style="clear: both; text-align: justify;">
<span style="background-color: white; font-family: sans-serif; font-size: 12px; line-height: 18px;"><br /></span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="background-color: white; font-family: sans-serif; font-size: 12px; line-height: 18px;"><br /></span></div>
<span style="background-color: white; font-family: sans-serif; font-size: 12px; line-height: 18px;"><br /></span><br />
<span style="background-color: white; font-family: sans-serif; font-size: 12px; line-height: 18px;"><br /></span><br />
<span style="background-color: white; font-family: sans-serif; font-size: 12px; line-height: 18px;"><br /></span><br />
<br />
ligas =<br />
<br />
<a href="http://www.ecured.cu/index.php/Microcontroladores_PIC.">http://www.ecured.cu/index.php/Microcontroladores_PIC.</a><br />
<a href="http://www.mikroe.com/eng/chapters/view/79/capitulo-1-el-mundo-de-los-microcontroladores/">http://www.mikroe.com/eng/chapters/view/79/capitulo-1-el-mundo-de-los-microcontroladores/</a>AVEhttp://www.blogger.com/profile/04905651130741095696noreply@blogger.com0tag:blogger.com,1999:blog-2035900958881191977.post-25965746268307131182012-04-24T06:38:00.001-07:002012-05-17T20:54:00.577-07:00Memorias microcontroladoresExisten diferentes tipos de memorias para microcontroladores con sus diferentes funcionalidades.<br />
<div>
<br /></div>
<div>
<br />
<br /></div>
<div>
<div style="text-align: center;">
<span style="background-color: white;">Memorias EEPROM:</span></div>
</div>
<div>
<div style="text-align: center;">
<span style="background-color: white;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZwJyJmj4XuP6EotyTdcDh5u7q1d_GMRj1ucxxxnQW_1INtY3Yc0WFCWeDM8iaxUVQO89jruxHIZg2mjSCuzC433Gvs59PDTlPR7tUKQr-5vRvPkUHBYbG2qTbwRsh3p3DPtWFAPhe7So7/s1600/memoria_eprom_27C256_32K.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZwJyJmj4XuP6EotyTdcDh5u7q1d_GMRj1ucxxxnQW_1INtY3Yc0WFCWeDM8iaxUVQO89jruxHIZg2mjSCuzC433Gvs59PDTlPR7tUKQr-5vRvPkUHBYbG2qTbwRsh3p3DPtWFAPhe7So7/s200/memoria_eprom_27C256_32K.jpg" width="200" /></a></div>
<span style="background-color: white;"><br /></span></div>
<div>
<div style="text-align: justify;">
<span style="background-color: white;">Esta memoria es comun para los microprosesadores pic, este es un programa de solo lectura, programable de manera electronicamente.</span></div>
<div style="text-align: justify;">
Estos tipos de micro-controladores tienen la cualidad de que permite el almacenamiento y una sobre escritura de datos por medio de diferentes tipos de voltajes de los circuitos digitales.</div>
<div style="text-align: justify;">
<br /></div>
Diferencia en las memorias:<br />
Existen dos diferentes de series.<br />
Las series 24LCXX que utilizan una comunicación serial de dos hilos.<br />
Las series 93LCXX que corresponde a una comunicación serial de tres hilos.<br />
Cada una de estas memorias utiliza protocolos de comunicación serial que depende de la acción que se ejecutara.<br />
<br />
Principales Características:<br />
<br />
<div style="text-align: justify;">
1-. Se pueden conectar de manera eficiente y fácil con los microprocesadores </div>
<div style="text-align: justify;">
Ahorro de memoria.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
2-. En estas memorias si son de manera serial se han reducido considerablemente gracias la reducción considerable de los pines, ya que los pines pueden servir como entrada y salida de datos.</div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
<span style="background-color: white;">3-. El consumo de energía es mucho menor que memorias en paralelo.</span></div>
<span style="background-color: white;"><br /></span></div>
<div>
<div style="text-align: center;">
<span style="background-color: white;">Memorias FLASH:</span></div>
<div style="text-align: center;">
<span style="background-color: white;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNoBPPFdPw6ssgVIeRSt2W6eXOB8S3FuNIgTCN4HZiZCa3PsPeXsSRU0xRZ3P5C5mts6pwpBqRj4Uk0UwKPF40rxk3Vc1WtIRZAqRfWyozazNLqp8HgOvl5iisSWT6ANJ7hXVb9kYXamqa/s1600/flash.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNoBPPFdPw6ssgVIeRSt2W6eXOB8S3FuNIgTCN4HZiZCa3PsPeXsSRU0xRZ3P5C5mts6pwpBqRj4Uk0UwKPF40rxk3Vc1WtIRZAqRfWyozazNLqp8HgOvl5iisSWT6ANJ7hXVb9kYXamqa/s200/flash.jpg" width="200" /></a></div>
<span style="background-color: white;"><br /></span><br />
<span style="background-color: white;"><br /></span></div>
<div>
<span style="background-color: white;">Esta tambien es muy comun tambien en los microprocesadores pic, este tipo de memoria tiene las mismas características que las memorias EEPROM pero con la gran diferencia que consumen menos energia y tienen mejor tamaño de </span>almacenaje<br />
<span style="background-color: white;"><br /></span><br />
<span style="background-color: white;">Se trata de una memoria no volátil, de bajo consumo que se puede borrar y escribir o sobre escribir. </span><br />
<span style="background-color: white;">Esta tipos de memorias tienen el mismo funcionamiento como una memoria ROM como una memoria RAM</span><br />
<span style="background-color: white;"><br /></span><br />
<span style="background-color: white;">Estas memorias son utiles para cuando se necesiten re-programación en el mismo circuito donde se encuentre instalado, sin necesidad de sacar la memoria.</span><br />
<br />
<div style="text-align: center;">
<span style="background-color: white;">Memoria Sram:</span></div>
<div style="text-align: center;">
<span style="background-color: white;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMeOclOjo61cvBZ3XCaIcPV39h7aebcdyXPrDS_c2wMl1bFFt3Yi4s4zWuaApjSDYbShybpc-W23iw3D5Bl6HoYKYofxxxsf9xIl0SpQ5zvMec4VHco4HwKpY37iyyEMQKsxvWA69OXm3T/s1600/memoires_sram.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="166" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMeOclOjo61cvBZ3XCaIcPV39h7aebcdyXPrDS_c2wMl1bFFt3Yi4s4zWuaApjSDYbShybpc-W23iw3D5Bl6HoYKYofxxxsf9xIl0SpQ5zvMec4VHco4HwKpY37iyyEMQKsxvWA69OXm3T/s200/memoires_sram.jpg" width="200" /></a></div>
<div style="text-align: center;">
<span style="background-color: white;"><br /></span></div>
<div style="text-align: center;">
<span style="background-color: white;"><br /></span></div>
<span style="background-color: white;">Estas tipos de memorias son de manera aleatoria esto quiere decir que la manera para leer esta tipos de memorias y al igual que escritas puede ser de diferentes maneras o formas.</span><br />
<span style="background-color: white;">Estas memorias son realmente caras en comparaciones a las anteriores pero con la gran diferencia que son sumamente </span>rápidas<br />
<span style="background-color: white;"><br /></span><br />
Reposo : Su bus de control esta desactivado.<br />
<br />
Lectura : <span style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"> </span><span style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;">El ciclo de lectura comienza cargando los buses de datos y con los transistores</span><br />
<br />
Escritura : En el caso de la escritura se inicia de manera aleatorisada cargandolo todo a los diferentes buses de datos<br />
<br />
Capacidad de memorias generales en el arduino:<br />
<br /></div>
<div>
<table border="0" class="style10" style="background-color: white; color: #6581c3; font-family: Verdana, Geneva, Tahoma, sans-serif; font-size: xx-small; text-align: center;"><tbody>
<tr><td style="text-align: left; width: 315px;"><br /></td><td style="text-align: left; width: 315px;"><span style="color: black; font-size: small;"><br /></span></td></tr>
<tr><td style="text-align: left; width: 315px;"><span style="color: black; font-size: small;">Memoria: flash: 32 kb </span><br />
<span style="color: black; font-size: small;">Memoria: SRAM: 2 kb</span></td><td style="text-align: left; width: 315px;"><span style="color: black; font-size: small;"><br /></span></td></tr>
<tr><td style="text-align: left; width: 315px;"><span style="color: black; font-size: small;">Memoria: EEPROM: 1 kb</span></td><td style="text-align: left; width: 315px;"><span style="color: black; font-size: small;"><br /></span></td></tr>
</tbody></table>
</div>AVEhttp://www.blogger.com/profile/04905651130741095696noreply@blogger.com1tag:blogger.com,1999:blog-2035900958881191977.post-33233140854219498382012-04-19T05:18:00.001-07:002012-05-17T20:18:48.256-07:00Lenguajes de alto y bajo nivel<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrc7LBEgWAcmHXFGn_H8ozoj6n30FIj63997ja5PS8bwsucvtuALxuJfBD-fAj60YAglhpFUUg_IVsD5wR6PJFpK0sYK0LPec4UFjOyZZSbyAl0Hiv3MFO3c6DevYpC24QoD56fmI4r_Gx/s1600/lenguajes.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="139" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrc7LBEgWAcmHXFGn_H8ozoj6n30FIj63997ja5PS8bwsucvtuALxuJfBD-fAj60YAglhpFUUg_IVsD5wR6PJFpK0sYK0LPec4UFjOyZZSbyAl0Hiv3MFO3c6DevYpC24QoD56fmI4r_Gx/s200/lenguajes.png" width="200" /></a><b> Que es un lenguaje de programación?</b>Un lenguaje de programación, es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML <br />
<br />
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.<br />
<br />
El ordenador sólo entiende un lenguaje conocido como código binario o código máquina, consistente en ceros y unos. Es decir, sólo utiliza 0 y 1 para codificar cualquier acción.<br />
<br />
Los lenguajes más próximos a la arquitectura hardware se denominan lenguajes de bajo nivel y los que se encuentran más cercanos a los programadores y usuarios se denominan lenguajes de alto nivel. <b></b><br />
<b><br />
¿Qué es un lenguaje de alto nivel?</b><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh71t03wT2bLj2y0v7sV5jd5rgtaLV5_o2U-UVDaq18zUya5_Er55vs-ls5GJR4frrAln_hOhuDLNDEx6QZzW2OD1ni8UzZJrbt_RSVPGNJXCyr6I6NdpI1BPWoDydZFOmLXLIfFxH2N1NF/s1600/bajo-nivel.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh71t03wT2bLj2y0v7sV5jd5rgtaLV5_o2U-UVDaq18zUya5_Er55vs-ls5GJR4frrAln_hOhuDLNDEx6QZzW2OD1ni8UzZJrbt_RSVPGNJXCyr6I6NdpI1BPWoDydZFOmLXLIfFxH2N1NF/s200/bajo-nivel.jpg" width="200" /></a></div>Un lenguaje de alto nivel permite al programador escribir las instrucciones de un programautilizando palabras o expresiones sintácticas muy similares al inglés. Por ejemplo, en C se pueden usar palabras tales como: case, if, for, while, etc. <br />
<br />
Los lenguajes de alto nivel logran la independencia del tipo de máquina y se aproximan al lenguaje natural. Los lenguajes de alto nivel, también denominados lenguajes evolucionados, surgen con posterioridad a los anteriores, con los siguientes objetivos, entre otros:<br />
<br />
Lograr independencia de la máquina, pudiendo utilizar un mismo programa en diferentes equipos con la única condición de disponer de un programa traductor o compilador, que lo suministra el fabricante, para obtener el programa ejecutable en lenguaje binario de la máquina que se trate. Además, no se necesita conocer el hardware específico de dicha máquina.<br />
<br />
Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma más sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el lenguaje máquina, ya que se utilizan palabras (en inglés) en lugar de cadenas de símbolos sin ningún significado aparente.<br />
<br />
Incluir rutinas de uso frecuente como son las de entrada/salida, funciones matemáticas, manejo de tablas, etc, que figuran en una especie de librería del lenguaje, de tal manera que se pueden utilizar siempre que se quieran sin necesidad de programarlas cada vez.<br />
<br />
Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso (FORTRAN, LISP, ALGOL, COBOL, APL, SNOBOL, PROLOG, MODULA2, ALGOL68, PASCAL, SIMULA67, ADA, C++, LIS, EUCLID, BASIC), además de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos<br />
<br />
<b>Variantes</b><br />
<ul><li> Genera un código más sencillo y comprensible.</li>
<li> Escribir un código válido para diversas máquinas y, posiblemente, sistemas operativos.</li>
<li> Reducción de velocidad al ceder el trabajo de bajo nivel a la máquina.</li>
<li> Algunos requieren que la máquina cliente posea una determinada plataforma.</li>
</ul><br />
<b><br />
Lenguajes de bajo nivel.</b><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcIWuf9ubnXcuUPZHotO1FDWVIeIGMAkDZe1HLhL6oTE099yEkwa4EXdNQx_B38xkgre-hBgPLMg1CmjCuBVNsP7yulzjdfc6GDN1lK-NpTyfEjeMEKZsC09TsttbxtcXvJepPkxfnND0u/s1600/bajo.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="140" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcIWuf9ubnXcuUPZHotO1FDWVIeIGMAkDZe1HLhL6oTE099yEkwa4EXdNQx_B38xkgre-hBgPLMg1CmjCuBVNsP7yulzjdfc6GDN1lK-NpTyfEjeMEKZsC09TsttbxtcXvJepPkxfnND0u/s200/bajo.jpg" width="200" /></a>Un lenguaje de programación de bajo nivel de abstracción es el que proporciona un conjunto de instrucciones aritmeticológicas sin la capacidad de encapsular dichas instrucciones en funciones que no estén ya contempladas en la arquitectura del hardware. Tambien permite al programadorescribir instrucciones de un programa usando abreviaturas del inglés, también llamadas palabras nemotécnicas, tales como: ADD, DIV, SUB, etc. Un programa escrito en un lenguaje ensamblador tiene el inconveniente de que no es comprensible para la computadora, ya que, no está compuesto por ceros y unos. Para traducir las instrucciones de un programa escrito en un lenguaje ensamblador a instrucciones de un lenguaje máquina hay que utilizar un programa llamado ensamblador.<br />
<b><br />
Variantes.</b><br />
En este tipo de lenguajes se trabaja a nivel de instrucciones, es decir, su programación es al más fino detalle, además, está completamente orientado a la máquina.<br />
<ul><li> Adaptación - Máxima entre programación y aprovechamiento del recurso de la máquina.</li>
<li> Velocidad - Máxima al contar con un acceso directo a los recursos, sin capas intermedias.</li>
<li> Portabilidad - Mínima por estar restringido a las especificaciones del fabricante.</li>
<li> Abstracción - Mínima por depender completamente de la técnica del hardware.</li>
<li> Uso - Requiere de la máxima atención y de una organización estructurada en base a los planos del hardware y del objetivo del software.</li>
</ul><br />
<b>Lenguajes de Medio nivel</b><br />
Se trata de un termino no aceptado por todos, pero q seguramente habrás oído. Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podría situarse C ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas características de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel.<br />
<b><br />
Generaciones </b><br />
La evolución de los lenguajes de programación se puede dividir en 5 etapas o generaciones. <br />
• Primera generación: lenguaje maquina.<br />
<br />
• Segunda generación: se crearon los primeros lenguajes ensambladores.<br />
<br />
• Tercera generación: se crean los primeros lenguajes de alto nivel. Ej. C, Pascal, Cobol…<br />
<br />
• Cuarta generación. Son los lenguajes capaces de generar código por si solos, son los llamados RAD, con lo cuales se pueden realizar aplicaciones sin ser un experto en el lenguaje. Aquí también se encuentran los lenguajes orientados a objetos, haciendo posible la reutilización d partes del código para otros programas. Ej. Visual, Natural Adabes….<br />
<br />
• Quinta generación: aquí se encuentran los lenguajes orientados a la inteligencia artificial. Estos lenguajes todavía están poco desarrollados. Ej. LISP<br />
<br />
<b>Bibliografias:</b><br />
http://www.todo-programacion.com.ar/archives/2005/04/lenguajes_de_al.html<br />
http://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivel<br />
http://www.carlospes.com/minidiccionario/lenguaje_de_bajo_nivel.php<br />
http://www.desarrolloweb.com/articulos/2358.phpObed Guevarahttp://www.blogger.com/profile/04970162450835967179noreply@blogger.com2tag:blogger.com,1999:blog-2035900958881191977.post-54758915996234789522012-04-19T03:12:00.004-07:002012-05-17T20:19:12.497-07:00Arduinos<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXjRT_9Rk-P-NFjpQrjjA22XgxT0lgx3aP8mr0Hyx-JpXcRqW75zRcIDQIEu3kyto8_A6Yp8S_pWX_dqZ1KW4ZkkVhRi1sMHZYlI4Px4iI70drX6FTIEL70GsTl6Giw-vdNOGBKrppK8_J/s1600/tiposarduino20090812.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="107" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXjRT_9Rk-P-NFjpQrjjA22XgxT0lgx3aP8mr0Hyx-JpXcRqW75zRcIDQIEu3kyto8_A6Yp8S_pWX_dqZ1KW4ZkkVhRi1sMHZYlI4Px4iI70drX6FTIEL70GsTl6Giw-vdNOGBKrppK8_J/s200/tiposarduino20090812.png" width="200" /></a></div><br />
El Arduino es un proyecto libre, que brinda una plataforma de hardware programable muy sencilla y flexible. El entorno de desarrollo se puede descargar gratuítamente, y el hardware se puede montar a mano o bien comprarlo preensamblado, tanto de los creadores del sistema, llamado Arduino, o esambladores secundarios como puede ser el Roboduino, un poco más económico aunque igual de funcional. <b></b><br />
<b><br />
Caracteristicas: </b><br />
Cuenta con un pequeño procesador de 16MHz (Atmega, dependiendo del modelo usan distintas versiones como son el Atmega8, Atmega168, Atmega 328 y Atmega1280, que se diferencian entre si en el tamaño de la memoria Flash, Sram y EEPROM, y en el caso de 1280 en el número de salidas que puede controlar), y los modelos más comunes gestionan 14 patillas de entrada y salida digital, 6 de las cuales son capaces de proveer PWM, y 8 patillas analógicas. <br />
<br />
En cuanto a alimentación, las versiones USB se pueden alimentar tanto por este puerto como a través de una fuente alternativa de entre 7 y 12v (6v mínimo y 20v máximo recomendados). Esto lo hace perfecto para poder alimentarlo desde el PC, usándolo a la vez que programamos, escribimos en Twitter o jugamos en Partypoker. <br />
<br />
El uso más común del Arduino es el diseño de pequeños modelos robóticos. A parte de para trabajar con robots, el Arduino puede servir para casi de todo, el único límite es nuestra imaginación. <br />
<br />
Como ya he comentado hay distintas versiones, que se diferencian entre sí tanto el tipo de conexión (serial o USB), en el tamaño o en las características técnicas. En la web de Arduino tenéis las especificaciones de cada uno de los modelos. Para programar el Arduino se utiliza un lenguaje basado en C y posee muchas instrucciones propias y una amplia variedad de librerías que nos harán el trabajo de programación mucho más fácil.<br />
<br />
<b>Aplicaciones. </b><br />
Entre las aplicaciones, debido a las posibilidades que presentan sus entradas, nos permite utilizar una gran variedad de sensores, como se ha dicho. <br />
<ul><li> Control de un relé.</li>
<li>Un conmutador.</li>
<li>Leer la posición de un potenciómetro. </li>
<li>Control de un servo.</li>
<li>Motor DC. </li>
</ul><b><br />
Tipos de Arduino. </b><br />
Bien, lo primero que se debería hacer antes de nada es responder a estas 3 preguntas que agilizarán bastante la elección de una u otra placa: <br />
<br />
1.- ¿Qué tamaño tendrán los proyectos que quiero hacer con Arduino?¿Qué me interesa más el espacio o las prestaciones? <br />
<br />
2.- ¿Dispongo de un programador de micros o quiero que tanto la alimentación como la programación se pueda hacer con la propia placa? <br />
<br />
3.- ¿El Arduino va a interactuar sólo con su propia circuitería o se tendrá que comunicar con más placas u otros dispositivos (móviles, pda's, receptores, etc.) <br />
<br />
Conscientes de que cada vez salen a la luz nuevos tipos con nuevas funcionalidades, nos vamos a centrar en los modelos principales más extendidos. <br />
<br />
De mayor a menor: <br />
<b><br />
Arduino Mega</b><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAehe6TmAgV5c6mrvYRq5qu77rBUJdJX0Me75kcRPLIe15ozHxtga7ogWCN1MzpHXttvl66uTDxsZZz07S9K8xbQOkiht4eZyS5Kajtpftc7GXz7CLr93WpKxxT_HiJjC_m7TdHgK0SDJG/s1600/MKSP5-2T.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAehe6TmAgV5c6mrvYRq5qu77rBUJdJX0Me75kcRPLIe15ozHxtga7ogWCN1MzpHXttvl66uTDxsZZz07S9K8xbQOkiht4eZyS5Kajtpftc7GXz7CLr93WpKxxT_HiJjC_m7TdHgK0SDJG/s200/MKSP5-2T.jpg" width="200" /></a></div><b> </b> <br />
La Mega es compatible con la mayoría de losescudos diseñados para el Arduino Duemilanoveo Diecimila. <br />
<b><br />
Características</b><br />
<ul><li> Microcontroladores Atmega2560</li>
<li> Voltaje de Operación 5V</li>
<li> Voltaje de Entrada (recomendado) 7-12V</li>
<li> Voltaje de Entrada (límites) 6-20V</li>
<li> Digital pines I / O 54 (de los cuales 14proporcionan una salida PWM)</li>
<li> Pines de entrada analógica 16</li>
<li> Corriente de I / S de CC Pin 40 mA</li>
<li> De corriente continua de 3.3V Pin 50 mA</li>
<li> Memoria Flash de 256 KB de los cuales 8 KButilizadas por gestor de arranque</li>
<li> 8 KB de SRAM </li>
</ul><b><br />
Arduino Diecimila/Duemilanove</b> <br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPuMqqkJkEltHYEjs6g4jrHe6de6LrT8AJTJVoeNbfxt8Nk4nmwdml_8Ax9acUelp_ghQZ7Dqgmxn8_BsOBz1PQvv9nWLwsWqF2GOUs5RqF8-UGQ9rRK3Rc1vEBRRrqH0U1C6X1MjGgoEu/s1600/MKSP11-2T.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="154" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPuMqqkJkEltHYEjs6g4jrHe6de6LrT8AJTJVoeNbfxt8Nk4nmwdml_8Ax9acUelp_ghQZ7Dqgmxn8_BsOBz1PQvv9nWLwsWqF2GOUs5RqF8-UGQ9rRK3Rc1vEBRRrqH0U1C6X1MjGgoEu/s200/MKSP11-2T.jpg" width="200" /></a></div>El Arduino Uno es una placa electronica basadaen el ATmega328. Cuenta con 14 entradas / salidas digitales pines (de los cuales 6 pueden ser utilizados como salidas PWM), 6 entradas analógicas, un oscilador de cristal de 16 MHz, una conexión USB, un conector de alimentación, una cabecera de ICSP, y un botón de reinicio.Contiene todo lo necesario para apoyar a la micro,sólo tiene que conectarlo a un ordenador con un cable USB o el poder con un adaptador AC-DC o la batería para empezar. <br />
<b><br />
Arduino Pro </b> <br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5XV9nGArMt-rqmC2YgF7UBZ-VCnl7gTZPCr4vniBJYp6_OGnbpdYs5c37YLB3X_JrgFioaD03THYyWcoHsqDvdqh5FSyHBxffBGNV6tba-YFv69aBh7LxLolmGNk-wAkyGUfpn7iZifCu/s1600/arduino-pro-328-5v-16mhz.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5XV9nGArMt-rqmC2YgF7UBZ-VCnl7gTZPCr4vniBJYp6_OGnbpdYs5c37YLB3X_JrgFioaD03THYyWcoHsqDvdqh5FSyHBxffBGNV6tba-YFv69aBh7LxLolmGNk-wAkyGUfpn7iZifCu/s200/arduino-pro-328-5v-16mhz.jpg" width="200" /></a></div>Ésta es la versión reducida de la placa Arduino ensamblada con componentes de superficie y quitando algunas partes para mejorar la robustez y la calidad del diseño final. <br />
<b><br />
Características: </b><br />
<ul><li>Microcontrolador ATmega328 con cristal de 16MHz. </li>
<li>Pines laterales de conexión del UART </li>
<li>Regulador 5V incorporado </li>
<li>Protegido contra inversión de polaridad </li>
<li>Alimentación: DC de 5V a 12V </li>
<li>Protección en caso de cortocircuito </li>
<li>Conmutador de ON/OFF </li>
</ul><b><br />
Arduino Nano </b> <br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWV-cBLd7ueeRblZUF1MHy8NDKxV2dicOH17Gt6KOuJe8-gF9AvQdx87LumdwKmQznqL8RWM5IMqYCl7SMFkTFZvMwCihs62m2GXTbOub4Co_LAeQV6qJP8Q62KnZfQX3F_UNz8y14D7KI/s1600/MKGR1-2T.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWV-cBLd7ueeRblZUF1MHy8NDKxV2dicOH17Gt6KOuJe8-gF9AvQdx87LumdwKmQznqL8RWM5IMqYCl7SMFkTFZvMwCihs62m2GXTbOub4Co_LAeQV6qJP8Q62KnZfQX3F_UNz8y14D7KI/s200/MKGR1-2T.jpg" width="200" /></a></div><br />
El Arduino Nano 3.0 es una versión de montaje en superficie protoboard compatible con el controlador de la siempre popular Arduino Micro.Es pequeño, tiene USB integrado, y es fácilprotoboard. Tiene más o menos la misma funcionalidad de la Arduino Duemilanove, pero enun paquete diferente. Físicamente, le falta la toma de poder, pero aún así puede sentir y cambiar a lafuente de mayor potencial de la energía. Es perfecto para integrarse en su próximo proyecto.<br />
<br />
<br />
<br />
<b>Características</b><br />
<ul><li> El rearme automático durante la descarga del programa</li>
<li> Power OK LED azul</li>
<li> Green (TX), rojo (RX) y naranja (L) LED</li>
<li> Auto detección / conmutación de potencia de entrada</li>
<li> Pequeño USB mini-B para la programación y de serie del monitor</li>
<li> ICSP cabecera para su descarga directa de programas</li>
<li> Estándar 0.1 "DIP espaciamiento (protoboardamigable)</li>
<li> Interruptor de ajuste manual</li>
<li> EEPROM de 4 KB</li>
<li> Velocidad del reloj de 16 MHz. </li>
</ul><br />
<b>Arduino Mini </b><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRNmek4yACdGtv7GeHdKzKoVv6nVHGEi-yxF93AFg0ugtoM7evg7COgpYrO0UyIY-Jqjx1-UYx3TSTXxQtdhtEWRfWj0n606766eb8E3UMD_l5kqRrhH2or0slxbD2GXHJ0MA_6mFh9HSW/s1600/MKSP2-2T.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRNmek4yACdGtv7GeHdKzKoVv6nVHGEi-yxF93AFg0ugtoM7evg7COgpYrO0UyIY-Jqjx1-UYx3TSTXxQtdhtEWRfWj0n606766eb8E3UMD_l5kqRrhH2or0slxbD2GXHJ0MA_6mFh9HSW/s200/MKSP2-2T.jpg" width="200" /></a></div>El MiniArduino es una placa de pequeño microcontrolador basado en el ATmega168,destinado a circular por paneras y cuando el espacio es muy reducido. Usted puede conectar a una placa o ponerlo en un zócalo soldado en placa de prototipado. Al igual que las placas Arduino de tamaño completo, esto funciona a 16MHz, y susofertas de espacio ATMega168 programa dos veces tanto como el ATmega8 en los tablones deedad (16KB 8KB vs).<br />
<b></b><br />
<br />
<b>Características</b><br />
<ul><li> 14 entradas / salidas digitales pines (de los cuales 6 pueden ser utilizados como salidas PWM)</li>
<li> 8 entradas analógicas</li>
<li> Oscilador de cristal 16MHz</li>
<li> 16KB de memoria flash</li>
<li> 1 KB de SRAM</li>
<li> 512K de EEPROM</li>
<li> Se puede programar con el adaptador de Mini USB, o de otro tipo USB o RS232 con adaptador de serie TTL. </li>
</ul>Bibliografias: <br />
<a href="http://www.pulsaf5.com/que-es-un-arduino/">http://www.pulsaf5.com/que-es-un-arduino/</a> <br />
<a href="http://www.hispavila.com/3ds/atmega/introduino.html">http://www.hispavila.com/3ds/atmega/introduino.html</a> <br />
<a href="http://es.makezine.com/archive/2009/08/tipos_caractersticas_y_diferencias_de_pl.html">http://es.makezine.com/archive/2009/08/tipos_caractersticas_y_diferencias_de_pl.html</a><span style="font-family: "Calibri","sans-serif"; font-size: 10pt;"></span>Obed Guevarahttp://www.blogger.com/profile/04970162450835967179noreply@blogger.com1tag:blogger.com,1999:blog-2035900958881191977.post-89466870277639608112012-04-18T20:46:00.000-07:002012-05-17T20:54:19.022-07:00Usando ISIS Proteus<div style="text-align: center;">
Proteus</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
En esta ocación se moostrara el uso de la IDE de proteus para simulacion de diferentes tipos de proyectos electronicos con diferentes tipos de componentes.</div>
<br />
<br />
<div style="text-align: center;">
Posteriormente que tenemos instalado el programa nos mostrara la siguiente</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="" style="clear: both; text-align: center;">
Esta es la interfaz del proteus</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0-Jl_hSXmCXeP64U7Wf9O_pZO9wH247vf6RF0yS2VdX354mAxF2zvoOXbcXNeOnWzemhtoPH4KCK40zyYfQbEaTJVe-IxZkKNSE9O82xTT41qPTt6k0KMq6MIgYROnIJzmnkfVqVTHnUb/s1600/proteus.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="340" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0-Jl_hSXmCXeP64U7Wf9O_pZO9wH247vf6RF0yS2VdX354mAxF2zvoOXbcXNeOnWzemhtoPH4KCK40zyYfQbEaTJVe-IxZkKNSE9O82xTT41qPTt6k0KMq6MIgYROnIJzmnkfVqVTHnUb/s640/proteus.png" width="640" /></a></div>
<div class="" style="clear: both; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCP7w11Tu5VyG9GpWKliCwP_j6CdtbzA7-lq_FqeqLF0tHWqnr2EkKjhnLdcb0gPN83cI7BLQ6K3ZAzKjSF_sXYjW_dzAbvl0V19HGtqrhL9yq1S1qAUASLFf5aq3_JCUQQwc50ZpdTnce/s1600/componentes.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCP7w11Tu5VyG9GpWKliCwP_j6CdtbzA7-lq_FqeqLF0tHWqnr2EkKjhnLdcb0gPN83cI7BLQ6K3ZAzKjSF_sXYjW_dzAbvl0V19HGtqrhL9yq1S1qAUASLFf5aq3_JCUQQwc50ZpdTnce/s640/componentes.png" width="640" /></a></div>
<div class="" style="clear: both; text-align: justify;">
En la barra lateral izquierda nos muestra todas las herramientas que cuenta este programa</div>
<div class="" style="clear: both; text-align: justify;">
En el primer cuadro de esa barra es puntero típico con el que podremos mover los diferentes tipos de componentes. EL siguiente símbolo de abajo con respecto a este, es donde agregamos los componentes, solo se da un click y aparece al lado de esa barra otra, en donde tiene en nombre de devices, en donde se agregaran los diferentes tipos de componentes ya sean micro-controladores o componentes digitales.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAFSduEZg3ihfhwh2wXjg8sauaPP0BpsABgjUt5uxyOJEZvcBmr9pHJbFr0Xkb5eSi02YpTuQ70G02bZtZ9OqILB6EjM1V6SrQjL_E_iWWb6m7146CPdbiHqqNldGuvLnqt8q4arzJqilp/s1600/proteus.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAFSduEZg3ihfhwh2wXjg8sauaPP0BpsABgjUt5uxyOJEZvcBmr9pHJbFr0Xkb5eSi02YpTuQ70G02bZtZ9OqILB6EjM1V6SrQjL_E_iWWb6m7146CPdbiHqqNldGuvLnqt8q4arzJqilp/s1600/proteus.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
En la imagen le damos click en la "P" para agregar los componentes y continuamos con lo siguiente:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
En esta parte cuando elegimos el componente electronico lo mas facil para busar el componente deseado es buscarlo desde el campo keywords para poder reducir poco a poco la busqueda que necesitamos y en la ventana grande como se muestra en la pantalla se despliega los diferentes dispositivos que se encuentra con esa palabra, en este caso se busco un pic y en la barra lateral derecha se muestra como se desplegaria en la interfaz con el dinujo de arrbia y en el de abajo nos muestra las dimensiones reales del dispositivo y su forma verdadera. Ya solo se seleeciona y se agrega a la interfaz.</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7hVONvIAI-SMZdaUqBEbPL7SCqwQMt-8V_nDwFHjhoPqjS8CZhdyOjllBC1AmQBY3TE_FwublhUYci2dXz_ZkCxusgW8z9OITD5_z2dglPBBQqULMZe6QCMD-Khi7Y4nPAR0v0peYnRcI/s1600/seleccion+de+dispositivos.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="337" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7hVONvIAI-SMZdaUqBEbPL7SCqwQMt-8V_nDwFHjhoPqjS8CZhdyOjllBC1AmQBY3TE_FwublhUYci2dXz_ZkCxusgW8z9OITD5_z2dglPBBQqULMZe6QCMD-Khi7Y4nPAR0v0peYnRcI/s640/seleccion+de+dispositivos.png" width="640" /></a></div>
<div class="" style="clear: both; text-align: justify;">
<br /></div>
<div class="" style="clear: both; text-align: justify;">
<br /></div>
<div class="" style="clear: both; text-align: justify;">
<br /></div>
<div class="" style="clear: both; text-align: justify;">
<br /></div>
<div class="" style="clear: both; text-align: justify;">
<br /></div>
<div class="" style="clear: both; text-align: justify;">
<br /></div>
<div class="" style="clear: both; text-align: justify;">
<br /></div>
<div class="" style="clear: both; text-align: justify;">
Posteriormente agregado el dispositivo o los dispositivos es necesario agregar las diferentes entradas de voltaje o tierra, esto se agrega desde la barra lateral izquierda ya antes mencionada con dos flechas en diferentes direcciones y agregamos la tierra y el voltaje a la interfaz y unimos todos los componentes respectivamente.</div>
<div class="" style="clear: both; text-align: justify;">
<br /></div>
<div class="" style="clear: both; text-align: justify;">
</div>
<div class="" style="clear: both; text-align: justify;">
<br /></div>
<div class="" style="clear: both; text-align: justify;">
<br /></div>
<div class="" style="clear: both; text-align: justify;">
<br /></div>
<div class="" style="clear: both; text-align: justify;">
<br /></div>
Para poder correr la simulacion solo se da un click y en caso de agregar pic solo se da un clic ensima de el y se agrega el programa.<br />
<div class="" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqhZA662CXDWxPOOJ9llu3lmRxjUSHqaRBSYgqvJbIvKpeFTOIJyfHH-2_87KFUVd62Y6wdhDY7cEJv734MLYQCprZwen8K_TBHh5jUSF0r-YVZrYRk2PZhBLJST9NwTuDHGoL1A-uPWuJ/s1600/barra+inferior.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="151" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqhZA662CXDWxPOOJ9llu3lmRxjUSHqaRBSYgqvJbIvKpeFTOIJyfHH-2_87KFUVd62Y6wdhDY7cEJv734MLYQCprZwen8K_TBHh5jUSF0r-YVZrYRk2PZhBLJST9NwTuDHGoL1A-uPWuJ/s640/barra+inferior.png" width="640" /></a></div>
<div class="" style="clear: both; text-align: justify;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEideAxUIaCFaZ7Ga4II3uh8B3_bxOWnTQbg6WTctERBcgI6CrWBPZQWpRAH86oUkr2rmuIy4MYnVyVuuqE5i8OgLxz-YA7A6AuEFHMXd3LCuUVnLjp-X3IcIWe8G2CWuyKSThzm86E-_z3p/s1600/circuito.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="468" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEideAxUIaCFaZ7Ga4II3uh8B3_bxOWnTQbg6WTctERBcgI6CrWBPZQWpRAH86oUkr2rmuIy4MYnVyVuuqE5i8OgLxz-YA7A6AuEFHMXd3LCuUVnLjp-X3IcIWe8G2CWuyKSThzm86E-_z3p/s640/circuito.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Y esto es lo que nos genera el isis de proteus :)</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<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;">
<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;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />AVEhttp://www.blogger.com/profile/04905651130741095696noreply@blogger.com1tag:blogger.com,1999:blog-2035900958881191977.post-14197531664671850892012-04-16T19:47:00.001-07:002012-05-17T20:54:40.336-07:00Proyecto Pic<div style="text-align: center;">
Idea principal:</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Controlador de semáforos</div>
<br />
<br />
Contara con los colores convencionales rojo. verde, y amarillo<br />
<br />
<br />
<div style="text-align: center;">
Explicación:</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Estados del semáforo</div>
<br />
<b><i>I-. Verde:</i></b><br />
1-. Se podrá oprimir el botón para simular la llegada de los diferentes personas que cruzaran.<br />
<br />
<br />
<b><i>II-. Amarillo</i></b><br />
1-. En amarillo se anulara el incremento de personas, aunque se presione el botón no se incrementara el numero de personas<br />
<br />
<b><i>III-. rojo</i></b><br />
1-. Se disminuirá el contador de personas actualmente, en caso de que no alcanse a pasar todas las personas, en el siguiente estado "verde" se incrementaran el numero de gentes a partir de los que no alcanzaron esperando.<br />
<br />
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<b><i>Componentes:</i></b></div>
<div style="text-align: center;">
1-. Cuatro leds</div>
<div style="text-align: center;">
2-. Push button</div>
<div style="text-align: center;">
3-. Display catodo comun</div>
<div style="text-align: center;">
4-. 11 resistencias</div>
<div style="text-align: center;">
5-. Pic16f628a</div>
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR3rol7Z0sOS8Un0IbmQJUQB1-LL2e6lBYaSq1yVV4MaccYj0i6ziGDh0eAgC6wLIncYCHWLCr5qbKVSJoKAlOk5suv3P9GOrBPlYlTDGVDOZTn8MuRFeQXKNRxC5_ZK-NEc5EqIwyWUg5/s1600/display.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR3rol7Z0sOS8Un0IbmQJUQB1-LL2e6lBYaSq1yVV4MaccYj0i6ziGDh0eAgC6wLIncYCHWLCr5qbKVSJoKAlOk5suv3P9GOrBPlYlTDGVDOZTn8MuRFeQXKNRxC5_ZK-NEc5EqIwyWUg5/s200/display.JPG" width="200" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEmr1mivWNVotHyxe8-rlob0SoYPwqZPT6M4vzw7jepFj8YIb7IlOf0jF6qcvU59FDpyqHuV3JrC6OGdhtRQXAHwH66pRUpQg2IJO3p63bJ0iohZKG04mPbiqfNLA3HcrKFP5Tdhu7GaDi/s1600/PIC16F628A-IP.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEmr1mivWNVotHyxe8-rlob0SoYPwqZPT6M4vzw7jepFj8YIb7IlOf0jF6qcvU59FDpyqHuV3JrC6OGdhtRQXAHwH66pRUpQg2IJO3p63bJ0iohZKG04mPbiqfNLA3HcrKFP5Tdhu7GaDi/s200/PIC16F628A-IP.jpg" width="189" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiPvK6bVZVbq2iWugQH0uD41iAGfKLK0V-YtRHRK8zaNDgnVqg0hQzUzT2Of94vXa9GFMGOGy-QBiyQMm4cCInvGCP6AoOw8ipLSVXbkHa5SxRjnTN73Tv7O6a5rgjNqlrSnbB2SQjBs9B/s1600/RBG-LED.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiPvK6bVZVbq2iWugQH0uD41iAGfKLK0V-YtRHRK8zaNDgnVqg0hQzUzT2Of94vXa9GFMGOGy-QBiyQMm4cCInvGCP6AoOw8ipLSVXbkHa5SxRjnTN73Tv7O6a5rgjNqlrSnbB2SQjBs9B/s200/RBG-LED.jpg" width="200" /></a></div>
<br />
<br />
<div style="text-align: center;">
<b><i>Diagrama electronico //creado en proteus</i></b></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/AVvXsEjM6LNgTibyxXuPG846CvVjqRYRpoDP8lrrCRJ1QntiITh3rkR_Rsc0OBN-i5HQeDLLoo15y3VS75iw5AuvUUa815ENUJ321b2pNFRWaLpiccH26NOP3i3hX7a75bl5cjthmGdwiI9FU5n7/s1600/circuito.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="468" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM6LNgTibyxXuPG846CvVjqRYRpoDP8lrrCRJ1QntiITh3rkR_Rsc0OBN-i5HQeDLLoo15y3VS75iw5AuvUUa815ENUJ321b2pNFRWaLpiccH26NOP3i3hX7a75bl5cjthmGdwiI9FU5n7/s640/circuito.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />
Herramientas utilisadas:<br />
<br />
MicroCode<br />
ISIS<br />
MicroPro<br />
<br />
Codigo:<br />
<script src="https://gist.github.com/2403051.js">
</script>
Prueba:<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqSRwg_QEn5izQoSvkR7Rf3dTsiAKprDzZK3XcgeWt7x8WHRonny_g-onvNpinC5QoU_-PcMKwQ1ILHLeF2owr58HMtSHyjLZjFuvEdKZqTZ0-5HUMaWf0h81GLuqUo-gZV-5NW4xN5wjU/s1600/IMG042.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqSRwg_QEn5izQoSvkR7Rf3dTsiAKprDzZK3XcgeWt7x8WHRonny_g-onvNpinC5QoU_-PcMKwQ1ILHLeF2owr58HMtSHyjLZjFuvEdKZqTZ0-5HUMaWf0h81GLuqUo-gZV-5NW4xN5wjU/s400/IMG042.jpg" width="400" /></a></div>
<br />AVEhttp://www.blogger.com/profile/04905651130741095696noreply@blogger.com1tag:blogger.com,1999:blog-2035900958881191977.post-88723371822309297682012-03-12T04:05:00.001-07:002012-05-17T20:19:46.982-07:00Sistemas Integrados<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdGC-gv2s2y_OptCtG8RIbY2qwy8FU89jz0zXAG6FFsTJeC7fQfCu_S3_YR_b3Nj24W3sNr3Nc2M-5HqzIMV_W-SndIsM3iunLbya3FdYY0kh6BhxGcBgNWDubT8ejjXjsPFkc-4g9mDkV/s1600/images.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdGC-gv2s2y_OptCtG8RIbY2qwy8FU89jz0zXAG6FFsTJeC7fQfCu_S3_YR_b3Nj24W3sNr3Nc2M-5HqzIMV_W-SndIsM3iunLbya3FdYY0kh6BhxGcBgNWDubT8ejjXjsPFkc-4g9mDkV/s1600/images.jpg" /></a></div>Un sistema embebido o empotrado es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas frecuentemente en un sistema de computación en tiempo real. Al contrario de lo que ocurre con los ordenadores de propósito general (como por ejemplo una computadora personal o PC) que están diseñados para cubrir un amplio rango de necesidades, los sistemas embebidos se diseñan para cubrir necesidades específicas. En un sistema embebido la mayoría de los componentes se encuentran incluidos en la placa base (la tarjeta de vídeo, audio, módem, etc.) y muchas veces los dispositivos resultantes no tienen el aspecto de lo que se suele asociar a una computadora. Algunos ejemplos de sistemas embebidos podrían ser dispositivos como un taximetro, un sistema de control de acceso, la electrónica que controla una máquina expendedora o el sistema de control de una fotocopiadora entre otras múltiples aplicaciones. <br />
<br />
Por lo general los sistemas embebidos se pueden programar directamente en el lenguaje ensamblador del microcontrolador o microprocesador incorporado sobre el mismo, o tambien, utilizando los compiladores específicos, pueden utilizarse lenguajes como C o C++; en algunos casos, cuando el tiempo de respuesta de la aplicación no es un factor crítico, tambien pueden usarse lenguajes interpretados como JAVA. <br />
<br />
Puesto que los sistemas embebidos se pueden fabricar por decenas de millares o por millones de unidades, una de las principales preocupaciones es reducir los costes. Los sistemas embebidos suelen usar un procesador relativamente pequeño y una memoria pequeña para ello. Los primeros equipos embebidos que se desarrollaron fueron elaborados por IBM en los años 1980. Los programas de sistemas embebidos se enfrentan normalmente a tareas de procesamiento en tiempo real.<br />
Un sistema de gestión que integra todos los sistemas y procesos en una estructura completa permitiendole trabajar como una sola unidad con los mismos objetivos. La gestión integrada proporciona una imagen clara de todos los aspectos de la organización, su interrelación y los riesgos relacionados. También significa minimizar la duplicación y facilitar la adopción de nuevos sistemas en el futuro.<br />
<b><i><br />
<u>Componentes de un sistema integrado </u></i></b><br />
En la parte central se encuentra el microprocesador, microcontrolador, DSP, etc. Es decir, la CPU o unidad que aporta capacidad de cómputo al sistema, pudiendo incluir memoria interna o externa, un micro con arquitectura específica según requisitos.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyiQEoI582iL9qtmqIsGfcACZdQrtMMRHr4zzMo7F30Ad2lp27XTjUZT21J6Yl0uOVU2fPC_gne6Ptxdz2nNhpahu0tpdrI73shYeikRsfO8ikr4su0aDsiFSlnZF4oNtvX7vJdQrhtheh/s1600/sist-emb.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyiQEoI582iL9qtmqIsGfcACZdQrtMMRHr4zzMo7F30Ad2lp27XTjUZT21J6Yl0uOVU2fPC_gne6Ptxdz2nNhpahu0tpdrI73shYeikRsfO8ikr4su0aDsiFSlnZF4oNtvX7vJdQrhtheh/s320/sist-emb.jpg" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;"><span style="text-align: -webkit-auto;">La comunicación adquiere gran importancia en los sistemas embebidos. Lo normal es que el sistema pueda comunicarse mediante interfaces estándar de cable o inalámbricas. Así un SI normalmente incorporará puertos de comunicaciones del tipo RS-232, RS-485, SPI, I²C, CAN, USB, IP, Wi-Fi, GSM, GPRS, DSRC, etc. </span></div><br />
<span style="text-align: -webkit-auto;">El subsistema de presentación tipo suele ser una pantalla gráfica, táctil, LCD, alfanumérico, etc. </span><br />
<br />
<span style="text-align: -webkit-auto;">Se denominan actuadores a los posibles elementos electrónicos que el sistema se encarga de controlar. Puede ser un motor eléctrico, un conmutador tipo relé etc. El más habitual puede ser una salida de señal PWM para control de la velocidad en motores de corriente continua. </span><br />
<br />
<span style="text-align: -webkit-auto;">El módulo de E/S analógicas y digitales suele emplearse para digitalizar señales analógicas procedentes de sensores, activar diodos LED, reconocer el estado abierto cerrado de un conmutador o pulsador, etc. </span><br />
<br />
<span style="text-align: -webkit-auto;">El módulo de reloj es el encargado de generar las diferentes señales de reloj a partir de un único oscilador principal. El tipo de oscilador es importante por varios aspectos: por la frecuencia necesaria, por la estabilidad necesaria y por el consumo de corriente requerido. El oscilador con mejores características en cuanto a estabilidad y coste son los basados en resonador de cristal de cuarzo, mientras que los que requieren menor consumo son los RC. Mediante sistemas PLL se obtienen otras frecuencias con la misma estabilidad que el oscilador patrón. </span><br />
<br />
<span style="text-align: -webkit-auto;">El módulo de energía (power) se encarga de generar las diferentes tensiones y corrientes necesarias para alimentar los diferentes circuitos del SE. Usualmente se trabaja con un rango de posibles tensiones de entrada que mediante conversores ac/dc o dc/dc se obtienen las diferentes tensiones necesarias para alimentar los diversos componentes activos del circuito. </span><br />
<br />
<span style="text-align: -webkit-auto;">Además de los conversores ac/dc y dc/dc, otros módulos típicos, filtros, circuitos integrados supervisores de alimentación, etc. </span><br />
<br />
<span style="text-align: -webkit-auto;">El consumo de energía puede ser determinante en el desarrollo de algunos sistemas embebidos que necesariamente se alimentan con baterías, con lo que el tiempo de uso del SE suele ser la duración de la carga de las baterías. </span><br />
<b style="text-align: -webkit-auto;"><i><u><br />
Aplicaciones de un sistema integrado </u></i></b><br />
<span style="text-align: -webkit-auto;">Los lugares donde se pueden encontrar los sistemas embebidos son numerosos y de varias naturalezas. A continuación se exponen varios ejemplos para ilustrar las posibilidades de los mismos:</span><br />
<div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmW19bRp6zix_Vn-lfsr5oZpGqAR21ONmgQ1VfnX0N55VjvwKjguVdmrPPlHvdPQcbcZ4oQB_JQCJ8QAiCSClXT556gGR1Mk8tNPHluTtIJmOY8389hUXyTJEBcDiZTjHnO1IYE8VVStIS/s1600/images+(5).jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmW19bRp6zix_Vn-lfsr5oZpGqAR21ONmgQ1VfnX0N55VjvwKjguVdmrPPlHvdPQcbcZ4oQB_JQCJ8QAiCSClXT556gGR1Mk8tNPHluTtIJmOY8389hUXyTJEBcDiZTjHnO1IYE8VVStIS/s200/images+(5).jpg" width="200" /></a><span style="text-align: -webkit-auto;"> </span></div><span style="text-align: -webkit-auto;">• En una fábrica, para controlar un proceso de montaje o producción. Una máquina que se encargue de una determinada tarea hoy en día contiene numerosos circuitos electrónicos y eléctricos para el control de motores, hornos, etc. que deben ser gobernados por un procesador, el cual ofrece un interfaz persona – máquina para ser dirigido por un operario e informarle al mismo de la marcha del proceso. </span> <br />
<br />
• Puntos de servicio o venta (POS, Point Of Service). Las cajas donde se paga la compra en un supermercado son cada vez más completas, integrando teclados numéricos, lectores de códigos de barras mediante láser, lectores de tarjetas bancarias de banda magnética o chip, pantalla alfanumérica de cristal líquido, etc. El sistema embebido en este caso requiere numerosos conectores de entrada y salida y unas características robustas para la operación continuada. <br />
• Puntos de información al ciudadano. En oficinas de turismo, grandes almacenes, bibliotecas, etc. existen equipos con una pantalla táctil donde se puede pulsar sobre la misma y elegir la consulta a realizar, obteniendo una respuesta personalizada en un entorno gráfico amigable.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB_T-rlwFElzrkYQhykVNh29NN7hfwH5c8NphVJjw6QR3P7UwZ4c_qZWNPqL-7kRfMWtQ6rTSwbZoaGRwY0ikXicibTjkKg69-adIFjkIcTLKeLV1Z6jAGRKtZ47CCpXhdAmi6GQ2ydqV5/s1600/images+(3).jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB_T-rlwFElzrkYQhykVNh29NN7hfwH5c8NphVJjw6QR3P7UwZ4c_qZWNPqL-7kRfMWtQ6rTSwbZoaGRwY0ikXicibTjkKg69-adIFjkIcTLKeLV1Z6jAGRKtZ47CCpXhdAmi6GQ2ydqV5/s200/images+(3).jpg" width="200" /></a></div>• Decodificadores y set-top boxes para la recepción de televisión. Cada vez existe un mayor número de operadores de televisión que aprovechando las tecnologías vía satélite y de red de cable ofrecen un servicio de televisión de pago diferenciado del convencional. En primer lugar envían la señal en formato digital MPEG-2 con lo que es necesario un procesado para decodificarla y mandarla al televisor. Además viaja cifrada para evitar que la reciban en claro usuarios sin contrato, lo que requiere descifrarla en casa del abonado. También ofrecen un servicio de televisión interactiva o web-TV que necesita de un software específico para mostrar páginas web y con ello un sistema basado en procesador con salida de señal de televisión. <br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieu9oDdytfuk5gC1nw4Y1WPVAmeB-UpJSEFqJ3Uz1lTd3qrFohzZ8Z28EjNyhhLaWEssMjHxg9REjM5t-yyp8dnTM5oX3rxKblFTzebwPv2mt1Qan-49CNi4DEQvvekY3kU9IbynroAEi5/s1600/cajero-automatico.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieu9oDdytfuk5gC1nw4Y1WPVAmeB-UpJSEFqJ3Uz1lTd3qrFohzZ8Z28EjNyhhLaWEssMjHxg9REjM5t-yyp8dnTM5oX3rxKblFTzebwPv2mt1Qan-49CNi4DEQvvekY3kU9IbynroAEi5/s200/cajero-automatico.jpg" width="200" /></a></div>• Sistemas radar de aviones. El procesado de la señal recibida o reflejada del sistema radar embarcado en un avión requiere alta potencia de cálculo además de ocupar poco espacio, pesar poco y soportar condiciones extremas de funcionamiento (temperatura, presión atmosférica, vibraciones, etc.). <br />
• Equipos de medicina en hospitales y ambulancias UVI – móvil. <br />
• Máquinas de revelado automático de fotos. <br />
• Cajeros automáticos. <br />
• Pasarelas (Gateways) Internet-LAN. <br />
• Y un sin fin de posibilidades aún por descubrir o en estado embrionario como son las neveras inteligentes que controlen su suministro vía Internet, PC de bolsillo, etc. <br />
<br />
Los equipos industriales de medida y control tradicionales están basados en un microprocesador con un sistema operativo privativo o específico para la aplicación correspondiente. Dicha aplicación se programa en ensamblador para el microprocesador dado o en lenguaje C, realizando llamadas a las funciones básicas de ese sistema operativo que en ciertos casos ni siquiera llega a existir. Con los modernos sistemas PC embebida basados en microprocesadores i486 o i586 se llega a integrar el mundo del PC compatible con las aplicaciones industriales. Ello implica numerosas ventajas: <br />
• Posibilidad de utilización de sistemas operativos potentes que ya realizan numerosas tareas: comunicaciones por redes de datos, soporte gráfico, concurrencia con lanzamiento de threads, etc. Estos sistemas operativos pueden ser los mismos que para PC compatibles (Linux, Windows, MS-DOS) con fuertes exigencias en hardware o bien ser una versión reducida de los mismos con características orientadas a los PC embebidos. <br />
• Al utilizar dichos sistemas operativos se pueden encontrar fácilmente herramientas de desarrollo software potentes así como numerosos programadores que las dominan, dada la extensión mundial de las aplicaciones para PC compatibles. <br />
• Reducción en el precio de los componentes hardware y software debido a la gran cantidad de PC en el mundo. <br />
<div class="Textbody" style="line-height: 14.25pt; mso-pagination: widow-orphan;"><br />
</div><div class="Textbody"><br />
<span style="font-family: sans-serif; font-size: 9.5pt;">Bibliografias:</span><o:p></o:p></div><div class="Textbody"><span lang="EN-US"><a href="http://www.alegsa.com.ar/Dic/sistema%20integrado.php"><span lang="ES-MX" style="color: black; font-family: sans-serif; font-size: 9.5pt; text-decoration: none;">http://www.alegsa.com.ar/Dic/sistema%20integrado.php</span></a></span><o:p></o:p></div><div class="Textbody"><span lang="EN-US"><a href="http://es.wikipedia.org/wiki/Sistema_embebido"><span lang="ES-MX" style="color: windowtext; text-decoration: none;">http://es.wikipedia.org/wiki/Sistema_embebido</span></a></span><o:p></o:p></div><div class="Textbody"><span lang="EN-US"><a href="http://www.idose.es/sistemas-embebidos"><span lang="ES-MX" style="color: windowtext; text-decoration: none;">http://www.idose.es/sistemas-embebidos</span></a></span><o:p></o:p></div>Obed Guevarahttp://www.blogger.com/profile/04970162450835967179noreply@blogger.com1tag:blogger.com,1999:blog-2035900958881191977.post-75102768517955266692012-03-12T03:29:00.001-07:002012-05-17T20:20:58.745-07:00Lenguaje Basic.<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbZjLmL8dNZPYjeKinhpkOY3aqqKjEg3Am1itlW9H63hzKleD0TTbBLTVbkmGkpCDSmUkWIVprRva0vMKwfP4a0x1uxMSqMmXkGGEpZFfh-czKIrjq1bWABKCjdLfKgqwsgtFIdnQRT69y/s1600/images.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbZjLmL8dNZPYjeKinhpkOY3aqqKjEg3Am1itlW9H63hzKleD0TTbBLTVbkmGkpCDSmUkWIVprRva0vMKwfP4a0x1uxMSqMmXkGGEpZFfh-czKIrjq1bWABKCjdLfKgqwsgtFIdnQRT69y/s200/images.jpg" width="166" /></a></div>BASIC es el acrónimo de Beginners All-purpose Symbolic Instruction Code (en español ‘código de instrucciones simbólicas de propósito general para principiantes’) y está ligado al nombre de un trabajo sin publicar del co inventor del lenguaje, Thomas Kurtz (el nombre no está relacionado con la serie de C. K. Ogden, Basic English). <br />
<br />
<b><i><u>Nacimiento y primeros años</u></i></b><br />
El lenguaje BASIC original fue inventado en 1964 por John George Kemeny (1926-1993) y Thomas Eugene Kurtz (1928-) en el Dartmouth College. En los años subsiguientes, mientras que otros dialectos de BASIC aparecían, el BASIC original de Kemeny y Kurtz era conocido como BASIC Dartmouth.<br />
<br />
BASIC fue diseñado para permitir a los estudiantes escribir programas usando terminales de computador de tiempo compartido. BASIC estaba intencionado para facilitar los problemas de complejidad de los lenguajes anteriores, con un nuevo lenguaje diseñado específicamente para la clase de usuarios que los sistemas de tiempo compartido permitían: un usuario más sencillo, a quien no le interesaba tanto la velocidad, sino el hecho de ser capaz de usar la máquina. Los diseñadores del lenguaje también querían que permaneciera en el dominio público, lo que contribuyó a que se diseminara.<br />
<br />
<b><i><u> Los ocho principios de diseño de BASIC fueron: </u></i></b><br />
1. Ser fácil de usar para los principiantes. <br />
2. Ser un lenguaje de propósito general. <br />
3. Permitir que los expertos añadieran características avanzadas, mientras que el lenguaje permanecía simple para los principiantes. <br />
4. Ser interactivo. <br />
5. Proveer mensajes de error claros y amigables.<br />
6. Responder rápido a los programas pequeños. <br />
7. No requerir un conocimiento del hardware de la computadora. <br />
8. Proteger al usuario del sistema operativo.<br />
<br />
El lenguaje fue en parte basado en FORTRAN II y parte en Algol 60, con adiciones para hacerlo apropiado en sistemas de tiempo compartido y con elementos que facilitaran la operación aritmética de matrices. BASIC fue implementado por primera vez para la mainframeGE-265, máquina que soportaba múltiples terminales.<br />
<br />
En 1968 Edsger Dijkstra publicó un carta con una famosa crítica en la que consideraba que los lenguajes de programación que usaban sentencias GOTO para estructurar un programa eran nocivos para la productividad del programador, y para la calidad del código resultante. En este artículo no se menciona a ningún lenguaje de programación en particular; únicamente se indica que el uso excesivo de GOTO en lenguajes de alto nivel es algo no recomendable, y proporciona las razones técnicas por las que esto es así. Pero sí se observó, desde sus inicios, una marcada tendencia de los programadores a utilizar excesivamente el GOTO en BASIC, máxime en los noveles; hecho éste que fue decreciendo con la incorporación al lenguaje de otros recursos, tales como subrutinas parametradas, y posteriormente con la aparición de técnicas de programación estructurada.<br />
<br />
Contrario a la creencia popular, BASIC inicialmente no era un lenguaje interpretado sino compilado. Casi inmediatamente después de su lanzamiento, los profesionales de computación comenzaron a alegar que BASIC era muy lento y simple. Tal argumento, hasta no hace mucho, fue un tema recurrente en la industria de las computadoras.<br />
<br />
Aun así, BASIC se extendió hacia muchas máquinas y plataformas, y se popularizó moderadamente en las minicomputadoras como las de la serie DEC PDP y la Data General Nova. En estos casos, el lenguaje era implementado como intérprete, en vez de un compilador, o alternativamente, en ambas formas de funcionamiento.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhajD_GpVzvIFsxtShvdJUXhxPcs1Lnxc0zgsXoUqCDwKvGgqCejFCu-ZoXAPakVBJTkOcmt4Szv8tL3OtFUG_ksnBPLQ9QiKqsZXX4SelDTwGbTklVpBlc1CfGlYnHI66IAUt4ipmkD660/s1600/Quickbasic-Qbasic-using-modular-i0n37068.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhajD_GpVzvIFsxtShvdJUXhxPcs1Lnxc0zgsXoUqCDwKvGgqCejFCu-ZoXAPakVBJTkOcmt4Szv8tL3OtFUG_ksnBPLQ9QiKqsZXX4SelDTwGbTklVpBlc1CfGlYnHI66IAUt4ipmkD660/s1600/Quickbasic-Qbasic-using-modular-i0n37068.jpg" /></a></div><b><i><u><br />
Sintaxis </u></i></b><br />
La sintaxis mínima de BASIC sólo necesita los comandos LET, INPUT, PRINT, IF y GOTO. Un intérprete que ejecuta programas con esta sintaxis mínima no necesita una pila. Algunas de las primeras implementaciones eran así de simples. Si se le agrega una pila, se pueden agregar también ciclos FOR anidados y el comando GOSUB. Un intérprete de BASIC con estas características necesita que el código tenga números de línea. <br />
<br />
Los números de línea fueron un aspecto muy distintivo del BASIC clásico. Sin embargo, el uso de números de línea tiene la desventaja de requerir que el programador estime cuántas líneas ocupará la parte del programa que escribe. Este requerimiento se cumple generalmente incrementando los números de línea en un intervalo regular, como 10, pero esto lleva a problemas a la hora que el código después agregado exceda el espacio disponible entre las líneas originales. Para aliviar este problema de los primeros intérpretes de BASIC, los usuarios expertos pronto escribieron sus propios programas utilitarios para renumerar sus programas, después del ingreso inicial. Más tarde aparecieron intérpretes de BASIC que incluían un comando específico RENUMBER, el que permitía renumerar rápidamente (y las veces que se quisiera) todo el código nuevamente, con cualquier intervalo entre líneas indicado y a partir de un número entero dado; eliminando así el principal problema de la numeración de líneas obligatoria. <br />
<br />
<br />
En los dialectos modernos de BASIC MIUN ya no es necesario incluir números de línea (aunque son permitidos), y la mayoría (o todos) han añadido control de flujo estructurado y los constructores de declaración de datos similares a los de otros lenguajes, tales como C y Pascal: <br />
• do<br />
• loop <br />
• while <br />
• until <br />
• exit <br />
• on... goto <br />
• gosub <br />
• select ... case<br />
<br />
Casi todos los dialectos de BASIC incluyen el comando REM (remark), que posteriormente fue sustituído por el símbolo ´ (apóstrofo o comilla simple). Es un comando no ejecutable, se utiliza a los fines de incluir líneas y notas aclaratorias en el código fuente, para la mejor comprensión (y documentación) del programa.<br />
<br />
Variantes recientes como Visual Basic han introducido algunas características orientadas a objetos, y hasta herencia en la última versión. La administración de memoria es más fácil que con muchos otros lenguajes de programación procedurales por el uso de un Recolector de basura (y a costas de la velocidad de ejecución).<br />
<b><i><u><br />
Procedimientos y Control de Flujo </u></i></b><br />
<br />
BASIC no tiene una biblioteca externa estándar como otros lenguajes como C. En cambio, el intérprete (o compilador) contiene una biblioteca incorporada de procedimientos intrínsecos. Estos procedimientos incluyen la mayoría de las herramientas que un programador necesita para aprender a programar y escribir aplicaciones sencillas, así como funciones para realizar cálculos matemáticos, manejar cadenas, entrada desde la consola, gráficos y manipulación de archivos.<br />
<br />
Viejos dialectos de BASIC no permitían a los programadores escribir sus propios procedimientos. Los programadores en cambio debían escribir sus programas con un gran número de enunciados GOTO para hacer las derivaciones de flujo y retorno del programa. Esto podía producir un código fuente muy confuso (la mayoría de las veces era así), comúnmente conocido como Código espagueti; el cual era sumamente difícil de mantener, mucho menos por programadores ajenos al desarrollo del software.<br />
<br />
Con la inclusión posterior de enunciados GOSUB (Go-Subroutine) se ramificaba el programa a especies de subrutinas, sin parámetros o variables locales. Ellas proveen una forma de implementar una suerte de procedimientos (realmente no lo son, sencillamente es un "salto y retorno") y estructurar más el programa, evitando bastante la utilización de la dañina sentencia GOTO.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFn2dnG7WAAtnovqDSF378mf6foo2gTHA_pH5XcbGZVE6o02QgVy4gpfoGgZEFlN_Tt1VCyGnKLXf8wyhYeJjlpHCdaZ3QOlpRdPBjDcXFAWWUG-Da9IErKEzW1cwTlmpDU0sYOmh2YGT_/s1600/6293.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFn2dnG7WAAtnovqDSF378mf6foo2gTHA_pH5XcbGZVE6o02QgVy4gpfoGgZEFlN_Tt1VCyGnKLXf8wyhYeJjlpHCdaZ3QOlpRdPBjDcXFAWWUG-Da9IErKEzW1cwTlmpDU0sYOmh2YGT_/s200/6293.jpg" width="200" /></a></div><b><i><u>Tipos de Datos </u></i></b><br />
BASIC es reconocido por tener muy buenas funciones para manipular cadenas de caracteres. Los primeros dialectos ya tenían un juego de funciones fundamentales (LEFT$, MID$, RIGHT$) para extraer y/o reemplazar subcadenas cadenas fácilmente. Como las cadenas son utilizadas en aplicaciones diarias, esta era una ventaja considerable sobre otros lenguajes al momento de su introducción. <br />
<br />
El Dartmouth BASIC original soportaba únicamente datos de tipo numérico y cadenas. No había un tipo entero. Todas las variables numéricas eran de punto flotante. Las cadenas eran de tamaño dinámico. Soportaba arreglos de ambos, números y cadenas, en una o dos dimensiones. <br />
<br />
Cada dialecto moderno de BASIC posee al menos los tipos de datos numérico y string (cadena). Estos tipos de datos se pueden distinguir usando un posfijo: los identificadores de cadenas terminan con $ (signo pesos, ejemplo la variable NOMBRE$), mientras que los numéricos sencillamente no llevan posfijo; a menos que se requiera indicar y forzar explícitamente qué tipo de numérico es, por ejemplo A% es entero, A! es real simple precisión y A# es real doble precisión. <br />
<br />
En BASIC las variables no necesitan forzosamente ser declaradas antes de usarse, excepto los arreglos de más de 10 elementos; aunque versiones BASIC relativamente modernas poseen la opción (considerada buena práctica de programación) para obligar al programador a declarar toda variable antes de su uso (una directiva como OPTION EXPLICIT). La declaración de variables en BASIC se hace usando la palabra clave DIM. <br />
<br />
Muchos dialectos también soportan tipos numéricos adicionales, como enteros de 16 y 32 bits (simple y long, respectivamente), además de sus números de punto flotante. Adicionalmente algunos permiten la utilización de tipos de datos definidos por el usuario, similar a los "records" de Pascal, o las "structs" de C. <br />
<br />
Versiones modernas de BASIC (como VBA) soportan una gran variedad de tipos de datos primitivos (o intrínsecos), además de los definidos por el usuario. <br />
<br />
La mayoría de los dialectos de BASIC soporta arreglos en todos sus tipos de datos; es común también el soporte para arreglos mulidimensionales. <br />
<b><i><u><br />
Disponibilidad y variantes del lenguaje </u></i></b><br />
<br />
BASIC está disponible para casi todas las plataformas y sistemas operativos existentes. Una implementación gratuita que cumple con estándares y es multiplataforma es Bywater BASIC (bwBASIC). El intérprete está escrito en C y viene bajo la licencia GNU. Está diseñado para interfaz de texto o consola (no gráfica), no incluye soporte para crear interfaces gráficas de usuario (GUI's, Graphical User Interface). Hay un BASIC gratuito que si incluye soporte para GUI, es similar a Visual Basic y se ejecuta en Windows y GNU/Linux, es Phoenix Object BASIC. <br />
<br />
Las versiones de intérpretes/compiladores más conocidos son la línea de productos Quick BASIC y QBASIC, éste último es sólo intérprete, ambos son de Microsoft. En la actualidad lo es el moderno Visual BASIC, que Microsoft ha tratado de mantener al menos mínimamente compatible con incluso las primeras versiones de sus BASIC (en realidad es escasamente compatible), si bien existe FreeBASIC que es un compilador libre, compatible en sintaxis con QBASIC/QuickBASIC. <br />
<br />
Otras versiones comerciales incluyen PowerBASIC de PowerBASIC, PureBasic de Fantaisie Software, así como TrueBASIC de TrueBASIC, que cumple con los últimos estándares oficiales de BASIC. (True BASIC Inc. fue fundada por los creadores originales de Dartmouth BASIC.) <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBPIH2xQTLbH8x7UmQIl-h5r3JL11DuNrW4wgzvMjiUpYWNa6oAj4yPIgP_2XMKTgJyaddOltBSqxqPJZqd9221Gdz2mZ2Cb7bBKM62aTMy1NsyXduKa4fSq6xQwgIF8gKMV9OrVqXSgMO/s1600/REALBasicStudio_wm.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBPIH2xQTLbH8x7UmQIl-h5r3JL11DuNrW4wgzvMjiUpYWNa6oAj4yPIgP_2XMKTgJyaddOltBSqxqPJZqd9221Gdz2mZ2Cb7bBKM62aTMy1NsyXduKa4fSq6xQwgIF8gKMV9OrVqXSgMO/s200/REALBasicStudio_wm.jpg" width="200" /></a></div>REALbasic es una variante disponible para Mac OS Classic, Mac OS X, Microsoft Windows y GNU/Linux, comercializada por los actuales propietarios de Rapid-Q, otra implementación inicialmente libre de BASIC actualmente abandonada. Una versión de un dialecto simple de BASIC para la parrot virtual machine, muestra cómo se implementa un intérprete de BASIC en un lenguaje similar al ensamblador.SmallBASIC es un dialecto que ejecuta en muchas plataformas (Win32, DOS, GNU/Linux y PalmOS) y viene bajo la licencia GNU (GPL). <br />
<br />
<br />
<br />
Si desean saber algo mas de Basic en referencia a todo lo que puede usar esta pagina les ayudara:<br />
<div class="Textbody"><span lang="EN-US"><a href="http://cfievalladolid2.net/tecno/cyr_01/control/lengua_BASIC/index.htm"><span style="text-decoration: none;"><span style="color: blue;">http://cfievalladolid2.net/tecno/cyr_01/control/lengua_BASIC/index.htm</span></span></a></span></div><div class="Textbody"><br />
</div><div class="Textbody"><span lang="EN-US">Bibligrafias:</span></div><div class="Textbody"><span lang="EN-US"><a href="http://es.wikipedia.org/wiki/BASIC"><span style="text-decoration: none;"><span style="color: blue;">http://es.wikipedia.org/wiki/BASIC</span></span></a></span></div><div class="Textbody"><span lang="EN-US"><a href="http://www.jlmtzhermida.net/Basic.asp"><span style="text-decoration: none;"><span style="color: blue;">http://www.jlmtzhermida.net/Basic.asp</span></span></a></span></div>Obed Guevarahttp://www.blogger.com/profile/04970162450835967179noreply@blogger.com2tag:blogger.com,1999:blog-2035900958881191977.post-46603666845676850462012-03-11T13:34:00.000-07:002012-05-17T20:55:00.441-07:00Simuladores electronicos<div style="text-align: justify;">
Existen diferentes tipos de simuladores electrónicos existentes que nos ayudan a construir diversos tipos de prototipos de circuitos electrónicos sencillo o con algún grado de dificultad.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Para esto existen diferentes tipos de herramientas en ubuntu:</div>
<br />
<h2 style="background-color: white; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; font-family: arial, 'Trebuchet MS'; letter-spacing: -1px; line-height: 1.3em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 15px; padding-right: 15px; padding-top: 5px; text-align: center; vertical-align: baseline;">
<span style="font-size: small;">Protoboard : Simulador de Circuitos Eléctricos</span></h2>
<div>
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
Esta herramienta nos simula como su nombre lo dice una placa de Protoboard con todos sus elemtos característico, y algo que hace novedoso de este simulador es que tiene integrado el uso de la placa arduino en conjunto para probar los diferentes tipos de proyectos.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Este programa es multiplataforma ya que se puede utilizar en Mac Ox, Linux y Windows</div>
<div>
<br /></div>
<div>
Liga de descarga para ubuntu: http://fritzing.org/download/0.3.1b/linux-32bit/fritzing.2009.06.02.linux.i386.tar.bz2</div>
<br />
Ya descargado se descomprime y si inicia la interfaz ejecutando la aplicación de la siguiente manera en terminal: ./Fritzing.sh<br />
<br />
Interfaz:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguqUKLWbV4Knx-NjGZ6E_5votdHJZFmVsRzYVcsO3TuKO4wgtp273L6ba9KdpwV6d6CopjFCD-ifEVXyqe13HDRZ4PolgmgxenwMNfvGOTM-0Cl8jwPZ1ps5TrDiK5-3Wu4vdHRsCm7lA3/s1600/casa.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguqUKLWbV4Knx-NjGZ6E_5votdHJZFmVsRzYVcsO3TuKO4wgtp273L6ba9KdpwV6d6CopjFCD-ifEVXyqe13HDRZ4PolgmgxenwMNfvGOTM-0Cl8jwPZ1ps5TrDiK5-3Wu4vdHRsCm7lA3/s400/casa.png" 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;">
<span style="font-size: large;"><b><i>Oregano</i></b></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Otro de los simuladores es Oregano este editor mas famosos utilizado para la plataforma linux. Existen varias formas de instalarlo una de las cuales la mas fácil es por terminal teclado lo siguiente:</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<b><i>sudo apt-get install oregano</i></b></div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Y ya esta instalado, por lo general no instala todos los paquetes y es recomendable instalarlo manualmente para que no exista algún problema.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<b>Ejemplo de simulación:</b></div>
<div class="separator" style="clear: both; text-align: center;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZZqJyR4d8XCnyLYGF-BuZdch6OjusV-_CrK-THm2ArWXdtiKOaNf8K-B4cOMAc6iZj8qE_tv6PO1eMAMsBe3VhqyHIURqGKKI-1UVQkO7gUyn4DKKk6z3chXPzNTIa86aJg_lAHS5VbrA/s1600/oregano.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZZqJyR4d8XCnyLYGF-BuZdch6OjusV-_CrK-THm2ArWXdtiKOaNf8K-B4cOMAc6iZj8qE_tv6PO1eMAMsBe3VhqyHIURqGKKI-1UVQkO7gUyn4DKKk6z3chXPzNTIa86aJg_lAHS5VbrA/s400/oregano.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<b>Posteriormente checamos el resultado de la simulación</b></div>
<div class="separator" style="clear: both; text-align: center;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<b><br /></b></div>
<br />
<br />
Ligas externas:<br />
<a href="http://fritzing.org/">http://fritzing.org/</a>AVEhttp://www.blogger.com/profile/04905651130741095696noreply@blogger.com1tag:blogger.com,1999:blog-2035900958881191977.post-29240404835940740292012-03-01T07:14:00.000-08:002012-05-17T20:21:18.034-07:00Simuladores, emuladores y herramientas de desarrollo<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE1ATjActB_UyvqNJIhvftmnMQMw3s6eAwemjFPJSR8c2byi3esK6ttpkoZAPmBETiWMYJ_kLpp7ixZjUpqj5C8ZKdo5W29C0clSpqmWudaQBOEZYsNV2VSctjAEMpmczecwGlwQQrHJJ4/s1600/simulador-conducir.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE1ATjActB_UyvqNJIhvftmnMQMw3s6eAwemjFPJSR8c2byi3esK6ttpkoZAPmBETiWMYJ_kLpp7ixZjUpqj5C8ZKdo5W29C0clSpqmWudaQBOEZYsNV2VSctjAEMpmczecwGlwQQrHJJ4/s200/simulador-conducir.jpg" width="200" /></a></div><b><i><u>Qué es un Simulador? </u></i></b><br />
Son objetos de aprendizaje que mediante un programa de software, intentan modelar parte de una réplica de los fenómenos de la realidad y su propósito es que el usuario construya conocimiento a partir del trabajo exploratorio, la inferencia y el aprendizaje por descubrimiento. Los simuladores se desarrollan en un entorno interactivo, que permite al usuario modificar parámetros y ver cómo reacciona el sistema ante el cambio producido. Un simulador es un aparato que permite la simulación de un sistema, reproduciendo su comportamiento. Los simuladores reproducen sensaciones que en realidad no están sucediendo. <br />
<br />
Un simulador de computadora es un programa ejecutado en un ordenador con el fin de simular algún tipo de sistema, con el fin de obtener una mejor idea de cómo funciona el sistema.<a href="http://lular.es/a/Internet/2011/09/%3Cscr"> </a>Un simulador de computadora también pueden ser utilizados para simular otro ordenador. Hay dos tipos principales: el completo simulador de sistema y el simulador de conjunto de instrucciones (ISS). Este tipo de simulador de computadora se utiliza a menudo para probar un nuevo software en una amplia gama de configuraciones de hardware, sin tener que utilizar los equipos físicos. <br />
<br />
En su nivel más fundamental, se utiliza un simulador de computadora para recrear un la situación de la vida real donde las pruebas de muchos estados diferentes, no sería fácil ni segura. En este caso, utilizando un simulador de computadora ahorra una gran cantidad de tiempo y recursos, y de hecho puede permitir que para las pruebas en profundidad que sería físicamente imposible en el mundo real. <br />
<br />
<b><i><u>Que es un emulador?</u></i></b><br />
Un emulador es un software que permite ejecutar programas o videojuegos en una plataforma (sea una arquitectura de hardware o un sistema operativo) diferente de aquella para la cual fueron escritos originalmente. A diferencia de un simulador, que sólo trata de reproducir el comportamiento del programa, un emulador trata de modelar de forma precisa el dispositivo de manera que este funcione como si estuviese siendo usado en el aparato original. <br />
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvelgIMw-8ZTGCpbhJqUIq2GJRhRFLUMz435pHQXlpHEoSfkCTmVylwB9HDyLF0ioIbPtQkKm95STiUQO1FnK07Q3LDXkFNR9zC0y2b_6pjJUXXmQdXYeX1NJo1WCpmI6_6noZgG_sSfTI/s1600/images.jpg" /><br />
<br />
<div>Típicamente, un emulador se divide en módulos que corresponden de forma precisa a los subsistemas del equipo emulado. Lo más común, es que un emulador este compuesto por los siguientes módulos: <br />
<ul><li>Un emulador de la unidad central de procesamiento. </li>
<li>Un módulo para el subsistema de memoria. </li>
<li>Varios emuladores para los dispositivos de entrada y salida. </li>
</ul><br />
Lo más común es que los buses no sean emulados, por razones de simplicidad y rendimiento, y para que los periféricos virtuales se comuniquen directamente con la UCP y los subsistemas de memoria. <br />
<br />
El principal objetivo del emulador, es crear las condiciones necesarias para poder ejecutar un programa diseñado para otras plataformas distintas al PC, de modo que estos programas son utilizados ampliamente para las siguientes actividades: <br />
<ul><li>Probar programas de plataformas informáticas diferentes. </li>
<li>Ejecutar juegos de plataforma en un ordenador. </li>
<li>Ejecutar programas de ordenadores antiguos. </li>
</ul><br />
Como podemos ver, los emuladores son ampliamente utilizados para poder jugar juegos antiguos o de plataformas diversas desde la comodidad de nuestro ordenador, utilizando para ello un programa o archivo llamado ROM. <br />
<br />
<b><i><u>Algunos ejemplos de estos</u></i></b> <br />
<br />
<b>EMULADOR DE ANDROID DE GOOGLE</b> <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjodnxUAAjXJkhwvqN8S2r5Xyt7nfOsW38OUFqyQqq2qN_RTumN3E-ObNI_vy8EhXLYS42q1VBVm6mbRpmxa4tw38owwr5vMDPxILFuLeY0AkfD3MNXDp1tX4ggxtz-Ls4Tsz45TUR1NqRt/s1600/mobile_test_01.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="125" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjodnxUAAjXJkhwvqN8S2r5Xyt7nfOsW38OUFqyQqq2qN_RTumN3E-ObNI_vy8EhXLYS42q1VBVm6mbRpmxa4tw38owwr5vMDPxILFuLeY0AkfD3MNXDp1tX4ggxtz-Ls4Tsz45TUR1NqRt/s200/mobile_test_01.jpg" width="200" /></a></div>Para aquellos de ustedes que quieren probar Android puede utilizar este emulador de Android, que está parchado para funcionar en un PC con Windows como una aplicación independiente, sin tener que descargar e instalar la completa y compleja SDK de Android, e incluso se puede instalar y probar Android aplicaciones compatibles en él. <br />
<br />
<br />
<br />
<br />
<b>Andorid sdk </b><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiqZnKmNRJBfRZwMEoEIx0JqgZxITo0upHE5AeMUjrEAy8ovsnYU9nx-xA7nKZVMfcBoYmpnwIFHmRlvnd03DTgHvLrI_6t8bruF7oCAsb1fTRhalImqNezJuW1ALx8H27j59iqCD1KgRm/s1600/mobile_test_02.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiqZnKmNRJBfRZwMEoEIx0JqgZxITo0upHE5AeMUjrEAy8ovsnYU9nx-xA7nKZVMfcBoYmpnwIFHmRlvnd03DTgHvLrI_6t8bruF7oCAsb1fTRhalImqNezJuW1ALx8H27j59iqCD1KgRm/s1600/mobile_test_02.jpg" /></a></div>El SDK de Android incluye un emulador de dispositivo móvil que simula todas las características de hardware y software de un dispositivo móvil normal (aunque sin las llamadas). Se ofrece una variedad de teclas de navegación y control, que se puede "presionar" con el ratón o el teclado para generar eventos para su aplicación. También ofrece una pantalla en la que se muestra su aplicación, junto con las otras aplicaciones de Android corriendo. <br />
<br />
<b><br />
</b><br />
<b><br />
</b><br />
<b>Iphoney </b><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfK9Sjix2ZDYrtigxy9_U8ex8GPnNw3U4us8BBgmX_vKhg7yBh2Gk8E4f_Nm0ZCJJW8S-E6IGmGGbwisLiqibgYDc7L8xAhLVcqAQTpnAKg2G2od8NqjGkFjH6gQQZMXbZIEAoK68838dz/s1600/mobile_test_05.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="137" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfK9Sjix2ZDYrtigxy9_U8ex8GPnNw3U4us8BBgmX_vKhg7yBh2Gk8E4f_Nm0ZCJJW8S-E6IGmGGbwisLiqibgYDc7L8xAhLVcqAQTpnAKg2G2od8NqjGkFjH6gQQZMXbZIEAoK68838dz/s200/mobile_test_05.jpg" width="200" /></a></div>iPhoney le proporciona un entorno web de píxeles precisos de navegación - Desarrollado por Safari - que se puede utilizar en el desarrollo de sitios web para el iPhone. Es el perfecto de 320 por 480 píxeles de lona para el desarrollo de su iPhone.<br />
iPhoney no es un simulador de iPhone, sino que está diseñado para desarrolladores web que deseen crear 320 por 480 (o 480 por 320) sitios web para su uso con el iPhone. Le da un lienzo en el que poner a prueba la calidad visual de sus diseños.<br />
iPhoney sólo funcionará en Mac OS X 10.4.7 o posterior. <br />
<br />
<b>Simulador blackberry</b> <br />
<b><br />
</b><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidy9769ONDBZzSvRJzuTydsrLi53Uw1HysTYQ6J3DPEp_1Tl7h9pcgfB5ZBy3w8zL6KeKvYjQ7n_s04UOlId0D6sxDdqgPL-nDCy77lxfiSsgDIok6FuD_wV7N3KEWy9wYD-JG9kNCuTR_/s1600/mobile_test_08.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="137" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidy9769ONDBZzSvRJzuTydsrLi53Uw1HysTYQ6J3DPEp_1Tl7h9pcgfB5ZBy3w8zL6KeKvYjQ7n_s04UOlId0D6sxDdqgPL-nDCy77lxfiSsgDIok6FuD_wV7N3KEWy9wYD-JG9kNCuTR_/s200/mobile_test_08.jpg" width="200" /></a></div>Hay una gran variedad de simuladores de BlackBerry oficiales disponibles para emular la funcionalidad de los productos de BlackBerry real. Con cualquiera de los simuladores de dispositivos BlackBerry, se puede demostrar y probar cómo el software del dispositivo BlackBerry, pantalla, teclado y rueda de desplazamiento trabajará con su aplicación.Estos simuladores también simular el comportamiento en distintas condiciones de la red inalámbrica. <br />
<br />
Existen muchos más, aquí les dejo el link donde vienen, además se pueden descargar. <br />
<br />
<a href="http://eomblog.blogspot.com/2011/09/16-emuladores-para-desarrollo-de.html">http://eomblog.blogspot.com/2011/09/16-emuladores-para-desarrollo-de.html</a> <br />
<br />
<br />
<b><i><u>Bibliografia: </u></i></b><br />
<br />
<a href="http://lular.es/a/Internet/2011/09/Que-es-un-simulador-de-computadora.html">http://lular.es/a/Internet/2011/09/Que-es-un-simulador-de-computadora.html</a> <br />
<br />
<a href="http://es.wikipedia.org/wiki/Emulador">http://es.wikipedia.org/wiki/Emulador</a> <br />
<br />
<a href="http://culturacion.com/2011/10/que-es-un-emulador-y-para-que-se-utiliza/">http://culturacion.com/2011/10/que-es-un-emulador-y-para-que-se-utiliza/</a></div>Obed Guevarahttp://www.blogger.com/profile/04970162450835967179noreply@blogger.com1tag:blogger.com,1999:blog-2035900958881191977.post-59329595720572003762012-03-01T01:45:00.187-08:002012-05-17T20:22:04.520-07:00Ensamblador tarea 1<b><i><u>GAS Sintaxis</u></i></b><br />
GAS o GNU su sintaxis es una forma diferente de la sintaxis de los archivos en lenguaje ensamblador, también conocida como la sintaxis de AT & T. Es comúnmente usado por otras versiones de GAS para otras arquitecturas (es decir, no-x86).<br />
<br />
<b><i><u>Las diferencias</u></i></b><br />
La sintaxis de GAS puede parecer extraño a alguien que esté familiarizado con la sintaxis de Intel.<br />
<div><br />
Constantes son prefijadas con un "<span id="goog_1776289142"></span>quot;, por lo mov eax, de 50 años se convierte en $ movl 50,% eax. Las constantes son decimal por defecto; constantes hexadecimales son, además, con el prefijo 0x, por ejemplo, "$ 0x50".</div><div><br />
Códigos de operación no tienen los tamaños implícitas ni especifica el tamaño como una palabra separada. Por ejemplo, un movimiento de 32 bits con la sintaxis de Intel requiere el "dword" especificador cuando es ambiguo, mientras que la sintaxis de GAS utiliza sufijos. Véase más adelante.</div><div>Referencias de memoria a través de registro son en forma de "desplazamiento (base de registro, offset registro, escalar)". Así, la referencia a la memoria [eax + 4 + EDX * 2] se escribe como 4 (% eax,% edx, 2). Tenga en cuenta que los paréntesis se utilizan, NO entre corchetes.</div><div>Los nombres de símbolo requieren un "<span id="goog_1776289142"></span>quot; para cargar la dirección, y sin prefijo para acceder a los contenidos. Así, el Intel / NASM sintaxis de la memoria de referencia mov dword eax, [símbolo] es el símbolo movl misma,% eax. Para cargar la dirección de "símbolo", a continuación, Intel / NASM usa la sintaxis de mov eax, símbolo, mientras que GAS utiliza movl símbolo $,% eax.<br />
<b><i><u><br />
</u></i></b></div><div><b><i><u>Los sufijos enteros</u></i></b><br />
b - 8 bits byte. Ejemplo: movb $ 0x40,% al, mover 0x40 constantes en el registro al.<br />
w - palabra de 16 bits. Ejemplo: hacha movw%,% bx, mover registro de hacha en BX.<br />
l - 32 bits de largo. Ejemplo: movl% ecx,% eax, mover registro ECX en eax</div>q - 64 quadword poco. Ejemplo: (programas de 64 bits solamente) rax movq%, RDX%, se mueven en el registro de rax rdx<br />
<div><br />
<b><i><u>Los sufijos flotante (x87)</u></i></b><br />
s - Corto (precisión simple, 32 bits). Ejemplo: FLDS (% eax), la carga de 32 bits "flotador" de la memoria.<br />
l - Long (64 bits). Ejemplo: Sdl (% eax), la carga de 64 bits "doble" de la memoria.<br />
t - Diez byte (80 bits). Ejemplo: fldt (% eax), cargue 80 bits "long double" de la memoria.</div><div><br />
</div><div><div class="MsoNormal"><br />
</div><table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184;"><tbody>
<tr> <td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;"><b>Registro<o:p></o:p></b></div></td> <td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;"><b>Función<o:p></o:p></b></div></td> <td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;"><b>Terminación 16-bits<o:p></o:p></b></div></td> <td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;"><b>8-bits<o:p></o:p></b></div></td> </tr>
<tr> <td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">eax</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">Acumulador </div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">ax</div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">ah</div></td> </tr>
<tr> <td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">abx</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">Base index</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">bx</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">bh</div></td> </tr>
<tr> <td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">ecx</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">Contador</div></td><td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">cx</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">ch</div></td> </tr>
<tr> <td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">edx</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">Datos</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">dx</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">dh</div></td> </tr>
<tr> <td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">edi</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">Destino del index</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">do</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">al</div></td></tr>
<tr><td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">esi</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">Source index</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">si</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">bl</div></td> </tr>
<tr> <td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">ebp</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">Frame pointer</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">bp</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">cl</div></td> </tr>
<tr> <td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">esp</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.2pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">Stack to pointer</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">esp</div></td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 112.25pt;" valign="top" width="150"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">dl</div></td> </tr>
</tbody></table><div class="MsoNormal"><br />
<br />
<b><i><u>Ahora el codigo:</u></i></b><br />
El codigo que se realizo es muy sencillo, lo que se hace es que te pide un arreglo de numeros y al final te pregunta que numero te gustaria saber cuantas veces se repite.<br />
<br />
Codigo en C<br />
<script src="https://gist.github.com/1986362.js">
</script><br />
<br />
Codgio corriendo en c:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtP7O0QIh5gho9KHC3GGUJWtgLKjHUVsIly8mw1sXM5f2wdDmfQ4X8iIDH-2pxlkDGfIv6GoqrnouVZ0Yq3JciXBrm6zir2iHtTi6N37Eqelp4C3U2XJNv7zkgSuMWQa0518oMXTJNJlOe/s1600/Screenshot-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtP7O0QIh5gho9KHC3GGUJWtgLKjHUVsIly8mw1sXM5f2wdDmfQ4X8iIDH-2pxlkDGfIv6GoqrnouVZ0Yq3JciXBrm6zir2iHtTi6N37Eqelp4C3U2XJNv7zkgSuMWQa0518oMXTJNJlOe/s320/Screenshot-1.png" width="320" /></a></div><br />
<br />
Ahora para formar el codigo en ensamblador se uso la siguiente linea:<br />
<div style="text-align: center;"><b><i><u>gcc -S nombre del archivo.c</u></i></b></div>y se genero el siguiente codigo:<br />
<script src="https://gist.github.com/1986276.js">
</script><br />
<br />
<i><b><u>Optimizando el codigo</u></b></i></div></div>Para optimizarlo se eliminaron las lineas que agrega gcc y que no sirven, como el nombre del programa e informacion general del compilador, tambien se eliminaron unas lineas que estaban relacionadas con la arquitectura de 64 bits, y se eliminaron las lineas relacionadas con el control de funcion.<br />
<div><br />
</div><div>El codigo optimizado es el siguiente:</div><div><script src="https://gist.github.com/1986271.js">
</script></div><div><br />
<br />
<br />
Aqui el codigo corriendo despues de la optimizacion:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOUdDQAyl_KEAF5efVRKrdp6W8Uc2eb7DKySahuPwz_QEBVq6RtVuqtq7GhsQgaF8dOEG145zWCa3Nh0n85rerjOucBMbQTfKQQZcEEhFqBE9qFwzqSJaM7zDVwJscAuXGBn_LnmwnB7th/s1600/Screenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOUdDQAyl_KEAF5efVRKrdp6W8Uc2eb7DKySahuPwz_QEBVq6RtVuqtq7GhsQgaF8dOEG145zWCa3Nh0n85rerjOucBMbQTfKQQZcEEhFqBE9qFwzqSJaM7zDVwJscAuXGBn_LnmwnB7th/s320/Screenshot.png" width="320" /></a></div><br />
<b><i><u>Bibliografias:</u></i></b><br />
<br />
<ul class="uiList body contentListWidth" style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 14px; list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"><li class="uiListItem uiListVerticalItemBorder" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: block;"><div class="content noh" id="id.404780702870698" style="overflow-x: hidden; overflow-y: hidden; padding-bottom: 1px; padding-left: 0px; padding-right: 0px; padding-top: 2px; width: 350px; word-wrap: break-word;"><div style="display: inline;"><a href="http://ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html" rel="nofollow nofollow" style="color: #3b5998; cursor: pointer; text-decoration: none;" target="_blank">http://ibiblio.org/gferg/ldp/GCC-Inline-AssemblyHOWTO.html</a></div></div><div></div></li>
<li class="uiListItem uiListVerticalItemBorder" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: block;"><div class="content noh" id="id.244775858945023" style="overflow-x: hidden; overflow-y: hidden; padding-bottom: 1px; padding-left: 0px; padding-right: 0px; padding-top: 2px; width: 350px; word-wrap: break-word;"><div style="display: inline;"><a href="http://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax" rel="nofollow nofollow" style="color: #3b5998; cursor: pointer; text-decoration: none;" target="_blank"><br class="Apple-interchange-newline" />http://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax</a></div></div><div><br />
</div></li>
<li class="attachments uiListItem uiListVerticalItemBorder" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 1px; display: block; margin-bottom: 8px; max-width: 460px;"><div class="mvm plm uiStreamAttachments clearfix uiAttachmentNoMedia" data-ft="{"type":10}" style="border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 2px; margin-bottom: 10px; margin-top: 10px; padding-left: 10px; zoom: 1;"><div><div class="fsm fwn fcg" style="color: grey;"></div></div></div></li>
</ul></div><li class="attachments uiListItem uiListVerticalItemBorder" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 1px; display: block; margin-bottom: 8px; max-width: 460px;"><div class="mvm plm uiStreamAttachments clearfix uiAttachmentNoMedia" data-ft="{"type":10}" style="border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 2px; margin-bottom: 10px; margin-top: 10px; padding-left: 10px; zoom: 1;"><div><div class="fsm fwn fcg" style="color: grey;"></div></div></div></li>Obed Guevarahttp://www.blogger.com/profile/04970162450835967179noreply@blogger.com2tag:blogger.com,1999:blog-2035900958881191977.post-83658136608003103052012-02-28T18:33:00.000-08:002012-05-17T20:55:21.067-07:00Instalando arduino IDE<div style="text-align: center;">
Hardware libre "Arduino"</div>
<div style="text-align: center;">
<br /></div>
El arduino es una plataforma de hardware libre, Fácil uso. Especialmente se utiliza para diferentes tipos de proyectos ya sean mas que nada para escolares o desarrolladores particulares.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFToNAD94ZiMxi50KLOBpqmZc93TZc6P80Xmnnkbj0l6931w0Cjgg-eYIdCiRpFCG8oS4AFr39vuYEKE3EnA9bW5sBtOIHcPL0HKj9cuPKGUhw2m-RAM2DlFyEkSD2xUv0rozRhDx-67vt/s1600/arduino_extreme_480.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFToNAD94ZiMxi50KLOBpqmZc93TZc6P80Xmnnkbj0l6931w0Cjgg-eYIdCiRpFCG8oS4AFr39vuYEKE3EnA9bW5sBtOIHcPL0HKj9cuPKGUhw2m-RAM2DlFyEkSD2xUv0rozRhDx-67vt/s320/arduino_extreme_480.jpg" width="320" /></a></div>
<br />
<br />
Existen diferentes tipos placas arduino:<br />
<br />
Arduino uno: Es la placa de arduino convencional para uso de aplicaciones mas que nada escolasres basado en placa <span style="background-color: white; font-family: Georgia,'Times New Roman',Times,serif; font-size: 14px; line-height: 23px;">ATmega328.</span><br />
<span style="background-color: white; font-family: Georgia,'Times New Roman',Times,serif; font-size: 14px; line-height: 23px;"><br /></span><br />
Arduino mega: Es uno de las placas mas grandes y potentes con mejores componentes que tiene en cuestion <span style="background-color: white; font-family: Georgia,'Times New Roman',Times,serif; font-size: 14px; line-height: 23px;">Diecimila, </span><span style="background-color: white; font-family: Georgia,'Times New Roman',Times,serif; font-size: 14px; line-height: 23px;">Nano, </span><span style="background-color: white; font-family: Georgia,'Times New Roman',Times,serif; font-size: 14px; line-height: 23px;">Diecimila.</span><br />
<span style="background-color: white; font-family: Georgia,'Times New Roman',Times,serif; font-size: 14px; line-height: 23px;"><br /></span><br />
<span style="background-color: white; font-family: Georgia,'Times New Roman',Times,serif; font-size: 14px; line-height: 23px;">Arduino blouetooth: </span><span style="background-color: white; font-family: Georgia,'Times New Roman',Times,serif; font-size: 14px; line-height: 23px;">El Arduino BT contiene un modulo bluetooth que permite comunicarse y programarse sin cables. Es compatible con los shields de Arduino.</span><br />
<span style="background-color: white; font-family: Georgia,'Times New Roman',Times,serif; font-size: 14px; line-height: 23px;"><br /></span><br />
<div style="text-align: center;">
<span style="font-family: Georgia,'Times New Roman',Times,serif;"><span style="font-size: 14px; line-height: 23px;">Componentes del arduino</span></span></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
El arduino cuenta con entradas y salidas digitales y analogas</div>
<div style="text-align: left;">
Es formada por una placa con un circuito impreso</div>
<div style="text-align: left;">
Contiene un push botom para reiniciar la placa</div>
<div style="text-align: left;">
Conector usb</div>
<div style="text-align: left;">
<br />
<br />
Dependiendo los diferentes tipos de arduinos, la fuente de energía eléctrica puede variar .<br />
Voltaje operativo es de 5 V<br />
Voltaje de entrada recomendada: 7-12 V<br />
Voltaje de entrada Limite 6-20 V<br />
Intensidad de corriente 40mA<br />
<br />
Ejemplo de proyectos que se pueden hacer con arduino:<br />
<br />
Se pueden hacer diferentes tipos de proyectos asta los mas fácil a lo mas complicado.<br />
<br />
Se puede realizar comunicación de pc al arduino para registrar datos de entradas ya sean digitales o análogas del arduino.<br />
<br />
Con tecnologías actuales como el arduino con bluetooth pueden hacer este tipo de cosas sin conexiones alambricas o mover distintos tipos de motores entre millones de cosas.<br />
<br />
<br />
<br />
Instalar IDE de arduino</div>
<div style="text-align: left;">
<br /></div>
1-.Para poder instalar la IDE de arduino para ubuntu es necesario agregar el respostorio a la dirección de donde descargaría esto, esto se ase con la siguiente linea:<br />
<br />
sudo add-apt-repository ppa:arduino-ubuntu-team<br />
<div>
<br /></div>
<div>
<br /></div>
<div>
2-. Posteriormente haberla agregado es necesario actualizar:</div>
<div>
<br /></div>
<div>
sudo apt-get update</div>
<div>
<br /></div>
<div>
3-. Ya por finalizar instalamos la ide del arduino</div>
<div>
<br /></div>
<div>
sudo apt-get install arduino</div>
<div>
<br /></div>
<div>
Otra manera de instalarlo es descargar toda la IDE desde la pagina oficial: <a class="src-url" href="http://arduino.googlecode.com/files/arduino-0019.tgz" style="color: #5566dd; display: inline-block; font-family: Arial, sans-serif; font-size: 13px; max-width: 500px; overflow-x: hidden; overflow-y: hidden; padding-bottom: 1px; padding-top: 4px; text-decoration: none; text-overflow: ellipsis; white-space: nowrap;" target="_blank">http://arduino.googlecode.com/files/arduino-0019.tgz</a><br />
<br />
ya descargado lo descomprimimos y lo ejecutamos desde la terminal<br />
<br />
$ ./arduino<br />
<br />
y también nos ejecuta el mismo IDE de la misma manera que la otra forma.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8WWmyCeSV1Uri9qcDoHyzCJJ1SLpI1UfcxlcvSCNEpT7DbDisG5EjPy5ylT4t4B1K4L95O_3PT5Byu3WNAAVPkJ6pBfUETdEmuI4LpPzEgQTZHENjY4sVGg_RSPMFlvDhsYzl3vxT3y79/s1600/ar.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8WWmyCeSV1Uri9qcDoHyzCJJ1SLpI1UfcxlcvSCNEpT7DbDisG5EjPy5ylT4t4B1K4L95O_3PT5Byu3WNAAVPkJ6pBfUETdEmuI4LpPzEgQTZHENjY4sVGg_RSPMFlvDhsYzl3vxT3y79/s320/ar.png" width="268" /></a></div>
<br />
<br />
<br />
<br />
<br />
ligas externas:<br />
<a href="http://www.arduino.cc/es/">http://www.arduino.cc/es/</a><br />
<br />
<br />
<br />
Cargar el programa al arduino:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgARsMnfIFcmtmeWmhVosR8tXj8mvfkVYEMHK9zagh9h608e4KJtLdLbkNL7QwHvQIL22aqJjREiWlyxQIfHtWu3ZkL_ypF5_X8pyC-HL5uSa-xS3WqbLBjj44SK40JPqnSVCd4lLl0jBDD/s1600/arpantallaso.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgARsMnfIFcmtmeWmhVosR8tXj8mvfkVYEMHK9zagh9h608e4KJtLdLbkNL7QwHvQIL22aqJjREiWlyxQIfHtWu3ZkL_ypF5_X8pyC-HL5uSa-xS3WqbLBjj44SK40JPqnSVCd4lLl0jBDD/s320/arpantallaso.png" width="270" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Aquí tenemos un programa sencillo que ase que un led tenga puesto y perpade ciertos tiempos, para poder pasarlo a arduino lo único es necesario cargarlo vía usb, conectamos el arduino a la pc, posteriormente presionamos el penúltimo cuadro de la interfaz y esperamos que cargue, reseteamos el arduino y listo :)</div>
<br /></div>AVEhttp://www.blogger.com/profile/04905651130741095696noreply@blogger.com1tag:blogger.com,1999:blog-2035900958881191977.post-29751359935799221942012-02-23T03:47:00.000-08:002012-05-17T20:22:20.249-07:00Microcontroladores.<b><i><u>Que es un microcontrolador?</u></i></b> <br />
Un microcontrolador es un circuito integrado que nos ofrece las posibilidades de un pequeño computador. En su interior encontramos un procesador, memoria, y varios periféricos. El secreto de los microcontroladores lo encontramos en su tamaño, su precio y su diversidad. Su valor medio de seis euros, y su tamaño se reduce a unos pocos centímetros cuadrados.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiSfb6atD0A8VK7ZCpYgD_Zy6IOxG7G_vEcPLav4hVHzBsrTAzddaMEWlV1nU2kFycCJzUj1QZ7bldDBzuUQORD8EKWoHMM0x4F4Pitjcw5FtRIAj5iMai7e6cUSDlRBROZ4KuvpfLHxjN/s1600/micro.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiSfb6atD0A8VK7ZCpYgD_Zy6IOxG7G_vEcPLav4hVHzBsrTAzddaMEWlV1nU2kFycCJzUj1QZ7bldDBzuUQORD8EKWoHMM0x4F4Pitjcw5FtRIAj5iMai7e6cUSDlRBROZ4KuvpfLHxjN/s320/micro.png" width="320" /></a></div><div><br />
<b><i><u>Para que se usan?</u></i></b> <br />
Por nombrar varios ejemplos de aplicaciones, tenemos mandos a distancia, termómetros digitales, controles de acceso por puertas de seguridad, los sistemas ABS o EPS de los coches, control y sensórica de maquinaria, domótica del hogar, microrobótica, monederos electrónicos. <br />
<br />
Realmente la dificultad no está en usar un microcontrolador para afrontar un proyecto hardware, sino en elegir el fabricante y el modelo adecuado para la aplicación. Con esto lo que tenemos que tener presente es que los microcontroladores nos solucionarán la vida en todos los temas, pero el objetivo es usar el mínimo número de ellos y con el menor coste por unidad. <br />
<br />
<b>Un microcontrolador dispone normalmente de los siguientes componentes:</b> <br />
<div class="separator" style="clear: both; text-align: center;"></div><ul><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4nSrYO12QgX0mJqLx6DwXF2cx2zkWNZ973eXkkxbUh32H3iGgiAsw5AbPXzkKEal97nJrTTPh-Fd9iElMYeQ2B7K2IKU3IlFMK4xvJ7lzZx1TTWBFwvkbdd1_fPsrNyyI-ZQAXhaDzdEq/s1600/PIC18F4550.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4nSrYO12QgX0mJqLx6DwXF2cx2zkWNZ973eXkkxbUh32H3iGgiAsw5AbPXzkKEal97nJrTTPh-Fd9iElMYeQ2B7K2IKU3IlFMK4xvJ7lzZx1TTWBFwvkbdd1_fPsrNyyI-ZQAXhaDzdEq/s200/PIC18F4550.jpg" width="200" /></a>
<li>Procesador o UCP (Unidad Central de Proceso). </li>
<li>Memoria RAM para Contener los datos. </li>
<li>Memoria para el programa tipo ROM/PROM/EPROM. </li>
<li>Líneas de E/S para comunicarse con el exterior. </li>
<li>Diversos módulos para el control de periféricos (temporizadores, Puertas Serie y Paralelo, CAD: Conversores Analógico/Digital, CDA: Conversores Digital/Analógico, etc.). </li>
<li>Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema. </li>
</ul><br />
<b><i><u>¿Qué microcontrolador emplear?</u></i></b><br />
A la hora de escoger el microcontrolador a emplear en un diseño concreto hay que tener en cuenta multitud de factores, como la documentación y herramientas de desarrollo disponibles y su precio, la cantidad de fabricantes que lo producen y por supuesto las características del microcontrolador (tipo de memoria de programa, número de temporizadores, interrupciones, etc.): <br />
<br />
<i>Costes.</i> Como es lógico, los fabricantes de microcontroladores compiten duramente para vender sus productos. Y no les va demasiado mal ya que sin hacer demasiado ruido venden 10 veces más microcontroladores que microprocesadores. <br />
<br />
Para que nos hagamos una idea, para el fabricante que usa el microcontrolador en su producto una diferencia de precio en el microcontrolador de algunas pesetas es importante (el consumidor deberá pagar además el coste del empaquetado, el de los otros componentes, el diseño del hardware y el desarrollo del software). Si el fabricante desea reducir costes debe tener en cuenta las herramientas de apoyo con que va a contar: emuladores, simuladores, ensambladores, compiladores, etc. Es habitual que muchos de ellos siempre se decanten por microcontroladores pertenecientes a una única familia. <br />
<br />
<i>Antes de seleccionar un microcontrolador es importante analizar los requisitos de la aplicación: </i><br />
<br />
• <b>Procesamiento de datos:</b> puede ser necesario que el microcontrolador realice cálculos críticos en un tiempo limitado. En ese caso debemos asegurarnos de seleccionar un dispositivo suficientemente rápido para ello. Por otro lado, habrá que tener en cuenta la precisión de los datos a manejar: si no es suficiente con un microcontrolador de 8 bits, puede ser necesario acudir a microcontroladores de 16 ó 32 bits, o incluso a hardware de coma flotante. Una alternativa más barata y quizá suficiente es usar librerías para manejar los datos de alta precisión. <br />
<br />
• <b>Entrada Salida:</b> para determinar las necesidades de Entrada/Salida del sistema es conveniente dibujar un diagrama de bloques del mismo, de tal forma que sea sencillo identificar la cantidad y tipo de señales a controlar. Una vez realizado este análisis puede ser necesario añadir periféricos hardware externos o cambiar a otro microcontrolador más adecuado a ese sistema. <br />
<br />
• <b>Consumo:</b> algunos productos que incorporan microcontroladores están alimentados con baterías y su funcionamiento puede ser tan vital como activar una alarma antirrobo. Lo más conveniente en un caso como éste puede ser que el microcontrolador esté en estado de bajo consumo pero que despierte ante la activación de una señal (una interrupción) y ejecute el programa adecuado para procesarla. <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo9MkBYXAhllEZUQ72FKm77vTncrx2OTPgYM1tKbXTL-YNtDIZFhyphenhyphenust9lJkAYfg17niMXcJ_xQ9seol_u-FA2o4Gmf0HXV2MAfsJZiBr_aa9cJ_kc4uGqDC7_G-VDHII8-4J1NkR3knTB/s1600/microcontroladores_AVR.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo9MkBYXAhllEZUQ72FKm77vTncrx2OTPgYM1tKbXTL-YNtDIZFhyphenhyphenust9lJkAYfg17niMXcJ_xQ9seol_u-FA2o4Gmf0HXV2MAfsJZiBr_aa9cJ_kc4uGqDC7_G-VDHII8-4J1NkR3knTB/s200/microcontroladores_AVR.jpg" width="200" /></a></div>• <b>Memoria:</b> para detectar las necesidades de memoria de nuestra aplicación debemos separarla en memoria volátil (RAM), memoria no volátil (ROM, EPROM, etc.) y memoria no volátil modificable (EEPROM). Este último tipo de memoria puede ser útil para incluir información específica de la aplicación como un número de serie o parámetros de calibración. <br />
<br />
El tipo de memoria a emplear vendrá determinado por el volumen de ventas previsto del producto: de menor a mayor volumen será conveniente emplear EPROM, OTP y ROM. En cuanto a la cantidad de memoria necesaria puede ser imprescindible realizar una versión preliminar, aunque sea en pseudo-código, de la aplicación y a partir de ella hacer una estimación de cuánta memoria volátil y no volátil es necesaria y si es conveniente disponer de memoria no volátil modificable. <br />
<br />
• <b>Ancho de palabra:</b> el criterio de diseño debe ser seleccionar el microcontrolador de menor ancho de palabra que satisfaga los requerimientos de la aplicación. Usar un microcontrolador de 4 bits supondrá una reducción en los costes importante, mientras que uno de 8 bits puede ser el más adecuado si el ancho de los datos es de un byte. Los microcontroladores de 16 y 32 bits, debido a su elevado coste, deben reservarse para aplicaciones que requieran sus altas prestaciones (Entrada/Salida potente o espacio de direccionamiento muy elevado). <br />
<br />
•<b> Diseño de la placa:</b> la selección de un microcontrolador concreto condicionará el diseño de la placa de circuitos. Debe tenerse en cuenta que quizá usar un microcontrolador barato encarezca el resto de componentes del diseño. <br />
<br />
<b><i><u>Algunos microcontroladores.</u></i> </b><br />
Los microcontroladores más populares se encuentran, sin duda, entre las mejores elecciones: <br />
<br />
8048 (Intel). Es el padre de los microcontroladores actuales, el primero de todos. Su precio, disponibilidad y herramientas de desarrollo hacen que todavía sea muy popular. <br />
<br />
8051 (Intel y otros). Es sin duda el microcontrolador más popular. Fácil de programar, pero potente. Está bien documentado y posee cientos de variantes e incontables herramientas de desarrollo. <br />
<br />
80186, 80188 y 80386 EX (Intel). Versiones en microcontrolador de los populares microprocesadores 8086 y 8088. Su principal ventaja es que permiten aprovechar las herramientas de desarrollo para PC. <br />
<br />
68HC11 (Motorola y Toshiba). Es un microcontrolador de 8 bits potente y popular con gran cantidad de variantes. <br />
<br />
683xx (Motorola). Surgido a partir de la popular familia 68k, a la que se incorporan algunos periféricos. Son microcontroladores de altísimas prestaciones. <br />
<br />
PIC (MicroChip). Familia de microcontroladores que gana popularidad día a día. Fueron los primeros microcontroladores RISC. <br />
<br />
Ejemplo de un pic:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2QT9x4VOFCG5K1cP2jC7wDa4PnCNtx0CmIlDdrxxCOdPnT1_fWOL-S9yk6rxWXMixIhuuK-7SXftmm-wnsVndiOBSLf1Ou81WRPp7xLZ0yBNzsx1Ob8Mn3Y-Q2f1qDZCucmZSiKEQdrr2/s1600/pic_patillaje.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2QT9x4VOFCG5K1cP2jC7wDa4PnCNtx0CmIlDdrxxCOdPnT1_fWOL-S9yk6rxWXMixIhuuK-7SXftmm-wnsVndiOBSLf1Ou81WRPp7xLZ0yBNzsx1Ob8Mn3Y-Q2f1qDZCucmZSiKEQdrr2/s320/pic_patillaje.JPG" width="320" /></a></div><div>Vemos que las patas llamadas RA0/1/2/3/4 y RB0/1/2/3/4/5/6/7 son puertos que se los puede configurar mediante la programación como Puertos de "entrada" o "salida" de información. <br />
<br />
Despues tenemos la pata "Vss" que es la de alimentación, ahí tienen que entrar 5V y la pata 14 llamada VDD es donde tendríamos que conectar a "Tierra". </div><div><br />
También sabemos que Todo microprocesador o microcontrolador necesita de un circuito que le indique a qué velocidad debe trabajar. Este circuito es conocido como un oscilador de frecuencia. Este oscilador es como el motor del microcontrolador por lo tanto, este pequeño circuito no debe faltar. En el caso del microcontrolador PIC16F84 el pin 15 y el pin 16 son utilizados para introducir la frecuencia de reloj. <br />
<br />
La "A" final de los modelos PIC16F873A, PIC16F874A, PIC16F876A y PIC16F877A indica que estos modelos cuentan con módulos de comparación analógicos. <br />
<br />
Microchip Technology Inc. fabrica estos microcontroladores en encapsulados PDIP y SPDIP, SOIC,SSOP, PLCC, QFP y QFN. <br />
<br />
Los dispositivos PIC16F870, PIC16F872, PIC16F873A y PIC16F876A se fabrican en encapsulados de 28 patitas en formatos PDIP, SOIC, SSOP y QFN, mientras que los dispositivos PIC16F871, PIC16F874A y PIC16F877A se fabrican en encapsulados de 40 patitas para formato PDIP, y en encapsulados de 44 patitas para formatos PLCC, QFP y QFN. <br />
<br />
En los encapsulados de 28 patitas no está implementado el Puerto Paralelo Esclavo (PSP).</div><div><br />
</div><div>Entonces segun el formato que le den son las patitas que necesita el microcontrolador. <br />
Muchas de las patitas o terminales de estos dispositivos, como suele ocurrir en la mayoria de microcontroladores, tienen más de una función (multiplexación), dependiendo de cómo se configuren internamente por software.</div>Obed Guevarahttp://www.blogger.com/profile/04970162450835967179noreply@blogger.com1