2 Şubat 2017 Perşembe

Arduino Aracılığı ile Led Yakan Character Device Uygulaması

Arduino cihazına sinyal gönderen ve cihaz aracılığı ile breadboard üzerindeki ledleri yakan bir character device uygulaması yazılacaktır. Ledler yerine alternatif olarak LCD panel de kullanılabilir.


Kullanılan Malzemeler:

              -    1 adet Arduino Genuino Uno
              -    1 adet LCD Ekran (16x2)
              -      1 adet Breadboard
              -      1 adet Potansiyometre
              -      1 adet 220ohm direnç
              -       Bağlantı kabloları

Devre Bağlantıları:

LCD ve Arduino arasındaki bağlantı aşağıdaki gibidir.

              - LCD RS pin --> digital pin 12
              - LCD Enable pin --> digital pin 11
              - LCD D4 pin --> digital pin 5
              - LCD D5 pin --> digital pin 4
              - LCD D6 pin --> digital pin 3
              - LCD D7 pin --> digital pin 2

Ek olarak 10k potansiyometre +5V ve toprak girişlerine, çıktısı  LCD ekranın V0 pin’ine bağlanır.  220 ohm resistor ise arka ışığı ayarlamada kullanılır.

Devre Şeması




KODLAR


Arduino Taslağı




C Program Kodu( unocom.c )




Character Device Driver Kodu( FormatDev.c )




Makefile




 Uygulama

1-) Arduino cihazı ile seri port üzerinden bağlantı kurulur. Bu sebeple öncelikle cihazın seri porttan okuma yapmasını sağlayacak taslak kodu Arduuino IDE arayüzü ile cihaza gönderilmelidir. Bu noktadan sonra IDE’ye ihtiyaç duyulmaz.




2-)Terminal aracılığı ile Makefile ve C kaynak kodlarının bulunduğu dizine girilir.
     # make
     Komutu ile character device driver modülü ve c programı derlenir.



3-)Aynı dizinde
    # sudo insmod FormatDev.ko
    Komutu ile modül eklenir.


    # dmesg
    Komutu ile kontrol edilebilir.



4-)Bu aşamadaki komutların çalışması için super user olarak girilmesi gerekmektedir. Dolayısıyla önce
# su
Komutu ve UNIX şifresi girilir.

# mknod /dev/FormatDev c 91 3
Komutu ile majör(modül kaynak kodundan alınır) ve minör(keyfidir) numaralarını belirterek bir character device oluşturulur. Bu character üzerinden okuma ve yazma yapılabilmesi için gerekli izinler verilmelidir.

# chmod a+rw /dev/FormatDev
Komutu ile cihaza gerekli izinler verilir.
(Opsiyonel: # exit komutu ile su’dan çıkış yapılabilir.)



5-)#cat /proc/modules | grep Format
    #cat /proc/devices | grep Format
    Komutları ile de cihazın eklenip eklenmediği kontrol edilebilir.


6-)Terminal aracılığı ile C kaynak kodu derlenir ve çalıştırılabilir dosya (executable) hâline getirilir.
# gcc –o parname param.c
Komutu param.c dosyasını derler, daha sonra kaynak kod ile aynı dizinde “parname” adlı çalıştırılabilir bir dosya oluşturur.




7-)# ./unocom Sistem Prog.
Komutu ile terminal üzerinden dosya çalıştırılır. Aradan yukarıda da belirtildiği gibi 5 saniye geçtikten sonra argüman olarak girilen metin LCD ekranından okunabilir.



Farklı metin denemeleri:







Eğer argüman girilmez ise program aşağıdaki hata ile sonlanır.


Ard arda girilen komutlardan sonra kernel günlüğü.

  Görüldüğü gibi C programı, character device sürücüsü ve Arduino cihazı sorunsuz bir şekilde iletişim kurmaktadır. Dolayısı ile yazma haricinde okuma gibi dosya işlemleri de bu seri cihaz üzerinde gerçekleştirilebilir.


8-)#sudo rm /dev/FormatDev
Komutu ile oluşturulan character device dosyası kaldırılabilir.



#sudo rmmod FormatDev.ko
Komutu ile de eklenen modül kaldırılır ve character device kaydı sistemden silinir.



# dmesg
Komutu ile kontrol edilebilir.




C Programı, Character Device Driver ve Arduino Veri Akış Diyagramı



Ek Bilgiler

