Mblock ve 3DRobolab Mobil Uygulaması ile Sensörlerin Kullanımı
Ne yapacağız?
Arduino Uno ile Bread board üzerine potansiyometre, buton, ışık sensörü ve sıcaklık sensörlerinden oluşan bir devre kuracağız.
Kullanacağımız blokları tanıyacağız.
Potansiyometre, buton, ışık sensörü ve sıcaklık sensörü değerlerini okumak için gerekli olan algoritmayı kuracağız.
Potansiyometre, buton, ışık sensörü ve sıcaklık sensörü değerlerinin nasıl değiştiğini gözlemleyeceğiz.
Gerekli malzemeler:
1 Adet Arduino Uno
1 Adet BreadBoard
1 Adet Potansiyometre
1 Adet Buton
1 Adet Işık Sensörü
1 Adet Sıcaklık Sensörü
1 Adet Bluetooth Modülü
22 Adet iki ucu erkek jumper kablo
Gerekli Araçlar:
Mblock
3DRoboLab Türkçe bloklar.
3DRoboLab Mobil Uygulaması.
MBlock uygulamasına 3DRoboLab Türkçe bloklar uzantısı ekleme.
Daha sonra açılan pencereden Uzantıları Yönet ikonuna tıklıyoruz.
Açılan Pencerenin Arama bölümüne 3DRoboLab yazıyoruz.
Daha sonra 3DRoboLab adlı uzantıyı indirip, Uzantı ekle ikonuna tıklıyoruz ve 3DRoboLab Türkçe Bloklar MBlock kütüphanenize eklenmiş oluyor.
basit uygulamalar için hazırlamış olduğumuz kodların çalışmasında herhangi ek bir işlem yapmanıza gerek yoktur.
MBlock Programı üzerinden Arduino kartına bağlanma.
Programı çalıştırıp üst kısımdaki araç çubuğundan Kartlar ikonuna tıklıyoruz.
Daha sonra açılan pencereden kullandığımız kartı seçiyoruz.
Kartı seçtikten sonra gene araç çubuğu üzerinde bulunan Bağlan ikonuna tıklıyoruz.
Karşımıza çıkan pencerede seri port’un üzerine geliyoruz ve yan tarafta bağlı COM’lar çıkıyor. Arduino kartı hangi COM’da bağlıysa o COM’u seçiyoruz ve program üzerinden karta bağlanmış oluyoruz.
Şimdi Devremizin kurulumuna geçebiliriz.
Arduino Uno ve BreadBoard devresinin kurulması
Bluetooth bağlantısı:
- Gnd pinini arduinonun Gnd pinine,
- Vcc (5V) pinini arduinonun 5V pinine,
- RXD pinini arduinonun 0 (RX) numaralı pinine,
- TXD pinini arduinonun 1 (TX) numaralı pinine bağlıyoruz.
Butonun bağlantısı
- Butonu şekilde göründüğü gibi devre tahtasına bağlıyoruz
- Sol alt bacağını Vcc (5V) hattına bağlıyoruz.
- Sağ alt bacağını araya direnç ekleyerek 8 numaralı pine bağlıyoruz.
Potansiyometre Bağlantısı
- Potansiyometreyi şekilde göründüğü gibi devre tahtasına bağlıyoruz.
- Sol bacağını GND(toprak) hattına bağlıyoruz.
- Orta bacağını A0 numaralı pine bağlıyoruz.
- Sağ bacağını Vcc (5V) hattına bağlıyoruz.
Sıcaklık Sensörü Bağlantısı
- Sıcaklık Sensörünü şekilde göründüğü gibi devre tahtasına bağlıyoruz.
- Sol bacağını GND(toprak) hattına bağlıyoruz.
- Orta bacağını A1 numaralı pine bağlıyoruz.
- Sağ bacağını Vcc (5V) hattına bağlıyoruz.
Işık Sensörü Bağlantısı
- Işık Sensörünü şekilde göründüğü gibi devre tahtasına bağlıyoruz
- Sol bacağını Vcc (5V) hattına bağlıyoruz.
- Sağ bacağını araya direnç ekleyerek A2 pinine bağlıyoruz.
Ultrasonik Sensör Bağlantısı
- Ultrasonik sensörü şekilde göründüğü gibi devre tahtasına bağlıyoruz
- GND pinini GND(toprak) hattına bağlıyoruz.
- Echo pinini arduinonun A3 pinine bağlıyoruz.
- Trig pinini arduinonun A4 pinine bağlıyoruz.
- Vcc (5V) pinini Vcc (5V) hattına bağlıyoruz.
Artık devremiz hazır ve kodlamaya geçebiliriz.
Robolab mobil uygulamamızdan Bluetooth bağlantısını kurup Sensörler sayfamızı açalım
Mobil uygulamayi tablet/telefonunuza kurup açtığımızda karsınıza gelen ekrandan Bluetooth cihazımızı seçip bağlana dokunuyoruz.
Bluetooth bağlantısını sağladıktan sonra sol üst köşede bulunan menü butonumuza tıklıyoruz ve listeden Sensörler’e dokunarak Sensörler sayfasını açalım.
,serif; color: #666666; background: white;”>Sensörler sayfamızda Bluetooth üzerinden gelen veriler okunur. Gelen verinin ne olduğunu anlamak için ilk karakterine bakılır. İlk karakter P ise gelen veri potansiyometre, S ise gelen veri sıcaklık, M ise gelen veri mesafe, L ise gelen veri ışık, B ise gelen veri butona aittir. İkinci karakter ise sensörün numarasını belirtir, sonraki karakterler de sensörlerin değeri olarak alınır. Örnek: P140: Birinci potansiyometrenin değer 40, L225: İkinci ışık sensörünün değeri 25, S119: Birinci sıcaklık sensörünün değeri 19, B30: Üçüncü butonun değeri 0 anlamına gelir.
Arduino programını kodlayalım
Serial BaudRate bloğunu bir iletişim bağlantısında verinin ne kadar hızlı aktarıldığını tanımlar.
Bluetooth veri aktarma hızı 57600 olduğu için haberleşme hızımızı 57600 olarak ayarladık.
A0 pinine bağladığımız potansiyometreden okuduğumuz değeri “Potansiyometre” değişkenimize aktardık.
Potansiyometre değeri 0-1023 arasındadır. Bu 0-1023 arası değeri 0-100 arası değere çevirdik.
0-100 arası değere çevirdiğimiz potansiyometre değerini, Mobil uygulamanın bu değerin potansiyometre değeri olduğunu anlaması için başına P1 kodunu ekleyip bluetooth üzerinden mobil uygulamamıza gönderdik.
0,1 saniyelik bekleme süresi ekledik.
A1 pinine bağladığımız Sıcaklık sensöründen okuduğumuz değeri “Sicaklik” değişkenimize aktardık.
Mobil uygulamanın bu değerin sıcaklık değeri olduğunu anlaması için başına S1 kodunu ekleyip bluetooth üzerinden mobil uygulamamıza gönderdik.
0,1 saniyelik bekleme süresi ekledik.
A2 pinine bağladığımız ışık sensöründen okuduğumuz değeri “isik” değişkenimize aktardık.
Mobil uygulamanın bu değerin ışık değeri olduğunu anlaması için başına L1 kodunu ekleyip bluetooth üzerinden mobil uygulamamıza gönderdik.
0,1 saniyelik bekleme süresi ekledik.
8 numaralı pine bağladığımız butondan okuduğumuz değeri “buton” değişkenimize aktardık.
Mobil uygulamanın bu değerin buton değeri olduğunu anlaması için başına B1 kodunu ekleyip bluetooth üzerinden mobil uygulamamıza gönderdik.
0,1 saniyelik bekleme süresi ekledik.
A3 ve A4 numaralı pinlere bağladığımız ultrasonik sensörden okuduğumuz değeri “Mesafe” değişkenimize aktardık.
Mobil uygulamanın bu değerin mesafe değeri olduğunu anlaması için başına M1 kodunu ekleyip bluetooth üzerinden mobil uygulamamıza gönderdik.
Programın her tekrardan sonra kısa bir süre beklemesi için program sonuna 0.1 saniyelik bekleme süresi ekledik.
Yazdığımız kodlar Arduinonun anlayacağı dile çevrilir. Ardından Arduino kartına yazılır.
Bu programı Arduinoya yüklediğimizde mobil uygulamamızın “Sensörler” sayfasında Potansiyometre değerini gözlemleyebiliriz.
Hazırladığımız kod bloklarının Arduinonun anlayacağı dile (C/C++) çevriliyor. Kodları yüklemek için Arduino’ya yükle butonuna tıklamanız yeterlidir.
Kodlar derlendikten sonra Arduino’ya 30-50 sn. arasında yüklenmiş olacaktır.
Mobil uygulama “Sensörler” Ekranından Potansiyometre, sıcaklık, ışık, buton, mesafe değerlerini takip edebilirsiniz.
#include <Arduino.h> #include <Wire.h> #include <SoftwareSerial.h> /* 3D Robotic Laboratory: www.3drobolab.com */ double angle_rad = PI/180.0; double angle_deg = 180.0/PI; double Potansiyometre; double Sicaklik; double isik; double buton; double Mesafe; float getDistance(int trig,int echo){ pinMode(trig,OUTPUT); digitalWrite(trig,LOW); delayMicroseconds(2); digitalWrite(trig,HIGH); delayMicroseconds(10); digitalWrite(trig,LOW); pinMode(echo, INPUT); return pulseIn(echo,HIGH,30000)/58.0; } void setup(){ Serial.begin(57600); pinMode(A0+0,INPUT); pinMode(A0+1,INPUT); pinMode(A0+2,INPUT); pinMode(8,INPUT); } void loop(){ Potansiyometre = analogRead(A0+0); Potansiyometre = ((Potansiyometre) / (1023)) * (100); Serial.println(String("P1")+String(Potansiyometre).toInt()); _delay(0.1); Sicaklik = (500.0*analogRead(A0+1)/1024.0); Serial.println(String("S1")+String(Sicaklik).toInt()); _delay(0.1); isik = (100.0-100.0*analogRead(A0+2)/1024.0); Serial.println(String("L1")+String(isik).toInt()); _delay(0.1); buton = (1-digitalRead(8)); Serial.println(String("B1")+String(buton).toInt()); _delay(0.1); Mesafe = getDistance(4,3); Serial.println(String("M1")+String(Mesafe).toInt()); _delay(0.1); _loop(); } void _delay(float seconds){ long endTime = millis() + seconds * 1000; while(millis() < endTime)_loop(); } void _loop(){ }
İyi Eğlenceler…