entorno de programación educativo en lenguaje...
TRANSCRIPT
![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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/22.jpg)
●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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/23.jpg)
●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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/32.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/33.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/34.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/35.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/36.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/37.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/38.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/39.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/40.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/41.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/42.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/43.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/44.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/45.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070723/5f01fcdc7e708231d4020535/html5/thumbnails/46.jpg)
PREGUNTAS