MicroPython Nedir?

MicroPython Nedir?

MicroPython, Python programlama dilinin gömülü sistemlerde çalıştırılabilecek bir versiyonudur Düşük kaynak tüketimi ve kolay entegrasyon özellikleri sayesinde IoT cihazları ve robotik gibi alanlarda sıkça kullanılır MicroPython, Python dilinin standart kütüphane ve modüllerinin birçoğunu içermesi ile gömülü sistemlerde programlama yapmayı daha kolay hale getirmektedir Ayrıca, MicroPython diğer gömülü sistem programlama dillerine göre daha anlaşılır olduğu için yoğun bir kullanım alanı bulunmaktadır MicroPython açık kaynak kodlu olması nedeniyle daha geniş bir topluluk tarafından desteklenir ve geliştirilir MicroPython temel programlama konuları olan değişkenler, veri tipleri, koşullu ifadeler ve döngüler gibi yapıları içerir Sayısal veri tipleri olarak integer, float ve complex yer alır Değişkenler, programların ileriki süreçlerinde veri saklamak için kullanılır MicroPython kullanarak görsel uygulama geliştir

MicroPython Nedir?

MicroPython, Python programlama dilinin mikrokontrolörler ve gömülü sistemlerde çalıştırılabilecek bir versiyonudur. Bu sayede, Python dilinin kullanım kolaylığı ve gücü gömülü sistemlerde de kullanılabilmektedir.

Ayrıca MicroPython, Python dilinin sunduğu standart kütüphane ve modüllerin birçoğunu içermekte ve bu sayede gömülü sistemlerde programlama yapmak daha kolay hale gelmektedir. MicroPython'un kullanım alanları arasında robotik, IoT ve otomasyon sistemleri gibi birçok alana hitap etmektedir.

  • Mikrokontrolörlere kolay entegrasyon
  • Düşük kaynak tüketimi ve hızlı çalışma
  • Python diline aşina olanların kolayca kullanabilmesi
  • Küçük boyutlu ve taşınabilir kullanım imkanı

MicroPython, diğer gömülü sistem programlama dillerine göre daha kolay ve anlaşılabilir olduğu için diğer programlama dillerine göre yoğun bir kullanım alanı bulunmaktadır. Bu sayede, IoT cihazlarının ve gömülü sistemlerin programlaması kolaylıkla yapılabilir.

MicroPython ile birbirinden farklı sensörlerin kullanımı, veri toplama, süreçlendirme ve sonuçlandırma işlemleri ile aydınlatma, motor kontrolü, güvenlik sistemleri, ev otomasyonları gibi birçok alanda projeler gerçekleştirebilirsiniz.


Gömülü Sistemlerde Programlama için Neden MicroPython?

Gömülü sistemler için programlama yapmak, yoğun kaynak gereksinimleri nedeniyle oldukça zorlu bir iş olabilir. Ancak, MicroPython sayesinde bu zorlukların üstesinden kolayca gelinebiliyor. MicroPython, işlemci ve bellek kaynaklarını daha az kullanan bir Python sürümüdür. Bu nedenle, gömülü sistemlerde programlama yapmak için oldukça uygun bir seçenek olarak öne çıkıyor.

Ayrıca, MicroPython kolay ve hızlı bir şekilde programlama yapılmasına olanak sağlar. Dilin basit ve anlaşılır olması, programcıların hızlıca işlem yapmalarını sağlar. Aynı zamanda, MicroPython ile programlama yapmak, donanım bağımsızdır. Yani, farklı mikro-denetleyicilerde veya gömülü sistemlerde rahatlıkla kullanılabilir.

MicroPython'un Gömülü Sistemlerde Programlama için Avantajları
Daha az kaynak kullanımı
Kolay programlama
Donanımdan bağımsızlık
Açık kaynak kodlu

MicroPython'un bir diğer avantajı, açık kaynak kodlu olmasıdır. Bu özelliği sayesinde, daha geniş bir topluluk tarafından desteklenir ve geliştirilir. Bu da, hataların daha hızlı bir şekilde düzeltilmesi ve yeniliklerin daha hızlı bir şekilde eklenmesi anlamına gelir.

