DEV Community

Ali Orhun Akkirman
Ali Orhun Akkirman

Posted on • Updated on

MicroPython çalışan cihazlarda Python kodu çalıştırma

MicroPython, gömülü sistemler üzerinde çalışan Python3 diliyle aynı sözdizimine sahip açık kaynak kodlu bir python uyarlaması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

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
Enter fullscreen mode Exit fullscreen mode

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.

pip3 install adafruit-ampy
Enter fullscreen mode Exit fullscreen mode

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

ampy --port /dev/ttyXXXY ls
Enter fullscreen mode Exit fullscreen mode

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.

ampy --port /dev/ttyXXXY run main.py
ampy --port /dev/ttyXXXY run herhangi.py
Enter fullscreen mode Exit fullscreen mode

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:

ampy --port /dev/ttyXXXY put main.py
Enter fullscreen mode Exit fullscreen mode

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.

ampy --port /dev/ttyXXXY put herhangi.py
Enter fullscreen mode Exit fullscreen mode

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

ampy --port /dev/ttyXXXY rm herhangi.py
ampy --port /dev/ttyXXXY rm main.py
Enter fullscreen mode Exit fullscreen mode

Top comments (2)

Collapse
 
andypiper profile image
Andy Piper

Nice post! With the latest version of MicroPython, there's a tool called mpremote which can do similar tasks to ampy but it is maintained and part of the MicroPython release. In the next release, there will be another new tool called mip for installing packages to the board, too!

Collapse
 
aliorhun profile image
Ali Orhun Akkirman

Many thanks for the contribution. I didn't know about the related applications and I am very glad to learn. I'm looking forward to the mip for package system.