Bu yazıda bluetooth üzerinden Android  işetim sistemli bir telefonla basit bir robot arabayı nasıl kontrol edeceğimizi  anlatıyoruz.  İleri – geri ve sola – sağa  ivme eğim açısını  derece bazında ölçer, ardunioya gönderilen motor hızını ve motor  yönünü hesaplamak için telefonu kullanır .
Adım 1: Malzemelerin Toplamanması

2

43

5678910

 

1112

Kartlar

  • Arduino Uno
  •  L298N Çift H Köprü Motor Denetleyici  (Burada kullanılan farklı kırmızı bir versiyondur)
  • HC-06 Bluetooth Modülü

Elektronik
-2x 300 RPM dişli 12v motorlar
-12v 1.3Ah Kurşun Asit Piller (motorlar yaklaşık 0.4 Ah çizer ve motor sürücü  küçük bir miktarını kullanır)
-Arduino teller
-Arduinodan sıradan 9v pile konnektör
-Pili motor sürücüsüne bağlamak için elektrik telleri ve örs
-Ardunio ile bilgisayarı bağlamak için A tip erkek /B tip  erkek USB kablosu

 

Donanım
4 x 50mm döner kauçuk tekerlek
2x Lynxmotion HUB-02 Universal Hub 6mm
10mm ve 6mm kalınlığında akrilik plastik  (Daire testere veya lazer kesici ile kesilmiş)

Yazılım
Android studio ve  Arduino ide yazılımları  indirin.

Telefon
Öncelikle güncel Android 5 veya benzeri bir telefon gereklidir.  (Samsung S5360 Galaxy Y Android’in eski sürümünü kullandığı için  usb üzerinden bağlantı sorunları yaşar ve uygulamayı çalıştırmaz. Motorola moto e,  Android 5 ile çok iyi çalışır.)  Android Studio’da build.grade,  eski sürümlerinde de çalışabilir durumda  oldugu halde muhtemelen sorun çıkarır. Güncel ivmeölçer ve bluetooth kütüphaneleri kullanılmalıdır.

Adım 2: Kutunun Montajı

13

14

1516

 

Kutuyu  satın alabilirsiniz  ya da herhangi bir malzemeden yapabilirsiniz. Biz 22 cm uzunluğunda ve 17 cm genişliğinde bir tane kullandık (Bkz Resim).

Motorlar
İki motorun tahrik miliyle birleştirilip kutunun dışına yapıştırılması gerekir, tırtıl vida kullanarak merkezleri birleştirmelisiniz.

Ön Tekerlekler
Lastik tekerleklere iki tane delik delip onları merkezlerinden vidalayın.
Arka Tekerlekler
Tekerlekleri sadece kendi döner plakasından sökelebilirsiniz  ve kutusuna deliğinden tekrar bağlayabilirsiniz.

Adım 3: Kablolama

17
Arduino’ya programları yüklerken bluetooth modülü takıldığında sorun  çıkabilir, 0 ve 1 pimleri RX ve TX’tir. Bunun nedeniyse,  RX ve TX ana iletişim portlarıdır ayrıca USB üzerinden bilgisayarla konuşmayı sağlarlar. Bu durum, farklı pimler gerekeceği  anlamına gelir. 10 ve 11 pimlerinin haberleşme portu olacağını,  serileştirilebilir yazılım kütüphanesine bildirmesi için ardunio kodu eklememiz gerekir.

Motor sürücüsü için ayrı bir güç kaynağı gerekmez, 12 V 1.3 Ah pil hem ona hem motorlara yetecek güçtedir.
Motor sürücüsünün yalnızca bir tane toprak soketi  vardır  bu yüzden pil ile  arduino toprak bağlantısını paylaşmak zorundadır.

Motor sürücüsündeki ENA / 5V ve ENB / 5V pimleri bazen jumperlar tarafından karşılanmaktadır. Ardunio ENA ve ENB pimlerine eklenmeden önce bu jumperların kaldırılması gerekir. Hiçbirinin iki adet 5V’luk  pime birden bağlanması  gerekmez.
Adım 4: Ardunio Kod

18
Kod :

// USB üzerinden bilgisayara takılı iken  arduniodan gönderilen  ("") Serial.println mesajlarını  görüp ayıklamak için Arduino Seri Monitorünü kullanmalısınız.

