SlideShare a Scribd company logo
1 of 34
Java, Android ve Arduino
ile Gömülü Programlama
ve Robotik Uygulamaları
BORA SAYINER
Gündem
◦ Gerçek zamanlı işletim sistemi (RTOS) nedir?
◦ Gömülü sistem (Embedded System) nedir, ne işe yarar?
◦ Farklı platformlar birbirleri ile nasıl haberleşirler? (Android, Arduino, Raspberry Pi …)
◦ Demo (ROBOTO)
Gerçek Zamanlı İşletim Sistemi (RTOS)
Nedir?
Gerçek zamanlı uygulamalar için tasarlanmış, çoklu görev icra edebilen bir işletim sistemidir. RTOS
günümüzde askeri alandan kişisel cihazlara kadar yaygı bir kullanım alanına sahiptir. RTOS iki
bileşenden oluşur. Bunlar;
◦ Gerçek Zaman (Real - Time)
◦ İşletim sistemi
Gerçek Zaman
Gerçek zaman yürütülen işlemlerin cevap verme süresinin belli bir değer arasında olmasıdır. Bu
değer özellikle gömülü sitemlerde önemlidir. Hatta bazı sistemlerde çok kritik bile olabilir. Bu
yüzden bu sistemlerde gerçek zamanı garanti altına alacak bazı mekanizmaların kullanılması
gerekir. Bu açıdan bakıldığında RTOS gerçek zamanı garanti eden bir mekanizmadır.
İşletim Sistemi
İşletim sistemi donanım ile uygulama programları arasında arayüz oluşturan bir sistem programıdır. Bu
programın oluşturduğu soyutlama katmanı ile kullanıcının donanımıma günümüzde kullanılan popüler
yazılım dillerini kullanarak daha kolay ulaşmasını sağlar. RTOS özünde bir işletim sistemi olması
hasebiyle gömülü sistemlerde kullanıldığı zaman tasarımcılara işletim sisteminin sağladığı kolaylıkları
kullanmasına olanak sağlar.
OS birincil görevi uygulama programlarının ihtiyaçlarını karşılamak için donanım kaynaklarının
yönetimini sağlamaktır. Bunu ise aşağıdaki özellikleri sayesinde sağlarlar.
◦ Çoklu Görev (Multitasking)
◦ Senkronizasyon
◦ Kesme ve Olay Yönetimi(Interrupt and Event Handling)
◦ Giriş/Çıkış (Input/Output)
◦ İç Görev iletişimi (Inter Task Communication)
◦ Zamanlama ve saat ( Timers ve Clocks )
◦ Bellek Yönetimi(Memory Management)
Dağıtımlar
Şu anda piyasada bulunan ve en çok kullanılan RTOS dağıtımları aşağıda listelenmiştir
◦ Green Hills Software INTEGRITY
◦ Wind River VxWorks
◦ QNX Neutrino
◦ FreeRTOS
◦ Micrium µC/OS-II, III
◦ Windows CE
◦ TI-RTOS Kernel
Özet (RTOS)
Kısaca özetlemek gerekirse RTOS gerekli bir süre içerisinde mantıksal olarak doğru sonuç elde
edilmesi gereken gerçek zaman uygulamalarında ve gömülü sistemlerde kullanılır. RTOS’un
zamanlama davranışı ve sınırlı kaynak kullanımı niteliğini bu sistemlerde kullanılmasında tercih
sebebidir.
Gömülü Sistem (Embedded Systems)
Nedir?
Gömülü sistem, bilgisayarın kendisini kontrol eden cihaz tarafından içerildiği özel amaçlı bir
sistemdir. Genel maksatlı, örneğin kişisel bilgisayar gibi bir bilgisayardan farklı olarak, gömülü bir
sistem kendisi için önceden özel olarak tanımlanmış görevleri yerine getirir. Sistem belirli bir
amaca yönelik olduğu için tasarım mühendisleri ürünün boyutunu ve maliyetini azaltarak sistemi
uygunlaştırabilirler. Gömülü sistemler genellikle büyük miktarlarda üretildiği için maliyetin
düşürülmesinden elde edilecek kazanç, milyonlarca ürünün katları olarak elde edilebilir.
Gömülü bir sistemin çekirdeğini, belirli bir sayıda görevi yerine getirmek için programlanan
mikroişlemciler ya da mikrodenetleyiciler oluşturur. Kullanıcıların üzerinde istediği yazılımları
çalıştırabildiği genel maksatlı bilgisayarlardan farklı olarak, gömülü sistemlerdeki yazılımlar yarı
kalıcıdırlar ve firmware ismiyle anılırlar.
Gömülü Sistem (Embedded Systems)
Nedir?
Gömülü Sistem Örnekleri
◦ Banka ATM’leri
◦ Uçak kontrol donanım/yazılımı ve uçak ve füzelerdeki havacılık elektroniği parçaları
◦ Cep telefonları
◦ Yönlendirici (router), timeserver ve güvenlik duvarı (firewall), bilgisayar yazıcıları
◦ Fotokopi makineleri
◦ Disket sürücüler (floppy disket sürücüler ve sabit disk sürücüler)
◦ Termostat, klima ve güvenlik izleme sistemleri gibi ev otomasyonu ürünleri
◦ Hesap makineleri
◦ Mikro dalga fırınlar, çamaşır makinesi, televizyon setleri ve DVD oynatıcı/kaydedici gibi ev
elektroniği ürünleri
◦ Tıbbi ekipmanlar
◦ Çok işlevli kol saatleri
Gömülü Sistem Örnekleri
◦ İnternet radyo alıcıları, TV set top box, ve dijital uydu alıcılar gibi çoklu ortam uygulamaları
◦ Çok işlevli yazıcılar
◦ PDA’lar gibi küçük avuç içi bilgisayarlar
◦ PDA ve Java destekli gelişmiş cep telefonları
◦ Endüstriyel otomasyon ve izleme için PLC'ler
◦ Video oyun konsolları ve avuç içi oyun konsolları
◦ Taşınabilir bilgisayarlar
Gömülü Sistem Örnekleri
İşletim Sistemi
Gömülü sistemlerde işletim sistemi olmayabildiği gibi (Örn: PIC, Atmel), Embedded (gömülü) Linux,
WinCE, Android, IOS gibi gelişmiş ya da özelleştirilmiş gömülü işletim sistemleri de kullanılabilir.
Raspberry Pi
Raspberry Pi, Raspberry Pi Foundation tarafından 2009’da geliştirilmeye başlanmış kredi kartı
büyüklüğündeki tek board’dan oluşmuş tam donanımlı bir mini-bilgisayardır.
Teknik Özellikleri:
◦ İşlemci: Broadcom BCM2835 (700MHz, ARM1176JZF-S tabanlı)
◦ Grafik İşlemcisi: Broadcom VideoCore IV (OpenGL ES 2.0, 1080p destekli)
◦ 256MB RAM Yeni modellerde 512MB Ram
◦ 1 adet USB 2.0 (Model B’de 2 tane var)
◦ HDMI yuvası
◦ SD Kart Okuyucu,
◦ 3.5mm ses jakı,
◦ RCA Video Çıkışı,
◦ CSI Bağlantısı
Raspberry Pi
◦ Ethernet (Sadece Model B’de)
◦ İşletim sistemi: Debian GNU/Linux, Fedora, Arch Linux ve türevleri
◦ Düşük Seviye Çevre Birimleri: 8 adet GPIO, UART, I²C bus, SPI bus’la birlikte iki Chip Select, +3.3 V,
+5 V, ground
Raspberry Pi
Arduino
Bir giriş çıkış kartı ve Processing/Wiring dilinin bir uygulamasını içeren geliştirme ortamından, İtalyan
elektronik mühendisleri tarafından açık kaynak kodlu geliştirilen ve isteyen herkesin baskı devreleri
indirerek kendi devrelerini basabilecekleri dilerlerse şık bir görüntüye sahip hazır basılmış ve
bileşenleri yerleştirilmiş halde alabilecekleri, esnek, kolay kullanımlı donanım ve yazılım tabanlı bir
fiziksel programlama platformudur.
Arduino tek başına çalışan interaktif nesneler geliştirmek için kullanılabileceği gibi bilgisayar üzerinde
çalışan yazılımlara da bağlanabilir. Hazır üretilmiş kartlar satın alınabilir veya kendileri üretmek
isteyenler için donanım tasarımı ile ilgili bilgiler mevcuttur.
Arduino geliştirme kartı üzerindeki mikroişlemci Arduino programlama dili (wiring tabanlı) ile
programlanır ve bu program Processing tabanlı Arduino Yazılım Geliştirme Ortamı (IDE) yardımı ile
karta yüklenir.
Arduino
Arduino’ nun özellikleri;
◦ Kolay bir şekilde çevresiyle etkileşime girebilen sistemler tasarlayabilirsiniz
◦ Açık kaynaklı bir geliştirme platformudur.
◦ Arduino kartları üzerinde Atmega firmasının 8 ve 32 bit mikrodenetleyicileri bulunur
◦ Arduino kütüphaneleri ile mikrodenetleyicileri kolaylıkla programlayabilirsiniz
◦ Analog ve dijital girişleri sayesinde analog ve dijital verileri işleyebilirsiniz
◦ Sensörlerden gelen verileri kullanabilirsiniz,
◦ Dış dünyaya çıktılar (ses, ışık, hareket vs…) üretebilirsiniz.
Arduino
Arduino’ nun temel donanım elemanları;
◦ ATmega8, ATmega168, ATmega328 mikroişlemci
◦ 2. 5 voltluk regüle entegresi
◦ 16MHz kristal osilator yada seramik rezonatör
◦ Flash Memory
◦ SRAM
◦ EEPROM
Arduino
Arduino çeşitli kartları;
◦ Arduino Uno
◦ Arduino Leonardo
◦ Arduino Due
◦ Arduino Yun
◦ Arduino Tre
◦ Arduino Micro
◦ Arduino Robot
◦ Arduino Esplora
◦ Arduino Mega ADK
◦ Arduino Ethernet
◦ Arduino Mega 2560
Arduino
Arduino çeşitli kartları;
◦ Arduino Mini
◦ LilyPad Arduino USB
◦ LilyPad Arduino Simple
◦ LilyPad Arduino SimpleSnap
◦ LilyPad Arduino
◦ Arduino Nano
◦ Arduino Pro Mini
◦ Arduino Pro
◦ Arduino Fio
Arduino
Arduino
Haberleşme
Birden fazla elektronik aygıtın haberleşmesi günümüzde protocol denilen bir alt yapı üzerinden
kontrol edilir. Protokol demek haberleşecek olan aygıtların aynı dili konuşması için öngörülen bir
şartname anlamına gelir. Günümüzde birden fazla haberleşme protokolü bulunmaktadır. En çok
kullanılanları;
◦ Ethernet
◦ Wireless LAN
◦ Internet Protocol Suite
◦ SONET/SDH
◦ Asynchronous Transfer Mode (ATM)
◦ Serial Communications
Haberleşme (Serial Communication)
RS-232, Electronic Industries Association tarafından geliştirilmiş ve standart hale getirilmiş bir
konektördür. -15 V ile +15 Voltluk iki voltaj seviyesi arasında bir değer belirleyerek 15 metreyi bulan
bir haberleşme olanağı sunmaktadır. Ayrıca modem, klavye ve fare gibi kısa mesafeli araçlar için de
sayısal veri aktarımı olanağı sunmaktadır.
Haberleşme (Serial Communication)
RS-232 konektöründe veriler ASCII karakterlerinin 8 bitlik tanımlanmaları nedeniyle 8 bitlik
karakterler halinde iletilmektedir. Bu iletim birbiri ardına seri olarak gönderilir. İletim standart olarak
hem senkron hem de asenkron olarak tanımlanmıştır. Gönderici RS-232 konektörü aracılığıyla
gönderilecek olan veriyi belirli bir formatta hazırlar, bu sırada alıcı devamlı olarak hattı dinlemektedir.
Verinin geleceğini belirten bir işaret ile alıcı veriyi depolar ve karakterlere dönüştürür.
RS-232 konektöründe eksi voltaj birimi 1, artı voltaj birimi ise 0 olarak standart hale getirilmiştir.
(Negative Logic) Ayrıca hattın boş olması durumu da 1 ile ifade edilir. Voltajın artı haline geçmesi veri
gönderileceğinin işaretidir. Bu durum başlangıç biti olarak ifade edilir. Ardından gönderilen karakter
dizilimi alıcı tarafından depolanır ve yorumlanarak karakter setleri haline dökülür. Her karakterin
sonuna ise bir bitiş biti olan 0 eklenir.
Haberleşme (ZigBee)
ZigBee, kişisel alan ağları için kullanılan bir IEEE 802 standardına göre küçük, düşük güçlü dijital
radyolar kullanılarak oluşturulan yüksek düzeyde iletişim protokollerinin özelleştirilmesidir.
Uygulamalarda, kablosuz ışık anahtarları, ev-içi-ekranlar ile elektrik sayaçları ve diğer tüketicinin ve
endüstriyel ekipmanın düşük oranlarda veriyi kısa menzilli kablosuz transferi bulunmaktadır.
ZigBee özelleştirmesi tarafından tanımlanan teknoloji, diğer WPANs'lardan (Bluetooth gibi) daha
basit ve daha ucuz olmasına yöneliktir. ZigBee radyo frekansı(RF), düşük veri hızı, uzun pil ömrü ve
güvenli ağ gerektiren uygulamalar hedeflemiştir. ZigBee'nin 250 kbps tanımlanmış hızı, iyi bir sensör
veya giriş cihazından, periyodik veya aralıklı ,veri veya tek bir sinyal iletimi için uygundur. ZigBee
tabanlı trafik yönetimi sistemi de uygulamaya konulmuştur. Adını, bal arılarının arı kovanı etrafında
sallanarak dönüşlerinden almıştır.
Haberleşme (ZigBee)
◦ Temel Uygulamalar
◦ ZigBee ev otomasyonu
◦ ZigBee Akıllı Enerji 1.0
◦ ZigBee Telekomünikasyon Hizmetleri
◦ ZigBee Sağlık
◦ ZigBee RF4CE-Uzaktan Kumanda
◦ ZigBee Akıllı Enerji 2.0
◦ ZigBee Bina Otomasyonu
◦ ZigBee Perakende Hizmetler
◦ ZigBee Işık Bağlantı
Haberleşme (ZigBee)
◦ Temel Uygulamalar
◦ ZigBee ev otomasyonu
◦ ZigBee Akıllı Enerji 1.0
◦ ZigBee Telekomünikasyon Hizmetleri
◦ ZigBee Sağlık
◦ ZigBee RF4CE-Uzaktan Kumanda
◦ ZigBee Akıllı Enerji 2.0
◦ ZigBee Bina Otomasyonu
◦ ZigBee Perakende Hizmetler
◦ ZigBee Işık Bağlantı
Haberleşme (ZigBee)
Demo (ROBOTO)
◦ ROBOTO Arduino, Android ve ZigBee teknolojileri kullanılarak geliştirilmiş bir robottur.
◦ ZigBee modülü sayesinde farklı elektronik aygıtlar ile haberleşebilir.
◦ Ultra-sonic mesafe bulucu sensor ile önündeki cisimlerin uzaklığını mobil aygıtlara gönderebilir.
◦ Sıcaklık ve Nem sensöründen okunan bilgiler ZigBee üzerinden diğer cihazlar ile paylaşılabilir.
Demo (ROBOTO)
ROBOTO’ da kullanılan donanım listesi aşağıda olduğu gibidir
◦ Arduino UNO R3
◦ Arduino Motor Shield Rev3
◦ Arduino Wireless Proto - XBee SD Shield
◦ XBee 1mW (Wire Antenna) (x2)
◦ XBee Explorer Dongle
◦ Tower Pro SG90 RC Mini Servo Motor
◦ HC-SR04 Ultrasonik Mesafe Sensörü
◦ Micro Usb OTG Kablo
◦ 4WD Robot Akıllı Araç Şasi
Demo (ROBOTO)
Sorular?

