Bu yazımızda arduinodaki mpu6050(6 eksenli jiroskop-ivme sensörü), hc-05(bluetooth sensörü) aracılığıyla c# taki serialport1 i haberleştireceğiz.

Benzer belgeler
Terminal Üzerinden Led Kontrol Uygulaması

Nesneye Dayalı Programlama Laboratuvarı

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

RPMNET WOLVOX REPORTER

ACD BİLGİ İŞLEM ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ URT-V2 KABLOSUZ VERİ TOPLAMA TERMİNALİ AİLE HEKİMLİĞİ KİOSK ÇÖZÜM ORTAĞI TEKNİK BELGESİ

Paralel ve Seri İletişim. Asenkron/Senkron İletişim. Şekil 2: İletişim Modları

UniGSM Arduino SHIELD (UniGSM-A) KURULUM ve KULLANIM KİTAPÇIĞI

Masa üstünde vt34.mdb dosyası var, onu projemize eklemek için, App_Data ya sağ tıkla Add Existing Item vt34.mdb adlı dosyayı seç Add

KOD PARÇACIKLARI 1 / 5

BİLGİSAYAR BİLİMİ DERSİ (KUR-2)

ASP.NET ile Bir Web Sitesi Oluşturma

Doküman Versiyon : Tarih :

VISUAL STUDIO.NET ve Veritabanı

V Daq Kurulum adımları

24 Kasım 2011 / Perşembe


Elif İLİKSİZ. Keziban TURAN. Radio Frekanslarla Hareket Eden Araç

Makey Oz Modülünü Bilgisayardan Programlamak Uygulama Kurulumu

Response : Sunucunun istemciye veri yollamasını

Arduino Uno ile Hc-Sr04 ve Lcd Ekran Kullanarak Mesafe Ölçmek

Visuino: Nextion Ekranla Parmak İzi Sensörü

HESAP MAKİNASI YAPIMI

Grove Parmak İzi Okuyucu Sensör ile Arduino Uno

Çözüm :RadioButtonList1 kontrolunuekliyoruz.enableautopostback iaktifleştiriyoruz..

12 Ocak 2012 / Perşembe

SAVİOR OTOMASYON TEKNİK DESTEK BİRİMİ

PORT HABERLEŞME SERİ PORT FARUK BOZAN

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

C# ile NJ Simulatöre Bağlanmak

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

LED YAKMAK. Circuit 2. Kablo LED. Direnç. Arduino LED. Direnç (330ohm)

Rezistivite Cihazı Kullanım Klavuzu

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

SAVİOR OTOMASYON TEKNİK DESTEK BİRİMİ

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Mikroişlemciler ve Programlama Dersi- ARDUINO. Sensörler ve Analog-Digital Çeviriciler İle Çalışma

BQ101 GSM Access Kontrol Ünitesi Windows Programı. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

2.Eclipse açıldıktan sonra Workspace alanı seçilmesi gerekir. Workspace alanı projelerinizin fiziksel olarak bulunduğu kısımdır.

BLIND SQL INJECTION SALDIRILARI

e-imzatr Kurulum Klavuzu

Erzurum Teknik Üniversitesi RobETÜ Kulübü Robot Eğitimleri. ARDUİNO EĞİTİMLERİ I Arş. Gör. Nurullah Gülmüş

Testimizin ilk sayfası: bu kısımda kullanıcıdan adını girmesini ve teste başlamasını istiyoruz.

Program Kodları. void main() { trisb=0; portb=0; while(1) { portb.b5=1; delay_ms(1000); portb.b5=0; delay_ms(1000); } }

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

SAVİOR OTOMASYON TEKNİK DESTEK BİRİMİ

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

2019

DS150E Kullanıcı El Kitabı. Dangerfield June V3.0 Delphi PSS

DERS BİLGİ FORMU. Okul Eğitimi Süresi

GÖRÜNÜM OLAYLAR KALEM

1 Aralık 2011 / Perşembe

Şekil 2.1. Bu bölümde ASP.Net platformumuzu açtığımızda Toolbox penceresindeki Standart bölümündeki kontrollerden bahsedeceğiz.(şekil 2.2) Şekil 2.

ZTerminal KULLANMA KILAVUZU. yazılımı. USB Terminal

VTIY DERS-4 YARDIMCI NOTLARI -2018

