Akıllı baston projesi, bastona takılan HC-SR04 ultrasonik sensörle öndeki engelin mesafesini ölçer ve engel yaklaştıkça titreşim motorunu daha sık çalıştırır. 60 cm'den yakın engellerde buzzer da öter. Arduino Nano, 9V pil ve sürgülü anahtarla devre bastonun üzerinde taşınabilir hâle gelir.
Görme engelli bireyler yürürken önlerindeki engeli beyaz bastonla yoklayarak bulur. Bu projede bastona bir mesafe sensörü ekleyerek engeli değmeden, yaklaşık bir metre önceden haber veren bir uyarı sistemi kuruyoruz. Uyarı hem titreşimle hem sesle verilir. Proje ortaokul ve lise ödevleri, TÜBİTAK 4006 bilim fuarları ve meslek lisesi atölye çalışmaları için uygundur.
Akıllı baston nedir?
Akıllı baston, öndeki engelin uzaklığını bir sensörle ölçen ve kullanıcıyı titreşim ya da sesle uyaran elektronik destekli bir yürüme bastonudur. Sistemin üç parçası vardır: mesafeyi ölçen HC-SR04 ultrasonik sensör, karar veren Arduino Nano ve uyarıyı veren titreşim motoru ile buzzer.
Titreşim, kalabalık ve gürültülü ortamda sesten daha kolay fark edilir; ses ise çevredekilerin de uyarıyı duymasını sağlar. Bu yüzden projede ikisi birlikte kullanılır. Önemli bir not: bu bir eğitim projesidir. Gerçek kullanımda beyaz bastonun ve eğitimli kullanımın yerini tutmaz.
Hangi malzemeler gerekir?
Akıllı baston için Arduino Nano, HC-SR04 sensör, küçük bir titreşim motoru, motoru süren BC547 transistör, koruma diyodu, buzzer ve 9V pil yeterlidir. Arduino Nano, Uno ile aynı kodu çalıştırır ama bastona sığacak kadar küçüktür.
Malzeme listesi
| Malzeme | Adet | Ne işe yarar? |
|---|---|---|
| Arduino Nano CH340 (Type-C) | 1 | Mesafeyi okur, uyarıyı başlatır |
| HC-SR04 ultrasonik mesafe sensörü | 1 | Öndeki engelin uzaklığını ölçer |
| Mini 3V titreşim motoru 6x12 mm | 1 | Sessiz uyarı verir |
| BC547 NPN transistör + 1 kΩ direnç | 1 + 1 | Motoru Arduino pininin yerine çalıştırır |
| 1N4006 diyot | 1 | Motor durunca oluşan gerilim sıçramasını söndürür |
| Pasif buzzer 17 mm | 1 | Yakın engelde sesli uyarı |
| 9V jaklı pil soketi + 9V pil | 1 | Devreyi besler |
| Sürgülü anahtar, kablo, bant ya da kelepçe | 1 | Aç-kapa ve bastona sabitleme |
Sensörü bastona sabitlemek için hazır bir HC-SR04 tutucu ya da sıcak silikonla yapıştırılmış küçük bir plastik kutu kullanabilirsiniz. Önce devreyi breadboard üzerinde deneyin, çalıştığını görünce lehimleyerek bastona taşıyın.
Devre nasıl bağlanır?
HC-SR04'ün Trig ucu D7'ye, Echo ucu D8'e bağlanır; titreşim motoru D5'e bağlı bir BC547 üzerinden, pasif buzzer ise doğrudan D6'dan çalışır. Bağlantı yaparken pil takılı olmasın.
- HC-SR04: VCC → Nano 5V, GND → GND, Trig → D7, Echo → D8.
- BC547'nin düz yüzü size bakarken bacaklar soldan sağa kollektör, beyz, emiter sırasındadır. Emiteri GND'ye bağlayın.
- D5 pinini 1 kΩ dirençle BC547'nin beyzine bağlayın.
- Titreşim motorunun bir ucunu 5V'a, diğer ucunu BC547'nin kollektörüne bağlayın.
- 1N4006 diyodu motorun iki ucuna ters bağlayın: gümüş çizgili katot 5V tarafına gelir.
- Pasif buzzerın artı ucunu D6'ya, eksi ucunu GND'ye bağlayın.
- 9V pilin artısını sürgülü anahtardan geçirip Nano'nun VIN pinine, eksisini GND'ye bağlayın.
Motor doğrudan Arduino pinine bağlanmaz; motorun çektiği akım pinin sınırını aşabilir ve durduğunda oluşan ters gerilim kartı bozabilir. BC547 en çok 100 mA taşır; küçük titreşim motorları için yeterlidir. Ayrıntıları titreşim motoru Arduino bağlantısı yazısında anlattık.
Akıllı baston kodu nasıl çalışır?
Kod her döngüde mesafeyi ölçer; engel 100 cm'den yakınsa motoru kısa titreştirir ve engel yaklaştıkça iki titreşim arasındaki bekleme süresini kısaltır.
const byte TRIG = 7, ECHO = 8, MOTOR = 5, BUZZER = 6;
const int GUC = 150; // 3V motor 5V ile sürülür: en çok 150 (yaklaşık %60)
long mesafeOlc() {
digitalWrite(TRIG, LOW); delayMicroseconds(2);
digitalWrite(TRIG, HIGH); delayMicroseconds(10);
digitalWrite(TRIG, LOW);
long sure = pulseIn(ECHO, HIGH, 30000); // en çok 30 ms bekle
if (sure == 0) return 999; // yankı yok: engel uzakta
return sure / 58; // mikrosaniye -> cm
}
void uyar(int bekleme, bool ses) {
analogWrite(MOTOR, GUC);
if (ses) tone(BUZZER, 2000);
delay(80); // 80 ms titreşim
analogWrite(MOTOR, 0);
noTone(BUZZER);
delay(bekleme);
}
void setup() {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(MOTOR, OUTPUT);
}
void loop() {
long cm = mesafeOlc();
if (cm < 30) uyar(40, true); // çok yakın: neredeyse sürekli
else if (cm < 60) uyar(250, true); // yakın: titreşim + ses
else if (cm < 100) uyar(600, false); // dikkat: yalnızca titreşim
else delay(100); // engel yok
}
Mesafe, sesin gidip dönme süresinden hesaplanır: süre / 58 sonucu santimetre verir. Motor 3V'luk olduğu için 5V ile tam güçte çalıştırılmaz; analogWrite ile verilen 150 değeri ortalama gerilimi yaklaşık 3V'a indirir. HC-SR04'ün ölçüm ilkesini HC-SR04 ultrasonik sensör yazısında bulabilirsiniz.
Uyarı mesafeleri nasıl belirlenir?
Uyarı mesafeleri, yürüyen bir kişinin durmak için ihtiyaç duyduğu süreye göre seçilir; bu projede 100, 60 ve 30 cm olmak üzere üç bölge kullanılır.
| Engel mesafesi | Titreşim | Buzzer | Anlamı |
|---|---|---|---|
| 100 cm ve üzeri | Yok | Yok | Yol açık |
| 60-99 cm | 80 ms, 600 ms arayla | Yok | Dikkat, engel var |
| 30-59 cm | 80 ms, 250 ms arayla | 2.000 Hz kısa bip | Yavaşla |
| 30 cm'den yakın | 80 ms, 40 ms arayla | Sık bip | Dur |
Bu değerleri koddaki 100, 60 ve 30 sayılarını değiştirerek kendinize göre ayarlayabilirsiniz. Ödevde farklı mesafe ayarlarını deneyip hangisinin daha rahat olduğunu karşılaştırmak iyi bir deney konusudur.
Sensör bastona nasıl yerleştirilir?
Sensör bastonun alt yarısına, tam ileri bakacak ve zemini görmeyecek şekilde yerleştirilir. HC-SR04'ün ses ışını yaklaşık 15° genişliğindedir; sensör yere doğru eğilirse zemini engel sanıp sürekli uyarı verir.
- Sensörü önce yere paralel takın, sonra boş bir koridorda uyarı gelmeyene kadar açısını hafifçe yukarı düzeltin.
- Nano, pil ve anahtarı bastonun sap kısmına yakın küçük bir kutuya koyun; böylece ağırlık elde toplanır.
- Titreşim motorunu sapın tutulan yerine bantla sabitleyin; titreşim avuca buradan geçer.
- Kabloları kelepçeyle bastona sarın ki yürürken takılmasın.
Sensörün göremediği yerleri de bilin: aşağı inen merdiven, çukur ve baş hizasındaki dallar bu tek sensörle algılanmaz. Kumaş gibi yumuşak yüzeyler ve ince direkler de geç fark edilebilir.
Pil ne kadar dayanır?
Pil ömrü, devrenin çektiği akım ölçülerek hesaplanır: pil kapasitesi (mAh) ÷ akım (mA) = yaklaşık çalışma süresi (saat). Multimetreyi akım kademesinde pil ile anahtar arasına seri bağlayıp akımı ölçün. Örneğin 500 mAh'lik bir alkalin 9V pil ve 40 mA ölçüm için süre 500 ÷ 40 ≈ 12 saattir. Kullanmadığınızda anahtarı kapatın; Nano'nun güç LED'i de akım çeker.
Hangi güvenlik kurallarına dikkat edilmeli?
Devre 9V pille çalıştığı için güvenlidir; yine de şu kurallara uyun:
- Devreyi yalnızca 9V pille ya da bilgisayarın USB çıkışıyla besleyin. 220V şebeke elektriğine hiçbir şey bağlamayın.
- Projeyi öğretmen ya da yetişkin gözetiminde kurun; havya ve sıcak silikonu yetişkin yardımıyla kullanın.
- 9V pilin uçlarını birbirine ya da metale değdirmeyin. Isınan pili hemen çıkarın.
- Bastonu denerken gözü kapalı yürümeyin; denemeleri karton kutularla, düz ve boş bir alanda, yanınızda biri varken yapın.
- Diyodun yönünü kontrol edin; ters takılan diyot 5V hattını kısa devre eder.
Ödevinizi nasıl sunarsınız?
Ödevinizi, bastonu karton kutulardan yapılmış küçük bir parkurda çalıştırarak ve ölçüm tablonuzu göstererek sunabilirsiniz.
- Problem: "Görme engelli bir kişi bastonla değmeden önündeki engeli nasıl fark edebilir?"
- Deney 1: Kutuyu 20, 50, 80 ve 120 cm'ye koyun; cetvelle ölçtüğünüz mesafeyi ve gelen uyarıyı tabloya yazın.
- Deney 2: Aynı mesafeye karton, kumaş ve ince bir çubuk koyun; hangisinin algılandığını not edin.
- Rapor: Devre şemasını, kodu, pil ölçümünüzü ve sensörün göremediği durumları yazın.
- Geliştirme: Baş hizası için ikinci bir sensör ya da düşmeyi algılayan ivme sensörü önerin.
Benzer bir mesafe uyarı sistemi olan Arduino park sensörü projesi ile karşılaştırma yapmak sunumunuzu güçlendirir.
Sık sorulan sorular
Arduino Nano yerine Uno kullanılabilir mi?
Evet, Arduino Uno ile aynı kod ve aynı pin numaraları çalışır. Uno daha büyük olduğu için bastona takmak zordur; masada deneme yaparken Uno, bastona taşırken Nano kullanmak pratiktir. Uno'da 9V pil, kartın üzerindeki DC jaktan ya da VIN pininden bağlanır. Pin numaralarını değiştirmezseniz kodda hiçbir şeyi değiştirmeniz gerekmez.
Titreşim motoru neden çalışmıyor?
Titreşim motoru çoğunlukla transistör bacakları yanlış bağlandığı için çalışmaz. BC547'nin düz yüzü size bakarken soldan sağa kollektör, beyz, emiter sırasını kontrol edin. Motorun bir ucu 5V'a, diğeri kollektöre gitmelidir. Kodda GUC değeri 80'in altındaysa motor kalkış yapamayabilir; 150 değeriyle deneyin.
Sensör boş yolda da uyarı veriyorsa ne yapmalıyım?
Boş yolda gelen uyarı genellikle sensörün zemini görmesinden kaynaklanır. Sensörü biraz yukarı eğin ve bastonun ucundan uzaklaştırın. Kabloların ya da tutucunun sensörün önüne girmediğinden emin olun. Seri Monitör ile ölçülen mesafeyi yazdırarak sorunun nereden geldiğini görebilirsiniz.
Buzzer sesi kısılabilir mi?
Evet, buzzerın artı ucuna 100-220 Ω arası bir direnç seri bağlanarak ses kısılabilir. İsterseniz koddaki tone satırlarını silip yalnızca titreşimle uyarı verebilirsiniz. Toplu taşıma gibi sessiz ortamlarda titreşim, sokakta ise ses daha kullanışlıdır. Bunun için bir butonla iki mod arasında geçiş eklemek iyi bir geliştirmedir.
Yağmurda kullanılabilir mi?
Hayır, bu haliyle yağmurda kullanılmamalıdır. HC-SR04 ve Arduino Nano suya dayanıklı değildir; ıslanınca yanlış ölçüm yapar ya da bozulur. Proje bir okul maketi ve deneme düzeneğidir. Dışarıda deneyecekseniz kutuyu kapalı tutun ve sensörü yalnızca kuru havada kullanın.
Özet
- Akıllı baston, HC-SR04 ile engel mesafesini ölçüp titreşim ve sesle uyaran bir eğitim projesidir.
- Bağlantı: Trig D7, Echo D8, titreşim motoru D5 (BC547 ve 1 kΩ ile), buzzer D6.
- Motor transistörle sürülür ve uçlarına ters diyot bağlanır.
- Uyarı bölgeleri: 100 cm'den yakında titreşim, 60 cm'den yakında ses, 30 cm'den yakında sık uyarı.
- Sensör merdiven, çukur ve baş hizasındaki engelleri göremez; gerçek bastonun yerini tutmaz.
- Devreyi yalnızca 9V pille ya da USB ile, yetişkin gözetiminde çalıştırın.