More Related Content

What's hot

OFI Overview 2019 Webinar
OFI Overview 2019 WebinarOFI Overview 2019 Webinar
OFI Overview 2019 Webinarseanhefty
 
Swagman - Converting Postman Collection to Swagger Build
Swagman - Converting Postman Collection to Swagger BuildSwagman - Converting Postman Collection to Swagger Build
Swagman - Converting Postman Collection to Swagger BuildAjinkya Dubey
 
Understanding GIT and Version Control
Understanding GIT and Version ControlUnderstanding GIT and Version Control
Understanding GIT and Version ControlSourabh Sahu
 
Implementation of Pipe in Linux
Implementation of Pipe in LinuxImplementation of Pipe in Linux
Implementation of Pipe in LinuxTushar B Kute
 
Linux Yaz Kampı 2017 GNU/Linux Eğitim Dökümanı
Linux Yaz Kampı 2017 GNU/Linux Eğitim DökümanıLinux Yaz Kampı 2017 GNU/Linux Eğitim Dökümanı
Linux Yaz Kampı 2017 GNU/Linux Eğitim Dökümanıİbrahim UÇAR
 
Uygulama katmani ve ağ protokolleri̇
Uygulama katmani ve ağ protokolleri̇Uygulama katmani ve ağ protokolleri̇
Uygulama katmani ve ağ protokolleri̇Esra Acar
 
