T.C. KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ



Benzer belgeler
T.C. KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

NB Ekran Seri Port Üzerinden Veri Okuma/Yazma. Genel Bilgi Protokol Oluşturma Veri Okuma Veri Yazma

EC-485. Ethernet RS485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

Bir port aynı anda bir process tarafından dinlenebilir. Fakat bir process birden fazla portu dinleyebilir.

J-Guar Self Servis Kurulumu

EC-232C. Ethernet RS232 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

NOT: LÜTFEN BU BELGEYİ OKUMADAN YAZILIMI YÜKLEMEYİ DENEMEYİN.

NOT: BU BELGEYİ OKUMADAN LÜTFEN YAZILIMI YÜKLEMEYE ÇALIŞMAYIN.

BAY.t ENTEGRE PRO e-fatura ÇÖZÜMÜ ENTEGRATÖR KULLANIM YÖNTEMİ

EC-100. Ethernet RS232/422/485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

KULLANICI KILAVUZU: UEA FİX KULLANICILARININ SSLVPN ERİŞİMİ İMKB İÇİNDEKİLER

ML TFT 5 ARAYÜZ KULLANIM KILAVUZU

MCR02-AE Ethernet Temassız Kart Okuyucu

NJ İLE UDP/IP ÜZERİNDEN SOKET SERVİS. 1) Soket Servis 2) Soket Servis Ayarları 3) Soket Servis Komutları 4) Örnek Uygulama 5) Multiway

1. PROGRAMLAMA. PDF created with pdffactory Pro trial version

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

WINDOWS VE PARDUS İÇİN İMZAGER KURULUM TALİMATI

E-FATURA LOGO ENTEGRATÖRLÜK UYGULAMASI

WiFi RS232 Converter Sayfa 1 / 12. WiFi RS232 Converter. Teknik Döküman

Şekil 2.1 : Şekil 2.2 : Şekil 2.3 :

2013 Yıl Sonu İşlemleri

Kurumsal Güvenlik ve Web Filtreleme

Xpectia-CP1L-E Ethernet Haberleşmesi (TCP/IP) Giriş Xpectia Haberleşme Ayarları PLC Haberleşme Ayarları Referanslar

Kurumsal Güvenlik ve Web Filtreleme

Adım Adım Panel Programlama

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

BİL-142 Bilgisayar Programlama II

NX-CIF105 MODBUS CIF MANAGER. NX-CIF105 CIF MANAGER CIF105 Ayarları CIF Mapping yazılımı Yazılım yapısı

Çizgi İzleyen Robot Yapımı

Kets DocPlace LOGO Entegrasyonu

FABREKA YAZILIM ELEKTRONİK DANIŞMANLIK TİC. LTD. ŞTİ.

DM-501 Tak-Çalıştır GPRS-UART Köprüsü

AntiKor Güvenlik Sunucumu nereye yerleştirmeliyim?

DESTEK DOKÜMANI. Ürün : Tiger Enterprise/ Tiger Plus/ Go Plus/Go Bölüm : Kurulum İşlemleri

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

1. LabVIEW ile Programlama

NA VNC SERVER KULLANIMI. Genel Bilgi NA VNC Server Ayarları

AKİS ARAYÜZ YAZILIMI KURULUM VE KULLANIM KILAVUZU

Aktif Dizin Logon/Logoff Script Ayarları Versiyon

Clonera Bütünleşik İş Sürekliliği Gereksinimler ve Kurulum Dökümanı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

MOBİL İMZA KULLANIM AMAÇLI NİTELİKLİ ELEKTRONİK SERTİFİKA BAŞVURU TALİMATI

Yedek Almak ve Yedekten Geri Dönmek

Öğr. Gör. Serkan AKSU 1

Qsign Manager. Digital Signage Software Hızlı Başlangıç Kılavuzu

efatura UYGULAMASI HAKKINDA

Programlama Kılavuzu. MS48IP IP Santrali

AKINSOFT. Eofis NetworkAdmin. AKINSOFT EOfis NetworkAdmin Kurulumu Bilgi Notu. Doküman Versiyon : Tarih : Copyright 2008 AKINSOFT

