martes, 26 de diciembre de 2017

Como instalar Anaconda en Windows 10 para programar en Python



Según Wikipedia : "Anaconda es el instalador para Red Hat Linux y Fedora. Está escrito en Python y C, y posee un frontend gráfico usando PyGTK y un frontend modo textoPython-newt. Un archivo Kickstart puede ser usado para configurar automáticamente la instalación, permitiendo a los usuarios ejecutar la aplicación con un mínimo de supervisión.
Las anacondas son serpientes que comen lagartos (similar a la pitón), y el programa de instalación de Caldera Linux era llamado «Lizard», palabra en inglés para «lagarto», de ahí el nombre.
Anaconda ha sido portado a otras distribuciones Linux, como Oz LinuxDebian (mantenido por Progeny), Gentoo LinuxVidaLinux, Oracle Linux y Sabayon Linux."

Requisitos del sistema para instalar Anaconda según el sitio web oficial  conda.io

  • Procesador de 32- o 64-bit
  • Para Miniconda—400 MB de espacio libre en nuestro disco.
  • Para Anaconda—Mínimo 3 GB espacio libre en nuestro disco para descargar y realizar la instalación.
  • Sistemas operativos compatibles Windows, macOS o Linux.
  • Python 2.7, 3.4, 3.5 O 3.6.
  • Pycosat.
  • PyYaml.

Pasos para la instalación

0. ANTES DE REALIZAR LA INSTALACIÓN DE ANACONDA ES NECESARIO TENER PYTHON 3.6 EN NUESTRO SISTEMA OPERATIVO. PUEDES DESCARGARLO EN EL SIGUIENTE LINK 



Debemos recordar que es necesario tener permisos de administrador para realizar la instalación de Python 3.6 de forma correcta.


1. Como deseamos realizar la instalación desde Windows vamos acceder al los siguientes Links dependiendo de la arquitectura de nuestro sistema operativo. 

Anaconda 5.0.1 Instalador para Windows 

Python 3.6 version 





2. Luego de descargar el archivo lo procedemos a ejecutar , presionamos siguiente y aceptamos los terminos y condiciones.





3. Marcamos si deseamos la instalación solo para nuestro usuario o para los demas que existan en nuestro OS.


4. Indicamos la carpeta de destino de instalación y presionamos siguiente.


5. Esperamos a finalizar la instalación y procedemos a ejecutar Anaconda. Para la ejecución lo primero es ir al boton de INICIO de Windows y seleccionar la carpeta de  ANACONDA , luego de esto ejecutar Anaconda Prompt. Las siguientes lineas de codigo se deben insertar en la consola que nos arrojara al abrir Anaconda Prompt.


Instalación de ipyparallel

Insertamos en siguiente comando en la consola y presionamos ENTER
pip install ipyparallel
Para habilitar IPython Clusters en Jupyter Notebook utilizamos el siguiente comando: 
ipcluster nbextension enable
Y para desahabilitarlo:
ipcluster nbextension disable
Mire la Documentación para la creación de tu propío servidor tipo NOTEBOOK  para encontrar o editar su configuración inicial de  jupyter_notebook_config.py.

Instalación de JupyterHub 

Para realizar esta instalación en todos los usuarios de JupyterHub es necesario haber iniciado en modo de administrador  :
jupyter nbextension install --sys-prefix --py ipyparallel
jupyter nbextension enable --sys-prefix --py ipyparallel
jupyter serverextension enable --sys-prefix --py ipyparallel

Iniciar

Inicializamos el cluster con:

ipcluster start
EN CASO DE QUE NUESTRO ANACONDA NAVIGATOR NO FUNCIONE , DEBEMOS ABRIR ANACONDA PROMPT Y EJECUTAR LOS SIGUIENTES COMANDOS:

conda update anaconda-navigator

domingo, 24 de diciembre de 2017

COMUNICACIÓN ARDUINO <>PC [UTILIZANDO USB Y PYTHON]

COMUNICACIÓN ARDUINO - PC 

[UTILIZANDO USB Y PYTHON]

 

  !La siguiente guía se encuentra en desarrollo ademas abierta a recomendaciones, comentarios y aportes !



Cada vez que nos adentramos  al mundo de Arduino ,nuestra mente crea nuevas ideas  para desarrollar proyectos cada vez mas complejos. Se que en algún momento ,te has preguntado ¿Como envío los datos de N variable a otro lugar? o para ser mas directos un ejemplo básico del campo experimental ¿Como envío la temperatura que esta midiendo mi Arduino a mi PC?. Esta y muchas otras dudas similares aparecen luego de jugar con un Arduino.

