Mini bilgisayarlı mini robot görücüye çıktı [Video]

Bilişim ve Teknoloji Haberleri

Raspberry Pi ile donatılan Tiddles (veya TiddlyBot) isimli akıllı robot görücüye çıktı. Tıpkı kendisini çalıştıran mini bilgisayar gibi kredi kartı büyüklüğünde olan cihaz oldukça kullanışlı bir yapıya sahip. Kullanımı kolay, ucuz ve öğretici özellikleri bulunan mini robot, bir Kickstarter projes… http://www.bilgiteknolojileri.tc/index.php/2014/07/24/mini-bilgisayarli-mini-robot-gorucuye-cikti-video/

View original post

Reklamlar

MSP430 SERVO MOTOR BUTON İLE AÇI KONTROLU

Bu uygulamada servo motorun açı kontrolünü yapacağız. Servo motorları hareket ettirebilmek için mikroişlemcinin PWM bacaklarından belli bir doluluk boşluk oranı olan PWM sinyali göndermeliyiz.Uygulamalarda servo motorlar 20 ms lik periyotlu PWM sinyalleri ile kontrol edilmektedir.Ayrıca servo motorun modeline göre değişmekle beraber genellikle 180 derecelik bir dönme hareketi yapılır. Servo motorun yapısında kontrol devresi, potansiyometre, dc motor ve birbiriyle bağlantılı dişli çarklar bulunur. Servo motorda 3 adet farklı renkte bağlantı noktası vardır.Bunlar +5V VCC kırmızı kablo besleme girişi,kahverengi kablo girişi GND ve sarı kablo girişi veri girişidir.

Yine servo motorun modeline göre değişmekle beraber benim kullandığım tower pro SG90 mini servo motora 0,6 ms  ile 2.7 ms lik PWM sinyali gönderilirse 0 derece ile 180 derece arasında bir dönme hareketi yapmaktadır. Kullandığım servo motorun datasheet dokümanı aşağıdaki bağlantıda mevcuttur.
SG90Servo

PWM(Darbe Genişlik  Modülasyonu)
PWM genliği değişen kare dalgadır. DC sinyal geriliminin kullanıldığı uygulamalarda DC sinyalinin genliğini değiştirerek verimli ve daha az güç harcamak için etkili bir yöntemdir. PWM sinyalinin ortalaması bize DC değeri verir. PWM sinyalini aşağıdaki resimdeki gibi tanımlayabiliriz.

Msp430g2553 mikroişlemcisinde PWM sinyalini verimli kullanabilmek için;
TA0CCTL1 = OUTMOD_7;
TA0CTL=TASSEL_2+MC_1;
ayarlamaları yapılmalıdır.
Yaptığımız uygulamada 5 adet push buton bulunmakta ve sırasıyla basıldığında 0,45,90,135,180 derecelik servo motor dönüş sağlanıyor.Uygulamayı gerçekleştirebilmek için gerekli bağlantılar aşağıdaki gibidir.Görsel Fritzing programı ile hazırlanmıştır.
MSP430servomotorkontrol

Uygulamanın kodları MSP430g2553 mikroişlemcisine göre IAR Embeded Workbench for MSP430 programında yazılıp derlenmiştir.
msp430servocontrolcode

Kullanılan Malzemeler

Assembly List

Label Part Type Properties
J1 Basic Servo
Launchpad1 TI Launchpad MSP430G2 categorie LaunchPad; tip MSP430 (rev1.5)
R1 220 Ω Direnç paket THT; tolerans ±5%; bands 4; direnç değeri 220Ω; pin aralıklandırma 400 mil
R2 220 Ω Direnç paket THT; tolerans ±5%; bands 4; direnç değeri 220Ω; pin aralıklandırma 400 mil
R3 220 Ω Direnç paket THT; tolerans ±5%; bands 4; direnç değeri 220Ω; pin aralıklandırma 400 mil
R4 220 Ω Direnç paket THT; tolerans ±5%; bands 4; direnç değeri 220Ω; pin aralıklandırma 400 mil
R5 220 Ω Direnç paket THT; tolerans ±5%; bands 4; direnç değeri 220Ω; pin aralıklandırma 400 mil
S1 Pushbutton paket [THT]
S2 Pushbutton paket [THT]
S3 Pushbutton paket [THT]
S4 Pushbutton paket [THT]
S5 Pushbutton paket [THT]

Shopping List

