Arduino Kullanarak Körler İçin Akıllı Çubuk Nasıl Yapılır?

Helen Keller'in şu sözlerine güçlü bir şekilde inanıyorum: 'Kör olmaktan daha kötü olan tek şey görme yetisine sahip olmak ama görmemek'. Teknoloji, engellilerin diğer insanlar gibi normal bir yaşam sürmelerine yardımcı olabilir. Herkes adındaki Hintli kızı bilir Arunima Sinha Bir tren kazasında bacağını kaybeden ve hayatının geri kalanında protez bacaklar üzerinde yürümek zorunda kalan kadın. Kazadan sonra, protez ayaklarla Everest Dağı'na tırmanmaya karar verdi ve bu nedenle, en son teknoloji hayalini gerçekleştirmesinin yolunu açtı.

Akıllı Çubuk

Teknoloji gerçekten de insan engelini etkisiz hale getirebilir; bunu aklımızda tutarak, gücünü kullanalım Kör adamın sopası yapmak için arduino ve basit sensörler görme engelli kişiler için cankurtaran olabilir. Bir kişinin herhangi bir engelden uzaklığını algılayacak bir çubuğa, ışık koşullarını algılamak için bir LDR ve kör adamın çubuğunu uzaktan bulmak için kullanabileceği bir RF uzaktan kumanda içine bir Ultrasonik sensör yerleştirilecektir. Tüm talimatlar kör adama bir Buzzer ile verilecektir. Buzzer yerine vibratör motoru kullanabilir ve yaratıcılığımızı kullanarak çok daha fazla ilerleyebiliriz.



Kör İnsanlar İçin Akıllı Çubuk (Resim Nezaket: Devre Özeti)



Devre Tasarımında Arduino Nasıl Kullanılır?

Artık projenin özetini bildiğimize göre, ilerleyelim ve çalışmaya başlamak için farklı bilgiler toplayalım. Önce bileşenlerin bir listesini çıkaracağız, sonra bunları kısaca inceleyeceğiz, ardından tüm bileşenleri bir araya getirerek çalışan bir sistem oluşturacağız.



Adım 1: Gereken Bileşenler (Donanım)

  • LDR
  • Buzzer
  • LED
  • Supperhetrodine Verici ve Alıcı
  • Direnç
  • Butona basınız
  • Veroboard
  • 9V Batarya
  • Dijital multimetre
  • Tutkal tabancası

Adım 2: Kullanılan Bileşenler (Yazılım)

  • Proteus 8 Professional (Şu adresten indirilebilir: Buraya )

Proteus 8 Professional'ı indirdikten sonra üzerinde devreyi tasarlayın. Yeni başlayanların devreyi tasarlaması ve donanım üzerinde uygun bağlantıları kurması için yazılım simülasyonlarını buraya dahil ettik.

3. Adım: Bileşenleri İncelemek

