Ağu 152018
 
106 kez okundu

Küçük Dev Adam Rasbberry Pi 3 B+ için 1 Terabaytlık Harici Disk Bağlantısı

Raspberry Pi 3 B+, küçücük boyutlarına rağmen büyük işler başarabilen bir araç. Onunla kablosuz -ya da isterseniz ethernet üzerinden- herhangi bir ağa kolayca bağlanabilir, ya da doğrudan internete erişebilirsiniz.
Onun belleğinin sadece 1 GB olması sizi yanıltmasın! Bu küçük dev adamın üzerinde NOOBS, RASPBIAN ya da RASPBERRY PI DESKTOP çalıştırabilirsiniz. Bunlara ek olarak, hemen çalıştırılmaya hazır 3. parti işletim sistemleri de var: Ubuntu Mate, Snappy Ubuntu Core, Windows 10 IOT Core ve OSMC bunlardan bazıları… Micro SD kartınıza bu işletim sistemlerinden istediğiniz birini yükleyin ve düğmeye basın! (Öyle dediğime bakmayın! Raspide düğme falan yok! Sadece güç adaptörünü fişe takmanız yeterli oluyor.)
Raspi, tahmin edeceğiniz üzere, sabit disk gibi kayıt araçlarına sahip değildir. Ama 4 adet USB soketine sahip. Yani istediğiniz sabit diski kolaylıkla sisteminize ekleyebilirsiniz.
Dilerseniz bu durumu hemen örnekleyelim.

KULLANACAĞIMIZ MALZEMELER

Raspberry Pi 3 B+
USB klavye ve fare
Raspi güç adaptörü
HDMI bağlantılı Monitör (veya HDMI adaptörü ile VGA monitör)
Harici Disk ve güç kaynağı
Disk bağlantısı için USB kablo
Anahtarlı çoklu priz
Elimde 1 TB’lik bir Seagate harici disk var. Biraz eski bir model. Ama bu eski modellerin şimdikilere kıyasla önemli bir artısı bulunuyor: harici bir güç kaynağına sahipler. Bu özellik önemli! Çünkü raspiye ekleyeceğiniz tüm cihazların ya çok az güç tüketmesi, ya da kendi harici güç kaynaklarına sahip olması gerekiyor. Raspinin kendi güç adaptörü, klasik harici diskleri beslemek için yeterli değildir. Bunu aklınızın bir köşesinde bulundurun! Aksi halde diske erişemezsiniz.
İşte bu yüzden, raspi ile birlikte kullanmak üzere bir disk edinmek istiyorsanız, mutlaka, kendi enerji kaynağı olan birini seçin.
Test için kullandığım raspiye bir adet USB klavye ve eski bir VGA monitör bağladım. RGB bağlantısını HDMI’a dönüştürmek amacıyla da bir VGA-HDMI dönüştürücüsü satın aldım. Ama sizin monitörünüzde bir HDMI bağlantısı varsa, böyle bir dönüştürücü kullanmanıza gerek kalmayacaktır.

HARİCİ DİSKİN BAĞLANMASI

Şimdi “df” komutuyla sistemimizin disk yapısını inceleyelim.

raspberry pi

Daha sonra harici diskimizi bağlayalım ve “df” komutunu yeniden çalıştıralım.

raspberry pi

İkinci resimde de görüldüğü gibi 976GB’lık disk /dev/hda1 olarak listemize eklenmiş durumda.

Artık bu diske istediğimiz gibi erişebilir; oradaki dosya ve klasörleri okuyup inceleyebilir ya da yeni dosyalarımızı bu diske kaydedebiliriz. (Yüklenen diskin izinlerine dikkat edin. Eğer NTFS formatlı bir disk kullanıyorsanız, yazma izinleriniz olmayabilir. Bu konuyu bir başka yazımda etraflıca ele alacağım.)

AĞ BİLGİSAYARINDAN RASPİYE ERİŞİP DOSYA KOPYALAMA

Peki raspiye bağlanmış bu diske aynı ağdaki bir başka bilgisayar üzerinden erişebilir miyiz?
“Evet!” dediğinizi duyar gibi oluyorum.
Raspi üzerinden bağlandığımız diske daha önceden “merhaba.txt” isimli küçük bir dosya kaydettim. Dosyanın içinde “Merhaba raspi!” cümlesi yazılı.
Bu dosyayı kontrol etmek için ilgili dizine geçip, dosya içeriğine bakalım.
$ cd “/media/pi/FreeAgent Drive/”
$ cat merhaba.txt

Aldığımız yanıt:
Merhaba raspi!
raspberry pi

Amacımız bir başka bilgisayardan raspiye erişip, buradaki merhaba.txt dosyasını yerel bir klasöre kopyalamak.

UBUNTU 16.04 ÜZERİNDEN rsync KOMUTUYLA DOSYA KOPYALAMA

Önce Ubuntu üzerinde çalışalım. Şu anda benim kullandığım sürüm Ubuntu 16.04.
İşte burada “rsync” komutu devreye giriyor. Bu komutun adı, “uzaktan senkronizasyon” (Remote Sync) sözcüklerinden türetilmiş. Sistem yedeklemelerinde sıklıkla kullanılıyor. İstenen dosyaları veya dosya gruplarını istediğimiz yere kopyalamamızı sağlıyor. Kaynak dosyaların ve hedefin yerlerini belirtmemiz yeterli.
Bu kez ağ üzerindeki bir başka bilgisayarda (kendi kullandığım Ubuntu 16.04 işletim sistemi olan laptop üzerinde) bir komut penceresi açıp aşağıdaki komutları verelim:
mkdir gecici
cd gecici
ls
rsync pi@192.168.1.39:”/media/pi/FreeAgent\ Drive”/merhaba.txt .
ls
cat merhaba.txt

Kopyaladığımız dosyayı kolay izlemek için önce gecici isimli bir klasör oluşturup, o klasöre geçiyoruz. rsync komutunu bu klasörün içindeyken veriyoruz.
rsync komutunda parametre olarak önce dosyamızın orijinal yerini (yani kaynak adresini), sonra da nereye kopyalanacağını (yani hedef adresini) belirtiyoruz. “pi” raspi üzerindeki yetkili kullanıcının adıdır. (Sizde bu ad farklıysa onu kullanın.) IP numarasından sonra “:” işareti konması gerekiyor. Disk sürücüsüne ait isimde boşluk işareti bulunduğu için bu ismi tırnak içine aldık ve boşluk işaretinden önce “\” kullandık. İsim birden fazla boşluk içeriyorsa, her boşluk işaretinden önce “\” koymayı unutmayın. Aynı kural klasör ve dosya isimleri için de geçerlidir.
Not: rsync komutundaki kaynak bilgisinde kullandığımız “192.168.1.39” IP numarasını raspi üzerindeki bir komut penceresinde “ifconfig” komutunu kullanarak elde ediyoruz. Aynı sonuca yerel ağ üzerindeki tüm bağlantıları tarayarak ulaşmak da mümkün. Ancak bu konuyu bir başka bir yazımda inceleyeceğim.
“rsync” komutunun en sonundaki “.” (nokta) işareti çok önemli. Bu işareti kullanarak, dosyamızı o an içinde bulunduğumuz aktif klasöre kopyalıyoruz. (Nokta yerine bir başka klasörün adresini yazarsak, dosya o klasöre gider.)
Şimdi aldığımız sonucu kontrol edelim:
ls *
Dosyamız burada.
Bir de bu dosyanın içine bakalım:
cat merhaba.txt
İçerik de beklediğimiz gibi: Merhaba raspi! Demek ki doğru dosyayı, doğru şekilde kopyalamış olduk.

WINDOWS 10 ÜZERİNDEKİ WINSCP PROGRAMI İLE DOSYA KOPYALAMA

Aynı işlemleri bir de Windows 10 işletim sistemi üzerinde tekrarlayalım.
Bağlantı için VNC Viewer uygulamasını aynı şekilde kullanabiliriz.
Dosya kopyalamak içinse WinSCP uygulamasını kullanacağız.
raspberry pi
Bu uygulamada da kullanıcı adı olarak pi, parola olarak raspberry kullanıyoruz. Bağlantıdan sonra sağ taraftaki listede bulunan merhaba.txt dosyasını sürükle-bırak yöntemiyle sol taraftaki kutucuğa kopyalıyoruz.
raspberry pi
Şimdilik bu kadar.

Sonsöz

Fırsat buldukça raspi ile neler yapabileceğimizi gösteren küçük örnekler ele alacağım.
Soru ve önerileriniz için yorum alanını kullanabilirsiniz.
Yeni yazılarımda buluşmak üzere, hoşça kalın!
Ahmet Aksoy

Linkler:

Şub 272018
 
584 kez okundu

Raspberry Pi 3 üzerine Windows 10 IoT Core kurulması

Bu yazım da yine Raspberry Pi ile ilgili. Ama bu kez, bu mini bilgisayar üzerine nasıl Windows 10 kurabileceğimizi göreceğiz.

Aslında iki yıldan bu yana -mecbur kalmadıkça- Windows kullanmıyorum. Çünkü Windows işletim sistemi çok fazla kaynak tüketiyor. Hele Windows 10’a geçildikten sonra bu tüketim çok üst boyutlara çıktı. Bu yorumlarımı istatistiklere dayandırmıyorum ama, kişisel deneyimlerimin hepsi bu yönde. Dolayısıyla, bu denli fazla kaynak tüketen bir sistemi Raspberry Pi üzerine kurmaya kalkışmak bana pek de mantıklı görünmüyor.

Ancak, bir kaç gün önce bir izleyenim beni aradı ve Raspberry Pi üzerine Windows kurmak için bir sürü video izlediğini, fakat başarılı olamadığını söyledi. Ben de bu konuda doğrudan bir deneyimim olmadığını; fakat kurulum için genelde nasıl davranılması gerektiğini ayrıntılı bir şekilde anlattım. Yine sonuç alamadı.

İşte bu yüzden, konuya kendim el atma ihtiyacı duydum.

Raspberry Pi üzerine Windows 10 kurulumuna yine çok sıcak bakmıyorum. Ama böyle bir macerayı yaşamak isteyenleri de yarı yolda bırakmamak gerek.

KURULUM İÇİN GEREKLİ MALZEMELER

Önce gerekli malzemelerimizi listeleyelim:
1. Üzerinde Windows 10 çalışan, internete erişebilen ve SD kart/ mikro SD kart yuvası olan bir bilgisayar
2. 8 veya 16 GB kapasiteye sahip, Class 10 mikroSD kart (adaptörü de olacak)
3. Raspberry Pi 3
4. Erişilebilir bir kablosuz modem

Raspberry Pi üzerine normal Windows 10 kurmanız mümkün değil. Microsoft, bu nedenle, Windows 10 IoT Core isimli yeni bir sistem geliştirmiş. Bu sistem, Raspberry Pi ve benzeri mini bilgisayarlar için düzenlenmiş. Kapsamı iyice daraltılmış ve bir çekirdek uygulama haline dönüştürülmüş. Kabaca bir komut moduna ve bir internet gezginine sahip. Dolayısıyla bu kurulumun sonucunda elinize standart bir Windows uygulaması geçeceği hayaline kapılmayın.

BİRİNCİ AŞAMA: Windows 10 IoT Core Dashboard uygulamasının kurulumu

Öncelikle, üzerinde Windows 10 çalışan bir bilgisayardan https://www.raspberrypi.org/downloads/ adresine bağlanın.

win10iot

Açılan sayfada biraz aşağı inin ve “WINDOWS 10 IOT CORE” başlıklı butona tıklayın. Yeni bir pencere açılacak.

win10iot

Üst menüdeki “Downloads” seçeneğini tıklayıp yeni bir sayfaya geçin ve burada “Get Windows 10 IoT Core Dashboard” yazılı butonu tıklayın. Önce “Kaydet”, sonra “Çalıştır” seçeneklerini tıklayın.

win10iot

