Posts

Enviar datos desde android a arduino por Puerto serie-usb. (Parte 4 de 4)

Image
El sketch de arduino: const int ledPIN = 2; void setup() { Serial.begin(115200); pinMode(ledPIN , OUTPUT); } void loop() { if (Serial.available()>0){ char option = Serial.read(); if (option == '1') { digitalWrite(ledPIN , HIGH); } if (option == '0') { digitalWrite(ledPIN , LOW); } } } Este sketch es muy simple en la función setup lo primero que haremos es configurar la velocidad de comunicación del puerto serie, como ven este número coincide con el que pusimos en la aplicación de android. Después configuramos el puerto de salida donde estará conectado el led que encenderemos y apagaremos, en este caso el pin 2. En la función loop lo que hacemos es ver si el puerto serie está disponible y en caso de estarlo leer los datos que tiene. Si el dato es “1” encenderemos el led y si es “0” lo apagaremos. Con esto hemos terminado el sketch de arduino. Lo único que

Enviar datos desde android a arduino por Puerto serie-usb. (Parte 3 de 4)

Image
La aplicación android (Lo que todos esperaban): En esta parte construiremos la interfaz de la aplicación y la funcionalidad de esta interfaz. Así que empezaremos por la interfaz trabajando sobre el fichero activity_main.xml el cual editaremos para que quede de la siguiente forma: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.dcastro.ardroid.MainActivity"> <Button android:id="@+id/buttonConectarse" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.33" android:text="Conectarse&quo

Enviar datos desde android a arduino por Puerto serie-usb. (Parte 2 de 4)

Configurando la librería: Para la configuración de la librería necesitamos el .jar y el fichero llamado device_filter.xml  que se pueden descargar aquí . Después que tengamos descargado ambos ficheros copiamos el .jar en Ruta-de-tu-proyecto\Ardroid\app\libs . El fichero .xml lo copiaremos en Ruta-de-tu-proyecto\Ardroid\app\src\main\res\xml (No existe una carpeta llamada xml la deberán crear). Lo último que necesitaríamos es configurar el fichero AndroidManifest.xml agregándoles unas simples líneas (Marcadas en rojo). <intent-filter> ... <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> ... </intent-filter> <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter" /> Después de editar el fichero damos clic en el Menú Tools->Android->Sync Project with Gradle Files . Esto es todo ya podemos usar la

Enviar datos desde android a arduino por Puerto serie-usb. (Parte 1 de 4)

Image
Para completar este tutorial necesitaremos: Telefono móvil Android 3.1+ con soporte USB OTG (USB Host) Cable USB OTG Placa Arduino UNO Librería usbSerial para android Para enviar datos desde un celular android hacia una placa de arduino necesitamos realizar un programa para android que es el que se encargara de enviar los datos y un Sketch en arduino que se encargar de recibir esos datos. Para que el tutorial no se quede en teoría todo lo explicado en él se hará sobre un proyecto real simple. Este proyecto consiste en encender y apagar un led desde una aplicación en android. La aplicación en android: Utilizaremos la herramienta de desarrollo Android Studio debidamente instalada y configurada. Creamos un nuevo proyecto con la siguiente información: Después de introducir el nombre de la aplicación,  el dominio y seleccionar donde se guardara el proyecto damos clic en Siguiente (Next). Es esta pantalla seleccionares el dispositivo y la API donde se ejecu

Algoritmo genético: Problema del viajante.

Image
El Problema del Agente Viajero (TSP por sus siglas en inglés) o Problema del viajante , responde a la siguiente pregunta: Dada una lista de ciudades y las distancias entre cada par de ellas, ¿Cuál es la ruta más corta posible que visita cada ciudad exactamente una vez y regresa a la ciudad origen? Este es un problema NP-duro dentro en la optimización combinatoria, muy importante en la investigación de operaciones y en la ciencia de la computación. Caso práctico En el problema se presentan N! rutas posibles, aunque se puede simplificar ya que dada una ruta nos da igual el punto de partida y esto reduce el número de rutas a examinar en un factor N quedando (N-1)! Como no importa la dirección en que se desplace el viajante, el número de rutas a examinar se reduce nuevamente en un factor 2. Por lo tanto, hay que considerar (N-1)!/2 rutas posibles. En la práctica, para un problema del viajante con 5 ciudades hay 12 rutas diferentes y no necesitamos un ordenador para encontrar l

Algoritmo genético

Image
Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico. En los años 1970, de la mano de  John Henry Holland , surgió una de las líneas más prometedoras de la  inteligencia artificial , la de los  algoritmos genéticos . Son llamados así porque se inspiran en la evolución biológica y su base genético-molecular. Estos algoritmos hacen evolucionar una población de individuos sometiéndola a acciones aleatorias semejantes a las que actúan en la evolución biológica ( mutaciones  y  recombinaciones genéticas), así como también a una  selección  de acuerdo con algún criterio, en función del cual se decide cuáles son los individuos más adaptados, que sobreviven, y cuáles los menos aptos, que son descartados. Los algoritmos genéticos se enmarcan dentro de los  algoritmos evolutivos , que incluyen también las  estrategias evolutivas , la  programación evolutiva  y la  programación genética . Funcionamiento