Amount Part Type Properties
1 Basic Servo
1 TI Launchpad MSP430G2 categorie LaunchPad; tip MSP430 (rev1.5)
5 220 Ω Direnç paket THT; tolerans ±5%; bands 4; direnç değeri 220Ω; pin aralıklandırma 400 mil
5 Pushbutton paket [THT]

-Birde ihtiyacımız kadar jumper bağlantı kabloları.

 

STEP MOTOR KONTROL

Merhaba arkadaşlar bu yazımda step motor ortak uç nasıl bulunur motor pinlerini doğru sıralama ve  ileri geri kontrol nasıl yapılır bilgi vereceğim inşaallah.

ORTAK UÇ BULMA

Öncelikkle step motorun ortak ucunu buluyoruz bu işlemde yapmamız gereken motor pinlerini sırasıyla birbirlerine kısa devre testi yapmak bütün pinlerde kısa devre olduguna dair (bip) sesi aldıysanız o uç ortak uçtur ve ucuna VCC gerilimi bağlanır.

PİN ATAMA

Ardından pinleri sırayla atama işlemi yapılacak ortak uc’u GND’ye baglıyoruz.Sonra sırayla bütün pinlere birbiri arkasına VCC baglıyoruz (VCC 5-12V olabilir.) burda maksat bacakların dogru şekilde sıralanıp saat yönü veya tersi yönde aksamadan dönmesidir.

http://i.stack.imgur.com/vfHqC.gif

Eğer bu işlemi doğru şekilde yapamaz isek motorumuz istediğimiz gibi çalışmayacaktır.NOT:Bazı motorlarda bu pinler sıralı birşekilde veriliyor benim elimde bulunan motorda sıralı değildi.

DEVRE ŞEMASI

Gelelim devre şemasına motoru sürmek için uln2003a motor sürücü entegresi kullanıldı bundan maksat  işlemciden gelen tetiklemelerin yeterli olmayacağı bunun yükseltilerek biraz daha stabil bir tetikleme işlemi yapılmasıdır.

stepper_1

Şematikte görünen devre şemasında tetik_1,2,3,4 işlemciden gelen pinlerdir bunları göstermelik 4 pinli headera ekledim. motor_1,2,3,4 pinleri ise motorun tetiklenecek uçlarıdır 5-12V bagladığım ise ortak uçtur.Uln2003a entegresine E ucuna GND COM ucuna ise VCC (5-12V) bağlıyoruz.

YAZILIM 

http://imageshack.com/a/img912/6346/W1uWRz.png

resimdeki gibi basit bir kod ile sırasıyla motor uçlarını tetikliyoruz Her tetiklemenin ardından gecikme koyuyoruzki motoru yuksek hızda tetikleme yaptırıp sapıttırmayalım.

EKLEMELER

Bu projeye 1-2 buton ile hız ve yön kontrolüde sağlanabilir kücükbir yazılım ile de kontrol edilebilir ve size güzel bir dönem projesi sağlar.

Proje videosu ;https://www.youtube.com/watch?v=cJ7Xl_TFNyc

KOLAY GELSİN İYİ ÇALIŞMALAR…

ARDUINO İLE 2X16 LCD EKRAN KULLANIMI

2X16 LCD (Liquid Crystal Display) ekran günümüzde Arduino gibi birçok geliştirme kiti kullanarak çeşitli uygulamalar gerçekleştirebilir,karakter ve rakamlar lcd ekranda gösterilebilir.Bilindiği ARDUINO evrensel düzeyde açık kaynak kodlu bir geliştirme kartıdır.Bu nedenle yapmayı planladığımız projeler basit araştırmayla beraber rahatlıkla gerçeklenebilir.Bu uygulama ARDUINO UNO geliştirme kartı ile 2×16 LCD ekrana karakterler yazdıracağız.

KULLANILAN MALZEMELER

Assembly List

Label Part Type Properties
Eleman1 Arduino Uno (Rev3) tip Arduino UNO (Rev3)
U1 LCD-16X2 paket lcd-16×2; characters 16×2; türev silk
U2 POT paket pot_mammoth; türev mam

Shopping List

Amount Part Type Properties
1 Arduino Uno (Rev3) tip Arduino UNO (Rev3)
1 LCD-16X2 paket lcd-16×2; characters 16×2; türev silk
1 POT paket pot_mammoth; türev mam

-Birde ihtiyacımız kadar jumper kablolar.

2×16 LCD EKRAN HAKKINDA BİLGİ

