yaratıcı arduino projeleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Görünüşte oldukça basit ancak kullanışlı bir sistemden bahsedeceğiz.
Aduino ile oluşturulmuş olan bir otopark sistemi.Sistemde giriş ve çıkışa izin veren bir adet servo motora bağlanılmış kol bulunuyor.Yine sistemde araçların giriş çıkışının sağlanması ve giriş çıkış kolunun kontrolü açısından giriş ve çıkışlarda butonlar bulunmakta.Otoparkta kaç adet araçlık yer olduğunu belirtmek açısından da 7segment display kullanılmış.


Gelelim kodlama kısmına

#include <Servo.h>
Servo myservo;  // servo motor tanımlanmıs

#define ServoM    12        //servo motor kontrol pini
#define Bright    11        
#define Exit      9         //çıkış butonu tanımlanmış
#define In        8         //Giriş butonu tanımlanmış

#define BarLow    177       //Bariyerin en düşük pozisyonu ayarlanmış
#define BarUp     95        //Bariyerin en yüksek pozisyonu ayarlanmış
#define CAPACITY  8         //Otopark kapasitesi belirlenmiş
#define INTEN     80        

//7segment display bacakları tanımlanmış
#define  segA  0
#define  segB  1
#define  segC  2
#define  segD  3
#define  segE  4
#define  segF  5
#define  segG  6

//0-9 arasındaki rakamların 7 segmente gönderilmesi için bir dizi tanımlanmış
byte segments[10] = {

  B00111111, //  0
  B00000110, //  1
  B01011011, //  2
  B01001111, //  3
  B01100110, //  4
  B01101101, //  5
  B01111101, //  6
  B00000111, //  7
  B01111111, //  8
  B01101111  //  9
};

void setup(){
  myservo.attach(ServoM);// tanımlanan servo kontrol pini ile 
servo değişkeni birleşt 

  pinMode(Exit, INPUT); // çıkış butonu pini input olarak ayarlandı
  pinMode(In, INPUT);   // Giriş butonu input olarak ayarlandı
  digitalWrite(Exit, HIGH);// pull up direnci ile kullanılacak
  digitalWrite(In, HIGH);  // pull up direnci ile kullanılacak
  pinMode(segA,OUTPUT);   //her bir 7segment display bacagına gidecek 
pin output oldu
  pinMode(segB,OUTPUT);
  pinMode(segC,OUTPUT);
  pinMode(segD,OUTPUT);
  pinMode(segE,OUTPUT);
  pinMode(segF,OUTPUT);
  pinMode(segG,OUTPUT);
  pinMode(Bright,OUTPUT);
  analogWrite(Bright,255*INTEN/100);//parlaklık ayarı yapıldı
  myservo.write(BarLow);//servo motor bariyerin en dusuk pozisyonuna 
kadar hareket etti
//  delay(1000);
}

int  Available= 9;// Otoparktaki boş alan bilgisi integer
 olarak ayarlandı

//================================================================
void loop(){
Display(Available); // otoparktaki boş alan sayısı diplaye yazdırıldı
if(digitalRead(In)==0)//giriş butonuna basıldımı
{
  if(Available != 0){//otoparkta boş alan var mı ?
    Available--;// boş alan var ise boş alan sayısını 1 azalt
    myservo.write(BarUp);//bariyeri aç
    delay(3000);//3 sn gecikme
    myservo.write(BarLow);//bariyeri kapat
    }
  }
if(digitalRead(Exit)==0)// çıkış butonuna basıldı mı?
{
  if(Available != CAPACITY){//boş alan sayısı toplam kapasiteye eşit mi?
    Available++;//değilse boş alan sayısını 1 arttır
    myservo.write(BarUp);//bariyeri kaldır
    delay(3000);//3 sn bekle
    myservo.write(BarLow);// bariyeri kapat
    }
  }
}


void Display(int number){// 7segment displaye deger yazdırma fonksiyonumuz
byte segs =  ~segments[number];//"~" ortak anot için kullanıldı

digitalWrite(segA, bitRead(segs, 0) );
digitalWrite(segB, bitRead(segs, 1) );
digitalWrite(segC, bitRead(segs, 2) );
digitalWrite(segD, bitRead(segs, 3) );
digitalWrite(segE, bitRead(segs, 4) );
digitalWrite(segF, bitRead(segs, 5) );
digitalWrite(segG, bitRead(segs, 6) );
}