도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편Sam Kim
 
OpenWRT guide and memo
OpenWRT guide and memoOpenWRT guide and memo
OpenWRT guide and memo家榮 吳
 
BPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLabBPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLabTaeung Song
 
Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notlarıercanbulus
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to GitColin Su
 
Advanced Namespaces and cgroups
Advanced Namespaces and cgroupsAdvanced Namespaces and cgroups
Advanced Namespaces and cgroupsKernel TLV
 
Bilgisayar AğLari Ve YöNetimi Sunum
Bilgisayar AğLari Ve YöNetimi SunumBilgisayar AğLari Ve YöNetimi Sunum
Bilgisayar AğLari Ve YöNetimi Sunumlaika
 
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git민태 김
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de gitJulien Blin
 
Container Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyondContainer Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyondKubeAcademy
 
Linux'a Giris ve VirtualBox a Ubuntu Kurulumu
Linux'a Giris ve VirtualBox a Ubuntu KurulumuLinux'a Giris ve VirtualBox a Ubuntu Kurulumu
Linux'a Giris ve VirtualBox a Ubuntu KurulumuAhmet Gürel
 

What's hot (20)

OFI Overview 2019 Webinar
OFI Overview 2019 WebinarOFI Overview 2019 Webinar
OFI Overview 2019 Webinar
 
