Está en la página 1de 12

Ing. Marco Andrés Ortiz N. MSc.

marco.ortiz@escuelaing.edu.co

Procedimiento para la Configuración de la Máquina Virtual de ALSE-01


en VirtualBox y Ubuntu 18.04, para la comunicación y programación del
Sistema Operativo Linux con el Microcontrolador ATmega328P en
Arduino UNO Rev3.

Requerimientos y materiales

• Máquina Virtual de ALSE grupo 01 entrega y usada durante el primer tercio.


• Arduino UNO Rev3
• Cable USB tipo B-A
• Conectividad a Internet

Introducción

En la Figura 1 se muestran las partes relevantes para configurar la Conexión Virtual entre el Anfitrión
(Host) y el Invitado (Guest).

Figura 1. Diagrama de elementos relevantes a configurar.


Ing. Marco Andrés Ortiz N. MSc.
marco.ortiz@escuelaing.edu.co
Esta Conexión Virtual permite el paso de bits entre el puerto físico USB del Host con el Sistema operativo
Ubuntu 18.04 del Guest. De esta manera, se puede establecer comunicación entre el Microcontrolador
(MCU) ATmega328P (Arduino UNO) y el Sistema Operativo Ubuntu 18.04, con el propósito de
intercambiar información bidireccionalmente entre ellos para programar el MCU y Transmitir/Recibir
información durante la ejecución de un programa. El siguiente diagrama (Figura 2) muestra la conexión y
los componentes relevantes para dicha comunicación.

Figura 2. Diagrama de conexión y elementos relevantes para la comunicación.

Procedimiento

1. Conecte el puerto USB-B a la tarjeta Arduino UNO y el otro extremo (USB-A) al puerto
correspondiente del Anfitrión (Host)

2. Consulte el identificador del puerto Serial (COM) del Host, creado automáticamente por el
Controlador usbser.sys. Para esto, en el menú de inicio de Windows, busque el Administrador de
Dispositivos y consulte el nombre generado por el controlador para esta conexión. Para el
ejemplo en esta guía el puerto es el COM3 (Figura 3).
Ing. Marco Andrés Ortiz N. MSc.
marco.ortiz@escuelaing.edu.co

Figura 3. Identificador de Puerto Serial en Windows 10.

3. Se procede con la configuración de la conexión virtual entre el Host y el Guest, de sus interfaces
Seriales. Esto se realiza en la configuración VirtualBox, teniendo en cuenta el identificador del
puerto encontrado en el paso anterior (COM3 para el ejemplo de esta guía). Para esto, acceda a
la configuración de la Máquina Virtual como se muestra en la Figura 4.

Figura 4. Selección de configuración de VM de ALSE.

4. Habilite el puerto el puerto Serial y configure como se muestra en la Figura 5. Cambie el puerto
COM3 por el que encontró luego de realizar el paso 2.
Ing. Marco Andrés Ortiz N. MSc.
marco.ortiz@escuelaing.edu.co

Figura 5. Parámetros de configuración para conexión serial.

*NOTA: Si requiere usar la VM pero no tiene conectado ningún dispositivo, deshabilitar el puerto serial
antes de iniciar.

5. Inicie la Máquina Virtual de Alse y acceda a la Interfaz de Comandos (CLI) y ejecute el comando
startx como se muestra a continuación (Figura 6)

Figura 6. Comando para inicialización de interfaz LXDE.

6. Espere que inicialice la interfaz gráfica y si lo requiere, ajuste la resolución de acuerdo con las
características de su pantalla (Figura 7).
Ing. Marco Andrés Ortiz N. MSc.
marco.ortiz@escuelaing.edu.co

Figura 7. Opciones de menú para acceder a la configuración de resolución de pantalla.

7. Abra el terminal haciendo Click en el ícono correspondiente como se muestra en la siguiente


figura (Figura 8).

Figura 8. Acceso a Terminal.

8. Ejecute el siguiente comando (Figura 9) para habilitar los permisos de uso de la interfaz Serial al
usuario alse.

Figura 9. Comando para permiso de interfaz serial ttyS0.

9. El IDE que se va a utilizar para programar el MCU en la tarjeta Arduino UNO, es el Visual Studio
Code con el Framework de PlatformIO, el cual requiere de la instalación del paquete python3-
venv que se instala con el comando mostrado en la Figura 10 .
Ing. Marco Andrés Ortiz N. MSc.
marco.ortiz@escuelaing.edu.co

Figura 10. Comando de instalación de requerimiento para PlatformIO.

10. Instale Visual Studio Code con el comando: sudo snap install –classic code (Figura 11)

Figura 11. Comando para la instalación de Visual Studio Code.