Bilgi ve Olay Yönetim Sistemi

FortiGate (Terminal Server) Terminal Sunucu Üzerinden Gelen Kullanıcılar

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

GÖRÜNTÜ TABANLI ALGILAMA İLE QUADROTORUN HAREKETLİ BİR CİSMİ TAKİBİ

KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

Checkpoint SSL-VPN Kurulum Prosedürü. Checkpoint Endpoint VPN Client

Ağ Nedir? Birden fazla bilgisayarın iletişimini sağlayan printer vb. kaynakları, daha iyi ve ortaklaşa kullanımı sağlayan yapılara denir.

1. Defter detaylarına ait bilgilerin, örneğin yevmiye kayıtlarının olduğu dosya 2. Bir nevi kapak sayfası diyebileceğimiz Berat dosyası

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

Kurulum (Windows)...3

Python Programlama Dili

EFT-POS ÖZELLİKLİ MALİ YAZAR KASA CİHAZ EŞLEŞTİRME İŞLEM AKIŞLARI

WN-150U Wireless USB Adaptör

SAKARYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ GÖMÜLÜ SİSTEMLER DENEY FÖYÜ

BİLGİ İŞLEM DERS 1. Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ MSGSU FİZİK BÖLÜMÜ

Web Servis-Web Sitesi Bağlantısı

Data Structures Lab Güz

1. Mutabakat.zip dosyası açılır. 2. Mutabakat klasörü içindeki Mutabakat.exe dosyası çalıştırılır.

HSancak Nesne Tabanlı Programlama I Ders Notları

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı

2019

Programlama. Simdide 1 den 10 a kadar olan sayilari yazdiralim. 1 den 10 e kadar olan sayilarin karesini yazdiralim. Do[Print[Mathematica], 5]

1. Zamanbaz Hakkında Zamanbaz Kurulumu Zamanbaz Sistem Gereksinimleri Zamanbaz Kurulumu... 3

MATLAB A GİRİŞ. EE-346 Hafta-1 Dr. Ayşe DEMİRHAN

FOUR FAİTH F2114 GPRS MODEM İLE ANALOG I/O ÜZERİNDEN HABERLEŞME KILAVUZU

Kurulum; Ana Bilgisayar ve Tahtalara ayrı ayrı yapılmaktadır. KURULUM ŞEMASI x.x x.x x.x x.

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

ARG Ses Kayıt Sistemi KURULUM YÖNERGESİ

DY-45 OSĐLOSKOP KĐTĐ. Kullanma Kılavuzu

VET ON KULLANIM KLAVUZU

Zirve e-fatura Portal Paketi V. 1.0.xx

İNTERNET EXPLORER AYARLARI 1. Başlat-Ayarlar-Denetim Masası menüsünden "İnternet Özellikleri" (Seçenekleri)'ni seçiniz. Resim. 1

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız.

PİC HAKKINDA KISA KISA BİLGİLER GİRİŞ/ÇIKIŞ PORTLARI

Liste Yükleme Ekranı Kullanım Kılavuzu

Turquaz Windows kurulum dökümanı. ftp://ftp.mirror.ac.uk/sites/ftp.postgresql.org/binary/v7.3.1/windows/pgsql731wina1.exe

TachoMobile Server Uygulaması Kullanım Kılavuzu

ÇÖZÜM B İLG İ S AYAR

BQ120 GSM GRPS SERİ DÖNÜŞTÜRÜCÜ RS232 / RS485. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

HAL KAYIT SİSTEMİ HAL HAKEM HEYETİ İŞLEMLERİ KULLANICI KILAVUZU

Web Formlar ve Sayfalar Arasında Bilgi Gönderme. BATML İnternet Programcılığı 1

WebInstaller. 1. Kurulum Đçin Gereksinimler

DELTA PLC EĞİTİM SETİ KİTAPÇIĞI

ZS-SU-4500 SDI-12 USB ÇEVİRİCİ KULLANIM KILAVUZU

E-Fatura Entegratör Paketi V Kullanım Kılavuzu

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

SİGORTACILIK İÇİN FARKLI BİR GELECEK TASARIMI

E-İMZA OTOMATİK KURULUM PAKETİ DÖKÜMANI

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

MARMARA ÜNİVERSİTESİ

Transkript:

T.C. KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRONİK VE HABERLEŞME MÜHENDİSLİĞİ Mikroişlemci Uygulamaları Ders Projesi Beaglebone Black ile Webcam Streaming ve Servo Kontrolü Melih YILDIRIM 100208006

Giriş Bu çalışmada Beaglebone Black kullanılarak yerel ağ tabanlı Webcam streaming ve servo kontrolü yapılmıştır. Temel gereksinimler : Beaglebone Black Webcam (Logitech C120 kullanılmıştır.) Servo (Futaba S3003 kullanılmıştır.) Arayüz Program Board Direnç 5Volt Harici güç kaynağı Bağlantı Telleri BBB de harici 16GB microsd karta kurulu Angstrom GNU/Linux v2012.12 işletim sistemi mevcuttur. Webcam stream için MJPG-Streamer kurulumu yapılmıştır. Servo kontrolü için Python programlama dili kullanılmıştır ve Adafruit_BBIO kütüphanesi Python a dahil edilmiştir. Arayüz program için C# programlama dili kullanılmıştır. Üstü çizili dosya yolları kullanıcıdan kullanıcıya göre değişebilmektedir. BBB terminal üzerinde sırasıyla aşağıdaki adımlar takip edilmiştir. MJPG-Streamer Kurulumu 1- opkg install subversion libjpeg-dev imagemagick 2- svn checkout svn://svn.code.sf.net/p/mjpg-streamer/code/ mjpg-streamer-code Başarılı kurulum sonrasında dosyamız /home/root dizini altında mjpg-streamer-code adıyla oluşur. 3- cd /home/root/mjpg-streamer-code/mjpg-streamer 4- make /home/root/ mjpg-streamer-code dizini altındaki mjpg-streamer uygulamamız kullanıma hazırdır. Adafruit_BBIO Kütüphanesi Kurulumu 1- git clone git://github.com/adafruit/adafruit-beaglebone-io-python.git 2- /usr/bin/ntpdate -b -s -u pool.ntp.org 3- opkg update && opkg install python-distutils python-smbus 4- cd adafruit-beaglebone-io-python 5- python setup.py install Kurulumu test etmek için; 1- python -c "import Adafruit_BBIO.GPIO as GPIO; print GPIO" Ekran çıktısı böyle olmalıdır : <module 'Adafruit_BBIO.GPIO' from '/usr/local/lib/python2.7/dist-packages/adafruit_bbio/gpio.so'> veya <module 'Adafruit_BBIO.GPIO' from '/usr/lib/python2.7/site-packages/adafruit_bbio-0.0.19-py2.7-linuxarmv7l.egg/adafruit_bbio/gpio.so'>

MJPG-Streamer Kullanımı Kullanıma başlamadan önce webcam kontrol edilmelidir. 1- cd /dev 2- ls video0 isimli dosya varsa webcam kullanılabilirdir. mjpg-streamer uygulamasını başlatmak için kütüphane dosyaları dosya yolu verilerek ortaya çıkarılmalıdır. 1- export LD_LIBRARY_PATH="/home/root/mjpg-streamer-code/mjpg-streamer" Kütüphane dosyaları çıkarıldıktan sonra mjpg_streamer uygulaması kullanıma hazırdır. 2- cd /home/root/mjpg-streamer-code/mjpg-streamer mjpg_streamer uygulaması bazı ayarlamalara izin vermektedir. Bu uygulamada aşağıdakiler kullanılmıştır. o f frame sayısı o r çözünürlük o c kullanıcıadı:şifre Tercihe göre aşağıdaki iki kod parçasından herhangi biri ile stream başlamaktadır. Uygulamada 3.adım için kullanıcı adı ve şifre gerekmeyen, 30 frame, 640x480 çözünürlük ayarları seçilerek yapılmıştır. 3-./mjpg_streamer -i "input_uvc.so -f 30 -r 640x480 " -o "output_http.so "./mjpg_streamer -i "input_uvc.so -f 30 -r 640x480 " -o "output_http.so -c BBBwebcam:1234" Stream TCP ile 8080 portundan olmaktadır. Uygulama başladıktan sonra Webbrowser veya VLC Player ile görüntülenebilir. Dikkat edilmesi gerekilen husus Webbrowser olarak Mozilla Firefox seçilmelidir. Diğer browserlar desteklenmemektedir. VLC player ile görüntü alımında az da olsa gecikme olmaktadır. Adres olarak http://<beagleboneblack_ip>:8080/?action=stream takip edilir.

