Arduino sobre Ubuntu


Arduino IDE no se encuentra en los repositorios oficiales de Ubuntu, al menos en su última versión, por lo que tenemos que utilizar la web oficial del Proyecto para conseguir este IDE.

Actualmente existen dos versiones de Arduino IDE, una versión que corresponde a la rama 1.8.x y otra rama que corresponde con la versión 1.0.x. La diferencia entre ambas versiones radica en los modelos de placas que soportan: si descargamos la versión 1.8.x de Arduino IDE podemos cambiar en cualquier momento de placa y esta versión lo soportará ( si escogemos la versión 1.0.x hemos de cambiar el programa si cambiamos a una placa moderna, pues la rama 1.0.6 no soporta las placas de Arduino más modernas).

Una vez que hemos descargado el paquete de Arduino IDE desde aquí, descomprimimos el archivo comprimido en cualquier carpeta de nuestra home (mejor hacerlo ena Home y no en Descargas para evitar problemas cuando realizamos limpiezas en el futuro).

En el paquete que hemos descomprimido aparecerán varios archivos e incluso dos ejecutables, uno de ellos llamado Arduino-Builder, pero estos archivos ejecutables no seráa necesario para instalar Arduino IDE en nuestro Ubuntu

Una vez descomprimidos los archivos necesitaremos abrir una terminal en la carpeta donde están todos estos archivos, y desde la consola escribimos lo siguiente:

sudo chmod +x install.sh

Esta orden hará que el archivo de instalación pueda ejecutarse sin tener que ser root. Ahora ejecutamos en la terminal lo siguiente:

./install.sh

Puede que tenga problemas para ejecutar el instalable por los permisos, por lo que si fuese el caso solo tiene que escribir

sudo ./install.sh

Esto hará finalmente que comience la instalación de Arduino IDE en nuestro Ubuntu.

Tras seguir las instrucciones tendremos Arduino IDE instalado en nuestro Ubuntu y unacceso directo en nuestro escritorio. En este caso da igual la versión de Ubuntu que tengamos pues funciona con las últimas 10 versiones de Ubuntu que han sido lanzadas (versiones LTS incluidas).

Problemas con los puertos

Para los que esten aconstumbrados a usar el ide de Arduino sobre Windows , puede que les resulte extraño en la combinación Arduino-Ubuntu donde los puertos virtuales no se muestran del mismo modo, y con esto se desembocan en nuevos problemas, que como vamos a vers son facilmente resolubles.

COM1 es una designación de Windows (TM): se verá como/dev/ttyACM0,/dev/ttyUSB0 o similar en Linux.

El puerto atenuado tiende a significar que no ha configurado primero el tipo de placa: revise la configuración en arduino Menú Herramientas y configure la placa en ‘Uno’, también debería ver la habilitación de ‘puerto’ y el autocompletado.

puerto

El primer problema puede ser que el puerto Serial se encontraba deshabilitado, al momento de ingresar al IDE Arduino no detecta el puerto a pesar de encontrarse conectada la placa a la PC.Al acceder a  Herramientas/ Puerto Serial aparece como deshabilitado y esto NO permitirá que descarguemos nuestro código a la placa. Esto es debido a que el sistema no tiene permisos suficientes para poder establecer una comunicación a travez del puerto USB.

En linux, al conectar un USB le asigna un formato del tipo ttyACM0 o similar y esto se encuentra en la ubicación /dev.

Lo primero que tenemos que hacer es revisar como asigna el sistema operativo los puertos.Vamos abrir una terminal de ubuntu y antes de conectar el Arduino ejecutaremos el siguiente comando.

ls -l /dev | grep ACM

Si no hay ningún dispositivo conectado, no aparecerá ningún resultado. En caso contrario aparecerá asignado con algún nombre.

Ahora conectamos el arduino a la placa y ejecutamos el mismo comando.

Deberá aparecer una linea similar a

crw-rw—- 1 root dialout 166, 0 sep 25 14:42 ttyACM0

En este caso dice que solo el usuario root puede acceder al puerto.

Por lo tanto procedemos a brindarle permisos para los usuarios normales del sistema, ejecutamos e lo siguiente:

sudo chmod 777 /dev/ttyACM0