Swagman - Converting Postman Collection to Swagger Build
Swagman - Converting Postman Collection to Swagger BuildSwagman - Converting Postman Collection to Swagger Build
Swagman - Converting Postman Collection to Swagger Build
 
Understanding GIT and Version Control
Understanding GIT and Version ControlUnderstanding GIT and Version Control
Understanding GIT and Version Control
 
Implementation of Pipe in Linux
Implementation of Pipe in LinuxImplementation of Pipe in Linux
Implementation of Pipe in Linux
 
Linux Yaz Kampı 2017 GNU/Linux Eğitim Dökümanı
Linux Yaz Kampı 2017 GNU/Linux Eğitim DökümanıLinux Yaz Kampı 2017 GNU/Linux Eğitim Dökümanı
Linux Yaz Kampı 2017 GNU/Linux Eğitim Dökümanı
 
Uygulama katmani ve ağ protokolleri̇
Uygulama katmani ve ağ protokolleri̇Uygulama katmani ve ağ protokolleri̇
Uygulama katmani ve ağ protokolleri̇
 
도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편
 
OpenWRT guide and memo
OpenWRT guide and memoOpenWRT guide and memo
OpenWRT guide and memo
 
BPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLabBPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLab
 
Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notları
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
DRIVE PX 2
DRIVE PX 2DRIVE PX 2
DRIVE PX 2
 
Advanced Namespaces and cgroups
Advanced Namespaces and cgroupsAdvanced Namespaces and cgroups
Advanced Namespaces and cgroups
 
Bilgisayar AğLari Ve YöNetimi Sunum
Bilgisayar AğLari Ve YöNetimi SunumBilgisayar AğLari Ve YöNetimi Sunum
Bilgisayar AğLari Ve YöNetimi Sunum
 
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Nginx Essential
Nginx EssentialNginx Essential
Nginx Essential
 