AirTies Kablosuz Erişim Noktası (Access Point) olarak kullanacağınız cihazı bilgisayarınıza bağlayarak ayarlarını yapabilirsiniz.

GMTCNT PLC ile MODBUS MASTER Haberleşmesi -MICNO Serisi Hız Kontrol ile Bağlantı-

Proje 1. Arayüz Tasarımı

SAVİOR OTOMASYON TEKNİK DESTEK BİRİMİ

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ


Denetim Masası/Programlar/Windows özelliklerini Aç/Kapat

SAVİOR OTOMASYON TEKNİK DESTEK BİRİMİ

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

Arduino nedir? Arduino donanım ve yazılımın kolayca kullanılmasına dayalı bir açık kaynak elektronik platformdur.

TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ MİKROBİLGİSAYAR TABANLI SİSTEM TASARIMI DERSİ

18 Ekim Programlarımız ile Uyumlu Olan Yazar Kasa Modelleri. Profilo VX 680 E-1 Profilo YK-8200 Farex FR-8300 Telestar TLS-8100

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9

Görsel Programlama (Visual Programming)

ADF Transfer Kılavuzu

C# 2 Kişilik Ping-Pong Klonu

SPEEDSENSE KONFİGÜRASYON ARACI KULLANIM KILAVUZU

Uzaktan kumanda ve alıcı programlama

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

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

Bu gün dersimizde değişik web kontrollerinin kullanımını gösteren birkaç web sitesi hazırlayacağız. Önce Visual Studio 2005 i açalım.

MOBİLTEG MİKRO DEPO OTOMASYONU

1. LabVIEW ile Programlama

1- KULLANILACAK DEVRE ELEMANLARININ TANITILMASI

Kodlama Paneli. Nazmiye Demirel Ortaokulu SCRATCH Scratch bir grafik programlama dilidir.

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

KARADENİZ TEKNİK ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Scream! e gelen veri akışlarından bazılarını diğer bir kurum yada bilgisayarla paylaşmak için kullanılabilir.

Windows 7 Format Atma ve Kurulumu (Resimli Anlatım)

KATES Yazılım Güncelleme Dokümanı

TÜRKİYE KAMU HASTANELERİ KURUMU WEB SİTESİ YÖNETİM REHBERİ

icono Kullanıcı Kılavuzu

Kabuk Programlama (Bash)

İÇİNDEKİLER VII İÇİNDEKİLER 1 ARDUINONUN TEMELLERİ 1

LMS PC aracı ACS420. LMS parametre ayarlarının yapılması için PC yazılımı. Kurlum ve çalıştırma talimatları

Bu classı biraz açıklamak gerekirse, tam olarak şu işleri yapıyor.

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

ANALOG ADRESLİ YANGIN ALARM SİSTEMİ YAZILIM KULLANMA KILAVUZU

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

PERKON PDKS Kurulum ve hızlı başlangıç rehberi

1 Organizasyon Tanımlama

ART S603W Standalone Kart Okuyucu

1.adım : Sql serverda Stored procedure oluşturmamız gerekiyor. Şu adımları izliyoruz.

Eğitmen. Öğretmen/Eğitmen.

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

Giriş. Kontrast ve Parlaklık. Seri Portlar

Transkript:

C# Arduino İletişimi Bu yazımızda arduinodaki mpu6050(6 eksenli jiroskop-ivme sensörü), hc-05(bluetooth sensörü) aracılığıyla c# taki serialport1 i haberleştireceğiz. Sensörden aldığımız verileri her eksen boyunca grafik çizip değerleri SQL veritabanına ekleyeceğiz ve log.txt adlı text dosyasınada kayıt edeceğiz. Öncelikle gereken malzemeleri gözden geçirelim. Breadboard Jumper Kablo Arduino Nano HC-05(Bluetooth Sensörü) MPU6050(6 Eksenli gyro-acc sensörü) 1 adet LED İlk olarak çalışma tahtamızdaki sensörlerimizi ve ledimizi jumper kablolarla arduino nanomuza entegre edelim. *Fritzing devre çizimi github kodlarının içinde bulunmaktadır. Sensörlerimizin arduino nano ile bağlantılarını kontrol