Tüm bu nedenlerden dolayı, gömülü sistemlerde programlama yapmak isteyenler için MicroPython, verimli ve etkili bir seçenek olarak göze çarpıyor.


MicroPython ile Temel Programlama

MicroPython, Python dilinin bir uyarlamasıdır ve mikro denetleyiciler için optimize edilmiştir. Bu nedenle, gömülü sistemler ve IoT uygulamaları için mükemmel bir programlama dili olarak kabul edilir. MicroPython'da, Python dilini kullanarak temel programlama ve programlama mantığını öğrenebilirsiniz.

Değişkenler ve veri tipleri oluşturmak, MicroPython programlama dilinde temel bir kavramdır. Değişkenler, programlama sürecinin vazgeçilmez parçalarındandır. Bir değişken tanımlamak için, değişken adını ve değerini belirtmek gerekir. Farklı veri tipleri arasında sayısal veri tipleri (integer, float, ve complex veri tipleri) ile karakter ve metin veri tipleri (string veri tipi) yer alır.

MicroPython'da, koşullu ifadeler ve döngüler kullanarak programlama işlemleri gerçekleştirilebilir. If-else, for ve while döngüleri temel dil yapısıdır ve bu yapılara hakimiyet, programlamanın temelini anlamak açısından oldukça önemlidir.

Görsel uygulama geliştirme için, Pygame kütüphanesi kullanılarak basit oyun yapımı örnekleri verilebilir. Mikro denetleyiciler ve IoT uygulamalarının geliştirilmesi için MicroPython kullanmak, bu alanlarda uzman olmak isteyenler için büyük bir avantaj sağlar.


Değişkenler ve Veri Tipleri

MicroPython'da bir program oluştururken, değişkenleri tanımlamak oldukça önemlidir. Değişken tanımlama işlemi, bir değere atama yapmak için kullanılır. Bir değişken adı, harfler, sayılar ve alt çizgi içerebilir, ancak sayı veya alt çizgi ile başlayamaz. Değişkenler, programın ilerleyen süreçlerinde kullanılmak için veri saklamak için kullanılır.

MicroPython'da kullanılan veri tipleri şunlardır:

Veri Tipi Açıklama Örnek
Integer Tam sayılar 42
Float Ondalık sayılar 3.14
Complex Karmaşık sayılar 1 + 2j
Boolean True veya False True
String Karakter dizileri 'Merhaba'

Değişkenlerde kullanılan veri tipleri programlama dillerinde değişkenin nasıl tanımlandığına ve ne tür bir değer alabileceğine bağlıdır. Bu nedenle programlama başlangıcında veri tiplerinin özellikleri öğrenmek oldukça önemlidir.


Sayısal Veri Tipleri

Sayısal Veri Tipleri

MicroPython'da, sayısal veri tipleri olarak 3 farklı veri tipi vardır: integer, float ve complex. Bunlar, sayısal verilerle çalışmak için en yaygın kullanılan veri tipleridir.

Integer Veri Tipi

Integer veri tipi, tamsayıları ifade etmek için kullanılır. Değerler, sıfırdan başlayarak pozitif veya negatif olabilir. Bir integer veri tipi oluşturmak için, değişkenin adını seçmeniz ve değerini belirlemeniz gerekir. Örneğin:

Kod Açıklama
x = 5 x değişkenine 5 atar
y = -15 y değişkenine -15 atar

Float Veri Tipi

Float veri tipi, kesirli sayıları ifade etmek için kullanılır. Değerler ondalık sayılar olabilir. Float veri tipi oluşturmak için, değişkenin adını seçmeniz ve değerini belirlemeniz gerekir. Örneğin:

Kod Açıklama
x = 3.14 x değişkenine 3.14 atar
y = 0.25 y değişkenine 0.25 atar

Complex Veri Tipi

Complex veri tipi, karmaşık sayıları ifade etmek için kullanılır. Değerler gerçek ve sanal kısımlardan oluşur. Complex veri tipi oluşturmak için, değişkenin adını seçmeniz ve gerçek ve sanal kısımların değerlerini belirlemeniz gerekir. Örneğin:

