Hi guys,
there's also another solution: Zerynth - Python for Microcontrollers, IoT and Embedded
The core of Zerynth is the Zerynth Virtual Machine. The Zerynth VM has been developed from scratch with the goal of bringing Python to the embedded world with support for multi-thread and cross board compatibility.
Zerynth supports all the most used high-level features of Python like modules, classes, multithreading, callbacks, timers and exceptions, plus some hardware-related features like interrupts, PWM, digital I/O, etc.
The Zerynth VM is natively multithread and realtime. Indeed it is built on top of a RTOS, by wrapping its functionalities in a operative system abstraction layer. This means that the VM is agnostic of the underlying RTOS: porting activities are ongoing to have many VMs based on different RTOS.
Take a look here to get started with Arduino Due