<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.ecured.cu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cristuline</id>
	<title>EcuRed - Contribuciones del colaborador [es]</title>
	<link rel="self" type="application/atom+xml" href="https://www.ecured.cu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cristuline"/>
	<link rel="alternate" type="text/html" href="https://www.ecured.cu/Especial:Contribuciones/Cristuline"/>
	<updated>2026-06-07T23:43:55Z</updated>
	<subtitle>Contribuciones del colaborador</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://www.ecured.cu/index.php?title=SSD&amp;diff=3416786</id>
		<title>SSD</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=SSD&amp;diff=3416786"/>
		<updated>2019-06-20T14:39:16Z</updated>

		<summary type="html">&lt;p&gt;Cristuline: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Definición|Nombre=SSD|imagen=SSD1.jpeg‎|tamaño=200px|concepto= Disco duros sin partes móviles}} &lt;br /&gt;
&lt;br /&gt;
'''SSD''', por sus siglas en ingles (&amp;quot;Solid State Drive&amp;quot;), o unidades de estado sólido no son más que discos duros sin partes móviles es decir se basan en el principio de las memorias flash pero con mayores capacidades y su mayor atractivo no está en su capacidad de almacenamiento sino en su tamaño, bajo consumo de energía y altas tasas de transferencia de datos. La forma de almacenamiento puede ser no volátiles, como las [[Memorias flash]], o volátiles, como la de las memorias de las computadoras (SDRAM) y a pesar de no ser discos duros como tal en el mercado mundial se les vende como ellos. &lt;br /&gt;
&lt;br /&gt;
== Ventajas  ==&lt;br /&gt;
&lt;br /&gt;
Las unidades de estado sólido SSD, tienen como principales ventajas lo reducidos de su tamaño y no tener un sobrecalentamiento excesivo. Al ser aparatos compactos, formados por componentes que no se mueven al trabajar, tienen menor riesgo de desajustes y pueden alcanzar tamaños mínimos con mayor capacidad de almacenamiento. &lt;br /&gt;
&lt;br /&gt;
En cuanto a su tamaño hoy los modelos se mueven en el entorno de las dos [[pulgada]]s y media, lo que equivale a cinco [[centímetro]]s de diagonal, un tamaño menor que el de un [[iPhone]]. &lt;br /&gt;
&lt;br /&gt;
Su peso puede variar de un modelo a otro y según la capacidad de almacenamiento, pero se sitúa en torno a los cien gramos, y en ocasiones menos. Estas características les hacen ideales para la portabilidad, ya que caben en cualquier bolsillo. &lt;br /&gt;
&lt;br /&gt;
Sin duda son más resistentes a los cambios de temperatura a los golpes y posibles accidentes que los discos duros tradicionales y comparados con estos son totalmente silenciosos. &lt;br /&gt;
&lt;br /&gt;
== Desventajas ==&lt;br /&gt;
&lt;br /&gt;
El precio actual de estos dispositivos es mucho más alto que los discos duros convencionales, aunque está bajando. Por otro lado, su ciclo de vida es más corto que los discos duros convencionales. &lt;br /&gt;
&lt;br /&gt;
Actualmente este tipo de dispositivos mantienen un precio por gigabyte hasta diez veces superior al de los discos duros convencionales. El relativamente corto siclo de vida es debido a que el acceso al disco es más elevado, desgastándolo con mayor rapidez. No obstante, su ciclo es lo suficientemente elevado para que el disco deje de funcionar mucho tiempo después de que el dispositivo donde está integrado sea catalogado como obsoleto. Además, dispone de un sistema electrónico que determina la cantidad de operaciones de lectura y escritura que se realizan sobre el disco, para compensar que unas celdas no tengan un desgaste mayor que otras. &lt;br /&gt;
&lt;br /&gt;
Finalmente, a la hora de recuperar archivos, los datos de discos duros de partes mecánicas pueden ser recuperados si falla la parte mecánica del disco. Sin embargo, en las unidades de disco sólido, si una celda resulta dañada, los datos son destruidos y no hay ninguna posibilidad de recuperarlos. &lt;br /&gt;
&lt;br /&gt;
== Alta velocidad de transferencia ==&lt;br /&gt;
&lt;br /&gt;
Otra característica por la que destacan los discos SSD es su alta velocidad de lectura de datos, que permite enviarlos a un ordenador mucho más rápido que los discos magnéticos. Las velocidades actuales se mueven en torno a los 250 [[megabits]] por segundo, mientras que en los discos magnéticos son hasta diez veces inferiores, si bien depende del tipo de archivo a leer. &lt;br /&gt;
&lt;br /&gt;
No se alcanzan las mismas velocidades en la escritura de datos en el disco, pero las mejoras en este aspecto han sido notables en los últimos años y los modelos más recientes alcanzan los 200 megabits de datos copiados por segundo, al menos a nivel teórico. También este parámetro es sensiblemente inferior en los discos magnéticos. Además hay que tener en cuenta que los discos SSD no sólo son rápidos, sino que mantienen la velocidad de transferencia de datos de una manera sostenida, mientras que en los discos magnéticos esta oscila con altos y bajos. &lt;br /&gt;
&lt;br /&gt;
== Principales componentes del SSD ==&lt;br /&gt;
&lt;br /&gt;
* '''Controladora''': Es un procesador electrónico que se encarga de administrar, gestionar y unir los módulos de memoria con los conectores en entrada y salida. Ejecuta software a nivel de Firmware y es con toda seguridad, el factor más determinante para las velocidades del dispositivo.&lt;br /&gt;
&lt;br /&gt;
* '''Caché:''' Un dispositivo SSD utiliza un pequeño dispositivo de memoria DRAM similar al caché de los discos duros. El directorio de la colocación de bloques y el desgaste de nivelación de datos también se mantiene en la memoria caché mientras la unidad está operativa.&lt;br /&gt;
&lt;br /&gt;
* '''Condensador:''' Es necesario para mantener la integridad de los datos de la memoria caché, si la alimentación eléctrica se ha detenido inesperadamente, el tiempo suficiente para que se puedan enviar los datos retenidos hacia la memoria no volátil.&lt;br /&gt;
&lt;br /&gt;
* '''Módulos de memoria:''' Consisten en chips NAND Flash conectados en paralelo los cuales se encargan de almacenar los datos. Actualmente se pueden encontrar varios tipos de memoria NAND Flash en función de su tecnología de fabricación para aumentar la capacidad de la memoria sin aumentar su tamaño. Una forma de aumentar la capacidad es aumentar el número de capas (3D NAND y V-NAND), donde actualmente se llega a unas 100 capas. La otra forma es aumentar el número de bits por celda de memoria, con lo que podemos encontrar memorias SLC (&amp;quot;Single-level Cell&amp;quot;) de 1 bit por celda que solo permite guardar dos valores: 0 y 1; MLC (&amp;quot;Multi-level Cell&amp;quot;) de 2 bits por celda que permite guardar 4 valores: 00, 01, 10, 11; TLC (&amp;quot;Triple-level Cell&amp;quot;) de 3 bits por celda que permite hasta 8 valores, y QLC (&amp;quot;Quad-level cell&amp;quot;) con 4 bits por celda que permite hasta 16 valores. A más bits, mayor capacidad, menor precio, pero menor durabilidad, que se suele definir en Terabytes escritos (TBW) y tiempo medio de funcionamiento antes de fallar (MTBF) &amp;lt;ref&amp;gt; Tipos de memoria NAND FLASH de tu SSD: SLC, MLC, TLC, QLC, 3D NAND y V-NAND [https://discodurossd.info/] &amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Es digno destacar que también se fabrican en menor medida hoy los SSD basados en SDRAM que aunque logran mayor velocidades de acceso a datos, necesitan de baterías para mantener la información en dichas memorias y sus costos mucho más altos. &lt;br /&gt;
&lt;br /&gt;
== Otos aspectos de interés ==&lt;br /&gt;
&lt;br /&gt;
Diseñados con la intención de reemplazar los discos duros convencionales en laptops y notebooks, actualmente varios fabricantes, entre los que se cuentan [[SanDisk]], [[Toshiba]], [[Samsung Electronics|Samsung]] y muchos otros, fabrican discos de estado sólido en capacidades desde los 80 hasta 240 Gbytes (con interfaz [[SATA-II]]), a precios que oscilan entre los 100 y 500 [[dólar]]es, dependiendo del fabricante y las capacidades de los mismos. &lt;br /&gt;
&lt;br /&gt;
Estos discos de estado sólido son cinco veces más rápidos que los equivalentes en discos duros convencionales, que llegan a alcanzar hasta 7200 rpm y además, los SSD de tercera generación son al menos dos veces más rápidos que los que se fabricaron en años anteriores al [[2009]]. Pueden leer en el orden de los 200 a 250 Mbytes/seg. o escribir entre 140 y 200 Mbytes/seg.&lt;br /&gt;
&lt;br /&gt;
Por otra parte, la duración de los discos de estado sólido se mide en TBW (TeraBytes Writen&amp;lt;ref&amp;gt;[https://www.losmejoresdiscosssd.es/ssd-vs-hdd-informacion-tecnica-sobre-los-ssds/ Información técnica sobre los discos SSD]&amp;lt;/ref&amp;gt;, o TBs escritos). La cifra más común es de 160 terabytes escritos aproximadamente según sus fabricantes en las versiones de 240 Gbytes. Esto quiere decir que para un usuario promedio el disco puede durar sin mayores problemas hasta 100 años.&lt;br /&gt;
&lt;br /&gt;
== Fuentes  ==&lt;br /&gt;
&lt;br /&gt;
 [https://www.electronicosonline.com/Discos-duros-de-estado-solido/ Electronicosonline.com]&lt;br /&gt;
 [http://es.wikipedia.org/wiki/Unidad_de_estado_sólido Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Ciencias_Aplicadas_y_Tecnologías]] &lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Cristuline</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Proporcional_integral_derivativo&amp;diff=3406061</id>
		<title>Proporcional integral derivativo</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Proporcional_integral_derivativo&amp;diff=3406061"/>
		<updated>2019-06-10T10:33:29Z</updated>

		<summary type="html">&lt;p&gt;Cristuline: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Normalizar|motivo=}}&lt;br /&gt;
{{Mejorar}}&lt;br /&gt;
{{Definición&lt;br /&gt;
|nombre= Proporcional integral derivativo PID&lt;br /&gt;
|imagen=CtrolPID.JPG&lt;br /&gt;
|tamaño=&lt;br /&gt;
|concepto =''' Es la acción de control donde el valor de la salida es la combinación de los efectos de las acciones de control proporcional, integral y derivativa.'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;div align=&amp;quot;Justify&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
'''Proporcional integral derivativo''' Es un mecanismo de control por realimentación que emplea la suma de las acciones de control proporcional, integral y derivativa, por este motivo este control es el más empleado en el control de procesos industriales.&lt;br /&gt;
== Ecuación matemática ==&lt;br /&gt;
[[Archivo:EcuaciónPID.JPG‎]]&lt;br /&gt;
&lt;br /&gt;
Donde: &lt;br /&gt;
&lt;br /&gt;
m(t): salida del controlador&lt;br /&gt;
&lt;br /&gt;
e(t): error actuante&lt;br /&gt;
&lt;br /&gt;
Kp: sensibilidad proporcional&lt;br /&gt;
&lt;br /&gt;
Td: tiempo derivativo&lt;br /&gt;
&lt;br /&gt;
Ti: tiempo integral&lt;br /&gt;
 &lt;br /&gt;
== Funcionamiento de un control con acción proporcional, integral y derivativa ==&lt;br /&gt;
La acción de control proporcional, integral y derivativa(PID) tiene como propósito utilizar las ventajas de estás tres acciones de control para lograr conducir el proceso correctamente aunque generalmente las acciones de control más usadas son la proporcional y la integral con valores derivativos muy bajos o casi cero debido a que esta es muy sensible al ruido  a no ser que sea indispensable por las características propias del proceso.&lt;br /&gt;
&lt;br /&gt;
Un controlador PID corrige el error entre un valor  medido y el valor que se quiere obtener calculándolo y luego sacando una acción correctora  que puede ajustar al proceso acorde. &lt;br /&gt;
&lt;br /&gt;
'''Para el correcto funcionamiento de un controlador PID que regule un proceso o sistema se  necesita, al menos:'''&lt;br /&gt;
 &lt;br /&gt;
* Un sensor, que determine el estado del sistema (termómetro, caudalímetro,manómetro, etc). &lt;br /&gt;
* Un controlador, que genere la señal que gobierna al actuador. &lt;br /&gt;
* Un actuador, que modifique al sistema de manera controlada (resistencia eléctrica, motor, válvula, bomba, etc). &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Enlaces internos ==&lt;br /&gt;
*[[Control proporcional]]&lt;br /&gt;
*[[Control integral]]&lt;br /&gt;
*[[Control derivativo]]&lt;br /&gt;
*[[Automatización]]&lt;br /&gt;
*[[Automática]] &lt;br /&gt;
*[[Sistema de control de procesos]]&lt;br /&gt;
*[[Cibernética]] &lt;br /&gt;
*[[Temperatura]] &lt;br /&gt;
*[[PH]]&lt;br /&gt;
== Fuente ==&lt;br /&gt;
*Ogata. Katsuhiko, Ingeniería de control moderna. Edición Revolucionaria, 1990&lt;br /&gt;
*[http://es.wikipedia.org/wiki/Sistemas_de_control Sistema de control en Wikipedia]&lt;br /&gt;
*[http://proton.ucting.udg.mx/~isaac/prac/prac8.htm CONTROLADOR PROPORCIONAL INTEGRAL DERIVATIVO (PID)]&lt;br /&gt;
[[Category:Ciencias_informáticas]] &lt;br /&gt;
[[Category:Tecnología_de_la_automatización]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cristuline</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Android&amp;diff=3406060</id>
		<title>Android</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Android&amp;diff=3406060"/>
		<updated>2019-06-10T10:10:21Z</updated>

		<summary type="html">&lt;p&gt;Cristuline: /* Aplicaciones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Sistema_operativo&lt;br /&gt;
|nombre=Android&lt;br /&gt;
|familia=&lt;br /&gt;
|logo=Android-Logo.png&lt;br /&gt;
|captura=Sony-Xperia-Tablet-Android.jpg&lt;br /&gt;
|pie=[[Tablet PC|Tablet]] producida por [[Sony]] con el SO Android.&lt;br /&gt;
|desarrollador=[[Google]]&lt;br /&gt;
|web=[http://www.android.com/ Android Web Oficial] (en inglés)&lt;br /&gt;
|plataformas=&lt;br /&gt;
|anterior=&lt;br /&gt;
|lanzamiento=[[2005]]&lt;br /&gt;
|núcleo=[[Linux]]&lt;br /&gt;
|actualización=&lt;br /&gt;
|licencia= [[Apache]] 2.0 y [[GNU]]/[[GPL]] 2&lt;br /&gt;
|desarrollo=&lt;br /&gt;
|interfaz=&lt;br /&gt;
|idiomas=Multilingüe&lt;br /&gt;
|etiq_cubadebate = android&lt;br /&gt;
}}&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
'''Android'''. Es un [[Sistema operativo|Sistema Operativo]] además de una plataforma de [[Software|Software]] basada en el núcleo de [[Linux|Linux]]. Diseñada en un principio para dispositivos móviles. Android permite controlar dispositivos por medio de bibliotecas desarrolladas o adaptadas por [[Google|Google]] mediante el lenguaje de programación [[Java|Java]]. &lt;br /&gt;
==Historia==&lt;br /&gt;
Fue desarrollado por Android Inc., empresa que en 2005 fue comprada por Google, aunque no fue hasta 2008 cuando se popularizó, gracias a la unión al proyecto de Open Handset Alliance, un consorcio formado por 48 empresas de desarrollo [[hardware]], [[software]] y telecomunicaciones, las cuales llegaron a un acuerdo para promocionar los estándares de códigos abiertos para dispositivos móviles.&lt;br /&gt;
&lt;br /&gt;
Google sin embargo, ha sido quien ha publicado la mayoría del código fuente de Android bajo la licencia de [[Apache Servidor Web|Software Apache]], una licencia de [[software libre]] y de código abierto a cualquier desarrollador. &lt;br /&gt;
&lt;br /&gt;
Dado que Android está basado en el núcleo de Linux, tiene acceso a sus recursos, pudiendo gestionarlo, gracias a que se encuentra en una capa por encima del Kernel, accediendo así a recursos como los controladores de pantalla, cámara, memoria flash…&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema de capas de Android|thumb|left|capas_android.jpg16.0kb|]]&lt;br /&gt;
&lt;br /&gt;
En la imagen se distinguen claramente cada una de las capas: la que forma parte del propio Kernel de Linux, donde Android puede acceder a diferentes controladores, las librerías creadas para el desarrollo de aplicaciones Android, la siguiente capa que organiza los diferentes administradores de recursos, y por último, la capa de las aplicaciones a las que tiene acceso.&lt;br /&gt;
&lt;br /&gt;
== Características  ==&lt;br /&gt;
Android es una plataforma de código abierto. Esto quiere decir, que  cualquier desarrollador puede crear y desarrollar aplicaciones escritas  con lenguaje [[Lenguaje de Programación C|C]] u otros lenguajes y compilarlas a código nativo de  [[ARM|ARM]] (API de Android).Una parte importante al entrar al mundo Android es [[Diccionario de Android|conocer que significa cada uno de los terminos]] o palabras que se usan&lt;br /&gt;
&lt;br /&gt;
* [[Framework|Framework]] de aplicaciones: permite el reemplazo y la reutilización de los componentes. &lt;br /&gt;
* Navegador integrado: basado en el motor open Source Webkit. &lt;br /&gt;
* [[SQlite|SQlite]]: base de datos para almacenamiento estructurado que se integra directamente con las aplicaciones. &lt;br /&gt;
* [[Multimedia|Multimedia]]: Soporte para medios con formatos comunes de audio, video e imágenes planas ([[Moving Picture Experts Group-4 (MPEG-4)|MPEG4]], [[H.264]], [[MP3]], [[AAC]], [[AMR]], [[JPG]], [[PNG]], [[GIF]]). &lt;br /&gt;
* [[Máquina virtual]] Dalvik: Base de llamadas de instancias muy similar a Java. &lt;br /&gt;
* [[Telefonía]] [[GSM]]: dependiente del terminal. &lt;br /&gt;
* [[Bluetooth|Bluetooth]], EDGE, 3g y Wifi: dependiente del terminal. &lt;br /&gt;
* [[Cámara Fotográfica|Cámara]], [[GPS]], [[brújula]] y acelerómetro: Dependiente del terminal. &lt;br /&gt;
* [[Pantalla tactil]].&lt;br /&gt;
&lt;br /&gt;
== Arquitectura de Android  ==&lt;br /&gt;
La arquitectura interna de la plataforma Android, está básicamente formada por 4 componentes: &lt;br /&gt;
===Aplicaciones===&lt;br /&gt;
Todas las aplicaciones creadas con la plataforma Android, incluirán como base un cliente de [[email]] ([[correo electrónico]]), calendario, programa de [[SMS]], mapas, [[navegador]], contactos, y algunos otros servicios mínimos. Todas ellas escritas en el lenguaje de programación [[Java]]. Ejemplo de ello [[Alerta flash]].&lt;br /&gt;
&lt;br /&gt;
Aunque el lenguaje de programación principal es [[Java]], actualmente también permite programar aplicaciones en [[Kotlin]], que es compatible con Java, con lo que se pueden realizar aplicaciones mixtas con los dos lenguajes. En caso de querer reutilizar código escrito en C/C++, se puede introducir mediante Android NDK (Native Development Kit).&lt;br /&gt;
&lt;br /&gt;
===Framework de Aplicaciones===&lt;br /&gt;
Todos los desarrolladores de aplicaciones Android, tienen acceso total al [[código fuente]] usado en las aplicaciones base. Esto ha sido diseñado de esta forma, para que no se generen cientos de componentes de aplicaciones distintas, que respondan a la misma acción, dando la posibilidad de que los programas sean modificados o reemplazados por cualquier usuario sin tener que empezar a programar sus aplicaciones desde el principio.&lt;br /&gt;
&lt;br /&gt;
===Librerías===&lt;br /&gt;
Android incluye en su base de datos un set de librerías [[C]]/[[Lenguaje de programación C++|C++]] , que son expuestas a todos los desarrolladores a través del framework de las aplicaciones [[Android System C library]], librerías de medios, librerías de [[gráficos]], [[Animación 3D|3D]], [[SQlite]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime de Android===&lt;br /&gt;
Android incorpora un set de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. La [[Máquina Virtual]] está basada en registros, y corre clases compiladas por el compilador de Java que anteriormente han sido transformadas al [[formato]] .dex (Dalvik Executable) por la [[herramienta]] ''dx''. &lt;br /&gt;
&lt;br /&gt;
El uso de Dalvik fue utilizado hasta la versión 4.4.3 de Android. A partir de la versión 5 de Android (se introdujo en la 4.4), se utiliza ART (Android Runtime) como entorno de ejecución, que compila durante la instalación de una aplicación, el Java bytecode.&lt;br /&gt;
&lt;br /&gt;
==Versiones==&lt;br /&gt;
=== Versiones finales ===&lt;br /&gt;
Las versiones de Android finales disponibles en los terminales, comenzaron con un número (Android 1, 1.1), pero desde abril de 2009, las versiones de Android han sido desarrolladas bajo un nombre en clave y sus nombres siguen un orden alfabético:Apple Pie, Banana Bread, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat, Lollipop, Marshmallow, Nougat, Oreo y Pie.&lt;br /&gt;
Por otra parte existe el número de API (Application Programming Interface), que corresponde a las librerías o bibliotecas de programación correspondiente a las diferentes versiones (o actualizaciones) de Android.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
! Nombre código&lt;br /&gt;
! Número de versión &lt;br /&gt;
! Fecha de lanzamiento&lt;br /&gt;
! Nivel de API&lt;br /&gt;
|-&lt;br /&gt;
| [[Android 1.0 (API 1)|Apple Pie]]|| 1.0 || [[23 de septiembre]] de [[2008]] || 1&lt;br /&gt;
|-&lt;br /&gt;
| [[Android 1.1 (API 2)|Banana Bread]]|| 1.1 || [[9 de febrero]] de [[2009]] || 2&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Cupcake|Cupcake]] || 1.5 || [[25 de abril]] de [[2009]] || 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Donut]]|| 1.6 || [[15 de septiembre]]  de [[2009]] || 4&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Eclair|Eclair]] || 2.0 &amp;amp;ndash; 2.1 || [[26 de octubre]] de [[2009]] || 5 – 7&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Froyo|Froyo]] || 2.2 &amp;amp;ndash; 2.2.3 || [[20 de mayo]] de [[2010]] || 8&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Gingerbread|Gingerbread]] || 2.3 &amp;amp;ndash; 2.3.7 || [[6 de diciembre]] de [[2010]] || 9 – 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Honeycomb|Honeycomb]]{{refn|Honeycomb es la primera versión con soporte a tablets, pero solo puede usarse en tabletas y el código fuente no ha sido lanzado. Todas las versiones siguientes de Android soportan tanto celulares como tabletas.}} || 3.0 &amp;amp;ndash; 3.2.6 || [[22 de febrero]] de [[2011]] || 11 – 13&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Ice Cream Sandwich|Ice Cream Sandwich]] || 4.0 &amp;amp;ndash; 4.0.5 || [[18 de octubre]] de [[2011]] || 14 – 15&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Jelly Bean|Jelly Bean]] || 4.1 &amp;amp;ndash; 4.3.1 || [[9 de julio]] de [[2012]] || 16 – 18&lt;br /&gt;
|-&lt;br /&gt;
| [[Android KitKat|KitKat]] || 4.4 &amp;amp;ndash; 4.4.4 || [[31 de octubre]] de [[2013]] || 19 – 20&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Lollipop|Lollipop]] || 5.0 &amp;amp;ndash; 5.1.1 || [[12 de noviembre]] de [[2014]] || 21 – 22&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Marshmallow|Marshmallow]]|| 6.0 &amp;amp;ndash; 6.0.1 || [[5 de octubre]] de [[2015]] || 23&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Nougat|Nougat]] || 7.0 &amp;amp;ndash; 7.1.2 || [[15 de junio]] de [[2016]] || 24 – 25 &lt;br /&gt;
|-&lt;br /&gt;
| [[Android Oreo|Oreo]] || 8.0 &amp;amp;ndash; 8.1 || [[21 de agosto]] de [[2017]] || 26 – 27&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Pie|Pie]] || 9.0 || [[6 de agosto]] de [[2018]] || 28&lt;br /&gt;
|-&lt;br /&gt;
|[[Android Q|Q]]&lt;br /&gt;
|10.0&lt;br /&gt;
|agosto del [[2019]]&lt;br /&gt;
|29&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Android Beta===&lt;br /&gt;
La versión beta de Android fue lanzada el 5 de noviembre de 2007,&amp;lt;ref&amp;gt;[http://googlesystem.blogspot.com/2007/11/google-launches-android-open-mobile.html «Google Launches Android, an Open Mobile Platform». Google Operating System ([[5 de noviembre]] de [[2007]]).]&amp;lt;/ref&amp;gt; mientras el Software development kit (SDK) fue lanzado el [[12 de noviembre]] de [[2007]].  Las versiones públicas Beta del SDK fueron lanzados en el siguiente orden:&lt;br /&gt;
* [[16 de noviembre]] de 2007: m3-rc22a&lt;br /&gt;
* [[14 de diciembre]] de 2007: m3-rc37a&lt;br /&gt;
* [[13 de febrero]] de [[2008]]: m5-rc14&lt;br /&gt;
* [[3 de marzo]] de 2008: m5-rc15&lt;br /&gt;
* [[18 de agosto]] de 2008: 0.9&lt;br /&gt;
* [[23 de septiembre]] de 2008: 1.0-r11&lt;br /&gt;
&lt;br /&gt;
===Android 1.0 Apple Pie===&lt;br /&gt;
Android 1.0 Apple Pie (Tarta de manzana), la primera versión comercial del software, fue lanzado el 23 septiembre de 2008. El primer dispositivo Android, el HTC Dream, incorporó las siguientes características de Android 1.0:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:75%; font-size:90%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; width:5em; text-align:center;&amp;quot;|Versión&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; width:10em; text-align:center;&amp;quot;|Fecha lanzamiento&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; text-align:center;&amp;quot;|Características&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| 1.0&lt;br /&gt;
| [[23 de septiembre]] de [[2008]]&lt;br /&gt;
|&lt;br /&gt;
* [[Android Market]] Programa con un mercado para la descarga y actualización de aplicaciones.&lt;br /&gt;
* [[Navegador Web]] para visualizar páginas webs en full [[HTML]] y [[XHTML]] &amp;amp;ndash; múltiples páginas mostradas como ventanas (&amp;quot;tarjetas&amp;quot;).&lt;br /&gt;
* Soporte Cámara &amp;amp;ndash; sin embargo esta versión carece de la opción de cambiar la resolución de la cámara, balance de blancos, calidad, etc.&lt;br /&gt;
* Carpetas permiten la agrupación de un número de iconos de aplicaciones dentro de una simple carpeta en la pantalla de inicio.&lt;br /&gt;
* Acceso a servidores de correo electrónico por web, soporte [[POP3]], [[IMAP4]] y [[SMTP]].&lt;br /&gt;
* Sincronización de [[Gmail]] con la aplicación de Gmail.&lt;br /&gt;
* Sincronización de [[Google Contacts]] aplicación de personas.&lt;br /&gt;
* Sincronización de [[Google Calendar]] con la aplicación de calendario.&lt;br /&gt;
* [[Google Maps]] con [[Google Latitude|Latitude]] y [[Google Street View|Street View]] para ver mapas e imágenes por satélite, así como para encontrar negocios locales y obtener direcciones de conducción usando [[GPS]].&lt;br /&gt;
* [[Google Sync]], permite la administración de la sincronización OTA de Gmail, Personas, y Calendario&lt;br /&gt;
* [[Google Search]], permite a los usuarios buscar en internet, en aplicaciones del teléfono móvil, en contactos, en calendario, etc.&lt;br /&gt;
* Mensajería instantánea [[Google Talk]].&lt;br /&gt;
* [[Mensajería instantánea]], [[Servicio de mensajes cortos|mensajes de texto]] y MMS.&lt;br /&gt;
* [[Reproductor de medios]], habilitada administración, importación, y reproducción de archivos multimedia &amp;amp;ndash; sin embargo, esta versión carece de soporte de vídeo y estéreo por [[Bluetooth]].&lt;br /&gt;
* Las notificaciones aparecen en la barra de estado, con opciones para configurar alertas por timbre, [[LED]] o vibración.&lt;br /&gt;
* Marcación por voz permite marcar y llamar sin escribir nombre o número.&lt;br /&gt;
* Fondo de escritorio permite al [[usuario]] configurar una [[imagen]] de fondo o una foto detrás de los iconos y widgets de la pantalla de inicio.&lt;br /&gt;
* Reproductor de [[vídeo]] [[YouTube]].&lt;br /&gt;
* Otras aplicaciones incluyen: Alarma, Calculadora, Marcación (teléfono), Pantalla de inicio (launcher), Imágenes (Galería) y ajustes.&lt;br /&gt;
* Soporte para [[Wi-Fi]] y Bluetooth.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dispositivos Android ==&lt;br /&gt;
De momento, el Sistema Operativo Android sigue en proceso de fabricación, aunque ya se han lanzado algunos terminales que funcionan bajo esta plataforma. &lt;br /&gt;
El primer modelo lanzado al mercado bajo esta plataforma fue el xxx[[HTC]] Dreamxx, comercializado en [[EEUU]] y [[Reino Unido]] bajo la marca [[T-Mobile]] G1. Aunque se puede disponer de él, a través de un contrato con la operadora [[Movistar]].&lt;br /&gt;
&lt;br /&gt;
Ahora estamos pendientes de otros modelos como el [[HTC Magic]], [[HTC Hero]] o [[Asus]] Eee phone, siendo el primero, comercializado por la operadora Vodafone en este mismo mes de Abril.&lt;br /&gt;
&lt;br /&gt;
==Referencias==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fuentes==&lt;br /&gt;
* [http://www.android.com Sitio Oficial de Android] &lt;br /&gt;
* [http://www.configurarequipos.com/doc1107.html Que es Android: Características y Aplicaciones]. Artículo de Angel Vilchez publicado el 2 de abril de 2009. &lt;br /&gt;
&lt;br /&gt;
[[Category:Sistemas_operativos_libres]][[Category:Ciencias_informáticas]][[Category:Sistemas_operativos]]&lt;/div&gt;</summary>
		<author><name>Cristuline</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Android&amp;diff=3406059</id>
		<title>Android</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Android&amp;diff=3406059"/>
		<updated>2019-06-10T10:00:39Z</updated>

		<summary type="html">&lt;p&gt;Cristuline: /* Runtime de Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Sistema_operativo&lt;br /&gt;
|nombre=Android&lt;br /&gt;
|familia=&lt;br /&gt;
|logo=Android-Logo.png&lt;br /&gt;
|captura=Sony-Xperia-Tablet-Android.jpg&lt;br /&gt;
|pie=[[Tablet PC|Tablet]] producida por [[Sony]] con el SO Android.&lt;br /&gt;
|desarrollador=[[Google]]&lt;br /&gt;
|web=[http://www.android.com/ Android Web Oficial] (en inglés)&lt;br /&gt;
|plataformas=&lt;br /&gt;
|anterior=&lt;br /&gt;
|lanzamiento=[[2005]]&lt;br /&gt;
|núcleo=[[Linux]]&lt;br /&gt;
|actualización=&lt;br /&gt;
|licencia= [[Apache]] 2.0 y [[GNU]]/[[GPL]] 2&lt;br /&gt;
|desarrollo=&lt;br /&gt;
|interfaz=&lt;br /&gt;
|idiomas=Multilingüe&lt;br /&gt;
|etiq_cubadebate = android&lt;br /&gt;
}}&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
'''Android'''. Es un [[Sistema operativo|Sistema Operativo]] además de una plataforma de [[Software|Software]] basada en el núcleo de [[Linux|Linux]]. Diseñada en un principio para dispositivos móviles. Android permite controlar dispositivos por medio de bibliotecas desarrolladas o adaptadas por [[Google|Google]] mediante el lenguaje de programación [[Java|Java]]. &lt;br /&gt;
==Historia==&lt;br /&gt;
Fue desarrollado por Android Inc., empresa que en 2005 fue comprada por Google, aunque no fue hasta 2008 cuando se popularizó, gracias a la unión al proyecto de Open Handset Alliance, un consorcio formado por 48 empresas de desarrollo [[hardware]], [[software]] y telecomunicaciones, las cuales llegaron a un acuerdo para promocionar los estándares de códigos abiertos para dispositivos móviles.&lt;br /&gt;
&lt;br /&gt;
Google sin embargo, ha sido quien ha publicado la mayoría del código fuente de Android bajo la licencia de [[Apache Servidor Web|Software Apache]], una licencia de [[software libre]] y de código abierto a cualquier desarrollador. &lt;br /&gt;
&lt;br /&gt;
Dado que Android está basado en el núcleo de Linux, tiene acceso a sus recursos, pudiendo gestionarlo, gracias a que se encuentra en una capa por encima del Kernel, accediendo así a recursos como los controladores de pantalla, cámara, memoria flash…&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema de capas de Android|thumb|left|capas_android.jpg16.0kb|]]&lt;br /&gt;
&lt;br /&gt;
En la imagen se distinguen claramente cada una de las capas: la que forma parte del propio Kernel de Linux, donde Android puede acceder a diferentes controladores, las librerías creadas para el desarrollo de aplicaciones Android, la siguiente capa que organiza los diferentes administradores de recursos, y por último, la capa de las aplicaciones a las que tiene acceso.&lt;br /&gt;
&lt;br /&gt;
== Características  ==&lt;br /&gt;
Android es una plataforma de código abierto. Esto quiere decir, que  cualquier desarrollador puede crear y desarrollar aplicaciones escritas  con lenguaje [[Lenguaje de Programación C|C]] u otros lenguajes y compilarlas a código nativo de  [[ARM|ARM]] (API de Android).Una parte importante al entrar al mundo Android es [[Diccionario de Android|conocer que significa cada uno de los terminos]] o palabras que se usan&lt;br /&gt;
&lt;br /&gt;
* [[Framework|Framework]] de aplicaciones: permite el reemplazo y la reutilización de los componentes. &lt;br /&gt;
* Navegador integrado: basado en el motor open Source Webkit. &lt;br /&gt;
* [[SQlite|SQlite]]: base de datos para almacenamiento estructurado que se integra directamente con las aplicaciones. &lt;br /&gt;
* [[Multimedia|Multimedia]]: Soporte para medios con formatos comunes de audio, video e imágenes planas ([[Moving Picture Experts Group-4 (MPEG-4)|MPEG4]], [[H.264]], [[MP3]], [[AAC]], [[AMR]], [[JPG]], [[PNG]], [[GIF]]). &lt;br /&gt;
* [[Máquina virtual]] Dalvik: Base de llamadas de instancias muy similar a Java. &lt;br /&gt;
* [[Telefonía]] [[GSM]]: dependiente del terminal. &lt;br /&gt;
* [[Bluetooth|Bluetooth]], EDGE, 3g y Wifi: dependiente del terminal. &lt;br /&gt;
* [[Cámara Fotográfica|Cámara]], [[GPS]], [[brújula]] y acelerómetro: Dependiente del terminal. &lt;br /&gt;
* [[Pantalla tactil]].&lt;br /&gt;
&lt;br /&gt;
== Arquitectura de Android  ==&lt;br /&gt;
La arquitectura interna de la plataforma Android, está básicamente formada por 4 componentes: &lt;br /&gt;
===Aplicaciones===&lt;br /&gt;
Todas las aplicaciones creadas con la plataforma Android, incluirán como base un cliente de [[email]] ([[correo electrónico]]), calendario, programa de [[SMS]], mapas, [[navegador]], contactos, y algunos otros servicios mínimos. Todas ellas escritas en el lenguaje de programación [[Java]]. Ejemplo de ello [[Alerta flash]].&lt;br /&gt;
&lt;br /&gt;
===Framework de Aplicaciones===&lt;br /&gt;
Todos los desarrolladores de aplicaciones Android, tienen acceso total al [[código fuente]] usado en las aplicaciones base. Esto ha sido diseñado de esta forma, para que no se generen cientos de componentes de aplicaciones distintas, que respondan a la misma acción, dando la posibilidad de que los programas sean modificados o reemplazados por cualquier usuario sin tener que empezar a programar sus aplicaciones desde el principio.&lt;br /&gt;
&lt;br /&gt;
===Librerías===&lt;br /&gt;
Android incluye en su base de datos un set de librerías [[C]]/[[Lenguaje de programación C++|C++]] , que son expuestas a todos los desarrolladores a través del framework de las aplicaciones [[Android System C library]], librerías de medios, librerías de [[gráficos]], [[Animación 3D|3D]], [[SQlite]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime de Android===&lt;br /&gt;
Android incorpora un set de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. La [[Máquina Virtual]] está basada en registros, y corre clases compiladas por el compilador de Java que anteriormente han sido transformadas al [[formato]] .dex (Dalvik Executable) por la [[herramienta]] ''dx''. &lt;br /&gt;
&lt;br /&gt;
El uso de Dalvik fue utilizado hasta la versión 4.4.3 de Android. A partir de la versión 5 de Android (se introdujo en la 4.4), se utiliza ART (Android Runtime) como entorno de ejecución, que compila durante la instalación de una aplicación, el Java bytecode.&lt;br /&gt;
&lt;br /&gt;
==Versiones==&lt;br /&gt;
=== Versiones finales ===&lt;br /&gt;
Las versiones de Android finales disponibles en los terminales, comenzaron con un número (Android 1, 1.1), pero desde abril de 2009, las versiones de Android han sido desarrolladas bajo un nombre en clave y sus nombres siguen un orden alfabético:Apple Pie, Banana Bread, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat, Lollipop, Marshmallow, Nougat, Oreo y Pie.&lt;br /&gt;
Por otra parte existe el número de API (Application Programming Interface), que corresponde a las librerías o bibliotecas de programación correspondiente a las diferentes versiones (o actualizaciones) de Android.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
! Nombre código&lt;br /&gt;
! Número de versión &lt;br /&gt;
! Fecha de lanzamiento&lt;br /&gt;
! Nivel de API&lt;br /&gt;
|-&lt;br /&gt;
| [[Android 1.0 (API 1)|Apple Pie]]|| 1.0 || [[23 de septiembre]] de [[2008]] || 1&lt;br /&gt;
|-&lt;br /&gt;
| [[Android 1.1 (API 2)|Banana Bread]]|| 1.1 || [[9 de febrero]] de [[2009]] || 2&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Cupcake|Cupcake]] || 1.5 || [[25 de abril]] de [[2009]] || 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Donut]]|| 1.6 || [[15 de septiembre]]  de [[2009]] || 4&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Eclair|Eclair]] || 2.0 &amp;amp;ndash; 2.1 || [[26 de octubre]] de [[2009]] || 5 – 7&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Froyo|Froyo]] || 2.2 &amp;amp;ndash; 2.2.3 || [[20 de mayo]] de [[2010]] || 8&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Gingerbread|Gingerbread]] || 2.3 &amp;amp;ndash; 2.3.7 || [[6 de diciembre]] de [[2010]] || 9 – 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Honeycomb|Honeycomb]]{{refn|Honeycomb es la primera versión con soporte a tablets, pero solo puede usarse en tabletas y el código fuente no ha sido lanzado. Todas las versiones siguientes de Android soportan tanto celulares como tabletas.}} || 3.0 &amp;amp;ndash; 3.2.6 || [[22 de febrero]] de [[2011]] || 11 – 13&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Ice Cream Sandwich|Ice Cream Sandwich]] || 4.0 &amp;amp;ndash; 4.0.5 || [[18 de octubre]] de [[2011]] || 14 – 15&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Jelly Bean|Jelly Bean]] || 4.1 &amp;amp;ndash; 4.3.1 || [[9 de julio]] de [[2012]] || 16 – 18&lt;br /&gt;
|-&lt;br /&gt;
| [[Android KitKat|KitKat]] || 4.4 &amp;amp;ndash; 4.4.4 || [[31 de octubre]] de [[2013]] || 19 – 20&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Lollipop|Lollipop]] || 5.0 &amp;amp;ndash; 5.1.1 || [[12 de noviembre]] de [[2014]] || 21 – 22&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Marshmallow|Marshmallow]]|| 6.0 &amp;amp;ndash; 6.0.1 || [[5 de octubre]] de [[2015]] || 23&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Nougat|Nougat]] || 7.0 &amp;amp;ndash; 7.1.2 || [[15 de junio]] de [[2016]] || 24 – 25 &lt;br /&gt;
|-&lt;br /&gt;
| [[Android Oreo|Oreo]] || 8.0 &amp;amp;ndash; 8.1 || [[21 de agosto]] de [[2017]] || 26 – 27&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Pie|Pie]] || 9.0 || [[6 de agosto]] de [[2018]] || 28&lt;br /&gt;
|-&lt;br /&gt;
|[[Android Q|Q]]&lt;br /&gt;
|10.0&lt;br /&gt;
|agosto del [[2019]]&lt;br /&gt;
|29&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Android Beta===&lt;br /&gt;
La versión beta de Android fue lanzada el 5 de noviembre de 2007,&amp;lt;ref&amp;gt;[http://googlesystem.blogspot.com/2007/11/google-launches-android-open-mobile.html «Google Launches Android, an Open Mobile Platform». Google Operating System ([[5 de noviembre]] de [[2007]]).]&amp;lt;/ref&amp;gt; mientras el Software development kit (SDK) fue lanzado el [[12 de noviembre]] de [[2007]].  Las versiones públicas Beta del SDK fueron lanzados en el siguiente orden:&lt;br /&gt;
* [[16 de noviembre]] de 2007: m3-rc22a&lt;br /&gt;
* [[14 de diciembre]] de 2007: m3-rc37a&lt;br /&gt;
* [[13 de febrero]] de [[2008]]: m5-rc14&lt;br /&gt;
* [[3 de marzo]] de 2008: m5-rc15&lt;br /&gt;
* [[18 de agosto]] de 2008: 0.9&lt;br /&gt;
* [[23 de septiembre]] de 2008: 1.0-r11&lt;br /&gt;
&lt;br /&gt;
===Android 1.0 Apple Pie===&lt;br /&gt;
Android 1.0 Apple Pie (Tarta de manzana), la primera versión comercial del software, fue lanzado el 23 septiembre de 2008. El primer dispositivo Android, el HTC Dream, incorporó las siguientes características de Android 1.0:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:75%; font-size:90%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; width:5em; text-align:center;&amp;quot;|Versión&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; width:10em; text-align:center;&amp;quot;|Fecha lanzamiento&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; text-align:center;&amp;quot;|Características&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| 1.0&lt;br /&gt;
| [[23 de septiembre]] de [[2008]]&lt;br /&gt;
|&lt;br /&gt;
* [[Android Market]] Programa con un mercado para la descarga y actualización de aplicaciones.&lt;br /&gt;
* [[Navegador Web]] para visualizar páginas webs en full [[HTML]] y [[XHTML]] &amp;amp;ndash; múltiples páginas mostradas como ventanas (&amp;quot;tarjetas&amp;quot;).&lt;br /&gt;
* Soporte Cámara &amp;amp;ndash; sin embargo esta versión carece de la opción de cambiar la resolución de la cámara, balance de blancos, calidad, etc.&lt;br /&gt;
* Carpetas permiten la agrupación de un número de iconos de aplicaciones dentro de una simple carpeta en la pantalla de inicio.&lt;br /&gt;
* Acceso a servidores de correo electrónico por web, soporte [[POP3]], [[IMAP4]] y [[SMTP]].&lt;br /&gt;
* Sincronización de [[Gmail]] con la aplicación de Gmail.&lt;br /&gt;
* Sincronización de [[Google Contacts]] aplicación de personas.&lt;br /&gt;
* Sincronización de [[Google Calendar]] con la aplicación de calendario.&lt;br /&gt;
* [[Google Maps]] con [[Google Latitude|Latitude]] y [[Google Street View|Street View]] para ver mapas e imágenes por satélite, así como para encontrar negocios locales y obtener direcciones de conducción usando [[GPS]].&lt;br /&gt;
* [[Google Sync]], permite la administración de la sincronización OTA de Gmail, Personas, y Calendario&lt;br /&gt;
* [[Google Search]], permite a los usuarios buscar en internet, en aplicaciones del teléfono móvil, en contactos, en calendario, etc.&lt;br /&gt;
* Mensajería instantánea [[Google Talk]].&lt;br /&gt;
* [[Mensajería instantánea]], [[Servicio de mensajes cortos|mensajes de texto]] y MMS.&lt;br /&gt;
* [[Reproductor de medios]], habilitada administración, importación, y reproducción de archivos multimedia &amp;amp;ndash; sin embargo, esta versión carece de soporte de vídeo y estéreo por [[Bluetooth]].&lt;br /&gt;
* Las notificaciones aparecen en la barra de estado, con opciones para configurar alertas por timbre, [[LED]] o vibración.&lt;br /&gt;
* Marcación por voz permite marcar y llamar sin escribir nombre o número.&lt;br /&gt;
* Fondo de escritorio permite al [[usuario]] configurar una [[imagen]] de fondo o una foto detrás de los iconos y widgets de la pantalla de inicio.&lt;br /&gt;
* Reproductor de [[vídeo]] [[YouTube]].&lt;br /&gt;
* Otras aplicaciones incluyen: Alarma, Calculadora, Marcación (teléfono), Pantalla de inicio (launcher), Imágenes (Galería) y ajustes.&lt;br /&gt;
* Soporte para [[Wi-Fi]] y Bluetooth.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dispositivos Android ==&lt;br /&gt;
De momento, el Sistema Operativo Android sigue en proceso de fabricación, aunque ya se han lanzado algunos terminales que funcionan bajo esta plataforma. &lt;br /&gt;
El primer modelo lanzado al mercado bajo esta plataforma fue el xxx[[HTC]] Dreamxx, comercializado en [[EEUU]] y [[Reino Unido]] bajo la marca [[T-Mobile]] G1. Aunque se puede disponer de él, a través de un contrato con la operadora [[Movistar]].&lt;br /&gt;
&lt;br /&gt;
Ahora estamos pendientes de otros modelos como el [[HTC Magic]], [[HTC Hero]] o [[Asus]] Eee phone, siendo el primero, comercializado por la operadora Vodafone en este mismo mes de Abril.&lt;br /&gt;
&lt;br /&gt;
==Referencias==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fuentes==&lt;br /&gt;
* [http://www.android.com Sitio Oficial de Android] &lt;br /&gt;
* [http://www.configurarequipos.com/doc1107.html Que es Android: Características y Aplicaciones]. Artículo de Angel Vilchez publicado el 2 de abril de 2009. &lt;br /&gt;
&lt;br /&gt;
[[Category:Sistemas_operativos_libres]][[Category:Ciencias_informáticas]][[Category:Sistemas_operativos]]&lt;/div&gt;</summary>
		<author><name>Cristuline</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Android&amp;diff=3406058</id>
		<title>Android</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Android&amp;diff=3406058"/>
		<updated>2019-06-10T10:00:24Z</updated>

		<summary type="html">&lt;p&gt;Cristuline: /* Runtime de Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Sistema_operativo&lt;br /&gt;
|nombre=Android&lt;br /&gt;
|familia=&lt;br /&gt;
|logo=Android-Logo.png&lt;br /&gt;
|captura=Sony-Xperia-Tablet-Android.jpg&lt;br /&gt;
|pie=[[Tablet PC|Tablet]] producida por [[Sony]] con el SO Android.&lt;br /&gt;
|desarrollador=[[Google]]&lt;br /&gt;
|web=[http://www.android.com/ Android Web Oficial] (en inglés)&lt;br /&gt;
|plataformas=&lt;br /&gt;
|anterior=&lt;br /&gt;
|lanzamiento=[[2005]]&lt;br /&gt;
|núcleo=[[Linux]]&lt;br /&gt;
|actualización=&lt;br /&gt;
|licencia= [[Apache]] 2.0 y [[GNU]]/[[GPL]] 2&lt;br /&gt;
|desarrollo=&lt;br /&gt;
|interfaz=&lt;br /&gt;
|idiomas=Multilingüe&lt;br /&gt;
|etiq_cubadebate = android&lt;br /&gt;
}}&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
'''Android'''. Es un [[Sistema operativo|Sistema Operativo]] además de una plataforma de [[Software|Software]] basada en el núcleo de [[Linux|Linux]]. Diseñada en un principio para dispositivos móviles. Android permite controlar dispositivos por medio de bibliotecas desarrolladas o adaptadas por [[Google|Google]] mediante el lenguaje de programación [[Java|Java]]. &lt;br /&gt;
==Historia==&lt;br /&gt;
Fue desarrollado por Android Inc., empresa que en 2005 fue comprada por Google, aunque no fue hasta 2008 cuando se popularizó, gracias a la unión al proyecto de Open Handset Alliance, un consorcio formado por 48 empresas de desarrollo [[hardware]], [[software]] y telecomunicaciones, las cuales llegaron a un acuerdo para promocionar los estándares de códigos abiertos para dispositivos móviles.&lt;br /&gt;
&lt;br /&gt;
Google sin embargo, ha sido quien ha publicado la mayoría del código fuente de Android bajo la licencia de [[Apache Servidor Web|Software Apache]], una licencia de [[software libre]] y de código abierto a cualquier desarrollador. &lt;br /&gt;
&lt;br /&gt;
Dado que Android está basado en el núcleo de Linux, tiene acceso a sus recursos, pudiendo gestionarlo, gracias a que se encuentra en una capa por encima del Kernel, accediendo así a recursos como los controladores de pantalla, cámara, memoria flash…&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema de capas de Android|thumb|left|capas_android.jpg16.0kb|]]&lt;br /&gt;
&lt;br /&gt;
En la imagen se distinguen claramente cada una de las capas: la que forma parte del propio Kernel de Linux, donde Android puede acceder a diferentes controladores, las librerías creadas para el desarrollo de aplicaciones Android, la siguiente capa que organiza los diferentes administradores de recursos, y por último, la capa de las aplicaciones a las que tiene acceso.&lt;br /&gt;
&lt;br /&gt;
== Características  ==&lt;br /&gt;
Android es una plataforma de código abierto. Esto quiere decir, que  cualquier desarrollador puede crear y desarrollar aplicaciones escritas  con lenguaje [[Lenguaje de Programación C|C]] u otros lenguajes y compilarlas a código nativo de  [[ARM|ARM]] (API de Android).Una parte importante al entrar al mundo Android es [[Diccionario de Android|conocer que significa cada uno de los terminos]] o palabras que se usan&lt;br /&gt;
&lt;br /&gt;
* [[Framework|Framework]] de aplicaciones: permite el reemplazo y la reutilización de los componentes. &lt;br /&gt;
* Navegador integrado: basado en el motor open Source Webkit. &lt;br /&gt;
* [[SQlite|SQlite]]: base de datos para almacenamiento estructurado que se integra directamente con las aplicaciones. &lt;br /&gt;
* [[Multimedia|Multimedia]]: Soporte para medios con formatos comunes de audio, video e imágenes planas ([[Moving Picture Experts Group-4 (MPEG-4)|MPEG4]], [[H.264]], [[MP3]], [[AAC]], [[AMR]], [[JPG]], [[PNG]], [[GIF]]). &lt;br /&gt;
* [[Máquina virtual]] Dalvik: Base de llamadas de instancias muy similar a Java. &lt;br /&gt;
* [[Telefonía]] [[GSM]]: dependiente del terminal. &lt;br /&gt;
* [[Bluetooth|Bluetooth]], EDGE, 3g y Wifi: dependiente del terminal. &lt;br /&gt;
* [[Cámara Fotográfica|Cámara]], [[GPS]], [[brújula]] y acelerómetro: Dependiente del terminal. &lt;br /&gt;
* [[Pantalla tactil]].&lt;br /&gt;
&lt;br /&gt;
== Arquitectura de Android  ==&lt;br /&gt;
La arquitectura interna de la plataforma Android, está básicamente formada por 4 componentes: &lt;br /&gt;
===Aplicaciones===&lt;br /&gt;
Todas las aplicaciones creadas con la plataforma Android, incluirán como base un cliente de [[email]] ([[correo electrónico]]), calendario, programa de [[SMS]], mapas, [[navegador]], contactos, y algunos otros servicios mínimos. Todas ellas escritas en el lenguaje de programación [[Java]]. Ejemplo de ello [[Alerta flash]].&lt;br /&gt;
&lt;br /&gt;
===Framework de Aplicaciones===&lt;br /&gt;
Todos los desarrolladores de aplicaciones Android, tienen acceso total al [[código fuente]] usado en las aplicaciones base. Esto ha sido diseñado de esta forma, para que no se generen cientos de componentes de aplicaciones distintas, que respondan a la misma acción, dando la posibilidad de que los programas sean modificados o reemplazados por cualquier usuario sin tener que empezar a programar sus aplicaciones desde el principio.&lt;br /&gt;
&lt;br /&gt;
===Librerías===&lt;br /&gt;
Android incluye en su base de datos un set de librerías [[C]]/[[Lenguaje de programación C++|C++]] , que son expuestas a todos los desarrolladores a través del framework de las aplicaciones [[Android System C library]], librerías de medios, librerías de [[gráficos]], [[Animación 3D|3D]], [[SQlite]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime de Android===&lt;br /&gt;
Android incorpora un set de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. La [[Máquina Virtual]] está basada en registros, y corre clases compiladas por el compilador de Java que anteriormente han sido transformadas al [[formato]] .dex (Dalvik Executable) por la [[herramienta]] ''dx''. El uso de Dalvik fue utilizado hasta la versión 4.4.3 de Android. A partir de la versión 5 de Android (se introdujo en la 4.4), se utiliza ART (Android Runtime) como entorno de ejecución, que compila durante la instalación de una aplicación, el Java bytecode.&lt;br /&gt;
&lt;br /&gt;
==Versiones==&lt;br /&gt;
=== Versiones finales ===&lt;br /&gt;
Las versiones de Android finales disponibles en los terminales, comenzaron con un número (Android 1, 1.1), pero desde abril de 2009, las versiones de Android han sido desarrolladas bajo un nombre en clave y sus nombres siguen un orden alfabético:Apple Pie, Banana Bread, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat, Lollipop, Marshmallow, Nougat, Oreo y Pie.&lt;br /&gt;
Por otra parte existe el número de API (Application Programming Interface), que corresponde a las librerías o bibliotecas de programación correspondiente a las diferentes versiones (o actualizaciones) de Android.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
! Nombre código&lt;br /&gt;
! Número de versión &lt;br /&gt;
! Fecha de lanzamiento&lt;br /&gt;
! Nivel de API&lt;br /&gt;
|-&lt;br /&gt;
| [[Android 1.0 (API 1)|Apple Pie]]|| 1.0 || [[23 de septiembre]] de [[2008]] || 1&lt;br /&gt;
|-&lt;br /&gt;
| [[Android 1.1 (API 2)|Banana Bread]]|| 1.1 || [[9 de febrero]] de [[2009]] || 2&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Cupcake|Cupcake]] || 1.5 || [[25 de abril]] de [[2009]] || 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Donut]]|| 1.6 || [[15 de septiembre]]  de [[2009]] || 4&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Eclair|Eclair]] || 2.0 &amp;amp;ndash; 2.1 || [[26 de octubre]] de [[2009]] || 5 – 7&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Froyo|Froyo]] || 2.2 &amp;amp;ndash; 2.2.3 || [[20 de mayo]] de [[2010]] || 8&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Gingerbread|Gingerbread]] || 2.3 &amp;amp;ndash; 2.3.7 || [[6 de diciembre]] de [[2010]] || 9 – 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Honeycomb|Honeycomb]]{{refn|Honeycomb es la primera versión con soporte a tablets, pero solo puede usarse en tabletas y el código fuente no ha sido lanzado. Todas las versiones siguientes de Android soportan tanto celulares como tabletas.}} || 3.0 &amp;amp;ndash; 3.2.6 || [[22 de febrero]] de [[2011]] || 11 – 13&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Ice Cream Sandwich|Ice Cream Sandwich]] || 4.0 &amp;amp;ndash; 4.0.5 || [[18 de octubre]] de [[2011]] || 14 – 15&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Jelly Bean|Jelly Bean]] || 4.1 &amp;amp;ndash; 4.3.1 || [[9 de julio]] de [[2012]] || 16 – 18&lt;br /&gt;
|-&lt;br /&gt;
| [[Android KitKat|KitKat]] || 4.4 &amp;amp;ndash; 4.4.4 || [[31 de octubre]] de [[2013]] || 19 – 20&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Lollipop|Lollipop]] || 5.0 &amp;amp;ndash; 5.1.1 || [[12 de noviembre]] de [[2014]] || 21 – 22&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Marshmallow|Marshmallow]]|| 6.0 &amp;amp;ndash; 6.0.1 || [[5 de octubre]] de [[2015]] || 23&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Nougat|Nougat]] || 7.0 &amp;amp;ndash; 7.1.2 || [[15 de junio]] de [[2016]] || 24 – 25 &lt;br /&gt;
|-&lt;br /&gt;
| [[Android Oreo|Oreo]] || 8.0 &amp;amp;ndash; 8.1 || [[21 de agosto]] de [[2017]] || 26 – 27&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Pie|Pie]] || 9.0 || [[6 de agosto]] de [[2018]] || 28&lt;br /&gt;
|-&lt;br /&gt;
|[[Android Q|Q]]&lt;br /&gt;
|10.0&lt;br /&gt;
|agosto del [[2019]]&lt;br /&gt;
|29&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Android Beta===&lt;br /&gt;
La versión beta de Android fue lanzada el 5 de noviembre de 2007,&amp;lt;ref&amp;gt;[http://googlesystem.blogspot.com/2007/11/google-launches-android-open-mobile.html «Google Launches Android, an Open Mobile Platform». Google Operating System ([[5 de noviembre]] de [[2007]]).]&amp;lt;/ref&amp;gt; mientras el Software development kit (SDK) fue lanzado el [[12 de noviembre]] de [[2007]].  Las versiones públicas Beta del SDK fueron lanzados en el siguiente orden:&lt;br /&gt;
* [[16 de noviembre]] de 2007: m3-rc22a&lt;br /&gt;
* [[14 de diciembre]] de 2007: m3-rc37a&lt;br /&gt;
* [[13 de febrero]] de [[2008]]: m5-rc14&lt;br /&gt;
* [[3 de marzo]] de 2008: m5-rc15&lt;br /&gt;
* [[18 de agosto]] de 2008: 0.9&lt;br /&gt;
* [[23 de septiembre]] de 2008: 1.0-r11&lt;br /&gt;
&lt;br /&gt;
===Android 1.0 Apple Pie===&lt;br /&gt;
Android 1.0 Apple Pie (Tarta de manzana), la primera versión comercial del software, fue lanzado el 23 septiembre de 2008. El primer dispositivo Android, el HTC Dream, incorporó las siguientes características de Android 1.0:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:75%; font-size:90%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; width:5em; text-align:center;&amp;quot;|Versión&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; width:10em; text-align:center;&amp;quot;|Fecha lanzamiento&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; text-align:center;&amp;quot;|Características&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| 1.0&lt;br /&gt;
| [[23 de septiembre]] de [[2008]]&lt;br /&gt;
|&lt;br /&gt;
* [[Android Market]] Programa con un mercado para la descarga y actualización de aplicaciones.&lt;br /&gt;
* [[Navegador Web]] para visualizar páginas webs en full [[HTML]] y [[XHTML]] &amp;amp;ndash; múltiples páginas mostradas como ventanas (&amp;quot;tarjetas&amp;quot;).&lt;br /&gt;
* Soporte Cámara &amp;amp;ndash; sin embargo esta versión carece de la opción de cambiar la resolución de la cámara, balance de blancos, calidad, etc.&lt;br /&gt;
* Carpetas permiten la agrupación de un número de iconos de aplicaciones dentro de una simple carpeta en la pantalla de inicio.&lt;br /&gt;
* Acceso a servidores de correo electrónico por web, soporte [[POP3]], [[IMAP4]] y [[SMTP]].&lt;br /&gt;
* Sincronización de [[Gmail]] con la aplicación de Gmail.&lt;br /&gt;
* Sincronización de [[Google Contacts]] aplicación de personas.&lt;br /&gt;
* Sincronización de [[Google Calendar]] con la aplicación de calendario.&lt;br /&gt;
* [[Google Maps]] con [[Google Latitude|Latitude]] y [[Google Street View|Street View]] para ver mapas e imágenes por satélite, así como para encontrar negocios locales y obtener direcciones de conducción usando [[GPS]].&lt;br /&gt;
* [[Google Sync]], permite la administración de la sincronización OTA de Gmail, Personas, y Calendario&lt;br /&gt;
* [[Google Search]], permite a los usuarios buscar en internet, en aplicaciones del teléfono móvil, en contactos, en calendario, etc.&lt;br /&gt;
* Mensajería instantánea [[Google Talk]].&lt;br /&gt;
* [[Mensajería instantánea]], [[Servicio de mensajes cortos|mensajes de texto]] y MMS.&lt;br /&gt;
* [[Reproductor de medios]], habilitada administración, importación, y reproducción de archivos multimedia &amp;amp;ndash; sin embargo, esta versión carece de soporte de vídeo y estéreo por [[Bluetooth]].&lt;br /&gt;
* Las notificaciones aparecen en la barra de estado, con opciones para configurar alertas por timbre, [[LED]] o vibración.&lt;br /&gt;
* Marcación por voz permite marcar y llamar sin escribir nombre o número.&lt;br /&gt;
* Fondo de escritorio permite al [[usuario]] configurar una [[imagen]] de fondo o una foto detrás de los iconos y widgets de la pantalla de inicio.&lt;br /&gt;
* Reproductor de [[vídeo]] [[YouTube]].&lt;br /&gt;
* Otras aplicaciones incluyen: Alarma, Calculadora, Marcación (teléfono), Pantalla de inicio (launcher), Imágenes (Galería) y ajustes.&lt;br /&gt;
* Soporte para [[Wi-Fi]] y Bluetooth.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dispositivos Android ==&lt;br /&gt;
De momento, el Sistema Operativo Android sigue en proceso de fabricación, aunque ya se han lanzado algunos terminales que funcionan bajo esta plataforma. &lt;br /&gt;
El primer modelo lanzado al mercado bajo esta plataforma fue el xxx[[HTC]] Dreamxx, comercializado en [[EEUU]] y [[Reino Unido]] bajo la marca [[T-Mobile]] G1. Aunque se puede disponer de él, a través de un contrato con la operadora [[Movistar]].&lt;br /&gt;
&lt;br /&gt;
Ahora estamos pendientes de otros modelos como el [[HTC Magic]], [[HTC Hero]] o [[Asus]] Eee phone, siendo el primero, comercializado por la operadora Vodafone en este mismo mes de Abril.&lt;br /&gt;
&lt;br /&gt;
==Referencias==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fuentes==&lt;br /&gt;
* [http://www.android.com Sitio Oficial de Android] &lt;br /&gt;
* [http://www.configurarequipos.com/doc1107.html Que es Android: Características y Aplicaciones]. Artículo de Angel Vilchez publicado el 2 de abril de 2009. &lt;br /&gt;
&lt;br /&gt;
[[Category:Sistemas_operativos_libres]][[Category:Ciencias_informáticas]][[Category:Sistemas_operativos]]&lt;/div&gt;</summary>
		<author><name>Cristuline</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Android&amp;diff=3406053</id>
		<title>Android</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Android&amp;diff=3406053"/>
		<updated>2019-06-10T09:55:00Z</updated>

		<summary type="html">&lt;p&gt;Cristuline: /* Versiones finales */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Sistema_operativo&lt;br /&gt;
|nombre=Android&lt;br /&gt;
|familia=&lt;br /&gt;
|logo=Android-Logo.png&lt;br /&gt;
|captura=Sony-Xperia-Tablet-Android.jpg&lt;br /&gt;
|pie=[[Tablet PC|Tablet]] producida por [[Sony]] con el SO Android.&lt;br /&gt;
|desarrollador=[[Google]]&lt;br /&gt;
|web=[http://www.android.com/ Android Web Oficial] (en inglés)&lt;br /&gt;
|plataformas=&lt;br /&gt;
|anterior=&lt;br /&gt;
|lanzamiento=[[2005]]&lt;br /&gt;
|núcleo=[[Linux]]&lt;br /&gt;
|actualización=&lt;br /&gt;
|licencia= [[Apache]] 2.0 y [[GNU]]/[[GPL]] 2&lt;br /&gt;
|desarrollo=&lt;br /&gt;
|interfaz=&lt;br /&gt;
|idiomas=Multilingüe&lt;br /&gt;
|etiq_cubadebate = android&lt;br /&gt;
}}&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
'''Android'''. Es un [[Sistema operativo|Sistema Operativo]] además de una plataforma de [[Software|Software]] basada en el núcleo de [[Linux|Linux]]. Diseñada en un principio para dispositivos móviles. Android permite controlar dispositivos por medio de bibliotecas desarrolladas o adaptadas por [[Google|Google]] mediante el lenguaje de programación [[Java|Java]]. &lt;br /&gt;
==Historia==&lt;br /&gt;
Fue desarrollado por Android Inc., empresa que en 2005 fue comprada por Google, aunque no fue hasta 2008 cuando se popularizó, gracias a la unión al proyecto de Open Handset Alliance, un consorcio formado por 48 empresas de desarrollo [[hardware]], [[software]] y telecomunicaciones, las cuales llegaron a un acuerdo para promocionar los estándares de códigos abiertos para dispositivos móviles.&lt;br /&gt;
&lt;br /&gt;
Google sin embargo, ha sido quien ha publicado la mayoría del código fuente de Android bajo la licencia de [[Apache Servidor Web|Software Apache]], una licencia de [[software libre]] y de código abierto a cualquier desarrollador. &lt;br /&gt;
&lt;br /&gt;
Dado que Android está basado en el núcleo de Linux, tiene acceso a sus recursos, pudiendo gestionarlo, gracias a que se encuentra en una capa por encima del Kernel, accediendo así a recursos como los controladores de pantalla, cámara, memoria flash…&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema de capas de Android|thumb|left|capas_android.jpg16.0kb|]]&lt;br /&gt;
&lt;br /&gt;
En la imagen se distinguen claramente cada una de las capas: la que forma parte del propio Kernel de Linux, donde Android puede acceder a diferentes controladores, las librerías creadas para el desarrollo de aplicaciones Android, la siguiente capa que organiza los diferentes administradores de recursos, y por último, la capa de las aplicaciones a las que tiene acceso.&lt;br /&gt;
&lt;br /&gt;
== Características  ==&lt;br /&gt;
Android es una plataforma de código abierto. Esto quiere decir, que  cualquier desarrollador puede crear y desarrollar aplicaciones escritas  con lenguaje [[Lenguaje de Programación C|C]] u otros lenguajes y compilarlas a código nativo de  [[ARM|ARM]] (API de Android).Una parte importante al entrar al mundo Android es [[Diccionario de Android|conocer que significa cada uno de los terminos]] o palabras que se usan&lt;br /&gt;
&lt;br /&gt;
* [[Framework|Framework]] de aplicaciones: permite el reemplazo y la reutilización de los componentes. &lt;br /&gt;
* Navegador integrado: basado en el motor open Source Webkit. &lt;br /&gt;
* [[SQlite|SQlite]]: base de datos para almacenamiento estructurado que se integra directamente con las aplicaciones. &lt;br /&gt;
* [[Multimedia|Multimedia]]: Soporte para medios con formatos comunes de audio, video e imágenes planas ([[Moving Picture Experts Group-4 (MPEG-4)|MPEG4]], [[H.264]], [[MP3]], [[AAC]], [[AMR]], [[JPG]], [[PNG]], [[GIF]]). &lt;br /&gt;
* [[Máquina virtual]] Dalvik: Base de llamadas de instancias muy similar a Java. &lt;br /&gt;
* [[Telefonía]] [[GSM]]: dependiente del terminal. &lt;br /&gt;
* [[Bluetooth|Bluetooth]], EDGE, 3g y Wifi: dependiente del terminal. &lt;br /&gt;
* [[Cámara Fotográfica|Cámara]], [[GPS]], [[brújula]] y acelerómetro: Dependiente del terminal. &lt;br /&gt;
* [[Pantalla tactil]].&lt;br /&gt;
&lt;br /&gt;
== Arquitectura de Android  ==&lt;br /&gt;
La arquitectura interna de la plataforma Android, está básicamente formada por 4 componentes: &lt;br /&gt;
===Aplicaciones===&lt;br /&gt;
Todas las aplicaciones creadas con la plataforma Android, incluirán como base un cliente de [[email]] ([[correo electrónico]]), calendario, programa de [[SMS]], mapas, [[navegador]], contactos, y algunos otros servicios mínimos. Todas ellas escritas en el lenguaje de programación [[Java]]. Ejemplo de ello [[Alerta flash]].&lt;br /&gt;
&lt;br /&gt;
===Framework de Aplicaciones===&lt;br /&gt;
Todos los desarrolladores de aplicaciones Android, tienen acceso total al [[código fuente]] usado en las aplicaciones base. Esto ha sido diseñado de esta forma, para que no se generen cientos de componentes de aplicaciones distintas, que respondan a la misma acción, dando la posibilidad de que los programas sean modificados o reemplazados por cualquier usuario sin tener que empezar a programar sus aplicaciones desde el principio.&lt;br /&gt;
&lt;br /&gt;
===Librerías===&lt;br /&gt;
Android incluye en su base de datos un set de librerías [[C]]/[[Lenguaje de programación C++|C++]] , que son expuestas a todos los desarrolladores a través del framework de las aplicaciones [[Android System C library]], librerías de medios, librerías de [[gráficos]], [[Animación 3D|3D]], [[SQlite]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime de Android===&lt;br /&gt;
Android incorpora un set de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. La [[Máquina Virtual]] está basada en registros, y corre clases compiladas por el compilador de Java que anteriormente han sido transformadas al [[formato]] .dex (Dalvik Executable) por la [[herramienta]] ''dx''.&lt;br /&gt;
&lt;br /&gt;
==Versiones==&lt;br /&gt;
=== Versiones finales ===&lt;br /&gt;
Las versiones de Android finales disponibles en los terminales, comenzaron con un número (Android 1, 1.1), pero desde abril de 2009, las versiones de Android han sido desarrolladas bajo un nombre en clave y sus nombres siguen un orden alfabético:Apple Pie, Banana Bread, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat, Lollipop, Marshmallow, Nougat, Oreo y Pie.&lt;br /&gt;
Por otra parte existe el número de API (Application Programming Interface), que corresponde a las librerías o bibliotecas de programación correspondiente a las diferentes versiones (o actualizaciones) de Android.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
! Nombre código&lt;br /&gt;
! Número de versión &lt;br /&gt;
! Fecha de lanzamiento&lt;br /&gt;
! Nivel de API&lt;br /&gt;
|-&lt;br /&gt;
| [[Android 1.0 (API 1)|Apple Pie]]|| 1.0 || [[23 de septiembre]] de [[2008]] || 1&lt;br /&gt;
|-&lt;br /&gt;
| [[Android 1.1 (API 2)|Banana Bread]]|| 1.1 || [[9 de febrero]] de [[2009]] || 2&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Cupcake|Cupcake]] || 1.5 || [[25 de abril]] de [[2009]] || 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Donut]]|| 1.6 || [[15 de septiembre]]  de [[2009]] || 4&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Eclair|Eclair]] || 2.0 &amp;amp;ndash; 2.1 || [[26 de octubre]] de [[2009]] || 5 – 7&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Froyo|Froyo]] || 2.2 &amp;amp;ndash; 2.2.3 || [[20 de mayo]] de [[2010]] || 8&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Gingerbread|Gingerbread]] || 2.3 &amp;amp;ndash; 2.3.7 || [[6 de diciembre]] de [[2010]] || 9 – 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Honeycomb|Honeycomb]]{{refn|Honeycomb es la primera versión con soporte a tablets, pero solo puede usarse en tabletas y el código fuente no ha sido lanzado. Todas las versiones siguientes de Android soportan tanto celulares como tabletas.}} || 3.0 &amp;amp;ndash; 3.2.6 || [[22 de febrero]] de [[2011]] || 11 – 13&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Ice Cream Sandwich|Ice Cream Sandwich]] || 4.0 &amp;amp;ndash; 4.0.5 || [[18 de octubre]] de [[2011]] || 14 – 15&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Jelly Bean|Jelly Bean]] || 4.1 &amp;amp;ndash; 4.3.1 || [[9 de julio]] de [[2012]] || 16 – 18&lt;br /&gt;
|-&lt;br /&gt;
| [[Android KitKat|KitKat]] || 4.4 &amp;amp;ndash; 4.4.4 || [[31 de octubre]] de [[2013]] || 19 – 20&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Lollipop|Lollipop]] || 5.0 &amp;amp;ndash; 5.1.1 || [[12 de noviembre]] de [[2014]] || 21 – 22&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Marshmallow|Marshmallow]]|| 6.0 &amp;amp;ndash; 6.0.1 || [[5 de octubre]] de [[2015]] || 23&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Nougat|Nougat]] || 7.0 &amp;amp;ndash; 7.1.2 || [[15 de junio]] de [[2016]] || 24 – 25 &lt;br /&gt;
|-&lt;br /&gt;
| [[Android Oreo|Oreo]] || 8.0 &amp;amp;ndash; 8.1 || [[21 de agosto]] de [[2017]] || 26 – 27&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Pie|Pie]] || 9.0 || [[6 de agosto]] de [[2018]] || 28&lt;br /&gt;
|-&lt;br /&gt;
|[[Android Q|Q]]&lt;br /&gt;
|10.0&lt;br /&gt;
|agosto del [[2019]]&lt;br /&gt;
|29&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Android Beta===&lt;br /&gt;
La versión beta de Android fue lanzada el 5 de noviembre de 2007,&amp;lt;ref&amp;gt;[http://googlesystem.blogspot.com/2007/11/google-launches-android-open-mobile.html «Google Launches Android, an Open Mobile Platform». Google Operating System ([[5 de noviembre]] de [[2007]]).]&amp;lt;/ref&amp;gt; mientras el Software development kit (SDK) fue lanzado el [[12 de noviembre]] de [[2007]].  Las versiones públicas Beta del SDK fueron lanzados en el siguiente orden:&lt;br /&gt;
* [[16 de noviembre]] de 2007: m3-rc22a&lt;br /&gt;
* [[14 de diciembre]] de 2007: m3-rc37a&lt;br /&gt;
* [[13 de febrero]] de [[2008]]: m5-rc14&lt;br /&gt;
* [[3 de marzo]] de 2008: m5-rc15&lt;br /&gt;
* [[18 de agosto]] de 2008: 0.9&lt;br /&gt;
* [[23 de septiembre]] de 2008: 1.0-r11&lt;br /&gt;
&lt;br /&gt;
===Android 1.0 Apple Pie===&lt;br /&gt;
Android 1.0 Apple Pie (Tarta de manzana), la primera versión comercial del software, fue lanzado el 23 septiembre de 2008. El primer dispositivo Android, el HTC Dream, incorporó las siguientes características de Android 1.0:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:75%; font-size:90%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; width:5em; text-align:center;&amp;quot;|Versión&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; width:10em; text-align:center;&amp;quot;|Fecha lanzamiento&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; text-align:center;&amp;quot;|Características&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| 1.0&lt;br /&gt;
| [[23 de septiembre]] de [[2008]]&lt;br /&gt;
|&lt;br /&gt;
* [[Android Market]] Programa con un mercado para la descarga y actualización de aplicaciones.&lt;br /&gt;
* [[Navegador Web]] para visualizar páginas webs en full [[HTML]] y [[XHTML]] &amp;amp;ndash; múltiples páginas mostradas como ventanas (&amp;quot;tarjetas&amp;quot;).&lt;br /&gt;
* Soporte Cámara &amp;amp;ndash; sin embargo esta versión carece de la opción de cambiar la resolución de la cámara, balance de blancos, calidad, etc.&lt;br /&gt;
* Carpetas permiten la agrupación de un número de iconos de aplicaciones dentro de una simple carpeta en la pantalla de inicio.&lt;br /&gt;
* Acceso a servidores de correo electrónico por web, soporte [[POP3]], [[IMAP4]] y [[SMTP]].&lt;br /&gt;
* Sincronización de [[Gmail]] con la aplicación de Gmail.&lt;br /&gt;
* Sincronización de [[Google Contacts]] aplicación de personas.&lt;br /&gt;
* Sincronización de [[Google Calendar]] con la aplicación de calendario.&lt;br /&gt;
* [[Google Maps]] con [[Google Latitude|Latitude]] y [[Google Street View|Street View]] para ver mapas e imágenes por satélite, así como para encontrar negocios locales y obtener direcciones de conducción usando [[GPS]].&lt;br /&gt;
* [[Google Sync]], permite la administración de la sincronización OTA de Gmail, Personas, y Calendario&lt;br /&gt;
* [[Google Search]], permite a los usuarios buscar en internet, en aplicaciones del teléfono móvil, en contactos, en calendario, etc.&lt;br /&gt;
* Mensajería instantánea [[Google Talk]].&lt;br /&gt;
* [[Mensajería instantánea]], [[Servicio de mensajes cortos|mensajes de texto]] y MMS.&lt;br /&gt;
* [[Reproductor de medios]], habilitada administración, importación, y reproducción de archivos multimedia &amp;amp;ndash; sin embargo, esta versión carece de soporte de vídeo y estéreo por [[Bluetooth]].&lt;br /&gt;
* Las notificaciones aparecen en la barra de estado, con opciones para configurar alertas por timbre, [[LED]] o vibración.&lt;br /&gt;
* Marcación por voz permite marcar y llamar sin escribir nombre o número.&lt;br /&gt;
* Fondo de escritorio permite al [[usuario]] configurar una [[imagen]] de fondo o una foto detrás de los iconos y widgets de la pantalla de inicio.&lt;br /&gt;
* Reproductor de [[vídeo]] [[YouTube]].&lt;br /&gt;
* Otras aplicaciones incluyen: Alarma, Calculadora, Marcación (teléfono), Pantalla de inicio (launcher), Imágenes (Galería) y ajustes.&lt;br /&gt;
* Soporte para [[Wi-Fi]] y Bluetooth.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dispositivos Android ==&lt;br /&gt;
De momento, el Sistema Operativo Android sigue en proceso de fabricación, aunque ya se han lanzado algunos terminales que funcionan bajo esta plataforma. &lt;br /&gt;
El primer modelo lanzado al mercado bajo esta plataforma fue el xxx[[HTC]] Dreamxx, comercializado en [[EEUU]] y [[Reino Unido]] bajo la marca [[T-Mobile]] G1. Aunque se puede disponer de él, a través de un contrato con la operadora [[Movistar]].&lt;br /&gt;
&lt;br /&gt;
Ahora estamos pendientes de otros modelos como el [[HTC Magic]], [[HTC Hero]] o [[Asus]] Eee phone, siendo el primero, comercializado por la operadora Vodafone en este mismo mes de Abril.&lt;br /&gt;
&lt;br /&gt;
==Referencias==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fuentes==&lt;br /&gt;
* [http://www.android.com Sitio Oficial de Android] &lt;br /&gt;
* [http://www.configurarequipos.com/doc1107.html Que es Android: Características y Aplicaciones]. Artículo de Angel Vilchez publicado el 2 de abril de 2009. &lt;br /&gt;
&lt;br /&gt;
[[Category:Sistemas_operativos_libres]][[Category:Ciencias_informáticas]][[Category:Sistemas_operativos]]&lt;/div&gt;</summary>
		<author><name>Cristuline</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Android&amp;diff=3406051</id>
		<title>Android</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Android&amp;diff=3406051"/>
		<updated>2019-06-10T09:54:24Z</updated>

		<summary type="html">&lt;p&gt;Cristuline: /* Versiones finales */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Sistema_operativo&lt;br /&gt;
|nombre=Android&lt;br /&gt;
|familia=&lt;br /&gt;
|logo=Android-Logo.png&lt;br /&gt;
|captura=Sony-Xperia-Tablet-Android.jpg&lt;br /&gt;
|pie=[[Tablet PC|Tablet]] producida por [[Sony]] con el SO Android.&lt;br /&gt;
|desarrollador=[[Google]]&lt;br /&gt;
|web=[http://www.android.com/ Android Web Oficial] (en inglés)&lt;br /&gt;
|plataformas=&lt;br /&gt;
|anterior=&lt;br /&gt;
|lanzamiento=[[2005]]&lt;br /&gt;
|núcleo=[[Linux]]&lt;br /&gt;
|actualización=&lt;br /&gt;
|licencia= [[Apache]] 2.0 y [[GNU]]/[[GPL]] 2&lt;br /&gt;
|desarrollo=&lt;br /&gt;
|interfaz=&lt;br /&gt;
|idiomas=Multilingüe&lt;br /&gt;
|etiq_cubadebate = android&lt;br /&gt;
}}&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
'''Android'''. Es un [[Sistema operativo|Sistema Operativo]] además de una plataforma de [[Software|Software]] basada en el núcleo de [[Linux|Linux]]. Diseñada en un principio para dispositivos móviles. Android permite controlar dispositivos por medio de bibliotecas desarrolladas o adaptadas por [[Google|Google]] mediante el lenguaje de programación [[Java|Java]]. &lt;br /&gt;
==Historia==&lt;br /&gt;
Fue desarrollado por Android Inc., empresa que en 2005 fue comprada por Google, aunque no fue hasta 2008 cuando se popularizó, gracias a la unión al proyecto de Open Handset Alliance, un consorcio formado por 48 empresas de desarrollo [[hardware]], [[software]] y telecomunicaciones, las cuales llegaron a un acuerdo para promocionar los estándares de códigos abiertos para dispositivos móviles.&lt;br /&gt;
&lt;br /&gt;
Google sin embargo, ha sido quien ha publicado la mayoría del código fuente de Android bajo la licencia de [[Apache Servidor Web|Software Apache]], una licencia de [[software libre]] y de código abierto a cualquier desarrollador. &lt;br /&gt;
&lt;br /&gt;
Dado que Android está basado en el núcleo de Linux, tiene acceso a sus recursos, pudiendo gestionarlo, gracias a que se encuentra en una capa por encima del Kernel, accediendo así a recursos como los controladores de pantalla, cámara, memoria flash…&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema de capas de Android|thumb|left|capas_android.jpg16.0kb|]]&lt;br /&gt;
&lt;br /&gt;
En la imagen se distinguen claramente cada una de las capas: la que forma parte del propio Kernel de Linux, donde Android puede acceder a diferentes controladores, las librerías creadas para el desarrollo de aplicaciones Android, la siguiente capa que organiza los diferentes administradores de recursos, y por último, la capa de las aplicaciones a las que tiene acceso.&lt;br /&gt;
&lt;br /&gt;
== Características  ==&lt;br /&gt;
Android es una plataforma de código abierto. Esto quiere decir, que  cualquier desarrollador puede crear y desarrollar aplicaciones escritas  con lenguaje [[Lenguaje de Programación C|C]] u otros lenguajes y compilarlas a código nativo de  [[ARM|ARM]] (API de Android).Una parte importante al entrar al mundo Android es [[Diccionario de Android|conocer que significa cada uno de los terminos]] o palabras que se usan&lt;br /&gt;
&lt;br /&gt;
* [[Framework|Framework]] de aplicaciones: permite el reemplazo y la reutilización de los componentes. &lt;br /&gt;
* Navegador integrado: basado en el motor open Source Webkit. &lt;br /&gt;
* [[SQlite|SQlite]]: base de datos para almacenamiento estructurado que se integra directamente con las aplicaciones. &lt;br /&gt;
* [[Multimedia|Multimedia]]: Soporte para medios con formatos comunes de audio, video e imágenes planas ([[Moving Picture Experts Group-4 (MPEG-4)|MPEG4]], [[H.264]], [[MP3]], [[AAC]], [[AMR]], [[JPG]], [[PNG]], [[GIF]]). &lt;br /&gt;
* [[Máquina virtual]] Dalvik: Base de llamadas de instancias muy similar a Java. &lt;br /&gt;
* [[Telefonía]] [[GSM]]: dependiente del terminal. &lt;br /&gt;
* [[Bluetooth|Bluetooth]], EDGE, 3g y Wifi: dependiente del terminal. &lt;br /&gt;
* [[Cámara Fotográfica|Cámara]], [[GPS]], [[brújula]] y acelerómetro: Dependiente del terminal. &lt;br /&gt;
* [[Pantalla tactil]].&lt;br /&gt;
&lt;br /&gt;
== Arquitectura de Android  ==&lt;br /&gt;
La arquitectura interna de la plataforma Android, está básicamente formada por 4 componentes: &lt;br /&gt;
===Aplicaciones===&lt;br /&gt;
Todas las aplicaciones creadas con la plataforma Android, incluirán como base un cliente de [[email]] ([[correo electrónico]]), calendario, programa de [[SMS]], mapas, [[navegador]], contactos, y algunos otros servicios mínimos. Todas ellas escritas en el lenguaje de programación [[Java]]. Ejemplo de ello [[Alerta flash]].&lt;br /&gt;
&lt;br /&gt;
===Framework de Aplicaciones===&lt;br /&gt;
Todos los desarrolladores de aplicaciones Android, tienen acceso total al [[código fuente]] usado en las aplicaciones base. Esto ha sido diseñado de esta forma, para que no se generen cientos de componentes de aplicaciones distintas, que respondan a la misma acción, dando la posibilidad de que los programas sean modificados o reemplazados por cualquier usuario sin tener que empezar a programar sus aplicaciones desde el principio.&lt;br /&gt;
&lt;br /&gt;
===Librerías===&lt;br /&gt;
Android incluye en su base de datos un set de librerías [[C]]/[[Lenguaje de programación C++|C++]] , que son expuestas a todos los desarrolladores a través del framework de las aplicaciones [[Android System C library]], librerías de medios, librerías de [[gráficos]], [[Animación 3D|3D]], [[SQlite]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime de Android===&lt;br /&gt;
Android incorpora un set de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. La [[Máquina Virtual]] está basada en registros, y corre clases compiladas por el compilador de Java que anteriormente han sido transformadas al [[formato]] .dex (Dalvik Executable) por la [[herramienta]] ''dx''.&lt;br /&gt;
&lt;br /&gt;
==Versiones==&lt;br /&gt;
=== Versiones finales ===&lt;br /&gt;
Las versiones de Android finales disponibles en los terminales, comenzaron con un número (Android 1, 1.1), pero desde abril de 2009, las versiones de Android han sido desarrolladas bajo un nombre en clave y sus nombres siguen un orden alfabético:Apple Pie, Banana Bread, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat, Lollipop, Marshmallow, Nougat, Oreo y Pie.&lt;br /&gt;
Por otra parte existe el número de API (Application Programming Interface), que corresponde a las librerías o bibliotecas de programación correspondiente a las diferentes versiones (o actualizaciones) de Android.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
! Nombre código&lt;br /&gt;
! Número de versión &lt;br /&gt;
! Fecha de lanzamiento&lt;br /&gt;
! Nivel de API&lt;br /&gt;
|-&lt;br /&gt;
| [[#Android 1.0 (API 1)|Apple Pie]]|| 1.0 || [[23 de septiembre]] de [[2008]] || 1&lt;br /&gt;
|-&lt;br /&gt;
| [[#Android 1.1 (API 2)|Banana Bread]]|| 1.1 || [[9 de febrero]] de [[2009]] || 2&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Cupcake|Cupcake]] || 1.5 || [[25 de abril]] de [[2009]] || 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Donut]]|| 1.6 || [[15 de septiembre]]  de [[2009]] || 4&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Eclair|Eclair]] || 2.0 &amp;amp;ndash; 2.1 || [[26 de octubre]] de [[2009]] || 5 – 7&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Froyo|Froyo]] || 2.2 &amp;amp;ndash; 2.2.3 || [[20 de mayo]] de [[2010]] || 8&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Gingerbread|Gingerbread]] || 2.3 &amp;amp;ndash; 2.3.7 || [[6 de diciembre]] de [[2010]] || 9 – 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Honeycomb|Honeycomb]]{{refn|Honeycomb es la primera versión con soporte a tablets, pero solo puede usarse en tabletas y el código fuente no ha sido lanzado. Todas las versiones siguientes de Android soportan tanto celulares como tabletas.}} || 3.0 &amp;amp;ndash; 3.2.6 || [[22 de febrero]] de [[2011]] || 11 – 13&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Ice Cream Sandwich|Ice Cream Sandwich]] || 4.0 &amp;amp;ndash; 4.0.5 || [[18 de octubre]] de [[2011]] || 14 – 15&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Jelly Bean|Jelly Bean]] || 4.1 &amp;amp;ndash; 4.3.1 || [[9 de julio]] de [[2012]] || 16 – 18&lt;br /&gt;
|-&lt;br /&gt;
| [[Android KitKat|KitKat]] || 4.4 &amp;amp;ndash; 4.4.4 || [[31 de octubre]] de [[2013]] || 19 – 20&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Lollipop|Lollipop]] || 5.0 &amp;amp;ndash; 5.1.1 || [[12 de noviembre]] de [[2014]] || 21 – 22&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Marshmallow|Marshmallow]]|| 6.0 &amp;amp;ndash; 6.0.1 || [[5 de octubre]] de [[2015]] || 23&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Nougat|Nougat]] || 7.0 &amp;amp;ndash; 7.1.2 || [[15 de junio]] de [[2016]] || 24 – 25 &lt;br /&gt;
|-&lt;br /&gt;
| [[Android Oreo|Oreo]] || 8.0 &amp;amp;ndash; 8.1 || [[21 de agosto]] de [[2017]] || 26 – 27&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Pie|Pie]] || 9.0 || [[6 de agosto]] de [[2018]] || 28&lt;br /&gt;
|-&lt;br /&gt;
|[[Android Q|Q]]&lt;br /&gt;
|10.0&lt;br /&gt;
|agosto del [[2019]]&lt;br /&gt;
|29&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Android Beta===&lt;br /&gt;
La versión beta de Android fue lanzada el 5 de noviembre de 2007,&amp;lt;ref&amp;gt;[http://googlesystem.blogspot.com/2007/11/google-launches-android-open-mobile.html «Google Launches Android, an Open Mobile Platform». Google Operating System ([[5 de noviembre]] de [[2007]]).]&amp;lt;/ref&amp;gt; mientras el Software development kit (SDK) fue lanzado el [[12 de noviembre]] de [[2007]].  Las versiones públicas Beta del SDK fueron lanzados en el siguiente orden:&lt;br /&gt;
* [[16 de noviembre]] de 2007: m3-rc22a&lt;br /&gt;
* [[14 de diciembre]] de 2007: m3-rc37a&lt;br /&gt;
* [[13 de febrero]] de [[2008]]: m5-rc14&lt;br /&gt;
* [[3 de marzo]] de 2008: m5-rc15&lt;br /&gt;
* [[18 de agosto]] de 2008: 0.9&lt;br /&gt;
* [[23 de septiembre]] de 2008: 1.0-r11&lt;br /&gt;
&lt;br /&gt;
===Android 1.0 Apple Pie===&lt;br /&gt;
Android 1.0 Apple Pie (Tarta de manzana), la primera versión comercial del software, fue lanzado el 23 septiembre de 2008. El primer dispositivo Android, el HTC Dream, incorporó las siguientes características de Android 1.0:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:75%; font-size:90%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; width:5em; text-align:center;&amp;quot;|Versión&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; width:10em; text-align:center;&amp;quot;|Fecha lanzamiento&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; text-align:center;&amp;quot;|Características&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| 1.0&lt;br /&gt;
| [[23 de septiembre]] de [[2008]]&lt;br /&gt;
|&lt;br /&gt;
* [[Android Market]] Programa con un mercado para la descarga y actualización de aplicaciones.&lt;br /&gt;
* [[Navegador Web]] para visualizar páginas webs en full [[HTML]] y [[XHTML]] &amp;amp;ndash; múltiples páginas mostradas como ventanas (&amp;quot;tarjetas&amp;quot;).&lt;br /&gt;
* Soporte Cámara &amp;amp;ndash; sin embargo esta versión carece de la opción de cambiar la resolución de la cámara, balance de blancos, calidad, etc.&lt;br /&gt;
* Carpetas permiten la agrupación de un número de iconos de aplicaciones dentro de una simple carpeta en la pantalla de inicio.&lt;br /&gt;
* Acceso a servidores de correo electrónico por web, soporte [[POP3]], [[IMAP4]] y [[SMTP]].&lt;br /&gt;
* Sincronización de [[Gmail]] con la aplicación de Gmail.&lt;br /&gt;
* Sincronización de [[Google Contacts]] aplicación de personas.&lt;br /&gt;
* Sincronización de [[Google Calendar]] con la aplicación de calendario.&lt;br /&gt;
* [[Google Maps]] con [[Google Latitude|Latitude]] y [[Google Street View|Street View]] para ver mapas e imágenes por satélite, así como para encontrar negocios locales y obtener direcciones de conducción usando [[GPS]].&lt;br /&gt;
* [[Google Sync]], permite la administración de la sincronización OTA de Gmail, Personas, y Calendario&lt;br /&gt;
* [[Google Search]], permite a los usuarios buscar en internet, en aplicaciones del teléfono móvil, en contactos, en calendario, etc.&lt;br /&gt;
* Mensajería instantánea [[Google Talk]].&lt;br /&gt;
* [[Mensajería instantánea]], [[Servicio de mensajes cortos|mensajes de texto]] y MMS.&lt;br /&gt;
* [[Reproductor de medios]], habilitada administración, importación, y reproducción de archivos multimedia &amp;amp;ndash; sin embargo, esta versión carece de soporte de vídeo y estéreo por [[Bluetooth]].&lt;br /&gt;
* Las notificaciones aparecen en la barra de estado, con opciones para configurar alertas por timbre, [[LED]] o vibración.&lt;br /&gt;
* Marcación por voz permite marcar y llamar sin escribir nombre o número.&lt;br /&gt;
* Fondo de escritorio permite al [[usuario]] configurar una [[imagen]] de fondo o una foto detrás de los iconos y widgets de la pantalla de inicio.&lt;br /&gt;
* Reproductor de [[vídeo]] [[YouTube]].&lt;br /&gt;
* Otras aplicaciones incluyen: Alarma, Calculadora, Marcación (teléfono), Pantalla de inicio (launcher), Imágenes (Galería) y ajustes.&lt;br /&gt;
* Soporte para [[Wi-Fi]] y Bluetooth.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dispositivos Android ==&lt;br /&gt;
De momento, el Sistema Operativo Android sigue en proceso de fabricación, aunque ya se han lanzado algunos terminales que funcionan bajo esta plataforma. &lt;br /&gt;
El primer modelo lanzado al mercado bajo esta plataforma fue el xxx[[HTC]] Dreamxx, comercializado en [[EEUU]] y [[Reino Unido]] bajo la marca [[T-Mobile]] G1. Aunque se puede disponer de él, a través de un contrato con la operadora [[Movistar]].&lt;br /&gt;
&lt;br /&gt;
Ahora estamos pendientes de otros modelos como el [[HTC Magic]], [[HTC Hero]] o [[Asus]] Eee phone, siendo el primero, comercializado por la operadora Vodafone en este mismo mes de Abril.&lt;br /&gt;
&lt;br /&gt;
==Referencias==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fuentes==&lt;br /&gt;
* [http://www.android.com Sitio Oficial de Android] &lt;br /&gt;
* [http://www.configurarequipos.com/doc1107.html Que es Android: Características y Aplicaciones]. Artículo de Angel Vilchez publicado el 2 de abril de 2009. &lt;br /&gt;
&lt;br /&gt;
[[Category:Sistemas_operativos_libres]][[Category:Ciencias_informáticas]][[Category:Sistemas_operativos]]&lt;/div&gt;</summary>
		<author><name>Cristuline</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Android&amp;diff=3406041</id>
		<title>Android</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Android&amp;diff=3406041"/>
		<updated>2019-06-10T09:50:26Z</updated>

		<summary type="html">&lt;p&gt;Cristuline: /* Versiones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Sistema_operativo&lt;br /&gt;
|nombre=Android&lt;br /&gt;
|familia=&lt;br /&gt;
|logo=Android-Logo.png&lt;br /&gt;
|captura=Sony-Xperia-Tablet-Android.jpg&lt;br /&gt;
|pie=[[Tablet PC|Tablet]] producida por [[Sony]] con el SO Android.&lt;br /&gt;
|desarrollador=[[Google]]&lt;br /&gt;
|web=[http://www.android.com/ Android Web Oficial] (en inglés)&lt;br /&gt;
|plataformas=&lt;br /&gt;
|anterior=&lt;br /&gt;
|lanzamiento=[[2005]]&lt;br /&gt;
|núcleo=[[Linux]]&lt;br /&gt;
|actualización=&lt;br /&gt;
|licencia= [[Apache]] 2.0 y [[GNU]]/[[GPL]] 2&lt;br /&gt;
|desarrollo=&lt;br /&gt;
|interfaz=&lt;br /&gt;
|idiomas=Multilingüe&lt;br /&gt;
|etiq_cubadebate = android&lt;br /&gt;
}}&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
'''Android'''. Es un [[Sistema operativo|Sistema Operativo]] además de una plataforma de [[Software|Software]] basada en el núcleo de [[Linux|Linux]]. Diseñada en un principio para dispositivos móviles. Android permite controlar dispositivos por medio de bibliotecas desarrolladas o adaptadas por [[Google|Google]] mediante el lenguaje de programación [[Java|Java]]. &lt;br /&gt;
==Historia==&lt;br /&gt;
Fue desarrollado por Android Inc., empresa que en 2005 fue comprada por Google, aunque no fue hasta 2008 cuando se popularizó, gracias a la unión al proyecto de Open Handset Alliance, un consorcio formado por 48 empresas de desarrollo [[hardware]], [[software]] y telecomunicaciones, las cuales llegaron a un acuerdo para promocionar los estándares de códigos abiertos para dispositivos móviles.&lt;br /&gt;
&lt;br /&gt;
Google sin embargo, ha sido quien ha publicado la mayoría del código fuente de Android bajo la licencia de [[Apache Servidor Web|Software Apache]], una licencia de [[software libre]] y de código abierto a cualquier desarrollador. &lt;br /&gt;
&lt;br /&gt;
Dado que Android está basado en el núcleo de Linux, tiene acceso a sus recursos, pudiendo gestionarlo, gracias a que se encuentra en una capa por encima del Kernel, accediendo así a recursos como los controladores de pantalla, cámara, memoria flash…&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema de capas de Android|thumb|left|capas_android.jpg16.0kb|]]&lt;br /&gt;
&lt;br /&gt;
En la imagen se distinguen claramente cada una de las capas: la que forma parte del propio Kernel de Linux, donde Android puede acceder a diferentes controladores, las librerías creadas para el desarrollo de aplicaciones Android, la siguiente capa que organiza los diferentes administradores de recursos, y por último, la capa de las aplicaciones a las que tiene acceso.&lt;br /&gt;
&lt;br /&gt;
== Características  ==&lt;br /&gt;
Android es una plataforma de código abierto. Esto quiere decir, que  cualquier desarrollador puede crear y desarrollar aplicaciones escritas  con lenguaje [[Lenguaje de Programación C|C]] u otros lenguajes y compilarlas a código nativo de  [[ARM|ARM]] (API de Android).Una parte importante al entrar al mundo Android es [[Diccionario de Android|conocer que significa cada uno de los terminos]] o palabras que se usan&lt;br /&gt;
&lt;br /&gt;
* [[Framework|Framework]] de aplicaciones: permite el reemplazo y la reutilización de los componentes. &lt;br /&gt;
* Navegador integrado: basado en el motor open Source Webkit. &lt;br /&gt;
* [[SQlite|SQlite]]: base de datos para almacenamiento estructurado que se integra directamente con las aplicaciones. &lt;br /&gt;
* [[Multimedia|Multimedia]]: Soporte para medios con formatos comunes de audio, video e imágenes planas ([[Moving Picture Experts Group-4 (MPEG-4)|MPEG4]], [[H.264]], [[MP3]], [[AAC]], [[AMR]], [[JPG]], [[PNG]], [[GIF]]). &lt;br /&gt;
* [[Máquina virtual]] Dalvik: Base de llamadas de instancias muy similar a Java. &lt;br /&gt;
* [[Telefonía]] [[GSM]]: dependiente del terminal. &lt;br /&gt;
* [[Bluetooth|Bluetooth]], EDGE, 3g y Wifi: dependiente del terminal. &lt;br /&gt;
* [[Cámara Fotográfica|Cámara]], [[GPS]], [[brújula]] y acelerómetro: Dependiente del terminal. &lt;br /&gt;
* [[Pantalla tactil]].&lt;br /&gt;
&lt;br /&gt;
== Arquitectura de Android  ==&lt;br /&gt;
La arquitectura interna de la plataforma Android, está básicamente formada por 4 componentes: &lt;br /&gt;
===Aplicaciones===&lt;br /&gt;
Todas las aplicaciones creadas con la plataforma Android, incluirán como base un cliente de [[email]] ([[correo electrónico]]), calendario, programa de [[SMS]], mapas, [[navegador]], contactos, y algunos otros servicios mínimos. Todas ellas escritas en el lenguaje de programación [[Java]]. Ejemplo de ello [[Alerta flash]].&lt;br /&gt;
&lt;br /&gt;
===Framework de Aplicaciones===&lt;br /&gt;
Todos los desarrolladores de aplicaciones Android, tienen acceso total al [[código fuente]] usado en las aplicaciones base. Esto ha sido diseñado de esta forma, para que no se generen cientos de componentes de aplicaciones distintas, que respondan a la misma acción, dando la posibilidad de que los programas sean modificados o reemplazados por cualquier usuario sin tener que empezar a programar sus aplicaciones desde el principio.&lt;br /&gt;
&lt;br /&gt;
===Librerías===&lt;br /&gt;
Android incluye en su base de datos un set de librerías [[C]]/[[Lenguaje de programación C++|C++]] , que son expuestas a todos los desarrolladores a través del framework de las aplicaciones [[Android System C library]], librerías de medios, librerías de [[gráficos]], [[Animación 3D|3D]], [[SQlite]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Runtime de Android===&lt;br /&gt;
Android incorpora un set de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. La [[Máquina Virtual]] está basada en registros, y corre clases compiladas por el compilador de Java que anteriormente han sido transformadas al [[formato]] .dex (Dalvik Executable) por la [[herramienta]] ''dx''.&lt;br /&gt;
&lt;br /&gt;
==Versiones==&lt;br /&gt;
=== Versiones finales ===&lt;br /&gt;
Las versiones de Android finales disponibles en los terminales, comenzaron con un número (Android 1, 1.1), pero desde abril de 2009, las versiones de Android han sido desarrolladas bajo un nombre en clave y sus nombres siguen un orden alfabético:Apple Pie, Banana Bread, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat, Lollipop, Marshmallow, Nougat, Oreo y Pie.&lt;br /&gt;
Por otra parte existe el número de API (Application Programming Interface), que corresponde a las librerías o bibliotecas de programación correspondiente a las diferentes versiones (o actualizaciones) de Android.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
! Nombre código&lt;br /&gt;
! Número de versión &lt;br /&gt;
! Fecha de lanzamiento&lt;br /&gt;
! Nivel de API&lt;br /&gt;
|-&lt;br /&gt;
| [[#Android 1.0 (API 1)|Apple Pie]]&amp;lt;ref name=&amp;quot;nombres oficiales y no oficiales&amp;quot;/&amp;gt;|| 1.0 || [[23 de septiembre]] de [[2008]] || 1&lt;br /&gt;
|-&lt;br /&gt;
| [[#Android 1.1 (API 2)|Banana Bread]]&amp;lt;ref name=&amp;quot;nombres oficiales y no oficiales&amp;quot;&amp;gt;{{Cite web|url=http://www.androidpolice.com/2012/09/17/a-history-of-pre-cupcake-android-codenames/|title=A History of Pre-Cupcake Android Codenames|date=17 de septiembre de 2012|website=Android Police|access-date=22 de febrero de 2018|deadurl=no|archiveurl=https://web.archive.org/web/20130825191904/http://www.androidpolice.com/2012/09/17/a-history-of-pre-cupcake-android-codenames/|archivedate=25 de agosto de 2013|df=}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 1.1 || [[9 de febrero]] de [[2009]] || 2&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Cupcake|Cupcake]] || 1.5 || [[25 de abril]] de [[2009]] || 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Donut]]|| 1.6 || [[15 de septiembre]]  de [[2009]] || 4&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Eclair|Eclair]] || 2.0 &amp;amp;ndash; 2.1 || [[26 de octubre]] de [[2009]] || 5 – 7&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Froyo|Froyo]] || 2.2 &amp;amp;ndash; 2.2.3 || [[20 de mayo]] de [[2010]] || 8&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Gingerbread|Gingerbread]] || 2.3 &amp;amp;ndash; 2.3.7 || [[6 de diciembre]] de [[2010]] || 9 – 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Honeycomb|Honeycomb]]{{refn|Honeycomb es la primera versión con soporte a tablets, pero solo puede usarse en tabletas y el código fuente no ha sido lanzado. Todas las versiones siguientes de Android soportan tanto celulares como tabletas.}} || 3.0 &amp;amp;ndash; 3.2.6 || [[22 de febrero]] de [[2011]] || 11 – 13&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Ice Cream Sandwich|Ice Cream Sandwich]] || 4.0 &amp;amp;ndash; 4.0.5 || [[18 de octubre]] de [[2011]] || 14 – 15&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Jelly Bean|Jelly Bean]] || 4.1 &amp;amp;ndash; 4.3.1 || [[9 de julio]] de [[2012]] || 16 – 18&lt;br /&gt;
|-&lt;br /&gt;
| [[Android KitKat|KitKat]] || 4.4 &amp;amp;ndash; 4.4.4 || [[31 de octubre]] de [[2013]] || 19 – 20&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Lollipop|Lollipop]] || 5.0 &amp;amp;ndash; 5.1.1 || [[12 de noviembre]] de [[2014]] || 21 – 22&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Marshmallow|Marshmallow]]|| 6.0 &amp;amp;ndash; 6.0.1 || [[5 de octubre]] de [[2015]] || 23&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Nougat|Nougat]] || 7.0 &amp;amp;ndash; 7.1.2 || [[15 de junio]] de [[2016]] || 24 – 25 &lt;br /&gt;
|-&lt;br /&gt;
| [[Android Oreo|Oreo]] || 8.0 &amp;amp;ndash; 8.1 || [[21 de agosto]] de [[2017]] || 26 – 27&lt;br /&gt;
|-&lt;br /&gt;
| [[Android Pie|Pie]] || 9.0 || [[6 de agosto]] de [[2018]] || 28&lt;br /&gt;
|-&lt;br /&gt;
|[[Android Q|Q]]&lt;br /&gt;
|10.0&lt;br /&gt;
|agosto del [[2019]]&lt;br /&gt;
|29&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Android Beta===&lt;br /&gt;
La versión beta de Android fue lanzada el 5 de noviembre de 2007,&amp;lt;ref&amp;gt;[http://googlesystem.blogspot.com/2007/11/google-launches-android-open-mobile.html «Google Launches Android, an Open Mobile Platform». Google Operating System ([[5 de noviembre]] de [[2007]]).]&amp;lt;/ref&amp;gt; mientras el Software development kit (SDK) fue lanzado el [[12 de noviembre]] de [[2007]].  Las versiones públicas Beta del SDK fueron lanzados en el siguiente orden:&lt;br /&gt;
* [[16 de noviembre]] de 2007: m3-rc22a&lt;br /&gt;
* [[14 de diciembre]] de 2007: m3-rc37a&lt;br /&gt;
* [[13 de febrero]] de [[2008]]: m5-rc14&lt;br /&gt;
* [[3 de marzo]] de 2008: m5-rc15&lt;br /&gt;
* [[18 de agosto]] de 2008: 0.9&lt;br /&gt;
* [[23 de septiembre]] de 2008: 1.0-r11&lt;br /&gt;
&lt;br /&gt;
===Android 1.0 Apple Pie===&lt;br /&gt;
Android 1.0 Apple Pie (Tarta de manzana), la primera versión comercial del software, fue lanzado el 23 septiembre de 2008. El primer dispositivo Android, el HTC Dream, incorporó las siguientes características de Android 1.0:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:75%; font-size:90%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; width:5em; text-align:center;&amp;quot;|Versión&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; width:10em; text-align:center;&amp;quot;|Fecha lanzamiento&lt;br /&gt;
! style=&amp;quot;background:#e9e9e9; text-align:center;&amp;quot;|Características&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| 1.0&lt;br /&gt;
| [[23 de septiembre]] de [[2008]]&lt;br /&gt;
|&lt;br /&gt;
* [[Android Market]] Programa con un mercado para la descarga y actualización de aplicaciones.&lt;br /&gt;
* [[Navegador Web]] para visualizar páginas webs en full [[HTML]] y [[XHTML]] &amp;amp;ndash; múltiples páginas mostradas como ventanas (&amp;quot;tarjetas&amp;quot;).&lt;br /&gt;
* Soporte Cámara &amp;amp;ndash; sin embargo esta versión carece de la opción de cambiar la resolución de la cámara, balance de blancos, calidad, etc.&lt;br /&gt;
* Carpetas permiten la agrupación de un número de iconos de aplicaciones dentro de una simple carpeta en la pantalla de inicio.&lt;br /&gt;
* Acceso a servidores de correo electrónico por web, soporte [[POP3]], [[IMAP4]] y [[SMTP]].&lt;br /&gt;
* Sincronización de [[Gmail]] con la aplicación de Gmail.&lt;br /&gt;
* Sincronización de [[Google Contacts]] aplicación de personas.&lt;br /&gt;
* Sincronización de [[Google Calendar]] con la aplicación de calendario.&lt;br /&gt;
* [[Google Maps]] con [[Google Latitude|Latitude]] y [[Google Street View|Street View]] para ver mapas e imágenes por satélite, así como para encontrar negocios locales y obtener direcciones de conducción usando [[GPS]].&lt;br /&gt;
* [[Google Sync]], permite la administración de la sincronización OTA de Gmail, Personas, y Calendario&lt;br /&gt;
* [[Google Search]], permite a los usuarios buscar en internet, en aplicaciones del teléfono móvil, en contactos, en calendario, etc.&lt;br /&gt;
* Mensajería instantánea [[Google Talk]].&lt;br /&gt;
* [[Mensajería instantánea]], [[Servicio de mensajes cortos|mensajes de texto]] y MMS.&lt;br /&gt;
* [[Reproductor de medios]], habilitada administración, importación, y reproducción de archivos multimedia &amp;amp;ndash; sin embargo, esta versión carece de soporte de vídeo y estéreo por [[Bluetooth]].&lt;br /&gt;
* Las notificaciones aparecen en la barra de estado, con opciones para configurar alertas por timbre, [[LED]] o vibración.&lt;br /&gt;
* Marcación por voz permite marcar y llamar sin escribir nombre o número.&lt;br /&gt;
* Fondo de escritorio permite al [[usuario]] configurar una [[imagen]] de fondo o una foto detrás de los iconos y widgets de la pantalla de inicio.&lt;br /&gt;
* Reproductor de [[vídeo]] [[YouTube]].&lt;br /&gt;
* Otras aplicaciones incluyen: Alarma, Calculadora, Marcación (teléfono), Pantalla de inicio (launcher), Imágenes (Galería) y ajustes.&lt;br /&gt;
* Soporte para [[Wi-Fi]] y Bluetooth.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dispositivos Android ==&lt;br /&gt;
De momento, el Sistema Operativo Android sigue en proceso de fabricación, aunque ya se han lanzado algunos terminales que funcionan bajo esta plataforma. &lt;br /&gt;
El primer modelo lanzado al mercado bajo esta plataforma fue el xxx[[HTC]] Dreamxx, comercializado en [[EEUU]] y [[Reino Unido]] bajo la marca [[T-Mobile]] G1. Aunque se puede disponer de él, a través de un contrato con la operadora [[Movistar]].&lt;br /&gt;
&lt;br /&gt;
Ahora estamos pendientes de otros modelos como el [[HTC Magic]], [[HTC Hero]] o [[Asus]] Eee phone, siendo el primero, comercializado por la operadora Vodafone en este mismo mes de Abril.&lt;br /&gt;
&lt;br /&gt;
==Referencias==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fuentes==&lt;br /&gt;
* [http://www.android.com Sitio Oficial de Android] &lt;br /&gt;
* [http://www.configurarequipos.com/doc1107.html Que es Android: Características y Aplicaciones]. Artículo de Angel Vilchez publicado el 2 de abril de 2009. &lt;br /&gt;
&lt;br /&gt;
[[Category:Sistemas_operativos_libres]][[Category:Ciencias_informáticas]][[Category:Sistemas_operativos]]&lt;/div&gt;</summary>
		<author><name>Cristuline</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Arduino&amp;diff=3405927</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Arduino&amp;diff=3405927"/>
		<updated>2019-06-09T20:30:23Z</updated>

		<summary type="html">&lt;p&gt;Cristuline: /* Otras interfaces de programación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ficha Hardware&lt;br /&gt;
| nombre          = Arduino.&lt;br /&gt;
| imagen          = [[Archivo:quees.png|miniaturadeimagen]]&lt;br /&gt;
| pie         = &lt;br /&gt;
| fecha-invención = [[2005]].&lt;br /&gt;
| nombre-inventor =  [[Massimo Banzi]]&lt;br /&gt;
| conn1           = &lt;br /&gt;
| via1_1          = Placa computadora ([[microcontrolador]] de [[Placa base|placa]] simple)&lt;br /&gt;
| nombre-clase    = &lt;br /&gt;
| clase1          = &lt;br /&gt;
| manuf1          = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
'''Arduino'''. Plataforma de prototipos electrónica de código abierto (open-source), basada en hardware y software flexibles y fáciles de usar. Se enfoca en acercar y facilitar el uso de la electrónica y programación de sistemas embebidos en proyectos multidisciplinarios. Toda la plataforma, tanto para sus componentes de [[hardware]] como de [[software]], son liberados con licencia de [[código abierto]] que permite libertad de acceso a ellos. &lt;br /&gt;
&lt;br /&gt;
Las placas Arduino están disponibles de dos formas: ensambladas o en forma de kits (por sus siglas en inglés &amp;quot;DIY&amp;quot;). Adafruit Industries estimó a mediados del año [[2011]] que, alrededor de 300,000 placas Arduino habían sido producidas comercialmente y en el año [[2013]] estimó que alrededor de 700.000 placas oficiales de la empresa Arduino estaban en manos de los usuarios. Se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software tal como [[Adobe Flash Professional|Adobe Flash]], [[Processing]], [[Max/MSP]], [[Pure Data]], etc. &lt;br /&gt;
== Historia ==&lt;br /&gt;
Se inició en el año [[2005]] como un proyecto para estudiantes en el [[Instituto IVREA]], en [[Italia]]. El nombre del proyecto viene del nombre del ''Bar di Re Arduino de Ivrea'' (Bar del Rey Arduino) donde Massimo Banzi pasaba algunas horas. En la creación de este proyecto contribuyó el estudiante colombiano Hernando Barragán, quien desarrolló la tarjeta electrónica Wiring, el lenguaje de programación y la plataforma de desarrollo. Una vez concluida dicha plataforma, los investigadores trabajaron para hacerlo más ligero, más económico y disponible para la comunidad de código abierto (hardware y código abierto). El instituto finalmente cerró sus puertas, así que los investigadores, entre ellos el español David Cuartielles, promovieron la idea, Banzi afirmó años más tarde, que el proyecto surgió como una necesidad de subsistir ante el inminente cierre del Instituto de diseño Interactivo IVREA. Es decir, que, al crear un producto de hardware abierto, este no podría ser embargado.&lt;br /&gt;
&lt;br /&gt;
Posteriormente, [[Google]] colaboró en el desarrollo del Kit Android ADK (Accesory Development Kit), una placa Arduino capaz de comunicarse directamente con teléfonos móviles inteligentes bajo el sistema operativo [[Android]] para que el teléfono controle luces, motores y sensores conectados de Arduino. Google presenta ADK, interfaz basada en Arduino para Android. Para la producción en serie de la primera versión se tomó en cuenta que el coste no fuera mayor de 30 euros, que fuera ensamblado en una placa de color azul, debía ser [[Plug and Play]] y que trabajara con todas las plataformas informáticas tales como [[MacOSX]], [[Windows]] y [[GNU/Linux]]. Las primeras 300 unidades se las dieron a los alumnos del Instituto IVREA, con el fin de que las probaran y empezaran a diseñar sus primeros prototipos.&lt;br /&gt;
&lt;br /&gt;
En el año 2005, se incorporó al equipo el profesor Tom Igoe que había trabajado en computación física, después de que se enterara del mismo a través de Internet. Igoe ofreció su apoyo para desarrollar el proyecto a gran escala y hacer los contactos para distribuir las tarjetas en territorio estadounidense. En la feria Maker Fair de 2011 se presentó la primera placa Arduino 32 bit para realizar tareas más pesadas.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Los modelos de Arduino se categorizan en placas de desarrollo, placas de expansión (''shields''), kits, accesorios e impresoras 3d.&lt;br /&gt;
*Placas: Arduino Galileo, Arduino Uno, Arduino Leonardo, Arduino Due, Arduino Yún, Arduino Tre (En Desarrollo), Arduino Zero, Arduino Micro, Arduino Esplora, Arduino Mega ADK, Arduino Ethernet, Arduino Mega 2560, Arduino Robot, Arduino Mini, Arduino Nano, LilyPad Arduino Simple, LilyPad Arduino SimpleSnap, LilyPad Arduino, LilyPad Arduino USB, Arduino Pro Mini, Arduino Fio, Arduino Pro, Arduino MKR1000/Genuino MKR1000, Arduino MICRO/Genuino MICRO, Arduino 101/Genuino 101, Arduino Gemma, Arduino MKR Vidor 4000, Arduino MKR WAN 1300, ARduino MKR NB 1500, ARduino MKR FOX 1200, Arduino Nano Every, Arduino Nano 33 BLE, Arduino Nano 33 BLE Sense, Arduino Nano 33 IoT.&lt;br /&gt;
*Placas de expansión (''shields''): Arduino GSM Shield, Arduino Ethernet Shield, Arduino WiFi Shield, Arduino Wireless SD Shield, Arduino USB Host Shield, Arduino Motor Shield, Arduino Wireless Proto Shield, Arduino Proto Shield.&lt;br /&gt;
*Kits: The Arduino Starter Kit, Arduino Materia 101, Arduino Science Kit Physics Lab.&lt;br /&gt;
Accesorios: TFT LCD Screen, USB/Serial Light Adapter, Arduino ISP, Mini USB/Serial Adapter.&lt;br /&gt;
Impresoras 3d: Arduino Materia 101.&lt;br /&gt;
&lt;br /&gt;
== Aplicaciones ==&lt;br /&gt;
La plataforma Arduino ha sido usada como base en diversas aplicaciones electrónicas:&lt;br /&gt;
* Xoscillo: [[Osciloscopio]] de código abierto.&lt;br /&gt;
* Equipo científico para investigaciones&lt;br /&gt;
* Arduinome: Un dispositivo [[MIDI|controlador MIDI&lt;br /&gt;
* OBDuino: un [[económetro]] que usa una interfaz de [[OBD|diagnóstico a bordo]] que se halla en los automóviles modernos&lt;br /&gt;
* SCA-ino: Sistema de cómputo automotriz capaz de monitorear sensores como el TPS, el MAP y el 02S y controlar actuadores automotrices como la bobina de ignición, la válvula IAC y aceleradores electrónicos&lt;br /&gt;
* Humane Reader: dispositivo electrónico de bajo coste con salida de señal de TV que puede manejar una biblioteca de 5000 títulos en una tarjeta [[microSD&lt;br /&gt;
* The Humane PC: equipo que usa un módulo Arduino para emular un computador personal, con un monitor de televisión y un teclado para computadora&lt;br /&gt;
* Ardupilot: software y hardware de [[drones aeronaves no tripuladas]]&lt;br /&gt;
* ArduinoPhone: un teléfono móvil construido sobre un módulo Arduino&lt;br /&gt;
* Máquinas de [[control numérico]] por computadora (CNC)&lt;br /&gt;
* Open Theremín Uno: Versión digital de hardware libre del instrumento Theremín&lt;br /&gt;
* [[Impresora 3D|Impresoras 3D]]&lt;br /&gt;
&lt;br /&gt;
=== Entradas y salidas ===&lt;br /&gt;
Poniendo de ejemplo al módulo Diecimila, este consta de 14 entradas digitales configurables como entradas y/o salidas que operan a 5 voltios. Cada contacto puede proporcionar o recibir como máximo 40 mA. Los contactos 3, 5, 6, 9, 10 y 11 pueden proporcionar una salida PWM (Pulse Width Modulation). Si se conecta cualquier cosa a los contactos 0 y 1, eso interferirá con la comunicación USB. Diecimila también tiene 6 entradas analógicas que proporcionan una resolución de 10 bits. Por defecto, aceptan de 0 hasta 5 voltios (aunque es posible cambiar el nivel más alto utilizando el contacto Aref y algún código de bajo nivel).&lt;br /&gt;
&lt;br /&gt;
== Lenguaje de programación ==&lt;br /&gt;
La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el lenguaje de programación de alto nivel Processing que es similar a C++. Arduino está basado en C y soporta todas las funciones del estándar C y algunas de C. A continuación, se muestra un resumen con la estructura y sintaxis del lenguaje Arduino:&lt;br /&gt;
===Funciones básicas y operadores===&lt;br /&gt;
'''Sintaxis básica'''&lt;br /&gt;
* Delimitadores: {}&lt;br /&gt;
* Comentarios: //, /* */&lt;br /&gt;
* Cabeceras: #define, #include&lt;br /&gt;
* Operadores aritméticos: +, -, *, /, %&lt;br /&gt;
* Asignación: =&lt;br /&gt;
* Operadores de comparación: ==, !=, &amp;lt;, &amp;gt;, &amp;lt;=, &amp;gt;=&lt;br /&gt;
* Operadores Booleanos: &amp;amp;&amp;amp;, ||, !&lt;br /&gt;
* Operadores de acceso a punteros: *, &amp;amp;&lt;br /&gt;
* Operadores de bits: &amp;amp;, |, ^, ~, &amp;lt;&amp;lt;, &amp;gt;&amp;gt;&lt;br /&gt;
* Operadores compuestos:&lt;br /&gt;
** Incremento y decremento de variables: ++, --&lt;br /&gt;
** Asignación y operación: +=, -=, *=, /=, &amp;amp;=, |=&lt;br /&gt;
&lt;br /&gt;
'''Estructuras de control'''&lt;br /&gt;
* Condicionales: if, if...else, switch case&lt;br /&gt;
* Bucles: for, while, do. while&lt;br /&gt;
* Bifurcaciones y saltos: break, continue, return, goto&lt;br /&gt;
&lt;br /&gt;
'''Variables'''&lt;br /&gt;
&lt;br /&gt;
En cuanto al tratamiento de las variables también comparte un gran parecido con el lenguaje C.&lt;br /&gt;
&lt;br /&gt;
''Constantes''&lt;br /&gt;
* HIGH/LOW: representan los niveles alto y bajo de las señales de entrada y salida. Los niveles altos son aquellos de 3 voltios o más.&lt;br /&gt;
* INPUT/OUTPUT: entrada o salida.&lt;br /&gt;
* false (falso): Señal que representa al cero lógico. A diferencia de las señales HIGH/LOW, su nombre se escribe en letra minúscula.&lt;br /&gt;
* true (verdadero): Señal cuya definición es más amplia que la de ''false''. Cualquier número entero diferente de cero es &amp;quot;verdadero&amp;quot;, según el [[álgebra de Boole]], como en el caso de -200, -1 o 1. Si es cero, es &amp;quot;falso&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
''Tipos de datos''&lt;br /&gt;
* void, boolean, char, unsigned char, byte, int, unsigned int, word, long, unsigned long, float, double, string, array.&lt;br /&gt;
&lt;br /&gt;
''Conversión entre tipos''&lt;br /&gt;
Estas funciones reciben como argumento una variable de cualquier tipo y devuelven una variable convertida en el tipo deseado.&lt;br /&gt;
* char(), byte(), int(), word(), long(), float()&lt;br /&gt;
&lt;br /&gt;
''Cualificadores y ámbito de las variables''&lt;br /&gt;
* static, volatile, const.&lt;br /&gt;
&lt;br /&gt;
''Utilidades''&lt;br /&gt;
* sizeof()&lt;br /&gt;
'''Funciones básicas'''&lt;br /&gt;
&lt;br /&gt;
''E/S digital''&lt;br /&gt;
* pinMode(pin, modo).&lt;br /&gt;
* digitalWrite(pin, valor).&lt;br /&gt;
* int digitalRead(pin).&lt;br /&gt;
&lt;br /&gt;
''E/S analógica''&lt;br /&gt;
* analogReference(tipo)&lt;br /&gt;
* int analogRead(pin)&lt;br /&gt;
* analogWrite(pin, valor)&lt;br /&gt;
&lt;br /&gt;
''E/S avanzada''&lt;br /&gt;
* shiftOut(dataPin, clockPin, bitOrder, valor)&lt;br /&gt;
* unsigned long pulseIn(pin, valor)&lt;br /&gt;
&lt;br /&gt;
''Tiempo''&lt;br /&gt;
* unsigned long millis()&lt;br /&gt;
* unsigned long micros()&lt;br /&gt;
* delay(ms)&lt;br /&gt;
* delayMicroseconds(microsegundos)&lt;br /&gt;
&lt;br /&gt;
''Matemáticas''&lt;br /&gt;
* min(x, y), max(x, y), abs(x), constrain(x, a, b), map(valor, fromLow, fromHigh, toLow, toHigh), pow(base, exponente), sqrt(x)&lt;br /&gt;
&lt;br /&gt;
''Trigonometría''&lt;br /&gt;
* sin(rad), cos(rad), tan(rad)&lt;br /&gt;
&lt;br /&gt;
''Números aleatorios''&lt;br /&gt;
* randomSeed(semilla), long random(máx), long random(mín, máx)&lt;br /&gt;
&lt;br /&gt;
''Bits y Bytes''&lt;br /&gt;
* lowByte(), highByte(), bitRead(), bitWrite(), bitSet(), bitClear(), bit()&lt;br /&gt;
&lt;br /&gt;
''Interrupciones externas''&lt;br /&gt;
* attachInterrupt(interrupción, función, modo)&lt;br /&gt;
* detachInterrupt(interrupción)&lt;br /&gt;
&lt;br /&gt;
''Interrupciones''&lt;br /&gt;
* interrupts(), noInterrupts()&lt;br /&gt;
&lt;br /&gt;
''Comunicación por puerto serie''&lt;br /&gt;
Las funciones de manejo del puerto serie deben ir precedidas de la palabra &amp;quot;Serial&amp;quot; aunque no necesitan ninguna declaración en la cabecera del programa. Por esto se consideran funciones base del lenguaje. Estas son las funciones para transmisión serial:&lt;br /&gt;
* begin(), available(), read(), flush(), print(), println(), write()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Manipulación de puertos'''&lt;br /&gt;
&lt;br /&gt;
Los registros de puertos permiten la manipulación a más bajo nivel y de forma más rápida de los contactos de entrada/salida del microcontrolador de las placas Arduino. Los contactos eléctricos de las placas Arduino están repartidos entre los registros B(0-7), C (analógicos) y D(8-13). Mediante estas variables se observa y se modificada su estado:&lt;br /&gt;
* DDR[B/C/D]: Data Direction Register (o dirección del registro de datos) del puerto B, C ó D. Es una variable de Lectura/Escritura que sirve para especificar cuales contactos serán usados como entrada y salida.&lt;br /&gt;
* PORT[B/C/D]: Data Register (o registro de datos) del puerto B, C ó D. Es una variable de Lectura/Escritura.&lt;br /&gt;
* PIN[B/C/D]: Input Pins Register (o registro de pines de entrada) del puerto B, C ó D. Variable de sólo lectura.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, para especificar los contactos 9 a 13 como salidas y el 8 como entrada (puesto que el puerto D usa los pines de la placa Arduino 8 al 13 digitales) bastaría utilizar la siguiente asignación:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;DDRD = B11111110;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como se ha podido comprobar, el conocimiento del lenguaje C, permite la programación en Arduino debido a la similitud entre este y el lenguaje nativo del proyecto, lo que implica el aprendizaje de algunas funciones específicas de que dispone el lenguaje del proyecto para manejar los diferentes parámetros. Se pueden construir aplicaciones de cierta complejidad sin necesidad de muchos conceptos previos.&lt;br /&gt;
&lt;br /&gt;
=== AVR Libc ===&lt;br /&gt;
Los programas compilados con Arduino (salvo en las placas con CorteX M3) se enlazan contra AVR Libc por lo que tienen acceso a algunas de sus funciones. AVR Libc es un proyecto de software libre con el objetivo de proporcionar una [[biblioteca (informática)|biblioteca]] C de alta calidad para utilizarse con el compilador GCC sobre microcontroladores Atmel AVR. Se compone de 3 partes:&lt;br /&gt;
&lt;br /&gt;
* avr-binutils&lt;br /&gt;
* avr-gcc&lt;br /&gt;
* avr-libc&lt;br /&gt;
&lt;br /&gt;
La mayoría del lenguaje de programación Arduino está escrita con constantes y funciones de AVR y ciertas funcionalidades sólo se pueden obtener haciendo uso de AVR.&lt;br /&gt;
&lt;br /&gt;
'''Interrupciones'''&lt;br /&gt;
Las señales de interrupción son las siguientes:&lt;br /&gt;
&lt;br /&gt;
* cli(): desactiva las interrupciones globales&lt;br /&gt;
* sei(): activa las interrupciones&lt;br /&gt;
&lt;br /&gt;
Esto afectará al temporizador y a la comunicación serial. La función delayMicroseconds() desactiva las interrupciones cuando se ejecuta.&lt;br /&gt;
&lt;br /&gt;
'''Temporizadores'''&lt;br /&gt;
La función delayMicroseconds() crea el menor retardo posible del lenguaje Arduino que ronda los 2μs. Para retardos más pequeños se debe utilizar la llamada de ensamblador 'nop' (no operación). Cada sentencia 'nop' se ejecutará en un ciclo de máquina (16 MHz) de aproximadamente 62,5ns.&lt;br /&gt;
&lt;br /&gt;
'''Manipulación de puertos'''&lt;br /&gt;
La manipulación de puertos con código AVR es más rápida que utilizar la función digitalWrite() de Arduino.&lt;br /&gt;
&lt;br /&gt;
'''Establecer Bits en variables'''&lt;br /&gt;
cbi y sbi son mecanismos estándar (AVR) para establecer o limpiar bits en PORT y otras variables.&lt;br /&gt;
&lt;br /&gt;
===Diferencias con Processing===&lt;br /&gt;
La sintaxis del lenguaje de programación Arduino es una versión simplificada de C/C++ y tiene algunas diferencias respecto de Processing. Debido a que Arduino está basado en C/C++ mientras que Processing se basa en Java, existen varias diferencias en cuanto a la sintaxis de ambos lenguajes y el modo en que se programa:&lt;br /&gt;
&lt;br /&gt;
'''Arreglos'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Arduino !! Processing&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int bar[8];&lt;br /&gt;
bar[0] = 1;&amp;lt;/source&amp;gt;&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int[] bar = new int[8];&lt;br /&gt;
bar[0] = 1;&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int foo[] = { 0, 1, 2 }; &amp;lt;/source&amp;gt;&lt;br /&gt;
|&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt; int foo[] = { 0, 1, 2 };&amp;lt;/source&amp;gt; o bien &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt; int[] foo = { 0, 1, 2 };&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Impresión de cadenas'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Arduino !! Processing&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;Serial.println(&amp;quot;hello world&amp;quot;);&amp;lt;/source&amp;gt; &lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;println(&amp;quot;hello world&amp;quot;);&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int i = 5; &lt;br /&gt;
Serial.println(i);&amp;lt;/source&amp;gt; &lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int i = 5; &lt;br /&gt;
println(i);&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int i = 5; &lt;br /&gt;
Serial.print(&amp;quot;i = &amp;quot;); &lt;br /&gt;
Serial.print(i); &lt;br /&gt;
Serial.println();&amp;lt;/source&amp;gt; &lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int i=&amp;quot;5&amp;quot;; &lt;br /&gt;
println(&amp;quot;i =&amp;quot; + i);&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de programación ===&lt;br /&gt;
El primer paso antes de comprobar que la instalación es correcta y empezar a trabajar con Arduino, es usar ejemplos prácticos que vienen disponibles con el dispositivo. Se recomienda abrir el ejemplo “led_blink” el cual crea una intermitencia por segundo en un led conectado en el pin 13.&lt;br /&gt;
&lt;br /&gt;
El código necesario es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
# define LED_PIN 13&lt;br /&gt;
void setup () {&lt;br /&gt;
 // Activado del contacto 13 para salida digital&lt;br /&gt;
 pinMode (LED_PIN, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
// Bucle infinito&lt;br /&gt;
void loop () {&lt;br /&gt;
 // Encendido del diodo LED enviando una señal alta&lt;br /&gt;
 digitalWrite (LED_PIN, HIGH);&lt;br /&gt;
 // Tiempo de espera de 1 segundo (1000 ms)&lt;br /&gt;
 delay (1000);&lt;br /&gt;
 // Apagado del diodo LED enviando una señal baja.&lt;br /&gt;
 digitalWrite (LED_PIN, LOW);&lt;br /&gt;
 // Tiempo de espera de 1 segundo&lt;br /&gt;
 delay (1000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas en Arduino ==&lt;br /&gt;
Las [[biblioteca (informática)|bibliotecas]] estándar que ofrece Arduino son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''Serial''':&lt;br /&gt;
Lectura y escritura por el puerto serie.&lt;br /&gt;
&lt;br /&gt;
'''EEPROM''':&lt;br /&gt;
Lectura y escritura en el almacenamiento permanente&lt;br /&gt;
* read(), write()&lt;br /&gt;
&lt;br /&gt;
'''Ethernet''':&lt;br /&gt;
Conexión a Internet mediante “Arduino Ethernet Shield“. Puede funcionar como servidor que acepta peticiones remotas o como cliente. Se permiten hasta cuatro conexiones simultáneas Los comandos usados son los siguientes:&lt;br /&gt;
* Servidor: Server(), begin(), available(), write(), print(), println()&lt;br /&gt;
* Cliente: Client(), connected(), connect(), write(), print(), println(), available(), read(), flush(), stop()&lt;br /&gt;
&lt;br /&gt;
'''Firmata'''.&lt;br /&gt;
Es una biblioteca de comunicación con aplicaciones informáticas utilizando el protocolo estándar del puerto serie.&lt;br /&gt;
&lt;br /&gt;
'''LiquidCrystal''':&lt;br /&gt;
Control de [[LCD]]s con [[chipset]] [[Hitachi HD44780]] o compatibles&lt;br /&gt;
&lt;br /&gt;
'''Servo''':&lt;br /&gt;
Biblioteca para el control de [[servo motoresA partir de la versión 0017 de Arduino la biblioteca soporta hasta 12 motores en la mayoría de las placas Arduino y 48 en la Arduino Mega. Estos son los comandos usados:&lt;br /&gt;
* attach(), write(), writeMicroseconds(), read(), attached(), detach()&lt;br /&gt;
&lt;br /&gt;
'''SoftwareSerial''':&lt;br /&gt;
Comunicación serie en contactos digitales. Por defecto Arduino incluye comunicación sólo en los contactos 0 y 1 pero gracias a esta biblioteca puede realizarse esta comunicación con los restantes.&lt;br /&gt;
&lt;br /&gt;
'''Stepper''':&lt;br /&gt;
Control de [[motor paso a paso|motores paso a paso]] unipolares o bipolares.&lt;br /&gt;
* Stepper(steps, pin1, pin2), Stepper(steps, pin1, pin2, pin3, pin4), setSpeed(rpm), step(steps)&lt;br /&gt;
&lt;br /&gt;
'''Wire''':&lt;br /&gt;
Envío y recepción de datos sobre una red de dispositivos o sensores mediante [[Two Wire Interface]] (TWI/I2C). &lt;br /&gt;
Las bibliotecas ''Matrix'' y ''Sprite'' de Wiring son totalmente compatibles con Arduino y sirven para manejo de matrices de diodos LED. También se ofrece información sobre diversas bibliotecas desarrolladas por diversos colaboradores que permiten realizar muchas tareas.&lt;br /&gt;
&lt;br /&gt;
'''Creación de bibliotecas''':&lt;br /&gt;
Los usuarios de Arduino tienen la posibilidad de escribir sus propias bibliotecas. Ello permite disponer de código que puede reutilizarse en otros proyectos, mantener el código fuente principal separado de las bibliotecas y la organización de los programas construidos es más clara.&lt;br /&gt;
==== Ejemplo de biblioteca ====&lt;br /&gt;
El siguiente ejemplo permite el envío de caracteres mediante el [[código Morse]]:&lt;br /&gt;
&lt;br /&gt;
Se crea el archivo Morse.h que incluye la definición de la clase Morse que tiene 3 funciones: un constructor (Morse()), una función para enviar 1 punto (dot()) y una función para enviar una raya (dash()). La variable _pin permite indicar el contacto a usar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  Morse.h - Biblioteca para el envío de Código Morse.&lt;br /&gt;
  Creado por David A. Mellis, el 2 de noviembre de 2007.&lt;br /&gt;
  Liberado al dominio público.&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
# ifndef Morse_h&lt;br /&gt;
# define Morse_h&lt;br /&gt;
&lt;br /&gt;
# include &amp;quot;WProgram.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class Morse&lt;br /&gt;
{&lt;br /&gt;
  public:&lt;br /&gt;
    Morse(int pin);&lt;br /&gt;
    void dot();&lt;br /&gt;
    void dash();&lt;br /&gt;
  private:&lt;br /&gt;
    int _pin;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
# endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Debe ser creado el archivo Morse.cpp con el código, es decir con la implementación de los métodos declarados:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  Morse.cpp - Biblioteca para el envío de Código Morse.&lt;br /&gt;
  Creado por David A. Mellis, el 2 de noviembre de 2007.&lt;br /&gt;
  Liberado al dominio público.&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
# include &amp;quot;WProgram.h&amp;quot;&lt;br /&gt;
# include &amp;quot;Morse.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Morse::Morse(int pin)&lt;br /&gt;
{&lt;br /&gt;
  pinMode(pin, OUTPUT);&lt;br /&gt;
  _pin = pin;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Morse::dot()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(_pin, HIGH);&lt;br /&gt;
  delay(250);&lt;br /&gt;
  digitalWrite(_pin, LOW);&lt;br /&gt;
  delay(250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Morse::dash()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(_pin, HIGH);&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  digitalWrite(_pin, LOW);&lt;br /&gt;
  delay(250);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La biblioteca creada así, puede ser usada mediante el comando #include. Si se desea enviar una petición de auxilio [[SOS]] por el contacto 13 bastaría con llamar a Morse(13) y ejecutar la siguiente secuencia:&lt;br /&gt;
*morse.dot(); morse.dot(); morse.dot();&lt;br /&gt;
*morse.dash(); morse.dash(); morse.dash();&lt;br /&gt;
*morse.dot(); morse.dot(); morse.dot();&lt;br /&gt;
&lt;br /&gt;
== Ejemplos de Código ==&lt;br /&gt;
La página de Arduino cuenta con una serie de ejemplos para comenzar a entender su funcionamiento, con componentes base tales como Pantallas, LED’s, Potenciometros, etc. &lt;br /&gt;
&lt;br /&gt;
Ejemplo de parpadeo de LED&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  Blink&lt;br /&gt;
  Turns on an LED on for one second, then off for one second, repeatedly.&lt;br /&gt;
 &lt;br /&gt;
  This example code is in the public domain.&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
// Pin 13 has an LED connected on most Arduino boards.&lt;br /&gt;
// give it a name:&lt;br /&gt;
int led = 13;&lt;br /&gt;
&lt;br /&gt;
// the setup routine runs once when you press reset:&lt;br /&gt;
void setup() { &lt;br /&gt;
  // initialize the digital pin as an output.&lt;br /&gt;
  pinMode(led, OUTPUT);     &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// the loop routine runs over and over again forever:&lt;br /&gt;
void loop() {&lt;br /&gt;
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)&lt;br /&gt;
  delay(1000);               // wait for a second&lt;br /&gt;
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW&lt;br /&gt;
  delay(1000);               // wait for a second&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de lectura de Potenciometro&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  ReadAnalogVoltage&lt;br /&gt;
  Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.&lt;br /&gt;
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.&lt;br /&gt;
 &lt;br /&gt;
 This example code is in the public domain.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// the setup routine runs once when you press reset:&lt;br /&gt;
void setup() {&lt;br /&gt;
  // initialize serial communication at 9600 bits per second:&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// the loop routine runs over and over again forever:&lt;br /&gt;
void loop() {&lt;br /&gt;
  // read the input on analog pin 0:&lt;br /&gt;
  int sensorValue = analogRead(A0);&lt;br /&gt;
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):&lt;br /&gt;
  float voltage = sensorValue * (5.0 / 1023.0);&lt;br /&gt;
  // print out the value you read:&lt;br /&gt;
  Serial.println(voltage);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ejemplo&lt;br /&gt;
hacer contar un display de 7 segmentos de 1 a 3 cada 1 segundo, llamando a una función &lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
void setup(){   // configuramos los pines de salida donde conectaremos los pines con una resistencia en serie al display de 7 segmentos&lt;br /&gt;
  pinMode(34, OUTPUT);  // a &lt;br /&gt;
  pinMode(36, OUTPUT);  // b&lt;br /&gt;
  pinMode(38, OUTPUT);  // c&lt;br /&gt;
  pinMode(40, OUTPUT);  // d&lt;br /&gt;
  pinMode(42, OUTPUT);  //e&lt;br /&gt;
  pinMode(44, OUTPUT);  //f&lt;br /&gt;
  pinMode(46, OUTPUT);  //g&lt;br /&gt;
 }&lt;br /&gt;
void display (int a, int b, int c, int d, int e, int f, int g)// Función del display &lt;br /&gt;
{&lt;br /&gt;
  digitalWrite (34,a);   &lt;br /&gt;
  digitalWrite (36,b);   &lt;br /&gt;
  digitalWrite (38,c);&lt;br /&gt;
  digitalWrite (40,d);&lt;br /&gt;
  digitalWrite (42,e);&lt;br /&gt;
  digitalWrite (44,f);&lt;br /&gt;
  digitalWrite (46,g);&lt;br /&gt;
}&lt;br /&gt;
 void loop(){&lt;br /&gt;
  display (0,1,1,0,0,0,0); //  mostrará 1 en el display&lt;br /&gt;
  delay(1000);&lt;br /&gt;
display (1,1,0,1,1,0,1); //  mostrará 2 en el display&lt;br /&gt;
  delay(1000);&lt;br /&gt;
display (1,1,1,1,0,0,1); //  mostrará 3 en el display&lt;br /&gt;
  delay(1000);  // por Laiolo Santiago&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instalación en diferentes entornos ==&lt;br /&gt;
&lt;br /&gt;
'''Windows'''&lt;br /&gt;
Los pasos a seguir son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* Descargar las versiones más reciente de Java Runtime Enviroment (J2RE) y del IDE Arduino.&lt;br /&gt;
* Instalar los controladores FTDI USB, con la placa Arduino conectada (o controlador para CH340, para algunas placas no oficiales).&lt;br /&gt;
* Ejecutar el IDE Arduino para abrir la interfaz y configurar el puerto USB donde está conectada la placa.&lt;br /&gt;
&lt;br /&gt;
'''GNU/Linux'''&lt;br /&gt;
Para instalar Arduino en un sistema [[GNU/Linux]] necesitamos los siguientes programas para resolver las dependencias:&lt;br /&gt;
&lt;br /&gt;
* Sun java runtime, jre.&lt;br /&gt;
* avr-gcc, compilador para la familia de microcontroladores avr de atmel.&lt;br /&gt;
* avr-libc, libc del compilador avr-gcc.&lt;br /&gt;
&lt;br /&gt;
En algunas distribuciones conviene desinstalar, si no es necesario, el programa &amp;quot;brltty&amp;quot; que permite el acceso al terminal a personas invidentes. Para concluir, se descarga el [[framework]] de Arduino, se descomprime y ejecuta.&lt;br /&gt;
&lt;br /&gt;
== Otras interfaces de programación ==&lt;br /&gt;
Es posible comunicar una aplicación que corra sobre Arduino con otros dispositivos que corran otros lenguajes de programación y aplicaciones populares.&lt;br /&gt;
debido a que Arduino usa la transmisión serial de datos, la cuál es soportada por la mayoría de los lenguajes que se mencionan a continuación. Y para los que no soportan el formato serie de forma nativa, es posible utilizar software intermediario que traduzca los mensajes enviados por ambas partes para permitir una comunicación fluida. Algunos ejemplos de lenguajes son:&lt;br /&gt;
&lt;br /&gt;
* 3DVIA Virtools: aplicaciones interactivas y de tiempo real.&lt;br /&gt;
* [[Adobe Director]]&lt;br /&gt;
* [[Ardublock]]&lt;br /&gt;
* [[Ardublockly]]&lt;br /&gt;
* [[BlitzMax]] (con acceso restringido)&lt;br /&gt;
* [[Lenguaje C|C]]&lt;br /&gt;
* [[C++]] (mediante libSerial o en Windows)&lt;br /&gt;
* [[C Sharp|C#]]&lt;br /&gt;
* [[Cocoa]]/[[Objective-C]] (para [[Mac OS X]])&lt;br /&gt;
* [[Adobe Flash Player|Flash]] (mediante ActionScript)&lt;br /&gt;
* [[Gambas]]&lt;br /&gt;
* [[Isadora]] (Interactividad audiovisual en tiempo real)&lt;br /&gt;
* [[Instant Reality]] (X3D)&lt;br /&gt;
* [[Java (lenguaje de programación)|Java]]&lt;br /&gt;
* [[Liberlab]] (software de medición y experimentación)&lt;br /&gt;
* [[Mathematica]]&lt;br /&gt;
* [[Matlab]]&lt;br /&gt;
* [[MaxMSP]] (Entorno gráfico de programación para aplicaciones musicales, de audio y multimedia)&lt;br /&gt;
* [[Minibloq]] (Entorno gráfico de programación, corre también en las computadoras [[OLPC]])&lt;br /&gt;
* [[Perl]]&lt;br /&gt;
* [[Php]]&lt;br /&gt;
* [[Physical Etoys]] (Entorno gráfico de programación usado para proyectos de robótica educativa)&lt;br /&gt;
* [[Processing]]&lt;br /&gt;
* [[Pure Data]]&lt;br /&gt;
* [[Python]]&lt;br /&gt;
* [[Ruby]]&lt;br /&gt;
* Scratch for Arduino (S4A) (Entorno gráfico de programación, modificación del entorno para niños [[Scratch (lenguaje de programación)|Scratch]], del [[MIT]])&lt;br /&gt;
* [[Squeak]] (Implementación libre de Smalltalk)&lt;br /&gt;
* [[SuperCollider]] (Síntesis de audio en tiempo real)&lt;br /&gt;
* [[VBScript]]&lt;br /&gt;
* [[Visual Basic NET]]&lt;br /&gt;
* [[VVVV]] (Síntesis de vídeo en tiempo real)&lt;br /&gt;
&lt;br /&gt;
'''Pduino'''&lt;br /&gt;
[[Pduino]] nace de la fusión de los proyectos [[Pure Data]] y Arduino. Ambos proyectos de fuente abierta permiten trabajar con interfaz gráfica. Cargando el firmware de Pure Data (PD) a la placa Arduino se puede acceder a ella mediante el lenguaje de programación gráfico.&lt;br /&gt;
&lt;br /&gt;
'''Minibloq'''&lt;br /&gt;
Minibloq es un entorno gráfico de programación que puede generar código nativo de Arduino y escribirlo directamente en la memoria flash de la placa. Tiene un modo que permite visualizar el código generado, el cual también puede ser copiado y pegado en el Arduino-IDE, para los usuarios que intentan hacer el pasaje de una herramienta gráfica a la programación en sintaxis C/C++. Minibloq es de uso libre y sus fuentes también están disponibles gratuitamente. Una característica importante, es que puede correr también en la computadora portátil [[OLPC]], mediante el software [[Wine]].&lt;br /&gt;
&lt;br /&gt;
'''Physical Etoys'''&lt;br /&gt;
Physical Etoys es una extensión libre y gratuita que permite que diversos dispositivos electrónicos como Lego NXT, las placas Arduino, Sphero, Kinect, Joystick Wiimote, entre otros, puedan ser programados fácilmente y que interactúen entre sí gracias a su sistema de bloques.&lt;br /&gt;
&lt;br /&gt;
En el caso de Arduino, Physical Etoys ofrece dos modos de programación, el modo &amp;quot;directo&amp;quot; y el modo &amp;quot;compilado&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Modo directo: El modo &amp;quot;directo&amp;quot;, en el cual los programas se ejecutan en la computadora del usuario y las órdenes se transmiten inmediatamente a través del puerto serie. El modo &amp;quot;directo&amp;quot; permite modificar los programas y ver los cambios producidos de manera inmediata en el comportamiento del robot, lo cual facilita la programación, sobre todo al usuario inexperto. Asimismo, permite ver constantemente los valores de los sensores y utilizar el robot, por ejemplo, como para adquirir datos.&lt;br /&gt;
&lt;br /&gt;
Modo compilado: El modo &amp;quot;compilado&amp;quot;, en el cual los programas se traducen a C++ y se bajan a la placa, para luego ejecutarse de manera independiente de la computadora. El modo &amp;quot;compilado&amp;quot;, por su parte, elimina el retardo que introduce la comunicación con la computadora, lo cual lo hace preferible para el desarrollo de tareas autónomas, en las cuales la velocidad de respuesta del robot debe ser óptima.&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
* [[BASIC Stamp]]&lt;br /&gt;
* [[Impresión 3D]]&lt;br /&gt;
* [[Gumstix]]&lt;br /&gt;
* [[Minibloq]]&lt;br /&gt;
* [[MiniPC]]&lt;br /&gt;
* [[OOPIC]]&lt;br /&gt;
* [[PICAXE]]&lt;br /&gt;
* [[Raspberry Pi]]&lt;br /&gt;
* [[Physical Etoys]]&lt;br /&gt;
* [[Robot]]&lt;br /&gt;
* [[X10]]&lt;br /&gt;
* [[Sanguino (microcontrolador)|Sanguino]]&lt;br /&gt;
== Fuentes==&lt;br /&gt;
*Arduino. Disponible en: [http://arduino.cl/que-es-arduino/ Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.arduino.org/ Proyecto Arduino (Sitio oficial de la empresa radicada en Italia)] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.arduino.cc/ Proyecto Arduino (Sitio oficial con foros y referencia de programación)] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://arduino.stackexchange.com/ Arduino Stack Exchange] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [https://www.sparkfun.com/arduino_guide Comparativa de los distintos modelos disponibles] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.youngeek.com/proyectos-arduino/ Proyectos con arduino paso a paso] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [https://www.biicode.com/ Biicode] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://minibloq.org Entorno gráfico de programación para Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.acimut.com/monitoriza/monitorizaforarduino.html Scada para Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [https://www.b4x.com/b4r.html B4X B4R -Desarrolle aplicaciones en Basic gratuitamente que generan código Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.drouiz.com/tutoriales-arduino-2/ Ejercicios de diferente nivel para iniciarse en la electrónica con Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Software libre]]&lt;br /&gt;
[[Categoría:Microcontroladores]]&lt;br /&gt;
[[Categoría:Robótica]]&lt;br /&gt;
[[Categoría:Electrónica digital]]&lt;/div&gt;</summary>
		<author><name>Cristuline</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Arduino&amp;diff=3405925</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Arduino&amp;diff=3405925"/>
		<updated>2019-06-09T20:28:32Z</updated>

		<summary type="html">&lt;p&gt;Cristuline: /* Instalación en diferentes entornos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ficha Hardware&lt;br /&gt;
| nombre          = Arduino.&lt;br /&gt;
| imagen          = [[Archivo:quees.png|miniaturadeimagen]]&lt;br /&gt;
| pie         = &lt;br /&gt;
| fecha-invención = [[2005]].&lt;br /&gt;
| nombre-inventor =  [[Massimo Banzi]]&lt;br /&gt;
| conn1           = &lt;br /&gt;
| via1_1          = Placa computadora ([[microcontrolador]] de [[Placa base|placa]] simple)&lt;br /&gt;
| nombre-clase    = &lt;br /&gt;
| clase1          = &lt;br /&gt;
| manuf1          = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
'''Arduino'''. Plataforma de prototipos electrónica de código abierto (open-source), basada en hardware y software flexibles y fáciles de usar. Se enfoca en acercar y facilitar el uso de la electrónica y programación de sistemas embebidos en proyectos multidisciplinarios. Toda la plataforma, tanto para sus componentes de [[hardware]] como de [[software]], son liberados con licencia de [[código abierto]] que permite libertad de acceso a ellos. &lt;br /&gt;
&lt;br /&gt;
Las placas Arduino están disponibles de dos formas: ensambladas o en forma de kits (por sus siglas en inglés &amp;quot;DIY&amp;quot;). Adafruit Industries estimó a mediados del año [[2011]] que, alrededor de 300,000 placas Arduino habían sido producidas comercialmente y en el año [[2013]] estimó que alrededor de 700.000 placas oficiales de la empresa Arduino estaban en manos de los usuarios. Se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software tal como [[Adobe Flash Professional|Adobe Flash]], [[Processing]], [[Max/MSP]], [[Pure Data]], etc. &lt;br /&gt;
== Historia ==&lt;br /&gt;
Se inició en el año [[2005]] como un proyecto para estudiantes en el [[Instituto IVREA]], en [[Italia]]. El nombre del proyecto viene del nombre del ''Bar di Re Arduino de Ivrea'' (Bar del Rey Arduino) donde Massimo Banzi pasaba algunas horas. En la creación de este proyecto contribuyó el estudiante colombiano Hernando Barragán, quien desarrolló la tarjeta electrónica Wiring, el lenguaje de programación y la plataforma de desarrollo. Una vez concluida dicha plataforma, los investigadores trabajaron para hacerlo más ligero, más económico y disponible para la comunidad de código abierto (hardware y código abierto). El instituto finalmente cerró sus puertas, así que los investigadores, entre ellos el español David Cuartielles, promovieron la idea, Banzi afirmó años más tarde, que el proyecto surgió como una necesidad de subsistir ante el inminente cierre del Instituto de diseño Interactivo IVREA. Es decir, que, al crear un producto de hardware abierto, este no podría ser embargado.&lt;br /&gt;
&lt;br /&gt;
Posteriormente, [[Google]] colaboró en el desarrollo del Kit Android ADK (Accesory Development Kit), una placa Arduino capaz de comunicarse directamente con teléfonos móviles inteligentes bajo el sistema operativo [[Android]] para que el teléfono controle luces, motores y sensores conectados de Arduino. Google presenta ADK, interfaz basada en Arduino para Android. Para la producción en serie de la primera versión se tomó en cuenta que el coste no fuera mayor de 30 euros, que fuera ensamblado en una placa de color azul, debía ser [[Plug and Play]] y que trabajara con todas las plataformas informáticas tales como [[MacOSX]], [[Windows]] y [[GNU/Linux]]. Las primeras 300 unidades se las dieron a los alumnos del Instituto IVREA, con el fin de que las probaran y empezaran a diseñar sus primeros prototipos.&lt;br /&gt;
&lt;br /&gt;
En el año 2005, se incorporó al equipo el profesor Tom Igoe que había trabajado en computación física, después de que se enterara del mismo a través de Internet. Igoe ofreció su apoyo para desarrollar el proyecto a gran escala y hacer los contactos para distribuir las tarjetas en territorio estadounidense. En la feria Maker Fair de 2011 se presentó la primera placa Arduino 32 bit para realizar tareas más pesadas.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Los modelos de Arduino se categorizan en placas de desarrollo, placas de expansión (''shields''), kits, accesorios e impresoras 3d.&lt;br /&gt;
*Placas: Arduino Galileo, Arduino Uno, Arduino Leonardo, Arduino Due, Arduino Yún, Arduino Tre (En Desarrollo), Arduino Zero, Arduino Micro, Arduino Esplora, Arduino Mega ADK, Arduino Ethernet, Arduino Mega 2560, Arduino Robot, Arduino Mini, Arduino Nano, LilyPad Arduino Simple, LilyPad Arduino SimpleSnap, LilyPad Arduino, LilyPad Arduino USB, Arduino Pro Mini, Arduino Fio, Arduino Pro, Arduino MKR1000/Genuino MKR1000, Arduino MICRO/Genuino MICRO, Arduino 101/Genuino 101, Arduino Gemma, Arduino MKR Vidor 4000, Arduino MKR WAN 1300, ARduino MKR NB 1500, ARduino MKR FOX 1200, Arduino Nano Every, Arduino Nano 33 BLE, Arduino Nano 33 BLE Sense, Arduino Nano 33 IoT.&lt;br /&gt;
*Placas de expansión (''shields''): Arduino GSM Shield, Arduino Ethernet Shield, Arduino WiFi Shield, Arduino Wireless SD Shield, Arduino USB Host Shield, Arduino Motor Shield, Arduino Wireless Proto Shield, Arduino Proto Shield.&lt;br /&gt;
*Kits: The Arduino Starter Kit, Arduino Materia 101, Arduino Science Kit Physics Lab.&lt;br /&gt;
Accesorios: TFT LCD Screen, USB/Serial Light Adapter, Arduino ISP, Mini USB/Serial Adapter.&lt;br /&gt;
Impresoras 3d: Arduino Materia 101.&lt;br /&gt;
&lt;br /&gt;
== Aplicaciones ==&lt;br /&gt;
La plataforma Arduino ha sido usada como base en diversas aplicaciones electrónicas:&lt;br /&gt;
* Xoscillo: [[Osciloscopio]] de código abierto.&lt;br /&gt;
* Equipo científico para investigaciones&lt;br /&gt;
* Arduinome: Un dispositivo [[MIDI|controlador MIDI&lt;br /&gt;
* OBDuino: un [[económetro]] que usa una interfaz de [[OBD|diagnóstico a bordo]] que se halla en los automóviles modernos&lt;br /&gt;
* SCA-ino: Sistema de cómputo automotriz capaz de monitorear sensores como el TPS, el MAP y el 02S y controlar actuadores automotrices como la bobina de ignición, la válvula IAC y aceleradores electrónicos&lt;br /&gt;
* Humane Reader: dispositivo electrónico de bajo coste con salida de señal de TV que puede manejar una biblioteca de 5000 títulos en una tarjeta [[microSD&lt;br /&gt;
* The Humane PC: equipo que usa un módulo Arduino para emular un computador personal, con un monitor de televisión y un teclado para computadora&lt;br /&gt;
* Ardupilot: software y hardware de [[drones aeronaves no tripuladas]]&lt;br /&gt;
* ArduinoPhone: un teléfono móvil construido sobre un módulo Arduino&lt;br /&gt;
* Máquinas de [[control numérico]] por computadora (CNC)&lt;br /&gt;
* Open Theremín Uno: Versión digital de hardware libre del instrumento Theremín&lt;br /&gt;
* [[Impresora 3D|Impresoras 3D]]&lt;br /&gt;
&lt;br /&gt;
=== Entradas y salidas ===&lt;br /&gt;
Poniendo de ejemplo al módulo Diecimila, este consta de 14 entradas digitales configurables como entradas y/o salidas que operan a 5 voltios. Cada contacto puede proporcionar o recibir como máximo 40 mA. Los contactos 3, 5, 6, 9, 10 y 11 pueden proporcionar una salida PWM (Pulse Width Modulation). Si se conecta cualquier cosa a los contactos 0 y 1, eso interferirá con la comunicación USB. Diecimila también tiene 6 entradas analógicas que proporcionan una resolución de 10 bits. Por defecto, aceptan de 0 hasta 5 voltios (aunque es posible cambiar el nivel más alto utilizando el contacto Aref y algún código de bajo nivel).&lt;br /&gt;
&lt;br /&gt;
== Lenguaje de programación ==&lt;br /&gt;
La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el lenguaje de programación de alto nivel Processing que es similar a C++. Arduino está basado en C y soporta todas las funciones del estándar C y algunas de C. A continuación, se muestra un resumen con la estructura y sintaxis del lenguaje Arduino:&lt;br /&gt;
===Funciones básicas y operadores===&lt;br /&gt;
'''Sintaxis básica'''&lt;br /&gt;
* Delimitadores: {}&lt;br /&gt;
* Comentarios: //, /* */&lt;br /&gt;
* Cabeceras: #define, #include&lt;br /&gt;
* Operadores aritméticos: +, -, *, /, %&lt;br /&gt;
* Asignación: =&lt;br /&gt;
* Operadores de comparación: ==, !=, &amp;lt;, &amp;gt;, &amp;lt;=, &amp;gt;=&lt;br /&gt;
* Operadores Booleanos: &amp;amp;&amp;amp;, ||, !&lt;br /&gt;
* Operadores de acceso a punteros: *, &amp;amp;&lt;br /&gt;
* Operadores de bits: &amp;amp;, |, ^, ~, &amp;lt;&amp;lt;, &amp;gt;&amp;gt;&lt;br /&gt;
* Operadores compuestos:&lt;br /&gt;
** Incremento y decremento de variables: ++, --&lt;br /&gt;
** Asignación y operación: +=, -=, *=, /=, &amp;amp;=, |=&lt;br /&gt;
&lt;br /&gt;
'''Estructuras de control'''&lt;br /&gt;
* Condicionales: if, if...else, switch case&lt;br /&gt;
* Bucles: for, while, do. while&lt;br /&gt;
* Bifurcaciones y saltos: break, continue, return, goto&lt;br /&gt;
&lt;br /&gt;
'''Variables'''&lt;br /&gt;
&lt;br /&gt;
En cuanto al tratamiento de las variables también comparte un gran parecido con el lenguaje C.&lt;br /&gt;
&lt;br /&gt;
''Constantes''&lt;br /&gt;
* HIGH/LOW: representan los niveles alto y bajo de las señales de entrada y salida. Los niveles altos son aquellos de 3 voltios o más.&lt;br /&gt;
* INPUT/OUTPUT: entrada o salida.&lt;br /&gt;
* false (falso): Señal que representa al cero lógico. A diferencia de las señales HIGH/LOW, su nombre se escribe en letra minúscula.&lt;br /&gt;
* true (verdadero): Señal cuya definición es más amplia que la de ''false''. Cualquier número entero diferente de cero es &amp;quot;verdadero&amp;quot;, según el [[álgebra de Boole]], como en el caso de -200, -1 o 1. Si es cero, es &amp;quot;falso&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
''Tipos de datos''&lt;br /&gt;
* void, boolean, char, unsigned char, byte, int, unsigned int, word, long, unsigned long, float, double, string, array.&lt;br /&gt;
&lt;br /&gt;
''Conversión entre tipos''&lt;br /&gt;
Estas funciones reciben como argumento una variable de cualquier tipo y devuelven una variable convertida en el tipo deseado.&lt;br /&gt;
* char(), byte(), int(), word(), long(), float()&lt;br /&gt;
&lt;br /&gt;
''Cualificadores y ámbito de las variables''&lt;br /&gt;
* static, volatile, const.&lt;br /&gt;
&lt;br /&gt;
''Utilidades''&lt;br /&gt;
* sizeof()&lt;br /&gt;
'''Funciones básicas'''&lt;br /&gt;
&lt;br /&gt;
''E/S digital''&lt;br /&gt;
* pinMode(pin, modo).&lt;br /&gt;
* digitalWrite(pin, valor).&lt;br /&gt;
* int digitalRead(pin).&lt;br /&gt;
&lt;br /&gt;
''E/S analógica''&lt;br /&gt;
* analogReference(tipo)&lt;br /&gt;
* int analogRead(pin)&lt;br /&gt;
* analogWrite(pin, valor)&lt;br /&gt;
&lt;br /&gt;
''E/S avanzada''&lt;br /&gt;
* shiftOut(dataPin, clockPin, bitOrder, valor)&lt;br /&gt;
* unsigned long pulseIn(pin, valor)&lt;br /&gt;
&lt;br /&gt;
''Tiempo''&lt;br /&gt;
* unsigned long millis()&lt;br /&gt;
* unsigned long micros()&lt;br /&gt;
* delay(ms)&lt;br /&gt;
* delayMicroseconds(microsegundos)&lt;br /&gt;
&lt;br /&gt;
''Matemáticas''&lt;br /&gt;
* min(x, y), max(x, y), abs(x), constrain(x, a, b), map(valor, fromLow, fromHigh, toLow, toHigh), pow(base, exponente), sqrt(x)&lt;br /&gt;
&lt;br /&gt;
''Trigonometría''&lt;br /&gt;
* sin(rad), cos(rad), tan(rad)&lt;br /&gt;
&lt;br /&gt;
''Números aleatorios''&lt;br /&gt;
* randomSeed(semilla), long random(máx), long random(mín, máx)&lt;br /&gt;
&lt;br /&gt;
''Bits y Bytes''&lt;br /&gt;
* lowByte(), highByte(), bitRead(), bitWrite(), bitSet(), bitClear(), bit()&lt;br /&gt;
&lt;br /&gt;
''Interrupciones externas''&lt;br /&gt;
* attachInterrupt(interrupción, función, modo)&lt;br /&gt;
* detachInterrupt(interrupción)&lt;br /&gt;
&lt;br /&gt;
''Interrupciones''&lt;br /&gt;
* interrupts(), noInterrupts()&lt;br /&gt;
&lt;br /&gt;
''Comunicación por puerto serie''&lt;br /&gt;
Las funciones de manejo del puerto serie deben ir precedidas de la palabra &amp;quot;Serial&amp;quot; aunque no necesitan ninguna declaración en la cabecera del programa. Por esto se consideran funciones base del lenguaje. Estas son las funciones para transmisión serial:&lt;br /&gt;
* begin(), available(), read(), flush(), print(), println(), write()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Manipulación de puertos'''&lt;br /&gt;
&lt;br /&gt;
Los registros de puertos permiten la manipulación a más bajo nivel y de forma más rápida de los contactos de entrada/salida del microcontrolador de las placas Arduino. Los contactos eléctricos de las placas Arduino están repartidos entre los registros B(0-7), C (analógicos) y D(8-13). Mediante estas variables se observa y se modificada su estado:&lt;br /&gt;
* DDR[B/C/D]: Data Direction Register (o dirección del registro de datos) del puerto B, C ó D. Es una variable de Lectura/Escritura que sirve para especificar cuales contactos serán usados como entrada y salida.&lt;br /&gt;
* PORT[B/C/D]: Data Register (o registro de datos) del puerto B, C ó D. Es una variable de Lectura/Escritura.&lt;br /&gt;
* PIN[B/C/D]: Input Pins Register (o registro de pines de entrada) del puerto B, C ó D. Variable de sólo lectura.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, para especificar los contactos 9 a 13 como salidas y el 8 como entrada (puesto que el puerto D usa los pines de la placa Arduino 8 al 13 digitales) bastaría utilizar la siguiente asignación:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;DDRD = B11111110;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como se ha podido comprobar, el conocimiento del lenguaje C, permite la programación en Arduino debido a la similitud entre este y el lenguaje nativo del proyecto, lo que implica el aprendizaje de algunas funciones específicas de que dispone el lenguaje del proyecto para manejar los diferentes parámetros. Se pueden construir aplicaciones de cierta complejidad sin necesidad de muchos conceptos previos.&lt;br /&gt;
&lt;br /&gt;
=== AVR Libc ===&lt;br /&gt;
Los programas compilados con Arduino (salvo en las placas con CorteX M3) se enlazan contra AVR Libc por lo que tienen acceso a algunas de sus funciones. AVR Libc es un proyecto de software libre con el objetivo de proporcionar una [[biblioteca (informática)|biblioteca]] C de alta calidad para utilizarse con el compilador GCC sobre microcontroladores Atmel AVR. Se compone de 3 partes:&lt;br /&gt;
&lt;br /&gt;
* avr-binutils&lt;br /&gt;
* avr-gcc&lt;br /&gt;
* avr-libc&lt;br /&gt;
&lt;br /&gt;
La mayoría del lenguaje de programación Arduino está escrita con constantes y funciones de AVR y ciertas funcionalidades sólo se pueden obtener haciendo uso de AVR.&lt;br /&gt;
&lt;br /&gt;
'''Interrupciones'''&lt;br /&gt;
Las señales de interrupción son las siguientes:&lt;br /&gt;
&lt;br /&gt;
* cli(): desactiva las interrupciones globales&lt;br /&gt;
* sei(): activa las interrupciones&lt;br /&gt;
&lt;br /&gt;
Esto afectará al temporizador y a la comunicación serial. La función delayMicroseconds() desactiva las interrupciones cuando se ejecuta.&lt;br /&gt;
&lt;br /&gt;
'''Temporizadores'''&lt;br /&gt;
La función delayMicroseconds() crea el menor retardo posible del lenguaje Arduino que ronda los 2μs. Para retardos más pequeños se debe utilizar la llamada de ensamblador 'nop' (no operación). Cada sentencia 'nop' se ejecutará en un ciclo de máquina (16 MHz) de aproximadamente 62,5ns.&lt;br /&gt;
&lt;br /&gt;
'''Manipulación de puertos'''&lt;br /&gt;
La manipulación de puertos con código AVR es más rápida que utilizar la función digitalWrite() de Arduino.&lt;br /&gt;
&lt;br /&gt;
'''Establecer Bits en variables'''&lt;br /&gt;
cbi y sbi son mecanismos estándar (AVR) para establecer o limpiar bits en PORT y otras variables.&lt;br /&gt;
&lt;br /&gt;
===Diferencias con Processing===&lt;br /&gt;
La sintaxis del lenguaje de programación Arduino es una versión simplificada de C/C++ y tiene algunas diferencias respecto de Processing. Debido a que Arduino está basado en C/C++ mientras que Processing se basa en Java, existen varias diferencias en cuanto a la sintaxis de ambos lenguajes y el modo en que se programa:&lt;br /&gt;
&lt;br /&gt;
'''Arreglos'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Arduino !! Processing&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int bar[8];&lt;br /&gt;
bar[0] = 1;&amp;lt;/source&amp;gt;&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int[] bar = new int[8];&lt;br /&gt;
bar[0] = 1;&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int foo[] = { 0, 1, 2 }; &amp;lt;/source&amp;gt;&lt;br /&gt;
|&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt; int foo[] = { 0, 1, 2 };&amp;lt;/source&amp;gt; o bien &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt; int[] foo = { 0, 1, 2 };&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Impresión de cadenas'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Arduino !! Processing&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;Serial.println(&amp;quot;hello world&amp;quot;);&amp;lt;/source&amp;gt; &lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;println(&amp;quot;hello world&amp;quot;);&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int i = 5; &lt;br /&gt;
Serial.println(i);&amp;lt;/source&amp;gt; &lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int i = 5; &lt;br /&gt;
println(i);&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int i = 5; &lt;br /&gt;
Serial.print(&amp;quot;i = &amp;quot;); &lt;br /&gt;
Serial.print(i); &lt;br /&gt;
Serial.println();&amp;lt;/source&amp;gt; &lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int i=&amp;quot;5&amp;quot;; &lt;br /&gt;
println(&amp;quot;i =&amp;quot; + i);&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de programación ===&lt;br /&gt;
El primer paso antes de comprobar que la instalación es correcta y empezar a trabajar con Arduino, es usar ejemplos prácticos que vienen disponibles con el dispositivo. Se recomienda abrir el ejemplo “led_blink” el cual crea una intermitencia por segundo en un led conectado en el pin 13.&lt;br /&gt;
&lt;br /&gt;
El código necesario es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
# define LED_PIN 13&lt;br /&gt;
void setup () {&lt;br /&gt;
 // Activado del contacto 13 para salida digital&lt;br /&gt;
 pinMode (LED_PIN, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
// Bucle infinito&lt;br /&gt;
void loop () {&lt;br /&gt;
 // Encendido del diodo LED enviando una señal alta&lt;br /&gt;
 digitalWrite (LED_PIN, HIGH);&lt;br /&gt;
 // Tiempo de espera de 1 segundo (1000 ms)&lt;br /&gt;
 delay (1000);&lt;br /&gt;
 // Apagado del diodo LED enviando una señal baja.&lt;br /&gt;
 digitalWrite (LED_PIN, LOW);&lt;br /&gt;
 // Tiempo de espera de 1 segundo&lt;br /&gt;
 delay (1000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas en Arduino ==&lt;br /&gt;
Las [[biblioteca (informática)|bibliotecas]] estándar que ofrece Arduino son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''Serial''':&lt;br /&gt;
Lectura y escritura por el puerto serie.&lt;br /&gt;
&lt;br /&gt;
'''EEPROM''':&lt;br /&gt;
Lectura y escritura en el almacenamiento permanente&lt;br /&gt;
* read(), write()&lt;br /&gt;
&lt;br /&gt;
'''Ethernet''':&lt;br /&gt;
Conexión a Internet mediante “Arduino Ethernet Shield“. Puede funcionar como servidor que acepta peticiones remotas o como cliente. Se permiten hasta cuatro conexiones simultáneas Los comandos usados son los siguientes:&lt;br /&gt;
* Servidor: Server(), begin(), available(), write(), print(), println()&lt;br /&gt;
* Cliente: Client(), connected(), connect(), write(), print(), println(), available(), read(), flush(), stop()&lt;br /&gt;
&lt;br /&gt;
'''Firmata'''.&lt;br /&gt;
Es una biblioteca de comunicación con aplicaciones informáticas utilizando el protocolo estándar del puerto serie.&lt;br /&gt;
&lt;br /&gt;
'''LiquidCrystal''':&lt;br /&gt;
Control de [[LCD]]s con [[chipset]] [[Hitachi HD44780]] o compatibles&lt;br /&gt;
&lt;br /&gt;
'''Servo''':&lt;br /&gt;
Biblioteca para el control de [[servo motoresA partir de la versión 0017 de Arduino la biblioteca soporta hasta 12 motores en la mayoría de las placas Arduino y 48 en la Arduino Mega. Estos son los comandos usados:&lt;br /&gt;
* attach(), write(), writeMicroseconds(), read(), attached(), detach()&lt;br /&gt;
&lt;br /&gt;
'''SoftwareSerial''':&lt;br /&gt;
Comunicación serie en contactos digitales. Por defecto Arduino incluye comunicación sólo en los contactos 0 y 1 pero gracias a esta biblioteca puede realizarse esta comunicación con los restantes.&lt;br /&gt;
&lt;br /&gt;
'''Stepper''':&lt;br /&gt;
Control de [[motor paso a paso|motores paso a paso]] unipolares o bipolares.&lt;br /&gt;
* Stepper(steps, pin1, pin2), Stepper(steps, pin1, pin2, pin3, pin4), setSpeed(rpm), step(steps)&lt;br /&gt;
&lt;br /&gt;
'''Wire''':&lt;br /&gt;
Envío y recepción de datos sobre una red de dispositivos o sensores mediante [[Two Wire Interface]] (TWI/I2C). &lt;br /&gt;
Las bibliotecas ''Matrix'' y ''Sprite'' de Wiring son totalmente compatibles con Arduino y sirven para manejo de matrices de diodos LED. También se ofrece información sobre diversas bibliotecas desarrolladas por diversos colaboradores que permiten realizar muchas tareas.&lt;br /&gt;
&lt;br /&gt;
'''Creación de bibliotecas''':&lt;br /&gt;
Los usuarios de Arduino tienen la posibilidad de escribir sus propias bibliotecas. Ello permite disponer de código que puede reutilizarse en otros proyectos, mantener el código fuente principal separado de las bibliotecas y la organización de los programas construidos es más clara.&lt;br /&gt;
==== Ejemplo de biblioteca ====&lt;br /&gt;
El siguiente ejemplo permite el envío de caracteres mediante el [[código Morse]]:&lt;br /&gt;
&lt;br /&gt;
Se crea el archivo Morse.h que incluye la definición de la clase Morse que tiene 3 funciones: un constructor (Morse()), una función para enviar 1 punto (dot()) y una función para enviar una raya (dash()). La variable _pin permite indicar el contacto a usar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  Morse.h - Biblioteca para el envío de Código Morse.&lt;br /&gt;
  Creado por David A. Mellis, el 2 de noviembre de 2007.&lt;br /&gt;
  Liberado al dominio público.&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
# ifndef Morse_h&lt;br /&gt;
# define Morse_h&lt;br /&gt;
&lt;br /&gt;
# include &amp;quot;WProgram.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class Morse&lt;br /&gt;
{&lt;br /&gt;
  public:&lt;br /&gt;
    Morse(int pin);&lt;br /&gt;
    void dot();&lt;br /&gt;
    void dash();&lt;br /&gt;
  private:&lt;br /&gt;
    int _pin;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
# endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Debe ser creado el archivo Morse.cpp con el código, es decir con la implementación de los métodos declarados:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  Morse.cpp - Biblioteca para el envío de Código Morse.&lt;br /&gt;
  Creado por David A. Mellis, el 2 de noviembre de 2007.&lt;br /&gt;
  Liberado al dominio público.&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
# include &amp;quot;WProgram.h&amp;quot;&lt;br /&gt;
# include &amp;quot;Morse.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Morse::Morse(int pin)&lt;br /&gt;
{&lt;br /&gt;
  pinMode(pin, OUTPUT);&lt;br /&gt;
  _pin = pin;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Morse::dot()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(_pin, HIGH);&lt;br /&gt;
  delay(250);&lt;br /&gt;
  digitalWrite(_pin, LOW);&lt;br /&gt;
  delay(250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Morse::dash()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(_pin, HIGH);&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  digitalWrite(_pin, LOW);&lt;br /&gt;
  delay(250);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La biblioteca creada así, puede ser usada mediante el comando #include. Si se desea enviar una petición de auxilio [[SOS]] por el contacto 13 bastaría con llamar a Morse(13) y ejecutar la siguiente secuencia:&lt;br /&gt;
*morse.dot(); morse.dot(); morse.dot();&lt;br /&gt;
*morse.dash(); morse.dash(); morse.dash();&lt;br /&gt;
*morse.dot(); morse.dot(); morse.dot();&lt;br /&gt;
&lt;br /&gt;
== Ejemplos de Código ==&lt;br /&gt;
La página de Arduino cuenta con una serie de ejemplos para comenzar a entender su funcionamiento, con componentes base tales como Pantallas, LED’s, Potenciometros, etc. &lt;br /&gt;
&lt;br /&gt;
Ejemplo de parpadeo de LED&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  Blink&lt;br /&gt;
  Turns on an LED on for one second, then off for one second, repeatedly.&lt;br /&gt;
 &lt;br /&gt;
  This example code is in the public domain.&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
// Pin 13 has an LED connected on most Arduino boards.&lt;br /&gt;
// give it a name:&lt;br /&gt;
int led = 13;&lt;br /&gt;
&lt;br /&gt;
// the setup routine runs once when you press reset:&lt;br /&gt;
void setup() { &lt;br /&gt;
  // initialize the digital pin as an output.&lt;br /&gt;
  pinMode(led, OUTPUT);     &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// the loop routine runs over and over again forever:&lt;br /&gt;
void loop() {&lt;br /&gt;
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)&lt;br /&gt;
  delay(1000);               // wait for a second&lt;br /&gt;
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW&lt;br /&gt;
  delay(1000);               // wait for a second&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de lectura de Potenciometro&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  ReadAnalogVoltage&lt;br /&gt;
  Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.&lt;br /&gt;
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.&lt;br /&gt;
 &lt;br /&gt;
 This example code is in the public domain.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// the setup routine runs once when you press reset:&lt;br /&gt;
void setup() {&lt;br /&gt;
  // initialize serial communication at 9600 bits per second:&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// the loop routine runs over and over again forever:&lt;br /&gt;
void loop() {&lt;br /&gt;
  // read the input on analog pin 0:&lt;br /&gt;
  int sensorValue = analogRead(A0);&lt;br /&gt;
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):&lt;br /&gt;
  float voltage = sensorValue * (5.0 / 1023.0);&lt;br /&gt;
  // print out the value you read:&lt;br /&gt;
  Serial.println(voltage);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ejemplo&lt;br /&gt;
hacer contar un display de 7 segmentos de 1 a 3 cada 1 segundo, llamando a una función &lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
void setup(){   // configuramos los pines de salida donde conectaremos los pines con una resistencia en serie al display de 7 segmentos&lt;br /&gt;
  pinMode(34, OUTPUT);  // a &lt;br /&gt;
  pinMode(36, OUTPUT);  // b&lt;br /&gt;
  pinMode(38, OUTPUT);  // c&lt;br /&gt;
  pinMode(40, OUTPUT);  // d&lt;br /&gt;
  pinMode(42, OUTPUT);  //e&lt;br /&gt;
  pinMode(44, OUTPUT);  //f&lt;br /&gt;
  pinMode(46, OUTPUT);  //g&lt;br /&gt;
 }&lt;br /&gt;
void display (int a, int b, int c, int d, int e, int f, int g)// Función del display &lt;br /&gt;
{&lt;br /&gt;
  digitalWrite (34,a);   &lt;br /&gt;
  digitalWrite (36,b);   &lt;br /&gt;
  digitalWrite (38,c);&lt;br /&gt;
  digitalWrite (40,d);&lt;br /&gt;
  digitalWrite (42,e);&lt;br /&gt;
  digitalWrite (44,f);&lt;br /&gt;
  digitalWrite (46,g);&lt;br /&gt;
}&lt;br /&gt;
 void loop(){&lt;br /&gt;
  display (0,1,1,0,0,0,0); //  mostrará 1 en el display&lt;br /&gt;
  delay(1000);&lt;br /&gt;
display (1,1,0,1,1,0,1); //  mostrará 2 en el display&lt;br /&gt;
  delay(1000);&lt;br /&gt;
display (1,1,1,1,0,0,1); //  mostrará 3 en el display&lt;br /&gt;
  delay(1000);  // por Laiolo Santiago&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instalación en diferentes entornos ==&lt;br /&gt;
&lt;br /&gt;
'''Windows'''&lt;br /&gt;
Los pasos a seguir son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* Descargar las versiones más reciente de Java Runtime Enviroment (J2RE) y del IDE Arduino.&lt;br /&gt;
* Instalar los controladores FTDI USB, con la placa Arduino conectada (o controlador para CH340, para algunas placas no oficiales).&lt;br /&gt;
* Ejecutar el IDE Arduino para abrir la interfaz y configurar el puerto USB donde está conectada la placa.&lt;br /&gt;
&lt;br /&gt;
'''GNU/Linux'''&lt;br /&gt;
Para instalar Arduino en un sistema [[GNU/Linux]] necesitamos los siguientes programas para resolver las dependencias:&lt;br /&gt;
&lt;br /&gt;
* Sun java runtime, jre.&lt;br /&gt;
* avr-gcc, compilador para la familia de microcontroladores avr de atmel.&lt;br /&gt;
* avr-libc, libc del compilador avr-gcc.&lt;br /&gt;
&lt;br /&gt;
En algunas distribuciones conviene desinstalar, si no es necesario, el programa &amp;quot;brltty&amp;quot; que permite el acceso al terminal a personas invidentes. Para concluir, se descarga el [[framework]] de Arduino, se descomprime y ejecuta.&lt;br /&gt;
&lt;br /&gt;
== Otras interfaces de programación ==&lt;br /&gt;
Es posible comunicar una aplicación que corra sobre Arduino con otros dispositivos que corran otros lenguajes de programación y aplicaciones populares.&lt;br /&gt;
debido a que Arduino usa la transmisión serial de datos, la cuál es soportada por la mayoría de los lenguajes que se mencionan a continuación. Y para los que no soportan el formato serie de forma nativa, es posible utilizar software intermediario que traduzca los mensajes enviados por ambas partes para permitir una comunicación fluida. Algunos ejemplos de lenguajes son:&lt;br /&gt;
&lt;br /&gt;
* 3DVIA Virtools: aplicaciones interactivas y de tiempo real.&lt;br /&gt;
* [[Adobe Director]]&lt;br /&gt;
* [[BlitzMax]] (con acceso restringido)&lt;br /&gt;
* [[Lenguaje C|C]]&lt;br /&gt;
* [[C++]] (mediante libSerial o en Windows)&lt;br /&gt;
* [[C Sharp|C#]]&lt;br /&gt;
* [[Cocoa]]/[[Objective-C]] (para [[Mac OS X]])&lt;br /&gt;
* [[Adobe Flash Player|Flash]] (mediante ActionScript)&lt;br /&gt;
* [[Gambas]]&lt;br /&gt;
* [[Isadora]] (Interactividad audiovisual en tiempo real)&lt;br /&gt;
* [[Instant Reality]] (X3D)&lt;br /&gt;
* [[Java (lenguaje de programación)|Java]]&lt;br /&gt;
* [[Liberlab]] (software de medición y experimentación)&lt;br /&gt;
* [[Mathematica]]&lt;br /&gt;
* [[Matlab]]&lt;br /&gt;
* [[MaxMSP]] (Entorno gráfico de programación para aplicaciones musicales, de audio y multimedia)&lt;br /&gt;
* [[Minibloq]] (Entorno gráfico de programación, corre también en las computadoras [[OLPC]])&lt;br /&gt;
* [[Perl]]&lt;br /&gt;
* [[Php]]&lt;br /&gt;
* [[Physical Etoys]] (Entorno gráfico de programación usado para proyectos de robótica educativa)&lt;br /&gt;
* [[Processing]]&lt;br /&gt;
* [[Pure Data]]&lt;br /&gt;
* [[Python]]&lt;br /&gt;
* [[Ruby]]&lt;br /&gt;
* Scratch for Arduino (S4A) (Entorno gráfico de programación, modificación del entorno para niños [[Scratch (lenguaje de programación)|Scratch]], del [[MIT]])&lt;br /&gt;
* [[Squeak]] (Implementación libre de Smalltalk)&lt;br /&gt;
* [[SuperCollider]] (Síntesis de audio en tiempo real)&lt;br /&gt;
* [[VBScript]]&lt;br /&gt;
* [[Visual Basic NET]]&lt;br /&gt;
* [[VVVV]] (Síntesis de vídeo en tiempo real)&lt;br /&gt;
&lt;br /&gt;
'''Pduino'''&lt;br /&gt;
[[Pduino]] nace de la fusión de los proyectos [[Pure Data]] y Arduino. Ambos proyectos de fuente abierta permiten trabajar con interfaz gráfica. Cargando el firmware de Pure Data (PD) a la placa Arduino se puede acceder a ella mediante el lenguaje de programación gráfico.&lt;br /&gt;
&lt;br /&gt;
'''Minibloq'''&lt;br /&gt;
Minibloq es un entorno gráfico de programación que puede generar código nativo de Arduino y escribirlo directamente en la memoria flash de la placa. Tiene un modo que permite visualizar el código generado, el cual también puede ser copiado y pegado en el Arduino-IDE, para los usuarios que intentan hacer el pasaje de una herramienta gráfica a la programación en sintaxis C/C++. Minibloq es de uso libre y sus fuentes también están disponibles gratuitamente. Una característica importante, es que puede correr también en la computadora portátil [[OLPC]], mediante el software [[Wine]].&lt;br /&gt;
&lt;br /&gt;
'''Physical Etoys'''&lt;br /&gt;
Physical Etoys es una extensión libre y gratuita que permite que diversos dispositivos electrónicos como Lego NXT, las placas Arduino, Sphero, Kinect, Joystick Wiimote, entre otros, puedan ser programados fácilmente y que interactúen entre sí gracias a su sistema de bloques.&lt;br /&gt;
&lt;br /&gt;
En el caso de Arduino, Physical Etoys ofrece dos modos de programación, el modo &amp;quot;directo&amp;quot; y el modo &amp;quot;compilado&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Modo directo: El modo &amp;quot;directo&amp;quot;, en el cual los programas se ejecutan en la computadora del usuario y las órdenes se transmiten inmediatamente a través del puerto serie. El modo &amp;quot;directo&amp;quot; permite modificar los programas y ver los cambios producidos de manera inmediata en el comportamiento del robot, lo cual facilita la programación, sobre todo al usuario inexperto. Asimismo, permite ver constantemente los valores de los sensores y utilizar el robot, por ejemplo, como para adquirir datos.&lt;br /&gt;
&lt;br /&gt;
Modo compilado: El modo &amp;quot;compilado&amp;quot;, en el cual los programas se traducen a C++ y se bajan a la placa, para luego ejecutarse de manera independiente de la computadora. El modo &amp;quot;compilado&amp;quot;, por su parte, elimina el retardo que introduce la comunicación con la computadora, lo cual lo hace preferible para el desarrollo de tareas autónomas, en las cuales la velocidad de respuesta del robot debe ser óptima.&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
* [[BASIC Stamp]]&lt;br /&gt;
* [[Impresión 3D]]&lt;br /&gt;
* [[Gumstix]]&lt;br /&gt;
* [[Minibloq]]&lt;br /&gt;
* [[MiniPC]]&lt;br /&gt;
* [[OOPIC]]&lt;br /&gt;
* [[PICAXE]]&lt;br /&gt;
* [[Raspberry Pi]]&lt;br /&gt;
* [[Physical Etoys]]&lt;br /&gt;
* [[Robot]]&lt;br /&gt;
* [[X10]]&lt;br /&gt;
* [[Sanguino (microcontrolador)|Sanguino]]&lt;br /&gt;
== Fuentes==&lt;br /&gt;
*Arduino. Disponible en: [http://arduino.cl/que-es-arduino/ Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.arduino.org/ Proyecto Arduino (Sitio oficial de la empresa radicada en Italia)] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.arduino.cc/ Proyecto Arduino (Sitio oficial con foros y referencia de programación)] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://arduino.stackexchange.com/ Arduino Stack Exchange] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [https://www.sparkfun.com/arduino_guide Comparativa de los distintos modelos disponibles] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.youngeek.com/proyectos-arduino/ Proyectos con arduino paso a paso] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [https://www.biicode.com/ Biicode] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://minibloq.org Entorno gráfico de programación para Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.acimut.com/monitoriza/monitorizaforarduino.html Scada para Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [https://www.b4x.com/b4r.html B4X B4R -Desarrolle aplicaciones en Basic gratuitamente que generan código Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.drouiz.com/tutoriales-arduino-2/ Ejercicios de diferente nivel para iniciarse en la electrónica con Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Software libre]]&lt;br /&gt;
[[Categoría:Microcontroladores]]&lt;br /&gt;
[[Categoría:Robótica]]&lt;br /&gt;
[[Categoría:Electrónica digital]]&lt;/div&gt;</summary>
		<author><name>Cristuline</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Arduino&amp;diff=3405922</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Arduino&amp;diff=3405922"/>
		<updated>2019-06-09T20:25:17Z</updated>

		<summary type="html">&lt;p&gt;Cristuline: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ficha Hardware&lt;br /&gt;
| nombre          = Arduino.&lt;br /&gt;
| imagen          = [[Archivo:quees.png|miniaturadeimagen]]&lt;br /&gt;
| pie         = &lt;br /&gt;
| fecha-invención = [[2005]].&lt;br /&gt;
| nombre-inventor =  [[Massimo Banzi]]&lt;br /&gt;
| conn1           = &lt;br /&gt;
| via1_1          = Placa computadora ([[microcontrolador]] de [[Placa base|placa]] simple)&lt;br /&gt;
| nombre-clase    = &lt;br /&gt;
| clase1          = &lt;br /&gt;
| manuf1          = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
'''Arduino'''. Plataforma de prototipos electrónica de código abierto (open-source), basada en hardware y software flexibles y fáciles de usar. Se enfoca en acercar y facilitar el uso de la electrónica y programación de sistemas embebidos en proyectos multidisciplinarios. Toda la plataforma, tanto para sus componentes de [[hardware]] como de [[software]], son liberados con licencia de [[código abierto]] que permite libertad de acceso a ellos. &lt;br /&gt;
&lt;br /&gt;
Las placas Arduino están disponibles de dos formas: ensambladas o en forma de kits (por sus siglas en inglés &amp;quot;DIY&amp;quot;). Adafruit Industries estimó a mediados del año [[2011]] que, alrededor de 300,000 placas Arduino habían sido producidas comercialmente y en el año [[2013]] estimó que alrededor de 700.000 placas oficiales de la empresa Arduino estaban en manos de los usuarios. Se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software tal como [[Adobe Flash Professional|Adobe Flash]], [[Processing]], [[Max/MSP]], [[Pure Data]], etc. &lt;br /&gt;
== Historia ==&lt;br /&gt;
Se inició en el año [[2005]] como un proyecto para estudiantes en el [[Instituto IVREA]], en [[Italia]]. El nombre del proyecto viene del nombre del ''Bar di Re Arduino de Ivrea'' (Bar del Rey Arduino) donde Massimo Banzi pasaba algunas horas. En la creación de este proyecto contribuyó el estudiante colombiano Hernando Barragán, quien desarrolló la tarjeta electrónica Wiring, el lenguaje de programación y la plataforma de desarrollo. Una vez concluida dicha plataforma, los investigadores trabajaron para hacerlo más ligero, más económico y disponible para la comunidad de código abierto (hardware y código abierto). El instituto finalmente cerró sus puertas, así que los investigadores, entre ellos el español David Cuartielles, promovieron la idea, Banzi afirmó años más tarde, que el proyecto surgió como una necesidad de subsistir ante el inminente cierre del Instituto de diseño Interactivo IVREA. Es decir, que, al crear un producto de hardware abierto, este no podría ser embargado.&lt;br /&gt;
&lt;br /&gt;
Posteriormente, [[Google]] colaboró en el desarrollo del Kit Android ADK (Accesory Development Kit), una placa Arduino capaz de comunicarse directamente con teléfonos móviles inteligentes bajo el sistema operativo [[Android]] para que el teléfono controle luces, motores y sensores conectados de Arduino. Google presenta ADK, interfaz basada en Arduino para Android. Para la producción en serie de la primera versión se tomó en cuenta que el coste no fuera mayor de 30 euros, que fuera ensamblado en una placa de color azul, debía ser [[Plug and Play]] y que trabajara con todas las plataformas informáticas tales como [[MacOSX]], [[Windows]] y [[GNU/Linux]]. Las primeras 300 unidades se las dieron a los alumnos del Instituto IVREA, con el fin de que las probaran y empezaran a diseñar sus primeros prototipos.&lt;br /&gt;
&lt;br /&gt;
En el año 2005, se incorporó al equipo el profesor Tom Igoe que había trabajado en computación física, después de que se enterara del mismo a través de Internet. Igoe ofreció su apoyo para desarrollar el proyecto a gran escala y hacer los contactos para distribuir las tarjetas en territorio estadounidense. En la feria Maker Fair de 2011 se presentó la primera placa Arduino 32 bit para realizar tareas más pesadas.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Los modelos de Arduino se categorizan en placas de desarrollo, placas de expansión (''shields''), kits, accesorios e impresoras 3d.&lt;br /&gt;
*Placas: Arduino Galileo, Arduino Uno, Arduino Leonardo, Arduino Due, Arduino Yún, Arduino Tre (En Desarrollo), Arduino Zero, Arduino Micro, Arduino Esplora, Arduino Mega ADK, Arduino Ethernet, Arduino Mega 2560, Arduino Robot, Arduino Mini, Arduino Nano, LilyPad Arduino Simple, LilyPad Arduino SimpleSnap, LilyPad Arduino, LilyPad Arduino USB, Arduino Pro Mini, Arduino Fio, Arduino Pro, Arduino MKR1000/Genuino MKR1000, Arduino MICRO/Genuino MICRO, Arduino 101/Genuino 101, Arduino Gemma, Arduino MKR Vidor 4000, Arduino MKR WAN 1300, ARduino MKR NB 1500, ARduino MKR FOX 1200, Arduino Nano Every, Arduino Nano 33 BLE, Arduino Nano 33 BLE Sense, Arduino Nano 33 IoT.&lt;br /&gt;
*Placas de expansión (''shields''): Arduino GSM Shield, Arduino Ethernet Shield, Arduino WiFi Shield, Arduino Wireless SD Shield, Arduino USB Host Shield, Arduino Motor Shield, Arduino Wireless Proto Shield, Arduino Proto Shield.&lt;br /&gt;
*Kits: The Arduino Starter Kit, Arduino Materia 101, Arduino Science Kit Physics Lab.&lt;br /&gt;
Accesorios: TFT LCD Screen, USB/Serial Light Adapter, Arduino ISP, Mini USB/Serial Adapter.&lt;br /&gt;
Impresoras 3d: Arduino Materia 101.&lt;br /&gt;
&lt;br /&gt;
== Aplicaciones ==&lt;br /&gt;
La plataforma Arduino ha sido usada como base en diversas aplicaciones electrónicas:&lt;br /&gt;
* Xoscillo: [[Osciloscopio]] de código abierto.&lt;br /&gt;
* Equipo científico para investigaciones&lt;br /&gt;
* Arduinome: Un dispositivo [[MIDI|controlador MIDI&lt;br /&gt;
* OBDuino: un [[económetro]] que usa una interfaz de [[OBD|diagnóstico a bordo]] que se halla en los automóviles modernos&lt;br /&gt;
* SCA-ino: Sistema de cómputo automotriz capaz de monitorear sensores como el TPS, el MAP y el 02S y controlar actuadores automotrices como la bobina de ignición, la válvula IAC y aceleradores electrónicos&lt;br /&gt;
* Humane Reader: dispositivo electrónico de bajo coste con salida de señal de TV que puede manejar una biblioteca de 5000 títulos en una tarjeta [[microSD&lt;br /&gt;
* The Humane PC: equipo que usa un módulo Arduino para emular un computador personal, con un monitor de televisión y un teclado para computadora&lt;br /&gt;
* Ardupilot: software y hardware de [[drones aeronaves no tripuladas]]&lt;br /&gt;
* ArduinoPhone: un teléfono móvil construido sobre un módulo Arduino&lt;br /&gt;
* Máquinas de [[control numérico]] por computadora (CNC)&lt;br /&gt;
* Open Theremín Uno: Versión digital de hardware libre del instrumento Theremín&lt;br /&gt;
* [[Impresora 3D|Impresoras 3D]]&lt;br /&gt;
&lt;br /&gt;
=== Entradas y salidas ===&lt;br /&gt;
Poniendo de ejemplo al módulo Diecimila, este consta de 14 entradas digitales configurables como entradas y/o salidas que operan a 5 voltios. Cada contacto puede proporcionar o recibir como máximo 40 mA. Los contactos 3, 5, 6, 9, 10 y 11 pueden proporcionar una salida PWM (Pulse Width Modulation). Si se conecta cualquier cosa a los contactos 0 y 1, eso interferirá con la comunicación USB. Diecimila también tiene 6 entradas analógicas que proporcionan una resolución de 10 bits. Por defecto, aceptan de 0 hasta 5 voltios (aunque es posible cambiar el nivel más alto utilizando el contacto Aref y algún código de bajo nivel).&lt;br /&gt;
&lt;br /&gt;
== Lenguaje de programación ==&lt;br /&gt;
La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el lenguaje de programación de alto nivel Processing que es similar a C++. Arduino está basado en C y soporta todas las funciones del estándar C y algunas de C. A continuación, se muestra un resumen con la estructura y sintaxis del lenguaje Arduino:&lt;br /&gt;
===Funciones básicas y operadores===&lt;br /&gt;
'''Sintaxis básica'''&lt;br /&gt;
* Delimitadores: {}&lt;br /&gt;
* Comentarios: //, /* */&lt;br /&gt;
* Cabeceras: #define, #include&lt;br /&gt;
* Operadores aritméticos: +, -, *, /, %&lt;br /&gt;
* Asignación: =&lt;br /&gt;
* Operadores de comparación: ==, !=, &amp;lt;, &amp;gt;, &amp;lt;=, &amp;gt;=&lt;br /&gt;
* Operadores Booleanos: &amp;amp;&amp;amp;, ||, !&lt;br /&gt;
* Operadores de acceso a punteros: *, &amp;amp;&lt;br /&gt;
* Operadores de bits: &amp;amp;, |, ^, ~, &amp;lt;&amp;lt;, &amp;gt;&amp;gt;&lt;br /&gt;
* Operadores compuestos:&lt;br /&gt;
** Incremento y decremento de variables: ++, --&lt;br /&gt;
** Asignación y operación: +=, -=, *=, /=, &amp;amp;=, |=&lt;br /&gt;
&lt;br /&gt;
'''Estructuras de control'''&lt;br /&gt;
* Condicionales: if, if...else, switch case&lt;br /&gt;
* Bucles: for, while, do. while&lt;br /&gt;
* Bifurcaciones y saltos: break, continue, return, goto&lt;br /&gt;
&lt;br /&gt;
'''Variables'''&lt;br /&gt;
&lt;br /&gt;
En cuanto al tratamiento de las variables también comparte un gran parecido con el lenguaje C.&lt;br /&gt;
&lt;br /&gt;
''Constantes''&lt;br /&gt;
* HIGH/LOW: representan los niveles alto y bajo de las señales de entrada y salida. Los niveles altos son aquellos de 3 voltios o más.&lt;br /&gt;
* INPUT/OUTPUT: entrada o salida.&lt;br /&gt;
* false (falso): Señal que representa al cero lógico. A diferencia de las señales HIGH/LOW, su nombre se escribe en letra minúscula.&lt;br /&gt;
* true (verdadero): Señal cuya definición es más amplia que la de ''false''. Cualquier número entero diferente de cero es &amp;quot;verdadero&amp;quot;, según el [[álgebra de Boole]], como en el caso de -200, -1 o 1. Si es cero, es &amp;quot;falso&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
''Tipos de datos''&lt;br /&gt;
* void, boolean, char, unsigned char, byte, int, unsigned int, word, long, unsigned long, float, double, string, array.&lt;br /&gt;
&lt;br /&gt;
''Conversión entre tipos''&lt;br /&gt;
Estas funciones reciben como argumento una variable de cualquier tipo y devuelven una variable convertida en el tipo deseado.&lt;br /&gt;
* char(), byte(), int(), word(), long(), float()&lt;br /&gt;
&lt;br /&gt;
''Cualificadores y ámbito de las variables''&lt;br /&gt;
* static, volatile, const.&lt;br /&gt;
&lt;br /&gt;
''Utilidades''&lt;br /&gt;
* sizeof()&lt;br /&gt;
'''Funciones básicas'''&lt;br /&gt;
&lt;br /&gt;
''E/S digital''&lt;br /&gt;
* pinMode(pin, modo).&lt;br /&gt;
* digitalWrite(pin, valor).&lt;br /&gt;
* int digitalRead(pin).&lt;br /&gt;
&lt;br /&gt;
''E/S analógica''&lt;br /&gt;
* analogReference(tipo)&lt;br /&gt;
* int analogRead(pin)&lt;br /&gt;
* analogWrite(pin, valor)&lt;br /&gt;
&lt;br /&gt;
''E/S avanzada''&lt;br /&gt;
* shiftOut(dataPin, clockPin, bitOrder, valor)&lt;br /&gt;
* unsigned long pulseIn(pin, valor)&lt;br /&gt;
&lt;br /&gt;
''Tiempo''&lt;br /&gt;
* unsigned long millis()&lt;br /&gt;
* unsigned long micros()&lt;br /&gt;
* delay(ms)&lt;br /&gt;
* delayMicroseconds(microsegundos)&lt;br /&gt;
&lt;br /&gt;
''Matemáticas''&lt;br /&gt;
* min(x, y), max(x, y), abs(x), constrain(x, a, b), map(valor, fromLow, fromHigh, toLow, toHigh), pow(base, exponente), sqrt(x)&lt;br /&gt;
&lt;br /&gt;
''Trigonometría''&lt;br /&gt;
* sin(rad), cos(rad), tan(rad)&lt;br /&gt;
&lt;br /&gt;
''Números aleatorios''&lt;br /&gt;
* randomSeed(semilla), long random(máx), long random(mín, máx)&lt;br /&gt;
&lt;br /&gt;
''Bits y Bytes''&lt;br /&gt;
* lowByte(), highByte(), bitRead(), bitWrite(), bitSet(), bitClear(), bit()&lt;br /&gt;
&lt;br /&gt;
''Interrupciones externas''&lt;br /&gt;
* attachInterrupt(interrupción, función, modo)&lt;br /&gt;
* detachInterrupt(interrupción)&lt;br /&gt;
&lt;br /&gt;
''Interrupciones''&lt;br /&gt;
* interrupts(), noInterrupts()&lt;br /&gt;
&lt;br /&gt;
''Comunicación por puerto serie''&lt;br /&gt;
Las funciones de manejo del puerto serie deben ir precedidas de la palabra &amp;quot;Serial&amp;quot; aunque no necesitan ninguna declaración en la cabecera del programa. Por esto se consideran funciones base del lenguaje. Estas son las funciones para transmisión serial:&lt;br /&gt;
* begin(), available(), read(), flush(), print(), println(), write()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Manipulación de puertos'''&lt;br /&gt;
&lt;br /&gt;
Los registros de puertos permiten la manipulación a más bajo nivel y de forma más rápida de los contactos de entrada/salida del microcontrolador de las placas Arduino. Los contactos eléctricos de las placas Arduino están repartidos entre los registros B(0-7), C (analógicos) y D(8-13). Mediante estas variables se observa y se modificada su estado:&lt;br /&gt;
* DDR[B/C/D]: Data Direction Register (o dirección del registro de datos) del puerto B, C ó D. Es una variable de Lectura/Escritura que sirve para especificar cuales contactos serán usados como entrada y salida.&lt;br /&gt;
* PORT[B/C/D]: Data Register (o registro de datos) del puerto B, C ó D. Es una variable de Lectura/Escritura.&lt;br /&gt;
* PIN[B/C/D]: Input Pins Register (o registro de pines de entrada) del puerto B, C ó D. Variable de sólo lectura.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, para especificar los contactos 9 a 13 como salidas y el 8 como entrada (puesto que el puerto D usa los pines de la placa Arduino 8 al 13 digitales) bastaría utilizar la siguiente asignación:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;DDRD = B11111110;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como se ha podido comprobar, el conocimiento del lenguaje C, permite la programación en Arduino debido a la similitud entre este y el lenguaje nativo del proyecto, lo que implica el aprendizaje de algunas funciones específicas de que dispone el lenguaje del proyecto para manejar los diferentes parámetros. Se pueden construir aplicaciones de cierta complejidad sin necesidad de muchos conceptos previos.&lt;br /&gt;
&lt;br /&gt;
=== AVR Libc ===&lt;br /&gt;
Los programas compilados con Arduino (salvo en las placas con CorteX M3) se enlazan contra AVR Libc por lo que tienen acceso a algunas de sus funciones. AVR Libc es un proyecto de software libre con el objetivo de proporcionar una [[biblioteca (informática)|biblioteca]] C de alta calidad para utilizarse con el compilador GCC sobre microcontroladores Atmel AVR. Se compone de 3 partes:&lt;br /&gt;
&lt;br /&gt;
* avr-binutils&lt;br /&gt;
* avr-gcc&lt;br /&gt;
* avr-libc&lt;br /&gt;
&lt;br /&gt;
La mayoría del lenguaje de programación Arduino está escrita con constantes y funciones de AVR y ciertas funcionalidades sólo se pueden obtener haciendo uso de AVR.&lt;br /&gt;
&lt;br /&gt;
'''Interrupciones'''&lt;br /&gt;
Las señales de interrupción son las siguientes:&lt;br /&gt;
&lt;br /&gt;
* cli(): desactiva las interrupciones globales&lt;br /&gt;
* sei(): activa las interrupciones&lt;br /&gt;
&lt;br /&gt;
Esto afectará al temporizador y a la comunicación serial. La función delayMicroseconds() desactiva las interrupciones cuando se ejecuta.&lt;br /&gt;
&lt;br /&gt;
'''Temporizadores'''&lt;br /&gt;
La función delayMicroseconds() crea el menor retardo posible del lenguaje Arduino que ronda los 2μs. Para retardos más pequeños se debe utilizar la llamada de ensamblador 'nop' (no operación). Cada sentencia 'nop' se ejecutará en un ciclo de máquina (16 MHz) de aproximadamente 62,5ns.&lt;br /&gt;
&lt;br /&gt;
'''Manipulación de puertos'''&lt;br /&gt;
La manipulación de puertos con código AVR es más rápida que utilizar la función digitalWrite() de Arduino.&lt;br /&gt;
&lt;br /&gt;
'''Establecer Bits en variables'''&lt;br /&gt;
cbi y sbi son mecanismos estándar (AVR) para establecer o limpiar bits en PORT y otras variables.&lt;br /&gt;
&lt;br /&gt;
===Diferencias con Processing===&lt;br /&gt;
La sintaxis del lenguaje de programación Arduino es una versión simplificada de C/C++ y tiene algunas diferencias respecto de Processing. Debido a que Arduino está basado en C/C++ mientras que Processing se basa en Java, existen varias diferencias en cuanto a la sintaxis de ambos lenguajes y el modo en que se programa:&lt;br /&gt;
&lt;br /&gt;
'''Arreglos'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Arduino !! Processing&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int bar[8];&lt;br /&gt;
bar[0] = 1;&amp;lt;/source&amp;gt;&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int[] bar = new int[8];&lt;br /&gt;
bar[0] = 1;&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int foo[] = { 0, 1, 2 }; &amp;lt;/source&amp;gt;&lt;br /&gt;
|&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt; int foo[] = { 0, 1, 2 };&amp;lt;/source&amp;gt; o bien &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt; int[] foo = { 0, 1, 2 };&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Impresión de cadenas'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Arduino !! Processing&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;Serial.println(&amp;quot;hello world&amp;quot;);&amp;lt;/source&amp;gt; &lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;println(&amp;quot;hello world&amp;quot;);&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int i = 5; &lt;br /&gt;
Serial.println(i);&amp;lt;/source&amp;gt; &lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int i = 5; &lt;br /&gt;
println(i);&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int i = 5; &lt;br /&gt;
Serial.print(&amp;quot;i = &amp;quot;); &lt;br /&gt;
Serial.print(i); &lt;br /&gt;
Serial.println();&amp;lt;/source&amp;gt; &lt;br /&gt;
| &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;int i=&amp;quot;5&amp;quot;; &lt;br /&gt;
println(&amp;quot;i =&amp;quot; + i);&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de programación ===&lt;br /&gt;
El primer paso antes de comprobar que la instalación es correcta y empezar a trabajar con Arduino, es usar ejemplos prácticos que vienen disponibles con el dispositivo. Se recomienda abrir el ejemplo “led_blink” el cual crea una intermitencia por segundo en un led conectado en el pin 13.&lt;br /&gt;
&lt;br /&gt;
El código necesario es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
# define LED_PIN 13&lt;br /&gt;
void setup () {&lt;br /&gt;
 // Activado del contacto 13 para salida digital&lt;br /&gt;
 pinMode (LED_PIN, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
// Bucle infinito&lt;br /&gt;
void loop () {&lt;br /&gt;
 // Encendido del diodo LED enviando una señal alta&lt;br /&gt;
 digitalWrite (LED_PIN, HIGH);&lt;br /&gt;
 // Tiempo de espera de 1 segundo (1000 ms)&lt;br /&gt;
 delay (1000);&lt;br /&gt;
 // Apagado del diodo LED enviando una señal baja.&lt;br /&gt;
 digitalWrite (LED_PIN, LOW);&lt;br /&gt;
 // Tiempo de espera de 1 segundo&lt;br /&gt;
 delay (1000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas en Arduino ==&lt;br /&gt;
Las [[biblioteca (informática)|bibliotecas]] estándar que ofrece Arduino son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''Serial''':&lt;br /&gt;
Lectura y escritura por el puerto serie.&lt;br /&gt;
&lt;br /&gt;
'''EEPROM''':&lt;br /&gt;
Lectura y escritura en el almacenamiento permanente&lt;br /&gt;
* read(), write()&lt;br /&gt;
&lt;br /&gt;
'''Ethernet''':&lt;br /&gt;
Conexión a Internet mediante “Arduino Ethernet Shield“. Puede funcionar como servidor que acepta peticiones remotas o como cliente. Se permiten hasta cuatro conexiones simultáneas Los comandos usados son los siguientes:&lt;br /&gt;
* Servidor: Server(), begin(), available(), write(), print(), println()&lt;br /&gt;
* Cliente: Client(), connected(), connect(), write(), print(), println(), available(), read(), flush(), stop()&lt;br /&gt;
&lt;br /&gt;
'''Firmata'''.&lt;br /&gt;
Es una biblioteca de comunicación con aplicaciones informáticas utilizando el protocolo estándar del puerto serie.&lt;br /&gt;
&lt;br /&gt;
'''LiquidCrystal''':&lt;br /&gt;
Control de [[LCD]]s con [[chipset]] [[Hitachi HD44780]] o compatibles&lt;br /&gt;
&lt;br /&gt;
'''Servo''':&lt;br /&gt;
Biblioteca para el control de [[servo motoresA partir de la versión 0017 de Arduino la biblioteca soporta hasta 12 motores en la mayoría de las placas Arduino y 48 en la Arduino Mega. Estos son los comandos usados:&lt;br /&gt;
* attach(), write(), writeMicroseconds(), read(), attached(), detach()&lt;br /&gt;
&lt;br /&gt;
'''SoftwareSerial''':&lt;br /&gt;
Comunicación serie en contactos digitales. Por defecto Arduino incluye comunicación sólo en los contactos 0 y 1 pero gracias a esta biblioteca puede realizarse esta comunicación con los restantes.&lt;br /&gt;
&lt;br /&gt;
'''Stepper''':&lt;br /&gt;
Control de [[motor paso a paso|motores paso a paso]] unipolares o bipolares.&lt;br /&gt;
* Stepper(steps, pin1, pin2), Stepper(steps, pin1, pin2, pin3, pin4), setSpeed(rpm), step(steps)&lt;br /&gt;
&lt;br /&gt;
'''Wire''':&lt;br /&gt;
Envío y recepción de datos sobre una red de dispositivos o sensores mediante [[Two Wire Interface]] (TWI/I2C). &lt;br /&gt;
Las bibliotecas ''Matrix'' y ''Sprite'' de Wiring son totalmente compatibles con Arduino y sirven para manejo de matrices de diodos LED. También se ofrece información sobre diversas bibliotecas desarrolladas por diversos colaboradores que permiten realizar muchas tareas.&lt;br /&gt;
&lt;br /&gt;
'''Creación de bibliotecas''':&lt;br /&gt;
Los usuarios de Arduino tienen la posibilidad de escribir sus propias bibliotecas. Ello permite disponer de código que puede reutilizarse en otros proyectos, mantener el código fuente principal separado de las bibliotecas y la organización de los programas construidos es más clara.&lt;br /&gt;
==== Ejemplo de biblioteca ====&lt;br /&gt;
El siguiente ejemplo permite el envío de caracteres mediante el [[código Morse]]:&lt;br /&gt;
&lt;br /&gt;
Se crea el archivo Morse.h que incluye la definición de la clase Morse que tiene 3 funciones: un constructor (Morse()), una función para enviar 1 punto (dot()) y una función para enviar una raya (dash()). La variable _pin permite indicar el contacto a usar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  Morse.h - Biblioteca para el envío de Código Morse.&lt;br /&gt;
  Creado por David A. Mellis, el 2 de noviembre de 2007.&lt;br /&gt;
  Liberado al dominio público.&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
# ifndef Morse_h&lt;br /&gt;
# define Morse_h&lt;br /&gt;
&lt;br /&gt;
# include &amp;quot;WProgram.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class Morse&lt;br /&gt;
{&lt;br /&gt;
  public:&lt;br /&gt;
    Morse(int pin);&lt;br /&gt;
    void dot();&lt;br /&gt;
    void dash();&lt;br /&gt;
  private:&lt;br /&gt;
    int _pin;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
# endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Debe ser creado el archivo Morse.cpp con el código, es decir con la implementación de los métodos declarados:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  Morse.cpp - Biblioteca para el envío de Código Morse.&lt;br /&gt;
  Creado por David A. Mellis, el 2 de noviembre de 2007.&lt;br /&gt;
  Liberado al dominio público.&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
# include &amp;quot;WProgram.h&amp;quot;&lt;br /&gt;
# include &amp;quot;Morse.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Morse::Morse(int pin)&lt;br /&gt;
{&lt;br /&gt;
  pinMode(pin, OUTPUT);&lt;br /&gt;
  _pin = pin;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Morse::dot()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(_pin, HIGH);&lt;br /&gt;
  delay(250);&lt;br /&gt;
  digitalWrite(_pin, LOW);&lt;br /&gt;
  delay(250);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Morse::dash()&lt;br /&gt;
{&lt;br /&gt;
  digitalWrite(_pin, HIGH);&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  digitalWrite(_pin, LOW);&lt;br /&gt;
  delay(250);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La biblioteca creada así, puede ser usada mediante el comando #include. Si se desea enviar una petición de auxilio [[SOS]] por el contacto 13 bastaría con llamar a Morse(13) y ejecutar la siguiente secuencia:&lt;br /&gt;
*morse.dot(); morse.dot(); morse.dot();&lt;br /&gt;
*morse.dash(); morse.dash(); morse.dash();&lt;br /&gt;
*morse.dot(); morse.dot(); morse.dot();&lt;br /&gt;
&lt;br /&gt;
== Ejemplos de Código ==&lt;br /&gt;
La página de Arduino cuenta con una serie de ejemplos para comenzar a entender su funcionamiento, con componentes base tales como Pantallas, LED’s, Potenciometros, etc. &lt;br /&gt;
&lt;br /&gt;
Ejemplo de parpadeo de LED&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  Blink&lt;br /&gt;
  Turns on an LED on for one second, then off for one second, repeatedly.&lt;br /&gt;
 &lt;br /&gt;
  This example code is in the public domain.&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
// Pin 13 has an LED connected on most Arduino boards.&lt;br /&gt;
// give it a name:&lt;br /&gt;
int led = 13;&lt;br /&gt;
&lt;br /&gt;
// the setup routine runs once when you press reset:&lt;br /&gt;
void setup() { &lt;br /&gt;
  // initialize the digital pin as an output.&lt;br /&gt;
  pinMode(led, OUTPUT);     &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// the loop routine runs over and over again forever:&lt;br /&gt;
void loop() {&lt;br /&gt;
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)&lt;br /&gt;
  delay(1000);               // wait for a second&lt;br /&gt;
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW&lt;br /&gt;
  delay(1000);               // wait for a second&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de lectura de Potenciometro&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  ReadAnalogVoltage&lt;br /&gt;
  Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.&lt;br /&gt;
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.&lt;br /&gt;
 &lt;br /&gt;
 This example code is in the public domain.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// the setup routine runs once when you press reset:&lt;br /&gt;
void setup() {&lt;br /&gt;
  // initialize serial communication at 9600 bits per second:&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// the loop routine runs over and over again forever:&lt;br /&gt;
void loop() {&lt;br /&gt;
  // read the input on analog pin 0:&lt;br /&gt;
  int sensorValue = analogRead(A0);&lt;br /&gt;
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):&lt;br /&gt;
  float voltage = sensorValue * (5.0 / 1023.0);&lt;br /&gt;
  // print out the value you read:&lt;br /&gt;
  Serial.println(voltage);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ejemplo&lt;br /&gt;
hacer contar un display de 7 segmentos de 1 a 3 cada 1 segundo, llamando a una función &lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
void setup(){   // configuramos los pines de salida donde conectaremos los pines con una resistencia en serie al display de 7 segmentos&lt;br /&gt;
  pinMode(34, OUTPUT);  // a &lt;br /&gt;
  pinMode(36, OUTPUT);  // b&lt;br /&gt;
  pinMode(38, OUTPUT);  // c&lt;br /&gt;
  pinMode(40, OUTPUT);  // d&lt;br /&gt;
  pinMode(42, OUTPUT);  //e&lt;br /&gt;
  pinMode(44, OUTPUT);  //f&lt;br /&gt;
  pinMode(46, OUTPUT);  //g&lt;br /&gt;
 }&lt;br /&gt;
void display (int a, int b, int c, int d, int e, int f, int g)// Función del display &lt;br /&gt;
{&lt;br /&gt;
  digitalWrite (34,a);   &lt;br /&gt;
  digitalWrite (36,b);   &lt;br /&gt;
  digitalWrite (38,c);&lt;br /&gt;
  digitalWrite (40,d);&lt;br /&gt;
  digitalWrite (42,e);&lt;br /&gt;
  digitalWrite (44,f);&lt;br /&gt;
  digitalWrite (46,g);&lt;br /&gt;
}&lt;br /&gt;
 void loop(){&lt;br /&gt;
  display (0,1,1,0,0,0,0); //  mostrará 1 en el display&lt;br /&gt;
  delay(1000);&lt;br /&gt;
display (1,1,0,1,1,0,1); //  mostrará 2 en el display&lt;br /&gt;
  delay(1000);&lt;br /&gt;
display (1,1,1,1,0,0,1); //  mostrará 3 en el display&lt;br /&gt;
  delay(1000);  // por Laiolo Santiago&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instalación en diferentes entornos ==&lt;br /&gt;
&lt;br /&gt;
'''Windows'''&lt;br /&gt;
Los pasos a seguir son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* Descargar las versiones más reciente de Java Runtime Enviroment (J2RE) y del IDE Arduino.&lt;br /&gt;
* Instalar los controladores FTDI USB, con la placa Arduino conectada.&lt;br /&gt;
* Ejecutar el IDE Arduino para abrir la interfaz y configurar el puerto USB donde está conectada la placa.&lt;br /&gt;
&lt;br /&gt;
'''GNU/Linux'''&lt;br /&gt;
Para instalar Arduino en un sistema [[GNU/Linux]] necesitamos los siguientes programas para resolver las dependencias:&lt;br /&gt;
&lt;br /&gt;
* Sun java runtime, jre.&lt;br /&gt;
* avr-gcc, compilador para la familia de microcontroladores avr de atmel.&lt;br /&gt;
* avr-libc, libc del compilador avr-gcc.&lt;br /&gt;
&lt;br /&gt;
En algunas distribuciones conviene desinstalar, si no es necesario, el programa &amp;quot;brltty&amp;quot; que permite el acceso al terminal a personas invidentes. Para concluir, se descarga el [[framework]] de Arduino, se descomprime y ejecuta.&lt;br /&gt;
&lt;br /&gt;
== Otras interfaces de programación ==&lt;br /&gt;
Es posible comunicar una aplicación que corra sobre Arduino con otros dispositivos que corran otros lenguajes de programación y aplicaciones populares.&lt;br /&gt;
debido a que Arduino usa la transmisión serial de datos, la cuál es soportada por la mayoría de los lenguajes que se mencionan a continuación. Y para los que no soportan el formato serie de forma nativa, es posible utilizar software intermediario que traduzca los mensajes enviados por ambas partes para permitir una comunicación fluida. Algunos ejemplos de lenguajes son:&lt;br /&gt;
&lt;br /&gt;
* 3DVIA Virtools: aplicaciones interactivas y de tiempo real.&lt;br /&gt;
* [[Adobe Director]]&lt;br /&gt;
* [[BlitzMax]] (con acceso restringido)&lt;br /&gt;
* [[Lenguaje C|C]]&lt;br /&gt;
* [[C++]] (mediante libSerial o en Windows)&lt;br /&gt;
* [[C Sharp|C#]]&lt;br /&gt;
* [[Cocoa]]/[[Objective-C]] (para [[Mac OS X]])&lt;br /&gt;
* [[Adobe Flash Player|Flash]] (mediante ActionScript)&lt;br /&gt;
* [[Gambas]]&lt;br /&gt;
* [[Isadora]] (Interactividad audiovisual en tiempo real)&lt;br /&gt;
* [[Instant Reality]] (X3D)&lt;br /&gt;
* [[Java (lenguaje de programación)|Java]]&lt;br /&gt;
* [[Liberlab]] (software de medición y experimentación)&lt;br /&gt;
* [[Mathematica]]&lt;br /&gt;
* [[Matlab]]&lt;br /&gt;
* [[MaxMSP]] (Entorno gráfico de programación para aplicaciones musicales, de audio y multimedia)&lt;br /&gt;
* [[Minibloq]] (Entorno gráfico de programación, corre también en las computadoras [[OLPC]])&lt;br /&gt;
* [[Perl]]&lt;br /&gt;
* [[Php]]&lt;br /&gt;
* [[Physical Etoys]] (Entorno gráfico de programación usado para proyectos de robótica educativa)&lt;br /&gt;
* [[Processing]]&lt;br /&gt;
* [[Pure Data]]&lt;br /&gt;
* [[Python]]&lt;br /&gt;
* [[Ruby]]&lt;br /&gt;
* Scratch for Arduino (S4A) (Entorno gráfico de programación, modificación del entorno para niños [[Scratch (lenguaje de programación)|Scratch]], del [[MIT]])&lt;br /&gt;
* [[Squeak]] (Implementación libre de Smalltalk)&lt;br /&gt;
* [[SuperCollider]] (Síntesis de audio en tiempo real)&lt;br /&gt;
* [[VBScript]]&lt;br /&gt;
* [[Visual Basic NET]]&lt;br /&gt;
* [[VVVV]] (Síntesis de vídeo en tiempo real)&lt;br /&gt;
&lt;br /&gt;
'''Pduino'''&lt;br /&gt;
[[Pduino]] nace de la fusión de los proyectos [[Pure Data]] y Arduino. Ambos proyectos de fuente abierta permiten trabajar con interfaz gráfica. Cargando el firmware de Pure Data (PD) a la placa Arduino se puede acceder a ella mediante el lenguaje de programación gráfico.&lt;br /&gt;
&lt;br /&gt;
'''Minibloq'''&lt;br /&gt;
Minibloq es un entorno gráfico de programación que puede generar código nativo de Arduino y escribirlo directamente en la memoria flash de la placa. Tiene un modo que permite visualizar el código generado, el cual también puede ser copiado y pegado en el Arduino-IDE, para los usuarios que intentan hacer el pasaje de una herramienta gráfica a la programación en sintaxis C/C++. Minibloq es de uso libre y sus fuentes también están disponibles gratuitamente. Una característica importante, es que puede correr también en la computadora portátil [[OLPC]], mediante el software [[Wine]].&lt;br /&gt;
&lt;br /&gt;
'''Physical Etoys'''&lt;br /&gt;
Physical Etoys es una extensión libre y gratuita que permite que diversos dispositivos electrónicos como Lego NXT, las placas Arduino, Sphero, Kinect, Joystick Wiimote, entre otros, puedan ser programados fácilmente y que interactúen entre sí gracias a su sistema de bloques.&lt;br /&gt;
&lt;br /&gt;
En el caso de Arduino, Physical Etoys ofrece dos modos de programación, el modo &amp;quot;directo&amp;quot; y el modo &amp;quot;compilado&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Modo directo: El modo &amp;quot;directo&amp;quot;, en el cual los programas se ejecutan en la computadora del usuario y las órdenes se transmiten inmediatamente a través del puerto serie. El modo &amp;quot;directo&amp;quot; permite modificar los programas y ver los cambios producidos de manera inmediata en el comportamiento del robot, lo cual facilita la programación, sobre todo al usuario inexperto. Asimismo, permite ver constantemente los valores de los sensores y utilizar el robot, por ejemplo, como para adquirir datos.&lt;br /&gt;
&lt;br /&gt;
Modo compilado: El modo &amp;quot;compilado&amp;quot;, en el cual los programas se traducen a C++ y se bajan a la placa, para luego ejecutarse de manera independiente de la computadora. El modo &amp;quot;compilado&amp;quot;, por su parte, elimina el retardo que introduce la comunicación con la computadora, lo cual lo hace preferible para el desarrollo de tareas autónomas, en las cuales la velocidad de respuesta del robot debe ser óptima.&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
* [[BASIC Stamp]]&lt;br /&gt;
* [[Impresión 3D]]&lt;br /&gt;
* [[Gumstix]]&lt;br /&gt;
* [[Minibloq]]&lt;br /&gt;
* [[MiniPC]]&lt;br /&gt;
* [[OOPIC]]&lt;br /&gt;
* [[PICAXE]]&lt;br /&gt;
* [[Raspberry Pi]]&lt;br /&gt;
* [[Physical Etoys]]&lt;br /&gt;
* [[Robot]]&lt;br /&gt;
* [[X10]]&lt;br /&gt;
* [[Sanguino (microcontrolador)|Sanguino]]&lt;br /&gt;
== Fuentes==&lt;br /&gt;
*Arduino. Disponible en: [http://arduino.cl/que-es-arduino/ Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.arduino.org/ Proyecto Arduino (Sitio oficial de la empresa radicada en Italia)] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.arduino.cc/ Proyecto Arduino (Sitio oficial con foros y referencia de programación)] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://arduino.stackexchange.com/ Arduino Stack Exchange] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [https://www.sparkfun.com/arduino_guide Comparativa de los distintos modelos disponibles] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.youngeek.com/proyectos-arduino/ Proyectos con arduino paso a paso] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [https://www.biicode.com/ Biicode] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://minibloq.org Entorno gráfico de programación para Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.acimut.com/monitoriza/monitorizaforarduino.html Scada para Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [https://www.b4x.com/b4r.html B4X B4R -Desarrolle aplicaciones en Basic gratuitamente que generan código Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
*Arduino. Disponible en: [http://www.drouiz.com/tutoriales-arduino-2/ Ejercicios de diferente nivel para iniciarse en la electrónica con Arduino] Consultado el 22 de mayo de 2017.&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Software libre]]&lt;br /&gt;
[[Categoría:Microcontroladores]]&lt;br /&gt;
[[Categoría:Robótica]]&lt;br /&gt;
[[Categoría:Electrónica digital]]&lt;/div&gt;</summary>
		<author><name>Cristuline</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Memoria_flash&amp;diff=3405908</id>
		<title>Memoria flash</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Memoria_flash&amp;diff=3405908"/>
		<updated>2019-06-09T20:16:05Z</updated>

		<summary type="html">&lt;p&gt;Cristuline: /* Memorias flash de tipo NAND */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{otros usos|este='''Memoria'''|Memoria (desambiguación)}} {{Definición|Nombre=Memoria flash|imagen=Memorias_flash.jpg|concepto=Dispositivo que se utiliza para guardar información}} &lt;br /&gt;
&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
'''La memoria flash''', es una manera desarrollada de la memoria EEPROM que permite que múltiples posiciones de memoria sean escritas o borradas en una misma operación de programación mediante impulsos eléctricos, frente a las anteriores que sólo permite escribir o borrar una única celda cada vez. Por ello, flash permite funcionar a velocidades muy superiores cuando los sistemas emplean lectura y escritura en diferentes puntos de esta memoria al mismo tiempo. &lt;br /&gt;
&lt;br /&gt;
== Generalidades  ==&lt;br /&gt;
&lt;br /&gt;
Económicamente hablando, el precio en el mercado ronda los 12 € para dispositivos con 4 GB de almacenamiento, aunque, evidentemente, se pueden encontrar dispositivos exclusivamente de almacenamiento de unos pocos MB por precios realmente bajos, estos en extinción, y de hasta 600 € para la gama más alta y de mayores prestaciones. No obstante, el coste por [[MB]] en los discos duros son muy inferiores a los que ofrece la memoria flash y, además los discos duros tienen una capacidad muy superior a la de las memorias flash. &lt;br /&gt;
&lt;br /&gt;
Ofrecen, además, características como gran resistencia a los golpes, bajo consumo y es muy silencioso, ya que no contiene ni actuadores mecánicos ni partes móviles. Su pequeño tamaño también es un factor determinante a la hora de escoger para un dispositivo portátil, así como su ligereza y versatilidad para todos los usos hacia los que está orientado. &lt;br /&gt;
&lt;br /&gt;
Sin embargo, todos los tipos de memoria flash sólo permiten un número limitado de escrituras y borrados, generalmente entre 10.000 y un millón, dependiendo de la celda, de la precisión del proceso de fabricación y del voltaje necesario para su borrado. &lt;br /&gt;
&lt;br /&gt;
Este tipo de memoria está fabricado con puertas lógicas NOR y NAND para almacenar los 0’s ó 1’s correspondientes. Actualmente (08-08-2005) hay una gran división entre los fabricantes de un tipo u otro, especialmente a la hora de elegir un sistema de archivos para estas memorias. Sin embargo se comienzan a desarrollar memorias basadas en [[ORNAND]]. &lt;br /&gt;
&lt;br /&gt;
Los sistemas de archivos para estas memorias están en pleno desarrollo aunque ya en funcionamiento como por ejemplo [[JFFS]] originalmente para NOR, evolucionado a JFFS2 para soportar además [[NAND]] o [[YAFFS]], ya en su segunda versión, para NAND. Sin embargo, en la práctica se emplea un sistema de archivos [[FAT]] por compatibilidad, sobre todo en las tarjetas de memoria extraíble. &lt;br /&gt;
&lt;br /&gt;
Otra característica de reciente aparición (30-9-2004) ha sido la resistencia térmica de algunos encapsulados de tarjetas de memoria orientadas a las cámaras digitales de gama alta. Esto permite funcionar en condiciones extremas de temperatura como desiertos o glaciares ya que el rango de temperaturas soportado abarca desde los -25 °C hasta los 85 °C. &lt;br /&gt;
&lt;br /&gt;
== Funcionamiento  ==&lt;br /&gt;
&lt;br /&gt;
Flash, como tipo de [[EEPROM]] que es, contiene una matriz de celdas con un transistor evolucionado con dos puertas en cada intersección. Tradicionalmente sólo almacenan un bit de información. Las nuevas memorias flash, llamadas también dispositivos de celdas multi-nivel, pueden almacenar más de un bit por celda variando el número de electrones que almacenan. &lt;br /&gt;
&lt;br /&gt;
Estas memorias están basadas en el [[Transistor]] [[FAMOS]] ([[Floating Gate Avalanche-Injection Metal Oxide Semiconductor]]) que es, esencialmente, un transistor [[NMOS]] con un conductor (basado en un óxido metálico) adicional localizado o entre la puerta de control ([[CG]] – [[Control Gate]]) y los terminales fuente/drenador contenidos en otra puerta ([[FG]] – [[Floating Gate]]) o alrededor de la FG conteniendo los electrones que almacenan la información. &lt;br /&gt;
&lt;br /&gt;
== Memoria flash de tipo NOR  ==&lt;br /&gt;
&lt;br /&gt;
En las memorias flash de tipo [[NOR]], cuando los electrones se encuentran en [[FG]], modifican (prácticamente anulan) el campo eléctrico que generaría [[CG]] en caso de estar activo. De esta forma, dependiendo de si la celda está a 1 ó a 0, el campo eléctrico de la celda existe o no. Entonces, cuando se lee la celda poniendo un determinado voltaje en CG, la corriente eléctrica fluye o no en función del voltaje almacenado en la [[Celda]]. &lt;br /&gt;
&lt;br /&gt;
La presencia/ausencia de corriente se detecta e interpreta como un 1 ó un 0, reproduciendo así el dato almacenado. En los dispositivos de [[Celda multi-nivel]], se detecta la intensidad de la corriente para controlar el número de electrones almacenados en FG e interpretarlos adecuadamente. &lt;br /&gt;
&lt;br /&gt;
Para programar una celda de tipo NOR (asignar un valor determinado) se permite el paso de la corriente desde el terminal fuente al terminal sumidero, entonces se coloca en CG un voltaje alto para absorber los electrones y retenerlos en el campo eléctrico que genera. Este proceso se llama hot-electrón injection. Para borrar (poner a “1”, el estado natural del transistor) el contenido de una celda, expulsar estos electrones, se emplea la técnica de [[Fowler-Nordheim]] tunnelling, un proceso de tunelado mecánico – cuántico. Esto es, aplicar un voltaje inverso bastante alto al empleado para atraer a los electrones, convirtiendo al [[Transistor]] en una pistola de electrones que permite, abriendo el terminal sumidero, que los electrones abandonen el mismo. Este proceso es el que provoca el deterioro de las celdas, al aplicar sobre un conductor tan delgado un voltaje tan alto. &lt;br /&gt;
&lt;br /&gt;
Es necesario destacar que las memorias flash están subdivididas en bloques (en ocasiones llamados sectores) y por lo tanto, para el borrado, se limpian bloques enteros para agilizar el proceso, ya que es la parte más lenta del proceso. Por esta razón, las memorias flash son mucho más rápidas que las [[EEPROM]] convencionales, ya que borran byte a byte. No obstante, para reescribir un dato es necesario limpiar el bloque primero para después reescribir su contenido. &lt;br /&gt;
&lt;br /&gt;
== Memorias flash de tipo NAND  ==&lt;br /&gt;
&lt;br /&gt;
Las memorias flash basadas en puertas lógicas [[NAND]] funcionan de forma ligeramente diferente: usan un túnel de inyección para la escritura y para el borrado un túnel de ‘soltado’. Las memorias basadas en NAND tienen, además de la evidente base en otro tipo de puertas, un coste bastante inferior, unas diez veces de más resistencia a las operaciones pero sólo permiten acceso secuencial (más orientado a dispositivos de almacenamiento masivo), frente a las memorias flash basadas en [[NOR]] que permiten lectura de acceso aleatorio. Sin embargo, han sido las NAND las que han permitido la expansión de este tipo de memoria, ya que el mecanismo de borrado es más sencillo (aunque también se borre por bloques) lo que ha proporcionado una base más rentable para la creación de dispositivos de tipo tarjeta de memoria. Las populares memorias USB o también llamadas Pendrives, y los actuales discos de estado sólido o SSD, utilizan memorias flash de tipo NAND. &lt;br /&gt;
&lt;br /&gt;
'''Comparación de memorias flash basadas en NOR y NAND''' &lt;br /&gt;
&lt;br /&gt;
Para comparar estos tipos de memoria se consideran los diferentes aspectos de las memorias tradicionalmente valorados. &lt;br /&gt;
&lt;br /&gt;
*La densidad de almacenamiento de los chips es actualmente bastante mayor en las memorias NAND. &lt;br /&gt;
*El coste de NOR es mucho mayor. &lt;br /&gt;
*El acceso NOR es aleatorio para lectura y orientado a bloques para su modificación. Sin embargo, NAND ofrece tan solo acceso directo para los bloques y lectura secuencial dentro de los mismos. &lt;br /&gt;
*En la escritura de NOR podemos llegar a modificar un solo bit. Esto destaca con la limitada reprogramación de las NAND que deben modificar bloques o palabras completas. &lt;br /&gt;
*La velocidad de lectura es muy superior en NOR (50-100 ns) frente a NAND (10 µs de la búsqueda de la página + 50 ns por byte). &lt;br /&gt;
*La velocidad de escritura para NOR es de 5 µs por byte frente a 200 µs por página en NAND. &lt;br /&gt;
*La velocidad de borrado para NOR es de 1 s por bloque de 64 KB frente a los 2 ms por bloque de 16 KB en NAND. &lt;br /&gt;
*La fiabilidad de los dispositivos basados en NOR es realmente muy alta, es relativamente inmune a la corrupción de datos y tampoco tiene bloques erróneos frente a la escasa fiabilidad de los sistemas NAND que requieren corrección de datos y existe la posibilidad de que queden bloques marcados como erróneos e inservibles.&lt;br /&gt;
&lt;br /&gt;
En resumen, los sistemas basados en NAND son más baratos y rápidos pero carecen de una fiabilidad que los haga eficientes, lo que demuestra la necesidad imperiosa de un buen sistema de archivos. Dependiendo de qué sea lo que se busque, merecerá la pena decantarse por uno u otro tipo. &lt;br /&gt;
&lt;br /&gt;
== Tarjetero flash  ==&lt;br /&gt;
&lt;br /&gt;
Un tarjetero flash es un periférico que lee o escribe en memoria flash. Actualmente, los instalados en ordenadores (incluidos en una placa o mediante puerto USB), marcos digitales, [[Lectores de DVD]] y otros dispositivos, suelen leer varios tipos de tarjetas. &lt;br /&gt;
&lt;br /&gt;
== Sistemas de archivos para Memorias flash  ==&lt;br /&gt;
&lt;br /&gt;
Diseñar un sistema de archivos eficiente para las memorias flash se ha convertido en una carrera vertiginosa y compleja, ya que, aunque ambos ([[NOR]] y [[NAND]]) son tipos de memoria flash, tienen características muy diferentes entre sí a la hora de acceder a esos datos. Esto es porque un sistema de ficheros que trabaje con memorias de tipo NOR incorpora varios mecanismos innecesarios para NAND y, a su vez, NAND requiere mecanismos adicionales, innecesarios para gestionar la memoria de tipo NOR. &lt;br /&gt;
&lt;br /&gt;
Un ejemplo podría ser un recolector de basura. Esta herramienta está condicionada por el rendimiento de las funciones de borrado que, en el caso de NOR es muy lento y, además, un recolector de basura NOR requiere una complejidad relativa bastante alta y limita las opciones de diseño del sistema de archivos. Comparándolo con los sistemas NAND, que borran mucho más rápidamente, estas limitaciones no tienen sentido. &lt;br /&gt;
&lt;br /&gt;
Otra de las grandes diferencias entre estos sistemas es el uso de bloques erróneos que pueden existir en NAND pero no tienen sentido en los sistemas NOR que garantizan la integridad. El tamaño que deben manejar unos y otros sistemas también difiere sensiblemente y por lo tanto es otro factor a tener en cuenta. Se deberá diseñar estos sistemas en función de la orientación que se le quiera dar al sistema &lt;br /&gt;
&lt;br /&gt;
Los dos sistemas de ficheros que se disputan el liderazgo para la organización interna de las memorias flash son [[JFFS]] ([[Journaling Flash File System]]) y [[YAFFS]] ([[Yet Another Flash File System]]), [[ExFAT]] es la opción de [[Microsoft]]. &lt;br /&gt;
&lt;br /&gt;
== Antecedentes de la Memoria flash  ==&lt;br /&gt;
&lt;br /&gt;
Las memorias han evolucionado mucho desde los comienzos del mundo de la computación. Conviene recordar los tipos de memorias de semiconductores empleadas como memoria principal y unas ligeras pinceladas sobre cada una de ellas para enmarcar las memorias flash dentro de su contexto. &lt;br /&gt;
&lt;br /&gt;
Organizando estos tipos de memoria conviene destacar tres categorías si las clasificamos en función de las operaciones que podemos realizar sobre ellas, es decir, memorias de sólo lectura, memorias de sobre todo lectura y memorias de lectura/escritura. &lt;br /&gt;
&lt;br /&gt;
'''Memorias de sólo lectura.''' &lt;br /&gt;
&lt;br /&gt;
*[[ROM]]: ([[Read Only Memory]]): Se usan principalmente en microprogramación de sistemas. Los fabricantes las suelen emplear cuando producen componentes de forma masiva. &lt;br /&gt;
*[[PROM]]: (Programmable Read Only Memory): El proceso de escritura es electrónico. Se puede grabar posteriormente a la fabricación del chip, a diferencia de las anteriores que se graba durante la fabricación. Permite una única grabación y es más cara que la ROM.&lt;br /&gt;
&lt;br /&gt;
'''Memorias de sobre todo lectura.''' &lt;br /&gt;
&lt;br /&gt;
*[[EPROM]] ([[Erasable Programmable Read Only Memory]]): Se puede escribir varias veces de forma eléctrica, sin embargo, el borrado de los contenidos es completo y a través de la exposición a rayos ultravioletas (de esto que suelen tener una pequeña ‘ventanita’ en el chip). &lt;br /&gt;
*[[EEPROM]] ([[Electrically Erasable Programmable Read Only Memory]]): Se puede borrar selectivamente byte a byte con corriente eléctrica. Es más cara que la EPROM. &lt;br /&gt;
*Memoria flash: Está basada en las memorias EEPROM pero permite el borrado bloque a bloque y es más barata y densa.&lt;br /&gt;
&lt;br /&gt;
'''Memorias de Lectura/Escritura ([[RAM]])''' &lt;br /&gt;
&lt;br /&gt;
*[[DRAM]] ([[Dynamic Random Access Memory]]): Los datos se almacenan como en la carga de un condensador. Tiende a descargarse y, por lo tanto, es necesario un proceso de refresco periódico. Son más simples y baratas que las SRAM. &lt;br /&gt;
*[[SRAM]] ([[Static Random Access Memory]]): Los datos se almacenan formando biestables, por lo que no requiere refresco. Igual que DRAM es volátil. Son más rápidas que las DRAM y más caras.&lt;br /&gt;
&lt;br /&gt;
== Historia de la memoria flash  ==&lt;br /&gt;
&lt;br /&gt;
La historia de la memoria flash siempre ha estado muy vinculada con el avance del resto de las tecnologías a las que presta sus servicios como [[Routers]], [[Módems]], [[BIOS]] de los PC, [[Wireless]], etc. Fue [[[Fujio Masuoka]] en [[1984]], quien inventó este tipo de memoria como evolución de las EEPROM existentes por aquel entonces. Intel intentó atribuirse la creación de esta sin éxito, aunque si comercializó la primera memoria flash de uso común. &lt;br /&gt;
&lt;br /&gt;
Entre los años [[1994]] y [[1998]], se desarrollaron los principales tipos de memoria que conocemos hoy, como la [[SmartMedia]] o la [[CompactFlash]]. La tecnología pronto planteó aplicaciones en otros campos. En 1998, la compañía Rio comercializó el primer ‘[[Walkman]]’ sin piezas móviles aprovechando el modo de funcionamiento de SmartMedia. Era el sueño de todo deportista que hubiera sufrido los saltos de un discman en el bolsillo. &lt;br /&gt;
&lt;br /&gt;
En 1994 [[SanDisk]] comenzó a comercializar tarjetas de memoria (CompactFlash) basadas en estos circuitos, y desde entonces la evolución ha llegado a pequeños dispositivos de mano de la electrónica de consumo como [[Reproductores de MP3 portátiles]], tarjetas de memoria para vídeo consolas, capacidad de almacenamiento para las PC Card que nos permiten conectar a redes inalámbricas y un largo etcétera, incluso llegando a la aeronáutica espacial. El espectro es grande. &lt;br /&gt;
&lt;br /&gt;
== Futuro  ==&lt;br /&gt;
&lt;br /&gt;
El futuro del mundo de la memoria flash es bastante alentador, ya que se tiende a la ubicuidad de las computadoras y electrodomésticos inteligentes e integrados y, por ello, la demanda de memorias pequeñas, baratas y flexibles seguirá en alza hasta que aparezcan nuevos sistemas que lo superen tanto en características como en coste. En apariencia, esto no parecía muy factible ni siquiera a medio plazo ya que la miniaturización y densidad de las memorias flash estaba todavía lejos de alcanzar niveles preocupantes desde el punto de vista físico. Pero con la aparicion del memristor el futuro de las memorias flash comienza a opacarse. &lt;br /&gt;
&lt;br /&gt;
El desarrollo de las memorias flash es, en comparación con otros tipos de memoria sorprendentemente rápido tanto en capacidad como en velocidad y prestaciones. Sin embargo, los estándares de comunicación de estas memorias, de especial forma en la comunicación con los PC es notablemente inferior, lo que puede retrasar los avances conseguidos. &lt;br /&gt;
&lt;br /&gt;
La apuesta de gigantes de la informática de consumo como [[AMD]] y [[Fujitsu]] en formar nuevas empresas dedicadas exclusivamente a este tipo de memorias como [[Spansion]] en julio de [[2003]] auguran fuertes inversiones en investigación, desarrollo e innovación en un mercado que en 2005 sigue creciendo en un mercado que ya registró en [[2004]] un crecimiento asombroso hasta los 15.000 millones de dólares (después de haber superado la burbuja tecnológica del llamado boom punto com) según el analista de la industria [[Gartner]], avala todas estas ideas. &lt;br /&gt;
&lt;br /&gt;
Es curioso que esta nueva empresa, concretamente, esté dando la vuelta a la tortilla respecto a las velocidades con una técnica tan sencilla en la forma como compleja en el fondo de combinar los dos tipos de tecnologías reinantes en el mundo de las memorias flash en tan poco tiempo. Sin duda se están invirtiendo muchos esfuerzos de todo tipo en este punto. &lt;br /&gt;
&lt;br /&gt;
Sin embargo, la memoria flash se seguirá especializando fuertemente, aprovechando las características de cada tipo de memoria para funciones concretas. Supongamos una Arquitectura Harvard para un pequeño dispositivo como un [[PDA]]; la memoria de instrucciones estaría compuesta por una memoria de tipo [[ORNAND]] (empleando la tecnología [[MirrorBit]] de segunda generación) dedicada a los programas del sistema, esto ofrecería velocidades sostenidas de hasta 150 MB/s de lectura en modo ráfaga según la compañía con un costo energético ínfimo y que implementa una seguridad por hardware realmente avanzada; para la memoria de datos podríamos emplear sistemas basados en puertas [[NAND]] de alta capacidad a un precio realmente asequible. Sólo quedaría reducir el consumo de los potentes procesadores para PC actuales y dispondríamos de un sistema de muy reducidas dimensiones con unas prestaciones que hoy en día sería la envidia de la mayoría de los ordenadores de sobremesa. Y no queda mucho tiempo hasta que estos sistemas tomen, con un esfuerzo redoblado, las calles. &lt;br /&gt;
&lt;br /&gt;
Cualquier dispositivo con datos críticos empleará las tecnologías basadas en [[NOR]] u ORNAND si tenemos en cuenta que un fallo puede hacer inservible un terminal de telefonía móvil o un sistema médico por llegar a un caso extremo. Sin embargo, la electrónica de consumo personal seguirá apostando por las memorias basadas en NAND por su inmensamente reducido costo y gran capacidad, como los reproductores portátiles de MP3 o ya, incluso, [[Reproductor_de_DVD|Reproductores de DVD]] portátiles. La reducción del voltaje empleado (actualmente en 1,8 V la más reducida), además de un menor consumo, permitirá alargar la vida útil de estos dispositivos sensiblemente. Con todo, los nuevos retos serán los problemas que sufren hoy en día los procesadores por su miniaturización y altas frecuencias de reloj de los microprocesadores. &lt;br /&gt;
&lt;br /&gt;
Los sistemas de ficheros para memorias flash, con proyectos disponibles mediante [[CVS]] ([[Concurrent Version System]]) y código abierto permiten un desarrollo realmente rápido, como es el caso de [[YAFFS2]], que, incluso, ha conseguido varios patrocinadores y hay empresas realmente interesadas en un proyecto de esta envergadura. &lt;br /&gt;
&lt;br /&gt;
La integración con sistemas inalámbricos permitirá unas condiciones propicias para una mayor integración y ubicuidad de los dispositivos digitales, convirtiendo el mundo que nos rodea en el sueño de muchos desde la década de [[1980]]. Pero no sólo eso, la Agencia Espacial Brasileña, por citar una agencia espacial, ya se ha interesado oficialmente en este tipo de memorias para integrarla en sus diseños; la [[NASA]] ya lo hizo y demostró en [[Marte]] su funcionamiento en el [[Spirit]] ([[Rover]] de la NASA, gemelo de [[Opportunity]]), donde se almacenaban incorrectamente las órdenes como bien se puede recordar. Esto sólo es el principio. Y más cerca de lo que creemos. Intel asegura que el 90% de los PC, cerca del 90% de los móviles, el 50% de los módems, etc. en 1997 ya contaban con este tipo de memorias. &lt;br /&gt;
&lt;br /&gt;
En la actualidad [[TDK]] está fabricando discos duros con memorias flash NAND de 32 Gb con un tamaño similar al de un disco duro de 2.5 pulgadas, similares a los discos duros de los portátiles con una velocidad de 33.3 Mb/s. El problema de este disco duro es que, al contrario de los discos duros convencionales, tiene un número limitado de accesos. Samsung también ha desarrollado memorias NAND de hasta 32 Gb. &lt;br /&gt;
&lt;br /&gt;
La expansión de la memoria flash es infinita. En la actualidad (31/08/09) [[Kingston]] ha lanzado una memoria flash ([[DATATRAVELER]] 300) de una capacidad de 256 Gb la cual podría almacenar 51000 imágenes, 54 DVDs o 365 CDs &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Pasos a seguir para minimizar los riesgos de infección por memorias flash  ===&lt;br /&gt;
&lt;br /&gt;
Lo primero es deshabilitar la propiedad de que se ejecute el autorun.inf con solo insertar el dispositivo USB, es necesario realizar modificaciones en los registros, específicamente en el valor: nodrivetypeautorun, siempre y cuando se tengan,los permisos de administrador del sistema. La herramienta que debe emplearse es la aplicación regedit.exe que acompaña al sistema operativo la cual se puede ejecutar desde el menú inicio y la opción ejecutar, para ello se debe: 1- Ejecutar regedit.exe con el auxilio de la opción buscar dentro de edición localizar el valor nodrivetype autorun y abrirlo con el botón izquierdo del ratón.Seleccionar la opción modificar con el botón derecho del Mouse y cambiar el valor que se encuentra por defecto, generalmente es 91 y la cambias por 95 teniendo activa la opción hexadecimal. Aceptar la modificación.Esta operación se debe repetir tantas veces como se localice en el registro. &lt;br /&gt;
&lt;br /&gt;
Otros riesgos para las memorias pueden ser las [[Memorias_Hackeadas.|Memorias Hackeadas]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Debes tener en cuenta  ===&lt;br /&gt;
&lt;br /&gt;
Las operaciones descritas anteriormente limitan la ejecución de un código maligno al conectar dispositivos externos, sin embargo no imposibilitan su ejecución cuando accedemos a ellos.Por eso hay que tener en cuenta que con el explorador (explorer.exe) se debe acceder indirectamente al contenido del dispositivo externo, en ese caso se puede escoger la opción carpetas dentro de ella MIPC y finalmente escoger la unidad asociada al disco extraíble.Una vez allí se puede analizar el contenido del directorio raíz e incluso comprobar la presencia de autorun.inf o su alteración, no puede olvidarse que los creadores de programas malignos ocultan al fichero autorun de modo que no se pueda acceder simplemente a este con el auxilio del explorador.Por lo tanto una medida para evadir esta situación es tener activa la opción de poder observar ficheros y carpetas ocultas. Esto se hace de la manera que siempre lo hacemos por el Explorador /Herramientas/Mostrar archivos y carpetas ocultas. &lt;br /&gt;
&lt;br /&gt;
Incluso para evitar más engaños, es recomendable desactivar las opciones: Ocultar archivos protegidos del sistema operativo y Ocultar las extensiones de archivos para tipos de archivos conocidos.&lt;br /&gt;
&lt;br /&gt;
== La Educación Informática  ==&lt;br /&gt;
&lt;br /&gt;
Debe educarse quien opera la computadora. Habiendo tomado las medidas correspondientes, estaremos mejor preparados para trabajar la próxima vez con un dispositivo externo en la computadora y prevenir la propagación de programas malignos.Sin embargo lo visto hasta aquí solo es efectivo solo si la computadora no se encuentra infectada. De lo contrario cada vez que se borren del dispositivo externo, los ficheros del código maligno, esto reaparecerá debido a que el programa maligno que se encuentra ejecutándose en la memoria los creará otra vez.Otro aspecto que no se debe olvidar, es que una vez detectado un dispositivo infectado es probable que en el mismo lugar de trabajo otras computadoras y dispositivos empleados se encuentren también contaminadas y puedan ocurrir reinfecciones.Los productos antivirus desarrollados en [[Segurmática|Segurmática]] son capaces de identificar y eliminar, entre otros, a estos códigos malignos para dispositivos USB. &lt;br /&gt;
&lt;br /&gt;
== Fuentes  ==&lt;br /&gt;
&lt;br /&gt;
*[http://es.wikipedia.org/wiki/Memoria_flash Wikipedia, la enciclopedia libre] &lt;br /&gt;
*[http://www.segurmatica.cu Segurmática]&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
[[Category:Dispositivos_de_almacenamiento_y_reproductores]]&lt;br /&gt;
[[Categoría:Almacenamiento informático]]&lt;/div&gt;</summary>
		<author><name>Cristuline</name></author>
		
	</entry>
</feed>