Donde ttyACM0 es el nombre que nos dio en el primer comando, este puede ser ttyACM1. Al ejecutar este comando les pedirá la contraseña del sistema. Para asegurarnos que ha cambiado los permisos ejecutamos de nuevo:

ls -l /dev | grep ACM

El resultado debe ser similar a:

crwxrwxrwx 1 root dialout 166, 0 sep 25 14:42 ttyACM0

El cambio que notaremos esta en las primeras letras del mensaje de respuesta:

Antes: crw-rw—- 1 root dialout 166, 0 sep 25 14:42 ttyACM0

Ahora: crwxrwxrwx 1 root dialout 166, 0 sep 25 14:42 ttyACM0

Esto ya indica que los demas usuarios tienen acceso al puerto ttyACM0 y por tanto no deberia dar problemas el ide de Arduino para reconocer la placa por el puerto.

Comando dmesg

En el caso de que pueda intentar iniciar sesión en Tools-> Port si existe un puerto que no sea /dev/ttyS0. Intente jugar con estas opciones. Finalmente, buscando en dmesg también puede averiguar qué puerto se ha ubicado para arduino.

Finalmente, otro enfoque es desconectar su arduino, volver a enchufarlo y escribir el siguiente comando:

dmesg | tail

Para registrar el último evento como el que ocurre cuando arduino se conecta a un puerto usb. El comando anterior le mostrará el puerto correcto.

Para obtener mejores resultados, puede usar lo siguiente:

  dmesg | tail -f

Y conecte y desconecte continuamente el arduino del puerto usp hasta que vea cualquier mensaje relacionado con arduino. El parámetro -f permite mostrar en tiempo real los nuevos registros.

Si todo va mal

Si su cuenta de usuario probablemente no tiene permiso para usar el puerto serie y no consigue resolver el problema hay aun dos formas de abordar esto:

  • Más fácil, pero no aconsejable: Ejecute Arduino IDE como root (por ejemplo, inicie desde la línea de comando usando Sudo).
  • La segunda forma más recomendable de hacerlo es agregar su usuario al grupo dialout, que tiene permiso para usar el puerto serie. Use el comando Sudo adduser $USER dialout. Sin embargo, deberá cerrar sesión y volver a iniciarla para que surta efecto (o intente esto ). Para enumerar grupos de usuarios actuales, use groups o id -Gn.

Una vez hecho esto, cuando seleccione el puerto serie correcto (como otros han mencionado, tal vez /dev/ttyUSB0), debería poder escribir, permitiéndole programar el Arduino.

sudo chmod a+rw /dev/ttyACM0  

o

sudo chmod a+rw /dev/ttyUSB0

Espero que se ha de utilidad este post, si tienen algún comentario o duda pueden dejarlo en los comentarios.

Instalación de Anaconda en Ubuntu


Diseñado para los flujos de trabajo de ciencia de los datos y aprendizaje automático, Anaconda es un gestor de paquetes de código abierto, gestor de entornos y distribución de los lenguajes de programación Python y R.

En efecto Conda es un gestor de paquetes y un sistema de gestión de entornos de código abierto,multiplataforma y de lenguaje agnóstico publicado bajo la licencia BSD. Está escrito en el lenguaje de programación Python, pero puede gestionar proyectos que contengan código escrito en otros lenguajes, como R, así como proyecto multilenguaje. Conda puede instalar la versión de Python que se necesite en el entorno de desarrollo, al contrario que otros gestores de paquetes basados en Python, como pip o wheel.

Cuenta con «canales» (channels), que son las ubicaciones de los repositorios en los que Conda busca paquetes. Debido a que los canales se organizan jerárquicamente, al instalar un paquete Conda comprobará qué canal tiene el mayor índice de prioridad; este orden de prioridad se puede cambiar, así como también añadir nuevos canales. Los canales que se establecen por defecto son los repositorios de Continuum. Existen canales más generales, que ofrecen una amplia gama de paquetes, como conda-forge; y otros más específicos, como Bioconda, que proporciona paquetes especializados en bioinformática.

Conda está incluido en todas las versiones de Anaconda, Miniconda ​ y Anaconda Repository.

Obtención de la versión más reciente de Anaconda