11. Ejecute el IDE de Visual Studio Code, desde la terminal, usando el comando code (Figura 12).

Figura 12. Comando para ejecución de Visual Studio Code.

12. Luego de inicializado, haga click como se muestra en la Figura 13 para instalar la extensión
correspondiente al Framework PlatformIO.

Figura 13. Abrir buscador de extensiones para Visual Studio Code.


Ing. Marco Andrés Ortiz N. MSc.
marco.ortiz@escuelaing.edu.co
13. En la barra de búsqueda de las Extensiones, filtre por platformIO IDE y proceda con la instalación
(Figura 14).

Figura 14. Búsqueda e instalación de PlatformIO

14. Espere que termine el proceso de instalación de PlatformIO, sus dependencias y algunas
extensiones adicionales y verifique que el resultado sea parecido al que se muestra en la
siguiente imagen (Figura 15) y haga Click en el botón para recargar el IDE.

Figura 15. Proceso de instalación de PlatformIO finalizado exitosamente.

15. En la parte inferior izquierda se encuentra el menú de PlatformIO. Haga Click en el ícono como
se muestra a continuación para generar un nuevo proyecto (Figura 16).
Ing. Marco Andrés Ortiz N. MSc.
marco.ortiz@escuelaing.edu.co

Figura 16. Creación de proyecto usando PlatformIO en Visual Studio Code.

16. Cree un nombre para el proyecto y seleccione la tarjeta a utilizar como se muestra a
continuación (Figura 17).

Figura 17. Asignación de nombre de proyecto selección de tarjeta.


Ing. Marco Andrés Ortiz N. MSc.
marco.ortiz@escuelaing.edu.co
17. Lea el mensaje que le aparece al finalizar la creación del proyecto (Figura 18).

Figura 18. Comprobación de seguridad.

18. Luego de creado observe el árbol de directorios y archivos en el explorador que se encuentra en
la columna izquierda. Seleccione el archivo platformio.ini y agregue la línea mostrada a
continuación (Figura 19).

Figura 19. Archivo de configuración de platformIO .

19. Abra el archivo main.cpp que se encuentra en el directorio src (Figura 20).

Figura 20. Archivo main.cpp


Ing. Marco Andrés Ortiz N. MSc.
marco.ortiz@escuelaing.edu.co

20. Edite el Código agregando las líneas correspondientes a las funciones setup() y loop() que se
muestran a continuación (Figura 21)

Figura 21. Código a implementar [1].

21. Haga Clcik en Build para compilar y generar el archivo a cargar en el Microcontrolador del
Arduino UNO. Luego, haga Click en Upload para programar el dispositivo (Figura 22).
Ing. Marco Andrés Ortiz N. MSc.
marco.ortiz@escuelaing.edu.co

Figura 22. Botones para el proceso de compilación (Build) y para subir el programa al dispositivo (Upload) [1].

22. Verifique el funcionamiento en la tarjeta Arduino UNO (Figura 23).

Figura 23. Aruino UNO indicando el LED para comprobar el funcionamiento.


Ing. Marco Andrés Ortiz N. MSc.
marco.ortiz@escuelaing.edu.co
Preguntas:

Describa las funciones setup() y loop()

• https://www.arduino.cc/reference/en/language/structure/sketch/setup/
• https://www.arduino.cc/reference/en/language/structure/sketch/loop/

Analizar:

• ¿Por qué es necesaria la función loop() y cuantas veces se ejecutaría el proceso (Firmware) sin
esta función? (Asuma un programa que realiza una tarea determinada usando únicamente las
funciones de setup() y loop() )

• ¿Cómo se puede realizar el funcionamiento básico de la función loop(), usando una declaración
de control (Control Statement) del lenguaje C?

Referencias:
https://www.tripplite.com/products/usb-connectivity-types-standards

Controlador Serial de puerto USB para utilizado por defecto para Windows10: usbser.sys

https://en.wikipedia.org/wiki/USB_communications_device_class

https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-driver-installation-based-on-
compatible-ids

Controlador Serial de puerto Serial Virtual para Ubuntu 18.04: VirtualBox - Standard 16550A compatible
UART device.

https://www.virtualbox.org/manual/ch03.html#serialports

[1] https://docs.platformio.org/en/latest//integration/ide/vscode.html#quick-start

https://code.visualstudio.com/docs/setup/linux

https://platformio.org/install/ide?install=vscode

https://docs.platformio.org/en/latest//what-is-platformio.html

https://websistent.com/fix-serial-port-permission-denied-errors-linux/

https://store-usa.arduino.cc/products/arduino-uno-rev3

https://www.arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf

https://ww1.microchip.com/downloads/en/DeviceDoc/doc7799.pdf

También podría gustarte