Tasarım
OKUDUĞUNUZ KONU
Arduino Telefon Kontrollü Tekne Yapımı
0

Arduino Telefon Kontrollü Tekne Yapımı

Yazar : Murat Duran24 Şubat 2018
Projeyi Satın Al
Bu projeyi kurulu çalışır halde yada isterseniz demonte halde satın alabilirsiniz.Proje ile birlikle yapım aşaması resimleri bağlantı şemaları ve kodları açık kaynak olarak gönderilir. "Satın Almak İçin Yukarıda Butona Basınız"

Arduino ile telefon kontrollü tekne yapımı nasıl olur bu projemizde bahsedeceğiz , projemiz daha öncelerde yaptığımız telefon kontrollü araba yapımına benzerlik göstermektedir.Projemizi kolay temin edebileceğiniz basit malzemelerden yapmaya çalıştık ki sizlerde evlerinizde kolay bir şekilde yapabilesiniz.

Tekne tasarımında düz taban kullandık nedeni sadece suda değil belirli bir süre karada da gidebilsin diye.Karadan suya indirmek için en mantıklı tasarım bu gibi göründü.Şimdi projemizin yapımına geçiyoruz.

Malzemeler

Öncelikle polietilen levhanızı temin edip kafanıza göre hazırlayacağınız bir basit tekne tasarımı yapmanız gerekmektedir.Bizim tasarımımız aşağıdaki resimlerde görüldüğü gibi düz tabanlı bir tasarım siz farklı tasarımlar yapabilirsiniz.

Projenin kuruluş halindeki resimleri , teknenizi kurduktan sonra tüm köşeleri sıcak silikon ile iyice birleştiriniz , aksi halde tene içerisine su alıp batacaktır.

Projenin bağlantı şeması aşağıdaki gibidir , şemada kolay anlaşılması için breadboard üzerinde gösterilmiştir biz kendimiz pertinaks üzerine devre kurduk sizde şemaya göre devrenizi kurabilirsiniz.Yada şemadaki gibi beadboard ile yapabilirsiniz.

Tekne ilerlerken su sıçrattığı için tekne içerisine su girmektedir bu yüzden elektronik devrenizi poşet içerisine su geçirmez şekilde koyarsanız iyi olur.

Çalışma Videosu

Telefon kontrol programı : https://play.google.com/store/apps/details?id=braulio.calle.bluetoothRCcontroller&hl=tr

Tekne Kodları

// Proje Hocam - www.projehocam.com
// Android Kontrollü Tekne Programı
#include <Servo.h>
Servo myservo;
char dataIn = 'S';    // Durma fonksiyonu için karakter 
int pinileri = 10;     //İleri sürüş için kontrol pini
int pingeri = 11;      //Geri sürüş için kontrol pini
int pinsol = 9;       //Sola sürüş için kontrol pini
int pinsag = 8;       //Sağa sürüş için kontrol pini
int pinpwm1 = 6;
int pinpwm2 = 5;
int far=13;            //Araba far
char determinant;         //Program döngüsü için karakter
char det;                 //Program döngüsü için karakter

void setup() 
{       
Serial.begin(9600);        //HC-07 bluetooth modülü için btu 9600
pinMode(pinileri, OUTPUT);
pinMode(pingeri, OUTPUT);
pinMode(pinsol, OUTPUT);
pinMode(pinsag, OUTPUT);
pinMode(pinpwm1, OUTPUT);
pinMode(pinpwm2, OUTPUT);
pinMode(far,OUTPUT);

}