Como objetivo general:  se busca diseñar un sistema base que permita enviar datos por medio de los diferentes canales de comunicación a los cuales se puede adaptar nuestro Arduino(WiFi, Bluetooth ,USB). Procesar dichos datos nos facilitara convertirlos a información valiosa y que podrá ser de gran utilidad para los distintos tipos de usuarios.

¿Que cosas necesitamos?


  1. Una placa de Arduino UNO con su respectivo cable usb. (Podemos comprarla en Amazon.com comenzando con precios desde 16.95$ con envió dentro de USA , sin incluir gastos de envíos y tramites de cargas hacía nuestro respectivo país; ya si deseamos nuestra placa comprada desde Amazon.com y entregada en Panamá nuestros precios inician desde 29.95$ ) A continuación una pequeña lista de placas que podemos recomendarte Arduino UNO vendido por ELEGOO.
  2. Un sensor cualquiera , por ejemplo: de temperatura  o humedad.  En mi caso utilizare el DHT-11 - Que es un sensor para temperatura y humedad relativa lo pueden comprar dando click aquí.

  3. Librería DHT para nuestro sensor de temperatura y humedad (Descarga aquí librería DHT)

  4. Python 3.6 instalado en nuestro OS(Guía para instalar Python 3.6 en Windows).  

sábado, 14 de octubre de 2017

Controlar arduino con ESP8266 -02 por WiFi

Guía para controlar tu Arduino inalambricamente por medio de conexión WiFi con el modulo ESP-8266 




AVISO: Es importante tomar en cuenta que el modulo ESP-8266 posee un consumo alto de energía por lo que tenemos dos opciones para hacer arrancar el mismo a la par con el arduino , brindarle energía y lograr desarrollar del siguiente proyecto.


 

 

PASO 1: ELEGIR UNA FUENTE ALTERNA DE CORRIENTE


Adaptador de corriente de 9V
Opción 1: Utilizar un adaptador de corriente de 9V DC conectada directamente a nuestro Arduino. Esto sera muy útil en durante el desarrollo y la ejecución de nuestro proyecto, ya que el objetivo principal es brindarle una cantidad de energía adecuada al mismo. 

Opción 2: Utilizar un adaptador FTDI232- MINI USB 5 PINES TIPO B HEMBRA A TTL O SIMILAR EN MODO 3.3V  para darle energía a los pines VCC, CHP0 , RST de nuestro modulo ESP-8266. Ademas no debemos olvidar que necesitamos un cable MINI USB 5 PINES TIPO B MACHO A USB ESTANDAR.
ADAPTADOR FTDI232- MINI USB 5 PINES TIPO B HEMBRA A TTL
NUEVAMENTE TE RECOMENDAMOS UTILIZAR LAS SIGUIENTES FUENTES DE ENERGÍA, Y EVITAR UTILIZAR LA ENERGÍA DEL ARDUINO  CONECTADO POR USB A LA COMPUTADORA PARA ALIMENTAR TU MODULO ESP 8266 Y OBTENER UN OPTIMO RENDIMIENTO DE NUESTRO MODULO.


PASO 2: Armar nuestro circuito

Opción 1 :  Utilizar un adaptador 9V DC conectada directamente al arduino.
Circuito de la opción 1 - adaptador 9V
 EJEMPLO

Nos debería quedar algo como lo siguiente

VIDEO DE GUIÁ PARA ARMAR CIRCUITO


 


Opción 2: Utilizar un modulo usb TTL EN MODO 3.3V para darle energía a los pines VCC, CHP0 , RST. Esto lo vamos a mostrar de forma detallada en los diagramas de conexión.

PASO 3: Nuestra programación


AVISO:  LOS SIGUIENTES CÓDIGOS QUE SE PRESENTAN NO SON CREADOS COMPLETAMENTE  POR MÍ, LOS HE DOCUMENTADOS PARA MAYOR COMPRENSIÓN DEL USUARIO Y UN MAYOR ADAPTA MIENTO.



En el siguiente enlace te dejo el código que se ha implementado en el proyecto:


Es importante tener en cuenta las librerías son fundamentales a la hora de realizar nuestros proyectos ,aquí te incluyo la librería que se utiliza en el siguiente proyecto :


Enlace de librería opcional para mostrar la información de en una pantalla LCD 16x2 , conectada a los pines analógicos.




El video de demostraciòn y uso del proyecto se encuentra en construciòn para brindarle una explicaciòn completa y sencilla.




Referencias

https://github.com/ydonnelly/ESP8266_fritzing //  Tarjetas esp8266 para software fritzing




martes, 5 de septiembre de 2017

