MicroPython çalışan cihazlarda Python kodu çalıştırma
Tags: micropython, python, pico, pyboard
Published: 2022-12-31 09:17:36

MicroPython, gömülü sistemler üzerinde çalışan Python3 diliyle aynı sözdizimine sahip [açık kaynak kodlu](https://github.com/micropython/micropython) bir [python uyarlaması](https://micropython.org/)dır. Özellikle gömülü sistemlerde C/C++ egemenliğinin, öğrenme ve geliştirme sürecini yavaşlatması nedeniyle popülerleşmeye başlamış bir konudur. Bunun dışında en bariz dezavantajı ise performans olduğunu söylemek kesinlikle geçerlidir. 

MicroPython, derleme yerine yorumlama ile çalıştığı için performans anlamında yapılacak işe göre çok daha düşük sonuçlar verebilir. Bu nedenle prototip için kesinlikle kullanılmalı ama ürünleşme sürecinde C/C++ ile geliştirme yapılmasını önermekteyim.

# MicroPython destekleyen cihazlar

MicroPython kullanan cihazlara baktığımızda aşağıdaki gibi seçenekler olmakla birlikte en popüleri Raspberry Pi Pico olarak görebiliriz:
* Raspberry Pi Pico
* micro:bit
* pyboard 
* WiPy
* ESP8266
* ESP32
* Teensy
* LEGO Technic Large Hub
* Wemos D1 Mini

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fzhrfew2w6eengq2ng0w.png)

# MicroPython çalıştırma öncesi

MicroPython kullanan cihazların üzerine bir MicroPython komutu çalıştırmanın 2 farklı yolu bulunmakta. Bunlardan ilki karşı tarafa dosyayı atmadan hafıza üzerinde çalıştırmak. Diğeri ise geliştirilen kodun kalıcı hafızaya atılıp otomatik bir şekilde güç kapatılıp açıldığında bile çalışmasını sağlamaktadır.

Kart üzerinde USB arabirimi bulunduğunda veya TTL'den USB'ye çeviren bir aparat ile bilgisayarınız ile kartınızın USB ile bağlantı kurması gerekmektedir.

Varsayılan olarak kartınızda MicroPython firmware olduğunu varsayarak USB kablosunu takmadan önce aşağıdaki komut ile sisteme takılan USB'lerin bulunması için interaktif modda açılması sağlanır. Bunu yaparken yetkili bir kullanıcı ile yapmanız gerekir.

```
sudo dmesg -w
```

Bu komut sonrasında **ttyXXXY** şeklinde bir aygıtın eklendiği görüntülenmesi gerekmektedir. Bu aygıt görüntülendikten sonra artık sisteminize bağlanabileceğiniz anlamı taşımaktadır.

# MicroPython çalıştırmak

Cihazınız bilgisayarına bağlandıktan sonra komut satırı üzerinden ampy veya Thoony isminde arayüz uygulaması ile yazılımlarınızı cihazınıza gönderebilirsiniz.

Thoony kullanarak yazılım gönderme ve çalıştırma konusunda çok fazla kaynak olduğu için tekrar etmeyeceğim.

## ampy

ampy paketi python3 pip paketi olarak bulunabilmektedir. Bunun için python3-pip3 paketinin yüklü olduğu varsayılarak aşağıdaki komut ile kurulumu gerçekleştirilir.

```bash
pip3 install adafruit-ampy
```

Kurulum sonrasında cihaz içerisindeki dosyaları görmek için aşağıdaki komut kullanılır.

```bash
ampy --port /dev/ttyXXXY ls
```

Herhangi bir python kodunuzu "main.py" isminde veya "herhangi.py" gibi herhangi bir isimde olacak şekilde, cihaza yüklemeden, sadece çalıştırmak için aşağıdaki komut kullanılır.

```bash
ampy --port /dev/ttyXXXY run main.py
ampy --port /dev/ttyXXXY run herhangi.py
```

Bu şekilde gönderilen uygulamalar, cihazınızla güç kesildikten sonra tekrarda yapılmaz.

Fakat eğer cihazınızın içerisine dosyayı göndermek ve hep çalıştırmak isterseniz aşağıdaki komut ile açıldığında varsayılan olarak başlamasını sağlayabilirsiniz:

```bash
ampy --port /dev/ttyXXXY put main.py
```

Bu komut ile main.py içeriği cihaza gönderilir ve her başlangıçta tekrar başlar. Herhangi bir dosyayı gönderip, tetiklendiğinde çalıştırmak isterseniz de farklı isimlerde dosyalar gönderebilirsiniz. Fakat varsayılanda çalışmayacağını unutmayalım.

```bash
ampy --port /dev/ttyXXXY put herhangi.py
```

Ayrıca attığınız dosyalardan herhangi birisini silmek isterseniz aşağıdaki komut ile silebilirsiniz.

```bash
ampy --port /dev/ttyXXXY rm herhangi.py
ampy --port /dev/ttyXXXY rm main.py
```