Arduino ve Processing ile RGB LED Kontrolü

Paylaş
Arduino ve Processing ile RGB LED Kontrolü

Arduino ile temel işleri ilerlettikten sonra bir arayüzle kontrol edilebilen projeler dikkat çekmeye başlar. Arduino’da bulunan seri haberleşme birimi ile herhangi bir programlama dili ile hazırlanmış ve bilgisayardaki seriport üzerinden haberleşen arayüzleri birbirleriyle konuşturmak mümkün.

Bu yazımda sizlere Arduino için kolayca arayüzler hazırlayabileceğiniz bir programlama dili ve aynı zamanda geliştirme ortamı olan Processing’den bahsedeceğim. Processing tümleşik geliştirme ortamını (IDE) indirdikten sonra Arduino IDE’si ile oldukça benzediğini göreceksiniz. Bunun sebebi Processing’in Arduino’ya esin kaynağı olması ve altyapı olarak Processing benzeri bir yapı kullanmasıdır. Yani Arduino programlamayı öğrendiğinizde aynı dili Processing programlama için de kullanabilirsiniz.

Processing programlamaya yeni başlayanlar ve değişik görsel tasarımlar oluşturmak isteyenlere yönelik geliştirilmiş açık kaynaklı bir programlama dili ve geliştirme ortamıdır. Programlamaya giriş eğitimi, görsel tasarım ve yazılım protoipleme gibi birçok alanda yaygın olarak kullanılmaktadır.

Processing‘i http://www.processing.org web sitesinden ücretsiz olarak indirebilirsiniz.

Örnekte kullandığımız Control5p kütüphanesini de http://www.sojamo.de/libraries/controlP5/ adresinden indirebilirsiniz. Kütüphaneyi kullanabilmek için indirdiğiniz zip dosyasını içerisinde gelen control5p klasörünü bilgisayarınızdaki “Belgelerim\Processing\libraries” klasörü altına koymalısınız.

Aşağıda Processing, Contol5p kütüphanesiArduino ve Arduino Türkiye Protoshield kullanılarak hazırlanmış bir RGB LED Kontrolü örneğini görüyorsunuz. Bu arada Protoshield’imizin de üzerindeki ufak devre tahtası (breadboard) ile kullanıldığında ne kadar kullanışlı olduğunu görebilirsiniz 🙂

Bu örneğimizle beraber Processing‘in kullanılmasını, kütüphanelerin eklenmesini ve seri haberleşme üzerinden kontrolü görmüş olacağız. İlerleyen yazılarda Processing ve Arduino ile seri haberleşmenin ayrıntılarına da gireceğiz. Bizi izlemeye devam edin…

Projemizin Processing kodları:

/**
 * Processing ver ControlP5 Kütüphanesi ile
 * RGB LED Kontrolü 
 * Arduino Türkiye
 * https://arduinoturkiye.com
 */

import controlP5.*;
import processing.serial.*;

ControlP5 controlP5;
Serial myPort;  // Create object from Serial class

ColorPicker cp;
int redDeger;
int greenDeger;
int blueDeger;

void setup() {
  size(400,100);
  controlP5 = new ControlP5(this);
  cp = controlP5.addColorPicker("picker",0,0,255,20);
   String portName = Serial.list()[0];
 myPort = new Serial(this, portName, 9600);
}

void draw() {
  background(cp.getColorValue());
  redDeger = int(red(cp.getColorValue()));
  greenDeger = int(green(cp.getColorValue()));
  blueDeger = int(blue(cp.getColorValue()));
   println("RED "+redDeger + " GREEN "+greenDeger + " BLUE "+blueDeger);
  RGBGonder();
  delay(50);
}

void RGBGonder()
{
  myPort.write('R');
  myPort.write(redDeger);
  myPort.write(greenDeger);
  myPort.write(blueDeger); 
}

Projenin Arduino kodları:

/* 
  Seriport üzerinden RGB (red-green-blue) LED kontrolü
  Arduino Türkiye
  https://arduinoturkiye.com   
*/

// LED bağlatı pinleri
int rpin = 11;  // kırmızı
int gpin = 10; // yeşil
int bpin = 9; // mavi

float h = 0; //hue (ton) değeri
int red=0, green=0, blue=0; // renk değerleri
int durum = 1;
int gelen = 0;

void setup()
{
  Serial.begin(9600);

}

void loop()
{

  while(Serial.available()>0)
  {
    gelen = Serial.read();
    switch(durum)
    {
      case 1:
      if(gelen == 'R'){
       durum = 2;
      }
      break;

      case 2:
      red = gelen;
      durum = 3;      
      break;

      case 3:
      green = gelen;
      durum = 4;
      break;

      case 4:
      blue = gelen;
      durum = 1;
      break;
    }
  }

  // Ortak katot için
  analogWrite(rpin, 255 - red);
  analogWrite(gpin, 255 - green);
  analogWrite(bpin, 255 - blue);

   // Ortak anot için
 /* 
  analogWrite(rpin, r);
  analogWrite(gpin, g);
  analogWrite(bpin, b);
*/
  delay(20);
}

LED Bağlantıları:

 

 

Devamını oku

Project Aslan, Arduino DUE Kullanan Bir Robot İşaret Dili Çevirmeni

Project Aslan, Arduino DUE Kullanan Bir Robot İşaret Dili Çevirmeni

Genellikle robotikleri endüstriyel veya araştırma alanlarına uygulandığı zaman görüyoruz, ancak günlük yaşamda da yardımcı olabilecekleri çok yol var: Örneğin, görme engelli insanlar için kişisel rehber görevi gören mutfak botu, engellilerin yemek yapmasına yardımcı olabilir. Veya – ve bu gerçek – işaret dili çevirmeni işlevi gören robot kolu. Sınıflarda, mahkemelerde ve evde, bu

Arduino Turkiye tarafından
Arduino DUE ile Yaşayabileceğiniz Sorunların Çözümleri

Arduino DUE ile Yaşayabileceğiniz Sorunların Çözümleri

Elinizden hatırı sayılır miktarda Arduino DUE geçtiyse (veya sadece şanssız gününüzdeyseniz), düzgün çalışmayan en az bir tane cihazla karşılaşma olasılığınız yüksek. Bunun için her zaman cihazı çöpe atmanız gerekmeyebilir. Birçok Arduino DUE sorununu çözmek için çeşitli yöntemler var. Diyelim ki Arduino DUE ile çalışmaya başlayacaksınız. Bunun için Arduino’yu açtınız

Arduino Turkiye tarafından
STM32 Mikro Denetleyiciler Arduino

STM32 Mikro Denetleyiciler Arduino Dünyasında Ne Anlama Geliyor?

Arduino ile tanışanlar genellikle uzun bir yolun başlangıcında oluyor. Çünkü Arduino dünyası vazgeçmesi zor maceralarla dolu. Arduino’yu tanıdıkça bu heyecanınız da artacak. Bu nedenle Arduino dünyasıyla sizi buluşturmak için biz de heyecan duyuyoruz. Çok ucuza elde edebileceğiniz Arduino kiti ve ihtiyaç duyacağınız diğer malzemeler uzun soluklu projeler için yeterli

Arduino Turkiye tarafından