Prerrequisitos

  • Una cuenta de usuario con  privilegios de sudo 
  • Acceso a una línea de comando / ventana de terminal (Ctrl-Alt-T)

Actualice el Administrador de paquetes local

Empiece por actualizar el administrador de paquetes local. Abra una ventana de terminal e ingrese lo siguiente:

sudo apt-get update

Si su sistema no tiene curl , instálelo ingresando:

sudo apt-get install curl

Descargue la última versión de Anaconda

En el momento en que se escribió este artículo, la última versión de Anaconda es 2020.02. Consulte la página de descarga del desarrollador para ver la versión más reciente.

https://www.anaconda.com/distribution/

Busque la versión más reciente para Linux y copie la secuencia de comandos bash del instalador.

Anote la URL y utilícela para descargar la versión correcta.

Cambie al directorio / tmp y use curl para descargar el instalador usando su terminal de comando:

cd /tmp
curl –O https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh

Esta versión está diseñada para Python 3.7. Si está utilizando Python 2.7, utilice la URL adecuada.

Verificar la suma de comprobación de descarga

Checksum es una herramienta de seguridad que se utiliza para verificar la autenticidad e integridad de un script descargado.

Introduzca la siguiente:

sha256sum Anaconda3–2020.02–Linux–x86_64.sh

Su sistema mostrará una serie de letras y números:

69581cf739365ec7fb95608eef694ba959d7d33b36eb961953f2b82cb25bdf5a Anaconda3-2019.07-Linux-x86_64.sh

Compárelos con la suma de comprobación apropiada (o hash ) en la documentación de Anaconda . Si ha elegido una versión diferente, asegúrese de consultar la documentación para ver la suma de comprobación de esa versión.

Ejecución de la secuencia de comandos de Anaconda

Una vez que acepte la licencia, se le pedirá que seleccione la ubicación de la instalación. Puede pulsar ENTER para aceptar la ubicación predeterminada o especificar una ubicación diferente.


bash Anaconda3-2019.03-Linux-x86_64.sh

Recibirá el siguiente resultado para revisar el acuerdo de licencia pulsando ENTER hasta llegar al final.

Output
Welcome to Anaconda3 2019.03

In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>>
...
Do you approve the license terms? [yes|no]

Cuando llegue al final de la licencia, escriba yes, si acepta la licencia, para completar la instalación.

En este momento, se procederá con la instalación. Tenga en cuenta que el proceso puede tardar un tiempo.

Cuando se complete la instalación, recibirá el siguiente resultado:

Output...
installation finished.
Do you wish the installer to prepend the Anaconda3 install location
to PATH in your /home/sammy/.bashrc ? [yes|no]
[no] >>> 

Se recomienda que escriba yes para usar el comando conda.

Activación de la instalación

Ahora, puede activar la instalación con el siguiente comando:

source ~/.bashrc

Instalación de prueba

Utilice el comando conda para probar la instalación y la activación:

conda list

Recibirá el resultado de todos los paquetes que tiene disponibles a través de la instalación de Anaconda.

Configuración de los entornos de Anaconda

Puede crear entornos de Anaconda con el comando conda create. Por ejemplo, se puede crear un entorno de Python 3 llamado my_envcon el siguiente comando:

conda create --name my_env python=3

Active el nuevo entorno de esta manera:

conda activate my_env

El prefijo de instrucción de su comando cambiará para reflejar que está en un entorno de Anaconda activo, y que, ahora, está listo para empezar a trabajar en un proyecto.

Instalacion de Jupyter Notebook en Ubuntu


Jupyter Notebook, es una estupenda aplicación web de código abierto, que constituye un  desarrollo interactivo basado en web para cuadernos, código y datos de Jupyter.  Permite crear y compartir  código interactivamente,  asi como espectaculares  visualizaciones y otros recursos. Esta herramienta puede utilizarse con varios lenguajes de programación, como Python, Julia, R, Haskell y Ruby .  JupyterLab es flexible,  extensible y modular gracias aomplementos que agregan nuevos componentes y se integran con los existentes.

Ademas esta herramienta es ampliamente usada por Google  y tambien en ambiente universitario  usandose muy  menudo  para trabajar con datos, modelos estadísticos, y aprendizaje automático .