#include SoftwareSerial

mySerial(10, 11); // RX, TX

int led = 13;

char myChar = 'a';

String string;

char LorR;

int enA = 3;

int in1 = 4;

int in2 = 5;

int enB = 6;

int in3 = 7;

int in4 = 8;

void setup()

{

//Seri iletişimi açın ve portun  açılması için bekleyin

Serial.begin(57600);

pinMode(led, OUTPUT);

Serial.println("Goodnight moon!");

// SoftwareSerial portu  için veri hızını ayarlamak

mySerial.begin(9600);

mySerial.println("Hello, world?");

pinMode(enA, OUTPUT);

pinMode(in1, OUTPUT);

pinMode(in2, OUTPUT);

pinMode(enB, OUTPUT);

pinMode(in3, OUTPUT);

pinMode(in4, OUTPUT);

}

void loop() // run over and over

{

string = "";

//Add to string

while(true){

myChar=mySerial.read();

if(32<=myChar && myChar<=127){

string += myChar;

}

if (myChar==':'){

break;

}

delay(10);

}// While End

//Analyse string

if (string !="off:" && string !="on:"){

if (string != "L0:" && string != "R0:") {

//code for setting motor left or right

if (string[0]=='L'){

LorR= 'L';

}else {

LorR= 'R';

}

string.remove(0, 1);

//code for putting it in reverse

if (string[0]=='-'){

string.remove(0, 1);

string.remove((string.length()-1), 1);

Serial.println(string);

if (LorR== 'L'){

digitalWrite(in1, HIGH);

digitalWrite(in2, LOW);

analogWrite(enA, string.toInt());

} else{

digitalWrite(in3, LOW);

digitalWrite(in4, HIGH);

analogWrite(enB, string.toInt());

}

} else {

string.remove((string.length()-1), 1);

Serial.println(string);

if (LorR== 'L'){

digitalWrite(in1, LOW);

digitalWrite(in2, HIGH);

analogWrite(enA, string.toInt());

} else{

digitalWrite(in3, HIGH);

digitalWrite(in4, LOW);

analogWrite(enB, string.toInt());

}

}

} else {

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

}

}//End of long if statment

if(string == "on:"){

digitalWrite(led, HIGH);

}

if(string =="off:"){

digitalWrite(led, LOW);

}

}//Loop End

Adım 5: Android Kod

 

19

2021

Klasörü gözden geçirin ya da winzip ile açın daha sonra  Android Studio içine taşıyın. Daha sonra çalıştırabilir ve uygulama olarak telefona yükleyebilirsiniz. Zip dosyasını da buradan indirebilirsiniz:
http://benalper.co.uk/ardunio.php
Anahtar dosyalar şunlardır:
Eşleşmiş Cihazların Aktivasyonu :
deviceList.java

activity_device_list.xml

LED ve Hareket Kontrol Aktivitesi :
ledControl.java

activity_led_control.xml

Manifest:

AndroidManifest.xml
Cihaz Listesini  etkinleştirmek  için kullanılabilir bluetooth cihazlarını gösterir. Bir kez bağlandığında LED ve Hareket Kontrolünün etkinleşmesini sağlar.
Led düğmelerin Arduino’ya ‘aç:’ – ‘kapa’ mesajı göndermesi pimlerdeki 13 adet  LED’in  açık-kapalı anahtarlarıyla sağlanmıştır.

Hareket kontrolü; telefonun ivmeölçerinin x ve y algılayıcısından gelen verileri  alır. Her zaman bir ölçü değişimi vardır ve sol- sağ motorlar için 0 ile 255 arasında hızı ve yönü hesaplayabilmek için bunu kullanır. Bu değişim  ‘L-255:’ veya ‘R100’ vb. formatta arduinoya gönderilir. Arduino kodu bu mesajı sol motor için ENA, sağ motor için ENB’ye hız göndermek için kullanır ve IN1 ve IN2 polaritesinin değişikliğiyle sol motor için IN3 veya sağ motor için IN4’ün  yönü değişir.

Kodları indirebilirsiniz:

LED2

 

Çalışma Videosu :

 

 

Kaynak: http://www.instructables.com/id/Arduino-Android-Bluetooth-Car/

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz