<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cronicas de un geek &#187; Electronica Digital</title>
	<atom:link href="/electronica-digital/feed/" rel="self" type="application/rss+xml" />
	<link>https://cronicasgeek.com</link>
	<description>Programación y tecnología</description>
	<lastBuildDate>Sun, 31 May 2015 23:33:31 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.2</generator>
	<item>
		<title>Proyectos con el módulo esp8266</title>
		<link>https://cronicasgeek.com/proyectos-con-el-modulo-esp8266/</link>
		<comments>https://cronicasgeek.com/proyectos-con-el-modulo-esp8266/#comments</comments>
		<pubDate>Sun, 31 May 2015 23:25:03 +0000</pubDate>
		<dc:creator><![CDATA[Kelvi S. Padilla]]></dc:creator>
				<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Electronica Digital]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[electronica]]></category>
		<category><![CDATA[esp8266]]></category>
		<category><![CDATA[lua]]></category>

		<guid isPermaLink="false">https://cronicasgeek.com/?p=123</guid>
		<description><![CDATA[<p>Actualmente existen los módulos ESP que puedes conseguir en ebay por un precio desde 4 dolares de los cuales se encuentran los modelos ESP01 al ESP09 </p>
<p>La entrada <a rel="nofollow" href="/proyectos-con-el-modulo-esp8266/">Proyectos con el módulo esp8266</a> aparece primero en <a rel="nofollow" href="/">Cronicas de un geek</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2015/05/esp82662.png"><img class="aligncenter size-full wp-image-130" src="/wp-content/uploads/2015/05/esp82662.png" alt="esp8266" width="810" height="460" /></a></p>
<p>Actualmente existen los módulos ESP que puedes conseguir en ebay por un precio desde 4 dolares de los cuales se encuentran los modelos ESP01 al ESP09 el mas popular es el ESP01 del que existe mucha documentación en Internet y también porque su precio es muy bajo, común mente es llamado esp8266 por el modelo de procesador que posee, la función principal de este modulo es realizar una conexión a Internet por medio de tecnología wifi, para realizar las configuraciones se utilizan comando AT que es muy fácil de utilizar y en un par de minutos se puede programar siempre que se tenga la documentación correcta, siendo así una gran opción para el Internet de las cosas.</p>
<p>El modulo con sus configuraciones de fabrica nos da la posibilidad de realizar una conexión TCP/IP así como enviar variables de tipo get y post con el protocolo HTTP según sea el caso y hasta podemos realizar un pequeño servidor web y leer las variables de tipo get y así realizar un program mas complejo, pero nuestras opciones son muy limitadas, a simple vista parece un modulo simple de bajo costo y una alternativa a Arduino shield wifi  y Arduino shield ethernet, pero nada mas lejos de la realidad lo increíble de este modulo es que el chip 8266 que trate integrado tiene una potencia de 32 bits, según el modelo que tengamos puede tener una memoria de 512k hasta 4mb de memoria flash, aparte de que soporta el protocolo wifi 802.11 b/g/n, como puedes notar es incluso mas poderoso que un Arduino ATMEGA 2560, hasta hace poco se libero el SDK del chip lo que trajo consigo una comunidad de programadores que han realizado una grandiosa documentación y herramientas de software para programarlo.</p>
<h2>Métodos de programación</h2>
<p>Como mencione anteriormente el modulo de fabrica se programa utilizando comandos AT pero desde que se libero el sdk se ha creado soporte para otro tipo de lenguajes, así como también la utilización de Ides para ser programado, actualmente se puede programar de 4 cuatro formas, algunos lenguajes son mas potentes que otros, los cuales son:</p>
<ol>
<li>Comandos AT.</li>
<li>Scripts lua.</li>
<li>Arduino ide.</li>
<li>lenguaje c++.</li>
</ol>
<p>La primera opción de hecho no es un lenguaje de programación mas bien es un protocolo de configuración y no se necesita realizar ninguna modificación al firmware del modulo, simplemente se conecta y esta listo, no entrare en detalle en esta opción ya que existen mucha documentación en español que realmente explica de manera detalla como realizar diferentes configuraciones, en el caso de querer utilizar un lenguaje especifico tienes que bajar las herramientas necesarias para compilar y cargar el programa y en algunos casos solo necesitas bajar un firmwire e instalarlo una sola vez como es el caso de <a href="http://es.wikipedia.org/wiki/Lua" target="_blank">Lua</a>.</p>
<h3>Scripts Lua.</h3>
<p>Lua es un lenguaje de script potente y ligeros escrito en c, la versión que soporta el modulo esp8266 es la 5.1 de la cual puedes consultar su sintaxis en esta pagina <a href="http://www.lua.org/manual/5.1/es/manual.html">lua.org</a>, existe una versión mas reciente pero el firmware aun no lo soporta, para poder utilizar este lenguaje se necesita instalar un firmware <a href="http://www.nodemcu.com/index_en.html">nodemcu</a>, solo se instala una vez y luego con un cargador que parece un ide se realiza la programación, en su pagina de github explica paso a paso como realizar el flasheo, en los próximos artículos tratare de explicar paso a paso como realizar este proceso y con algunos ejemplos.</p>
<p>Este lenguaje permite realizar programas mucho mas potentes con una sintaxis muy simple aunque su nombre nodemcu haga pensar en nodejs y javascript se parece mas a python, cabe mencionar que es un lenguaje interpretado que es menos eficiente y también es de un solo hilo, lo que dificulta un poco su utilización, pero en caso de requerir mas eficiencia se puede optar por programar en c que prácticamente es lo mas cercano a lenguaje ensamblador.</p>
<h3>Arduino ide</h3>
<p>El ide de Arduino es personalizable y al ser open source se puede recurrir a su código fuente en cualquier momento y modificarse ya que su licencia lo permite, en la comunidad de esp8266 crearon una versión con las herramientas para programar este modulo como si fuera un Arduino, de hecho se utiliza la sintaxis de processing para programarlo que es el lenguaje que utiliza Arduino. Muchas de las librerías de Arduino son soportadas, aunque pueden existir errores pero la mayoría se pueden solucionar buscando en google.</p>
<p>Al utilizar la sintaxis de Arduino, es muy fácil de programar y se puede implementar mucho del código que existe en Internet, ademas de que la comunidad de Arduino es muy grande lo que lo hace muy practico, pero aun existen ciertos errores en librerías mas especificas como el caso de mqtt para el Internet de las cosas, en mi caso la conexión al servidor se perdía después de cierto tiempo y ya no se volvía a conectar de ninguna forma, entre otros errores, lo bueno es que la comunidad sigue depurando muchos de esos errores y lo mas probable es que el futuro pueda funcionar sin problema, por lo que no deja de ser una buena opción para desarrollar en este modulo.</p>
<h3>Lenguaje c++</h3>
<p>El lenguaje c es el favorito por excelencia para microcontroladores es lo mas cercano a programar en ensamblador y lo genial es que soporta c++ que es la forma de programar orientado a objetos en c, esta es la forma mas difícil de programar el modulo ya que se deben instalar muchas herramientas para compilar los archivos, ademas de que se debe leer la documentación del sdk y su curva de aprendizaje es mas alta, pero el beneficio es que se pueden utilizar muchas de las librerías de c++ y así crear programas muy potentes, y al ser compilado se puede explotar toda la capacidad del chip.</p>
<p>En la pagina de la comunidad <a href="http://www.esp8266.com/">esp8266.com</a> se puede encontrar los pasos para instalar las herramientas de compilación y también explican como cargar los archivos binarios, el proceso es para usuarios mas avanzados, la mayoría de la documentación es para linux, por lo que debemos conocer este sistema operativo, existe muy poca documentación al respeto, pero si sabes c++ esto no seria un problema, ya que solo debes estudiar las librerías del sdk, aunque existen mas desventajas al principio esta siempre sera la mejor forma de programar ya que se puede aprovechar todas la ventajas de c++ y el poder de procesamiento de la placa.</p>
<p>Como puedes notar este modulo es muy poderoso por su capacidad de programación y personalización, por lo que es una opción de bajo costo para proyectos de iot que es de lo que quiero escribir en los próximos artículos, mi intensión es poder utilizar el protocolo <a href="http://mqtt.org/" target="_blank">mqtt</a> para poder conectar diferentes dispositivos con un consumo mínimo de ancho de banda.</p>
<p>La entrada <a rel="nofollow" href="/proyectos-con-el-modulo-esp8266/">Proyectos con el módulo esp8266</a> aparece primero en <a rel="nofollow" href="/">Cronicas de un geek</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://cronicasgeek.com/proyectos-con-el-modulo-esp8266/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial arduino &#8211; Estructura básica de programación</title>
		<link>https://cronicasgeek.com/tutorial-arduino-estructura-basica-de-programacion/</link>
		<comments>https://cronicasgeek.com/tutorial-arduino-estructura-basica-de-programacion/#comments</comments>
		<pubDate>Tue, 14 Oct 2014 22:37:44 +0000</pubDate>
		<dc:creator><![CDATA[Kelvi S. Padilla]]></dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Electronica Digital]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[arduino ide]]></category>
		<category><![CDATA[atmega 2560]]></category>
		<category><![CDATA[electronica]]></category>
		<category><![CDATA[microcontrolador]]></category>

		<guid isPermaLink="false">https://cronicasgeek.com/?p=84</guid>
		<description><![CDATA[<p>En el artículo anterior vimos como preparar nuestra placa arduino para realizar la programación y de esta manera comenzar a desarrollar nuestros proyectos, en el artículo de introducción mencione que es necesario comprender los conceptos básicos de programación de preferencia en lenguaje C y conocer sobre electrónica digital, en este artículo veremos una referencia de...</p>
<p>La entrada <a rel="nofollow" href="/tutorial-arduino-estructura-basica-de-programacion/">Tutorial arduino &#8211; Estructura básica de programación</a> aparece primero en <a rel="nofollow" href="/">Cronicas de un geek</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2014/10/tutorial-arduino-Estructura-basica.png"><img class="aligncenter size-full wp-image-96" src="/wp-content/uploads/2014/10/tutorial-arduino-Estructura-basica.png" alt="tutorial-arduino-Estructura basica" width="801" height="452" /></a></p>
<p>En el artículo anterior vimos como preparar nuestra placa arduino para realizar la programación y de esta manera comenzar a desarrollar nuestros proyectos, en el artículo de introducción mencione que es necesario comprender los conceptos básicos de programación de preferencia en lenguaje C y conocer sobre electrónica digital, en este artículo veremos una referencia de las funciones más utilizadas en el lenguaje de programación en arduino, toda esta información la puedes encontrar en la <a href="http://arduino.cc/en/pmwiki.php?n=Reference/HomePage">página oficial de arduino</a>.<span id="more-84"></span></p>
<h2><strong><i>Estructura de un programa</i></strong></h2>
<p>Es común que antes de ejecutar un programa se deba respetar su estructura para que este compile correctamente, en el caso de programar para arduino se debe agregar la siguiente estructura:</p><pre class="crayon-plain-tag">#include&lt;lib.h&gt; // librerias necesarias, opcional
setup(){
	//configuraciones iniciales, obligatorio
}
loop{
	//bucle de ejecución del programa, obligatorio
}</pre><p>En el código anterior vemos que hay 3 líneas de código <em>#include, setup(), loop()</em>, <strong>#include</strong> se utiliza en el caso de que necesitemos utilizar una librería adicional, el IDE de arduino permite importar librerías según las necesitemos, en el caso de <strong>setup()</strong> y <strong>loop()</strong> son funciones obligatorias.</p>
<p><strong>Setup():</strong> Esta función se utiliza para inicializar parámetros y funciones, se ejecuta una única vez al encender o reiniciar la placa, en esta función podemos configurar los pines según necesitemos, configurar parámetros de comunicación, establecer variables con valores iniciales etc.</p>
<p><strong>Loop():</strong> Esta es la función donde se ejecuta el programa, esta se repite de manera continua osea que entra en un bucle infinito lo que sería igual a un while(true) en lenguaje C, aquí debemos realizar el programa que necesitamos ejecutar.</p>
<p>Un ejemplo practico seria hacer parpadear un led cada segundo de manera infinita, el código quedaría de la siguiente manera:</p><pre class="crayon-plain-tag">const int led = 13; // definición de pin 13 el cual encenderá el led
void setup ()
{
  pinMode (led, OUTPUT);
}

// El led se encenderá durante un segundo y luego se apagará durante un segundo.
void loop () // el proceso se repetirá infinitamente.
{
  digitalWrite (led,HIGH);// enviamos un 1 al pin led
  delay (1000); // un retardo de 1 seg
  digitalWrite (led,LOW);//enviamos un 0 al pin led
  delay (1000);
}</pre><p></p>
<h2> Variables</h2>
<p>En cualquier lenguaje de programación utilizaremos variables para almacenar nuestra información, en el caso de arduino podemos utilizar los siguientes tipos de variables, y como es de esperarse la diferencia es la cantidad de memoria que puede utilizar cada tipo.</p>
<ul>
<li><strong>Boolean:</strong> Es de tipo lógico los valores pueden ser 1 ó 0 como también puede ser true o false, este tipo de variable consume muy poca memoria porque utiliza 1 bit de almacenamiento.</li>
<li><strong>Byte:</strong> Permite almacenar 8 bits de datos que puede ser un número de 0 a 255.</li>
<li><strong>Int:</strong> Puede almacenar 2 byte de memoria que sería un entero con signo positivo o negativo que puede ser un número en el rango de -32,768 a 32,768.</li>
<li><strong>Unsigned:</strong> Permite manejar valores enteros sin utilizar signo, por ejemplo al declarar una variable entera esta posee 2 byte de memoria del cual 1 bit se utiliza para el signo ya sea negativo o positivo lo que deja 15 bits para el valor si vemos el número máximo permitido que seria 2^15 es igual a 32,768, si quitamos el signo con la palabra <em>unsigned</em> tendríamos el bit del signo disponible lo cual seria 2^16 que es igual a 65,536 como número máximo a almacenar, esta función aplica para variables tipo <em>int, long, char</em>.</li>
<li><strong>Long:</strong> Este tipo de variable utiliza 4 bytes de memoria que equivale a 32 bits de datos que puede ser un número en el rango de -2,147,483,648 a 2,147,483,648, si quitamos el signo el valor máximo sería igual a 4,294,967,295 que es un número muy grande.</li>
<li><strong>Char:</strong> Únicamente permite caracteres como por ejemplo ‘a’ ,’b’, ‘c’, etc… Solo permite una única letra y esta debe estar dentro de comillas ya sean simples o dobles.</li>
<li><strong>Float:</strong> Esta variable permite el uso de punto flotante de 6 a 7 dígitos a partir del punto.</li>
<li><strong>Array:</strong> Un array es una colección de variables, puede ser de cualquier tipo y por lo general se declara a la par del nombre de la variable ejemplo: int myInts[6] lo que significa que tenemos 6 variables con el mismo nombre, para acceder a una en especifico solo agregamos el índice en la posición deseada ejemplo: myInts[2] en este caso estamos utilizando la posición 2 del arreglo.</li>
</ul>
<p>Existen más variables que podemos ver en la página de referencia, por lo general las mencionadas anteriormente son las más utilizadas.</p>
<h2>Condicionales</h2>
<p>Las condicionales o sentencias son instrucciones que permiten realizar una función o no en valor a la condición, en la programación de arduino disponemos de las condiciones propias de c las cuales son if, if..else, switch, la ventaja es que existen muchos información y ejemplos en internet por este motivo no entraré en detalle con este tema.</p>
<h2>Bucles</h2>
<p>Al igual que las condicionales en internet existe mucha información al respecto con este tema, en arduino tenemos las funciones while, for, do.. while, y goto. la sintaxis es similar a la del lenguaje c, y su uso es fácil de utilizar en la práctica.</p>
<p>Si bien es cierto que la programación en arduino es fácil de realizar, siempre debemos poseer los conocimientos basicos en programacion, mi intención en este artículo es de mencionar las funciones y palabras más utilizadas en arduino, también es cierto que aquí solo es una fracción de las que realmente existen, por este motivo es recomendable visitar la página oficial en la sección de referencias o dando click <a href="http://arduino.cc/en/pmwiki.php?n=Reference/HomePage">aquí</a>, es considerado buena práctica revisar todas las funciones aunque no las utilicemos principio.</p>
<p>Aún hace falta ver mas funciones propias de arduino, pero tratare de explicarles con ejemplos prácticos en los siguientes artículos, porque algunas funciones son más fáciles de aprender en la práctica que en la teoría y también porque de esta manera avanzamos más rápido y llegar a aprender como realizar proyectos más complejos que es donde se pone mas emocionante todo lo aprendido.</p>
<p>La entrada <a rel="nofollow" href="/tutorial-arduino-estructura-basica-de-programacion/">Tutorial arduino &#8211; Estructura básica de programación</a> aparece primero en <a rel="nofollow" href="/">Cronicas de un geek</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://cronicasgeek.com/tutorial-arduino-estructura-basica-de-programacion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo instalar pinguino IDE en debian 7 correctamente</title>
		<link>https://cronicasgeek.com/como-instalar-pinguino-ide-en-debian-7-correctamente/</link>
		<comments>https://cronicasgeek.com/como-instalar-pinguino-ide-en-debian-7-correctamente/#comments</comments>
		<pubDate>Tue, 14 Oct 2014 17:52:04 +0000</pubDate>
		<dc:creator><![CDATA[Kelvi S. Padilla]]></dc:creator>
				<category><![CDATA[Electronica Digital]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microcontroladores pic]]></category>
		<category><![CDATA[Pinguino]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Debian 7]]></category>
		<category><![CDATA[electronica]]></category>
		<category><![CDATA[Pinguino IDE]]></category>

		<guid isPermaLink="false">https://cronicasgeek.com/?p=76</guid>
		<description><![CDATA[<p>Pinguino es una placa electrónica que utiliza un microcontrolador pic como procesamiento principal, es similar a arduino en algunos aspectos y se puede programar con el lenguaje que utiliza arduino; no es 100% compatible porque existen algunas librerías que no funcionan correctamente y otras que no están disponible, en este enlace podemos ver que librerías...</p>
<p>La entrada <a rel="nofollow" href="/como-instalar-pinguino-ide-en-debian-7-correctamente/">Cómo instalar pinguino IDE en debian 7 correctamente</a> aparece primero en <a rel="nofollow" href="/">Cronicas de un geek</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2014/10/pinguino-ide-debian.png"><img class="aligncenter size-full wp-image-98" src="/wp-content/uploads/2014/10/pinguino-ide-debian.png" alt="pinguino-ide-debian" width="802" height="454" /></a></p>
<p><strong>Pinguino</strong> es una placa electrónica que utiliza un microcontrolador pic como procesamiento principal, es similar a arduino en algunos aspectos y se puede programar con el lenguaje que utiliza arduino; no es 100% compatible porque existen algunas librerías que no funcionan correctamente y otras que no están disponible, en <a href="http://wiki.pinguino.cc/index.php/Compatibility" target="_blank">este</a> enlace podemos ver que librerías están disponibles y cuales no.<span id="more-76"></span></p>
<p>En la página oficial del proyecto podemos descargar el entorno de desarrollo llamado Pinguino ide el cual esta disponible para Windows, Mac y linux, debo decir que mi sistema favorito es linux y la distribución que mas utilizo es debian de 64bits, en la cual es muy sencillo de instalar solo debes bajar el <a href="http://skylink.dl.sourceforge.net/project/pinguinoide/linux/installer.sh">script</a> y ejecutarlo con el comando <i>sudo chmod +x installer.sh &amp;&amp; sudo ./installer.sh </i>luego nos mostrara una lista de opciones para instalar, es recomendable descargar los 2 compiladores que seria la opción 3 pues nunca se sabe cuando podemos utilizarlos, hasta este punto todo bien de hecho puede ejecutar el entorno y no veras ningún error, los problemas surgen al querer compilar tu programa, nos mostrara el siguiente error:</p>
<p><span class="" style="color: #999999;">/lib/x86_64-linux-gnu/libc.so.6: version &#8216;GLIBC_2.14&#8242; not found</span></p>
<p><span style="color: #999999;">/lib/x86_64-linux-gnu/libstdc++.so.6: version &#8216;GLIBCXX_3.4.15&#8242; not found</span></p>
<p>Estos errores se muestran porque el compilador utiliza una versión más reciente de las disponibles, al tratar de actualizar las librerías del repositorio me sigue mostrando el mismo error, es porque Debian es un sistema estable y nunca sube a sus repositorios versiones no probadas correctamente pero en ocasiones son versiones de hace 2 años o más por este motivo es que sigue mostrando el mismo error, pero podemos solucionar el problema actualizando las librerías de los repositorios de desarrollo, en estos repositorios no existe garantía de éxito pero al parecer no hay ningún problema porque mi sistema sigue funcionando correctamente.</p>
<p>Lo primero que debemos hacer es añadir los repositorios experimentales editando nuestro fichero <em>sources.list </em>con el siguiente comando<i>:</i></p>
<p><span style="color: #999999;">#sudo gedit /etc/apt/sources.list</span></p>
<p>Una vez abierto el archivo agregamos lo siguiente:</p>
<p><span style="color: #999999;">deb http://ftp.debian.org/debian experimental main</span><br />
<span style="color: #999999;">deb http://ftp.debian.org/debian sid main</span></p>
<p>Guardamos los cambios, ahora actualizamos la base de repositorios ejecutando el comando:</p>
<p><span style="color: #999999;">#sudo apt-get update</span></p>
<p>Luego actualizamos la librería <em>libc.so.6</em> de los repositorios experimentales, puede que tome tiempo porque al parecer re compila varias dependencias, para hacerlo ejecutamos el siguiente comando:</p>
<p><span style="color: #999999;">#sudo apt-get -t experimental install libc6-dev</span></p>
<p>Para actuar la librería <em>libstdc++.so.6</em> solo es necesario ejecutar la siguiente instrucción:</p>
<p><span style="color: #999999;"><em>#sudo apt-get -t sid install libstdc++6</em></span></p>
<p>Por ultimo borra las lineas de los repositorios experimentales que agregaste en el archivo <em>sources.list </em>para que no dañes tu sistema al hacer una actualización y listo ya puedes intentar compilar tu código, deberás ver en pantalla la frase <i>Compilation done!, </i>lo que significa que funciona correctamente.</p>
<p>La entrada <a rel="nofollow" href="/como-instalar-pinguino-ide-en-debian-7-correctamente/">Cómo instalar pinguino IDE en debian 7 correctamente</a> aparece primero en <a rel="nofollow" href="/">Cronicas de un geek</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://cronicasgeek.com/como-instalar-pinguino-ide-en-debian-7-correctamente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial arduino &#8211; Herramientas necesarias</title>
		<link>https://cronicasgeek.com/tutorial-arduino-herramientas-necesarias/</link>
		<comments>https://cronicasgeek.com/tutorial-arduino-herramientas-necesarias/#comments</comments>
		<pubDate>Tue, 16 Sep 2014 18:15:42 +0000</pubDate>
		<dc:creator><![CDATA[Kelvi S. Padilla]]></dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Electronica Digital]]></category>
		<category><![CDATA[arduino ide]]></category>
		<category><![CDATA[atmega 2560]]></category>
		<category><![CDATA[electronica]]></category>
		<category><![CDATA[microcontrolador]]></category>

		<guid isPermaLink="false">https://cronicasgeek.com/?p=70</guid>
		<description><![CDATA[<p>Una vez que tengamos nuestro Arduino sin importar cual hayas escogido es momento de programarlo para que realice las tareas que deseas, pero antes debemos saber que software necesitamos y cómo debemos hacerlo, primero debemos conectar el cable usb de nuestro Arduino a la computadora que estemos usando, en la placa podrás ver que se encenderá un...</p>
<p>La entrada <a rel="nofollow" href="/tutorial-arduino-herramientas-necesarias/">Tutorial arduino &#8211; Herramientas necesarias</a> aparece primero en <a rel="nofollow" href="/">Cronicas de un geek</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2014/09/tutorial-arduino-herramientas.png"><img class="aligncenter size-full wp-image-101" src="/wp-content/uploads/2014/09/tutorial-arduino-herramientas.png" alt="tutorial-arduino-herramientas" width="800" height="456" /></a></p>
<p>Una vez que tengamos nuestro Arduino sin importar cual hayas escogido es momento de programarlo para que realice las tareas que deseas, pero antes debemos saber que software necesitamos y cómo debemos hacerlo, primero debemos conectar el cable usb de nuestro Arduino a la computadora que estemos usando, en la placa podrás ver que se encenderá un led, este nos indica que posee alimentación y que esta funcionando.<span id="more-70"></span></p>
<h2>Instalación del entorno de desarrollo</h2>
<p>Para programar la placa de Arduino se necesita un entorno de desarrollo único ya que utiliza el lenguaje de programación <a href="http://en.wikipedia.org/wiki/Processing_(programming_language)">Processing </a>el cual esta basado en java, pero es aún más simple porque la capacidad de los microcontroladores es limitada, lo que lo hace mas fácil de programar. Arduino IDE es el nombre del software para programar cualquier placa Arduino, para descargarlo da click <a href="http://arduino.cc/en/pmwiki.php?n=main/software">aquí</a>, debemos buscar la versión para nuestro sistema operativo, puedes descargar la versión estable (al día de hoy es la versión 1.0.5) o puedes descargar la versión beta que es la que se encuentra al día pero puede contener errores, el ide se encuentra escrito en java por lo que necesitas tener instalado como mínimo el jre de java, si no lo tienes puedes descargarlo de este <a href="http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html">link</a>, estando en la pagina solo debes dar click en aceptar licencia y buscas la versión que es compatible con tu sistema operativo.</p>
<p>Si ya has instalado el jre de java, debes ejecutar el instalador de Arduino IDE en el caso de Windows es de seguir las instrucciones al momento de instalar, y para Linux solo debes descomprimir la carpeta y dar click en el archivo A<i>rduino</i>, si no se ejecuta puedes entrar desde la terminal a la carpeta donde esta el ejecutable y usar el comando ./arduino o el comando que utilizamos para ejecutar scripts en linux, al finalizar debes ver la ventana de trabajo tal como la imagen de abajo.</p>
<p><img class="aligncenter" src="http://upload.wikimedia.org/wikipedia/commons/6/63/Arduino.png" alt="Arduino ide" width="318" height="456" /></p>
<h2>Área de trabajo</h2>
<p>El Ide de Arduino es fácil de utilizar y es muy intuitivo lo que quiere decir que el menú y los iconos son fácil de entender y hacen lo que su nombre indica, al ejecutar el entorno por primera vez debemos configurar lo con la versión de Arduino que estemos usando y el puerto donde se encuentra conectado.</p>
<p>Para configurar el modelo de Arduino que tenemos debemos ir a T<i>ools</i> &gt; B<i>oard</i> y nos mostrará una lista en la cual debemos buscar nuestra placa, en mi caso seleccionaré <i>Arduino Mega 2560, </i>ahora debemos configurar el puerto que utilizará el entorno para que reconozca la placa, para eso debemos ir al menú <i>Tools &gt; serial port  </i>y seleccionar una opción, por lo general si tu sistema operativo es Windows es la opción COM3, pero si no funciona prueba con las opciones que te aparecen hasta encontrarla, y en el caso de linux dependiendo la versión que tengas puede ser <em>/dev/ttyACM0</em> o <em>/dev/ttyUSB0</em><i>  </i>y simplemente das click en la opción y listo.</p>
<h2>Primer programa para Arduino</h2>
<p>Debemos probar que todo esté funcionando correctamente para ello haremos nuestro primer programa, no daré mucho detalle de cada comando porque es para prueba, pero en el siguiente artículo entraremos en detalle sobre los comando de programación para Arduino.</p>
<p>En el espacio en blanco en el ide escribimos el siguiente código:</p><pre class="crayon-plain-tag">void setup() {
  Serial.begin(9600); 
 }
 void loop() {:
   Serial.println(“hola mundo!”);
   delay(10000);
 }</pre><p>Debajo del menú principal podemos ver 2 iconos uno llamado check y otro con una flecha apuntando a la derecha, el primero sirve para verificar que el código esté escrito correctamente, y el segundo verifica y carga el software al Microcontrolador, damos click en la segunda opción, luego nos aparecerá un mensaje que todo ha salido correctamente, de esta manera grabaremos los programas a nuestra placa y como puedes ver es realmente sencillo.</p>
<p>El programa que acabamos de hacer sirve para enviar un mensaje por medio del puerto usb a la pc, el mensaje es un sencillo <i>hola mundo</i> que se repite cada 10 seg, ahora para poder ver el mensaje es posible de varias maneras, pero en este caso utilizaremos una herramienta que posee el ide de Arduino, en el menú <i>Tools</i>, damos click <i>serial monitor </i>y nos abrirá una ventana la cual posee dos opciones solo tocaremos la segunda opción dejando el valor 9600 baud que es la velocidad con que nos estamos comunicando, si todo ha salido bien podremos ver el mensaje “Hola mundo”.</p>
<p><img class="aligncenter" src="http://www.cs.binghamton.edu/~tbarten1/CS120_Summer_2014/Labs/Lab5/arduino_serial_monitor.png" alt="monitor serial arduino" width="411" height="362" /></p>
<p>De esta manera ya estamos preparados para comenzar a desarrollar con Arduino, en el próximo articulo veremos la introducción para programar en Arduino y comenzar a realizar programas prácticos para esta placa.</p>
<p>&nbsp;</p>
<p>La entrada <a rel="nofollow" href="/tutorial-arduino-herramientas-necesarias/">Tutorial arduino &#8211; Herramientas necesarias</a> aparece primero en <a rel="nofollow" href="/">Cronicas de un geek</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://cronicasgeek.com/tutorial-arduino-herramientas-necesarias/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial arduino &#8211; conceptos básicos</title>
		<link>https://cronicasgeek.com/tutorial-arduino-conceptos-basicos/</link>
		<comments>https://cronicasgeek.com/tutorial-arduino-conceptos-basicos/#comments</comments>
		<pubDate>Tue, 19 Aug 2014 21:45:06 +0000</pubDate>
		<dc:creator><![CDATA[Kelvi S. Padilla]]></dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Electronica Digital]]></category>
		<category><![CDATA[atmega 2560]]></category>
		<category><![CDATA[electronica]]></category>
		<category><![CDATA[microcontrolador]]></category>

		<guid isPermaLink="false">https://cronicasgeek.com/?p=62</guid>
		<description><![CDATA[<p>Antes de iniciar a programar Arduino debemos de entender su estructura física así como también sus características y lo que diferencia de uno modelo a otro, como sabemos por el artículo de introducción, la placa Arduino se compone de un microcontrolador y los componentes necesarios para hacerlo funcionar todo embebido en un placa lista para...</p>
<p>La entrada <a rel="nofollow" href="/tutorial-arduino-conceptos-basicos/">Tutorial arduino &#8211; conceptos básicos</a> aparece primero en <a rel="nofollow" href="/">Cronicas de un geek</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Antes de iniciar a programar Arduino debemos de entender su estructura física así como también sus características y lo que diferencia de uno modelo a otro, como sabemos por el <a href="http://wp.me/p4QMgp-U">artículo de introducción</a>, la placa Arduino se compone de un microcontrolador y los componentes necesarios para hacerlo funcionar todo embebido en un placa lista para usar. El microcontrolador es el componente principal de la placa es a lo que debe la mayoría de sus características, entonces comenzaremos con comprender como funciona el microcontrolador y luego veremos que es necesario para comenzar a programar esta Arduino.</p>
<p><span id="more-62"></span></p>
<div id="attachment_64" style="width: 610px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2014/08/Arduino_Uno_-_R3.jpg"><img class="size-full wp-image-64" src="/wp-content/uploads/2014/08/Arduino_Uno_-_R3.jpg" alt="Imagen de arduino uno" width="600" height="600" /></a><p class="wp-caption-text">Imagen de arduino uno</p></div>
<h2><i>El microcontrolador</i></h2>
<p>Un microcontrolador es un circuito integrado programable compuesto por una unidad central de procesamiento, memoria y periféricos de entrada/salida, son capaces de ejecutar instrucciones grabadas en su interior, la mayoría de ellos utiliza la arquitectura Harvard lo que permite el almacenamiento del programa separado de la memoria de almacenamiento local, se necesita una frecuencia de reloj para realizar operaciones, como puede ser un oscilador RC compuesto por una resistencia y un capacitor como también un cristal de cuarzo con una mayor precisión.</p>
<p>La arquitectura que compone un microcontrolador puede variar de uno a otro pero de manera general lo compone un CPU (una unidad central de procesamiento) que se encarga de realizar la lógica necesaria, la memoria ram conocido también como memoria volátil que almacena valores en tiempo de ejecución y la memoria rom que puede ser EEPROM o Flash EEPROM que puede almacenar información de manera permanente incluso si es desconectado el microcontrolador de la fuente de alimentación, la diferencia entre memoria EEPROM Y Flash EEPROM es la velocidad de almacenado.</p>
<h2><i>CPU</i></h2>
<p>Es el núcleo del microcontrolador y es el que se encarga de realizar la instrucciones lógicas grabas en memoria, es llamado el procesador o microprocesador, es posible conseguir el componente separado como puede ser por ejemplo el microprocesador z80, pero se debe completar con la memoria ram y rom por separado lo que un microcontrolador incluye en un solo chip esto es uno de los motivos por lo que se han vuelto populares, la cpu entre sus componentes principales podemos mencionar la unidad lógica aritmética ALU (en inglés) que se encarga de las operaciones matemáticas con bits, y el contador de programa que lleva la secuencia y permite los saltos de programa utilizando la memoria de pila que permite regresar a la posición deseada sin perder el control del programa, es necesario un circuito oscilador conocido como reloj que es el que permite llevar la secuencia del programa, un oscilador más rápido permite una mayor velocidad de procesamiento.</p>
<h2><i>Memoria ram</i></h2>
<p>Es conocida como memoria volátil ya que mientras se ejecute el programa la información se mantendrá si es desconectada la fuente de alimentación toda la información se pierde, también es conocida como memoria de acceso aleatorio porque puede ser grabada sin ningún orden especifico, es utilizada para guardar información en tiempo de ejecución, al no almacenar datos de manera permanente es mucho mas rápida que la memoria rom, la forma de medición es en bytes las computadoras actuales permiten gigas de información pero a nivel de un microcontrolador se utilizan bytes o kilobytes, siempre se recomiendan técnicas de programación para optimizar ram como por ejemplo punteros en lenguaje c ya que es un recurso valioso para el microcontrolador.</p>
<h2><i>Memoria interna y EEPROM</i></h2>
<p>La memoria interna del microcontrolador es de tipo no volátil, es así porque no se borra al ser desconectada de la fuente de alimentación, en esta se almacena el programa que debe ser ejecutado por el cpu, también se almacena información entre bytes o kilobytes dependiendo del modelo de microcontrolador, aparte se encuentra la memoria rom conocida como memoria EEPROM aunque en realidad tanto la memoria interna como la memoria EEPROM utilizan la misma tecnología que es llamada EEPROM, al almacenar la información de manera permanente es mucho más lenta que la memoria ram en ocasiones se debe realizar una pausa para asegurarnos que la información se almacenó correctamente, por lo general la memoria EEPROM tiene un espacio menos espacio llegando a ser en bytes, pero es posible expandir la con memorias externas de gran tamaño.</p>
<h2><i>Pines de entrada y salida</i></h2>
<p>Un microcontrolador puede disponer de varios pines dependiendo de la familia y la serie del mismo, estos pines pueden ser digitales o análogos y en algunos caso poseer características únicas como enviar un pulso con modulación PWM (en inglés), detectar eventos conocido interrupciones así como también puede ser utilizados para realizar una comunicación por puerto serial, todas estas configuraciones las debemos realizar por medio de programación, cuando un pin es utilizado como digital, este puede ser entrada o salida siendo 5 voltios un 1 y tierra un 0, si un pin es utilizado como análogo, este solo puede ser utilizado como entrada porque su fin en medir señales de voltaje, convirtiéndose en un convertidor análogo a digital, en el mayoría de microcontroladores un pin puede ser utilizado de cualquier forma ya sea entrada o salida digital, convertidor análogo, o alguna característica especial si es el caso, dejando la configuración al programador.</p>
<h2><i>Características de arduino</i></h2>
<p>Teniendo más claro el concepto de un microcontrolador podes ver como funciona Arduino y sus principales ventajas, básicamente Arduino es un microcontrolador soldado a una placa con todos los componente necesarios para funcionar, así como también una conexión usb para ser programado y conectores de cada pin para se utilizados de manera más fácil.</p>
<p>Por ejemplo podemos comparar <i>Arduino Uno</i> con <i>Arduino Atmega 2560</i>, para ver lo que hace especial uno de otro, primero veamos las características principales de arduino uno:</p>
<ul>
<li>Memoria interna: 32kb.</li>
<li>Ram: 2kb.</li>
<li>EEPROM: 1kb.</li>
<li>Pines: 14.</li>
<li>Entradas análogas: 6.</li>
</ul>
<p>Ahora veamos las características de <em>Arduino atmega 2560</em>:</p>
<ul>
<li>Memoria interna: 256kb.</li>
<li>Ram: 8kb.</li>
<li>EEPROM: 4kb.</li>
<li>Pines: 54.</li>
<li>Entradas análogas: 15.</li>
</ul>
<p>Como podrás notar hay una clara diferencia, en memoria interna, ram y EEPROM también en el número de pines. Es así porque <i>Arduino Atmega 2560</i> es una actualización de Arduino uno, y es válido pensar que <i>Arduino Atmega 2560</i> es mejor opción, pero en algunos casos nuestro proyecto puede ser muy simple por lo que un <i>Arduino uno</i> seria una mejor opción ya que no necesitamos tantos recursos para hacerlo, también cabe mencionar que cada Arduino funciona con un reloj de 16mhz lo cual no esta mal pero si comparamos el microcontrolador con otro este es un detalle a considerar porque es la velocidad de procesamiento.</p>
<p>De esta manera podemos estar seguro que arduino usar, según nuestras necesidades o presupuesto, y así estar listos para comenzar a programar. Lo que veremos en el siguiente artículo.</p>
<p>La entrada <a rel="nofollow" href="/tutorial-arduino-conceptos-basicos/">Tutorial arduino &#8211; conceptos básicos</a> aparece primero en <a rel="nofollow" href="/">Cronicas de un geek</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://cronicasgeek.com/tutorial-arduino-conceptos-basicos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial de arduino &#8211; Introducción</title>
		<link>https://cronicasgeek.com/tutorial-de-arduino-introduccion/</link>
		<comments>https://cronicasgeek.com/tutorial-de-arduino-introduccion/#comments</comments>
		<pubDate>Mon, 11 Aug 2014 17:02:30 +0000</pubDate>
		<dc:creator><![CDATA[Kelvi S. Padilla]]></dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Electronica Digital]]></category>
		<category><![CDATA[atmega 2560]]></category>
		<category><![CDATA[electronica]]></category>
		<category><![CDATA[microcontrolador]]></category>

		<guid isPermaLink="false">https://cronicasgeek.com/?p=56</guid>
		<description><![CDATA[<p>En la actualidad existen muchos componente y placas electrónicas casi para cualquier desarrollo electrónico lo que nos ahorra tiempo en la fabricación y diseño del circuito, entre los más populares se encuentra Arduino que es un procesador Atmel listo para ser programado vía usb con todos los componente necesarios para funcionar soldados en una placa...</p>
<p>La entrada <a rel="nofollow" href="/tutorial-de-arduino-introduccion/">Tutorial de arduino &#8211; Introducción</a> aparece primero en <a rel="nofollow" href="/">Cronicas de un geek</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>En la actualidad existen muchos componente y placas electrónicas casi para cualquier desarrollo electrónico lo que nos ahorra tiempo en la fabricación y diseño del circuito, entre los más populares se encuentra Arduino que es un procesador<a href="http://es.wikipedia.org/wiki/Atmel"> Atmel</a> listo para ser programado vía usb con todos los componente necesarios para funcionar soldados en una placa un poco mas grande que una tarjeta de crédito, también incluye un entorno de desarrollo con un lenguaje que parecido a c++, que esta mas orientado al aprendizaje rápido, pero que no deja se ser potente para proyectos interesantes.<span id="more-56"></span></p>
<p>Arduino es un proyecto de software libre lo que nos permite disponer del código fuente del software como también del circuito para hacer el hardware, construir tu propio Arduino no es muy difícil de hecho en Internet puedes encontrar construcciones que no parecen hechas en casa, todo depende del tiempo que quieras invertir.</p>
<p>Si consideramos la gran cantidad de circuitos que podemos encontrar en internet que utilizan arduino, no debemos ignorar que puede llegar a sernos útil. En la mayoría de los casos donde no hay poco tiempo para hacer una placa de manera profesional es donde podemos aprovechar esta placa.</p>
<p><a href="/wp-content/uploads/2014/08/Arduino-uno.jpg"><img class="aligncenter size-full wp-image-57" src="/wp-content/uploads/2014/08/Arduino-uno.jpg" alt="Arduino uno" width="450" height="296" /></a></p>
<p>En esta guía comenzaremos por lo más básico hasta dominar en gran medida la placa de Arduino, en mi caso utilizare Arduino MEGA 2560, en cada ejemplo utilizare proyectos diferentes para que se pueda consultar de manera separada, con esto espero crear una guía útil para los usuarios de Internet.</p>
<h2><i>¿por qué no debo solo aprender Arduino?</i></h2>
<p>Si bien es una maravilla ya que es software libre y porque conseguimos una placa con un procesador potente a bajo costo, si a todo esto le agregamos que existe muchos módulos para hacer casi cualquier cosa, no es de extrañar que sea popular, pero no debemos de olvidar que no es el único circuito que existe. Primero debemos recordar que su componente principal es un microcontrolador, que pertenece a la familia <a href="http://en.wikipedia.org/wiki/Atmel_AVR">Atmel AVR</a>, lo único que cambia entre cada versión de Arduino es la potencia del microcontrolador entre algunas otras cosas, entonces si tratamos de utilizar un microcontrolador Atmel fuera de arduino, nos daremos cuenta que es muy diferente la cosa, y si investigamos bien no es la única familia de microcontroladores que existe, hay una gran línea de aprendizaje que arduino acorta al proporcionarnos herramientas de fácil uso.</p>
<p>Es recomendable probar varios microcontroladores o microprocesadores porque así dispondremos de variedad a la hora de realizar un proyecto y también porque se aprende mucho en el proceso. Por ese motivo Arduino como una opción mas no esta mal y si eres nuevo en el mundo de los microcontroladores Arduinos como medio de aprendizaje es recomendable, siempre que sigas conociendo los microcontroladores como tal.</p>
<h2><i>Requerimientos:</i></h2>
<p>Aunque Arduino es muy fácil de utilizar y aprender no quiere decir que no necesitemos un conocimiento previo antes de usarlo, por lo general es necesario conocer lo siguiente:</p>
<ul>
<li>Electrónica análoga.</li>
<li>Electrónica digital.</li>
<li>Programación básica.</li>
</ul>
<p>No es necesario que domines a la perfección cada tema, pero necesitas saber como utilizar transistores, diodos, resistencias, reguladores de voltaje, así como también integrados de funciones específicas como compuertas, contadores, convertidores análogos a digital entre otras cosas, esto hará que sea mucho más fácil utilizarlo hasta el punto de volverse fácil y quieras seguir aprendiendo de manera más avanzada.</p>
<p>También es necesario tener conceptos básicos de programación, al ser electrónica digital y utilizar microcontroladores la única manera de utilizarlos es por medio de un lenguaje de programación, Arduino utiliza un lenguaje propio de alto nivel parecido a c++, si estas aprendiendo a programar te recomiendo que empieces con C, si lo comprendes te será fácil aprender muchos de los lenguajes utilizados hoy en día.</p>
<h2><i> ¿Que Arduino debo utilizar?</i></h2>
<p>Si has visto la pagina oficial de Arduino notaras la gran cantidad de placas disponibles, cada Arduino posee características que los vuelve únicos, pero si eres nuevo te recomiendo que compres uno de los siguientes modelos:</p>
<ul>
<li>Arduino uno.</li>
<li>Arduino Leonardo.</li>
<li>Arduino Mega 2560.</li>
</ul>
<p>No obligatorio que escojas uno de la lista, pero son los más populares y de los que encontrarás mucha documentación y ejemplos en Internet, y también porque poseen todo lo necesario para aprender bien.</p>
<p>La diferencia de entre uno y otro, es la cantidad de memoria flash interna, memoria ram y eeprom asi como también que cada uno posee mas pines y periféricos especiales, siendo el Arduino uno el de menor número, seguido de Arduino Leonardo, y el de mayor Prestaciones el Arduino MEGA 2560, en esta guía utilizare el último porque es el más potente a mi criterio, pero cualquiera de los 3 es válido, si aun tienes dudas puedes leer el siguiente tema que aborda los conceptos básicos y luego de esto verifica las características de cada uno el pagina <a href="http://arduino.cc/en/Main/Products">oficial</a>, así sabrás cual es el mejor para ti.</p>
<p>La entrada <a rel="nofollow" href="/tutorial-de-arduino-introduccion/">Tutorial de arduino &#8211; Introducción</a> aparece primero en <a rel="nofollow" href="/">Cronicas de un geek</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://cronicasgeek.com/tutorial-de-arduino-introduccion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