UYGULAMA Stream ve servo kontrolünü başlatmak için start_stream.sh ve start_servo.sh isimli shell scriptleri oluşturulmuştur. Tercihe göre bu scriptler startup application olarak kullanılabilir ve BBB başlatılırken otomatik olarak arka planda çalıştırılabilir. Uygulamada terminal üzerinde manuel olarak çalıştırılmıştır../shell_script_dosyası.sh komutu ile bir script çalıştırılır. python python_code_dosyası.py komutu ile bir python kodu çalıştırılır. Dikkat edilmesi gerekilen nokta dosyaların çalıştırılabilir olarak kaydedilmesidir. Stream Uygulaması start_stream.sh 1- cpufreq-set f 1000MHz 2- python /home/root/desktop/start_control.py 3- export LD_LIBRARY_PATH="/home/root/mjpg-streamer-code/mjpg-streamer" 4- /home/root/mjpg-streamer-code/mjpg-streamer/mjpg_streamer -i "input_uvc.so -f 30 -r 640x480 " -o "output_http.so -w./www" start_control.py streamden önce UDP üzerinden veri beklemektedir. Burada şifre gibi bazı spesifik verilere göre stream başlatılır. start_control.py 1- import socket # socket nesnesi dahil edilir 2-3-PASS = "BBB_MELYIL:123456" # kullanici adi sifre 4-UDP_IP = "192.168.1.255" # yerel agda broadcast adresi 5-UDP_TARGET = "192.168.1.21" # hedef IP 6-UDP_LISTEN = 50505 # gelen verinin dinlendigi port 7-UDP_PSEND = 50504 # verinin gonderildigi port 8-9-MESSAGE = "beagleboneblack connection is completed" # hedef IPye gonderilen veri 10-11-sock_listen = socket.socket(socket.af_inet, socket.sock_dgram) # sock adinda UDP soketi olusturulur 12-sock_listen.bind((UDP_IP, UDP_LISTEN)) # soket ilgili adres ve porta baglanir 13-14-print "Waiting for connection..." #verinin beklendigi ekrana yazdirilir 15-16-while True: # sonsuz dongu baslatilir 17- data, addr = sock_listen.recvfrom(1024) # gelen veri data degiskeninde tutulur 18- print "Received message:", data # gelen veri ekrana yazdirilir 19- if (data == PASS) : # veri dogru ise 20- print "The password is correct" # ekrana sifrenin dogru oldugu yazdirilir 21- sock_listen.sendto(message,(udp_target,udp_psend)) # hedef IP ye MESSAGE verisi gonderilir 22- data2, addr = sock_listen.recvfrom(1024) # gelen veri data2 degiskeninde tutulur 23- if (data2 == " Start Stream") : # eger gelen veri Start Stream ise 24- print "Received message:", data2 # gelen veri ekrana yazdirilir 25- print "Streaming is starting..." # streamin basladigi yazilir 26- sock_listen.close(); # soket kapatilir 27- break # sonsuz dongu kirilir ve programdan cikilir 28- else : # eger sifre yanlis ise 29- print "Password is wrong" # eger sifre yanlis ise 30-- sock_listen.sendto("password is wrong",(udp_target,udp_psend)) # eger sifre yanlis ise

