MBlock ile Basit Araba Uygulaması
Merhaba,
Hareketli araçlar sanayi devriminden beri hayatımızın içinde olan bir teknoloji. Bunu daha iyisi ise kendi kenidini kontrol edilen arabalar.
Motorlar bir cismi hareket ettirmenin en etkili yollarından biri olmakla birlikte kontrollü bir harekete izin vermektedir.
Bunlardan biriside standart dc motorlardır. 5v-12v bir gerilim ile çalışan mini motor en popülerlerindendir.
Ne Yapacağız:
Arduino Uno ile BreadBoard üzerine L298Shield’dan oluşan bir devre kuracğız.
Kullanacağmız farklı blokları tanıyacağız.
Araç hareketlerini gözlemleyeceğiz.
Gerekli Malzemeler:
1 Adet Arduino Uno.
1 Adet Breadboard.
1 Adet L298shield motor kontrolcüsü.
11 Adet iki ucu erkek jumper kablo.
4 Adet bir ucu erkek bir ucu dişi jumper kablo.
2 Adet 9V pil ve pil yatağı.
Gerekli Araçlar:
Mblock
3DRoboLab Türkçe bloklar.
MBlock uygulamasına 3DRoboLab Türkçe bloklar uzantısı ekleme.
Programı çalıştırıp üst kısımdaki araç çubuğundan uzantılar ikonuna tıklıyoruz.
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.
Devremizin Kurulumuna Geçebiliriz.
Arduino Uno ve BreadBoard devresinin kurulması;
Öncelikle Arduino Uno’nun GND pinine ilk bataryamızın eksi ucunu bağlıyoruz ardından artı ucunu Vin pinimize takıyoruz. L298 motor sürücü shieldımızın 12v girişine diğer bataryamızın artı ucunu bağlıyoruz, eksi ucunu ise
çoğaltmak amacıyla breadboarda bağlıyoruz. Breadboarddaki çoğalttığımız eksi ucun birini shieldımın GND ucuna bağlıyoruz. Ardından motor kontrol pinlerimiz olacak olan d11 pinimizi in1 pinine, d10 pinini in2 pinine, d9 pinini in3 pinine ve d6 pinini in4 pinine takıyoruz.
Motor bağlantı pinlerini motorlara sırası ile bağlıyoruz ve mBlock programlama bölümümüze geçiyoruz.
Şimdi kullanacağımız blokları tanıyalım.
Sürekli tekrarla cihazımız elektrik aldığı sürece çalışmaya devam edeceğini belirtir. Güç bağlantısı kesilene kadar veya farklı bir program yükleninceye kadar işlemine devam eder.
yön değişkeni oluşturma. Aracımızın gideceği yönü rastgele olarak belirlemek için oluşturduğumuz bir sayı. Aracımızın belirlenen sayıya göre gideceği yönü belirlemesine yardımcı olur.
Bekleme bloğu aracımızdaki pinlere sinyal gittiği süreden sonra belirli bir süre boyunca aynı işlemi devam ettirmesini istediğimiz için tekrar yön belirlenene kadar,
aynı işi devam ettirmemiz için cihazı bekleten yardımcı blok.
Sayısal pin çıkışı belirleme bloğu elektrik vericeğimiz pinlerin aktiflik durumunu belirlememizi sağlayan sayısal bloklardır. Yüksek durumunda iken elektrik sağlar. Motorun pinlerinden birisi yüksek diğeri düşük ise motor hareket sağlar.
Bu özellikten yararlanarak aracımızın ileri geri sağa yada sola gitmesini sağlıyoruz.
#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 __var__121_246_110; void setup(){ pinMode(11,OUTPUT); pinMode(10,OUTPUT); pinMode(9,OUTPUT); pinMode(6,OUTPUT); } void loop(){ __var__121_246_110 = random(1,(5)+1); _delay(2); if(((__var__121_246_110)==(1))){ digitalWrite(11,1); digitalWrite(10,0); digitalWrite(9,1); digitalWrite(6,0); } if(((__var__121_246_110)==(2))){ digitalWrite(11,0); digitalWrite(10,1); digitalWrite(9,0); digitalWrite(6,1); } if(((__var__121_246_110)==(3))){ digitalWrite(11,1); digitalWrite(10,0); digitalWrite(9,0); digitalWrite(6,0); } if(((__var__121_246_110)==(4))){ digitalWrite(11,0); digitalWrite(10,0); digitalWrite(9,1); digitalWrite(6,0); } if(((__var__121_246_110)==(5))){ digitalWrite(11,0); digitalWrite(10,0); digitalWrite(9,0); digitalWrite(6,0); } _loop(); } void _delay(float seconds){ long endTime = millis() + seconds * 1000; while(millis() < endTime)_loop(); } void _loop(){ }
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.
İyi Eğlenceler…