Container Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyondContainer Network Interface: Network Plugins for Kubernetes and beyond
Container Network Interface: Network Plugins for Kubernetes and beyond
 
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim SunumuBTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
 
Linux'a Giris ve VirtualBox a Ubuntu Kurulumu
Linux'a Giris ve VirtualBox a Ubuntu KurulumuLinux'a Giris ve VirtualBox a Ubuntu Kurulumu
Linux'a Giris ve VirtualBox a Ubuntu Kurulumu
 

Similar to Java, android ve arduino ile gömülü programlama

Bilgisayar Donanımı
Bilgisayar DonanımıBilgisayar Donanımı
Bilgisayar Donanımıfarukdemir47
 
Donanim
DonanimDonanim
Donanimniyazi
 
Arduino ve Kablosuz Haberleşme Modülleri
Arduino ve Kablosuz Haberleşme ModülleriArduino ve Kablosuz Haberleşme Modülleri
Arduino ve Kablosuz Haberleşme ModülleriResul Rıza Dolaner
 
Arduino ve Kablosuz Haberleşme Modülleri
Arduino ve Kablosuz Haberleşme ModülleriArduino ve Kablosuz Haberleşme Modülleri
Arduino ve Kablosuz Haberleşme ModülleriResul Rıza Dolaner
 
Windows 8 Ögretim Materyali
Windows 8 Ögretim MateryaliWindows 8 Ögretim Materyali
Windows 8 Ögretim MateryaliCaner Öztürkten
 
ARM Mimarisinde Exploit Geliştirme
ARM Mimarisinde Exploit GeliştirmeARM Mimarisinde Exploit Geliştirme
ARM Mimarisinde Exploit GeliştirmeSignalSEC Ltd.
 
Endüstriyel Haberleşme Protokolleri
Endüstriyel Haberleşme ProtokolleriEndüstriyel Haberleşme Protokolleri
Endüstriyel Haberleşme ProtokolleriMurathan Akın
 
ferhat gör
ferhat görferhat gör
ferhat görferhat36
 
Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduino
Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with NetduinoBilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduino
Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduinosipahigokhan
 

Similar to Java, android ve arduino ile gömülü programlama (20)

Bilgisayar Donanımı
Bilgisayar DonanımıBilgisayar Donanımı
Bilgisayar Donanımı
 
Donanim
DonanimDonanim
Donanim
 
Arduino ve Kablosuz Haberleşme Modülleri
Arduino ve Kablosuz Haberleşme ModülleriArduino ve Kablosuz Haberleşme Modülleri
Arduino ve Kablosuz Haberleşme Modülleri
 
Arduino ve Kablosuz Haberleşme Modülleri
Arduino ve Kablosuz Haberleşme ModülleriArduino ve Kablosuz Haberleşme Modülleri
Arduino ve Kablosuz Haberleşme Modülleri
 
Bilgisayar
 Bilgisayar Bilgisayar
Bilgisayar
 
Bilgisayar
 Bilgisayar Bilgisayar
Bilgisayar
 
Windows 8 Ögretim Materyali
Windows 8 Ögretim MateryaliWindows 8 Ögretim Materyali
Windows 8 Ögretim Materyali
 
Bilgisayara Giriş 1
Bilgisayara Giriş 1Bilgisayara Giriş 1
Bilgisayara Giriş 1
 
İşlemciler
İşlemcilerİşlemciler
İşlemciler
 
ARM Mimarisinde Exploit Geliştirme
ARM Mimarisinde Exploit GeliştirmeARM Mimarisinde Exploit Geliştirme
ARM Mimarisinde Exploit Geliştirme
 
Bilgi Teknolojilerine Giriş
Bilgi Teknolojilerine GirişBilgi Teknolojilerine Giriş
Bilgi Teknolojilerine Giriş
 
Prtg Network Monitor
Prtg Network MonitorPrtg Network Monitor
Prtg Network Monitor
 
Anakartlar
AnakartlarAnakartlar
Anakartlar
 
Ekran Kartları
Ekran KartlarıEkran Kartları
Ekran Kartları
 
PIC Programlama, Assembly ve Komutlar
PIC Programlama, Assembly ve KomutlarPIC Programlama, Assembly ve Komutlar
PIC Programlama, Assembly ve Komutlar
 
Sistem3
Sistem3Sistem3
Sistem3
 
Motherboards
MotherboardsMotherboards
Motherboards
 
Endüstriyel Haberleşme Protokolleri
Endüstriyel Haberleşme ProtokolleriEndüstriyel Haberleşme Protokolleri
Endüstriyel Haberleşme Protokolleri
 
ferhat gör
ferhat görferhat gör
ferhat gör
 
Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduino
Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with NetduinoBilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduino
Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduino
 