Böylece “IoT Dashboard” uygulaması bilgisayarınıza kurulmuş olacak. Raspberry Pi için kullanacağımız mikro-SD kartı bu programla hazırlayacağız.

win10iot

İKİNCİ AŞAMA: SD-kartın hazırlanması

Burada, sol taraftaki listeden “Set up a new device” tıklayalım.

win10iot

“Device type” kutucuğunda “Raspberry Pi 2 & 3” olmalıdır. Farklıysa, değiştirin.
“OS Build” kutucuğunda “Windows 10 IoT Core (16299)” -veya benzeri- görünmelidir.
“Drive” kutusunda MUTLAKA mikro-SD kartınız görünmelidir. Eğer gösterilen sürücü doğru değilse gerekli düzeltmeyi yapın. Aksi halde yanlış bir sürücüyü formatlamış ve oradaki bilgileri kaybetmiş olursunuz.
“Device name” olarak herhangi bir isim verebilir veya olduğu gibi bırakabilirsiniz.
“New Adminiztrator password” ve “Confirm Administrator password” kutucuklarına Raspberry için kullanacağınız bir parolayı yazın. Her iki kutuya ayni parola yazılmalıdır. Bu parolayı, yetki gerektiren işlemlerde kullanacaksınız.

Sağ alt köşedeki “I accept the software license terms” kutucuğunu işaretleyerek onayladıktan sonra “Download and install” butonuna basarak kayıt işlemlerini başlatıyoruz. (Sayfanın sağ üst tarafında doğru bağlantı görünüyor olmalıdır. Geçerli bir internet bağlantınız yoksa, bu işlemleri tamamlayamazsınız.)

win10iot

“Erasing SD Card” uyarısı, SD-kartınızın formatlanacağı uyarısını veriyor. “Continue” butonuna tıklayarak devam ediyorsunuz.
Karşınıza, programın internetten indirdiği imaj dosyasını karta yazma aşamalarını gösteren bir pencere çıkıyor. %100’e ulaşıldığında, kart da hazırlanmış oluyor.

win10iot

Kayıt işlemi 10-15 dakika kadar sürebilir.

Eğer herşey yolunda gittiyse, aşağıdaki pencere görüntüsüyle karşılaşacaksınız. Kartınız hazırdır.

win10iot

Programı köşesinden kapatın, kartı çıkarın ve Raspberry Pi 3 üzerindeki yuvaya yerleştirin.

ÜÇÜNCÜ AŞAMA: Cihazın çalıştırılması

Raspberry’nin ekran, klavye ve fare bağlantılarını yapın. Son olarak enerji bağlantısını kurun. (Eğer orijinal adaptör kullanmıyorsanız, kullandığınız adaptörün en az 1.5-2 amperlik olmasına dikkat edin.)

Windows 10 IoT Core sisteminin ilk açılışı 10 dakika kadar sürebilir. Ama enerjiyi verir vermez ekranda Windows 10 logosunu ve dönen topları görmelisiniz. Aksi halde, beklenmedik bir sorunla karşı karşıya olabilirsiniz. Açılış işlemleri sırasında kırmızı ve yeşil ledlerin yanıp sönmekte olduğunu göreceksiniz.

win10iot

Şimdilik benden bu kadar.
Yeni sisteminizi istediğiniz gibi kurcalayabilirsiniz.

Sorularınız olursa, yorum alanından bana ulaşın.

Ahmet Aksoy

Referanslar:

Oca 172018
 
2.379 kez okundu

Tensorflow ile Acemi Şiirler

Bu yazımda internet üzerinden rasgele derlenmiş şiirler kullanarak eğittiğim sistemden aldığım -şiirimsi- çıktıları paylaşacağım.

şiirimsi tensorflow

Henüz abartılı bir sonuç beklemeyin. Nasıl ki bir bebeğin konuşmayı öğrenmesi için belli bir zamana ihtiyacı varsa, makine öğrenmesi sistemlerinin de öğrenmek için zamana ve çabaya ihtiyacı var.

Bu çalışmada Kullandığım veri seti internet üzerinden rasgele toplanmış yaklaşık 70 bin dize içeriyor. Bu veri özel bir denetimden geçmedi. Şair veya biçem konusunda herhangi bir ayrım uygulanmadı. Tek kaygı, dişe dokunur sonuçlar elde edebilmek için veri boyutunun en az 1 milyon karakter olması gereğiydi. (Bu bir kural olmasa da, bir çok uzmanın önerisi bu yönde.) Kullandığım veri setinin boyutu yaklaşık 2MB.

Program, Tensorflow kütüphanesiyle karakter düzeyli RNN (Recurrent Neural Network) eğitimi yapıyor.

Raspberry Pi 3 üzerinde Tensorflow kurulumunu “Raspberry Pi ile Tensorflow 2” başlıklı yazımda ele almıştım. Tensorflow 1.1.0, Python 3.4 üzerinde sorunsuz bir şekilde çalışıyor. (Halen en son Tensorflow sürüm numarası 1.5)

Eğitim çalışmasında Sherjil Ozair’in github deposundaki kodlarını kullandım: https://github.com/sherjilozair/char-rnn-tensorflow

Eğitim için Python 2 veya Python 3 kullanmak mümkün. Ancak Tensorflow sürümü en az 1.0 olmalıdır.

EĞİTİM İŞLEMLERİ

Eğitim işlemi

komutuyla yapılıyor. Eğer herhangi bir parametre vermezseniz, otomatik olarak “Tiny Shakespeare” verisi kullanılıyor. İsterseniz, internet üzerinden başka veri setleri de bulup indirebilirsiniz.

Sanal ortam üzerindeki kendi eğitim çalışmamda şu kodları kullandım:

Tensorflow

Her batch işlemi yaklaşık .25 saniye tutuyor. Toplam 40050 batch olduğuna göre yaklaşık 10 bin saniyelik bir eğitim süresi olacak. Yani 3 saate yakın bir süre.

Bilgisayarım 4 çekirdekli bir i5. Ancak tam yükte aşırı ısındığından, çökmemesi için işlemcileri 2.53GHz yerine 2.40GHz hızla çalıştırabiliyorum. Aynı işlemler Raspberry Pi 3 üzerinde 8 kat daha fazla bir zamana ihtiyaç duyuyor. Bu yüzden tek bir Raspberry Pi ile bu tür bir eğitim yapmak pek de verimli değil.