Kod Açıklama
x = 2+3j x değişkenine 2 gerçek ve 3 sanal olmak üzere kompleks sayı atar
y = -4+5j y değişkenine -4 gerçek ve 5 sanal olmak üzere kompleks sayı atar

Karakter ve Metin Veri Tipleri

MicroPython'da en sık kullanılan veri tiplerinden biri, string veri tipidir. String, karakterlerin üst üste eklenmesiyle oluşturulan bir veri tipidir. Stringler tek veya çift tırnak işareti (' veya ") içine alınarak tanımlanır.

Stringlerde bir dizi işlem yapabilirsiniz. Bunlardan bazıları:

  • String birleştirme (+ operatörü ile)
  • String çarpma (* operatörü ile)
  • İndeksleme ([] ile)
  • Alt dizi (substring) alma ([::] ile)

String birleştirme, iki veya daha fazla stringi birleştirerek yeni bir string oluşturur. Örneğin:

```pythonisim = "Ayşe"soyisim = "Yılmaz"tam_isim = isim + " " + soyisimprint(tam_isim) # Ayşe Yılmaz```

String çarpma, bir stringi verilen sayı kadar tekrar ederek yeni bir string oluşturur. Örneğin:

```pythonsonuc = "hello" * 3print(sonuc) # hellohellohello```

İndeksleme, bir stringin belirli bir karakterini almak için kullanılır. İndeks numaraları 0 ile başlar. Örneğin:

```pythonisim = "Ayşe"print(isim[0]) # Aprint(isim[2]) # ş```

Alt dizi alma, bir stringin belirli bir kısmını almaya yarar. Örneğin:

```pythonisim = "Ayşe Yılmaz"print(isim[3:6]) # e Y```

Stringler, Python'da sık sık kullanıldığından, bu işlemleri hızlı ve etkili bir şekilde yapmak için birçok ön tanımlı işlev (fonksiyon) vardır. Bunlardan bazıları:

  • len(): Bir stringin uzunluğunu döndürür.
  • upper(): Tüm karakterleri büyük harfe çevirir.
  • lower(): Tüm karakterleri küçük harfe çevirir.
  • replace(): Belirtilen bir karakteri veya alt diziyi başka bir karakter veya alt dizi ile değiştirir.
  • split(): Bir stringi belirtilen ayraçtan (separator) bölerek liste döndürür.

Örneğin:

```pythonisim = "Ayşe Yılmaz"print(len(isim)) # 12print(isim.upper()) # AYŞE YILMAZprint(isim.lower()) # ayşe yılmazprint(isim.replace("Yılmaz", "Kaya")) # Ayşe Kayaprint(isim.split(" ")) # ['Ayşe', 'Yılmaz']```

Koşullu İfadeler ve Döngüler

Koşullu ifadeler ve döngüler, MicroPython programlaması için oldukça önemli konulardır. Koşullu ifadeler, belirli koşullar altında çalışacak olan kod bloklarını belirlemeye yarar. If-else ifadesi kullanılarak, belirlenen koşul doğruysa bir blok çalıştırılırken, yanlışsa başka bir blok çalıştırılabilir.

Örneğin, bir kullanıcının girdiği sayıyı kontrol eden bir program yazmak istediğinizi düşünelim. Eğer sayı 10'dan büyükse, "Sayı 10'dan büyük!" yazdırın, eğer sayı 10'dan küçükse, "Sayı 10'dan küçük!" yazdırın ve eğer sayı 10'a eşitse, "Sayı 10'a eşit!" yazdırın. Bu durumda, if, elif ve else ifadeleri kullanarak aşağıdaki kod bloğunu yazabilirsiniz:

num = 12

if num > 10: print("Sayı 10'dan büyük!")elif num < 10: print("Sayı 10'dan küçük!")else: print("Sayı 10'a eşit!")

Döngüler ise belirli bir kod bloğunun birden fazla kez çalıştırılmasına olanak sağlar. For ve while döngüleri, MicroPython programlaması için sıkça kullanılan döngü çeşitleridir.

For döngüsü, belirli bir aralıkta veya belirli bir listeye dahil olan her bir öğe için bir kod bloğunu çalıştırır. Örneğin, 1'den 5'e kadar olan sayıları ekrana yazdırmak istediğinizi düşünelim. Aşağıdaki kod bloğunu kullanabilirsiniz:

