46
Entorno de programación educativo en lenguaje Python para la EDU-CIAA-NXP Autor: Ing. Ernesto Gigliotti (UTN-FRA) Director: Esp. Ing. Eric Pernia (UNQ,UBA) Jurados: Dr. Ing. Pablo Gomez (UBA) Ing. Gerardo Sager (UNLP) Esp. Ing. Pablo Ridolfi (UTN-FRBA/FRH,UBA)

Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Entorno de programación educativo

en lenguaje Python para la EDU-CIAA-NXP

● Autor: Ing. Ernesto Gigliotti (UTN-FRA)

● Director: Esp. Ing. Eric Pernia (UNQ,UBA)

● Jurados:● Dr. Ing. Pablo Gomez (UBA)● Ing. Gerardo Sager (UNLP)● Esp. Ing. Pablo Ridolfi (UTN-FRBA/FRH,UBA)

Page 2: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

1. INTRODUCCIÓN

1

Page 3: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Dificultades en la enseñanza de programación

● Lenguaje elegido● Sintaxis● Tipos de datos● Sentencias condicionales● Bucles● Referencias, punteros● IDE

2

Page 4: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Dificultades en la enseñanza de sistemas embebidos

3

Page 5: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Dificultades en la enseñanza de sistemas embebidos

GCC

Makefile

GDB OpenOCD

JTAGProgrammer

Debugger

Drivers GPIOsUART

Stack

Registers

InterruptsVon NeumannHarvard

RAMFLASH

ISP

Cross-compiling

ASM

3

Page 6: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Herramientas

4

Page 7: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Herramientas

Scratch

4

Page 8: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Herramientas

Scratch

MakeBlock

LEGO WeDo

4

Page 9: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Herramientas

Scratch

MakeBlock

LEGO WeDo

C/C++ simplificado

4

Page 10: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Plataforma educativapropuesta en este

trabajo

5

Page 11: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Lenguaje: Python●Sintaxis simple y clara

●Ideal como primer lenguaje

●Adoptado por muchas universidades

6

Page 12: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Lenguaje: Python●Sintaxis simple y clara

●Ideal como primer lenguaje

while True:led.on()pyb.delay(500)led.off() pyb.delay(500)

●Adoptado por muchas universidades

6

Page 13: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Hardware: EDU-CIAA-NXP●Bajo costo

●Ideal como primer hardware

●Adoptado por muchas universidades

●Comunidad Proyecto CIAA

7

Page 14: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Entorno de desarrollo

●Fácil de instalar

●Fácil de configurar●Graba en la placa el código Python

●Snippets de código

●Terminal integrada

8

Page 15: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Documentación

●Documentación de bibliotecas

●Ejemplos

9

Page 16: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Plataforma educativa

++

Placa yfirmware

IDE Ejemplos

10

Page 17: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Conexión

11

Page 18: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

2. DEMO

12

Page 19: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Punto de partida● Port de Micropython para la EDU-CIAA-NXP:

●Intérprete.

●Garbage Collector.

●Filesystem FAT12.

●Sin soporte de periféricos.

[1]

[1] Port de micropython realizado por Martin Ribelotta. https://github.com/martinribelotta/micropython 13

Page 20: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Punto de partida●Proyecto EDILE:

●Open Source.

●Procesador de texto.

●Sintax highlight.

●Python.

14

Page 21: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Requerimientos●Manejo de hardware desde Python:

●Leds que dispone la placa.●Pulsadores.●GPIO. ●UART.●Interface RS485.●Entradas ADC.●Salida DAC.●La EEPROM interna.●Timers.

15

Page 22: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

●Entorno de desarrollo:

●Multiplataforma.●Instalación simple.●No cambiar firmware de la placa. ●Comunicación por USB.●Terminal serie.●Snippets.●Syntax highlight.●1 archivo con script de python.

Requerimientos

16

Page 23: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

●Proyectos de ejemplo:

●Inicial.●Intermedio.●Avanzado.

●Explicaciones detalladas.●Documentación de las bibliotecas.

Requerimientos

17

Page 24: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

3. DISEÑO E IMPLEMENTACIÓN

18

Page 25: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Arquitectura Firmware

19

Page 26: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

import pyb

led = pyb.LED(1)

led.on()

20

Page 27: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

21

Page 28: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Arquitectura IDE

22

Page 29: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

4. ENSAYOS Y RESULTADOS

23

Page 30: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Tests Unitarios uPython HAL

24

Page 31: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Tests Unitarios uPython HAL

58

24

Page 32: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Tests Unitarios clases Python

●TestLeds●TestSwitches●TestUart●TestEEPROM●TestDAC●TestADC●TestGPIO●TestRS485●TestTimers

25

Page 33: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Tests Unitarios clases Python

●TestLeds●TestSwitches●TestUart●TestEEPROM●TestDAC●TestADC●TestGPIO●TestRS485●TestTimers

69

25

Page 34: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Tests Unitarios

IDE

26

Page 35: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Tests funcionales

27

Page 36: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Tests funcionales

●Clases Python

27

Page 37: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Tests funcionales

●Clases Python

●Uso del IDE

27

Page 38: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Tests funcionales

●Clases Python

●Uso del IDE

●Matriz trazabilidad

27

Page 39: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

5. CONCLUSIONES

28

Page 40: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

CONCLUSIONES

29

●Programación de microprocesadores●Ingeniería de software en sistemas embebidos

●Gestión de proyectos●Taller de trabajo final

●Dictado de una clase de micropython●Dictado de una clase de POO

Page 41: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Pasos a seguir

30

Page 42: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Pasos a seguir●Interrupciones●PWM●Keyboard y LCD●SPI●I2C●RTC

30

Page 43: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Pasos a seguir●Interrupciones●PWM●Keyboard y LCD●SPI●I2C●RTC

●Modbus●time●Core M0●CAN●Ethernet 30

Page 44: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Pasos a seguir●Interrupciones●PWM●Keyboard y LCD●SPI●I2C●RTC

●Modbus●time●Core M0●CAN●Ethernet 30

Page 45: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

Pasos a seguir●Interrupciones●PWM●Keyboard y LCD●SPI●I2C●RTC

●Modbus●time●Core M0●CAN●Ethernet 30

Page 46: Entorno de programación educativo en lenguaje …laboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final...Entorno de desarrollo: Multiplataforma. Instalación simple. No cambiar

PREGUNTAS