Ancak, bir başka bilgisayarda eğitilmiş veri setini Raspi’ye aktarıp, kullanabilirsiniz. Ben de bu yöntemi tercih ediyorum.

SONUÇLAR

Eğitilmiş bir veri setini kullanarak sonuç elde etmek için verilecek komut şu:

Yukarıdaki komuttan da anlaşılacağı gibi, eğitilmiş veri “save/siirler” klasöründe bulunuyor.

Dizüstü bilgisayarımda eğittiğim veriyi Raspberry Pi 3 üzerine “rsync” komutu ile çektim ve raporladım:

Raspberry Pi 3 üzerinde rapor alma işlemi bile yaklaşık 30 saniye sürüyor.

Bir örnek daha:

Çok daha büyük bir veri seti ve -tercihen- GPU kullanabilen bir bilgisayarda eğitilmiş veri setleriyle çok daha anlamlı sonuçlar elde etmek mümkün olabilir.

Eğer güçlü bir bilgisayara sahipseniz veya sabırlı biriyseniz siz de kendi veri kümelerinizi eğitebilirsiniz.

Ahmet Aksoy

Referanslar:

Oca 162018
 
638 kez okundu

Raspberry Pi Maceralarım No-09

Raspberry Pi 3 GPIO ile Bir Ledin Parlaklığını ve Frekansını Kontrol etmek

Önceki yazımda “İki Yönde Yürüyen ışık” örneğini vermiştim. Bu kez bir LED’in parlaklığını ve yanıp sönme frekansını denetleyeceğiz.

Yazının sonunda linkini verdiğim videda konu ile ilgili ayrıntılar mevcut. O yüzden burada sadece kodları ve devre şemasını vermekle yetineceğim.

Raspberry Pi Maceralarım No-09

Kodlar hem Python 2, hem de Python 3 ile uyumludur.
Parlaklık ve frekansı GPIO’nun 12 nolu iğnesinin PWM (Pulse Wave Modulation) özelliğini kullanarak kontrol ediyoruz.

Program kodlarını, devre montajını ve örneğin çalışmasını gösteren videomuz aşağıda.

GPIO ile ilgili örneklerimi burada sonlandırıyorum.

Bir sonraki yazımda yeni bir Tensorflow örneğini ele alacağım.

Beni izlemeye devam edin.

Ahmet Aksoy

Raspberry Pi Maceralarım No-09

Oca 102018
 
514 kez okundu

Raspberry Pi Maceralarım No-08

Raspberry Pi 3 GPIO ile İki Yönde Yürüyen ve Rasgele Yanıp Sönen Işıklar

Önceki yazımda “Yürüyen ışık” örneğini vermiştim. Bu kez iki betik vereceğim. Birinci betikle aynı LED’lerin her iki yönde yürümesini, diğeriyle ise LED’lerin rasgele yanıp sönmesini sağlayacağız.

GPIO iğne yerleşim şemasını bir kez daha paylaşayım:

Raspberry Pi Maceralarım No-07

İki yönlü yürüyen ışık kodlarımız kolay anlaşılır:

Kodların açıklaması

Sadece while döngüsü içindeki ikici for bloğu öncekinden farklı

Bu bloktaki tek fark, for döngüsünün sondan başlayıp, birer birer azalarak sıfıra kadar inmesi…

İlk örneğimizdeki 10 ledli devreyi ikinci betiğimizde de kullanıyoruz.

Kodlarımız şöyle:

Bu betiğimizde sadece while bloğunun içeriği farklı. (Burada random modülünü kullandığımız için betiğin başında bu modülü içeri aktarıyoruz.)

Döngünün her aşamasında önce tüm ledlerin söndüğünden emin olmak için hepsini_sondur() fonksiyonunu çağırıyoruz.

Daha sonra pinler[] listesinden, indis numarasını 0 ile liste boyu arasından rasgele seçtirdiğimiz bir sayıyı kullanarak, rasgele bir LED numarası belirleyip pin değişkenine aktarıyoruz.

Pin numarasını vererek yaktığımız LED’in yanık kalma süresini de 0 ile 9 arasındaki rasgele bir sayıyı 50.0’ye bölerek saptıyoruz. bekle değişkenine atadığımız bu değeri, time.sleep() fonksiyonuna argüman olarak vererek LED’in yanık kalma süresini belirliyoruz.

Kısacası, bu betiğimizde hem yanacak LED’in indisini, hem de yanık kalma süresini rasgele belirledik. Bu süreyi

satırındaki değerlerle oynayarak istediğiniz gibi değiştirebilirsiniz.

LED’lerimizin davranışını gösteren videomuz aşağıda.

Bir sonraki yazımda GPIO 12 numaralı iğnenin PWM (Pulse Width Modulation) özelliğini kullanarak bir LED’in parlaklığını istediğimiz gibi denetlemeyi örnekleyeceğim.

Beni izlemeye devam edin.

Ahmet Aksoy

Raspberry Pi Maceralarım No-08

Oca 062018
 
518 kez okundu

Raspberry Pi Maceralarım No-07

Raspberry Pi 3 GPIO ile Yürüyen Işıklar

Önceki yazımda “Yanıp-sönen LED” örneğini vermiştim. Bu kez yan yana dizilmiş 10 adet LED’in sırayla yanıp sönerek bir “Yürüyen Işık” oluşturmasını sağlayacağız.

GPIO iğne yerleşim şemasını tekrar paylaşayım:

Raspberry Pi Maceralarım No-07

Kodlarımız oldukça basit:

Kodların açıklaması

Betiğimizin ilk satırları önceki örneğimizinkiyle aynı. Gerek duyarsanız, açıklamalar için önceki yazıma bakabilirsiniz.

