Create Multitasking Apps in MicroPython and CircuitPython
Juggling in Small Spaces
© Lead Image © andreykrushk, 123RF.com
You don't have to learn C to create multitasking applications on a microcontroller. Instead, you can use pyRTOS, a native Python multitasking library, on your next microcontroller project.
Multitasking on server hardware is quite a bit different from trying to do it on a small microcontroller. A server system supports hardware and operating systems that take advantage of multiple processors, task scheduling, and multithreading. An industrial microcontrollers, or Programmable Logic Controller (PLC), has a lean real-time operating system (RTOS) like VxWorks [1] that supports task scheduling and task priorities.
For C/C# programmers, RTOS functionality is available on ESP32 and Pi Pico hardware with options like FreeRTOS [2] and Pico-RTOS [3]. Unfortunately, for Python programmers integrating either a MicroPython or a CircuitPython application into these RTOS environments can be rather challenging. Luckily, there is a native Python library, pyRTOS [4], that offers FreeRTOS functionality totally within both MicroPython and CircuitPython environments.
Figure 1 shows control of a conveyor belt where a microcontroller application would need to manage three tasks: an emergency stop button, a local information display, and a link to remote dashboards. In this article, I will introduce multitasking using pyRTOS to manage the first two of these tasks, that is, reacting to an emergency stop button and showing local information.
[...]
Buy this article as PDF
(incl. VAT)