Bu uygulamada kullandığımız lcd ekran TC1602D-11C model numaralı çeşididir.Piyasada birçok lcd ekran bulunmakta olup hepsi ile bu uygulama yapılabilir.Önemli nokta ise, lcd ekranın datasheet ine bakarak bacak bağlantılarına dikkat etmemiz gerekir.TC1602D-11C model numaralı lcd ekranın bacak bağlantıları aşağıdaki gibidir.

lcdekran

TC1602D-11C model numaralı lcd ekranın dahasheet dokümanı aşağıdaki bağlantıdadır.
TC1602D-11C
Uygulamayı gerçekleştirmek için yazılan kod bloku Arduino Uno geliştirme kartına göre yazılmıştır.
/*
LCD EKRAN KULLANIMI
Arduino ile ile LCD arasındaki bağlantılar:
LCD RS ==> digital-12
LCD Enable ==> digital-11
LCD D7 ==> digital-9
LCD D8 ==> digital-8
LCD D9 ==> digital-7
LCD D10 ==> digital-6
LCD D11 ==> digital-5
LCD D12 ==> digital-4
LCD D13 ==> digital-3
LCD D14 ==> digital-2
LCD R/W ==> toprak(GND)
LCD D15 ==> toprak(GND)
LCD D16 ==> +5V
10K potansiyometre 0-5V bağlantı:
orta ucu VO pinine(LCD D3)
*/
#include //LCD kütüphanesi programa eklendi.
LiquidCrystal lcd(12,11,9,8,7,6,5,4,3,2); //LCD bağlantılarımız ile LCD nesnesini oluşturuyoruz.
void setup()
{
lcd.begin(16,2); //LCD ekranımız 2x16 tipinde.
lcd.print("OZGUR KIZILKAYA"); // 1.satıra yazılacak.
lcd.setCursor(0,1); // İmleci 2.satır 1. karaktere al.
lcd.print("LCD CALISMALARI"); //2.satıra yazılacak.
}
void loop()
{
int i=0;
// Satırları 16 kere sağa kaydırıyoruz.
for(i=0;i<16;i++)
{
lcd.scrollDisplayRight();
delay(250);
}
}

Uygulamanın ekipmanlar arasında bağlantıları işe aşağıdaki görselde ki gibidir.
arduinolcdekran

Son olarak yukarıdaki resimdeki bağlantı şeması kullanımı basit ve zevkli Fritzing programında yapılmıştır.

Kaynaklar
-ARDUINO KİTABI/Çoşkun Taşdemir
-http://forum.arduino.cc/

RENKLİ İMGENİN GELİŞTİRİLMİŞ HSİ RENK UZAYINDA İYİLEŞTİRİLMESİ

  • Çeşitli uygulamalar için birçok renk modeli uygulaması tercih edilmiştir. En çok kullanılan renk modellerinden birisi de HSI renk modelidir. Bir imgenin renk, doygunluk ve parlaklık nitelikleri vardır.
  • HUE bileşeni renk uzayını temsil etmekte, SATURATION bileşeni rengin canlılığını, INTENSITY bileşeni ise imgenin parlaklığını ifade etmektedir.
  • Bu uygulamada her pikselin renk değeri korunurken, doygunluk ve parlaklık değerleri değiştirilerek imgede iyileştirme yapılır.
  • Biz bu çalışmada geliştirilmiş HSI (I-HSI) renk modelini kullanacağız.Bu renk modelinde orta parlaklık bölgesinde doygunluk aralığı , yüksek ve düşük parlaklık bölgelerine göre daha geniştir.
    Resim1   Resim2
  • Doygunluk iyileştirilmesi parlaklık değişimi ile koordine edilebildiği içinde daha doğal görünümlü imgeler elde edebilmemizi sağlar.
  • Aşağıdaki bağlantıda gerçekleştirilen projenin ayrıntılı algoritma anlatımı,gerekli tanımlamalar ve dönüşüm eşitlikleri belirtilmiştir.
  • ImprovedHSImakale

Projenin gerçeklenmesi ve kod yazımı MATLAB programında yapılmıştır. Aşağıdaki bağlantı da normal HSI düzlemi ve geliştirilmiş HSI (IHSI) düzleminde yazılan kodlar ve açıklamaları bulunmaktadır.

