DIGITAL LIBRARY
TEACHING EMBEDDED/IOT TO ALL ENGINEERS
1 Polytechnic Institute of Porto - Engineering School (PORTUGAL)
2 INESC TEC / Polytechnic Institute of Porto - Engineering School (PORTUGAL)
3 I3S-INEB / Polytechnic Institute of Porto - Engineering School (PORTUGAL)
About this paper:
Appears in: EDULEARN22 Proceedings
Publication year: 2022
Pages: 5314-5317
ISBN: 978-84-09-42484-9
ISSN: 2340-1117
doi: 10.21125/edulearn.2022.1255
Conference name: 14th International Conference on Education and New Learning Technologies
Dates: 4-6 July, 2022
Location: Palma, Spain
Abstract:
In a traditional Engineering curriculum, computers replaced electronic calculators that replaced slides rules, always with the purpose of calculating more, better, and faster. Nowadays, besides being interconnected, computers are embedded in many devices, from smartcards to automobiles, with diverse functionalities and executing a wide range of tasks. Modern engineers use programming languages (with computers) not only for calculations, but also for automating software or equipment.

While offering multiple possibilities, embedded processors place also serious restrictions on the programmer, as some tools have serious limitations and deviations from "normal programming", for instance while debugging. The chip shortage due to the COVID-19 pandemic has further complicated the situation, as some development boards are unavailable, have astronomical prices or both.

This paper discusses the use of Python and micropython for teaching programming, in the context of a Project Based Learning experience involving a multicultural and diverse team.

The use of Python allows the use of an Open Source language with a wide variety of applications like scientific computing, data mining, web engineering, system management and many others. MicroPython allows the reuse of the same language and associated programming knowledge in small embedded platforms. The interactive nature of Python facilitates the debugging of the built systems, while the abstractions provided by the language ease the task of porting the software to a different development board.

The use of a board simulator can mitigate the reduced availability of boards, due to chip shortage or any other procurement difficulty.

When compared with the traditional embedded choice of the C programming language, the use of MicroPython requires more memory, a greater processing power and is slower. These arguments may not be as sound as they seem, because: the price differential to a better processor may be negligible; the memory required to support MicroPython may be the same required to support the networking libraries needed; the time critical Python functions can be replaced by faster functions in C; MicroPython proves a faster development, so a faster time to market.

This approach has already been validated by our students, with good acceptance and notable results in several projects.
Keywords:
Programming, Embedded Systems.