for i in range(1,6):  print(i)

While döngüsü ise belirli bir koşul doğru olduğu sürece kodu tekrar tekrar çalıştırır. Örneğin, 10'dan küçük sayıları ekrana yazdırmak istediğinizi düşünelim. Aşağıdaki kod bloğunu kullanabilirsiniz:

i = 1

while i < 10: print(i) i += 1

Bu örnekler, MicroPython programlamasında kullanabileceğiniz temel koşullu ifade ve döngülerdir. Uygulamanıza bağlı olarak for ve while döngüleriyle daha karmaşık kodlar yazabilir ve çok sayıda koşullu ifade kullanabilirsiniz.


Görsel Uygulama Geliştirme

MicroPython, doğru araçlar kullanıldığında, görsel uygulama geliştirme için de kullanılabilir. Bu şekilde, Mikro denetleyicilerin çalışması için harika bir platform olarak hareket ediyor. Pygame kütüphanesi, MicroPython ile görsel uygulama geliştirmek için en yaygın olarak kullanılan kütüphanedir. Pygame kütüphanesi, NASA tarafından tasarlanan Pygame sürümünün bir sürümüdür ve Arduino gibi mikrokontrolörlerde çalışmak için optimize edilmiştir.

AşamaAçıklama
Adım 1Pygame'in kurulumu için http://micropython.org/resources/firmware/ adresinden en son sürüm indirilmelidir.
Adım 2Daha sonra, “MicroPython Cross-Compiler” veya “mpy-cross” yüklenmelidir. Bu işlemi yapmak için, “mpy-cross” kaynak kodunu aşağıdaki adresten indirin: https://bitbucket.org/pypy/pypy/downloads/pypy3.5-v7.0.0-linux64.tar.bz2
Dosya, MicroPython için bir Python 3 çeviricisi içerir.
Adım 3Bir sonraki adım, Pygame kütüphanesi’nin indirilmesidir. Bu, aşağıdaki komutu kullanarak yapılabilir: sudo pip install pygame
Adım 4Pygame örneği işlemi şimdi çalıştırılabilir. Bu, aşağıdaki komutu kullanarak yapılabilir: python -m pygame.examples.aliens

Pygame ile ayrıca basit oyunlar geliştirilebilir. Örneğin, flappy bird oyunu, Pygame temel özellikleri kullanılarak geliştirilebilir. Bu, zamanlama ve kullanıcı arayüzü kullanılarak yapılabilir. Pygame’in sınıf ve yöntemleri, oyuncuların OK ve Enter tuşları gibi klavye veya fare ile oynayabileceği birkaç basit arcade-style oyunu kolayca geliştirilmesine olanak tanır.

  • Bir sonraki adım, oyun mekaniklerinin eklenmesidir. Bu örnekte, kuşun itme işlemini eklemek için basit bir fizik motoru kullanacaktır.
  • Daha sonra, zeminin eklenmesi ve kuşun uçma yeteneğinin eklenmesi gerekecektir.
  • Son olarak, oyunun kazanma ve kaybetme durumlarını kontrol etmek gerekecektir.

Pygame Kütüphanesi Kullanımı

Pygame kütüphanesi, MicroPython ile birlikte oyun geliştirmek isteyenler için gerekli olan fonksiyonları içermektedir. Bu kütüphane sayesinde çeşitli oyunlar ve grafik uygulamaları geliştirmek mümkündür.

Örneğin, bir araba yarışı oyunu oluşturalım. İlk önce gerekli olan kütüphaneler yüklenir ve gereksinimler karşılanır. Sonrasında, bir ekran oluşturulur ve araba grafikleri yüklenir. Arabanın hareket ettirilmesi için klavye girdilerini alır ve bu şekilde arabanın hareketi sağlanır.

Aşağıda, farklı renklerdeki arabaların hareketlerini sağlamak için örnek bir kod verilmiştir:

