CSI Kamera ile HD Görüntü Kaydetmek

Video kaydı yapmak için raspistill aracının ikiz kardeşi olan raspivid aracı kullanılabilir. Araç ile raspistill’e benzer olarak pozlama ve renk ayarlarını aynı seçenekleri kullanarak yapabilirsiniz. raspivid varsayılan olarak h264 video sıkıştırma algoritmasını kullanarak kayıt yapar. H264, MPEG-4’e göre 2 kata yakın yüksek sıkıştırma ve daha akıcı bir oynatma sunar. 10 saniyelik bir video kaydı oluşturmak için raspivid aracını aşağıdaki gibi çalıştırabilirsiniz:

pi@raspberry:~ $ raspivid -o kamera1.h264 -t 10000
pi@raspberry:~ $ ls -la kamera1.h264
-rw-r--r-- 1 pi pi 18300268 Nov 20 11:15 kamera1.h264
Okumaya devam et “CSI Kamera ile HD Görüntü Kaydetmek”

Hızlandırılmış video (timelapse) kaydetmek

Kamera modülünü kullanarak fotoğraf çekmek için kullanılan aracın adı raspistill’dir. Aracı aşağıdaki gibi çalıştırarak tüm seçeneklerini ve açıklamalarını listeletebilirsiniz:

pi@raspberry:~ $ raspistill

Basitçe bir fotoğraf çekme denemesi yapmak için -o (output) seçeneğine bir dosya adı belirtebilirsiniz.

pi@raspberry:~ $ raspistill -o foto1.jpg
pi@raspberry:~ $ ls -la foto1.jpg
-rw-r--r-- 1 pi pi 2484150 Nov  6 13:13 foto1.jpg
Okumaya devam et “Hızlandırılmış video (timelapse) kaydetmek”

CSI kamera Modülünün Sınanması

Kamera modülünü sınamak için eğer grafik masaüstü kuruluysa kısa bir video kaydedip ardından kaydı yürütmeyi deneyebilirsiniz. Kayıt için Raspberry Pi OS ile birlikte gelen raspivid aracını kullanacağız. Bu aracın detaylı kullanımı sonraki başlıklarda anlatılmıştır. Kaydı yürütmek için ise Raspberry Pi ile başarılı şekilde çalışan omxplayer’ı kullanacağız eğer yüklü değilse omxplayer uyglamasını aşağıdaki gibi yükleyebilirsiniz:

Okumaya devam et “CSI kamera Modülünün Sınanması”

CSI Kamera Modülünün Bağlanması ve Etkinleştirilmesi

Önceki başlıkta tarif edildiği üzere kamera modülünü flex kablosu aracılığı ile HDMI port’unun yanında bulunan CSI slotuna bağlayın. Raspberry Pi’a daha önce kamera modülü takmamışsanız CSI slotu üzerindeki koruma bandını çıkartın. Bu bant slotun içerisine toz veya yabancı cisim girmesini önleyen ince plastik bir banttır. Bu ince bandı tırnağınızla kolayca çıkartabilirsiniz. Daha sonra, CSI slotunun flex kabloyu sıkıştıran kilit mekanizmasını açın. Kilit mekanizması slot ile aynı genişlikte ve her iki ucunda minik birer tutamacı olan bir plastik parçadır. Aşağıdaki şekilde 1 numara ile gösterilen bu parçaya her iki ucundan da tutarak hafifçe yukarı doğru çekin. Böylece flex kablonun girebileceği bir genişlik oluşacaktır. Şekilde 2 numara ile gösterilen flex kablonun iletken terminallerinin bulunduğu tarafını CSI konnektörünün içindeki bağlantı pin’lerine temas edecek yönde yerleştirin (bu yön çoğu Raspberry Pi’da HDMI konnektörüne doğrudur). Daha sonra 1 numara ile gösterilen tutamaçları aşağı bastırarak flex kablonun konnektör içine oturmasını sağlayın. Flex kablonun iletkenleri slot içinde kalacaktır.

Okumaya devam et “CSI Kamera Modülünün Bağlanması ve Etkinleştirilmesi”

Diğer CSI Kamera Modülü Alternatifleri

CSI kemera arabirimi, görüntü kodlama işini GPU veya CPU’ya yaptırır. Bu nedenle hem düşük güç sarfiyatı vardır hem de ebatları oldukça küçüktür. Günümüzde akıllı cep telefonlarında kullanılan kameralar da CSI arabirimini kullanmaktadır. Bir cep telefonu kamerasını Raspberry Pi’ın CSI konnektöründen bağlayarak kullanabilirsiniz; fakat bunun için uygun bir flex kabloya ihtiyaç vardır. Cep telefon kameralarının flex kabloları oldukça dardır; bu nedenle aşağıdaki şemaya göre bir lehimleme çalışması yaparak akıllı telefonunuzun kamerasını Raspberry Pi’da kullanabilirsiniz.

Okumaya devam et “Diğer CSI Kamera Modülü Alternatifleri”

Raspberry Pi CSI Kamera Modülleri