Esta herramienta es compleja instalarla en sistemas windows , pero en Linux no es demasiado dificil como vamos a  ver, pues  sólo necesitaremos  disponer de una instancia de servidor de Ubuntu 18.04 nueva con un firewall básico y un usuario no root con privilegios sudo configurados.

Para los usuarios  que no dispongan de un maquina Linux pueden arrancar su ordenador con una unidad extraible con alguna distribucion de Linux ligera como Xubuntu  y a partir de ahi seguir los pasos que vamos a describir.

Como ya se ha comentado se ha popularizado tanto este entorno , que incluso lo podemos ejecutar Juniper Notebook de forma virtualizada en la nube de Google con la herramienta https://colab.research.google.com/notebooks/

 

Instalacion y primeros pasos

Para iniciar el proceso, instalaremos las dependencias que necesitamos para nuestro entorno de programación de Python desde los repositorios de Ubuntu. Ubuntu 18.04 viene con Python 3.6 previamente instalado.

Jupyter Notebook puede usarse con diferentes lenguajes( Python, Julia, R, Haskell y Ruby)  , pero en este caso  vamos a usar Python , por lo que usaremos el administrador de paquetes de Python pip para instalar componentes adicionales más tarde.

Necesitaremos primero actualizar el índice de paquetes local apt y luego descargaremos e instalaremos los paquetes:

sudo apt update

A continuación, instale pip y los archivos de encabezado de Python, utilizados por algunas dependencias de Jupyter:

sudo apt install python3-pip python3-dev

Ahora podemos proceder a configurar un entorno virtual de Python en el que instalaremos Jupyter.

Crear un entorno virtual de Python para Jupyter

Ahora Python 3, sus archivos de encabezado y pip están listos para comenzar, podemos crear un entorno virtual de Python para administrar nuestros proyectos. Instalaremos Jupyter en este entorno virtual.

Para ello, primero necesitaremos acceso al comando virtualenv, que podemos instalar con pip.

Actualice pip e instale el paquete escribiendo lo siguiente:

sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv

El indicador -H garantiza que la política de seguridad defina la variable de entorno home como el directorio de inicio del usuario de destino.

Con virtualenv ya instalado, podemos comenzar a crear nuestro entorno. Cree un directorio en el que podamos guardar los archivos de nuestro proyecto y posiciónese en él: Daremos a este directorio el nombre my_project_dir, pero deberá usar un nombre que sea significativo para usted y para el trabajo que está desarrolle.

mkdir ~/my_project_dir
cd ~/my_project_dir

En el directorio del proyecto, crearemos un entorno virtual de Python. A los efectos de este tutorial, le daremos el nombre my_project_env, pero debería asignarle uno que se relacione con su proyecto.

virtualenv my_project_env

Con esto, se creará un directorio llamado my_project_env dentro de su directorio my_project_dir. Dentro de este, se instalarán una versión local de Python y una versión local de pip. Podemos usar esto para instalar y configurar un entorno aislado de Python para Jupyter.

Antes de instalar Jupyter, debemos activar el entorno virtual. Puede hacerlo escribiendo lo siguiente:

source my_project_env/bin/activate

Su línea de comandos cambiará para indicar que ahora realizará operaciones en un entorno virtual de Python. Tendrá un aspecto similar al siguiente: (my_project_env)[email protected]:~/my_project_dir$.

Con esto, estará listo para instalar Jupyter en este entorno virtual.

 Instalar Jupyter

Una vez activado su entorno virtual, instale Jupyter con la instancia local de pip.Ojo  cuando se active el entorno virtual (cuando (my_project_env) se encuentre al inicio de su línea de comandos), use pip en lugar de pip3, incluso si emplea Python 3. La copia del entorno virtual de la herramienta siempre se llama pip, independientemente de la versión de Python.

pip install jupyter

En este punto, habrá instalado con éxito todo el software necesario para ejecutar Jupyter. Ahora podremos iniciar el servidor de Notebook.

 

Instalar jupyterlab

Si  usa pip,  puede instalarlo con el siguinte coamndo:

pip install jupyterlab

Is instalando usa  pip install --user, debe añadir el directorio de nivel usuario  bin a la variable PATH en orden de lanzar jupyter lab. Si esta usando algun derivadode Unix  (FreeBSD, GNU / Linux, OS X), puede alamcenar este path usuando el comando