Controla tu dispositivo Arduino por WiFi con la placa ESP8266 de Sparkfun

Proyecto: GUÍA DE PROGRAMACIÓN PARA CONTROL INALAMBRICO POR MEDIO DE RED WIFI
MODULO ESP8266 SHIELD By spakfun 




Presentado por Jesús Alexander Solís Peñalba 8-971-85
Carrera: LIC. EN ING. DE SISTEMAS Y COMPUTACIÓN 

Profesor: Oscar Elis
Teléfono: 6408-9362



Introducción
A medida que pasan los años  surgen distintos avance de gran utilidad para la  innovación tecnológica y el mundo de la robótica e inteligencia artificial. Con la invención de distintos sistemas o placas con circuitos integrados que permiten captar y transmitir información en nuestro caso, el sistema Arduino; se han reducido costes para múltiples usuarios o empresas que buscan automatizar sus procesos, mejorar el soporte técnico a sus actividades, actuar de manera rápida y precisa al surgir algún tipo de error.
Con la siguiente guía buscamos lograr los siguientes objetivos:
-Facilitar el manejo de órdenes a los distintos dispositivos conectados a nuestra placa arduino uno , mediante una conexión remota (Wifi).
-Promover la implementación o creación de nuevos softwares que permitan comunicarse con nuestros proyectos.
-Comprender la importancia de salir de nuestra burbuja de limitaciones; aprovechando las redes informáticas que el mundo nos brinda a bajo costo y con amplia capacidad de respuesta.


¿Que necesitamos?

Hardware
Software
Placa arduino en nuestro caso utilizaremos el Arduino UNO


Arduino IDE



Placa Esp8266 de Sparkfun



Librerías fundamentales utilizadas

4x Cables macho – macho


1x Protoboard

1x Led

1x Resistor – 10k


cable usb tipo A hembra to  tipo B hembra





¿Como utilizarlo?
PASOS
RESULTADOS





1. Montar nuestra tarjeta ESP8266 sparkfun sobre nuestro arduino uno

2. Agregar las librerías a nuesto sketch de ardunio

3. Cambiar nombre y clave dependiendo de la red que tengamos en nuestro código

4. Luego de esto subir nuestro código al dispositivo



PRONTO ESTAREMOS SUBIENDO UN VIDEO COMPLETO PARA EL USO Y LA CONFIGURACION DEL DISPOSITIVO

NUESTRO CODIGO 






#include <WiFiServer.h>


#include <Arduino.h>
#include <SoftwareSerial.h>
SoftwareSerial wifilox(8,9);
#include <ESP8266_Simple.h>

/*/ INFORMACION PARA CONECTAR A RED WIFI
#define ESP8266_SSID  "TRENDnet810_2.4GHz_A4PO" //NOMBRE RED
#define ESP8266_PASS  "clav" //CLAVE de tu red wifi
*/

#define ESP8266_SSID  "1il" //NOMBRE RED
#define ESP8266_PASS  "12345678" //CLAVE
ESP8266_Simple wifi(8,9); //PIN_TX,PIN_RX //DECLARACION DE OBJETO O TARJETA WIFI
WiFiServer server(80);
// CONFIGURACION INICIAL