edelim. Arduino nanoyu bilgisayarımıza bağlayalım. Arduino nun kendi derleyicisini açalım. Araçlar kısmına girelim. Bu kısımda kartımızı ve portumuzu seçili olduğuna dikkat edelim. Artık yavaş yavaş işin kod kısmına geçelim. [crayon-5cc210be46eb8881251416/] İlk önce arduinomuzdaki kütüphaneleri ve define edeceğimiz değerleri tanımladık. Arduino derleyicisine her kütüphane ekli olamayacağından dolayı I2Cdev, MPU6050, SoftwareSerial kütüphanelerini ayrı ayrı indirip programın yüklü olduğu yerdeki libraries kısmına atmamız gerekmektedir. [crayon-5cc210be46ec4692412022/] Yukarıdaki kod parçacığında mpu6050 sensörümüzdeki 6 eksen değerini 3 jiroskop 3 ivme olarak her biri için ayrı ayrı tamsayılı değişkenlere atadık. Amacımız burada aldığımız 6 değeri serialport ekranına aralarına ; ile yazdırıp bluetooth sensörü ile C sharp a göndermektir. C sharp ta her bir değeri ayrı ayrı okuyup her bir değer için grafik

çizilecektir. Arduino muzun değer döndürdüğünü veya düzgün çalışmasını anlamamız için 12. pine keyfi led bağladık. Her değer okunduğu zaman ledimiz true değerini döndürecektir. [crayon-5cc210be46ecb233267816/] Genel olarak void setup() fonksiyonuna arduinomuzun hangi portuna hangi sensörün bağlandığını gösteririz ve serialportun kaç baud değeri alacağını yazarız.(1200-2400-4800-9600-19200-38400 )Baud değerleri iletişim hızını ifade eder. [crayon-5cc210be46ed5342696730/] mpu6050 sensörünü void setup() kısmında başlatması komutunu verdik ve arduinoya değer göndereceği için INPUT olarak tanımladık. [crayon-5cc210be46edb522082877/] Mpu6050 sensörümüzün default değerlerini ve statü değerlerini belirtildi. Ledimizin arduinomuzdan OUTPUT olduğunu belirttik yani ledimizn portunda değer okuma işlemi değilde true veya false gönderme işlemi yapacak. [crayon-5cc210be46ee1156718844/] Mpu6050 sensörümüzden alınan verilerimizin birikmesi sonucu aldığımız Overflow hatasının gösterimi.ancak programımızda sadece değerleri okuma üzerine yaptığımızdan dolayı serialportta Overflow hatası yediğimizi yazdırmadım. [crayon-5cc210be46eec560980602/] Mpu6050 sensörümüzden gelen verileri matematiksel hesaplamalar sonucu başta tanımladığımız gyro-x gyro-y gyro-z acc-x acc-y acc-z değerlerine teker teker atadık. Serialportta yazdırırken aralarına ; ekledik. C # tan aralarındaki ; göre okuyacağız. delay(850) yaparak C# programımızı sensörümüzden aldığımız verilerin bombardımanından az da olsa rahatlattık. Her 850 milisaniyede 6 değer döndürecek şekilde programladık. [crayon-5cc210be46ef4693522531/] Cihazımız 48 değerini döndürüyorsa programımız seri portuna mesaj yazıp 1 saniye bekledikten sonra resetfunc fonksiyonuna gidiyor.

Şuanda arduinoya yazacağımız kodumuz bitti. Derleyip çalıştırınız. Eğer hata alıyorsanız kabloları düzgün taktığınıza, kütüphanenizi düzgün yüklediğinize, arduino yu güncellediğinize dikkat ediniz. Eğer sorununuz geçmediyse bizle irtibata geçiniz. Şimdi visual studio dan c# windows form oluşturalım.windows Formumuza 2 tane chart(grafik ekleyelim). 2 adet combobox,listview,2 adet buton,1 adet textbox ekleyelim. Şimdi gelelim c sharp kodumuza öncelikle: [crayon-5cc210be46ef9723519763/] Lazım olacak kütüphanelerimizi ekleyelim. [crayon-5cc210be46f02412493464/] Arduinomuzdan çekeceğimiz 6 adet verinin her biri için ayrı ayrı diziler tanımladık Arduinomuzdaki portları ports adlı diziye ekledik. SQL database sini oluşturduğumuz tabloyu tanımladık. Tablomuz : [crayon-5cc210be46f0a492453231/]