Servo Uygulaması : start_servo.sh 1- python /home/root/desktop/servo_cont.py Servo kontrolü uygulama kodu Python programlama dili ile yazılmıştır. Hesaplamalar 0 ile180 arasında konum kontrolü yapabilecek şekilde deneyerek bulunmuştur. Servo 20ms'lik periyotta 0,4226ms - 2,1914ms arasında 0-180 derece dönmektedir. Buna göre; duty_min = 0,4226/20*100 = 2.113 ve duty_max = 2,1914/20*100 = 10.957 olarak bulunur. Servo control ugulama kodları aşağıdaki gibidir: servo_cont.py 1- import Adafruit_BBIO.PWM as PWM # BB PWM nesnesi dahil edilir 2- import socket # socket nesnesi dahil edilir 3-4- UDP_IP = "192.168.1.255" # yerel agda broadcast adresi 5- UDP_PORT = 50007 # dinlenecek port 6-7- sock = socket.socket(socket.af_inet, socket.sock_dgram) # sock adinda UDP soketi olusturulur 8- sock.bind((udp_ip, UDP_PORT)) # soket ilgili adres ve porta baglanir 9-10- servo_pin = "P9_14" # BBB P9 portunun 14. Pini pwm cikisi olarak kullanilacaktir 11- duty_min = 2.113 # servonun 0 derece konumu icin minimum duty degeri 12- duty_max = 10.957 # servonun 180 derece konumu icin minimum duty degeri 13- duty_start= 6.5 # 90derece # servonun 90 derece konumu icin minimum duty degeri 14- duty_span = duty_max - duty_min # duty suresi 15-16- PWM.start(servo_pin, duty_start, 50) # P9_14 pininden 20 mslik periyotta 6.5 doluluk oraninda pwm cikisi baslatilir 17-18- print "PWM is started on ", servo_pin # ekrana pwm pini yazdirilir 19- print "Waiting for angle ( 0-180 )" # 0 ile 180 derece arasi giris beklenir 20-21- while True: #sonsuz dongu baslatilir 22- data, addr = sock.recvfrom(1024) # 5007 portundan gelen bilgi data degiskenine atanir 23- if data == 'stop PWM': # eger gelen veri stop PWM ise 24- PWM.stop(servo_pin) # PWM cikisi durdurulur 25- PWM.cleanup() # PWM modulu temizlenir 26- print PWM is stopped. # ekrana pwmin durdurulduğu yazdirilir 27- break # program durdurulur ve cikilir 28-29- angle_f = float(data) # gelen veri floata donusturulur 30- duty = ((angle_f / 180) * duty_span + duty_min) # doluluk orani hesaplanir 31- PWM.set_duty_cycle(servo_pin, duty) # doluluk orani ilgili pin icin ayarlanir 32- print "Received angle : ", data # girilen aci degeri ekranda yazdirilir

Arayüz Program Arayüz program Visual Stduio Ultimate 2012 /C# Form Application ile hazırlanmıştır. Form-1 Form-2 Form-1 üzerinde kullanıcı adı ve şifre girilip bağlan butonu tıklandıktan sonra giriş değerleri doğru ise bu değerler UDP üzerinden BBB ye gönderilir. BBB tarafından alınan veri beaglebone black connection is completed ise BBB ye Start Stream verisi gönderilir ve Form-2 ye geçiş sağlanır. Form-2 üzerinde Webcam butonu tıklandığında form2ye gömülü vlc player tarafından stream görüntülenir ve scroolbarlar aktif duruma gelir. Yatay scroolbar hareket ettirildikçe BBB ye UDP üzerinden 0-180 derece arasında değerler gönderir ve BBB üzerindeki webcam in 180 derecelik yatay eksen konum kontrolü yapılmış olur. Uygulama tek eksenli servo kontrolü içerdiği için dikey scroolbarın bir işlevi yoktur. Bağlantı Dervresi SER_IN 1kohm P9_14 P9_1 SER_VCC SER _GND 5V _GND 5V _VCC Kaynaklar http://analogdigitallab.org/articles/beaglebone-black-webcam http://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/installation http://learn.adafruit.com/controlling-a-servo-with-a-beaglebone-black/writing-a-program http://www.tutorialspoint.com/python/index.htm

Uygulama Görüntüleri Terminal-1 Terminal-1 Terminal-2 Terminal-2