Bu fonksiyonumuz, listedeki tüm pinlerin gerilimini toprak seviyesine düşürerek ledleri söndürüyor.
Aslında pinlerin çoğunda ledleri yakacak gerilim yok. Sadece HIGH (True) konumundakini söndürmek yeterli. Ama başka yerlerde de kullanmak amacıyla bu fonksiyonu hazırladım. Burada da işimizi görüyor.

pini_yak(pin) fonksiyonu iğne numarasını belirttiğimiz bağlantıyı aktif hale getiriyor.

bekle değişkenine 0.2 değerini yükledik. Bu değişken ledlerin yanık kalma süresini belirliyor.
Döngünün içinde her aşamada önce tüm ledlerin sönmüş olmasını sağladıktan sonra sırası gelen ledi yakıyor ve bekle saniye bekliyoruz.

Sonsuz döngüyü sonlandırmak istediğimizde Ctrl-C tuşlarına basmamız gerekiyor.

İlk örneğimizdeki 10 ledli devreyi burada da aynen kullanıyoruz.

Videomuz aşağıda.

Bir sonraki yazımda yine aynı devreyi kullanarak iki yönlü yürüyen ışık yapacağız.

Beni izlemeye devam edin.

Ahmet Aksoy

Raspberry Pi Maceralarım No-07

http://python.gurmezin.com/raspberry-pi-maceralarim-no-01/
http://python.gurmezin.com/raspberry-pi-maceralarim-no-06/
http://python.gurmezin.com/raspberry-pi-maceralarim-no-07/

Oca 052018
 
612 kez okundu

Raspberry Pi Maceralarım No-06

Raspberry Pi 3 GPIO ile LED kontrolü

GPIO (General-Purpose Input/Output) sözcüklerinin ilk harfleriyle oluşturulmuş bir terimdir. Genel amaçlı Giriş-Çıkış anlamına gelmektedir.

Raspery Pi 3 Model B kartlarda 40 iğneli GPIO sistemi bulunur.

Raspberry Pi Maceralarım No-06

Bazı eski modellerdeki GPIO 26 iğnelidir. Bu iğneler, 40 iğneli bağlayıcının (konnektörün) ilk 26 iğnesi ile özdeştir. Bu yüzden 40 iğneli sistem, “extended-genişletilmiş” olarak da adlandırılmaktadır.

İğnelerin özellikleri yukarıdaki basitleştirilmiş şemada yer alıyor.

Şimdi ilk örneğimizi geliştirelim:

Kodların açıklaması

GPIO iğneleri 2 farklı yöntemle isimlendirilir. BROADCOM yönteminde iğneler tiplerine göre karışık bir şekilde yer alıyor. Bu yüzden, konuya yabancı kişilerin bu iğnelerin konumunu bulabilmesi için ellerinde bir şema bulundurmaları gerekir.
İkinci yöntemde (BOARD) ise iğneler fiziksel konumlarına göre numaralandırılır. GPIO iğnelerinin köşe iç tarafı 1, dış taraftaki ise 2 numaralı iğnedir. İç taraftakiler 1, 3,…, 39; dış taraftakiler ise 2, 4, …, 40 şeklinde sıralanırlar.
Yukarıdaki şemada iğnelerin her iki yönteme göre sahip oldukları numaralar yer alıyor.
Daha kolay bir yöntem olduğu için ben BOARD yöntemini, yani fiziksel konuma göre numaralandırma yöntemini tercih ediyorum. Bu nedenle verdiğim örneklerde genellikle bu yöntemi kullanacağım.

Örnek kodumuzun hem python, hem de python3 komutuyla çalışmasını sağlamak için ilk satıra kodlama sistemimizin UTF-8 olduğunu tanımlıyoruz. Bu tanıma python3 için gerek yoktur ama, python2 için kullanmamız gerekiyor.

Kod dosyamızı led01.py olarak adlandırdığımızı burada belirtiyoruz.

Python2 ve python3 print fonksiyonlarının aynı şekilde çalışabilmesi için __future__.print_function çağırıyoruz.

RPi kütüphanesi sistem kurulumunda ön yüklenmiş olarak gelir. Kurmamıza gerek yoktur.
GPIO kontrolünü RPi kütüphanesindeki GPIO modülü ile sağlıyoruz. Bu nedenle RPi.GPIO modülünü GPIO adıyla içe aktarıyoruz.
time modülüne ise, LED ışıklarının yanık ve sönük olduğu süreleri denetlemek için gerek var.

# ile kapattığımız bu satırlarda BROADCOM yöntemini seçseydik, 18 numaralı iğneyi kullanmamız gerektiğini görüyoruz. Ama biz BOARD yöntemini kullanacağız ve bize gereken iğne numarası 12. (12 yerine pek çok farklı iğne numarasını da kullanabiliriz. Elbette kablolamayı da ona göre yapmamız lazım.)

6 numaralı iğne toprak (ground) iğnesidir. 9, 14, 20, 25, 30, 34, 39 numaralı iğneler de topraktır. Bunlardan herhangi birini güç kaynağımızın (-) ucuna bağlıyoruz.

Sistemin işimize yaramayacak uyarı mesajlarını bu satırla baskılıyoruz. Uyarıların nasıl çalıştığını görmek isterseniz, # işaretiyle kapatabilirsiniz.

“led” adına atadığımız 12 numaralı iğneyi OUT (çıkış) amacıyla kullanacağımızı tanımlıyoruz. Güç kaynağının pozitif bağlantısı bu uçta etkisini gösterecek.

Burada GPIO modülünün sürüm numarasını görüyoruz.

Asıl döngü burada. while sonsuz döngüsünün içinde 12 numaralı iğnemize “GPIO.HIGH” ile pozitif voltaj yüklüyoruz. Bu durumda 12 numaralı pine bağlı led yanıyor. time.sleep(1) komutuyla 1 saniye bekliyoruz.
Sonra “GPIO.LOW” ile 12 nolu iğnenin voltajını toprak seviyesine düşürüyoruz ve ledimiz sönüyor. Yine 1 saniye bekliyoruz.
Sonra döngünün başına dönüp aynı işlemleri yineliyoruz.
Ledimiz 1 saniye aralıklarla yanıyor ve sönüyor.

