Lego'nun Technic Large Hub'ı için varsayılan firmware yerine PyBricks firmware'ü kullanarak Lego cihazınızda MicroPython kullanabiliyoruz.
Bu yazımızda Lego'nun uzaktan kumandası ile, _2 motor_lu bir düzeneğin çalıştırılması anlatılmıştır.
PyBricks firmware yükleme
Bunun için öncelikle Firmware'ü sisteme yüklemek gerekiyor ki, bunun için Lego Technic Hub üzerindeki bluetooth tuşuna basılı tutarken cihaza USB kablosunu takarak, ışıkların birkaç kere yanıp sönmesini bekledikten sonra sisteme giriş yapılması sağlanır.
Bu adımdan sonra aşağıdaki adreste bulunan güncel Firmware seçilerek kurulum gerçekleştirilir.
Bu kısımda bazı detaylar bulunabiliyor fakat bunlarla ilgili internette bir çok makaleye rastlanabilmekte.
PyBricks kullanımı
PyBricks firmware kurulduysa ve yeniden başlattıktan sonra artık cihazınızı bluetooth ile kullanabilirsiniz. Bunun için yine yukarıdaki adresten Bluetooth işaretine basarak firmware kurulumda verdiğiniz ismi seçerek cihazına bağlanabilirsiniz.
Cihazınıza bağlantı kurabildiyseniz (eşleştiyseniz) bluetooth ikonu aşağıdaki gibi olacaktır.
Bu adımdan sonra kodunuzu yazdıktan sonra çalıştır ve durdur butonları ile kodunuzu göndermeye başlayacaksınız.
Uzaktan kullanımlı iki motorlu örnek
Temel belgelendirmesi oldukça güzel olan PyBricks için, Technic Large Hub üzerindeki A ve C portlarına 2 adet motor bağlıdır.
Aşağıdaki kodda öncelikle gerekli kütüphaneler eklenmiş ve sonrasında Hub üzerindeki hem 5x5'lik matris ışıklandırması hem de güç tuşunun ışığını kapatmaktayız.
Sonrasında A ve C girişine bağlı 2 motor tanımlanmaktadır. Eğer motorlar takılı değilse kodunuz hata verecek ve çalışmayacaktır. Sonrasındaki kısımda Lego'nun uzaktan kumandası eklenmiş oldu.
İşlemler diye yorumlanmış kısım ise tamamen uzaktan kumandadaki tuşların durumlarına göre yazılmıştır. Tüm süreç bir while döngüsü içerisinde hazırlanmıştır ve döngü sırasında ilk öncelikle eğer herhangi bir tuşa basılı değilse motorları durduracak şekilde bir kod bloğu bulunmaktadır.
Sonrasında ise tek tek ve birden fazla tuşların basılması durumlarını ifade eden şekilde ileri-geri, sağ-sol anlamlarını kazanacak 2 motor için durum yer almaktadır. 360 değerleri, saniyede 360 derecelik açıyı tarayacak ve ters yönde 360 derece olacak şekilde hazırlanmıştır.
from pybricks.pupdevices import Motor
from pybricks.parameters import Port
from pybricks.tools import wait
from pybricks.pupdevices import Remote
from pybricks.parameters import Button, Color
from pybricks.hubs import PrimeHub
from pybricks.tools import wait
from pybricks.parameters import Icon
# Hub üzerindeki ışıkları kapatma
hub = PrimeHub()
hub.display.off()
hub.light.off()
# A girişindeki motoru tanımlama (motor01)
motor01 = Motor(Port.A)
# C girişindeki motoru tanımlama (motor02)
motor02 = Motor(Port.C)
# Kumandayı tanımlama
remote = Remote()
# işlemler
while True:
pressed = ()
# tıklanılmadığında
while not pressed:
pressed = remote.buttons.pressed()
motor01.reset_angle(0)
motor02.reset_angle(0)
# Sağdaki tuşları motor01'e atama
if Button.RIGHT_PLUS in pressed:
motor01.run(360)
elif Button.RIGHT_MINUS in pressed:
motor01.run(-360)
# Soldaki tuşları motor02'ye atama
elif Button.LEFT_PLUS in pressed:
motor02.run(360)
elif Button.LEFT_MINUS in pressed:
motor02.run(-360)
elif Button.RIGHT_PLUS and Button.LEFT_PLUS in pressed:
motor02.run(360)
motor01.run(360)
elif Button.RIGHT_PLUS and Button.LEFT_MINUS in pressed:
motor02.run(-360)
motor01.run(360)
elif Button.RIGHT_MINUS and Button.LEFT_PLUS in pressed:
motor02.run(360)
motor01.run(-360)
elif Button.RIGHT_MINUS and Button.LEFT_MINUS in pressed:
motor02.run(-360)
motor01.run(-360)
while pressed:
pressed = remote.buttons.pressed()
Top comments (0)