Java, android ve arduino ile gömülü programlama

  • 1. Java, Android ve Arduino ile Gömülü Programlama ve Robotik Uygulamaları BORA SAYINER
  • 2. Gündem ◦ Gerçek zamanlı işletim sistemi (RTOS) nedir? ◦ Gömülü sistem (Embedded System) nedir, ne işe yarar? ◦ Farklı platformlar birbirleri ile nasıl haberleşirler? (Android, Arduino, Raspberry Pi …) ◦ Demo (ROBOTO)
  • 3. Gerçek Zamanlı İşletim Sistemi (RTOS) Nedir? Gerçek zamanlı uygulamalar için tasarlanmış, çoklu görev icra edebilen bir işletim sistemidir. RTOS günümüzde askeri alandan kişisel cihazlara kadar yaygı bir kullanım alanına sahiptir. RTOS iki bileşenden oluşur. Bunlar; ◦ Gerçek Zaman (Real - Time) ◦ İşletim sistemi
  • 4. Gerçek Zaman Gerçek zaman yürütülen işlemlerin cevap verme süresinin belli bir değer arasında olmasıdır. Bu değer özellikle gömülü sitemlerde önemlidir. Hatta bazı sistemlerde çok kritik bile olabilir. Bu yüzden bu sistemlerde gerçek zamanı garanti altına alacak bazı mekanizmaların kullanılması gerekir. Bu açıdan bakıldığında RTOS gerçek zamanı garanti eden bir mekanizmadır.
  • 5. İşletim Sistemi İşletim sistemi donanım ile uygulama programları arasında arayüz oluşturan bir sistem programıdır. Bu programın oluşturduğu soyutlama katmanı ile kullanıcının donanımıma günümüzde kullanılan popüler yazılım dillerini kullanarak daha kolay ulaşmasını sağlar. RTOS özünde bir işletim sistemi olması hasebiyle gömülü sistemlerde kullanıldığı zaman tasarımcılara işletim sisteminin sağladığı kolaylıkları kullanmasına olanak sağlar. OS birincil görevi uygulama programlarının ihtiyaçlarını karşılamak için donanım kaynaklarının yönetimini sağlamaktır. Bunu ise aşağıdaki özellikleri sayesinde sağlarlar. ◦ Çoklu Görev (Multitasking) ◦ Senkronizasyon ◦ Kesme ve Olay Yönetimi(Interrupt and Event Handling) ◦ Giriş/Çıkış (Input/Output) ◦ İç Görev iletişimi (Inter Task Communication) ◦ Zamanlama ve saat ( Timers ve Clocks ) ◦ Bellek Yönetimi(Memory Management)
  • 6. Dağıtımlar Şu anda piyasada bulunan ve en çok kullanılan RTOS dağıtımları aşağıda listelenmiştir ◦ Green Hills Software INTEGRITY ◦ Wind River VxWorks ◦ QNX Neutrino ◦ FreeRTOS ◦ Micrium µC/OS-II, III ◦ Windows CE ◦ TI-RTOS Kernel
  • 7. Özet (RTOS) Kısaca özetlemek gerekirse RTOS gerekli bir süre içerisinde mantıksal olarak doğru sonuç elde edilmesi gereken gerçek zaman uygulamalarında ve gömülü sistemlerde kullanılır. RTOS’un zamanlama davranışı ve sınırlı kaynak kullanımı niteliğini bu sistemlerde kullanılmasında tercih sebebidir.
  • 8. Gömülü Sistem (Embedded Systems) Nedir? Gömülü sistem, bilgisayarın kendisini kontrol eden cihaz tarafından içerildiği özel amaçlı bir sistemdir. Genel maksatlı, örneğin kişisel bilgisayar gibi bir bilgisayardan farklı olarak, gömülü bir sistem kendisi için önceden özel olarak tanımlanmış görevleri yerine getirir. Sistem belirli bir amaca yönelik olduğu için tasarım mühendisleri ürünün boyutunu ve maliyetini azaltarak sistemi uygunlaştırabilirler. Gömülü sistemler genellikle büyük miktarlarda üretildiği için maliyetin düşürülmesinden elde edilecek kazanç, milyonlarca ürünün katları olarak elde edilebilir. Gömülü bir sistemin çekirdeğini, belirli bir sayıda görevi yerine getirmek için programlanan mikroişlemciler ya da mikrodenetleyiciler oluşturur. Kullanıcıların üzerinde istediği yazılımları çalıştırabildiği genel maksatlı bilgisayarlardan farklı olarak, gömülü sistemlerdeki yazılımlar yarı kalıcıdırlar ve firmware ismiyle anılırlar.
  • 9. Gömülü Sistem (Embedded Systems) Nedir?
  • 10. Gömülü Sistem Örnekleri ◦ Banka ATM’leri ◦ Uçak kontrol donanım/yazılımı ve uçak ve füzelerdeki havacılık elektroniği parçaları ◦ Cep telefonları ◦ Yönlendirici (router), timeserver ve güvenlik duvarı (firewall), bilgisayar yazıcıları ◦ Fotokopi makineleri ◦ Disket sürücüler (floppy disket sürücüler ve sabit disk sürücüler) ◦ Termostat, klima ve güvenlik izleme sistemleri gibi ev otomasyonu ürünleri ◦ Hesap makineleri ◦ Mikro dalga fırınlar, çamaşır makinesi, televizyon setleri ve DVD oynatıcı/kaydedici gibi ev elektroniği ürünleri ◦ Tıbbi ekipmanlar ◦ Çok işlevli kol saatleri
  • 11. Gömülü Sistem Örnekleri ◦ İnternet radyo alıcıları, TV set top box, ve dijital uydu alıcılar gibi çoklu ortam uygulamaları ◦ Çok işlevli yazıcılar ◦ PDA’lar gibi küçük avuç içi bilgisayarlar ◦ PDA ve Java destekli gelişmiş cep telefonları ◦ Endüstriyel otomasyon ve izleme için PLC'ler ◦ Video oyun konsolları ve avuç içi oyun konsolları ◦ Taşınabilir bilgisayarlar
  • 13. İşletim Sistemi Gömülü sistemlerde işletim sistemi olmayabildiği gibi (Örn: PIC, Atmel), Embedded (gömülü) Linux, WinCE, Android, IOS gibi gelişmiş ya da özelleştirilmiş gömülü işletim sistemleri de kullanılabilir.
  • 14. Raspberry Pi Raspberry Pi, Raspberry Pi Foundation tarafından 2009’da geliştirilmeye başlanmış kredi kartı büyüklüğündeki tek board’dan oluşmuş tam donanımlı bir mini-bilgisayardır. Teknik Özellikleri: ◦ İşlemci: Broadcom BCM2835 (700MHz, ARM1176JZF-S tabanlı) ◦ Grafik İşlemcisi: Broadcom VideoCore IV (OpenGL ES 2.0, 1080p destekli) ◦ 256MB RAM Yeni modellerde 512MB Ram ◦ 1 adet USB 2.0 (Model B’de 2 tane var) ◦ HDMI yuvası ◦ SD Kart Okuyucu, ◦ 3.5mm ses jakı, ◦ RCA Video Çıkışı, ◦ CSI Bağlantısı
  • 15. Raspberry Pi ◦ Ethernet (Sadece Model B’de) ◦ İşletim sistemi: Debian GNU/Linux, Fedora, Arch Linux ve türevleri ◦ Düşük Seviye Çevre Birimleri: 8 adet GPIO, UART, I²C bus, SPI bus’la birlikte iki Chip Select, +3.3 V, +5 V, ground
  • 17. Arduino Bir giriş çıkış kartı ve Processing/Wiring dilinin bir uygulamasını içeren geliştirme ortamından, İtalyan elektronik mühendisleri tarafından açık kaynak kodlu geliştirilen ve isteyen herkesin baskı devreleri indirerek kendi devrelerini basabilecekleri dilerlerse şık bir görüntüye sahip hazır basılmış ve bileşenleri yerleştirilmiş halde alabilecekleri, esnek, kolay kullanımlı donanım ve yazılım tabanlı bir fiziksel programlama platformudur. Arduino tek başına çalışan interaktif nesneler geliştirmek için kullanılabileceği gibi bilgisayar üzerinde çalışan yazılımlara da bağlanabilir. Hazır üretilmiş kartlar satın alınabilir veya kendileri üretmek isteyenler için donanım tasarımı ile ilgili bilgiler mevcuttur. Arduino geliştirme kartı üzerindeki mikroişlemci Arduino programlama dili (wiring tabanlı) ile programlanır ve bu program Processing tabanlı Arduino Yazılım Geliştirme Ortamı (IDE) yardımı ile karta yüklenir.
  • 18. Arduino Arduino’ nun özellikleri; ◦ Kolay bir şekilde çevresiyle etkileşime girebilen sistemler tasarlayabilirsiniz ◦ Açık kaynaklı bir geliştirme platformudur. ◦ Arduino kartları üzerinde Atmega firmasının 8 ve 32 bit mikrodenetleyicileri bulunur ◦ Arduino kütüphaneleri ile mikrodenetleyicileri kolaylıkla programlayabilirsiniz ◦ Analog ve dijital girişleri sayesinde analog ve dijital verileri işleyebilirsiniz ◦ Sensörlerden gelen verileri kullanabilirsiniz, ◦ Dış dünyaya çıktılar (ses, ışık, hareket vs…) üretebilirsiniz.
  • 19. Arduino Arduino’ nun temel donanım elemanları; ◦ ATmega8, ATmega168, ATmega328 mikroişlemci ◦ 2. 5 voltluk regüle entegresi ◦ 16MHz kristal osilator yada seramik rezonatör ◦ Flash Memory ◦ SRAM ◦ EEPROM
  • 20. Arduino Arduino çeşitli kartları; ◦ Arduino Uno ◦ Arduino Leonardo ◦ Arduino Due ◦ Arduino Yun ◦ Arduino Tre ◦ Arduino Micro ◦ Arduino Robot ◦ Arduino Esplora ◦ Arduino Mega ADK ◦ Arduino Ethernet ◦ Arduino Mega 2560
  • 21. Arduino Arduino çeşitli kartları; ◦ Arduino Mini ◦ LilyPad Arduino USB ◦ LilyPad Arduino Simple ◦ LilyPad Arduino SimpleSnap ◦ LilyPad Arduino ◦ Arduino Nano ◦ Arduino Pro Mini ◦ Arduino Pro ◦ Arduino Fio
  • 24. Haberleşme Birden fazla elektronik aygıtın haberleşmesi günümüzde protocol denilen bir alt yapı üzerinden kontrol edilir. Protokol demek haberleşecek olan aygıtların aynı dili konuşması için öngörülen bir şartname anlamına gelir. Günümüzde birden fazla haberleşme protokolü bulunmaktadır. En çok kullanılanları; ◦ Ethernet ◦ Wireless LAN ◦ Internet Protocol Suite ◦ SONET/SDH ◦ Asynchronous Transfer Mode (ATM) ◦ Serial Communications
  • 25. Haberleşme (Serial Communication) RS-232, Electronic Industries Association tarafından geliştirilmiş ve standart hale getirilmiş bir konektördür. -15 V ile +15 Voltluk iki voltaj seviyesi arasında bir değer belirleyerek 15 metreyi bulan bir haberleşme olanağı sunmaktadır. Ayrıca modem, klavye ve fare gibi kısa mesafeli araçlar için de sayısal veri aktarımı olanağı sunmaktadır.
  • 26. Haberleşme (Serial Communication) RS-232 konektöründe veriler ASCII karakterlerinin 8 bitlik tanımlanmaları nedeniyle 8 bitlik karakterler halinde iletilmektedir. Bu iletim birbiri ardına seri olarak gönderilir. İletim standart olarak hem senkron hem de asenkron olarak tanımlanmıştır. Gönderici RS-232 konektörü aracılığıyla gönderilecek olan veriyi belirli bir formatta hazırlar, bu sırada alıcı devamlı olarak hattı dinlemektedir. Verinin geleceğini belirten bir işaret ile alıcı veriyi depolar ve karakterlere dönüştürür. RS-232 konektöründe eksi voltaj birimi 1, artı voltaj birimi ise 0 olarak standart hale getirilmiştir. (Negative Logic) Ayrıca hattın boş olması durumu da 1 ile ifade edilir. Voltajın artı haline geçmesi veri gönderileceğinin işaretidir. Bu durum başlangıç biti olarak ifade edilir. Ardından gönderilen karakter dizilimi alıcı tarafından depolanır ve yorumlanarak karakter setleri haline dökülür. Her karakterin sonuna ise bir bitiş biti olan 0 eklenir.
  • 27. Haberleşme (ZigBee) ZigBee, kişisel alan ağları için kullanılan bir IEEE 802 standardına göre küçük, düşük güçlü dijital radyolar kullanılarak oluşturulan yüksek düzeyde iletişim protokollerinin özelleştirilmesidir. Uygulamalarda, kablosuz ışık anahtarları, ev-içi-ekranlar ile elektrik sayaçları ve diğer tüketicinin ve endüstriyel ekipmanın düşük oranlarda veriyi kısa menzilli kablosuz transferi bulunmaktadır. ZigBee özelleştirmesi tarafından tanımlanan teknoloji, diğer WPANs'lardan (Bluetooth gibi) daha basit ve daha ucuz olmasına yöneliktir. ZigBee radyo frekansı(RF), düşük veri hızı, uzun pil ömrü ve güvenli ağ gerektiren uygulamalar hedeflemiştir. ZigBee'nin 250 kbps tanımlanmış hızı, iyi bir sensör veya giriş cihazından, periyodik veya aralıklı ,veri veya tek bir sinyal iletimi için uygundur. ZigBee tabanlı trafik yönetimi sistemi de uygulamaya konulmuştur. Adını, bal arılarının arı kovanı etrafında sallanarak dönüşlerinden almıştır.
  • 28. Haberleşme (ZigBee) ◦ Temel Uygulamalar ◦ ZigBee ev otomasyonu ◦ ZigBee Akıllı Enerji 1.0 ◦ ZigBee Telekomünikasyon Hizmetleri ◦ ZigBee Sağlık ◦ ZigBee RF4CE-Uzaktan Kumanda ◦ ZigBee Akıllı Enerji 2.0 ◦ ZigBee Bina Otomasyonu ◦ ZigBee Perakende Hizmetler ◦ ZigBee Işık Bağlantı
  • 29. Haberleşme (ZigBee) ◦ Temel Uygulamalar ◦ ZigBee ev otomasyonu ◦ ZigBee Akıllı Enerji 1.0 ◦ ZigBee Telekomünikasyon Hizmetleri ◦ ZigBee Sağlık ◦ ZigBee RF4CE-Uzaktan Kumanda ◦ ZigBee Akıllı Enerji 2.0 ◦ ZigBee Bina Otomasyonu ◦ ZigBee Perakende Hizmetler ◦ ZigBee Işık Bağlantı
  • 31. Demo (ROBOTO) ◦ ROBOTO Arduino, Android ve ZigBee teknolojileri kullanılarak geliştirilmiş bir robottur. ◦ ZigBee modülü sayesinde farklı elektronik aygıtlar ile haberleşebilir. ◦ Ultra-sonic mesafe bulucu sensor ile önündeki cisimlerin uzaklığını mobil aygıtlara gönderebilir. ◦ Sıcaklık ve Nem sensöründen okunan bilgiler ZigBee üzerinden diğer cihazlar ile paylaşılabilir.
  • 32. Demo (ROBOTO) ROBOTO’ da kullanılan donanım listesi aşağıda olduğu gibidir ◦ Arduino UNO R3 ◦ Arduino Motor Shield Rev3 ◦ Arduino Wireless Proto - XBee SD Shield ◦ XBee 1mW (Wire Antenna) (x2) ◦ XBee Explorer Dongle ◦ Tower Pro SG90 RC Mini Servo Motor ◦ HC-SR04 Ultrasonik Mesafe Sensörü ◦ Micro Usb OTG Kablo ◦ 4WD Robot Akıllı Araç Şasi