Raspberry pi

Raspberry Pi 3 OpenCv Kurulumu


Bu yaz computer vision , machine learning gibi alanlarda kendimi geliştirmek istiyorum.Ve görüntü işleme , görüntüyü anlamlandırma gibi alanlarda bir bilgisayar kütüphanesi olan Open Cv’yi tercih ettim.2017 Tübitak İHA yarışmasında görüntü işleme yazılımımızda da OpenCv kullandık.Bugün ise Raspberry Pi 3 için Open Cv’yi nasıl kurarız bunu göstermeye çalışacağım.Kurulum 3 saat gibi bir zaman alabiliyor ,bu internet hızınızla ne kadar değişebilir olsa da çok farketmeyecektir.İster bir arayüzden isterseniz ssh yardımıyla konsolumuzu açacağız ve bir dizi komut gireceğiz.

Öncelikle daha önce opencv kurmaya çalıştınız başarısız oldunuz ve kalıntıları hala duruyor ise onları temizleyelim.

>>sudo apt-get remove libopencv*
sudo apt-get autoremove

Benin tavsiyem sd kartınızın en az 16gb olmasına ve kurulumdan önce sistemi genişlettiğiniz emin olun. (sudo raspi-config penceresinden yapabilirsiniz..)

Dilerseniz usb aygıt üzerine de kurulum yapabilirsiniz ancak şu an kendi sistemimizin içerisine kurulum yapacağız.

Şimdi sistemimizi güncelleyelim daha önce bunu yapmadıysanız ya da güncel bir imaj yüklü değilse bu işlem biraz uzun sürebilir.

>>sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo reboot

Reboot edip sistemi tekrardan başlattıktan sonra konsola tekrar geçiş yapıyoruz.

Ardından developer  tool(Geliştirici araçlarımızın kurulumunu yapacağız)

>>sudo apt-get install build-essential cmake cmake-curses-gui pkg-config

OpenCv kullanırken ihtiyacı olacak kütüphanelerin kurulum için, (hepsini birlikte konsola kopyalayıp , yapıştırabilirsiniz.)

>>sudo apt-get install \
libjpeg-dev \
libtiff5-dev \
libjasper-dev \
libpng12-dev \
libavcodec-dev \
libavformat-dev \
libswscale-dev \
libeigen3-dev \
libxvidcore-dev \
libx264-dev \
libgtk2.0-dev

Raspbian Jessie imajı ile birlikte python2.7 ve python3 yüklü bir şekilde geliyor , şimdi ise OpenCv’yi python3 için kuracağımız kısıma geçiyoruz , bunun için öncelikle numpy ve python-dev kurulumlarını yapalım.

>>sudo apt-get install python3-dev python3-numpy

Şimdi OpenCv kurulumunu yapmaya başlayabiliriz.Öncelikle /home/pi klasörü altında opencv isimli bir dosya oluştaracağım ve o dosya içine kurulumları yapacağım.

>>mkdir /home/pi/opencv

Şimdi dosyanın içerisine girelim.

>>cd /home/pi/opencv                                                                                                   wget https://github.com/opencv/opencv/archive/3.2.0.zip -O opencv_source.zip
wget https://github.com/opencv/opencv_contrib/archive/3.2.0.zip -O opencv_contrib.zip

Aynı dosya dizininde çıkmadan , indirdiğimiz .zip uzantılı dosyaları çıkaralım.

>>unzip opencv_source.zip
unzip opencv_contrib.zip

Artık OpenCv’yi çalıştırabilir hale getirmek için derleme işlemlerini yapalım.Öncelikle dosya dizinimiz içerisinden opencv-3.2.0 içerisine girelim.Derleme için yeni bir dosya açalım bu dizinde.

>><cd opencv-3.2.0                                                                                                                               mkdir build
cd build

Build dosyası içerisinde aşağıda ki cmake ifadelerini yapıştırın direkt olarak.

>>cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D BUILD_WITH_DEBUG_INFO=OFF \
-D BUILD_DOCS=OFF \
-D BUILD_EXAMPLES=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_opencv_ts=OFF \
-D BUILD_PERF_TESTS=OFF \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0/modules \
-D ENABLE_NEON=ON \
-D WITH_LIBV4L=ON \
../

