
Merhaba! Bu yazıda, ses yüksekliğine duyarlı dans eden panda projesini nasıl yapabileceğinizi adım adım anlatacağım. Bu proje, özellikle hem eğlenceli hem de öğretici bir robotik deneyim sunuyor. Projemizde Micro:bit V2, Keyestudio genişletici kartı ve servo motorlar kullanarak ses yüksekliğine göre hareket eden bir panda figürü oluşturacağız. Ses seviyesinin artmasıyla birlikte pandanın kolları daha hızlı hareket edecek, düşük ses seviyelerinde ise panda tamamen duracak. Şimdi malzemelere detaylıca göz atalım.
Gerekli Malzemeler:
1. Micro:bit V2:
- Micro:bit V2, projede ana kontrol ünitesi olarak kullanılıyor. Bu küçük bilgisayar, yerleşik mikrofonu sayesinde çevredeki ses seviyesini algılayabiliyor. Ayrıca, ses seviyesi arttıkça servo motorlara komut göndererek pandanın hareket etmesini sağlıyor.
2. Keyestudio Genişletici Kart:
- Keyestudio genişletici kartı, Micro:bit’e birden fazla cihaz bağlamamıza olanak tanır. Servo motorların ve diğer donanımların Micro:bit’e kolayca bağlanabilmesi için bu kartı kullanıyoruz. Servo motorları sabitleyip, doğru pinlere bağlantı yapmak için genişletici kart büyük bir kolaylık sağlıyor.
3. 2 Adet Servo Motor:
- Kolların hareket etmesini sağlayan motorlardır. Micro:bit üzerinden gelen komutlarla hareket ederler ve panda figürünün kollarını yukarı ve aşağı hareket ettirirler. Bu motorlar Keyestudio genişletici kartı üzerinden kontrol edilir.
4. Karton ve Makas:
- Panda figürümüzü oluşturmak için karton kullanıyoruz. Kartondan pandanın gövdesini, kollarını ve diğer parçalarını keserek hazırlıyoruz. Makas ve kalem yardımıyla pandanın şekillerini oluşturup servo motorlara bağlanacak şekilde parçalar kesiyoruz.
5. Yapıştırıcı:
- Panda figürünü birleştirmek ve servo motorları kartona sabitlemek için güçlü bir yapıştırıcıya ihtiyacımız olacak. Kolların ve gövdenin stabil olabilmesi için servo motorların güvenli şekilde sabitlenmesi gerekiyor.
6. Jumper Kablolar:
- Servo motorları Micro:bit’e bağlamak için jumper kablolar kullanacağız. Bu kablolar, genişletici kartı ile servo motorlar arasında bağlantıyı sağlayarak motorların doğru şekilde çalışmasını garantileyecek.