Sonsuz döngüyü sonlandırmak istediğimizde Ctrl-C tuşlarına basmamız gerekiyor.

Şimdi devremizi de kuralım. Ama kurduğumuz devreyi sadece bu örneğimizde değil, farklı örneklerde de aynen kullanabilelim. İşte bu yüzden 10 ledli bir devre kuracağız.

Gerekli malzemeler:
1 adet çalışır durumda Raspberry Pi 3 B
10 adet LED
10 adet 220 ohm direnç
1 adet devre montaj tahtası (breadboard)
11 adet atlama (jumper) kablosu

Devre şeması aşağıda.

Raspberry Pi Maceralarım No-06

Videomuzda 12 nolu iğneye bağlı ledimizin yanıp söndüğünü görüyoruz.

Bir sonraki yazımda aynı devredeki ledleri sırayla yakıp söndürerek, yürüyen ışık yapacağız.

Beni izlemeye devam edin.

Ahmet Aksoy

Raspberry Pi Maceralarım No-06

http://python.gurmezin.com/raspberry-pi-maceralarim-no-01/
http://python.gurmezin.com/raspberry-pi-maceralarim-no-05/
http://python.gurmezin.com/raspberry-pi-maceralarim-no-06/

Ara 312017
 
977 kez okundu

Raspberry Pi ile Tensorflow 2

Rasperry Pi ile Tensorflow birbirine oldukça yabancı konular gibi görünüyor. Ama uygulamada öyle değil.

Raspberry Pi ile Tensorflow makalesinde Tensorflow kurulumunu Raspberry Pi üzerinde denemiş, ama başarılı olamamıştım.

Aynı işlemleri bu kez Raspberry Pi 3 üzerinde denedim.

RPi 3 üzerine Raspian Strecth kurdum. Ön tanımlı Python3 sürümü 3.5.1. Oysa elimdeki Tensorflow kütüphanesi Python3.4 için derlenmiş.

Çözüm, Tensorflow kurulumunu sisteme değil, farklı bir sanal ortam üzerine yapmak…

İşlemler şöyle:

1. Sanal ortam için virtualenv paketini kuruyoruz:

2. Tensorflow sürüm uyumunu sağlamak için Python3.4 kuruyoruz:

3. Artık sanal ortamımızı oluşturabiliriz:

4. Sanal ortamımızı devreye sokalım. Böylece python komutu doğrudan python3.4 ile eşdeğer olsun:

5. Çalışma klasörümüze geçelim:

6. Şimdi Tensorflow kütüphanemizi indirelim:

7. Tensorflow’u sanal ortamda kuracağız. Bu nedenle sudo komutuna ihtiyacımız yok:

8. Kurulumu test edelim:

Yükleme sorunsuz gerçekleşiyor.
9. Son olarak mock modülünü de sanal sistemimize ekleyelim.

Raspberry Pi ile Tensorflow 2

Artık Tensorflow-1.1.0 kütüphanesiyle istediğimiz gibi çalışabiliriz.

Herşey yolunda!

Yavaş yavaş, Raspi 3 üzerinde Tensorflow projelerine girişebiliriz.

Beni izlemeye devam edin.

Ahmet Aksoy

Referanslar:

Ara 302017
 
Raspberry Pi Maceralarım No-05
507 kez okundu

Raspberry Pi Maceralarım No-05

Bu yazımda Raspberry Pi 3 Stretch sisteminin konfigürasyonunu ele alacağım.

Raspberry Pi 3’e komut moduyla, ya da VNC üzerinden masaüstüne ulaşarak bağlanabiliriz.

Şimdilik komut moduyla bağlanmayı seçelim.

Önce Raspinin IP numarasını kontrol etmemiz gerekiyor:

IP numaramız 192.168.1.41

Şimdi ssh ile bağlanabiliriz:

Konfigürasyon işlemlerini komut modunda “raspi-config” komutuyla yapıyoruz.
Raspberry Pi 3 konfigürasyon menüsü kullandığımız dağıtıma göre bazı değişiklikler gösterebilir. Verdiğim örnekler Raspbian stretch dağıtımına dayanıyor. Raspbian Jessie’deki menü seçeneklerinin yerleşimi ve kullanılan sözcükler biraz farklı olabilir. Menüleri biraz karıştırarak aradıklarınızı bulabilirsiniz.

Konfigürasyon uygulamasını başlatalım:

Klavye Seçimi

Önce klavye ayarını yapalım:

Boşluk tuşu ile satırımızı işaretliyor, sonra TAB tuşuyla Ok üzerine gelip ENTER tuşuna basıyoruz.

Raspberry Pi Maceralarım No-05

Dil ayarı

Türkçeyi varsayılan sistem olarak işaretleyip, Ok ile onaylayalım:

Raspberry Pi Maceralarım No-05

Arayüz Seçenekleri

Önceki yazılarımda SSH ve VNC seçeneklerini etkinleştirmiştik. Bu işlemleri:

sayfasından yapıyoruz. Aynı sayfada kamera ve seri bağlantı gibi seçenekleri de etkinleştirmek mümkün. (Raspian Jessie’de VNC server seçeneği bulunmuyor. Eğer VNC server kullanmak isterseniz sunucuyu Raspi üzerine siz kurmalısınız.)

Komut modundayken hangi seçeneklerin etkin olduğunu göremiyoruz. Hangi seçeneklerin etkinleştirilmiş olduğunu görmek istersek, masaüstüne bağlanmamız gerekir.

MikroSD Kartın Tamamını kullanmak

Etcher ile işletim sistemini mikroSD karta yazdırdığımızda, kayıt ortamının büyük bir bölümü Raspi tarafından doğrudan kullanılabilir değildir. Bu boş alanı Raspi sistemine dahil etmek için aşağıdaki seçeneği kullanıyoruz:

Raspberry Pi Maceralarım No-05

Overclock

Raspberry Pi 3’te raspi-config uygulaması menüdeki seçeneğe rağmen, bu cihaza overclock uygulanamadığını söylemektedir. Bu açıklama bir uyarı niteliğindedir. Eğer mutlaka overclock işlemi uygulamak isterseniz işlemciyi etkin bir şekilde soğutacak ve 1.5 Amperden fazla akım sağlayabilen bir adaptör kullanacak şekilde önlemlerinizi almanız şarttır.