Enter tuşuna bastıktan sonra bir süre işlem gerçekleştirecektir , burada kamera ile ilgili not found gibi satırlar alabilirsiniz , çünkü kamera için gerekli işlemleri henüz yapmadık. Bu işlemin sonucunda şu satırları görmeniz gerekmekte.Aksi takdirde bir yerde hata yapıyor olabilirsiniz ,işlemlerinizi gözden geçirmekte fayda var.

.....
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/usbmem/opencv/opencv-3.2.0/build

Şimdi aynı dizin içerisinde şu komutu çalıştıralım ve derleme işlemini başlatalım bu işlem 1-2 saat arasında sürebilir.

>>make -j4

4 çekirdekte derleme yapacağımızı söylüyoruz , bazen aşırı ısınmadan dolayı kitlenebiliyor bir defa başıma geldi , 2 çekirdekte derleme yapabilirsiniz ancak uzun sürebilir o yüzden siz direkt yukarıda ki komut ile devam edin.Uzun işlemler sonucunda

[100%] Built target …  ifadesini gördüyseniz kurulumu tamamlamak için son adım kaldığını söyleyebilirim.

>>sudo make install
sudo ldconfig

Ve artık kurulumumuzu tamamladık , dosyalarımızın olduğu konum ,

>>/usr/local/lib/libcv*
/usr/local/lib/python3.4/dist-packages/cv*
/usr/local/include/opencv2/
/usr/local/bin/opencv_*
/usr/local/share/OpenCV/

Gelelim yüklenmiş mi yüklenmemiş mi öncelikle python3 idlesini açıyoruz , python3 açtığınızdan emin olun , çünkü kurulumunu onun için gerçekleştirdik.

>> import cv2
>>> print (cv2.__version__)
3.2.0
>>>

Komutunda 3.2.0 versiyon ifadesini de aldıysanız artık TAMAMDIR !

Dilerseniz kamera ile ilgili driver işlemlerini yapalım.

/home/pi , default dizinimize geri dönebiliriz artık.Öncelikle kamera kullanacağımız için sudo raspi-config ardından interfaceden kameraya izin vermemiz gerekiyor.Ardından yükleme işlemini yapalım.

>>sudo apt-get -y install libv4l-dev v4l-utils

v4l’yi aktif edelim.

>>sudo modprobe bcm2835-v4l2

Eğer kamera bağlı ise , aşağıda ki komut ile bağlı olan aygıtları görebiliriz.

>>v4l2-ctl –list-devices

Komuttan sonra şöyle bir cevap almalısınız.

>>mmal service 16.1 (platform:bcm2835-v4l2):
/dev/video0

OpenCv ile çalışmaya devam edeceğim son çalışmam birden fazla  renkleri kareler içerisinde bulmak , merkez noktalarını uart üzerinden sıraya tabi tutarak göndermekti.

Öğrendikçe yeni şeyler paylaşacağım bu süreçte youtube kanalıma abone olabilirsiniz.
Örnek bir opencv kullanılarak yapılmış çalışma.

Youtube Kanalım için tıklayın.

Herkese iyi çalışmalar 🙂

Python’cığın Turta Tadı Alması


turta-4ch-relay-hat-windows-10-iot-core-uyumlu-14206-58-O

Yoksa TURTA’nın mı python’ım mı turta tadı alması ? 🙂

Nedir bu Turta ?

Turta , Raspberry Pi 2 ve 3 ile yüksek güç tüketen bileşenleri kontrol etmenizi sağlayan 4 kanal röle kartıdır.

Röleler oyuklu baskı devre ve optokupler ile izole edilmiştir. Her kanal 30V DC ya da 220V AC’de 10 Amper’e kadar akımı kontrol edebilir. Rölelerin durumunu gösteren mavi gösterge LED’leri etkileyici bir görünüm sergiler.

Röle kontrolleri I/O 21, 22, 23 ve 24. çıkışlara bağlıdır. Ek giriş / çıkış ve sensör bağlantıları için 3.3V, 5V, GND, I2C, USART, SPI ve 6 adet I/O bağlantısı, isimleri yazılı olarak header pinleriyle dışarıya verilmiştir.

Turta ürünleri örnekler ve ücretsiz etkinliklerle desteklenmektedir.

Örnekler ve kullanım kılavuzu için: github.com/turta-io

Ücretsiz etkinlikler için: meetup.com/istiot