Form ekranımız yüklenirken combobox1 e ports dizimizdeki değeri atadık. Serialporttaki baudrate leri combobox2 ye yazdırdık ve label le form1 yüklenirken bağlı olmadığını yazdırdık. Bu try catch() bloğunda log.txt dosyasını oluşturduk. [crayon-5cc210be46f19835305001/] Serialport ile C sharp arasındaki bağlantıyı kesme butonu oluşturduk. [crayon-5cc210be46f1f794046107/] Bu bölüm aslında programımızın en önemli parçasıdır. Arduinomuzdan çekilen verileri textbox1 e yazdırdık. veriler adında bir string dizisi oluşturduk split( ; ) komutuyla 6 tane değeri ayrı ayrı başta tanımladığımız 6 tane diziye attık.aldığımız 6 değeri önce Yaz() fonksiyonuna sonra da guncelle() fonksiyonuna yolladık. Aldığımız değerleri teker teker SQL veritabanımıza kaydettik. Listbox1 e 6 tane aldığımız değeri teker teker bastırdık. timer1 fonksiyonu içinde geçen bu alanda interval değerini 830 yaptık. [crayon-5cc210be46f27930181518/] timer1 de çağırdığımız verilerigoster() fonksiyonumuz ise timer1de yazılan ve veritabanımıza atılan değerleri teker teker göstermemizi sağlar. Ben projemde listbox da gösterdiğim için burayı açıklama parantezine aldım. İsteğe bağlı olarak projeye listview eklenip veritabanındaki değerlerde bastırılabilir. [crayon-5cc210be46f32717792355/] Dinamik bir şekilde timer1 den gelen verileri 2 ayrı(chart 5, chart 6) grafiğe bastırdık. [crayon-5cc210be46f38185257185/] Combobox tan seçtiğimiz portu ve baud değeri ile arduino arasındaki bağlantıyı doğrular. Hatalı ise hata mesajı gönderir.

[crayon-5cc210be46f53932737370/] timer1 de çağırdığımız Yaz fonksiyonu arduinodan aldığımız 6 veriyi log.txt adlı dosyamıza satır satır yapıştırır. C sharp arayüzünden yazdığımız programıda bitirdik. Şimdi arduinodaki ve bilgisayarımızdaki bluetooth sensörünü haberleştirmemiz gerekir. Projede bluetooth şifresi kullanılmamıştır. Eğer kullanmak istenirse projeye ek kod yazmanız gerekmektedir. Öncelikle arduinomuza güç verdikten sonra bilgisayarımızdan hc-05 e bluetooth ile bağlanmamız gerekir. Eşleştirme işleminde parola soracaktır. Belirlediğimiz parolayı girerek eşleştirmeyi tamamlamalıyız. Denetim Masasından > Aygıtlar ve Yazıcılara giriyoruz. Bluetooth modülümüze sağ tıklayıp Özelliklere basıyoruz. Bu kısımda yukarıda donanıma gelerek COM portumuzun numarasını öğreniyoruz. Arduino derleyicisinden araçlar kısmını açarak COM portumuzun numarasını değiştiriyoruz. Bluetooth sensörünün menzili boyunca 6 eksenli mpu6050 sensörümüz düzenli olarak c sharp veri aktarımı yapacaktır.aldığımız verileri parçalara ayırıp her bir parçayı grafik olarak gösteriyoruz. Hem SQL veritabanımıza hemde log.txt klasörümüze aldığımız sonucları yazıyoruz. Kısaca bahsetmek gerekirse Dengede duran robot,rc uçak,rc helikopter ve drone projelerinde dengeyi sağlamak amacıyla mpu6050 sıkça kullanılır eğer bir kablosuz iletim sensörüyle hc-05 hc-06 nrf24l01 veya esp8266 kullanarak projelerinizi c

sharp a seriport aracılığıyla dahil edebilirsiniz. Belki kamera takıp görüntü aktarıp hatta görüntü işlemenize bile ön adım olabilir. Görüşlerinizi yorumlarınızı alt tarafta belirtiniz. Gelecek yazılarda görüşmek üzere

PROJE KODLARI İÇİN TIKLAYINIZ. Yazar : Ömer Can ESKİCİOĞLU