Konfigürasyon menüsünde ele almadığımız pek çok seçenek bulunuyor. Bunları da yeri geldiğinde ele alacağız.

Beni izlemeye devam edin.

Ahmet Aksoy

Raspberry Pi Maceralarım No-05

http://python.gurmezin.com/raspberry-pi-maceralarim-no-01/
http://python.gurmezin.com/raspberry-pi-maceralarim-no-04/
http://python.gurmezin.com/raspberry-pi-maceralarim-no-05/
https://www.raspberrypi.org/forums/

Ara 262017
 
Raspberry Pi Maceralarım No-04
694 kez okundu

Raspberry Pi Maceralarım No-04

Önceki yazım: Raspberry Pi Maceralarım No-03

Bu yazının Ubuntu’ya göre Raspberry Pi 3’ün ekransız ve klavyesiz kurulumunu anlattığım yazıya göre daha kolay olacağını ummuştum. Elimde zaten hazır bir örneği vardı. Ama ne yazık ki pek öyle olmadı.

O yüzden bu yazım biraz daha kapsamlı olacak. Karşılaştığım sorunları ve olası çözümlerini de ele alacağım.

Bilgisayarımda -ikinci sistem olarak- Windows 10 yüklü. En son güncellenmiş hali. Ama bu son sürüme geçinceye kadar pek çok başarısız -otomatik- güncelleme denemesi olmuştu. Bu nedenle karşılaştığım sorunlar, benim bilgisayarımdan veya bilgisayarımdaki Windows 10 sisteminden kaynaklanmış olabilir. Ama internet üzerinde aynı sorunlara ilişkin mesajlar bulunduğuna göre, o sorunlarla başkaları da karşılaşmış demektir.

Lafı uzatmadan, konumuza dönelim.

KURULUM İÇİN GEREKEN MALZEME VE UYGULAMALAR

Bize gerekli malzeme ve uygulamalar şunlar:
1. Raspian imaj dosyası
2. Advanced IP Scanner
3. Putty
4. VNC Viewer
5. En az 16GB Class 10 mikro SD
6. Ethernet kablosu
7. Raspberry Pi 3 Model B v1.2 kart
8. İnternete bağlı ve ethernet bağlantısı bulunan bir kablosuz modem
9. Aynı modeme bağlı çalışır durumda bir bilgisayar

İMAJ DOSYASI

İmaj dosyamızı zip dosya formatında https://www.raspberrypi.org/downloads/raspbian/ adresinden, “RASPBIAN STRETCH WITH DESKTOP” altındaki kırmızı renkli “Download ZIP” butonuna tıklayarak indiriyoruz.

Raspberry Pi Maceralarım No-04

ETCHER KURULUMU

Etcher uygulamasını etcher.io adresinden indiriyoruz: Ether-Setup-1.2.1-X64.exe.

Raspberry Pi Maceralarım No-04

İndirdiğimiz dosyaya çift tıklayarak kurulumu başlatıyoruz. Benim ilk sorunum da burada başladı ve programın yönlendirici açıklamaları Türkçe veya İngilizce değil, Almanca (veya Flemenkçe?) olarak karşıma çıktı. İyi ki seçenek sayısı kısıtlı. “Annehmen” sözcüğünün “onaylama” anlamını taşıdığını keşfetmek pek zor olmadı.

Raspberry Pi Maceralarım No-04

İMAJ DOSYASININ YAZILMASI

“Annechmen” butonuna tıkla ve bekle. Etcher uygulaması açılacak.

Raspberry Pi Maceralarım No-04

“Select Image” butonunu tıkla ve daha önce indirdiğin 2017-11-29-raspian-stretch.img dosyasını seç.

Raspberry Pi Maceralarım No-04

Ortadaki butonu kullanarak mikro SD cihazını seç (büyük olasılıkla zaten seçilmiş olacaktır).

En sağdaki Flash butonunu tıkla ve uygulamanın bilgisayarında değişiklik yapmasına izin ver.

İmajın mikro SD kartına yazılmasını ve yazılanların kontrol edilmesini bekle. Bu işlem 15-20 dakika kadar sürebilir.

Raspberry Pi Maceralarım No-04

Eğer kontrol işlemleri de sorunsuz bir şekilde bitmişse, bir sonraki işleme geç.
Benim bilgisayarımda herşey bittikten sonra cihazın “unmount” edilemediğini söyleyen bir mesaj çıktı.

Raspberry Pi Maceralarım No-04

İnternet üzerindeki araştırmalar sonucunda edidiğim bilgiye göre bu, programdaki bir uyumsuzluktan kaynaklanıyor. Bundan kaçınmak için uygulama ekranının sağ üst köşesindeki (soru işaretinin sağındaki) çark simgesine tıkla ve açılan pencereden “Eject on success” satırındaki işareti kaldır ve işlemlere baştan başla.

Raspberry Pi Maceralarım No-04

Aslına bakarsanız, kontrol işlemleri %100’e ulaştıktan sonra, en son aşamada çıkan hata mesajları çok fazla önem taşımıyor. Çünkü bu hata mesajlarına rağmen mikro SD karta yazılanlar sağlıklı görünüyor.

Mikro SD disk işlemleri tamamlandıktan sonra hemen bağlantı işlemlerine geçebilirsiniz. Ama alacağınız yanıt, sisteminizin “ssh bağlantısına izin vermediği” olacaktır. Bunu engellemek için mikro SD kartınızda ssh isimli, uzantısı olmayan boş bir dosya oluşturmalısınız. (Eğer sisteminizde dosya uzantıları görüntülenmiyorsa, önce bu özelliği açın.)

Raspberry Pi Maceralarım No-04

GEREKLİ UYGULAMALARIN KURULUMU