Şimdi bu projede kullanacağımız tüm bileşenlerin bir listesini yaptık. Bir adım daha ileri gidelim ve tüm ana bileşenlerin kısa bir incelemesine geçelim.

  1. Arduino Nano: Arduino nano, bir devredeki farklı görevleri kontrol etmek veya gerçekleştirmek için kullanılan bir mikrodenetleyici kartıdır. Biz bir C Kodu Arduino Nano'da mikrodenetleyici kartına nasıl ve hangi işlemlerin gerçekleştirileceğini anlatın. Arduino Nano, Arduino Uno ile tamamen aynı işlevselliğe sahiptir, ancak oldukça küçük bir boyuttadır. Arduino Nano kartındaki mikrodenetleyici ATmega328p.

    Arduino Nano



  2. Ultrasonik Sensör HC-SR04: HC-SR04 kartı, iki nesne arasındaki mesafeyi belirlemek için kullanılan ultrasonik bir sensördür. Bir verici ve bir alıcıdan oluşur. Verici, elektrik sinyalini ultrasonik sinyale dönüştürür ve alıcı ultrasonik sinyali tekrar elektrik sinyaline dönüştürür. Verici ultrasonik bir dalga gönderdiğinde, belirli bir nesneyle çarpıştıktan sonra yansır. Mesafe, ultrasonik sinyalin vericiden alıp alıcıya geri dönmesi için geçen süre kullanılarak hesaplanır.

    Ultrasonik sensör

  3. 433 mhz RF verici ve alıcı: 433MHz'lik belirli bir frekansta çalışır. Piyasada bulunan birkaç başka radyo frekansı cihazı vardır ve bunlarla karşılaştırıldığında, bir RF modülünün performansı, vericinin gücünü artırdığımız zaman büyük bir iletişim mesafesi elde edilecek gibi birkaç faktöre bağlı olacaktır. Verici cihazda yüksek bir elektrik gücü tüketimine neden olur ve bu da pille çalışan cihazların daha kısa bir çalışma ömrüne neden olur. Bu cihazı daha yüksek iletim gücünde kullanırsak, cihaz diğer RF cihazlarıyla parazit oluşturacaktır.

    RF Verici ve Alıcı

  4. 7805 Voltaj regülatörü: Elektrik devrelerinde voltaj regülatörleri çok önemlidir. Giriş voltajında ​​dalgalanma olsa bile bu voltaj regülatörü sabit bir çıkış voltajı sağlar. Projelerin çoğunda 7805 IC'nin uygulamasını bulabiliriz. 7805 adı iki anlamı ifade eder, '78' pozitif voltaj regülatörü ve '05' çıkış olarak 5V sağladığı anlamına gelir. Dolayısıyla voltaj regülatörümüz + 5V çıkış voltajı sağlayacaktır. Bu IC, 1.5A civarında akımı idare edebilir. Daha fazla akım tüketen projeler için bir Soğutucu tavsiye edilir. Örneğin, giriş voltajı 12V ise ve 1A tüketiyorsanız, (12-5) * 1 = 7W. Bu 7 Watt ısı olarak dağıtılacaktır.

    Voltaj regülatörü

Adım 4: Devrenin Montajı

Bu proje için iki devre tasarlamamız gerekecek. İlk devre kör bir adamın sopasında uygun bir yere yerleştirilecek ve ikincisi bir RF verici devre ve ana devreyi bulmak için kullanılacaktır. Devreyi Proteus üzerinde tasarlamadan önce, yazılıma RF alıcısının proteus kitaplığını dahil etmemiz gerekir. Kitaplığı şuradan indirebilirsiniz: Buraya ve kütüphaneyi indirdikten sonra Kütüphane klasör ve kopyala MODULO_RF.LIB dosyasını açın ve Proteus'un Kitaplık klasörüne yapıştırın. Kitaplık klasörünü bulamazsanız, (C: Program Files (x86) Labcenter Electronics Proteus 8 Professional LIBRARY) üzerine tıklayın. Bu açık MODELS klasörünü yaptıktan sonra RX.MDF'yi kopyalayıp proteus MODELS klasörüne yapıştırın. Modeller klasörünü bulamazsanız, (C: Program Files (x86) Labcenter Electronics Proteus 8 Professional MODELS) seçeneğine tıklayın.

Devre Şeması (Resim İzniyle: Devre Özeti)

Devredeki tüm sensörleri kontrol etmek için kullanılacak mikrodenetleyici, Arduino Nano. Devrenin çalışması için kullanılan güç kaynağı 9V bataryadır ve bu 9V voltaj bir a kullanılarak 5V'a düşürülmüştür. 7805 Voltaj regülatörü. Devrede görüldüğü gibi Ultrasonik sensör voltaj regülatörünün Vout'undan güç alır. Sensörün tetik ve yankı pinleri sırasıyla Arduino'nun 3. ve 2. pinlerine bağlanır. Hafif Bağımlı Direnç (LDR), 10k değerindeki potansiyometreye bağlanır ve Analogdan Dijitale Arduino'nun A1 dönüşüm pini, voltaj farkını not etmek için bu noktaya bağlanır. RF alıcısı tarafından yayılan sinyali bilmemiz gerekiyor, böylece RF alıcısından gelen sinyali okumak için ADC pin A0'ı bağladık. Tüm devrenin çıkışı tarafından verilir sesli uyarı böylece buzzerin pozitif pini Arduino'nun pim 12'sine bağlanır ve negatif pini ultrasonik sensörün toprağına bağlanır.

