/ MICROPYTHON

Adafruit MicroPython Tool - AMPY Nedir?


okuma süresi yaklaşık 2 dakika

Bir projede MicroPython kullanmaya karar verdikten ve biraz araştırma yaptıktan sonraki soru “İyi, güzel, hoş da biz kodlarımızı nasıl bu karta yüklüyoruz” oluyor. En azından benim için bu süreç tam olarak böyle ilerledi. Adafruit MicroPython Tool ya da kısaca AMPY tam olarak bu konuda yardımınıza koşan açık kaynak bir çalışma.

Öncelikle MicroPython’a en saf şekilde nasıl kodlarımızı yükleyebileceğimize biraz değinelim. MicroPython firmware yüklü olan bir geliştirme kartına bağlandığınızda sizi REPL karşılıyor. Burada bi durup firmware ve REPL kavramlarına yakından bakalım, daha önce duymamış olabilirsiniz.

Firmware

En basit tanımıyla firmware dosyaları, donanıma (burada söz konusu olan donanım, geliştirme kartıdır) işlevini önceden bildiren dosyalardır. MicroPython firmwaresini donanımınıza yüklediğinizde firmware donanıma MicroPython’un nasıl çalıştığını anlatıyor diyebiliriz.

Bilgisayarlarımızda Python uygulamalarını çalıştırabilmemiz için Python’un kurulu olması gerekiyor çünkü Python yorumlanan bir dildir. Bu konuya MicroPython Nedir? başlıklı yazımda değinmiştim. Gömülü donanımımızda da yorumlama görevini önceden yüklemiş olduğumuz firmware dosyamız üstleniyor.

REPL

REPL, eğer Python ile Hello World yazdırdıysanız kesinlikle karşılaşmış olduğunuz bir kavram. REPL’i açarak inceleyelim. Çünkü kendisi dört aşamadan oluşuyor.

Read
Evaluete
Print
Loop

Yani Python’da “etkileşimli kabuk” olarak ifade ettiğimiz şey REPL ekranı. Öncelikle bir kod girmemiz isteniyor ki bu read aşaması oluyor. Daha sonra girdiğiniz kod evaluete aşaması gereği işleniyor. Print aşamasında kodunuzun sonucu ekrana yazdırılıyor ve son aşama olan loop aşamasında tekrar read aşamasına dönülüyor, yani sonsuz döngüye giriyor.

MicroPython’a Kodumuzu Yüklemek

REPL’in ne olduğunu da öğrendik. Eğer MicroPython yüklü bir geliştirme kartına seri bağlantı ile bağlanırsanız sizi bir REPL ekranı karşılayacaktır. Bu ekran üzerinde Python’un dosya işlemleri komutunu kullanarak kodumuzu bir dosyaya yazdırabiliriz. Bir örnek veremem gerekirse:

1
2
with open('boot.py', 'w') as dosya:
        dosya.write('print("Anne ben boot oldum!")')

MicroPython ilk çalıştığında yürürlüğe girecek olan boot.py dosyamıza bir print fonksiyonu yazdırdık. Peki yüzlerce, belki de binlerce satır koddan oluşan projelerimizde bu yolu izlemek nekadar mantıklı? Şuan için başka çaremiz malesef ki yok. Ama AMPY kullanarak bu işlevleri basitleştirebiliyoruz.

AMPY

Öncelikle sistemimize AMPY’i kurmamız gerekiyor. pip paket yöneticisini kullanarak basit bir şekilde kurabiliriz.

1
pip3 install adafruit-ampy

Kurulumu gerçekleştirdikten sonra AMPY’nin güzelliklerinden yararlanabiliriz. Şimdi AMPY üzerinde kullanabileceğimiz komutlara kısaca bakalım.

Komutlarımızı aşağıdaki formatta kullanacağız.

1
ampy -p KART_PORTU [ÖZELLİKLER] KOMUT [ARGÜMAN]

Eğer her ampy komutu çalıştırırken geliştirme kartımızın bağlı olduğu portu belirtmek istemiyorsak portu önceden tanımlayabiliriz.

*nix tabanlı işletim sistemlerinde:

1
2
export AMPY_PORT=[KART_PORTU]
ampy KOMUT

Windows üzerinde (test edilmemiş):

1
2
set AMPY_PORT=COM4
ampy KOMUT

get

Geliştirme kartımızan herhangi bir dosyayı bilgisayarımıza getirmemizi sağlar. İki farklı kullanımı var, birincisinde dosya içeriğini sadece yazdırırken diğerinde kartımızdaki dosyayı içeriği ile birlikte kendi bilgisayarımıza çeker.

İçeriği görmek için:

1
ampy get dizin/karttaki_dosya_adı.py

İçeriği kendi bilgisayarımıza çekmek için ise:

1
ampy get dizin/karttaki_dosya_adı.py <local_dosya_adı.py>

ls

Geliştirme kartındaki dosya içeriğini yazdırmamızı sağlar. Eğer bir dizin belirtmeden kullanırsak öntanımlı olarak ‘/’ yani kök dizinin içeriğini yazdıracaktır.

1
ampy ls </benim/dosya/dizinim>

mkdir

Geliştirme kartımız üzerinde bir klasör oluşturmamızı sağlar.

1
ampy mkdir dosya_adı

put

Kendi bilgisayarımızdaki bir dosyayı geliştirme kartımıza göndermek için kullanılır.

1
ampy put bilgisayardaki/dosya/yolu.py <karttaki/dosya/yolu.py>

Eğer kartta nereye gönderileceğini belirtmezseniz dosya kök dizine gönderilir.

reset

Geliştirme kartımıza yazılımsal reset atar.

1
ampy reset

rm

Geliştirme kartı kartındaki bir dosyayı silmemizi sağlar.

1
ampy rm karttaki/dosya/yolu.py

rmdir

Geliştirme kartı üzerindeki bir klasörü silmemizi sağlar.

1
ampy rmdir karttaki/klasör

run

Bilgisayarımızdaki bir dosyayı geliştirme kartına göndermeden çalıştırmamızı sağlar. Kodumuz geliştirme kartına gider, çalışır ve sonucu bilgisayarımızda ekrana yazdırılır. Ama kodumuz geliştirme kartına kaydedilmez.

1
ampy run bilgisayardaki/dosya.py <--no-output>

Eğer –no-output parametresi kullanılırsa çalıştırılan dosyanın çıktısı ekranda gösterilmez.

bisguzar

Buğra İşgüzar

Buğra, bilgisayar bilimlerine meraklı bir sağlıkçı. Kurcalamayı ve kurcaladıklarını anlatmayı çok sever.

Profiline Git