2018 itibari ile Raspberry Pi Vakfı tarafından Raspberry Pi için çıkartılan iki kamera bulunmaktadır. Bunlardan ilki OmniVision OV5647 sensörünü kullanan 5 megapixel’lik olanıdır. 2016 yılında vakıf bu kamerayı 8-megapixel’lik Sony IMX219 sensörünü kullanan v2 (Raspberry Pi Camera V2) ile güncellemiştir. V2 modülü ilkine göre daha keskin ve gerçekçi görüntüler sağlamaktadır. V2 modülü, 25mm x 23mm x 9mm ölçü 3gr’lık ağırlığı ile HD (1080p30, 720p60 and 640x480p90) çözünürlükte video ve 3280 x 2464p ölçüsünde resim kaydetme yeteneğine sahiptir. Aynı kameraların vakıf tarafından satışa sunulan NoIR versiyonları da vardır. NoIR (No Infrared) kameraların orijinallerinden tek farkı, orijinallerde bulunan infra-red filtresinin çıkartılmış olmasıdır. NoIR kameralar, ortam IR ışık kaynağı ile aydınlatıldığında gece de çekim yapabilirler.

Okumaya devam et “Raspberry Pi CSI Kamera Modülleri”

CSI Kamera Modülü ve Uygulamaları

Raspberry Pi sahip olduğu CSI (Camera Serial Interface) konnektörü ile CSI arabirimli kameraların bağlanmasını mümkün kılar. CSI arabiriminden bağlanan kameralar ham veri sağladığından (herhangi bir kodlama yapmadan) görüntünün işlenmesi görevi GPU tarafından yerine getirilir.

Raspberry Pi’ın CSI (Seri Kamera Arayüzü) konnektörü

Okumaya devam et “CSI Kamera Modülü ve Uygulamaları”

NodeRed hakkında daha fazla kaynak

Node-RED hakkında bilgi edinebileceğiniz en güncel ve doğru kaynağın adresi nodered.org olan web sitesidir. Sitedeki Documentations bağlantısı oldukça iyi organize edilmiş ve doyurucu bir kaynak sunar. Ayrıca nodered.org üzerinden ulaşabileceğiniz forum sistemi yardımlaşmayı seven Node-RED kullanıcıları ile doludur. Node-RED konusunda destek ve bilgi alabileceğiniz diğer kaynaklar şunlardır.

Okumaya devam et “NodeRed hakkında daha fazla kaynak”

NodeRed – UYGULAMA 3: Herhangi Bir Web İçeriğini Parsellemek

Önceki uygulamada bir çevrim içi servis tarafından sağlanan verileri projemizde kullanmıştık. Gelen veri JSON biçiminde olduğu için de bu konuda hiç zorlanmamıştık. Çünkü hangi verinin XML ağacı içindeki hangi etiketler arasında yer aldığı belliydi. Bu uygulamamız da ise web ortamında bulunan ve standart yollarla sunulmayan verilerin nasıl elde edileceğini (parselleneceğini) ve Node-RED ortamında kullanılacağını örnekleyeceğiz. Bunun için HTTP Request (HTTP isteği) ve HTML node’larından faydalanacağız. HTTP Request ile Doviz.com sitesindeki güncel altın bilgisini alarak Node-RED ortamına taşıyacağız. Node-RED ortamına taşıdıktan sonra dilerseniz veri tabanına kaydedebilir, bir bildirim oluşturabilir veya bir gösterge üzerinde görüntülenmesini sağlayabilirsiniz. Bu tamamen hayal gücünüze kalmış. Aşağıda döviz.com sitesinin ana sayfası gözüküyor.

doviz.com tesinin ana sayfasının ekran görüntüsü

Okumaya devam et “NodeRed – UYGULAMA 3: Herhangi Bir Web İçeriğini Parsellemek”

NodeRed – UYGULAMA 2: Dashboard Aracılığıyla Bir Röle’nin Kontrolü

Bu uygulamada, önceki uygulamamızı biraz daha geliştirerek Node-RED’in interaktif ve görsel dashboard’unu (kontrol paneli) kullanacağız. Dashboard’a yerleştireceğimiz bir anahtar ile rölenin tetiklenmesini sağlayacağız. Bu arada fiziksel bir anahtarımız daha olacak. Yani, dilersek hem bu anahtar aracılığıyla hem de web tabanlı dashboard üzerinden rölemizi kontrol edeceğiz. Bu uygulamayı uzaktan çalıştırmak istediğiniz cihazlar için kullanabilirsiniz. Örneğin uzaktan kombiyi çalıştırmak veya bahçeyi sulamak vb. Bu uygulama için “Çevrimiçi Kütüphane” başlığında anlatıldığı üzere node-red-dashboard adlı node’un yüklü olması gerekiyor. Kurmamız gereken devrenin bağlantı şeması aşağıdaki gibidir.


Devrenin bağlantı şeması

Okumaya devam et “NodeRed – UYGULAMA 2: Dashboard Aracılığıyla Bir Röle’nin Kontrolü”