RF vericiyi devre şemamıza dahil etmedik çünkü donanım üzerine ayrı olarak monte edeceğiz. 433 MHz süperheterodin verici ve alıcı kullandığımızda, bunlarla arayüz oluşturacak bir mikrodenetleyiciye ihtiyacımız var, ancak bu projede alıcıya sinyal göndermek için tek vericiye ihtiyacımız var, bu yüzden vericinin veri pinini Vcc ile bağladık. Alıcının veri pini, RC filtresinden geçirilir ve ardından sırasıyla Arduino'nun A0 veri pinine bağlanır. Verici üzerindeki butona tekrar tekrar basacağız ve butona basıldığında alıcı çıkış olarak herhangi bir sabit değer verecektir.

RF Verici

Adım 5: Donanımın Montajı

Simülasyonu çalıştırdığımıza göre, hayır bir prototip yapabilecek konumdayız. Perf kart üzerindeki bileşenleri lehimlerken Arduino Nano'nun pinlerine özellikle dikkat edin. pinlerin birbirine değmediğinden emin olun, aksi takdirde Arduino zarar görebilir. Evinizde bir çubuk bulun ve üzerine Arduino ve RF alıcıdan oluşan devreyi takın. Devreyi çubuğa takmak için Sıcak tutkal tabancasını kullanabilirsiniz ve pozitif ve negatif terminallere biraz yapıştırıcı sürmek daha iyidir, böylece çubuk yere sıkıca vurulursa güç kaynağının kabloları ayrılmayabilir.

Donanım Üzerine Montajlı Devre (Resim İzniyle: Devre Özeti)

6. Adım: Arduino'ya Başlarken

Daha önce Arduino IDE'ye aşina değilseniz endişelenmeyin çünkü aşağıda Arduino IDE'yi kullanarak mikrodenetleyici kartında kod yazma işleminin net adımlarını görebilirsiniz. Arduino IDE'nin son sürümünü şu adresten indirebilirsiniz: buraya ve aşağıdaki adımları izleyin:

  1. Arduino kartı PC'nize bağlandığında, 'Kontrol paneli' ni açın ve 'Donanım ve Ses' e tıklayın. Ardından 'Aygıtlar ve Yazıcılar' a tıklayın. Arduino kartınızın bağlı olduğu bağlantı noktasının adını bulun. Benim durumumda 'COM14' ama sizin PC'nizde farklı olabilir.

    Bağlantı Noktası Bulma

  2. Araç menüsünü tıklayın. ve panoyu şu şekilde ayarlayın: Arduino Nano açılır menüden.

    Ayar Panosu

  3. Aynı Araç menüsünde, bağlantı noktasını daha önce görüntülemede gözlemlediğiniz bağlantı noktası numarasına ayarlayın. Cihazlar ve yazıcılar .

    Bağlantı Noktası Ayarlama

  4. Aynı Araç menüsünde İşlemciyi ATmega328P (Eski Önyükleyici).

    İşlemci

  5. Aşağıya ekli kodu indirin ve Arduino IDE'nize yapıştırın. Tıkla yükle mikrodenetleyici panonuzdaki kodu yazmak için düğmeye basın.

    Yükle

Kodu indirmek için, buraya Tıkla.

7. Adım: Kodu Anlama

Kod iyi yorumlanmış ve kendinden açıklamalıdır. Ancak yine de aşağıda açıklanmıştır:

  1. Kodun başlangıcında, Arduino Nano kartının ultrasonik sensöre ve RF modülüne bağlı tüm pinleri başlatılır.
const int tetikleyici = 3; // 1. Sensörün tetik pimi const int echo = 2; // 1. Sensörün yankı pini const int Buzz = 13; // Buzzer'ı bağlamak için pin const int Remote = A0; const int Işık = A1; long time_taken; int dist; int Signal; int Intens; int Similar_count;

2. geçersiz kurulum () kullanılan tüm pimleri ayarlamak için kullanılan bir işlevdir. GİRİŞ ve ÇIKTI. Baud Hızı, bu işlevde tanımlanır. Baud Hızı, mikro denetleyici kartının kendisine entegre sensörlerle iletişim kurduğu iletişim hızıdır.

geçersiz kurulum () {Serial.begin (9600); pinMode (Buzz, OUTPUT); digitalWrite (Buzz, DÜŞÜK); pinMode (tetikleyici, ÇIKIŞ); pinMode (echo, INPUT); }

