Post on 11-Jun-2018
Temmuz 2015
Otomasyon Haberleşmesi
Nesnelerin İnterneti
MATLAB
Profibus, Modbus ve CANBus
Dünü, Bugünü ve Yarını
DC Servo Motor Simulink Modeli
İnsansız Kara Araçları
PIC ile USBPIC ile USB Haberleşmesi
KediCADKediCAD NEdir?
Gömülü Sistemler II
Temmuz 2015
Genel Yayın YönetmeniFahri Yasin AYAS
2
Yayın DirektörüÖmer Yasin ADIGÜZEL
Grafik TasarımZekeriya POLAT
YazarlarAbdurahman ULUSOY
Bilal ÜNALMIŞ
Coşkun TAŞDEMİR
Fahri Yasin AYAS
Hakan BAŞARGAN
Samet SAN
Arş.Gör. Mücahit SOYASLAN
Dergimizin bu sayısında bize destek
olan Sakarya Üniversitesi Mekatronik
Mühendisliği Bölümü Araştırma
Görevlisi Mücahit Soyaslan, konuk
yazarlarımız Coşkun Taşdemir ve
Abdurrahman Ulusoy ’a katkılarından
dolayı teşekkür ederiz.
Umarım sizin için okuması zevkli bir
dergi olur.
Fahri Yasin AYAS
İÇİNDEKİLER
[29] İnsansız Kara Araçları
3
[04] DC Servo Motor Simulink Modeli
[17] Otomasyon Haberleşmesi
[12] Nesnelerin İnterneti
[33] PIC ile USB Haberleşme
[14] Gömülü Sistemler II
Temmuz 2015
[20] KediCAD Nedir?
1.GİRİŞ
MATLAB kelimesi matrix laboratory
kelimelerinin kısaltılmasından oluşmuştur.
İçerdiği araç kutularının sayısı bir hayli
fazladır. MathWorks tarafından geliştirilmiştir
ve yüksek seviyeli bir programlama dilidir.
MATLAB yazılımı numerik işlemlere, arayüz
oluşturulmasına ve programlama yapmaya
olanak sağlayan etkileşimli bir arayüze
sahiptir. MATLAB ile analiz yapabilir,
algoritmalar geliştirebilir, model ve
uygulamalar tasarlayabilirsiniz. Çok geniş bir
kullanım alanı bulunmaktadır. Sinyal işleme ve
haberleşme, görüntü ve video işleme, kontrol
sistemleri, test ve ölçme, sayısal finans ve
biyoloji, eğri uydurma ve grafiksel işlemler
yazılımın kullanıldığı bazı alanlardır. [1,2]
Cleve Moler ilk kez 1970’lerin sonunda
MATLAB’ı geliştirmeye başlamıştır ve 1983’te
Jack Little ile tanışmıştır. 1984’te Steve
Bangert’in de katılımıyla MAthWorks firmasını
kurmuşlardır ve MATLAB’ı C ile tekrar
yazmışlardır [3]. Şekil 1’de MATLAB default
arayüzü gözükmektedir.
Simulink yazılımı da MathWorks tarafından
geliştirilmiştir. Akış diyagramları ile
modelleme, simülasyon ve dinamik
sistemlerin analizlerinin yapıldığı grafiksel bir
programlama dilidir. Geniş bir blok
kütüphanesi bulunmaktadır. MATLAB ile
entegre şekilde çalışmaktadır ve genellikle
kontrol teorisinde, dijital sinyal işlemede ve
model tabanlı tasarımlarda kullanılmaktadır
[4]. MATLAB ve Simulink’in Türkiye’deki
dağıtıcılığını 2001 yılından bu yana FİGES A.Ş.
sürdürmektedir [5].Şekil 2’de MathWorks
sitesindeki örneklerde bulunan, MATLAB
fonksiyon blokları kullanarak modellenmiş bir
radarlı izleme sistemi, Şekil 3’te ise gerçek ve
hesaplanan rota bilgilerinin grafikleri
gösterilmiştir [6].
MATLABSIMULINK YAZILIMLARI
DC Servo Motor Simulink Modeli Mücahit
SOYASLAN
Arş. Gör. Mücahit SOYASLAN
Mekatronik Mühendisliği Bölümü
Teknoloji Fakültesi, Sakarya Üniversitesi
Temmuz 2015
4
Şekil 1. MATLAB Arayüzü ve bazı sekmeler
Şekil 2. Radarlı izleme sistemi [6]
Şekil 3. Gerçek ve hesaplanan rota bilgileri [6]
Temmuz 2015
5
2.MATLAB ARAÇ KUTULARI
MATLAB ve Simulink programları içinde bulunan araç kutuları (toolbox) Tablo1 ve Tablo2 ’de
verilmiştir [7].
Parallel Computing
Ÿ Parallel Computing Toolbox
Ÿ MATLAB Distributed Computing ServerŸ
Math, Statistics, and Optimization
Ÿ Symbolic Math Toolbox
Ÿ PartialDifferentialEquationToolbox
Ÿ Statisticsand Machine Learning Toolbox
Ÿ CurveFittingToolbox
Ÿ OptimizationToolbox
Ÿ Global OptimizationToolbox
Ÿ Neural Network Toolbox
Ÿ Model-BasedCalibrationToolbox
Control Systems
Ÿ Control System Toolbox
Ÿ System Identification Toolbox
Ÿ Fuzzy Logic Toolbox
Ÿ Robust Control Toolbox
Ÿ Model Predictive Control Toolbox
Ÿ Aerospace Toolbox
Ÿ Robotics System Toolbox
SignalProcessing and Communications
Ÿ Signal Processing Toolbox
Ÿ DSP System Toolbox
Ÿ Communications System Toolbox
Ÿ Wavelet Toolbox
Ÿ RF Toolbox
Ÿ Antenna Toolbox
Ÿ Phased Array System Toolbox
Ÿ LTE System Toolbox
Application Deployment
Ÿ MATLAB Compiler
Ÿ MATLAB Compiler SDK
Ÿ Spreadsheet Link EX (for Microsoft Excel)
Ÿ MATLAB Production Server
Image ProcessingandComputerVision
Ÿ Image ProcessingToolbox
Ÿ ComputerVisionSystemToolbox
Ÿ Vision HDL Toolbox
Ÿ Image AcquisitionToolbox
Ÿ MappingToolbox
Test andMeasurement
Ÿ Data Acquisition Toolbox
Ÿ Instrument Control Toolbox
Ÿ Image Acquisition Toolbox
Ÿ OPC Toolbox
Ÿ Vehicle Network Toolbox
Computational Finance
Ÿ Financial Toolbox
Ÿ Econometrics Toolbox
Ÿ Datafeed Toolbox
Ÿ Database Toolbox
Ÿ Spreadsheet Link EX (for Microsoft Excel)
Ÿ Financial Instruments Toolbox
Ÿ Trading Toolbox
Computational Biology
Ÿ Bioinformatics Toolbox
Ÿ SimBiology
Code Generation and Verification
Ÿ MATLAB Coder
Ÿ HDL Coder
Ÿ Vision HDL Toolbox
Ÿ HDL Verifier
Ÿ Filter Design HDL Coder
Ÿ Fixed-Point Designer
Database Connectivity and Reporting
Ÿ Database Toolbox
Ÿ MATLAB Report Generator
Tablo 1. MATLAB Araç Kutuları [7]
Temmuz 2015
6
Görüldüğü gibi MATLAB ve Simulink yazılımları birçok araç kutusunu barındırmaktadır ve
çeşitli çalışmalar vasıtasıyla yeni araç kutuları üretilmektedir. Araştırmacılar, mühendisler,
akademisyenler, ekonomistler ve diğer birçok meslek dalına mensup kişiler MATLAB ve
Simulink yazılımları ile yapacakları işlemleri hızlandırmakta ve gerçek uygulamalardan önce
simülasyon yapma fırsatına sahip olmaktadırlar. Simulink kütüphanesi kullanılarak
hazırlanmış ve MathWorks sitesinde bulunan DC Servo Motor kontrolünün örneği incelenecek
olursa yazılımın içeriği kontrol penceresinden bakıldığında biraz daha anlaşılmış olacaktır [8].
3. SIMULINK İLE DC SERVO MOTOR PARAMETRE TAHMİNİ
Bu örnek, DC servo motorun farklı fiziksel ürünler kullanıldığında parametrelerinin nasıl
tahmin edileceğini göstermektedir. Bu uygulama için SimDriveline ve SimPowerSystems araç
kutularının kullanılması gerekmektedir [8]. Şekil 4’te DC servo motor sisteminin genel
simulink modeli gösterilmiştir.
Event-Based Modeling
Ÿ Stateflow
Ÿ SimEvents
Physical Modeling
Ÿ Simscape
Ÿ SimMechanics
Ÿ SimDriveline
Ÿ SimHydraulics
Ÿ SimRF
Ÿ SimElectronics
Ÿ SimPowerSystems
Control Systems
Ÿ Simulink Control Design
Ÿ Simulink Design Optimization
Ÿ Aerospace Blockset
Ÿ Robotics System Toolbox
Signal Processing and Communications
Ÿ DSP System Toolbox
Ÿ Communications System Toolbox
Ÿ SimRF
Ÿ Computer Vision System Toolbox
Code Generation
Ÿ Simulink Coder
Ÿ Embedded Coder
Ÿ HDL Coder
Ÿ Vision HDL Toolbox
Ÿ Simulink PLC Coder
Ÿ Fixed-Point Designer
Ÿ DO Qualification Kit (for DO-178)
Ÿ IEC Certification Kit (for ISO 26262 and IEC
61508)
Real-Time Simulation and Testing
Ÿ Simulink Real-Time
Ÿ Simulink Desktop Real-Time
Verification, Validation, and Test
Ÿ Simulink Verification and Validation
Ÿ Simulink Design Verifier
Ÿ Simulink Test
Ÿ Simulink Code Inspector
Ÿ HDL Verifier
Ÿ Polyspace Bug Finder
Ÿ Polyspace Code Prover
Simulation Graphics and Reporting
Ÿ Simulink 3D Animation
Ÿ Gauges Blockset
Ÿ Simulink Report Generator
Tablo 2. Simulink Araç Kutuları [7]
Temmuz 2015
7
DC servo motoru, elektriksel ve mekanik parçaları ile birlikte düşünüldüğünde çoklu
domainlerde yapılan modellemenin anlaşılması açısından çok güzel bir örnektir. DC servo
motoru, kontrol elektroniğinin (H köprüsü) ve motor miline iliştirilmiş bir diskin bulunduğu
büyük bir sistemdir. Giriş sinyali H köprü devresine uygulanan gerilimdir (V) ve çıkış sinyali de
motor milinin açısal pozisyonudur (derece) [8].
Şekil 4’teki blok diyagram incelendiğinde içlerinde alt sistemler bulunan blokların olduğu
gözükmektedir. Bu blokların içlerinde neler olduğu incelenecek olursa Şekil 5’te DC servo
motor bloğunun iç yapısı gözükmektedir. Elektriksel elemanların modellenmesi için
SimPowerSystems, mekanik elemanların modellenmesi için de SimDriveline araç kutuları
kullanılmıştır [8].
DC motor modeli akım ile tork arasında bir ilişkinin olduğunu göstermektedir (soldaki yeşil
çizgi). Tork, motor milinin dönmesine neden olmaktadır ve bu dönme neticesinde geri EMK
(elektromotor kuvveti) oluşmaktadır. Buradaki parametreler mil eylemsizliği, viskoz
sürtünmeler (damper sönümleme etkisi), endüvi (rotor) direnci ve endüvi endüktansıdır.
Motor üreticileri sayılan bu değişkenler için çeşitli yaklaşık değerler sunmaktadırlar. DC
motor sistemi modeli ile bu parametrelerin kesin sonuçlarının kestirilmesi amaçlanmıştır.
Eğer motor parametreleri fiziksel parametreler ile uyuşmazsa verilen gerilime bağlı olarak
milin dönme miktarı da istenilen şekilde olmayacaktır. Dolayısıyla örnekte yapılmış olan
Simulink modeli bu parametrelerin tahmini konusunda önemli bir rol oynamaktadır [8].
Parametre tahmini işlem süreçleri aşağıdaki adımlardan oluşmaktadır:
1- Test düzeneğinden verilerin toplanması
2- Tahmin edilecek parametrelerin seçilmesi
3- Tahmin için uygun algoritma yapılandırması
4- Sonuçların doğrulanması ve gerekli ise üstteki adımların tekrarı
Şekil 4. DC servo motor sistemi simulink modeli [8]
Temmuz 2015
8
DC servo motorda kullanılan bazı parametreler aşağıdaki gibi tanımlanmaktadır [10].
B : Viskoz sürtünme katsayısı
J : Sistemin atalet momenti
Km : Tork sabiti
La : Rotor sargısı endüktansı
Ra : Rotor sargısı direnci
Şekil 6’da DC servo motor eşdeğer devresi ve blok diyagramı gösterilmiştir [9].
4. SONUÇLAR
Tahmin edilen ve ölçülen değerlerin grafikleri aşağıdaki şekillerde gösterilmiştir. Seçilen 5
parametre 0’dan küçük olamayacağından minimum limit 0 olarak ayarlanmıştır. Aşağıdaki
grafiklerde simule edilen veriler ile ölçülen sonuçlar birlikte çizdirilmiştir. Simülasyon verisi
tahmin edilen parametreler ile birlikte modelden çekilmektedir. Sistemin cevabı tahminden
önce ve sonra kıyaslandığında, tahmin işleminin model parametrelerini başarılı bir şekilde
tanımladığı ve deneysel verilerle uyumlu olduğu gözükmüştür [8].
Şekil 6. a) DC servo motorun yükü döndürmesi b) DC servo motor eşdeğer devre şeması c) DC servo motor blok diyagramı [9]
Temmuz 2015
9
Şekil 7. Optimizasyondan önceki tahmin edilen ve ölçülen veriler [8]
Şekil 8. Deneyler sırasında ayarlanan parametre değerleri [8]
Temmuz 2015
10
Şekil 9. Optimizasyondan sonraki ölçülen ve simule edilen veri grafikleri [8]
Şekil 10. Ayarlanmış parametreler ile yapılan test sonucu grafiği [8]
Temmuz 2015
11
Nesnelerin İnterneti ; Dünü , Bugünü ve Yarını
İnternet ağının bu kadar gelişmesiyle,
yeni teknolojiler ortaya çıkmaya başlamıştır.
Yeni teknoloji diye ifade ettiğimiz, ve yine bu
yeni teknolojiyi doğuran şeylerin başında
internet gelir. İnternetin yayılmasıyla ve
sensör teknolojisinin gelişimiyle birlikte IOT
teknolojisi kavramı ortaya çıkmıştır.
Gündelik hayatta kullandığımız herhangi
bir eşyaların hepsinin 15 sene sonra internete
bağlı olacağını söylesem ne dersiniz? Evet bu
mümkün! Türkçe olarak “Nesnelerin İnterneti“
olarak tabir ettiğimiz IOT teknolojisi, herhangi
bir eşyanın, internet üzerinden diğer internete
bağlı nesnelerle haberleşmesini sağlıyor.
Küçük bir örneği ele alalım. Her birimizin
başına gelen, evden çıktıktan sonra kapıyı
kilitledim mi sorusudur. Yolumuzun
ortasındayken aklımıza gelen bu soru bizi
endişe içerisinde bırakır. Cebimizden
çıkardığımız telefonumuzun mobil
uygulamasına girerek, kapımızın kilitli olup
olmadığını kontrol edebiliriz. Bu, IOT
teknolojisinin milyonlarda örneğinden yalnızca
birisidir.
Sensör teknolojisinin gelişimi, bize
birçok fiziksel büyüklüğü ölçmemize olanak
sağlar. Ağırlıktan sıcaklığa, nemden basınca,
sıvı seviyesinden ışık seviyesinde birçok
fiziksel büyüklüğü ölçerek bilgisayar ortamına
aktarabiliyoruz. Bu ve bunun gibi birçok
sensör uygulaması, IOT teknolojisinin temel
yapı taşlarından birisidir.
Akıllı telefon pazarının genişlemesi ve
cebimize girmesiyle başlayan bu IOT serüveni,
Hakan
Başargan
Sakarya Üniversitesi Mekatronik
Mühendisliğinde okuyor.
Óbudai Egyetem üniversitesinden mezun
olmuş.
Şu anda Engineed’de çalışıyor.
Temmuz 2015
12
akıllı telefonlar/tabletler üzerinden kontrol
edebilen bir ağı oluşturarak devam etmiştir.
Arkasından gelen, bir çok cihazı ve uygulamayı
real time olarak internete bağlayarak,
internet üzerinden kontrol etme veya izleme
uygulamaları IOT teknolojisini daha ileri
düzeylere getirmiştir. Yine yerinde
durmayacak bir teknoloji olan IOT, gün
geçtikçe, teknolojiyle kendisi de ilerlemeye
devam edecektir.
Günümüzde internete bağlı cihaz sayısı
11-11.5 milyar olarak görünürken , ilerleyen
senelerde bu rakamın 40 milyona kadar
çıkması beklenmektedir. Ayrıca birbiriyle
bağlantılı cihaz sayısı da 21.yüzyılın başından
bugüne kadar artmıştır.
Bu teknolojinin gelişme hızı , dünya
üzerindeki internet teknolojisinin gelişmesiyle
hız kazanacak gibi gözüküyor. Fakat internet
altyapısı sorunu yalnızca Türkiye’de değil ,
dünya üzerinde bir sorun halindedir. Güvenilir
IOT teknolojisi için kesintisiz bir internet
kaynağı olması gerektiğini varsayarsak ,
şuandaki internet altyapısının da ne kadar
yetersiz olduğunu görürüz.
Evimizde bulunan yeni nesil
televizyonlarımızı, aslında en büyük IOT
uygulaması olarak görmemiz mümkündür.
Teknolojide Smart Televizyon olarak bilinen
televizyonlarımız , istediğimiz anda internete
bağlanarak, herhangi bir kontrolü sağlamanın
yanısıra, internet kullanmamıza da izin verir.
Hakan BAŞARGAN
Temmuz 2015
13
Onlar Her Yerde :Gömülü Sistemler II
Önceki yazımda gömülü sistemlere kullanıcı
gözüyle bakmıştık . Bu sefer işin teknik
boyutuna biraz daha eğileceğiz. Gömülü
sistemlerin tanımını yapmakla işe
başlayalım.Genel olarak gömülü sistemler:
“belirli bir fonksiyonu yerine getirmek için
tasarlanmış yazılım ve donanım
kombinasyonudur”
şeklinde tanımlanabilir.
Gömülü sistemleri diğer genel amaçlı
bilgisayar sistemlerinden ayıran özelliklerin
başında, bu sistemlerin belirli bir amaç için
tasarlanmış olmaları gelir. Bir video cihazını
kontrol eden gömülü sistem bütün kullanım
ömrü boyunca bu işi gerçekleştirecektir.
Ancak ev ve işyerlerimizde kullandığımız
PC’lerde birçok farklı işlemi
gerçekleştirmekteyiz. PC’lerde bu değişik işleri
değişik yazılımlarla yapmaktayız. Ancak
gömülü sistemlerin içinde çalışan yazılım
genellikle “tektir”.
Gömülü sistemler adlarından da
anlaşılabileceği gibi genellikle daha büyük bir
sistemin içinde “gömülü” olarak çalışırlar.
Örneğin bir çamaşır makinesinde birçok
mekanik kısım bulunmakla birlikte, bütün
bunları kontrol eden bir veya birden fazla
mikrodenetleyici tabanlı sistem bulunur.
Bu sistemler kullandığımız cihazların “akıllı
olmasını” sağlayan, beyin vazifesi gören
birimlerdir
Her gömülü sistemin başlangıçta tanımlanan
tasarım kriterleri farklı olduğundan, tasarımı
da kendine özgüdür. Bir oyun konsolunun
içerdiği birimlerle, bir mikrodalga fırının
içerdiği gömülü sistemler birimleri birbirinden
farklıdır. Ancak genel olarak her gömülü
sistem şekildeki birimlere sahiptir:
Coşkun
Taşdemir
Elektronik mühendisi.
Yıldız Teknik Üniversitesi – Kontrol ve
Otomasyon Mühendisliği bölümünde
yüksek lisans yaptı.
C programlama, mikrodenetleyiciler,
Arduino vs. için proje danışmanlığı yapıyor.
Temmuz 2015
14
Gömülü sistemlerin tasarım gereksinimleri
şunlardır:
Ÿ İşlem Gücü
Ÿ Bellek
Ÿ Geliştirme Maliyeti
Ÿ Birim Üretim hacmi
Ÿ Beklenilen yaşam süresi
Ÿ GüvenilirlikŸ
Bunlar dışında her sistemin kendine has başka
gereksinimleri de olabilir. Örneğin pille
çalışacak bir sistemde güç tüketimi de önemli
bir kriterdir.
Tasarımlardaki kriterlere göre bu
gereksinimlerinden bazıları arasında tercih
yapmak gerekebilir. Örneğin karmaşık
hesaplamaların gerekli olabileceği
sistemlerde yüksek işlem gücü ihtiyacı ön
planda olurken, çok büyük miktarlarda
üretilecek sistemlerde düşük maliyet daha
önemli olabilir.
Gömülü sistemler kullanım alanlarına göre
zaman zaman oldukça kritik görevleri yerine
getirebilirler. Burada oluşabilecek hatalar
büyük mal ve can kayıplarıyla sonuçlanabilir.
Bu açıdan bakıldığında bu sistemlerin
“güvenilir” ve “hataları tolere edebilir”
özellikte olmaları çok önemlidir. Bir
mikrodalga fırının ya da bir oyuncağın içindeki
sistemin zaman zaman hatalı çalışması çok
büyük sorun oluşturmaz; ancak bir uçağın
otomatik pilot sistemindeki hata birçok insanın
hayatını tehlikeye atabilir.
Bugün dünyada üretilen mikroişlemcilerin /
mikrodenetleyicilerin büyük çoğunluğu
gömülü sistemlerde kullanılmaktadır.
Genellikle 8 bit mikrodenetleyiciler yoğun
olmakla beraber, 32 bitlik mikrodenetleyiciler
de düşen maliyetleri sonucu artık geniş
kullanım alanı bulmaktadır.
Gömülü sistemlerde tasarımcıların kullandığı
temel araçlar:
Ÿ Programlayıcılar
Ÿ Hata Ayıklayıcılar (Debuggers)
Ÿ Derleyiciler
Ÿ Emülatörler
Ÿ Tümleşik Geliştirme Ortamları
Gömülü sistemlerin donanım ve yazılım olarak
iki ana bölümden oluştuğunu söylemiştik.
Burada donanım ve yazılım bileşenleri
birbirleriyle sıkı sıkıya bağlı olduğundan
tasarım ekibinde bulunan yazılımcı ve
donanımcıların bir arada çalışmaları
gerekmektedir. Bu anlamda gömülü sistemler
için “multi-disipliner” bir alan diyebiliriz. Bu
alandaki mühendislerin donanım, yazılım,
kontrol sistemleri vs.. gibi birçok alanda bilgi
sahibi olmaları gerekmektedir.
Gömülü yazılımların karmaşıklığı artıkça ve
Temmuz 2015
15
aynı anda yapılacak işlemlerin sayısı arttığında
değişik yapılara ihtiyaç duyulur. Aslında bir
mikrodenetleyici aynı anda sadece bir tek işi
yapabilir. Ancak işlemleri mili, mikro hatta
nanosaniyeler mertebesinde
gerçekleştirdiğinden, birçok işi aynı anda
yapıyormuş gibi görünebilir. Genel olarak
mikrodenetleyicili sistemlerde bu tür işlemler
kesmeler ve zamanlayıcılar sayesinde
periyodik olarak gerçekleştirilir. Bu anlamda
kesmeler yazılımlarda önemli bir rol oynar.
Gömülü sistemler de ayrıca gerçek zamanlı
işletim sistemleri de kullanılır (RTOS – Real
Time Operating Systems). Böylelikle tasarımcı
donanım ayrıntılarıyla çok uğraşmadan ana
işlemleri gerçekleştirmeye odaklanabilir. Arka
plandaki görevlerin senkronizasyonu işletim
sistemi tarafından gerçekleştirilir.
Çok geniş bir alanı kapsayan gömülü
sistemlerin bütün özelliklerini ele almak çok
zor olsa da bu yazıda genel özellikleri tanımış
olduk. Bundan sonra değişik özellikleriyle
gömülü sistemleri tanımaya devam edeceğiz.
Temmuz 2015
Coşkun TAŞDEMİR
16
OtomasyonHaberleşmesi
Ÿ Profibus
Profibus (Process Field Bus) geniş kapsamlı,
üretim ve proses otomasyonu için
tasarlanmış üreticiden bağımsız açık saha hat
protokolüdür. Üretici bağımsız oluşu ve
açıklığı uluslararası standartlar üzerine
kurulmuştur. Birçok araştırma enstitüsü
tarafından desteklenen Profibus, farklı
üreticilerin cihazları arasında haberleşme
sağlayan ve bunu yaparken herhangi özel bir
arabirime ihtiyacı olmayan bir veri yolu
olmakla birlikte, yüksek hızlı kritik
uygulamalar veya kompleks haberleşme
işlemleri gibi kullanım alanlarında yaygın
olarak uygulanan bir veri yolu sistemidir.
PROFIBUS DP (Dezentrale Peripherie –
Merkezi olmayan çevre birimi) otomasyon
cihazı ile merkezi olmayan cihazlar arasında
hızlı bir şekilde veri alış verişimi sağlayan bir
haberleşme sistemidir. Özellikle PLC'nin
merkezde, çevre birimlerinin (slave) çalışma
sahasında (işin yapıldığı yerde) olduğu
durularda iletim hatlarının oluşturulması çok
kolay bir şekilde gerçekleştirilmektedir.
Profibus-DP haberleşme fiziksel yapı olarak
RS485 veya fiber optik alt yapısını kullanır.
PROFIBUS FMS (Fieldbus Message
Specification - Saha veriyolu mesaj
tanımlaması) genel bir haberleşme tipidir.
Akıllı kontrollü aygıtlar arasındaki haberleşme
için gelişmiş uygulama fonksiyonlarını sunar.
FMS’ de DP gibi fiziksel haberleşme yapısı
olarak RS485 veya fiber optik alt yapısını
kullanır.
PROFIBUS PA (Process Automation – Proses
otomasyonu), daha çok proses
otomasyonunda kullanılan ve mevcutta
kullanılan haberleşme kablosu ile ekipmanın
enerji beslemesi de sağlanan haberleşme
tipidir. Profibus DP ile ayni master üzerinde
çalışabilir.
Bilal
Ünalmış
Kocaeli Üniversitesi – Mekatronik
Mühendisliği bölümünden 2015 yılında
mezun oldu.
Mekatronikmühendisliği.com Yöneticisi ve
Editörü
Kocaeli Üniversitesi TürkMekatronik Güneş
Arabası Takımında görev aldı.
EndüstriyelİletişimYöntemleri
Temmuz 2015
17
Ÿ Modbus
Modbus 1979 yılında Modicon firması tarafından geliştirilmiş, sunucu istemci tabanlı olarak
endüstride kullanılan akıllı cihaz olarak tabir edilen aygıtların haberleşmesi için geliştirilmiş bir
protokoldür.(Şimdi Schneider Electric bünyesindedir.) Modbus seri iletişim protokolü,
master/slave ilişkisine sahip bir protokoldür. Sadece bir master düğümü (aynı zamanda
olmak koşulu ile) ve maksimum 247 olmak üzere çeşitli sayılarda slave düğümü aynı bus
(yol) üzerinde bağlanabilir. Modbus haberleşmesi her zaman master tarafından başlatılır.
Slave düğümler Master düğüm tarafından bir istek emri almadığı sürece asla veri iletimi
yapmaz. Slave düğümler kendi aralarında hiçbir şekilde haberleşemezler. Master düğüm aynı
zaman içerisinde sadece tek bir Modbus iletişimi kurabilir.
Modbus çoklu sahip/köle (master/slave) sistemlerini izlemek ve aygıtları programlamak için,
akıllı cihazları (PLC, inverter vb.), algılayıcılar ve diğer aygıtları birbirleri ile haberleştirmek için
veya alan içerisindeki cihazları uzaktan bilgisayar ya da insan makine ara yüzleri ile kontrol
edebilmek için kullanılabilir. Modbus cihazlardan verilerin alındığı ve bu verilerin bir merkezde
toplanabildiği bir endüstriyel ağ sistemidir.
Temmuz 2015
18
Ÿ CANBus
Bosch firması tarafından geliştirilen seri veri yolu sistemi olan "Controller Area Network"
protokolu, özellikle otomotiv sektörüne yönelik akıllı ağ, sensör ve aktüatörler için
tasarlanmış ve kısa bir zamanda bu çalışmalarda standart hale gelmiştir. Kablolama miktarını
önemli derecede azaltır. Multimaster yani bütün CAN noktalarının data iletebildiği ve birkaçının
da eş zamanlı olarak istekte bulunabildiği veri yolu sistemi olan CANBus hiçbir abone ya da
kullanıcı için herhangi bir adreslemeye sahip olmamakla birlikte öncelikli mesajın iletilmesi
şeklinde veri iletir. Bu veri iletişim protokolü en sık Otomotiv ve Medikal endüstrisinde
kullanım alanı bulmaktadır. Mesaj öncelikli bir sistemdir. Ağdaki tüm alıcılar gönderilen mesajı
alır. Alınan mesaj kendini ilgilendiriyorsa kullanır. İlgilendirmiyorsa siler. Mesajlar önem
sırasına göre numaralara sahiptir. Daha küçük numaraya sahip olan bir mesaj her zaman
öncelikli ve önemlidir.
Sırasıyla Profibus, Modbus ve CANBus logoları
Bilal ÜNALMIŞ
Temmuz 2015
19
KediCAD Nedir?
KediCAD sadece linuxta çalışan 2 boyutlu
tasarım yazılımıdır. Linux ortamında
kullanıcıdostu CAD yazılımı olmadığı için bu
projeye başlanıldı. Yaklaşık 9 yılın sonunda
kedicad yazılımı kullanılabilir hale geldi. Bu
alanda en çok kullanılan yazılım autocad dir.
Bu yüzden KediCAD de kullanım olarak
autocad e benzer. KediCAD in 3 boyutlu çizimi
ayrı bir proje olarak geliştirilmekte olup şu
anda oldukça ilkel bir haldedir.
Abdurrahman
Ulusoy
Erciyes Üniveristesi Mezunu
Denizsan Group ‘da Makine Mühendisi
olarak çalışıyor.
Temmuz 2015
20
Temmuz 2015
KediCAD gambas yazılım ortamında geliştirilmektedir. Gambas windowstaki visual basice
benzer bir ortamdır. KediCAD2B şu anda 100 bin satır civarında bir koda ulaştı. KediCAD
Kurulumu: KediCAD Sadece linux sistemlere kurulabilir. Pardus deposunda buluınmaktadır.
Pardus topluluk sürümü 3.0 sürümünde kurulu olarak gelmektedir. Pardusu kurduğunuzda.
Güncelleme yapıp KediCAD in son halini kullanabilirsiniz. Diğer dağıtımlar için depolarından
gambas 3 ü kurup. KediCAD in çalıştırma dosyasını internetten indirip çalıştırılabilir dosya
yaparak kullanabilirsiniz.
KediCAD Dosya formatı olarak dxf yi kullanır. Dxf hemen tüm CAD programları tarafından
desteklenmektedir. Kedicad de çizilen bir çizimi böylelikle diğer cad programları ile
açabilirsiniz. Veya diğer programlarda çizilmiş bir çizimi kedicad ile açabilirsiniz.
KediCAD genel tasarım için gerekli tüm araçları sağlamaktadır. Bunlar:
Çizim Araçları:
- çizgi, daire, yay ,dikdörtgen, çokgen, polyline, Yazı, blok yapma, katman vb.…
Değişiklik Araçları:
- Taşıma, kopyalama, döndürme, aynalama, ölçekleme, germe, ofsetleme, fillet, pah,
kesiştirme, budama, uzatma vb.…
Görüntü Araçları:
- Uç yakalama( osnap), doğrultu, izleme(otrack), ızgara( grid), büyütme, küçültme,
21
Temmuz 2015
Ölçü Araçları:
- Dik ölçü, yatay ölçü, çap, yarıçap ölçüsü, açı ölçü, kaynak gösterimi, balon oluşturma Detay
çizimi vb.…
Bilgi araçları :
- Nokta, Uzunluk Açı bilgilerini vermektedir.
Blok Araçları :
- Birleştirme, Blok yapma, Blok indirme, Blok edit, Hazır çizim kütüphanesi , Blok Patlatma
Ayarlar, kişiselleştirme: KediCAD i istediğiniz arkaplan çizim rengi, otomatik kayıt ölçü
özellikleri vb… atayabilir, özelleştirebilirsiniz.
Çizim Araçları:
Çizgi: Çizgiyi bir başlangıç noktasına tıklayıp çizmek istediğiniz tarafa fareyi götürerek komut
satırından değeri girip entera tıklayarak çizebilirsiniz. İstediğiniz bir noktadan uç yakalama
özelliğini kullanarak çizebilirsiniz Komut satırından uzunluk<açı değerlerini girerek belirli bir
açıda belirli bir uzunluğu çizdirebilirsiniz. Komut satırından x>y değerlerini girerek başlangıca
göre x deki uzunluk ve y eksenindeki uzunluk değerleri ile çizim yapabilirsiniz.
Daire : merkez noktayı işretleyip çap değerini komut satırından girerek çizebilirsiniz. 2
noktadan geçen daireyi 3 noktadan geçen daireyi istediğiniz noktalara tıklayarak çizebilirsiniz.
Yay: yayda 3 noktadan geçen yay veya merkez noktaya göre belirli bir noktadan başlayıp
biten yay olarak çizebilirsiniz.
Dikdörtgen: İstenilen iki noktaya göre çizilebilir veya ilk noktaya göre x,y x eksenindeki
değer virgül y eksenindeki değer olarak dikdörtgeni çizdirebilirsiniz.
Çokgen: merkez noktaya belirleyip , kenar sayısını ve uzaklığı komut satırından girerek
çizdirebilirsiniz.
Poliline: poliline ile çizim tek parça seçili olur. Çizgi yay çizimini içinde yapar.
Değişiklik Araçları:
Taşıma/ Kopyalama: Seçilen çizimleri belirli bir noktadan istenilen yönde komut satırından
girilen değer kadar , veya seçilen bir noktaya kadar taşınabilir, veya kopyalanabilir.
22
Temmuz 2015
Döndürme : Seçilen çizimleri bir bir merkez etrafında döndürür. Veya komut satırına girilen açı
kadar döndürür.
Öteleme : Çizimleri içeri veya dışarı girilen değer kadar öteler.
Fillet, Pah: Fillet ile iki çizgiyi istediğiniz açı ile birleştirip yuvarlıyabilirsiniz. Pah ile iki çizimi
birleştirip pah kırabilirsiniz.
Kesiştirme / Uzatma: İlk çizime kadar seçilen çizimleri uzatır, kısaltır...
Esnetme:
Uç Yakalama : Alttaki uç yakalama butonu seçili olmalıdır. Bu buton üzerinde sağ tıklayıp
açılan menüden Kullanılacak uç yakalama araçlarını seçebilir. İzleme ızgara özelliğini de
ayarlıyabilirsiniz.
İzleme: Alttaki butondan açarak çizimleri uç yakalama ile veya başlangıç noktasına göre
izliyebilirsiniz.
Ölçüler: Dik , yatay , açı, çap, yarıçap ölçüleri , kaynak, balon, düğmeleri ile ölçülendirmeleri
yapabilirsiniz.
Detay: Seçili alandaki çizimdekileri başka bir yere kopyalayıp istenen ölçekte
büyütür/küçültür.
Katman: çizimlerinizde katman aracı ile istediğiniz çizimin gözükmesini , kilitlenmesini vb.
Sağlıyabilirsiniz.
Blok Yönetimi: Sürekli kullandığınız çizimleri blok yapıp istediğinizde tüm çizimlerinize
ekliyebilirsiniz.
Hazır Çizim kütüphanesi: Değişik I ve U kesitli kirişler, köşebentler, kutu, kare profiller,
civatalar, somunlar gibi çok kullanılan malzemeler hazır çizim kütüphanesinde
bulunmaktadır. Seçip çizim alanında bir noktaya tıklamak yeterli…
Resim Ekleme: Çizim alanına resim ekleyebilirsiniz. Görünür veya görünmez yapabilirsiniz.
Pdf kaydet. : Çizimi pdf olarak kaydedebilirsiniz.
Ayarlar Kişiselleştirme: Genel ayarlardan: Çizim alan rengini, Araç kutularının üstte/yanda
yerleşimini, sağ tık menüsünü Resimli veya normal olarak ayarlıyabilirsiniz.
23
Temmuz 2015
Ölçü sekmesinde: Ölçü yüksekliğini, ölçü yazı rengini çizgi renklerini, ölçü hassasiyetini vb.
Ayarları yapabilirsiniz.
Seçim sekmesinde: Uç yakalama büyüklüğünü , Uç yakalama rengini, çizime ne kadar
yaklaşılınca seçilebileceğini, ön seçimin gerli olup olmamasını ayarlıyabilirsiniz.
Diğer sekmesinde: Otomatik kayıt süresini, ekran tazeleme hızı ayarlanabilir… Ayarlar
penceresinden yaptığınız ayarların bazısı hemen geçerli olurken diğerleri için kedicadi yeniden
başlatmak gerekir.
KediCAD-CAM
Anlatılan genel tasarım araçları dışında KediCAD cam programı olarak da kullanılmaktadır.
Cam yazılımları cnc makinelerin kullandığı g-code'u üretmektedir. KediCAD de yapılan
çizimlerden istenilen özelliklerde g-code üretmektedir.
Takım değiştirme, çizime takım atama, yeni takım tanımlama, takım çapına göre kesimin iç-
dış-merkez oluşunu belirleme gibi özellikleri bulunmaktadır. G-Code üretimi çok
kolaylaştırılmıştır.
G-Code uygulamasında ilk önce takım tanımlamaları yapılmalı, yerleri belirtilmeli ,
Çalışma alanı tanımlanmalıdır.
Çizimler seçilip her çizimi işliyecek takım atanır. Bu işlem bitince G-code seçilir ve açılan
pencereye malzeme ölçüleri girilir. G-Code penceresi açılır. Burada takım atanan çizimler
dalma derinliği vb. değerler girerek g-code üretim penceresine aktarılır ve en sonun da g-
code üret düğmesine basılarak çizimin g-code u ortaya çıkar.
24
Temmuz 2015
G-Code un simülasyonunu izlitebilir ve kaydedebilirsiniz.
KediCAD -CAE
KediCAD de mühendisler için yardımcı olacak hesap kodları bulunmaktadır. Bunlar:
1- Birim çevirici
2- Atalet momenti hesaplama
3- Gerilme hesabı(Eğilme, burulma, burkulma, güç hesabı)
4- Dişli redüktör hesabı
5- Hidrolik hesabı, hidrolik analiz
6- Rulman, kama,keçe hesapları
7- Genel yük moment hesabı
8- Vinç hesapları.
9- Sonlu eleman analizi
1- Birim Çevirici : uzunluk alan,hacim, iş , moment, eneji, güç, kuvvet basınç … gibi alanlarda
kullanılan değişik birimler arası değerleri hesaplıyabilirsiniz.
2- Atalet Momenti: Kedicad yaptığınız bir çizimin veya çok kullanılan standart parçaların
atalet, mukavemet momentlerini hesaplayı alan ve çelik için bir metresinin ağırlığını
görebilirsiniz.
25
Temmuz 2015
3- Gerilme Hesabı:
a- Eğilme : Ankastre veya iki kenardan destekli kirişler için uygulanan yükler altında
kirişin gerilmesini ve sehim miktarını hesaplar.
b- Burulma: Milin döndürülmesi ile oluşan burulmanın miktarını ve burulma ile oluşan
gerilme değerini hesaplar.
c- Burkulma: değişik bağlanma şekillerine göre uzun bir milin/kirişin taşıyabileceği
emniyetli yük hesabını yapar.
d- Güç hesabı. Belirli bir dönme hızında bir yükü kaldırmak için gerekli gücün hesabı.
4- Dişli / redüktör hesabı: Tek bir dişlinin güç, malzeme vb, girdilere göre modül taksimat
dairesi çapı , diş dibi/üstü çapı, diş kalınlığı gibi hesapları yaparak sonuçlarını gösterir.
Redüktör hesabı ise 4 kademeye kadar dişlileri ve mil çaplarını seçmeye yardımcı olur.
5- Hidrolik hesabı ve hidrolik analiz. Tek bir silindire gelen yük ve basınca göre silindir
ölçülerini verip burkulma kontrolü yapılmasını sağlamaktadır. Hidrolik devre analizinde ise
hidrolik devre elemanlarına göre bir devrenin analizini yapıp simülasyonunu yapmaktadır.
6- Rulman kama keçe hesapları: Standart ölçülerdeki kamayı moment , çap değerlerine
göre seçmeyi sağlar. Keçe kastaş kataloğuna göre kullanacağınız keçeyi mil çapı veya yatak
çapına göre seçmeye yarar.
7- Genel yük moment hesabı, yapmaktadır.
8- Vinç hesapları: Döner tabla vinçleri veya köprülü vinçler için ayrıntılı hesaplar
yapabilmektedir. Döner tabla dişli seçimi, bu na göre hidrolik motor seçimi vb…
FEA
9- Sonlu eleman analizi
Sonlu eleman analizi: Çizilen bir parçanın üstüne etkiyen kuvvetlere göre şekil değişmesini
bilgisayarda hesaplamaya yaramaktadır.
KediCAD z88 yazılımı temelinde sonlu eleman analizi yapılmaktadır. Z88 programı normalde
bir sonlu eleman analizi programıdır. Ancak tüm girdiler yazı tabanlı olarak belirli bir mantık
dairesinde girilmelidir. Ve bu kullanımını oldukça zorlaştırmaktadr. Kedicad z88 in ihtiyaç
duyduğu girdileri direk çizimden alarak z88 e gönderir ve hesabın yapılmasından sonrada
sonuçları kullanıcıya yine çizim olarak gösterir. KediCAD kuvvetlerin parça üzerine etksini ,
şekil değiştirme miktarını, her bir düğüme gelen kuvvetleri göstermektedir.
26
Temmuz 2015
KediCAD MAKRO
KediCAD gambas üzerinde geliştirilmektedir. Gambas v.basice benzer. Kullanımı kolaydır.
İçine eklenen kedicad kodları ile birlikte kolkayca makrolar hazırlamanıza imkan verir.
Makrolar ile yaptığınız ürünlerin değişen kısımlarını belirleyip kolayca çiziminizi
hazırlıyabilirsiniz. İşlerinizi hızlandırır ve hata payını düşürebilirsiniz.
KediCAD 3D
KediCAD3D geliştirilmesi devameden bir projedir. Şu anda 2 boyutta çizim yapıp,
yükseltilebiliyor. Grafik olarak parça seçim, taşıma, kopyalama, renk atama, standart
olmayan parça ve montaj kaydı yapabilmektedir. Yüzey seçimi, standart (igs,stp,..) kayıt
formatına geçiş, parçayı döndürerek oluşturma, delik cep ekleme veya çıkarma gibi temel
eksiklikleri ile kullanıma uygun değildir.
KediCAD simülasyon da yapabilmektedir. Çizim ya bir eksen etrafında döndürülebilmekte
yada belirtilen bir doğrultuda öteleme hareketi yaptırılabilmektedir. İleride aynı anda bir kaç
çizimin hareket etmesini sağlıyarak mekanizmaların çalışmasını tam olarak gösterecektir.
27
Temmuz 2015
Gelecekte KediCAD
Yukarıda genel özelliklerini anlattığım KediCAD aslında komple tasarım/üretim
yazılımı olarak planlanıyor.
Hemen hemen her bölümü ayrı ayrı programlarca yapılan bu özellikleri tek bir yazılımda
toplanmış olacak . Yakın gelecekte imalat takip kısmını da eklendiğinde KediCAD bir firmadaki
teknik tüm alt yapıyı üstlenmiş olacaktır. Bir atelye/fabrikadaki hesaptan çizime, çizimden
imalata, cnc makine kodlarına , üretim takibine kadar tüm sistemin entegrasyonunu ve
otomasyonunu sağlıyacaktır.
Türkyedeki kullanıcı sayısı her gün artan kedicad bu alanda yerli bir isim olarak yakın
gelecekte büyük dağıtımlarının depolarına girecektir.
Abdurrahman ULUSOY
28
Gelişen teknolojiyle birlikte insansız
araçlar özellikle askeri alanda hayatımıza
girmeye başladı. Bu araçlar ise çeşitli
görevleri yerine getirmek amacıyla üretiliyor.
Amaçlardan bazıları aşağıda ki gibidir:
Ÿ Keşif, gözetleme ve istihbarat
Ÿ Asimetrik tehditler ile mücadele
Ÿ Kritik tesislerin güvenliği
Ÿ Sınır gözetleme
Ÿ El Yapımı Patlayıcılar ile Müdahale
Ÿ Mayın Tespiti ve Etkisiz Hale Getirilmesi
Ÿ Arama ve kurtarma Liman, boğaz ve deniz
ticareti güvenliği
Ÿ Lojistik destek sağlama
Bu teknolojinin lideri dünya da Boston
Dynamics ülkemizde ise ASELSAN’dır.
Öncelikle insansız araçlarda özellikle kara
araçlarının üretilmesinde istenilen belirli başlı
özellikler var.
Bunlardan bazıları:
Ÿ Yüksek ve alçak sıcaklıklarda çalışabilme
Ÿ Engebeli araziler için tasarlanan özel palet
veya tekerlekler
Ÿ Dışardan gelecek darbelere karşı
dayanıklılık
Ÿ Görev süresini maksimum düzeye çıkarma
Ÿ Yüksek çözünürlüklü ve gece görüşlü
kameralar
Ÿ İletişim modeli ve gerekli ise sinyal işleme.
Ÿ İletişim mesafesi
Ÿ Radarlar
İnsansız Kara Araçları
Fahri
Yasin
AYAS
Sakarya Üniversitesi Mekatronik
Mühendisliğinde okuyor.
Mekatronikmühendisliği.com yöneticisi ve
bu derginin genel yayın yönetmeni.
Şu anda FNSS Savunma Sistemleri ‘nde staj
yapmaktadır.
Temmuz 2015
AYAS
Boston Dynamics Rhex
29
Ÿ Askeri sensörler gibi özellikler öne çıkmaktadır. Bu özelliklerin oluşturulmasında ve
testlerinde askeri şartlar baz alınır.
Birçok projede olduğu gibi insansız kara araçlarında da kilit nokta yazılımdır. Çünkü
yazılımlarınız milli olmazsa istediğiniz kadar dayanıklı ve uzun görev yapabilen bir araç
yapın bunun bir önemi yoktur.Bu noktada aslında bizlerin yani mekatronik mühendisi
olacaklarında yazılıma ne kadar önem vermemiz gerektiği öne çıkıyor.
Üretilen kara araçları askeri alanda çalışacağı için iletişim modelleri de çok fazla önem
taşır.Hepimizin bilmiş olduğu iletişim frekanslarından çok daha yüksek frekanslarda iletişim
kurabilmektedirler. Üretilen araçların bazıları uzaktan kontrolün aksine kablolu kontrolde
edilebilir. Bunun en büyük örneği bomba imha robotlarıdır. Çünkü kurmuş olduğunuz
frekans her an uzaktan kumandalı bir bombanın frekansını karıştırarak patlamasına neden
olabilir.
Temmuz 2015
KAPLAN’ın
2015 yılında
IDEF ’teki
yeni tasarımı
30
Aşağıda ki ise benim üzerinde çalıştığım ve AYAS ismini verdiğim Keşif ve Gözetleme Robotu
Temmuz 2015
Özel şirketlere sunumu gerçekleşeceği için
bazı özelliklerini maalesef veremiyorum.
Tasarımında birçok tasarım incelenerek
faydalanılmıştır. Benzer görevi yapacak
araçlardan farkı kontrolünde mesafe
sınırlaması olmaması ve yazılımıdır. İletlişim
kopması durumunda ufak bir yazılım
yazılarak robot güvence altına alınmaktadır.
Eğer sizde benim gibi insansız kara
araçlarına meraklıysanız ve bu konuda
araştırma yapmak ve çalışma yapmak
istiyorsanız.İlk yapmanız gereken şey aracı
hangi amaçla tasarlamak istiyorsunuz?
Örneğin keşif gözetleme mi? Bomba
imhamı? Arama kurtarma mı? Her ne kadar
birbirlerine benzer görevler gibi
görünüyorsa da aralarında çok fazla fark
var.
Ne için tasarladığınıza karar verdiyseniz “Bu tip araçlarda ne tip teknolojiler ve sensörler
kullanılıyor? Ne tür bir yazılımla geliştirilmiş? Otonom veya yarı otonom özelliğine sahip mi?
İletişim tipi nasıl oluşturulmuş? Mesafe sınırlaması nedir?” sorularına cevap aramalısınız. Bu
sorularınıza da cevap aldıysanız bundan sonra yapacağınız ilk iş kalemi alıp bir kağıda
aracınızın tasarımını çizmeniz. Çünkü elle çizilmiş bir tasarım olmadan herhangi bir tasarım
programında tasarım yapmak çok zordur. Yazılım veya elektronik sistemin geliştirmeleri
yapılmadan ilk önce tasarımınızı yapmalısınız. Çünkü elektronik ve yazılım birbiriyle bağlantılı
ancak tasarım biraz daha onlardan bağımsız. Eğer ilk olarak tasarımı yaparsanız aracın
neresine nasıl sensör yerleştirilecek iç dizaynında ki komponentlerin nasıl yerleştirileceğine
karar verebilirsiniz. Kendim bu konuda tecrübeli olarak ilk yazılım ve elektronikten başladım
ve çok zorlandım.Evet her ne kadar mantıksız gibi gözüksed motorların nerelere
yerleştirileceği motorların büyüklüğü geliştirme kartının büyüklüğü ve yerleceği alan en
önemlisi ise akü ve sensörlerin yerleşeceği yerler önem taşıyor. Ayrıca önünüzde bir tasarım
olmadan bunlara başlamak psikolojik olarakta biraz demotive edebilir.
Tasarımlarınızı yaparkende illa özgün olacak diye marjinal çizimlere kaçmayın. Çünkü bu
alanda yapılan ve en verimli çalışan tasarımlar bellidir ve bunlardan çok fazla
uzaklaşamazsınız.Ancak aracın gövdesini kendiniz tasarlamaya bakın ve tasarımlarınız
konsept tasarım olsun detay tasarım olmasın.
31
Araçta en önemli şey yazılımdır. Çünkü bir şeyi milli veya kendine ait yapan şey
yazılımıdır. Bu yüzden yazılımlarınızda oldukça özgün olmaya özen gösterin. Bunun içinde
Python Java ve C++ dilleri ile iletişim modellerine ve geliştirme kartları üzerinde ki kullanım
şekillerine bakın. Özellikle Python ve C++ önemlidir.
Bu sürecin uzun bir süreç olacağını ve sabırlı olmanız gerektiğinide aklınızdan çıkamayın.
Unutulmamalı ki gelecekte birçok işi robotlar yapacak. Bunlardan bir tanesi de her ne
kadar istemesekte savaşlar.İnsansız hava araçlarının kullanılmaya başladığı günümüzün
geleceğin de insansız kara araçları da tamamen ordularda yerini alacağından şüpheniz
Temmuz 2015
Fahri Yasin AYAS
32
PIC ile USBHaberleşmesi
USB protokolü günümüzün en çok kullanılan
haberleşme protokolü haline geldi. Bunun
nedenleri arasında iletişim hızı, veri güvenliği
gibi daha pek çok neden sayılabilir.
Bizde bu yazımızda PIC mikrodenetleyicilerinin
USB üzerinden bilgisayar ile iletişiminden
bahsetmeye çalışacağız.
Öncelikle kullanacağımız mikrodenetleyicimizi
belirleyelim. Bize USB haberleşme desteği
olan bir mikrodenetleyici lazım. Bunun için
denetleyicimizi UART desteği olması şart.
Biz burada PIC18F4550 kullanmayı
deneyeceğiz. Piyasada bulunması gayet kolay
olan bir mikrodenetleyici. UART desteği olan
diğer mikrodenetleyicileri kaynak kısmında (1)
numaralı linkte verdiğim adreste
görebilirsiniz.
Şimdi proteus üzerinde basit bir ADC devresi
kuralım. Hem kısaca bir Analog-Dijital
konusundan da bahsetmiş oluruz. 3 tane
potansiyometre koyalım ve bunlardan
okuduğumuz değerleri USB üzerinden
bilgisayara aktaralım.
Devremizi aşağıdaki gibi kuruyoruz.
Eğer devreyi Proteusta deneyecekseniz
Proteus klasörü içinden VirtualUSB’yi kurmayı
unutmayın.
(Bknz. C:\Program Files (x86)\Labcenter
Electronics\Proteus 8
Professional\DRIVERS\)
Devremizi hazırladıktan sonra şimdi de
mikrodenetleyicimiz için programımızı
yazmaya başlayalım. Bunun için MikroC dilini
kullanacağız. MikroC PRO for PIC isimli
yazılımımızı sitemizden indirebilirsiniz.
(Kaynak : 2)
Samet
San
Sakarya Üniversitesi Teknoloji Fakültesi
Mekatronik Mühendisliği'de okuyor
Mekatronikmuhendisligi.com yöneticisi.
Temmuz 2015
33
#include "USBdsc.c" // microchip sitesinden indirdiğimiz C dosyası
unsigned char oku[10] absolute 0x500;
unsigned char yaz[10] absolute 0x540;
int sensor1,sensor2,sensor3,sensor4,sensor5;
void interrupt(){
USB_Interrupt_Proc();}
void main(){
delay_ms(1000);
ADCON0 = 0x09; // ADC aktif edildi
ADCON1 &= 0xF0; // Analog pinleri analog giriş olarak ayarlandı.
CMCON |= 7; // karşılaştırıcı pasif edildi.
Temmuz 2015
34
TRISD = 0;
PORTD=0x0f;
HID_Enable(&oku,&yaz); // okuduğumuz ve yazacağımız verinin saklandığı belleği
tanımlayıp HID iletişimini aktif hale getiriyoruz.
while(1){
sensor1 = ADC_Read(0); // sensör 1 den 10 bitlik değer oku
sensor2 = ADC_Read(1); // sensör 2 den 10 bitlik değer oku
sensor3 = ADC_Read(2); // sensör 3 den 10 bitlik değer oku
yaz[0] = 0x01; // sensor 1 düşük seviyeli 8 bitini aktarıyoruz
yaz[1] = sensor1; // sensor 1 yüksek seviyeli kalan 2 bitini aktarıyoruz
yaz[2] = 0x02;
yaz[3] = sensor2;
yaz[4] = 0x03;
yaz[5] = sensor3;
while(!HID_Write(&yaz,10)){
PORTD=0xf0;
}
PORTD=0x0f;
}
}
Temmuz 2015
35
Programımızı yukarıdaki gibi yazdıktan sonra #include "USBdsc.c" komutunda belirtildiği gibi
USBdsc.c dosyamızı oluşturmamızz gerek. Bunun için Tools > HID Terminal adımlarını takip
edersek aşağıdaki gibi bir pencere açılacaktır.
Bu pencerede VID ve PID bizim aygıt ve ürün numaramız olacak. Buradan istediğimiz numarayı
verebiliriz.(Tavsiyem 1234 olarak kullanmanız. Çünkü diğer USB aygıtları ile çakışma olabilir.)
Report Length ksımında input ve output olarak verilen değerler göndereceğimiz ve alacağımız
veri için önbellek boyutunu belirler.
Temmuz 2015
36
Biz burada çok uzun veriler göndermeyeceğimiz için 10 byte bizim için yeterli.Vendor Name ve
Product Name kısımlarını istediğimiz gibi doldurabiliriz. Daha sonra Save descriptor deyip
dosyamızı diğer .C dosyalarımızın yanına oluşturuyoruz.
Şimdi mikrodenetleyicimizin osilatör ayarlarına geldik.Bunun için Project > Edit Project
adımlarını takip edersek aşağıdaki gibi bir pencere açılacaktır.
Burada denetleyici tipini ve osilatör frekens hızını değiştireceğiz. PIC18F4550ye 8Mhzlik bir
kristal osilatör bağlamıştık.Bunun için burada frekans ayarımızı 8Mhz olarak ayarlıyoruz.
Diğer ayalarda ekrandaki gibi kalabilir.
Programımızı derledikten sonra mikrodenetleyicimize yükleyebiliriz. Devreyi proteusta
çalıştırdığımızda tıpkı bilgisayara USB aygıt takılmış gibi algılayacak.Bilgisayar üzerinden
herhangi bir seri port haberleşme yazılımı veya kendinizin yazabileceği bir arayüz ile kontrol
edebilirsiniz.
Ben C# ta ufak bir arayüz tasarlamıştım.
Sizler için bunun kodlarını da buraya vereyim.
Temmuz 2015
37
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using UsbLibrary;
namespace hid
{
: public partial class Form1 Form
{
Form1()public
{
InitializeComponent();
}
Form1_Load( sender, e)private void object EventArgs
{
.port.ProductId =4660; this
.port.VendorId = 4660;this
.port.CheckDevicePresent(); this
}
usb_OnDeviceArrived( sender, e)private void object EventArgs
{
durum.Text = ;"USB takıldı"
}
usb_OnDeviceRemoved( sender, e)private void object EventArgs
{
(InvokeRequired)if
{
Invoke( (usb_OnDeviceRemoved), [] { sender, e });new new objectEventHandler
}
else
{
durum.Text = ;"USB çıkarıldı"
}
}
usb_OnSpecifiedDeviceArrived( sender, e)private void object EventArgs
{
durum.Text = ;"PIC takıldı"
}
usb_OnSpecifiedDeviceRemoved( sender, e)private void object EventArgs
{
(InvokeRequired)if
{
Invoke( (usb_OnSpecifiedDeviceRemoved), [] { sender, e });new new objectEventHandler
}
else
{
durum.Text = ;"PIC çıkarıldı"
}
}
usb_OnDataRecieved( sender, args)private void object DataRecievedEventArgs
{
(InvokeRequired)if
{
try
{
Invoke( (usb_OnDataRecieved), [] { sender, args });new new objectDataRecievedEventHandler
Temmuz 2015
38
}
catch
{ }
}
else
{
[] gelen = [10];byte new byte
gelen = args.data;
s1.Text = gelen[2].ToString();
s2.Text = gelen[4].ToString();
s3.Text = gelen[6].ToString();
durum.Text = ;"Veri alınıyor..."
}
}
OnHandleCreated( e)protected override void EventArgs
{
.OnHandleCreated(e);base
port.RegisterHandle(Handle);
}
WndProc( m)protected override void ref Message
{
port.ParseMessages( m);ref
.WndProc( m); base ref
}
d = 0xFF; byte
button1_Click( sender, e)private void object EventArgs
{
[] veri = [11];byte new byte
veri[0] = d;
veri[1] = d;
( i =2 ; i < 10; i++) veri[i] = 0;for int
(port.SpecifiedDevice != )if null
port.SpecifiedDevice.SendData(veri);
(d == 0xff) d = 0;if
d = 0xff;else
}
}
}
Temmuz 2015
Visual Studio ya USBLibrary.dll dosyasını eklemeyi unutmayın.. (Kaynak 3)
Selametle.
Samet SAN
KAYNAK1 - http://www.microchip.com/pagehandler/en-us/technology/usb/microcontrollers/home.html2 - http://forum.mekatronikmuhendisligi.com/Konu-MikroC-Pro-2012-5-61-lisans-sorunu-cozuldu-ektedir.html?highlight=mikroc3 - https://yadi.sk/d/_tCgZQivhdeUm
39
MATLAB ve SIMULINK YAZILIMLARI: DC Servo Motor Simulink Modeli
[1] http://www.mathworks.com/products/index.html?s_tid=hp_fp_viewall
[2] http://tr.wikipedia.org/wiki/MATLAB
[3] CleveMoler, thecreator of MATLAB (December 2004). "TheOrigins of MATLAB".
[4] http://en.wikipedia.org/wiki/Simulink
[5] http://www.figes.com.tr/sirket-profili.php
[6] http://www.mathworks.com/examples/simulink/767-radar-tracking-using-matlab-
function-block
[7] http://www.mathworks.com/products/index.html?s_tid=hp_fp_viewall
[8]http://www.mathworks.com/examples/sl-design-optimization/933-dc-servo-motor-
parameter-estimation
[9] http://pemclab.cn.nctu.edu.tw/peclub/W3cnotes/cn04/
[10] A. C. Aras, E. Kayacan, Y. Oniz, O. Kaynak, R. Abiyev, “An Adaptive Neuro-Fuzzy
Architecture for Intelligent Control of a Servo System and its Experimental Evaluation”,
IEEE 978-1-4244-6392-3/10, 2010.
PIC ile USB Haberleşmesi
[1] http://www.microchip.com/pagehandler/en-
us/technology/usb/microcontrollers/home.html
[2] http://forum.mekatronikmuhendisligi.com/Konu-MikroC-Pro-2012-5-61-lisans-sorunu-
cozuldu-ektedir.html?highlight=mikroc
[3] https://yadi.sk/d/_tCgZQivhdeUm
KAYNAKLAR
Temmuz 2015