void setup()
{  pinMode(13, OUTPUT); //UTILIZAMOS EL PIN 13 PARA INSTALAR ALLI EL LED
  Serial.begin(9600); // INICILIZAMOS EN 9600 BAUDIOS PARA PERMITIR LA COMUNICACION EN PANTALLA 
  Serial.println("Proceso de inicializacion...");

  wifi.begin(9600);  // INICILIZAMOS EN 9600 BAUDIOS NUESTRA TARJETA WIFI PARA PERMITIR LA COMUNICACION EN PANTALLA 
  
  //SINTAXIS DE wifi.setupAsWifiStation  (NOMBRE_RED,CLAVE_RED,&DONDE_DESEAMOS MOSTRAR EL MENSAJE QUE REGRESA : OK SIGNIFICA CONEXION REALIZADA )
  
  wifi.setupAsWifiStation(ESP8266_SSID, ESP8266_PASS, &Serial); 
  Serial.println("Conectando... ");  //INSTRUCCION QUE INICIALIZA CONEXION CON RED   
  
  
  // Esta instruccion permite al operador confirmar a si la conexion se realizo de forma exitosa
  
  char ipAddressString[16]; // 16 bytes necesitamos , en esta variable guardamos nuestra IP
  
  wifi.getIPAddress(ipAddressString); // Con la siguiente funcion usamos el objeto -wifi- que es nuestra tarjeta esp8266 y con la funcion getIPAddress guardamos en la variable ipAddressString nuestra ip 
  
  //mostramos en pantalla nuestra ip y la red a la cual nos conectamos
  
  Serial.print("La IP actual es: ");
  Serial.println(ipAddressString);  
  Serial.println("Conectado a red : " );  
  Serial.println(ESP8266_SSID);
  Serial.println();

  // setWifiMode se utiliza para configurar el modo en el cual usaremos nuestra tarjeta wifi : 1 terminal,2 Punto de acceso osea un mini router wifi,3 ambas 
  wifi.setWifiMode(1);

  /*-----------------------------------------Entramos en la creacion del pequeño servidor que nos permitira la comunicacion cliente - servido.--------------------------------------------------*/
 // Aqui declaramos las instrucciones 
 //usar estos comandos en nuestro navegador para interactuar con el dipositivo sintaxis
 // ip del dispositivo/nombre del comando
 // 192.168.43.183/led ingresar a esta ip para ver la respuesta
 static ESP8266_HttpServerHandler myServerHandlers[] = {
    { PSTR("GET /millis"), httpMillis },    
    { PSTR("GET /led"),    httpLed    },     
    { PSTR("GET "),        http404    }    
  };  
  
  wifi.startHttpServer(80 ,  myServerHandlers , sizeof(myServerHandlers) , 25 , &Serial);
  wifilox.println("AT+CIPMUX=1");
  Serial.println( wifilox.println("AT+CIPMUX=1"));
  
  Serial.println("Listo, conexion exitosa ; comandos disponibles :");
  Serial.print(ipAddressString);
  Serial.print("/millis");
  Serial.println();
  Serial.print(ipAddressString);
  Serial.print("/led");
  Serial.println();
  Serial.print(ipAddressString);
  Serial.print("/");
  
}

void loop()
{ wifi.serveHttpRequest(); 
 return;
}//cierra looop

//LA SIGUIENTE FUNCION MUESTRA AL USUARIO EN SU NAVEGADOR MILLISEGUNDOS
unsigned long httpMillis(char *buffer, int bufferLength)
{
  // FUNCION IMPORTANTE PARA LIMPIAR LAS INSTRUCCIONES ENTRANTES
  memset(buffer,0,bufferLength);

  //aqui va el codigo HTML que se aprecia en el navegador al momento que el usuario realiza la peticion
  strncpy_P(buffer, PSTR("<h1>Millis</h1><p>The current millis() are: "), bufferLength-strlen(buffer)); 
  ultoa(millis(),buffer+strlen(buffer),10);
  strncpy_P(buffer+strlen(buffer), PSTR("</p>"), bufferLength-strlen(buffer));        

   
  return ESP8266_HTML | 200;  //200 significa OK PARA EL NAVEGADOR
}

// LA SIGUIENTE FUNCION ENCIENDE UN LED


unsigned long httpLed(char *buffer, int bufferLength)
{  
  static byte ledStatus = 0;
  Serial.println("Comando recibido: ip/led");
  // -----------------------------INGRESAR EN ESTA PARTE EL CODIGO QUE DESEAMOS REALIZAR EN NUESTRO ARDUINO--------------------------
  
  if(ledStatus)
  { 
    digitalWrite(13, LOW);
    ledStatus = 0;
  }
  else
  {
    digitalWrite(13, HIGH);
    ledStatus = 1;
  }    
  
  // En esta parte le da a usuario 
  memset(buffer,0,bufferLength);
  strncpy_P(buffer, ledStatus ? PSTR("Pin 13 : ENCENDIDO") : PSTR("Pin 13 : APAGADO"), bufferLength-strlen(buffer));
  
  // And return the type and HTTP response code combined with "|" (bitwise or)
  // Valid  types are: ESP8266_HTML, ESP8266_TEXT, ESP8266_RAW
  // Valid  response codes are: any standard HTTP response code (typically, 200 for OK, 404 for not found, and 500 for error)
  
  return ESP8266_TEXT | 200;
}

// LA SIGUIENTE INSTRUCCION SE EJECUTA APENAS EL USUARIO INGRESA A LA IP

unsigned long http404(char *buffer, int bufferLength)
{  
  memset(buffer, 0, bufferLength);  
  strcpy_P(buffer, PSTR("<h1>COMANDO VACIOV - PAGINA DE INICIO  </h1>\r\n<p>Try <a href=\"/millis\">/millis</a>, and <a href=\"/led\">/led</a></p>"));
  return ESP8266_HTML | 404;
}

Como instalar Anaconda en Windows 10 para programar en Python

Según Wikipedia : "Anaconda   es el  instalador  para  Red Hat Linux  y  Fedora . Está escrito en  Python  y  C , y posee un  fron...