Sosyal medya’da takip için: facebook.com/turta.io ve instagram.com/turta.io

http://turta.io/

 

Şimdi gelelim ilk örneğe , azcık röle sesi duyalım :))

Konsoldan sudo nano turta.py ismin de python kodumuzu yazacağım dosyayı açıyoruz.

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(40,GPIO.OUT)
GPIO.setup(15,GPIO.OUT)
GPIO.setup(16,GPIO.OUT)
GPIO.setup(18,GPIO.OUT)

try:
while True:
GPIO.output(40,True)
time.sleep(1)
GPIO.output(40,False)
GPIO.output(15,True)
time.sleep(1)
GPIO.output(15,False)
GPIO.output(16,True)
time.sleep(1)
GPIO.output(16,False)
GPIO.output(18,True)
time.sleep(1)
GPIO.output(18,False)

except KeyboardInterrupt:
print(“turta durdu”)
finally:
GPIO.cleanup()

Kartın arkasında röle kanallarının bağlı olduğu gpio pinler mevcut.

Kodu kaydetip , sudo python turta.py yazarak çalıştırıyoruz 🙂 röle durumunu belirten mavi ledleri görebilir ve röle çekme seslerini duyabiliriz , testi yaptık bir sonraki yazıda , bir proje ile karşınızda olmak umuduyla iyi çalışmalar..

Kodları yazarken python syntaxine uygun yazın yani blokların yapısına dikkat ederek.

Raspberry pi için hdmi to vga kullanımı


raspberry pi zero modeli ile vga tarzında bir ekran kullanırken direkt tak çalıştır mantığı ile ekrana görüntü alabiliyorken , 2 ve 3 modellerin de bir kaç ayar yapmanız gerekiyor.Bugün bu ayarlardan bahsedeceğim.

Öncelikle terminali açıyoruz.

Ardından sudo nano /boot/config.txt  yazarak configürasyon dosyamınız içerisine giriyoruz.

Daha sonrasında burada

#hdmi_force_hotplug=1 önünde ki yorum satırını iptal ediyoruz.hdmi_force_hotplug=1

#hdmi_group=1 olan kısmı hdmi_group=2 olarak değiştiriyoruz.

#hdmi_mode=1 olan kısmı #hdmi_mode=16 olarak değiştiriyoruz.

#hdmi_drive=2 olan kısmı da  hdmi_drive=2 değiştirerek

Control +x  ardından Y diyerek çıkıyoruz.Daha sonrasında sudo reboot now  yaparak yeniden başlatıyoruz.
Artık ekran hazır 🙂

Led de mi Yağmiyak-Raspberry içerir.py


Tabi elinize yeni bir şey aldığınız da öğrenme sürecinde ilk olarak led yakar  , daha sonra salakça o ledi izlersiniz.
Neyse haydi gelin biraz led izleyelim.Şimdi putty programı ile ssh bağlantımızı gerçekleştiyoruz.Ardından sudo nano led.py isminde python dilinde kodumuzu yazacağımız dosya içine geliyoruz.

Ekran Alıntısı1

Şu şekilde kodlarımızı yazıyoruz.Yalnız boşluklara dikkat edin python da önemli bir konu çünkü ardından CTRL+X yaptıktan sonra Y diyerek buradan çıkış sağlıyoruz.
Komutları açıklamıyorum zaten ne olduğu açıkca belli.
buradan çıktıktan sonra sudo python led.py diyerek kodlarımızı gönderiyoruz ve ilgili pine ledimizi bağlamayı unutmayın.Şimdi dikkat etmeniz gereken bir şey var ki o da pin sıralaması.
Ekran Alıntısı2

Abi şimdi orada 12.pinde GPIO18 yazıyor ancak ledi bağlamanız gerek yer. donanımsal olan 18.pin yani GPIO24 yazan yer.Sonra ben gibi ulan bu niye çalışmıyor vs durumalarına düşmeyin.

Bu arada except KeyboardInterrupt: komutu CTRL+C ya da bir hata olduğunda devreye girecek.Yani kodu girdikten sonra komut satırı çalışmıyor ya onun için CTRL+C yapmanız gerekiyor.Kıssadan hisse bu kadar efendim.

Ekran Alıntısı

 

Sanırım bir linux kitabı şart.

Fakir Raspberry Pi Kurulumu


