micro:bit adım sayar yapmak için kartın hareketi nasıl algıladığını anlamak ve algılanan hareketleri bir değişkende saklamak gerekir. Bu projede micro:bit’in ivmeölçeri, MakeCode’daki sallama olayı ve adim adlı bir değişken birlikte kullanılacak. Ortaya çıkan sayaç, öğretici bir proje olarak işe yarar; gerçek bir adımsayar kadar kesin sonuç vermeyebilir.
micro:bit hareketi ivmeölçerle nasıl algılar?
micro:bit hareketi, kartın üzerindeki ivmeölçerin hız ve yön değişimlerini algılamasıyla fark eder. İvmeölçer, kartın sola veya sağa, öne veya arkaya, yukarı veya aşağı doğru nasıl hareket ettiğini ölçebilir. Üç eksendeki hareketin birleşik gücü de hesaplanabilir. micro:bit ivmeölçer açıklaması, bu ölçümlerin hareketin yönünü ve gücünü anlamada nasıl kullanıldığını gösterir.
İvme kavramını günlük hayattan şöyle düşünebilirsin: Cebindeki telefon yürürken her adımda küçük hız ve yön değişimleri yaşar. Masanın üzerindeki bir kalemi ittiğinde de kalem bir süre hareket eder, sonra yavaşlar ve durur. İvmeölçer, bu tür değişimleri sayısal değerlere dönüştürerek programın kullanabileceği bir bilgi hâline getirir.
Programın bu bilgiyi kullanabilmesi için bir olay gerekir. Olay, belirli bir durum gerçekleştiğinde çalışmaya başlayan tetikleyicidir. Örneğin bir düğmeye basıldığında düğme olayı, kart sallandığında ise sallama olayı devreye girer. Sallama olayının içine yerleştirilen bloklar, micro:bit sallanma hareketini algıladığında çalışır.
Eşik değeri ise bir olayın gerçekleşmesi için aşılması gereken sınırdır. Kapının açılması için kolu belirli bir kuvvetle aşağı bastırman gerektiğini düşün. Hafifçe dokunduğunda kapı açılmaz, yeterli kuvvet uygulandığında kilit mekanizması hareket eder. İvme verilerinde de benzer bir mantık kullanılabilir. Hareket belirli bir seviyeye ulaşırsa program bunu dikkate alır, daha küçük değişimleri yok sayabilir.
Bu başlangıç projesinde hazır gelen sallama olayı kullanılacak. Ancak bu olay, atılan her fiziksel adımı kesin olarak yakalamaz. Kartın nasıl taşındığı, cebin veya bileğin hareketi, sallamanın gücü ve hareketin yönü sonucu değiştirebilir. Ayrıca kartı elinde sallamak ya da hızlıca hareket ettirmek de sayaçta artış oluşturabilir. Bu nedenle proje, ivmeölçer ve olay mantığını öğrenmek için uygun bir adımsayar örneğidir; sağlık ölçümü veya kesin adım takibi amacıyla kullanılmamalıdır.
MakeCode’da proje ve adım değişkeni nasıl hazırlanır?

MakeCode’da önce boş bir proje oluşturulur, ardından sayacı tutacak adim değişkeni hazırlanır ve başlangıç değeri 0 yapılır. Değişken, programın daha sonra kaç hareket algıladığını hatırlaması için kullanılır.
- Yeni bir proje aç. MakeCode micro:bit editörünü açıp boş bir proje başlat. Çalışma alanında programın başlangıç akışını kurabileceğin “başlangıçta” bloğu görünür.
- Değişkenler kategorisini aç. Blok listesinden “Değişkenler” bölümünü seç ve yeni değişken oluşturma seçeneğini kullan. Değişken adını
adimolarak yazıp işlemi tamamla. - Başlangıç değerini belirle. Yeni değişken oluşturulduktan sonra Değişkenler bölümünde
adimile ilgili bloklar görünür. “adim değişkenini 0 yap” bloğunu çalışma alanına sürükleyerek “başlangıçta” bloğunun içine yerleştir. - Bloğun yerini kontrol et. Değişken bloğu “başlangıçta” bloğunun içine oturmalı ve girintili görünmelidir. Böylece program çalışırken adım sayacı 0 değerinden başlar.
“Başlangıçta” bloğundaki komutlar program başladığında bir kez çalışır. adim değişkenini burada 0 yapmak, sayacın her açılışta belirli bir başlangıç değerine sahip olmasını sağlar.
başlangıçta
adim değişkenini 0 yap
Bu akışın görevi henüz hareket saymak değildir. Program açıldığında sayacı hazırlamak ve sonraki olay bloklarının kullanabileceği başlangıç değerini belirlemektir. Bir sonraki aşamada sallama olayı bu değişkeni artıracak ve güncel sayıyı ekranda gösterecek.
Sallama olayı adım sayacını nasıl artırır?
Sallama olayının içine adim değişkenini artıran bir blok yerleştirdiğinde, micro:bit her sallama algıladığında sayaç bir artar. Olay bloğunu, kapı zili çaldığında yapılacak bir işi tarif eden yönerge gibi düşünebilirsin: İçindeki işlem, ilgili hareket algılandığında çalışır.
- Girdi kategorisinden sallama hareketiyle çalışan olay bloğunu çalışma alanına sürükle.
- Değişkenler kategorisinden değişkenin değerini artıran bloğu al ve sallama olayının içine yerleştir.
- Bu blokta
adimdeğişkenini seç ve artırma miktarını1olarak bırak.
Artırma bloğu, değişkenin eski değerine bir ekler. Başlangıç değeri 0 ise art arda algılanan sallamalarda değer 1, 2, 3 şeklinde ilerler.
Sayacın değişimini görmek için deneme sırasında artırma bloğunun altına sayı gösterme bloğu ekleyip içine adim değişkenini yerleştirebilirsin. Ancak sayının ekranda gösterilmesi zaman aldığı için her sallamada gösterim yapmak hızlı hareketlerin sayılmasını geciktirebilir. Son düzenlemede gösterimi A düğmesine taşıyarak sallama olayının içini daha kısa tutacağız.
Bu sayaç, algılanan her sallamayı bir adım olarak kabul eder. Yürürken her adım sallama olarak algılanmayabilir veya farklı bir hareket de sayacı artırabilir; bu yüzden sonuç gerçek bir adımsayar kadar doğru olmayabilir.
A ve B düğmeleriyle sayaç nasıl yönetilir?