Uygulama Sonuçları
Bu bölümde yukarıda anlattığımız HSI ve I-HSI imge iyileştirme yöntemlerini karşılaştırıp imgeler üzerindeki farklılıklarını göreceğiz. Her bileşeni 8- bit derinliğinde olan imgelere uyguladığımız gama değerlerine bağlı olarak iki uygulama arasındaki farklılıklar aşağıdaki gibidir. Bu resimlerdeki resimlerde ki gama (γ) değerleri İntensity (parlaklık) için γ_i , Saturation için γ_s olarak tanımlanır.
İMGE İŞLEME DERSİ DERS PROJESİ SUNUMU_010 İMGE İŞLEME DERSİ DERS PROJESİ SUNUMU_011 İMGE İŞLEME DERSİ DERS PROJESİ SUNUMU_012 İMGE İŞLEME DERSİ DERS PROJESİ SUNUMU_013

Sonuç
İmge iyileştirmesi, segmentasyonu, algılaması gibi birçok uygulama HSI renk modeline göre yapılır. Intensity ve saturation değerleri işlendikten sonra HSI renk uzayından RGB renk uzayına dönüşlerde gamut sorunu ortaya çıkabilir. Ayrıca saturation bileşeninin değeri, intensity bileşeninin değerine bağlı olarak yükselebilir, düşebilir ve doygunluk değerine ulaşabilir. Bu durum gereksiz saturation ve intensity iyileştirmeyle olabildiği gibi HSI model üzerinde iyileştirme yaptıktan sonrada meydana gelebilir. Bu uygulamada amaç I-HSI renk modelinin avantajlarını ve farklılıklarını görmek ve göstermektir. I-HSI renk modeli kullanılarak gamut problemi önlenebilir. Ayrıca bu renk modelinde orta parlaklık bölgesinde doygunluk aralığı, yüksek ve düşük parlaklık bölgelerine göre daha geniştir. Buda daha doğal görünümlü imgeler elde etmemize olanak sağlamaktadır. Bu farlılıklar ve avantajlar belirtilen imgelerde açıkça görülmektedir.

Referanslar
[1] R.C. Gonzalez and R.E. Woods, Digital Image Processing Using Matlab Pearson Education, Inc., 2008.
[2] S.K. Naik and C.A. Murthy, “Hue-preserving color image enhancement without gamut problem,” IEEE Trans. on Image processing, vol.12,
no.12, pp.1591-1598, December 2003.
[3] D. Yu, L-H. Ma and H-Q. Lu, ”Normalized SI correction for huepreserving color image enhace-ment,” Proc. of the Sixth International Conference on Machine Learning and Cybernetics, pp.1498-1503,August 2007. [4] Yoshinari K., Murahira K., Hoshi Y., Taguchi A., ”Color image enhancement in improved HSI color space”, Intelligent Signal Processing and Communications Systems (ISPACS), 2013 Interna-tional Symposium on, pp. 429-434, 12-15 Nov. 2013.

 

 

 

 

Engelden Kaçan Araç (The vehicle escaping from barriers)

Engelden kaçan araba/robot projesi genel çalışma prensibi sensörden gelen veriyi yorumlayarak arabayı sağa/sola manevra ile tekrar bir engel ile karşılaşana kadar ileri yönde çalıştıran bir sistemdir.Bu proje bazı üniversitelerde bitirme projesi bazı üniversitelerde ayak üstü yapılan bir projedir.

PROJEDE KULLANILAN MALZEMELER

  • 1 adet msp430g2553 (mikrodenetleyici)
  • 1 adet ultrasonic sensör (HCSR04)
  • 2 adet voltaj regülatörü (LM1117T , LM7805)
  • 1 adet sarhoş teker ve 2 adet 6v redüktörlü dc motor’dan oluşan araç
  • 1 adet motor sürücü (l293d)
  • 6V 1.3A kuru akü

ELEKTRONİK MALZEMELERİN KULLANIM SEBEPLERİ

  •  MSP430G2553 Tİ firmasının ürettiği bir mikrodenetleyicidir.Üzerinde 16 adet
    giriş çıkış pini bulunmaktadır.20 pinli PDIP kılıfı kullanılmıştır.2 adet timer
    register’ı bulunmaktadır.Flash eeprom bellek özelliğine sahiptir ve güç
    kesildiğinde içerisinde ki yazılımı silmemektedir.
  •  LM7805 voltaj regülatörü sensörün çalışması için gerekli olan besleme
    gerilimine düşmemi sağlamaktadır.
  •  LM1117T mikrodenetleyicinin çalışması için gerekli olan 3v3 besleme
    gerilimine düşmemi sağlayan entegredir.
  •  L293D motor sürücü mikrodenetleyicinin pinlerinden çıkan akım yetersiz
    olacağı için akım kuvvetlendirme yapması ve 1 entegre ile 2 motorun
    sürülebilmesi tercih sebeplerinden.
  •  HCSR04 ultrasonic sensör 2cm ile 4 m arası ölçüm yapmayı sağlayan ve 2si
    besleme girişi 1’i data girişi 1’ide data çıkışı olmak üzere üzerinde toplam 4
    adet pin bulunmaktadır.