Yaklaşık 2-3 aydır elimde olan raspberry pi’yi bi ele almak lazım dedim , akşam saatin 9’u falan herhalde elimde herhangi malzeme yok.Arkadaşa sordum dedim ne yapcaz ne etcez dedim ethernet kablosu kurmak için yeterli olur dedi.Neyse bir hışım çıktım yurttan ulan her yer kapalı , tabi üzülerek dönerken milleti aramaya başladım , sen de var mı sen de var mı , neyse bir arkadaş dedi ki olum vatana git , dedim kaçta kapanıyor hemen baktı saat 22.00 da kapanıyormuş , koştum tabi ,gittim aldım.Yarım metrelik kabloya 9tl bayıldım bir de hafıza kartı alayım dedim , kendiminkini sıfırlamaktansa ona da 15-20 arası bayıldıkan sonra yurda döndüm.Neyse ben çıkmadan önce raspian işletim sistemini indirmeye bırakmıştım , ulan bi geldim bağlantı kopmuş indirme de duraklamayıp hata vermiş.Neyse haydin dedim tekrar indireyim , tabi yurt interneti malum öyle ya da böyle indi işte.Şimdi gelelim bu iş nasıl oluyor.Öncelikle indirmeniz gerekenlerden başlıyorum

Şuradan raspbian jessie’yi bir güzel indiriyoruz.
Ardından ihtiyacımız olan win32 disk imageri de şuradan efendim.
Eğer 64bit bilgisayarınız varsa uyumluluk sorunu gider deyince sıkıntısız çalışıyor.

Ekran Alıntısı

Oradan dosya yolunu seçiyorsunuz ve sd kartınız device bölümünde seçilip write diyorsunuz.Birazcık bekledikten sonra işlemi başarıyla yaptığınızı söylecek.Ne de olsa başardınız.
Tabi bu kadar mı hayır. Şimdi o sd kartın içerisinde girip boot dosyası olarak gözüküyor zaten. İçerisinden cmdline isminde ki dosyaya gelip , dosya sonuna elimizle ip atamamız gerekecek.Bu konuda sıkıntı yaşayabilirsiniz o yüzden sd kartı alıp direkt olarak rasp pi’ye girin ,ardından gücü takın , ve ethernet kablosuyla bilgisayara girin.Şimdi eğer ethernet driverınızda vs sıkıntı yok ise otomatik ip alıcak.Bunu zaten rasp pi üzerinde ki ethernet ışığında da anlayabilirsiniz.
Şimdi ağ ve paylaşım merkezi->

Ekran Alıntısı

 

Burada ki ipyi bir güzel not edin tabi , fdaha sonra rasp pi yi güçten kesip , hafıza kartını çıkarın ve tekrar bilgisayara takın .az önce bahsettiğim , cmdline dosyası içerisine girerek ip=169.254.138.99::169.254.138.18 şeklinde dosyanın sonuna ekleyiniz.Tabi bu kısımlar ben bir sıkıntılar yaşadım mesala , ethernet driverinde sıkıntı vardı vs.Slimdriver programından kontrol edebilirsiniz driverlarınızı.
Neyse ardından tekrar sd kartı rasp pi takıp gücü verelim tabi etherneti de.Şimdi kurmamız bir program daha var ssh yapacağımız  için.İsmi putty bu programı da 3 sn içinde indirebiliyorsunuz zaten.putty programını açtığınız da

Ekran Alıntısı

Host name kısmında ilk olarak sonunu salladığınız ip adresini giriyorsunuz.Bunu girdikten sonra size pencere açılyor ve ilk anda bir uyarı veriyor yes baba yes diyip geçebilirsiniz.
vvvveee mutlu son.
Ekran Alıntısı

Kullanıcı adınız:pi
Şifreniz ise ,raspberry (şifre yazarken harfler gözükmüyor yazıp enterlayın);
Benim gibi yanlış yazabilirsiniz tabi.
Ekran Alıntısı

Wifi adaptörü vs olmadığı için dosya indiremedim ve led bile açıp kapatamadık , elle dosya yükleme işlemi yaptık ancak gcc hatası verdiği için onu sonraya bıraktık.
Bu yolda bana kılavuz olan  Hakan Kaya arkadaşıma teşekkürlerimi iletiyorum.Yalnız led yakaydık iyiyid.

led.py 😦