A düğmesini sayaç değerini göstermek, B düğmesini ise sayacı sıfırlamak için kullanabilirsin. Böylece sayıyı görmek için istediğin zaman A'ya basar, yeni bir sayım başlatmak için B'yi kullanırsın.
- Girdi kategorisinden düğmeye basılma olayını al ve düğme seçimini A olarak bırak. İçine sayı gösterme bloğunu yerleştir; gösterilecek sayı alanına
adimdeğişkenini sürükle. - İkinci bir düğmeye basılma olayı ekle ve bu kez B'yi seç. İçine
adimdeğişkenini 0 yapan atama bloğunu yerleştir. - B olayındaki atama bloğunun altına sayı gösterme bloğu ekle ve gösterilecek değeri 0 olarak bırak. Böylece sıfırlama ekranda da görünür.
Son blok düzeninde başlangıç, sallama ve iki düğme ayrı görevler üstlenir. Aşağıdaki MakeCode JavaScript görünümü, blokların tamamındaki akışı gösterir:
let adim = 0
input.onGesture(Gesture.Shake, function () {
adim += 1
})
input.onButtonPressed(Button.A, function () {
basic.showNumber(adim)
})
input.onButtonPressed(Button.B, function () {
adim = 0
basic.showNumber(0)
})
Program başladığında adim sıfırdır. Örneğin üç sallama algılandıktan sonra A'ya basarsan ekranda 3 görmeyi beklersin; B'ye basınca sayaç sıfırlanır ve ekranda 0 gösterilir.
Simülatörde deneme ve karta yükleme nasıl yapılır?
Simülatörde önce sallama, A ve B düğmelerini denemeli; sonuçlar beklediğin gibi çalışıyorsa programı USB bağlantısıyla micro:bit kartına aktarmalısın. Bu sıra, fiziksel karta geçmeden önce değişkenin ve olay bloklarının doğru çalışıp çalışmadığını görmeni sağlar.
- Programı çalıştır ve başlangıçta LED ekranında adım sayısının 0 olduğunu kontrol et.
- Simülatördeki hareket kontrolünü kullanarak kartı sallamayı dene. Sayacın birer birer artması beklenir.
- A düğmesine bas. LED ekranda o ana kadar kaydedilen adım sayısı görünmelidir.
- B düğmesine bas. Sayaç 0 değerine dönmelidir.
- A düğmesine yeniden basarak sıfırlama işleminden sonra ekranda 0 gösterildiğini kontrol et.
- Bir kez daha sallama hareketi yap ve sayacın yeniden artıp artmadığını gözlemle.
Karta aktarmadan önce özellikle şu üç noktayı kontrol et: başlangıçta adım değişkeni 0 yapılıyor mu, A düğmesi değişkenin mevcut değerini gösteriyor mu, B düğmesi değişkeni yeniden 0 yapıyor mu? Böylece sorun yaşandığında problemin hareket algılamada mı, değişkende mi, yoksa düğme olaylarında mı olduğunu daha kolay ayırabilirsin.
Program hazır olduğunda micro:bit kartını USB kablosuyla bilgisayara bağla ve MakeCode içindeki İndir seçeneğini kullan. Bağlantı biçimine göre program doğrudan karta aktarılabilir veya bilgisayarına indirilen program dosyası kartın MICROBIT sürücüsüne aktarılabilir. Bu adımların ayrıntıları için resmî MakeCode başlama yönergelerine başvurabilirsin.
Program karta aktarıldıktan sonra bilgisayardan bağımsız hareket denemeleri yapmak için micro:bit’i pil kutusuyla çalıştırabilirsin. Kart bilgisayara USB ile bağlıyken ayrıca pil kullanman gerekmez. Bilgisayardan ayrılmış kullanımda ise karta uygun, 2 adet AAA pil içeren pil kutusu gerekir.
İvme gücü eşiğiyle sayım nasıl geliştirilebilir?
İvme gücü eşiği, sallama olayını doğrudan beklemek yerine ölçülen hareket değeri belirlediğin seviyeyi geçtiğinde sayım yapılmasını sağlar. Bunu, hafif masa titreşimlerini içeri almayan, daha belirgin hareketlerde açılan bir kapı kuralı gibi düşünebilirsin.
MakeCode’da Giriş kategorisindeki ivme bloğunda yön seçimini güç olarak ayarlayabilirsin. Güç seçeneği, micro:bit’in farklı yönlerdeki ivmesini birlikte değerlendirir ve sonucu milli-g cinsinden sayısal bir değer olarak verir. Ayrıntılı açıklama için MakeCode ivmeölçer referansını inceleyebilirsin.
- Değerleri gözlemle: Önce simülatörde ve gerçek kartta micro:bit’i hareketsiz tutarak, masaya hafifçe dokunarak ve kontrollü biçimde hareket ettirerek oluşan değerleri karşılaştır.
- Günlük hareketleri ayır: Masanın titreşmesi, kartın yerine bırakılması veya kablonun hareket etmesi gibi durumların oluşturduğu değerleri ayrıca not et. Bunlar sayılmasını istemediğin hareketlerdir.
- Belirgin hareketin üstünde bir eşik seç: Yürürken ya da kartı kontrollü biçimde sallarken oluşan değerleri dikkate alarak, hafif titreşimlerin üzerinde kalan bir eşik belirle. Sabit bir sayı her kartta ve her kullanım biçiminde aynı sonucu vermeyebilir.
- Yeniden hazır olma mantığını değerlendir: Hareket değeri eşiği geçtiğinde sayacı artırdıktan sonra kartın yeniden sayım yapabilmesi için değerin eşik altına dönmesini bekleyebilirsin. Böylece tek bir sallama sırasında art arda çok fazla sayım yapılmasının önüne geçmeye çalışırsın.
Bu yöntem, hareket algılamayı kendi kullanım biçimine göre ayarlamana yardımcı olabilir. Yine de ortaya çıkan proje gerçek bir adımsayarın ölçüm doğruluğunu sağlamaz. Bazı hareketler sayılabilir, bazıları kaçabilir ve her algılanan hareket gerçek bir adıma karşılık gelmeyebilir. Bu nedenle projeyi sağlık ölçümü veya kalori hesabı için kullanmamalısın.
Sık Sorulan Sorular
micro:bit adım sayar neden bazı sallamaları kaçırabilir?
micro:bit adım sayar, her fiziksel hareketi değil, kartın algıladığı belirli sallama hareketlerini sayar. Hareketin yönü, şiddeti, peş peşe yapılması ve kartın hareket sırasında nasıl tutulduğu sonucu etkileyebilir.
Her sallama gerçekten bir adım olarak mı sayılır?
Her sallama gerçek bir adım olarak sayılmaz; program yalnızca algılanan sallama olayında sayacı artırır. Bu nedenle elindeki kartı sallamak da sayacı artırabilir, bazı gerçek adımlar ise algılanmayabilir.
Adım sayısını A düğmesine basmadan ekranda göstermek gerekir mi?
Adım sayısını A düğmesine basmadan da gösterebilirsin; bunun için sayı gösterme bloğunu sürekli çalışan akışta kullanmak gerekir. Ancak LED ekranın sayıyı kaydırarak göstermesi, yeni hareketlerin ekrana yansımasında kısa bir gecikme oluşturabilir.
İvme gücü için eşik değeri nasıl seçilir?
İvme gücü eşiği, simülatörde ve gerçek kartta gözlemlediğin değerlere göre seçilmelidir. Hafif titreşimleri dışarıda bırakıp belirgin hareketleri kapsayan bir değer belirleyebilir, ardından farklı hareketlerle sonucu yeniden kontrol edebilirsin.
Programı micro:bit kartına yüklerken pil bağlantısı nasıl yapılır?
Programı karta aktarırken micro:bit bilgisayara USB ile bağlı olduğu için ayrıca pil bağlantısı yapman gerekmez. Aktarım tamamlandıktan sonra kartı bilgisayardan bağımsız çalıştırmak için karta uygun 2 adet AAA pil içeren pil kutusunu pil bağlantısına takabilirsin.
Bu proje, micro:bit’in ivmeölçerini, olay bloklarını, değişkenleri ve koşullu sayım mantığını birlikte denemek için kullanılabilir. Simülatörde kontrol ederek başlayıp gerçek kartta farklı hareketleri gözlemledikçe programın hangi durumlarda daha iyi çalıştığını anlayabilirsin.