void loop()
{  digitalWrite(pinpwm1,HIGH);
digitalWrite(pinpwm2,HIGH); 

    det = check();
      while (det == 'F')   //Telefondaki programda atanmış olan ileri sürüş butonunun harf eşdeğeri 
      {     
            digitalWrite(pinileri, LOW); 
          digitalWrite(pingeri, HIGH);   
         digitalWrite(pinsag, LOW);         
           digitalWrite(pinsol, HIGH); 
          det = check();          
      }  
      while (det == 'B')   //Telefondaki programda atanmış olan geri sürüş butonunun harf eşdeğeri 
      {    
           
    
    digitalWrite(pinileri, HIGH); 
          digitalWrite(pingeri, LOW);   
         digitalWrite(pinsag, HIGH);         
           digitalWrite(pinsol, LOW);        
          det = check();          
      } 

      while (det == 'L')   //Telefondaki programda atanmış olan sola dönüş butonunun harf eşdeğeri 
      {     
          digitalWrite(pinsol, HIGH); 
          digitalWrite(pinileri, HIGH); 

          det = check();          
      }  
      while (det == 'R')  //Telefondaki programda atanmış olan sağa butonunun harf eşdeğeri 
      {    
          digitalWrite(pinsag, HIGH);  
             digitalWrite(pingeri, HIGH);    
       
          det = check();          
      }
      while (det == 'G')  //Telefondaki programda atanmış olan sağa butonunun harf eşdeğeri 
      {    
          digitalWrite(pinileri, HIGH);     
          digitalWrite(pinsol, HIGH);       
          det = check();          
      }
      while (det == 'I')  //Telefondaki programda atanmış olan sağa butonunun harf eşdeğeri 
      {    
        digitalWrite(pinileri, HIGH);    
        digitalWrite(pinsag, HIGH);         
          det = check();          
      }
      while (det == 'H')  //Telefondaki programda atanmış olan sağa butonunun harf eşdeğeri 
      {    
        digitalWrite(pingeri, HIGH);           
        digitalWrite(pinsol, HIGH);         
          det = check();          
      }
      while (det == 'J')  //Telefondaki programda atanmış olan sağa butonunun harf eşdeğeri 
      {    
        digitalWrite(pingeri, HIGH);           
        digitalWrite(pinsag, HIGH);         
          det = check();          
      }
       while (det == 'W')   // On Far
      {    
     digitalWrite(far,HIGH);
  
          det = check();          
      } 
       while (det == 'w')   // On Far
      {    
  digitalWrite(far,LOW);
  
          det = check();          
 } 
      while (det == 'S')   //Telefondaki programda atanmış olan durma fonksiyonun harf eşdeğeri 
      {
          digitalWrite(pinileri, LOW); 
          digitalWrite(pingeri, LOW);
          digitalWrite(pinsol, LOW); 
          digitalWrite(pinsag, LOW);      
          det = check(); 
      }
     
}

int check()
{
  if (Serial.available() > 0)    //Serial portun kontrollü
  {   
    dataIn = Serial.read();  //Telefondan gelen verilerin kontrollü
        if (dataIn == 'F')
        {     
          determinant = 'F';
        }  
        else if (dataIn == 'B')
        { 
          determinant = 'B'; 
        }
        else if (dataIn == 'L')  
        { 
          determinant = 'L';
        }
        else if (dataIn == 'R')  
        { 
          determinant = 'R';
        } 
        else if (dataIn == 'G')  
        { 
          determinant = 'G';
        } 
        else if (dataIn == 'I')  
        { 
          determinant = 'I';
        } 
        else if (dataIn == 'H')  
        { 
          determinant = 'H';
        } 
        else if (dataIn == 'J')  
        { 
          determinant = 'J';
        } 
        else if (dataIn == 'W')  
        { 
          determinant = 'W';
        } 
        else if (dataIn == 'w')  
        { 
          determinant = 'w'; 
        } 
        else if (dataIn == 'S') 
        {
          determinant = 'S';
        }
       
  }
return determinant;
}

SİZCE NASIL OLMUŞ?
Beğendim
91%
İlginç
9%
Eh İşte
0%
Anlamadım
5%
Kötü
0%
Berbat
0%
YAZAR HAKKINDA
Murat Duran
Murat Duran
Açık kaynak donanım ve yazılım geliştiricisiyim , mekanik ve robotik sistemler üzerinde çalışmalar yapmaktayım.Ayrıca bir start-up firması olan Proje Hocam 'ın kurucuyum.
YORUMLAR

YORUM YAP