- Metni LCD ekranının üst satırına yazdırmak için taslak kodunda 19. satırın
# lcd.setCursor(0,0)
şeklinde değiştirilmesi yeterlidir.

- # lcd.clear()
Komutu ile LCD ekranı temizlenebilir.

- Daha önceki ödevimizdeki ilgili kod bloğu kullanılarak Arduino’nun LCD ekranına matematiksel 4 işlem sonucu yazması sağlanabilir.


Kaynakça





Ödev Grup Arkadaşlarım:



16 Aralık 2016 Cuma

Dört İşlem Yapan PROC Uygulaması

Ödevde bizden istenen; toplama, çıkarma, çarpma, bölme işlemlerini ve işleme alınacak sayıları parametre olarak alan ve sonucu loga yazan bir proc uygulaması yapılmasıdır. Örneğin uygulama ismi dortislem olsun ve terminale; 

echo 3 + 5 > dortislem

girildiğinde 3 + 5 = 8 sonucunu log’a yazmış olması istenmektedir.

Makefile Dosyası

proc.c Dosyası




Uygulama





Ödev Grup Arkadaşlarım:





5 Ekim 2016 Çarşamba

Linux-Kernel’i Kaynaktan Derleyerek Güncelleme

1-) İlk olarak www.kernel.org adresinden en son çekirdek sürümü indirilir.






2-) Terminal ekranı açılır:
# sudo psswd root  --->    komutuyla yeni UNIX şifresi belirlenir ve ardından
# su  --->    komutu girilip belirlediğmiz yeni şifreyle root’a giriş yapılır.



3-) Aşağıdaki komutlar sırayla girilir ve derleme için gerekli önyüklemeler yapılır.

# sudo apt-get update





# sudo apt-get upgrade    





# sudo apt-get install libncurses5-dev gcc make git exuberant-ctags bc libssl-dev





4-) cd komutu kullanılarak indirilen çekirdeğin dizinine girilir. Daha sonra indirdiğimiz tar.xz dosyası /usr/src konumuna kopyalanır.Ve tekrar cd komutu kullanılarak Downloads dizininden çıkılır.

# cd Downloads



# cp linux-4.7.6.tar.xz /usr/src



# cd ..




5-) Sıkıştırılmış dosyanın içeriğini src dizinine çıkartmak için cd komutuyla önce dizine girilir, tar komutuyla içerik çıkartılır ve oluşan klasöre cd komutuyla girilir.


# cd /usr/src




# tar –xJvf linux-4.7.6.tar.xz




# cd linux-4.7.6




6-) Yeni çekirdek yapılandırması için aşağıdaki komut girilir.Açılan menüde ‘save’ yapılarak değişiklikler kaydedilir ve menüden çıkılır.


# sudo make menuconfig
  


Not: Eğer bu komutu girdikten sonra ekran boyutuyla alakalı bir hata alırsanız ki ben bu hatayla karşılaştım, pencere boyutunu büyütün ve komutu tekrar girin menü sorunsuz açılacaktır.



7-) Aşağıdaki komut ile çekirdek derlenir. Bu işlem bilgisayarınızın donanımına göre biraz zaman alabilir, bitmesini bekleyiniz.

# sudo make






8-) İşlem bittikten sonra aşağıdaki komut girilir ve modüllerin kurulması sağlanır.

# sudo make modules




9-) Bu adımda derlemesi tamamlanan çekirdeğin yüklemesine başlanır.Aşağıdaki komut ile yükleme başlatılır.İşlem tamamlandığında reboot komutuyla sistemi yeniden başlatarak güncellenmiş çekirdeği kullanabilirsiniz.

# sudo make modules_install install




# reboot



10-) Aşağıdaki komut ile çekirdek sürümünüzü sorunsuz şekilde güncellediğinizi kontrol edebilirsiniz.

# uname –r


NOT: Eğer bilgisayarınız yeniden başladıktan sonra üstteki komutu girdiğinizde hâla eski sürümü kullandığınızı görürseniz;


Bilgisayarı tekrar yeniden başlatın ve sistem açılırken “SHIFT” tuşuna basılı tutun, karşınıza çıkan menüden ‘Advanced’ ile başlayan seçeneğe girin.Karşınıza çıkan yeni menüden güncellenmiş olan yani Linux-4.7.6 sürümünü seçip sisteminizin başlamasını bekleyin.Üstteki komut ile çekirdek sürümünüzü tekrar kontrol edip çekirdeğinizin sorunsuz şekilde güncellendiğini göreceksiniz.