export PATH="$HOME/.local/bin:$PATH".

Ejecutar JupyterLab

Una vez instalado , lanze JupyterLab con:

jupyter-lab

 Ejecutar Jupyter Notebook

Ya dispone de todo lo que necesita para ejecutar Jupyter Notebook. Para ejecutarlo, introduzca el siguiente comando:

jupyter notebook

Se mostrará un registro de las actividades de Jupyter Notebook en el terminal. Cuando se ejecuta Jupyter Notebook, este funciona en un número de puerto específico. Normalmente, el primer notebook que ejecute usará el puerto 8888. Para verificar el número de puerto específico en el que se ejecuta Jupyter Notebook, consulte el resultado del comando utilizado para iniciarlo:

Output[I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/notebook_cookie_secret
[I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home/sammy/my_project_dir
[I 21:23:21.361 NotebookApp] The Jupyter Notebook is running at:
[I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
[I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser.
[C 21:23:21.361 NotebookApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72

Si ejecuta Jupyter Notebook en un pc local (no en un servidor), puede dirigirse a la URL que se muestra para conectarse a Jupyter Notebook. Si ejecuta Jupyter Notebook en un servidor, deberá establecer conexión con este usando túneles SSH c

En este punto, podrá mantener la conexión SSH abierta y Jupyter Notebook en ejecución, o bien cerrar la aplicación y volver a ejecutarla una vez que configure los túneles SSH. Optaremos por detener el proceso de Jupyter Notebook. Lo ejecutaremos de nuevo una vez que configuremos los túneles SSH. Para detener el proceso de Jupyter Notebook, presione CTRL+C, escriba Y y luego presione ENTER para confirmar. Se mostrará el siguiente resultado:

Output[C 21:28:28.512 NotebookApp] Shutdown confirmed
[I 21:28:28.512 NotebookApp] Shutting down 0 kernels

Con esto, debería establecer conexión con este usando un navegador web. Jupyter Notebook es una herramienta muy poderosa que dispone de muchas características. En esta sección se mostrarán algunas de las características básicas para que comience a usar el Notebook. Jupyter Notebook mostrará todos los archivos y las carpetas en el directorio desde el que se ejecuta. Por ello, cuando trabaje en un proyecto asegúrese de iniciarlo desde el directorio del proyecto.

Para crear un nuevo archivo de Notebook, seleccione New > Python 3 en el menú desplegable que se encuentra en la parte superior derecha:

Crear un nuevo notebook de Python 3

Con esto se abrirá un Notebook. Ahora podemos ejecutar el código de Python en la celda o cambiar la celda a lenguaje de marcado. Por ejemplo, cambie la primera celda para aceptar el lenguaje de marcado haciendo clic en Cell > Cell Type > Markdown en la barra de navegación de la parte superior. Con esto, podremos escribir notas usando el lenguaje de marcado e incluso incluir ecuaciones escritas en LaTeX disponiéndolas entre los símbolos de $$. Por ejemplo, escriba lo siguiente en la celda después del cambio a lenguaje de marcado:

# First Equation

Let us now implement the following equation:
$$ y = x^2$$

where $x = 2$

Para convertir el lenguaje de marcado en texto enriquecido, presione CTRL + ENTER. Deberían aparecer los siguientes resultados:

Resultados de lenguaje de marcado

Puede utilizar las celdas de lenguaje de marcado para crear notas y documentar su código. Implementaremos esa ecuación e imprimiremos el resultado. Haga clic en la celda superior y presione ALT+ENTER para añadir una celda debajo de esta. Ingrese el código siguiente en la nueva celda.

x = 2
y = x**2
print(y)

Para ejecutar el código, presione CTRL+ENTER. Obtendrá los siguientes resultados:

Resultado de la primera ecuación

Ahora podrá importar módulos y usar el Notebook como lo haría con cualquier otro entorno de desarrollo de Python.

Conclusión

¡Felicitaciones! Ahora debería poder escribir código y notas de Python que puedan reproducirse en lenguaje de marcado usando Jupyter Notebook. Si desea acceder a una visita rápida de Jupyter Notebook desde la interfaz, seleccione Help > User Interface Tour en el menú de navegación superior para obtener más información.