# Editores

Tienes dos opciones, online o local :

##### <span style="color: rgb(22, 145, 121);">**Programar online con [https://python.microbit.org (recomendado)](https://python.microbit.org/)**</span>

Entramos en [https://python.microbit.org/](https://python.microbit.org/) y el editor online nos permite trabajar ;

1. Una biblioteca de códigos que nos permitirá seleccionar y usar para programar de forma guiada
2. Un simulador para ver cómo se ejecutaría nuestro código
3. Un botón para enviar a la microbit real
4. Botones para guardar nuestro código de forma local y abrir los existentes.

[![2024-09-18 22_40_17-micro_bit Python Editor.png](https://libros.catedu.es/uploads/images/gallery/2024-09/scaled-1680-/2024-09-18-22-40-17-micro-bit-python-editor.png)](https://libros.catedu.es/uploads/images/gallery/2024-09/2024-09-18-22-40-17-micro-bit-python-editor.png)

<p class="callout info">En este curso utilizaremos el editor online microbit.org</p>

##### <span style="color: rgb(22, 145, 121);">**Programar en local con MU**</span>

Es un editor muy sencillo, se descarga en [https://codewith.mu/](https://codewith.mu/) y permite su instalación en Windows, Linux y Apple.[![2024-07-04 18_44_27-(1) Exploring the Arduino Nano ESP32 _ MicroPython & IoT Cloud - YouTube.png](https://codewith.mu/img/en/mu.gif)](https://codewith.mu/img/en/mu.gif)  
<span style="color: rgb(0, 0, 0);">Fuente [https://codewith.mu/](https://codewith.mu/) CC-BY-NC-SA  
</span>La primera vez que lo ejecutamos (tarda algo la primera vez) nos pide el **modo** que se puede cambiar en cualquier momento:[![2024-09-18 22_28_05-Configuración.png](https://libros.catedu.es/uploads/images/gallery/2024-09/scaled-1680-/2024-09-18-22-28-05-configuracion.png)](https://libros.catedu.es/uploads/images/gallery/2024-09/2024-09-18-22-28-05-configuracion.png)1 Escribimos el código  
2 Lo comprobamos  
3 Flasheamos, es decir enviamos el código al Microbit (conectarlo previamente)  
4 Cuando sale el mensaje *Código copiado al microbit* **procedemos a resetearlo** para que la placa ejecute el programa.

<p class="callout danger">ATENCIÓN ES IMPORTANTE **RESETEAR LA MICRO:BIT** tienes un botón de ***reset*** al lado del conector de USB para no estar desconectando y conectando. Una vez reseteado tu programa funcionará.</p>

[![2024-09-18 22_34_58-Configuración.png](https://libros.catedu.es/uploads/images/gallery/2024-09/scaled-1680-/2024-09-18-22-34-58-configuracion.png)](https://libros.catedu.es/uploads/images/gallery/2024-09/2024-09-18-22-34-58-configuracion.png)

```python
from microbit import *

while True:
  display.scroll("Hola Mundo")
```

##### <span style="color: rgb(22, 145, 121);">**OTROS EDITORES DE PYTHON QUE <span style="text-decoration: underline;">NO SON COMPATIBLES CON PYTHON MICROBIT</span>**</span>

Vamos a ver este programa escribo en [https://python.microbit.org/](https://python.microbit.org/)

```
# Imports go at the top
from microbit import *
while True:
    if pin0.is_touched():
        display.show(Image.HEART)
    else:
        display.show(Image.NO)
```

Lo que hace es :

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/uI2p9HazV1Y" width="560"></iframe>

  
<span style="color: rgb(22, 145, 121);">**EL MISMO CÓDIGO EN MAKECODE-PYTHON** </span>Makecode a pesar de que esta orientado a programar con bloques, t**iene su sección de Python**

[![2024-09-23 10_37_07-Microsoft MakeCode for micro_bit.png](https://libros.catedu.es/uploads/images/gallery/2024-09/scaled-1680-/2024-09-23-10-37-07-microsoft-makecode-for-micro-bit.png)](https://libros.catedu.es/uploads/images/gallery/2024-09/2024-09-23-10-37-07-microsoft-makecode-for-micro-bit.png)

Al darle en Python (arriba a la derecha), muestra este código

```
def on_forever():
    if pins.digital_read_pin(DigitalPin.P0) == 1:
        basic.show_icon(IconNames.HEART)
    else:
        basic.show_icon(IconNames.NO)
basic.forever(on_forever)

```

Como se puede ver **makecode python no es compatible con [https://python.microbit.org/](https://python.microbit.org/)** ya lo dice en su tutorial [https://microbit-micropython.readthedocs.io/en/v2-docs/](https://microbit-micropython.readthedocs.io/en/v2-docs/)

[![2024-09-23 10_46_05-BBC micro_bit MicroPython documentation — BBC micro_bit MicroPython 2 documentat.png](https://libros.catedu.es/uploads/images/gallery/2024-09/scaled-1680-/2024-09-23-10-46-05-bbc-micro-bit-micropython-documentation-bbc-micro-bit-micropython-2-documentat.png)](https://libros.catedu.es/uploads/images/gallery/2024-09/2024-09-23-10-46-05-bbc-micro-bit-micropython-documentation-bbc-micro-bit-micropython-2-documentat.png)

<span style="color: rgb(22, 145, 121);">**EL MISMO CÓDIGO CON PYTHON DE TINKERCAD**</span>

Tinkercad [https://www.tinkercad.com/](https://www.tinkercad.com/) es una herramienta estupenda de simulación pues es muy realístico, igual que Maquecode, este muy orientado a la programación en bloques pero también tiene su sección de código python

[![2024-09-23 10_51_49-Circuit design PIN0-CORE-CREW - Tinkercad.png](https://libros.catedu.es/uploads/images/gallery/2024-09/scaled-1680-/2024-09-23-10-51-49-circuit-design-pin0-core-crew-tinkercad.png)](https://libros.catedu.es/uploads/images/gallery/2024-09/2024-09-23-10-51-49-circuit-design-pin0-core-crew-tinkercad.png)

Si le das la opción de bloque+código intenta muestra los bloques traducidos a código, pero si le das la opción sólo código **pierdes** la programación en bloques, Esto ya lo vimos en [https://libros.catedu.es/books/programa-arduino-mediante-codigo/page/software](https://libros.catedu.es/books/programa-arduino-mediante-codigo/page/software) en los párrafos escritos en naranja.

El código generado vemos que **no es compatible con Python microbit**

```
# Python code
#

def on_pulsed_p0_high():
  basic.show_icon(IconNames.Heart)
pins.on_pulsed(DigitalPin.P0, PulseValue.HIGH, on_pulsed_p0_high)

def on_pulsed_p0_low():
  basic.show_icon(IconNames.No)
pins.on_pulsed(DigitalPin.P0, PulseValue.LOW, on_pulsed_p0_low)

```