KART TASARIMI

Kart tasarımı ALTİUM DESİGNER 14 programı ile yapılmıştır

.asdasda

YAZILIM AŞAMASI

kod2 kod1

AÇIKLAMALAR
1. Ana fonksiyonda standart pin ayarlamaları ve timer kesmesi
kurulmuştur.
Bu kesme sensör’den ne sıklıkla veri okumak istediğimizi sensör
fonksiyonunun ne sıklıkla çağırılması gerektiğinin ayarlamaları
yapılmıştır.İşlemcimiz 1Mhz olarak ayarlanmış ve T=1/f ile periyodu
hesaplayıp 60001 e kadar saydırıp yaklaşık olarak 60000 * 10^-6 sn (60
ms)ile kesme vektörüne düşmesini sağladım.
2. Pragma_vector kesme alt programıdır. Bu fonksiyondan cıktıktan 60ms
sonra tekrar bu fonksiyona düşerek fonksiyon içerisinde belirtilen
işlemleri yapmaktadır.
Sensör fonksiyonunda timer kesmesinin pinlerine kücük bir değişiklik
yapıp HCSR04 sensörümüzden gelen veri süresini ölçüp uzaklık ile ilgili
bilgi alınmaktadır.
Sensörün trig ucuna 10ms “1” gönderip tekrar “0” a çekiyoruz.Sensörün
bize 8 cycle boyunca 40 KHz sinyal üretmesini sağlıyoruz.Ardından
echo ucundan dinlemeye başlıyoruz.Ölçme işlemini yine burda timer da
bulunan TAR register’ı ile gerçekleştiriyoruz.Ardından TAR da bulunan
veriyi datasheet’ten aldığım formulasyon ile uzaklik değişkenine
atıyoruz.Sensör fonksiyonu bize int tipinde geri dönüş sağlamaktadır.
3. Gelen uzaklik bilgisi ile ileri , sağa/sola dönüşü sağlayan pwm
fonksiyonlarına kıyaslama ile duvara veya engele kalan uzaklık ile
orantılı olarak pwm’in doluluk boşluk oranını etkileyecek sayılar
gönderiyoruz.
4. Msp430g2553 entegresinin bize sağladığı pwm pinlerinden 33 Khz lik
çıkış sağlıyoruz bunu yine Timer modülü ile gerçekleştiriyoruz.Uzaklık
bilgisi ile de doluluk boşluk oranı -dutycycle bunu belirliyoruz. % kaç
pwm ile sürülecek bunun bilgisi sağlanıyor. Fonksiyona gönderilen hiz
degişkeni ile (hiz/30) pwm sürülüyor ve bu her uzaklık bilgisine göre
değişiklik gösterip aracın yavaşlamasını hızlanmasını sağlıyor.
5. Sensör’den gelen veri 3ten büyük ve 25ten küçük ise araç sağa doğru
manevra yapar.(25 cm verisi çok büyük olmakla birlikte bunun büyük
olmasının sebebi aracın üzerinde sensörün konumu ve araca dönmesi
için yeterli alan bırakmaktır.Aslında 25-10 kadar alanda ölçüm yapıyor
gibi düşünebiliriz.)

6. Ardından tekrardan sensörden gelen uzaklik bilgisi ile ileri saga/sola
manevrasına kadar verip araç hareket etmektedir.

PROJENİN VİDEOSU

HAKKINDA

Sayfamız yaptığımız yapabildiğimiz projeler araştırmalarımız sonucunda ilerlemeler kaydettiğimiz proje kodları, baskı devre çizimleri ve araştırmalarımızdan oluşan verilerden yola çıkarak sizlere faydalı olabileceğimiz bir blog sayfası hizmeti vermekteyiz. Bilginin araştırılarak ve paylaşılarak değer kazanacağı ümidindeyiz.