Artık SD kartımız hazır. Şimdi işlemlerimizi tamamlamak için 3 uygulamaya daha gereksinim var:
1. Advanced IP Scanner: Raspinin hangi IP numarasını kullandığını bulmak için.
2. putty: Raspiye ssh protokolü üzerinden bağlanabilmek için.
3. VNC viewer: Raspi masaüstüne bağlanabilmek için.

Advanced IP Scanner Kurulumu

https://filehippo.com/download_advanced_ip_scanner/ adresinden indirip kurun. (İndirmek için, sağ üstteki “Download Latest Version (9.11MB)” yazılı yeşil butona tıklayın. Kurmak için İndirilenler klasöründeki ipscan25.exe dosyasına çift tıklayın. Tamam, İleri, Anlaşmayı kabul ediyorum, Kurun, Bitti butonlarını kullanarak kurulumu tamamlayın.)

Raspberry Pi Maceralarım No-04

Putty Kurulumu

Kurulum dosyası olarak https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html adresinden putty-64bit-0.70-installer.msi dosyasını indirin.

Raspberry Pi Maceralarım No-04

İndirilenler klasöründeki putty-64bit-0.70-installer.msi dosyasını çift tıklayarak kurulumu başlatın. Next, Install, Finish butonlarını kullanarak işlemleri tamamlayın.

VNC Viewer Kurulumu

https://www.realvnc.com/en/connect/download/vnc/windows/ adresinden Windows ikonuna tıklayarak gerekli dosyayı indirin.

Raspberry Pi Maceralarım No-04

Uygulamayı kurmak için İndirilenler klasöründeki VNC-Viewer-6.17.1113-Windows.exe dosyasını çift tıklayın ve Ok, Next ve Finish butonlarını kullanarak işlemleri tamamlayın.)

Böylece uygulamalarımızı da kurmuş olduk. Artık Raspberry Pi Kurulumuna geçebiliriz.

Ekransız ve Klavyesiz Raspberry Pi 3 Kurulumu

Yine adım adım gidelim.

1. Mikro SD kartımızı bilgisayardan çıkarıp Raspberry Pi 3 kartındaki sokete yerleştirelim.
2. Ethernet kartımızın bir ucunu modemdeki boş soketlerden birine, diğerini de Raspiye takalım.
3. Güç adaptörünün mikroUSB ucunu Raspideki yuvaya takalım.
4. Güç adaptörünü elektrik prizine takalım.

Şimdi kart üzerindeki kırmızı ve yeşil LEDler yanıp sönmeye başlamalıdır. Birkaç dakika bekleyelim.

Artık Raspinin yerel ağımızdaki IP numarasını bulabiliriz. Bunun için Advanced IP Scanner uygulamasını çalıştıralım.

Raspberry Pi Maceralarım No-04

Gördüğünüz gibi benim ağımdaki Raspi 192.168.1.39 nolu IP’yi kullanıyor.

IP numarasını bulduğumuza göre artık putty uygulamasını kullanarak Raspiye bağlanabiliriz.

Raspberry Pi Maceralarım No-04

Kullanıcı adı olarak pi, parola olarak raspberry verdiğimizde Raspiye bağlanıyoruz.

Raspberry Pi Maceralarım No-04

VNC Bağlantı İşlemleri

pi@raspberrypi bağlantı penceresinde ssh ve VNC sunucularını aktive edeceğiz. Bu amaçla konfigürasyon uygulamasını açmamız gerek:

Şimdi birkaç konfigürasyon işlemi yapıyoruz:
1. Advanced Options -> Expand Filesystem (Mikro SD karttaki ekstra alanı kullanılır hale getirir)
2. Interfacing Options -> SSH -> Select -> Yes -> Ok (SSH sunucusunu açıyoruz)
3. Interfacing Options -> VNC -> Select -> Yes -> Ok (VNC sunucusunu açıyoruz)
4. Finish

Artık VNC bağlantısını gerçekleştirebiliriz. Bunun için önce uygulamayı çalıştırıyor, sonra adres kutusuna 192.168.1.39 yazıp enterliyoruz.

Raspberry Pi Maceralarım No-04

Karşınıza bir uyarı mesajı çıkacak. Burada Continue butonuna tıklıyoruz.

Raspberry Pi Maceralarım No-04

Authentication penceresi açıldığında

girip OK butonuna tıklıyoruz. (İstersek “Remember password” kutucuğunu da işaretleyebiliriz.)

Raspberry Pi Maceralarım No-04

Ve karşımızda Raspberry Pi 3 masaüstü ekranı!

Raspberry Pi Maceralarım No-04

Bir de kablosuz bağlantımızı etkinleştirirsek, Raspiyi çalışma masamızdan rahatça kullanabilir olacağız.

VNC Viewer üzerinden eriştiğimiz Raspberry Pi 3 penceresindeki üst menüde yanyana iki aşağı-yukarı ok işareti bulunan ikon, ağ bağlantılarına ulaşmak için kullanılır. Bu ikona tıkladığımızda açılan listede kendi modemimizin adını bulup tıklarsak, modem bağlantı parolasını “Pre Shared Key” kutucuğuna girip OK tuşunu tıkladığımızda, kablosuz bağlantımız da gerçekleşir.

Sonuç olarak elimizin altında HDMI bağlantılı bir ekran, USB bağlantılı bir klavye ve fare olmasa da; sadece yerel ağımız üzerinde çalışan ve Windows yüklü bir bilgisayardan yararlanarak cihazımıza bağlanmamız mümkün.

Eğer sizin elinizde gerekli tüm malzemeler varsa, ya da kendinizi yormak istemiyorsanız, önceki yazımdaki açıklamalardan yararlanarak Raspiye çok kolay bir şekilde bağlanabilirsiniz.

Bir sonraki yazımda Raspberry Pi 3 konfigürasyonu ile ilgili bazı püf noktalarını inceleyeceğim.

Beni izlemeye devam edin.

Ahmet Aksoy

http://python.gurmezin.com/raspberry-pi-maceralarim-no-01/
http://python.gurmezin.com/raspberry-pi-maceralarim-no-02/
http://python.gurmezin.com/raspberry-pi-maceralarim-no-03/
http://python.gurmezin.com/raspberry-pi-maceralarim-no-04/