Neden Bu Malzemeleri Seçtik?
Bu proje için Micro:bit V2’nin yerleşik mikrofonu sayesinde ses algılama kabiliyetine güveniyoruz. Keyestudio genişletici kartı ise çoklu donanım bağlantılarını kolaylaştırarak servo motorları düzgün şekilde kontrol etmemize yardımcı oluyor. Kartondan yapılmış basit bir panda figürü ise hem pratik hem de yaratıcı bir proje deneyimi sunuyor. Servo motorların bu figüre entegre edilmesi, projeye mekanik bir boyut kazandırarak ses seviyesine göre gerçek bir dans etkisi yaratıyor.
Çocuğunuza Bu Projeyi Nasıl Anlatabilirsiniz?
Çocuğunuzun teknoloji ve kodlama dünyasına ilgi duymasını sağlamak, bu tür projelerle çok daha eğlenceli hale gelebilir. Dans Eden Panda (Ses Yüksekliğine Duyarlı) projesini çocuğunuza basit ve eğlenceli bir şekilde nasıl anlatabileceğinizi adım adım paylaşacağım.
1. Projenin Amacını Anlatın
Başlangıçta çocuğunuza bu projenin ne olduğunu ve ne yapacağını açıklayarak başlamalısınız:
• “Bugün birlikte, müziği duyduğunda dans eden bir panda yapacağız! Panda, çevredeki sesleri dinleyip, müzik sesini duyunca kollarını yukarı ve aşağı hareket ettirecek. Yani, panda müziğe göre dans edecek!”
Bu açıklama, çocuğunuzun projeyi bir oyun gibi görmesine ve merakla katılmasına yardımcı olabilir.
2. Malzemeleri Tanıtın
Proje için kullanacağınız malzemeleri gösterin ve ne işe yaradığını basitçe anlatın:
• Micro:bit: “Bu küçük cihaz, bizim panda dansçımızın beynidir! O, müziği dinleyip panda kollarının nasıl hareket edeceğine karar verecek.”
• Servo Motorlar: “Bunlar, panda kollarının yukarı ve aşağı hareket etmesini sağlayacak küçük motorlar.”
• Karton Panda Figürü: “Bu kartondan yaptığımız panda figürü, hareket eden panda olacak. Motorlar sayesinde kolları gerçekten hareket edebilecek!”
• Mikrofon (Micro:bit içinde): “Micro:bit’in üzerinde bir mikrofon var, tıpkı bizim kulaklarımız gibi müziği duyacak ve ona göre panda dans edecek.”
3. Nasıl Çalıştığını Anlatın
Projenin nasıl çalışacağını basit bir dille açıklayarak, çocuğunuzun süreci anlamasını sağlayabilirsiniz:
• “Panda müziği duyunca, bu küçük motorlar kollarını hareket ettirir. Eğer müzik çok yüksekse panda çok hızlı dans eder, müzik biraz daha sessiz olursa daha yavaş dans eder. Eğer hiç ses yoksa panda dinlenmeye geçer, kolları hareket etmez.”
Bu şekilde açıklamak, çocuğunuzun ses seviyesinin motorların hızını nasıl kontrol ettiğini daha rahat anlamasını sağlar.
4. Eğlenceli Bir Şekilde Katılım Sağlayın
Çocuğunuzu projeye dahil ederken ona sorular sorarak ilgisini canlı tutabilirsiniz:
• “Peki sence panda müziği duyduğunda nasıl dans edecek?”
• “Birlikte pandayı dans ettirmeye hazır mısın?”
Projenin her adımında çocuğunuza küçük görevler vererek katılımını sağlayabilirsiniz, örneğin kartondan panda kesmek, servo motorları yerleştirmek gibi basit işler.
5. Deney ve Gözlem
Projeyi tamamladıktan sonra, çocuğunuzla birlikte panda figürünün müziğe nasıl tepki verdiğini gözlemleyin:
• “Bak, müzik hızlandıkça panda da daha hızlı dans ediyor!”
• “Sessiz olduğunda panda neden hareket etmiyor sence?”
Bu süreç, çocuğunuzun projeye dair daha fazla merak etmesini sağlayacak ve projeyi daha iyi anlamasına yardımcı olacaktır. Aynı zamanda çocuğunuza seslerin ve teknolojinin nasıl bir araya geldiğini öğretmek için harika bir fırsat olacaktır.
Sonuç olarak, Dans Eden Panda projesi, çocuğunuz için hem eğlenceli hem de öğretici bir deneyim sunar. Projeyi adım adım çocuğunuzla birlikte yapmak, hem teknolojiye olan ilgisini artırır hem de sizinle birlikte kaliteli vakit geçirmesini sağlar!
Proje kodu
Projemizin en önemli kısmı olan kod, Micro:bit’in mikrofon sensörüyle çevredeki ses seviyesini algılayıp, bu seviyeye göre panda figürünün kollarını hareket ettiren servo motorları kontrol edecek. Bu bölümde, MakeCode platformunda yazılmış basit ama etkili bir JavaScript kodunu paylaşıyor olacağım ve her adımını detaylıca açıklayacağım.
let sesSeviyesi = 0
let hiz = 500 // Başlangıç hızı (milisaniye cinsinden)
// Servo motorları başlangıçta 90 derece pozisyonuna ayarlıyoruz
pins.servoWritePin(AnalogPin.P0, 90) // Sol kol
pins.servoWritePin(AnalogPin.P1, 90) // Sağ kol
basic.forever(function () {
// Mikrofonla ses seviyesini algıla
sesSeviyesi = input.soundLevel()
// Ses seviyesine göre hız ayarlarını yap
if (sesSeviyesi > 200) {
// Yüksek ses: çok hızlı hareket
hiz = 100
} else if (sesSeviyesi > 150) {
// Orta ses: hızlı hareket
hiz = 200
} else if (sesSeviyesi > 100) {
// Düşük ses: orta hız
hiz = 400
} else {
// Ses seviyesi düşükse motorları durdur
pins.servoWritePin(AnalogPin.P0, 90) // Sol kol durma pozisyonu
pins.servoWritePin(AnalogPin.P1, 90) // Sağ kol durma pozisyonu
basic.pause(100)
return // Ses düşükse motorlar çalışmaz
}
// Kolların hareketi
pins.servoWritePin(AnalogPin.P0, 45) // Sol kol yukarı
pins.servoWritePin(AnalogPin.P1, 135) // Sağ kol yukarı
basic.pause(hiz) // Hareket hızı
pins.servoWritePin(AnalogPin.P0, 135) // Sol kol aşağı
pins.servoWritePin(AnalogPin.P1, 45) // Sağ kol aşağı
basic.pause(hiz) // Hareket hızı
})
Kodun Açıklaması
1. Değişkenler ve Başlangıç Ayarları:
let sesSeviyesi = 0
let hiz = 500 // Başlangıç hızı (milisaniye cinsinden)
• sesSeviyesi: Mikrofonla çevredeki ses seviyesini sürekli olarak ölçmek için kullanılan değişken.
• hiz: Servo motorların kolları ne kadar hızlı hareket ettireceğini belirleyen hız değişkeni. Başlangıçta 500 milisaniye olarak ayarlanmış (yavaş hız).
2. Servo Motorları Başlangıç Pozisyonuna Ayarlama:
pins.servoWritePin(AnalogPin.P0, 90) // Sol kol
pins.servoWritePin(AnalogPin.P1, 90) // Sağ kol
• Proje başladığında, servo motorlar 90 dereceye ayarlanır. Bu, kolların başlangıç pozisyonudur (orta konum).
3. Ses Seviyesini Ölçme ve Hız Ayarı:
sesSeviyesi = input.soundLevel()
• input.soundLevel() fonksiyonu, Micro:bit’in yerleşik mikrofonunu kullanarak çevredeki ses seviyesini 0 ile 255 arasında bir değer olarak ölçer.
if (sesSeviyesi > 200) {
hiz = 100 // Yüksek ses: çok hızlı hareket
} else if (sesSeviyesi > 150) {
hiz = 200 // Orta ses: hızlı hareket
} else if (sesSeviyesi > 100) {
hiz = 400 // Düşük ses: orta hız
} else {
// Ses seviyesi düşükse motorları durdur
pins.servoWritePin(AnalogPin.P0, 90)
pins.servoWritePin(AnalogPin.P1, 90)
basic.pause(100)
return
}
• Ses seviyesine göre 3 farklı hız seviyesi belirliyoruz:
• Yüksek ses (>200): Kollar çok hızlı hareket eder (100 ms aralıklarla).
• Orta ses (>150): Kollar hızlı hareket eder (200 ms aralıklarla).
• Düşük ses (>100): Kollar orta hızda hareket eder (400 ms aralıklarla).
• Eğer ses seviyesi çok düşükse (≤100), kollar durma pozisyonuna getirilir ve motorlar çalışmaz.
4. Kolların Hareketi:
pins.servoWritePin(AnalogPin.P0, 45) // Sol kol yukarı
pins.servoWritePin(AnalogPin.P1, 135) // Sağ kol yukarı
basic.pause(hiz) // Hareket hızı
pins.servoWritePin(AnalogPin.P0, 135) // Sol kol aşağı
pins.servoWritePin(AnalogPin.P1, 45) // Sağ kol aşağı
basic.pause(hiz) // Hareket hızı
• Kollar, ses seviyesine göre belirlenen hızda yukarı ve aşağı hareket eder. Yukarı hareket için servo motorlar 45 ve 135 dereceye ayarlanır. Aşağı hareket için bu açıların tersine ayarlanır.
Kodun Çalışma Mantığı
Bu kod, ses seviyesi yüksek olduğunda kolların daha hızlı, orta seviyede daha yavaş, düşük seviyede ise hareketsiz kalmasını sağlar. Mikrofonla algılanan ses, servo motorların hızını dinamik olarak kontrol eder. Bu sayede, panda figürü etraftaki müziğe veya seslere tepki verir ve ritmik bir şekilde dans eder.
Kodun yapısı oldukça esnek olup, farklı projelerde hız, ses eşiği ve hareket açısı gibi parametreleri değiştirerek kullanılabilir.