```import pygame, sysfrom pygame.locals import *

pygame.init()clock = pygame.time.Clock()

WINDOW_SIZE = (400, 300)

screen = pygame.display.set_mode(WINDOW_SIZE,0,32)

white = (255, 255, 255)red = (255, 0, 0)green = (0, 255, 0)blue = (0, 0, 255)

class Car: def __init__(self, x, y, color): self.image = pygame.Surface((50, 80)) self.image.fill(color) self.rect = self.image.get_rect(center=(x, y))

def move(self, dx, dy): self.rect.move_ip(dx, dy)

red_car = Car(100, 100, red)green_car = Car(200, 100, green)blue_car = Car(300, 100, blue)

while True: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() if event.type == KEYDOWN: if event.key == K_LEFT: red_car.move(-10, 0) if event.key == K_RIGHT: red_car.move(10, 0) if event.key == K_DOWN: red_car.move(0, 10) if event.key == K_UP: red_car.move(0, -10) screen.fill(white) screen.blit(red_car.image, red_car.rect) screen.blit(green_car.image, green_car.rect) screen.blit(blue_car.image, blue_car.rect)

pygame.display.update() clock.tick(60)```

Bu örnekte, bir oyun penceremiz var ve `Car` adında bir sınıfımız var. Bu sınıf, bir araba yaratır ve pozisyonunu şeritler halinde değiştirir. Kullanıcı klavye yön tuşlarını kullanarak arabasını hareket ettirir ve yarışlarda yarışan arabaların hareketlerini canlandırabilir. Bu kodu temel alarak, oyununuza eklenecek yeni özelliklerle birçok farklı oyun türü oluşturabilirsiniz.


Mikro Denetleyiciler ve IoT Uygulamaları

Mikro denetleyiciler ve IoT (nesnelerin interneti) uygulamaları, günümüzde teknolojinin en hızlı gelişen alanlarından biridir. Bu alanda kullanılan platformlar arasında MicroPython oldukça önemli bir yere sahiptir. MicroPython kullanarak, mikro denetleyicilerde küçük boyutlu uygulamalar oluşturmak ve nesnelerin interneti uygulamaları geliştirmek oldukça kolaydır.

MicroPython'un sunduğu hızlı ve basit programlama yapısı sayesinde mikro denetleyicilere hızlı bir şekilde bağlanabilir, sensörler ve diğer bileşenlerle iletişim kurabilirsiniz. IoT uygulamalarında veri akışı için kullanılan Wi-Fi ve Bluetooth teknolojileri de MicroPython tarafından desteklenir. Böylece cihazların kablosuz olarak ağa bağlanması ve birbirleriyle haberleşmesi oldukça kolaydır.

MicroPython, Raspberry Pi ve diğer bir çok mikro denetleyici platformunu destekleyen açık kaynak kodlu bir yazılım dilidir. Bu dille mikro denetleyicileri programlamak oldukça kolaydır ve IoT uygulamaları için idealdir. MicroPython'un basit ve düzgün kodlama yapısı sayesinde, hem öğrenmesi hem de kullanımı oldukça kolaydır.

MicroPython kullanarak IoT uygulamaları geliştirmek için ise, sensörler, kontrol üniteleri ve veri akışı cihazlarını programlamak gerekmektedir. Bu işlemleri MicroPython dilinde kolay bir şekilde gerçekleştirmek mümkündür. MicroPython dilinde öğrenilecek özellikler arasında; değişkenler ve veri tipleri, koşullu ifadeler, döngüler, fonksiyonlar, listeler ve sözlükler bulunmaktadır.

MicroPython'u kullanarak birçok farklı IoT uygulaması geliştirmek mümkündür. Örneğin; ev otomasyonu uygulamaları, akıllı tarım uygulamaları, uzaktan izleme ve kontrol sistemleri, güvenlik sistemleri, endüstriyel otomasyon uygulamaları ve daha birçok farklı uygulama yapısı bulunmaktadır.

MicroPython ile geliştirilebilecek IoT uygulamaları arasında; hava kalitesi ölçümü, ısı ve nem takibi, ışık seviyesi ölçümü, akıllı toprak nem sensörü, su ve elektrik sayaç takibi gibi uygulamalar yer almaktadır. Bu uygulamaları yalnızca MicroPython diline hakim olanlar kolaylıkla gerçekleştirebilir.