Sistemde birkaç değişiklik yapılabilir.

Örneğin giiş çıkış butonları yerine yaklaşım sensörleri kullanılabilir.Yine otomobilin bariyer altında olup olmadığı kontrol edilmelidir.Aracın üstüne bariyerin kapanmasını istemeyiz nihayetinde :)



Arduino ve yaratıcılık bir araya gelince ortaya çok güzel fikirler yaratıcı ellerde karşımıza vücut bulmuş halde çıkıyor.Bunun en güzel örneklerinden biri de Baker Tweet


Nedir Baker Tweet?

Fırıncıları hedeflemiş yaratıcı bir uygulama.Üzerinde bulunan döner seçim yapısı ile fırıncının o anda fırından yeni çıkmış sıcak ürünlerini müsterilerine twitter aracılığı ile duyurmasını sağlıyor.Proje oldukça yaratıcı ve halihazırda birçok fırın sahibine ulaşmış vaziyette


Nasıl gerçekleştirilmiş bu Baker Tweet?

Yukarıda gördüğünüz üzere baker tweet arduino ile karşımıza çıkıyor.1 adet arduino ve bir adet ethernet shield bizi internet dünyasına bağlamaya yetiyor.Döner menü seçim tuşu cihaza bir hava kazandırmış bu kesin.

Standart olarak sunulan lcd kütüphanesi ile lcd nizi tasarlayabilirsiniz.Burada asıl olan meüyü tasarlamak ve kullanıcının tweet atmasına olanak sağlayacak kütüphaneyi oluşturmak.

Menü genel olarak fırıncının ürün listesini içermekte ve gerektiğinde fırıncının ürün listesini güncellemesine olanak tanımakta.Bunu yapmanın çeşitli yolları var.Gerek xml dosyaları gerekse menu üzerinden manul olarak sağlamak gibi.

Gelelim işin en ilgi çekici kısmına nasıl tweet attırırız?

Arduino bize twitter kütüphanesi olarak bunu sunmakta.Tek yapmanız gereken projenize onu import etmek yani kütüphane olarak eklemek.Sonrasında fonksiyonları kullarak tweet attırmak oldukça basit.

Gelin bu kütüphane yapılmış bir twitter uygulamasını inceleyelim isterseniz.

Tabiiki bir twitter hesabına ihtiyacımız var.Nasıl oluşturabileceğimizi biliyoruzdur.Sonrasında mobil cihazlara erişim izni yani token a ihtiyacımız var bunu alabilmek için burayı ziyaret edebilirsiniz.

Gelelim basit uygulamamıza



#include <SPI.h>


#include <Ethernet.h>


#include <Twitter.h>



// Alter IP address to suit your own network!


byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // ethernet shield için mac adresi oluşturuyoruz


byte ip[] = { 192, 168, 0, 99}; // internet erişimi için ir ip adersi belirliyoruz


Twitter twitter("token bilginiz"); // twitterdan aldığınız mobil cihaz erişim tokenımızı buraya yazıyoruz



void setup()


{


delay(5000);


Ethernet.begin(mac, ip);// mac adresimiz ve ip miz ile bir socket açıyor ve internete bağlanıyoruz


Serial.begin(9600);


}



void tweet(char msg[])// tweet oluşturma fonksiyonumuz 140 karakter iznimiz var


{


Serial.println("connecting ...");


if (twitter.post(msg))// twittera mesajımızı gönderiyoruz ve cevabını bekliyoruz


{


int status = twitter.wait();// twitterdan gelecek olan cevap bekleniyor


if (status == 200)// Mesajımız tweet lendi.


{


Serial.println("OK.");


}


else// twitterdan olumsuz cevap geldi.Mesaj gitmedi


{


Serial.print("failed : code ");


Serial.println(status);


}


}


else// twitterdan mesajımızın akıbetine dair bir geri dönüş olmadı bağlantı hatası var


{


Serial.println("connection failed.");


}


}



void loop()


{


delay(1000);


tweet("Arduinom tweet attı :)");// yollamak istediğimiz mesaj


do{} while(1>0); // endless loop


}
ELEKTRO BLOGGER A HOŞGELDINIZ

ARAMA YAP

EN COK OKUNANLAR

- Copyright © ELEKTRO-BLOGGER Blogger