3. Şimdi mesafeyi hesaplayacak bir fonksiyon oluşturacağız.

void calculate_distance (int tetikleyici, int echo) {digitalWrite (trigger, LOW); gecikme Mikrosaniye (2); digitalWrite (tetikleyici, YÜKSEK); gecikme Mikrosaniye (10); digitalWrite (tetikleyici, DÜŞÜK); time_taken = pulseIn (eko, YÜKSEK); dist = alınan zaman * 0,034 / 2; eğer (dist> 300) dist = 300; }

Dört. geçersiz döngü () bir döngüde tekrar tekrar çalışan bir işlevdir. Bu fonksiyonda mikrodenetleyici kuruluna nasıl ve hangi işlemlerin yapılacağını anlatıyoruz. Ana döngüde sensörlerin verilerini okuyacağız. Burada ilk önce tetik pimi yankı pini tarafından algılanacak bir sinyal gönderecek şekilde ayarlanır. Belirli bir mesafede bir nesne algılanırsa, sesli uyarıyı sürekli olarak çalmak için bazı koşullar uygulanır. Zil, karanlık algıladığında küçük bir kesinti ile bip sesi çıkaracak ve parlaklığı algılarsa biraz daha büyük bir kesinti ile bipleyecektir.

void döngü () {// sonsuz döngü hesaplama_distance (tetikleyici, yankı); Sinyal = analogRead (Uzaktan); Intens = analogRead (Light); // Remote'a basılıp basılmadığını kontrol edin int temp = analogRead (Remote); benzer_say = 0; while (Signal == temp) {Signal = analogRead (Remote); Similar_count ++; } // Uzaktan basılırsa if (Similar_count<100) { Serial.print(similar_count); Serial.println('Remote Pressed'); digitalWrite(Buzz,HIGH);delay(3000);digitalWrite(Buzz,LOW); } //If very dark if (Intens800) { Serial.print(Intens); Serial.println('Low Light'); digitalWrite(Buzz,HIGH);delay(500);digitalWrite(Buzz,LOW);delay(500);digitalWrite(Buzz,HIGH);delay(500); digitalWrite(Buzz,LOW);delay(500); } if (dist<50) { Serial.print(dist); Serial.println('Object Alert'); digitalWrite(Buzz,HIGH); for (int i=dist; i>0; i--) gecikme (10); digitalWrite (Buzz, DÜŞÜK); için (int i = dist; i> 0; i--) gecikme (10); } //Serial.print('dist= '); //Serial.println(dist); //Serial.print('Similar_count= '); //Serial.println(similar_count); //Serial.print('Intens= '); //Serial.println(Intens); }

8. Adım: Test Etme

Kodu anladığımız, mikro denetleyiciye yüklediğimiz ve donanımı da monte ettiğimiz için, şimdi projemizi test etme zamanı. Test etmeden önce, bağlantıların doğru yapıldığından emin olun ve Dijital Çoklu Metre'yi kullanarak devrenin sürekliliğini doğrulayın. Çevirmek için AÇIK her iki devre de 9V pil kullanır. Test ettiğiniz yüzeye bir nesne yerleştirin ve Ultrasonik sensörü önüne doğru hareket ettirin ve sensör nesneye yaklaştıkça zil sesinin arttığı fark edilir. LDR karanlıkta ise veya güneş ışığında test yapıyorsanız iki olasılık vardır, zil sesi biplemeye başlayacaktır. RF vericideki basma düğmesine basılırsa, sesli uyarı uzun bir süre bip sesi çıkaracaktır. Sesli uyarı uzun süre bip sesi çıkarmaya devam ederse, alarmın yanlış şekilde tetiklendiği anlamına gelir. Bu tür bir hatayla karşılaşıyorsanız, Arduino IDE'nin seri monitörünü açın ve bu tür bir soruna neden olan parametreleri kontrol edin.

Donanımı Test Etme (Resim İzniyle: Devre Özeti)

Bu, Arduino'yu kullanan kör insanlar için akıllı bir çubuk yapmanın en basit yoluydu. Yukarıda belirtilen tüm adımları izleyin ve projenin başarılı bir şekilde test edilmesinden sonra engelli bir kişi arayın ve hayatını kolaylaştırmak için ona bu projeyi teklif edin.