Bilgisayar-Bilişim Teknolojileri
Ana Sayfa
Bilişim Teknolojileri Forumu Son Konuları
24 Saat
Bilişim Teknolojileri - Formatör - Bilgisayar Öğretmeni Kayıt
Kayıt Olun
iletişim
iletişim
Detaylı Arama
Arama

1Sheeld+ - Akıllı telefon ile çok yönlü Arduino Shield

Konu, 'Elektrik ve Elektronik' kısmında viper8 tarafından paylaşıldı.


Sayfayı Paylaş /bbnetsosyal

  1. her_dem

    her_dem Süper Üye Süper Üye

    Kayıt:
    19 Ekim 2009
    Mesajlar:
    2.334
    Beğeni:
    21
    50 dolarmış.
     
  2. her_dem

    her_dem Süper Üye Süper Üye

    Kayıt:
    19 Ekim 2009
    Mesajlar:
    2.334
    Beğeni:
    21
    Türkiye fiyatı da 400 lira.
     
  3. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    155
    Beğeni:
    78
    Proje: 4
    Düğmeye basarak telefonumuzun kamerasından fotoğraf çekme (Twitter hesabımızda paylaşma).
    Malzemeler:
    Arduino Kartı
    1Sheeld+
    Led
    Düğme
    10K Direnç
    Jumper Kablo
    [​IMG]

    Kod:

    Kod:
    #define CUSTOM_SETTINGS
    #define INCLUDE_CAMERA_SHIELD
    /* twitter hesabınız varsa çekilen fotonun paylaşılması için gerekli kütüphane */
    /* #define INCLUDE_TWITTER_SHIELD */
    
    /* 1Sheeld kütüphanesi projeye dahil ediliyor. */
    #include <OneSheeld.h>
    
    /* Düğmenin bağlı olduğu pin tanımlanıyor. */
    int buttonPin = 12;
    /* Ledin bağlı olduğu pin tanımlanıyor. */
    int ledPin = 13;
    
    void setup()
    {
      /* İletişim başlatılıyor. */
      OneSheeld.begin();
      /* Düğme pini giriş pini olarak tanımlanıyor. */
      pinMode(buttonPin,INPUT);
      /* Led pini çıkış pini olarak tanımlanıyor. */
      pinMode(ledPin,OUTPUT);
    }
    
    void loop()
    {
      /* Düğmenin durumu kontrol ediliyor. */
      if(digitalRead(buttonPin) == HIGH)
      {
        /* Düğmeye basılmışsa ledi yakıyoruz. */
        digitalWrite(ledPin,HIGH);
        /* Kameramızın flashını açıyoruz. */
        Camera.setFlash(ON);
        /* Arka kameradan fotoğraf çekiliyor. */
        Camera.rearCapture();
        /*10 saniye bekleniyor */
        OneSheeld.delay(10000);
        /* Twitter hesabımızda fotoğrafımız paylaşılıyor */
        /* Twitter.tweetLastPicture("Buraya başlık gelecek"); */
      }
      else
      {
        /* Düğmeye basılmamışsa ledi söndürüyoruz. */
        digitalWrite(ledPin,LOW);
      }
      
    }
    
     

    Ekli Dosyalar:

    Son düzenleme: 27 Ekim 2018
  4. mehmetkaya1980

    mehmetkaya1980 Seçkin Üye Seçkin Üye

    Kayıt:
    16 Eylül 2007
    Mesajlar:
    332
    Beğeni:
    24
  5. recepata

    recepata Seçkin Üye Seçkin Üye

    Kayıt:
    30 Aralık 2007
    Mesajlar:
    439
    Beğeni:
    5
    Henüz çok pahalıymış
     
  6. latcakir

    latcakir Seçkin Üye Seçkin Üye

    Kayıt:
    29 Eylül 2007
    Mesajlar:
    358
    Beğeni:
    7
    ürün hem ticari ve pahalı bir ürün, hem de kaynakları paylaşılmış. Ürünün üzerindeki malzemeler belki 100 tl yi geçmez..
     
    wake__up bunu beğendi.
  7. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    155
    Beğeni:
    78
    Haklısınız donanıma değer katan kütüphaneleri ve akıllı telefon uygulamaları. İnşallah ülkemizde de böyle ürünler yapılıp daha ucuza ulaşabilmemiz sağlanır.
     
  8. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    155
    Beğeni:
    78
    Proje: 5
    Akıllı telefonumuzun kamerasını renk algılayıcısı olarak kullanma

    Color_bb.jpg

    Kod:

    Kod:
    #define CUSTOM_SETTINGS
    #define INCLUDE_COLOR_DETECTOR_SHIELD
    
    /* OneSheeld kütüphanesi dahil ediliyor. */
    #include <OneSheeld.h>
    
    /* RGB Ledin pinleri tanımlanıyor. */ 
    int redPin = 9;
    int greenPin =10;
    int bluePin = 11;
    
    void setup() {
      /* İletişim başlatılıyor. */
      OneSheeld.begin();
      /* RGB LED pinleri çıkış olarak ayarlanıyor. */
      pinMode(redPin, OUTPUT);
      pinMode(greenPin, OUTPUT);
      pinMode(bluePin, OUTPUT);
      /* Renk algılama paletini varsayılan 16 milyon yerine yalnızca 8 farklı renk elde edecek şekilde ayarlayıyoruz. */
      ColorDetector.setPalette(_3_BIT_RGB_PALETTE);
    }
    
    void loop() {
      /* Algılanan yeni bir renk olup olmadığını kontrol ediyoruz. */
      if(ColorDetector.isNewColorReceived())
      {
        /* Son algıanan rengi okuyup ve yerel olarak kaydediyoruz */
        Color readColor = ColorDetector.getLastColor();
    
        /* Kırmızı, mavi ve yeşil değerleri alıyoruz. */
        byte redValue = readColor.getRed();
        byte greenValue = readColor.getGreen();
        byte blueValue = readColor.getBlue();
        
        /* Elde ettiğimiz değerleri RGB lede aktarıyorıyoz. */
        digitalWrite(redPin,redValue);
        digitalWrite(greenPin,greenValue);
        digitalWrite(bluePin,blueValue);   
      }
    }
     

    Ekli Dosyalar:

  9. klmno

    klmno Süper Üye Süper Üye

    Kayıt:
    30 Kasım 2015
    Mesajlar:
    1.287
    Beğeni:
    37
    takip
     
  10. mert_aylan

    mert_aylan Seçkin Üye Seçkin Üye

    Kayıt:
    13 Ocak 2008
    Mesajlar:
    546
    Beğeni:
    30
  11. wake__up

    wake__up Seçkin Üye Seçkin Üye

    Kayıt:
    23 Eylül 2007
    Mesajlar:
    500
    Beğeni:
    8
    bir an 1sheeld aparatı olmadan sadece arduino ve bluetooth ile 1sheeld uygulamasını yükleyerek bu işi yapacağımı sandım :) yıkıldım.
    yok mu acaba aparatını almadan bu işleri yaptırtacak uygulama. mesela ben arduinoyu telefondan sesle kontrol etmek istiyorum
     
  12. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    155
    Beğeni:
    78
    Proje: 6
    OneSheeldPlus yüz algılama sistemiyle açılan kapı.

    FaceDetector_bb.jpg

    Kod:

    Kod:
    #define CUSTOM_SETTINGS
    #define INCLUDE_FACE_DETECTOR_SHIELD
    #define INCLUDE_TERMINAL_SHIELD
    
    /* Servo kütüphanesini projeye dahil ediyoruz. */
    #include <Servo.h>
    /* OneSheeld kütüphanesini projeye dahil ediyoruz. */
    #include <OneSheeld.h>
    
    /* Ledin bağlı olduğu pini tanımlıyoruz. */
    int ledPin = 13;
    
    /* Göz kırpma sayacına bir isim veriyoruz. */
    int counter = 0;
    
    Servo servom ;
    void setup()
    {
      /* İletişimi başlatıyoruz. */
      OneSheeld.begin();
      /* ledin bağlı olduğu pini çıkış pini olarak ayarlıyoruz. */
      pinMode(ledPin,OUTPUT);
      /* Servo motorumuzu tanımlıyoruz. */
      servom.attach(12) ;
    }
    
    void loop()
    {
    /* Sürekli terminal ekranına değeri göndermesini sağlıyoruz kalibre ederken işinize yarayacak */
      Terminal.println(FaceDetector.getVisibleFace(0).getLeftEyeOpenProbability());
    /* Alttaki değerleri kalibre etmeniz gerekebilir -1 değeri kalsın yüz algılanmadığı zaman dönen değer bu diğer değer 0 (tamamen kapalı) ile 100 (tamamen açık) arası değişiyor. */
    /* İlk yüz verisini al ve göz kırpıp kırpmadığını kontrol et. */
      if(FaceDetector.getVisibleFace(0).getLeftEyeOpenProbability() < 40 and FaceDetector.getVisibleFace(0).getLeftEyeOpenProbability()> -1)
      {
        /*Göz kırpılmışsa ledi yak. */
        digitalWrite(ledPin,HIGH);
        /* Göz kırpmayı say. */
        counter++;
        /* 1 saniye bekle. */
        OneSheeld.delay(5000);
      }else
      {
        /* Göz kırpılmamışsa ledi söndür. */
        digitalWrite(ledPin,LOW);
      }
    
      /* Göz kırpmayı say. */
      if(counter == 3)
      {
        /* 3 kere göz kırpılmışsa ekrana Kapi Acildi yazdır. */
        Terminal.println("Kapi Acildi");
        digitalWrite(ledPin,HIGH);
        /* Kapıyı aç. */
        servom.write(90);
        /* 5 saniye bekle */
        OneSheeld.delay(5000);
        /* Kapıyı kapat */
        servom.write(1);
        digitalWrite(ledPin,LOW);
        Terminal.println("Kapi Kapandi");
        counter=0;
      }
    }
    
     

    Ekli Dosyalar:

  13. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    155
    Beğeni:
    78
    Proje: 7
    OneSheeldPlus GamePad uygulaması.

    GamePad_bb.jpg

    Kod:
    Kod:
    #define CUSTOM_SETTINGS
    #define INCLUDE_GAMEPAD_SHIELD
    
    /* OneSheeld kütüphanesi projeye dahil ediliyor. */
    #include <OneSheeld.h>
    
    void setup()
    {
      /* İletişim başlatılıyor. */
      OneSheeld.begin();
      /* Ledlerin bağlı olduğu pinler çıkış olarak tanımlanıyor. */
      pinMode(13,OUTPUT);
      pinMode(12,OUTPUT);
      pinMode(11,OUTPUT);
      pinMode(10,OUTPUT);
     
    }
    
    void loop()
    {
      /* Sürekli GamePad düğmelerine basılıp basılmadığı kontrol ediliyor. */
      if (GamePad.isUpPressed())
      {
        /* Yukarı düğmesi basılı ise 13 nolu pine bağlı olan ledi yakıyoruz. */
        digitalWrite(13,HIGH);
        /* Diğerlerini söndürüyoruz. */
        digitalWrite(12,LOW);
        digitalWrite(11,LOW);
        digitalWrite(10,LOW);
      }
     if(GamePad.isDownPressed())
      {
        /* Aşağı düğmesi basılı ise 10 nolu pine bağlı olan ledi yakıyoruz. */
        digitalWrite(10,HIGH);
        /* Diğerlerini söndürüyoruz. */
        digitalWrite(11,LOW);
        digitalWrite(12,LOW);
        digitalWrite(13,LOW);
      }
     if (GamePad.isUpPressed()&&GamePad.isOrangePressed())
      {
        /* Yukarı ve Turuncu düğmesine beraber basılırsa 12 nolu pine bağlı olan ledi yakıyoruz. */
        digitalWrite(12,HIGH);
        /* Diğerlerini söndürüyoruz. */
        digitalWrite(13,LOW);
        digitalWrite(10,LOW);
        digitalWrite(11,LOW);
      }
     if (GamePad.isDownPressed()&&GamePad.isRedPressed())
      {
        /* Aşağı ve Kırmızı düğmesine beraber basılırsa 11 nolu pine bağlı olan ledi yakıyoruz. */
        digitalWrite(11,HIGH);
        /* Diğerlerini söndürüyoruz. */
        digitalWrite(12,LOW);
        digitalWrite(13,LOW);
        digitalWrite(10,LOW);
      }
    }
     

    Ekli Dosyalar:

  14. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    155
    Beğeni:
    78
    Proje: 8
    Akıllı telefonumuzun ivme ölçer sensörünü kullanarak trafik kazasını, sms ve e-posta yoluyla kazanın koordinatlarını, daha önceden belirlenen mesajı ve kaza yeri fotoğrafını gönderen güvenlik sistemi. Darbe algılanınca 10 saniye içinde düğmeye basılmazsa sistem devreye giriyor.

    security.jpg

    Kod:
    Kod:
    #include <OneSheeld.h>
    boolean stopGettingReadings = false;
    unsigned long lastTimeTaken = 0;
    unsigned long currentTime = 0;
    
    float x, y, z;
    float lat ;
    float lon ;
    char charlat [30];
    char charlon [30];
    char readings [150];
    int magnitudeThreshold = 30;
    int buttonPin = 12;
    void setup()
    {
      pinMode(buttonPin,INPUT);
      OneSheeld.begin();
    }
    void loop()
    {
      charlat[0] = 0;
      charlon[0] = 0;
      readings [0] = 0;
      if (!stopGettingReadings)
      {
        x = AccelerometerSensor.getX();
        y = AccelerometerSensor.getY();
        z = AccelerometerSensor.getZ();
      }
      if (sqrt((x * x) + (y * y) + (z * z)) > magnitudeThreshold)
      {
        stopGettingReadings = true;
        Buzzer.buzzOn();
        if (!lastTimeTaken)
        {
          lastTimeTaken = millis();
          currentTime = lastTimeTaken;
        }
        if (currentTime - lastTimeTaken > 10000 && !digitalRead(buttonPin) == HIGH)
        {
          lat = GPS.getLatitude();
          lon = GPS.getLongitude();
          dtostrf(lat, 3, 7, charlat);
          dtostrf(lon, 3, 7, charlon);
          strcat(readings, "Belirtilen Konumda Trafik Kazasi Yaptim!:\n");
          strcat(readings, "Yardima Ihtiyacim var.\n");
          strcat(readings, "http://maps.google.com/maps?q=");
          strcat (readings, charlat);
          strcat(readings, ",");
          strcat (readings, charlon);
          SMS.send("11111111111", readings);
          Camera.rearCapture();
          OneSheeld.delay(1000);
          Email.send("adsoyad@servis.com", "Guvenlik Mesaji", readings);
          OneSheeld.delay(10000);
          Email.attachLastPicture("adsoyad@servis.com", "Guvenlik Mesaji", "Trafik Kazasi Bildirimi");
          OneSheeld.delay(1000);
          resetSystem();
        }
        else
        {
          if (digitalRead(buttonPin) == HIGH)
          {
            resetSystem();
            Terminal.println("Bildirim Iptal Edildi.");
          }
          else currentTime = millis();
        }
      }
    }
    
    void resetSystem()
    {
      Buzzer.buzzOff();
      stopGettingReadings = false;
      lastTimeTaken = 0;
      currentTime = 0;
    }
     

    Ekli Dosyalar:

  15. mgüneş

    mgüneş Seçkin Üye Seçkin Üye

    Kayıt:
    19 Eylül 2013
    Mesajlar:
    562
    Beğeni:
    10
    Takip ve teşekkür
     
    viper8 bunu beğendi.
  16. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    155
    Beğeni:
    78
    Proje: 9
    Trafik verisine göre RGB ledi yakmak.

    Traffic_Indicator_bb.jpg

    googlemaps.PNG

    googlemapsapi.PNG

    Kod:
    Kod:
    /*
     
    Trafik Göstergesi
    
    http talebine verilen sabit noktalara (başlangıç, hedef) kadar (tahmini varış zamanı) hesaplamamıza yardımcı olan proje
    Trafik koşullarına göre varış zamanını yansıtmaktadır.
    
    Bölgesel saat diliminin doğru olmasına dikkat etmeniz gerekir
    */
    
    #define CUSTOM_SETTINGS
    #define INCLUDE_INTERNET_SHIELD
    #define INCLUDE_TERMINAL_SHIELD
    
    /* 1Sheeld kütüphanesini dahil edin. */
    #include <OneSheeld.h>
    /* Discatncematrix api url ile bir Http talebi oluşturun. */
    /* Burada küresel bir nesne olarak oluşturulması önemlidir. */
    HttpRequest request("https://maps.googleapis.com/maps/api/distancematrix/json?origins=37.889469,41.129196&destinations=37.787733,41.065436&departure_time=now&key=AIzaSyDYnaUa0sz6CNVgyIrwKmEiF7jIbv4i6kI");
    
    /* 11,10 ve 9 numaralı pinlerde bir RGB LED tanımlayın. */
    int red = 9;
    int green = 10;
    int blue = 11;
    
    void setup()
    {
      /* İletişimi başlat. */
      OneSheeld.begin();
      /* Talebin başarılı olup olmadığını takip et. */
      request.setOnSuccess(&onSuccess);
      /* json değerlerini takip et. */
      request.getResponse().setOnJsonResponse(&onJsonReply);
      /* Yanıt hatalarını takip et. */
      request.getResponse().setOnError(&onResponseError);
      /* İnternet hatalarını takip et. */
      Internet.setOnError(&onInternetError);
      /* Led pinlerini çıkış olarak ayarla.*/
      pinMode(red, OUTPUT);
      pinMode(green, OUTPUT);
      pinMode(blue, OUTPUT);
    }
    
    void loop()
    {
      /* Talebi gerçekleştir. */
      Internet.performGet(request);
      /* 5 dk bekle. */
      OneSheeld.delay(60000*5);
    }
    
    void onSuccess(HttpResponse & response)
    {
      /* Json dizisini gerekli değere kadar sorgulamak için yanıtı kullanın. */
      response["rows"][0]["elements"][0]["duration_in_traffic"]["value"].query();
    }
    
    void onJsonReply(JsonKeyChain & hell,char * output)
    {
      /* Değerleri al ve tamsayıya dönüştür. */
      int eta = atoi(output);
      int mins = eta/60;
    
      /* Varış zamanını kontrol et. */
      if(mins>=25)
      {
        redLightsOn();
      }
      else if(mins<25)
      {
        greenLightsOn();delay(1000);lightsOff();delay(1000);
        greenLightsOn();delay(1000);lightsOff();delay(1000);
        greenLightsOn();delay(1000);lightsOff();delay(1000);
        greenLightsOn();
      }
      /*Hataları görmek için terminal ekranını kullan. */
      Terminal.println(eta/60);
    }
    
    void greenLightsOn()
    {
      digitalWrite(red,LOW);digitalWrite(blue,LOW);digitalWrite(green,HIGH);
    }
    
    void redLightsOn()
    {
      digitalWrite(red,HIGH);digitalWrite(blue,LOW);digitalWrite(green,LOW);
    }
    
    void lightsOff()
    {
      digitalWrite(red,LOW);digitalWrite(blue,LOW);digitalWrite(green,LOW);
    }
    
    /* Fonksiyonlar işlenirken hata oluşursa. */
    void onResponseError(int errorNumber)
    {
      /* Hata numarasını yazdır.*/
      Terminal.print("Response error:");
      switch(errorNumber)
      {
        case INDEX_OUT_OF_BOUNDS: Terminal.println("INDEX_OUT_OF_BOUNDS");break;
        case RESPONSE_CAN_NOT_BE_FOUND: Terminal.println("RESPONSE_CAN_NOT_BE_FOUND");break;
        case HEADER_CAN_NOT_BE_FOUND: Terminal.println("HEADER_CAN_NOT_BE_FOUND");break;
        case NO_ENOUGH_BYTES: Terminal.println("NO_ENOUGH_BYTES");break;
        case REQUEST_HAS_NO_RESPONSE: Terminal.println("REQUEST_HAS_NO_RESPONSE");break;
        case SIZE_OF_REQUEST_CAN_NOT_BE_ZERO: Terminal.println("SIZE_OF_REQUEST_CAN_NOT_BE_ZERO");break;
        case UNSUPPORTED_HTTP_ENTITY: Terminal.println("UNSUPPORTED_HTTP_ENTITY");break;
        case JSON_KEYCHAIN_IS_WRONG: Terminal.println("JSON_KEYCHAIN_IS_WRONG");break;
      }
    }
    
    void onInternetError(int requestId, int errorNumber)
    {
      /*  Hata numarasını yazdır.*/
      Terminal.print("Request id:");
      Terminal.println(requestId);
      Terminal.print("Internet error:");
      switch(errorNumber)
      {
        case REQUEST_CAN_NOT_BE_FOUND: Terminal.println("REQUEST_CAN_NOT_BE_FOUND");break;
        case NOT_CONNECTED_TO_NETWORK: Terminal.println("NOT_CONNECTED_TO_NETWORK");break;
        case URL_IS_NOT_FOUND: Terminal.println("URL_IS_NOT_FOUND");break;
        case ALREADY_EXECUTING_REQUEST: Terminal.println("ALREADY_EXECUTING_REQUEST");break;
        case URL_IS_WRONG: Terminal.println("URL_IS_WRONG");break;
      }
    }
     

    Ekli Dosyalar:

Sayfayı Paylaş /bbnetsosyal