NodeRed – UYGULAMA 1: Buton ile LED’in Kontrolü

Node-RED’i kullanarak gerçekleştireceğimiz bu ilk uygulamada, Raspberry Pi’a bağlı bir butona basılıp basılmadığını algılatarak bir LED’i yakacağız. Raspberry Pi’ın GPIO.14 pin’ine bir buton, GPIO.23 pin’ine de bir LED bağlanmıştır. Bağlantı şemasını aşağıda görebilirsiniz.

 
Uygulama devremizin bağlantı şeması

Okumaya devam et “NodeRed – UYGULAMA 1: Buton ile LED’in Kontrolü”

NodeRed – İkinci Akışımızı Oluşturalım

Bu akışımızda Node-RED kullanarak internetten canlı veri çekeceğiz. Örnek olarak Türkiye Cumhuriyeti Merkez Bankasının XML biçiminde sunmuş olduğu döviz kurlarını kullanarak seçeceğimiz bir dövizin satış bilgisini debug panelinden görüntüleyeceğiz. Merkez bankası döviz kurları ile ilgili verileri aşağıdaki adresten sunmaktadır. Öncelikle bu sayfayı bir web tarayıcısı ile ziyaret ederek inceleyin.

https://www.tcmb.gov.tr/kurlar/today.xml

Okumaya devam et “NodeRed – İkinci Akışımızı Oluşturalım”

NodeRed – İlk Akışımızı Oluşturalım

İlk akışımız bir Inject node tarafından gönderilen mesajın debug node aracılığı ile alınarak debug panel de görüntülenmesi olacaktır. Daha önce bahsedildiği gibi inject node genellikle akış kolunun başına yerleştirilerek akışın kullanıcı tarafından başlatılabilmesini sağlar. Inject node seyahatine başlayacak olan mesaj nesnesinin payload özelliğine istediğimiz veriyi koyabilir. Bu veri o anki zaman bilgisi olabileceği gibi sayı veya herhangi bir metin de olabilir. Debug node ise kendine ulaşan mesaj (msg) nesnesinin içeriğini detaylı şekilde görebilmemizi sağlar. Şimdi aşağıdaki akışı gerçekleştirmek üzere inject ve debug node’ları çalışma alanına sürükleyerek birleştirin.

Inject ve debug node’lardan oluşan ilk akışımız

Okumaya devam et “NodeRed – İlk Akışımızı Oluşturalım”

NodeRed – Hataları Yakalamak

Projenizde kullandığınız node sayısı ve akışlar aracılığıyla kurulan etkileşimler arttıkça hata çıkma olasılıkları da artar. Bu nedenle hataları yakalayacak yöntemleri bilmeli ve kullanmayı alışkanlık haline getirmelisiniz.

Her programlama dilinde olduğu gibi, Node-RED de akışlardaki hataların tespit edilebilmesi/yakalanabilmesi için çeşitli yollar vardır. Bunlardan ilki ve en çok kullanılanı debug paneldir. Diğeri ise konsol günlüğüdür. Bu günlüğün görüntülenebilmesi için Node-RED ile birlikte gelen node-red-log aracı kullanılır. Bu  şekilde günlüğe yazılan hatalar sadece onları görmek açısından faydalıdır. Akışın çalışması sırasında onları kontrol ederek farklı bir aksiyon alabilmeniz için bir fayda sağlamaz.

Okumaya devam et “NodeRed – Hataları Yakalamak”

NodeRed – Gömülü Olarak Kullanmak

Node-RED’i, NodeJS uygulamanız içerisinden doğrudan çalıştırabilirsiniz. Bu genellikle Node-RED’in akış editörünü daha büyük bir uygulama içinde sanki onun bir parçasıymış gibi kullanmak gerektiğinde yapılır. Port çakışması olmaması için Node-RED servisini durdurmalı ve devre dışı bırakmalısınız. Ardından aşağıdaki kodu NodeJS uygulamanıza dâhil ederek Node-RED’i uygulamanız içinden kullanabilirsiniz.

Okumaya devam et “NodeRed – Gömülü Olarak Kullanmak”

NodeRed – Temel Node’lar

Node-RED paleti, temel yapı taşı olarak kullanılan bir grup node’dan (core nodes) oluşur. Bu başlıkta bu node’lar hakkında bilinmesi gereken temel bilgiler verilmiştir. Node’ları çalışma alanına sürükleyip seçtiğinizde kenar çubuğunda kısa açıklamaları gözükür.

Okumaya devam et “NodeRed – Temel Node’lar”

NodeRed – Dashboard’u Yüklemek ve Ayarlamak

Dilerseniz önümüzdeki uygulamalarda çokça kullanacağımız ve aşağıda ekran görüntüsünü yer alan kontrol panel bileşenlerini Node-RED kurulumumuza dâhil edelim. Bunun için internet bağlantısına ihtiyacımız olacak.

node-red-dashboard görsel bileşenleri

Okumaya devam et “NodeRed – Dashboard’u Yüklemek ve Ayarlamak”