web-sitesi : www.inovasyonmuhendislik.com www.evarobot.com satış : satis@inovasyonmuhendislik.com teknik destek : destek@inovasyonmuhendislik.com tel : +90 222 2290710 IM-SMO20 ultrasonik mesafe sensörü 2 cm ile 5 m aralığında temassız ve yüksek doğruluğa sahip mesafe ölçümü yapılmasını sağlar. I/O bağlantı arayüzüne sahip elektronik devreler ile birlikte kullanılabilir. Yalnızca bir I/O bağlantısı gerektirir. Farklı düzeyde robotik uygulamalarında kullanıma uygundur. Sensörün çalışma mantığı 40 khz frekanslı sinyal dizisi yayınlanarak sinyalin aldığı yol süresi kadar çıkış sinyali üretmesidir. Çıkış sinyalinin genişliği ölçülerek mesafe hesaplaması yapılır. Özellikler Menzil : 2cm - 500cm Hassasiyet : < 2cm Güç LED göstergesi Tek I/O pini üzerinden iki yönlü iletim, 5V TTL veya 3.3V CMOS Haberleşme: Positif TTL tetik sinyali Çalışma sıcaklığı : 0-70 C Minimum Tetik Sinyali: 12us Boyut: 30 mm x 60 mm x 18 mm Ağırlık : 14,3 g Besleme Gerilimi : +5VDC Maksimum Çalışma Akımı : 52 ma 1
web-sitesi : www.inovasyonmuhendislik.com www.evarobot.com satış : satis@inovasyonmuhendislik.com teknik destek : destek@inovasyonmuhendislik.com tel : +90 222 2290710 Bağlantı Diyagramı IM-SMO20 bağlantısı üçlü erkek PCB pim ile yapılır. Pimler doğrudan deneysel devre (breadboard) üzerine veya standart üçlü uzatma kablolarına takılabilir. GND +5VDC SIG Toprak bağlantısı Güç bağlantısı Sinyal giriş/çıkış Boyutlar 2
Mesafe Hesaplama IM-SMO20 sensörü yankı çıkışı ultrasonik sinyalin uçuş süresidir. Uçuş süresinden mesafe hesaplamak için aşağıdaki formül kullanılır. Farklı birimlerde girdi ve çıktı kullanmak için formül üzerinde sadeleştirme yapılabilir. Formülde sıcaklık değeri yerine uygulamaya bağlı olarak kullanılan sıcaklık sensörü verisi yazılır ise ölçüm doğruluğu artar. : metre cinsinden mesafe Haberleşme : saniye cinsinden uçuş süresi ºC cinsinden ortam sıcaklığı IM-SMO20 bağlı olduğu cihazdan tetik sinyali alarak kısa süreli sinyallerden oluşan bir dizi üretir. Sinyal dizisi havada yol alarak bir cisme çarpar ve geri döner. Sinyal dizisinin yol aldığı süre yankı çıkışı olarak verilir. Host SONARSENS ultrasonik sensör Tetik Sinyali Süresi Minimum Yankı Süresi Maksimum Yankı Süresi Pals Dizisi Süresi ı ı 3
Uygulamalar Arduino Uno ile yapılan uygulamada 100 milisaniyelik periyotlar ile IM-SMO20 ultrasonik mesafe sensörü okunur. Okunan değerler Arduino geliştirme kartının bağlı olduğu seri port üzerinden gönderilir. /* SONARSENS Ultrasonik Mesafe Sensörü Uygulaması SONARSENS kullanılarak yapılan mesafe ölçümleri 100 milisaniyelik periyot ile mm cinsinden değer olarak seri porttan gönderilir. Donanım Bağlantısı: - SONARSENS GND pini Arduino UNO GND pinlerinden birine bağlanır. - SONARSENS +5VDC pini Arduino UNO 5V pinine bağlanır. - SONARSENS SIG pini Arduino UNO 2. dijital pinine bağlanır. v1.0-19.08.2015 Veli Bayar */ // SONARSENS SIG pin baglantisi 2.digital pine ayarlanıyor. const int sonarsenspin = 2; void setup() { // seri port başlatılıyor. Serial.begin(9600); } void loop() { // yankı sinyali için uçuş süresi ve hesaplanacak engel mesafesi // tanımlanıyor. long ucussuresi, engelmesafesi; 4
// sensör minimum 12 us pozitif sinyal ile tetikleniyor. // Tetik sinyalinin düzgün elde edilmesi için 5 us lik kısa sürede // pin LOW olarak ayarlanıyor. // SIG pini çıkış olarak ayarlanıyor. pinmode(sonarsenspin, OUTPUT); // Tetik sinyali gönderiliyor. digitalwrite(sonarsenspin, LOW); delaymicroseconds(5); digitalwrite(sonarsenspin, HIGH); delaymicroseconds(15); digitalwrite(sonarsenspin, LOW); // SIG pini dinleme moduna alınıyor. pinmode(sonarsenspin, INPUT); // Yankı sinyali geldiğinde uçuş süresi hesaplanıyor. ucussuresi = pulsein(sonarsenspin, HIGH); // uçuş süresi engel mesafesine dönüştürülüyor. engelmesafesi = mesafehesapla(ucussuresi); // Engel mesafesi seri port üzerinden gönderiliyor. Serial.print("Engel Mesafesi: "); Serial.print(engelMesafesi); Serial.print("mm"); Serial.println(); } // 100 ms periyot ile mesafe okuma tekrarlanıyor. delay(100); /* * mikrosaniye cinsinden uçuş mesafesi alınarak mm cinsinden mesafeye * dönüştürülüyor. */ long mesafehesapla(long ucussuresi) { // Ses hızı : 343,2 m/s dir. // Birim dönüşümü yapıldığında sinyalin aldığı her mm 2,914 us sürer. // Toplam uçuş süresi gidiş - geliş mesafesi toplamını verir. // Hedefe olan uzaklık için toplam uçuş süresinin yarısı ile //hesaplanır. return (ucussuresi / 2.914) / 2; } 5
Kaynaklar & İlgili Ürünler IM-SMO20 sensörü için geliştirilen çeşitli yazılımların linkleri aşağıda verilmektedir. Linux Sürücüsü - https://github.com/inomuh/evapi_modules/tree/eva50/module_sonar ROS paketi - https://github.com/inomuh/evapi_ros/tree/eva50/evarobot_sonar 6