Konu08 Raspberry pi 4inch TFT module ili9488

Bu makalede sizlere aliexpress gibi sitelerden edinebileceğiniz uygun fiyatlı tft modülü raspberry ile nasıl kullanacağınızı tarif etmeye çalışacağım.

Öncelikle burada kullanacağımız yöntem iso'da ya da çekirdekte herhangi bir değişiklik yapılmadan gerçekleştirilecek ve bununla beraber ekran hızı bir hayli yavaş olacaktır.

Her zamanki gibi önce sistemimizi update ederek başlıyoruz

sudo apt-get update

sonra modules dokumanini açıyoruz

sudo nano /etc/modules

ve aşağıdaki kodları ekliyoruz

fbtft_device name=flexpfb rotate=180 fps=60 gpios=dc:18,reset:7,wr:17,cs:4,db00:22,db01:23,db02:24,db03:10,db04:25,db05:9,db06:11,db07:8 speed=48000000

flexfb width=480 height=320 buswidth=8 init=-1,0xb0,0x0,-1,0x11,-2,120,-1,0x3A,0x55,-1,0xC2,0x33,-1,0xC5,0x00,0x1E,0x80,-1,0x36,0x28,-1,0xB1,0xB0,-1,0xE0,0x00,0x04,0x0E,0x08,0x17,0x0A,0x40,0x79,0x4D,0x07,0x0E,0x0A,0x1A,0x1D,0x0F,-1,0xE1,0x00,0x1B,0x1F,0x02,0x10,0x05,0x32,0x34,0x43,0x02,0x0A,0x09,0x33,0x37,0x0F,-1,0x11,-1,0x29,-3

burada dikkat edilmesi gereken husus, yukarıda yazanların tek satır halinde eklenmesi gerekliliği.

(fbtft_device name…. 1. Satır

flexfb width…. 2. Satır )

değişiklikleri kaydedip çıkıyoruz.

Cmdline.txt dosyasını açıyoruz

sudo nano /boot/cmdline.txt

aşağıdaki satırı ekliyoruz ve kaydedip çıkıyoruz.

fbcon=map:10 fbcon=font:VGA8x8 FRAMEBUFFER=/dev/fb1

frame buffer yazılımını yüklüyoruz

sudo apt-get install xserver-xorg-video-fbdev

/usr/share/X11/xorg.conf.d/99-fbdev.conf dosyasını oluşturuyoruz

sudo nano /usr/share/X11/xorg.conf.d/99-fbdev.conf

ve dosyanın içine aşağıdaki kodları yazıyoruz.

Section "Device"

Identifier "myfb"

Driver "fbdev"

Option "fbdev" "/dev/fb1"

EndSection

Ve bu kadar. Son olarak sistemi yeniden başlatıyoruz.

sudo reboot

 

 

Kaynak: http://appdictive.dk/blog/projects/2015/10/30/cheap_tft_display_on_raspberry_pi/

Aliexpress ürün linki: http://www.aliexpress.com/item/Free-shipping-LCD-module-Pi-TFT-3-6-inch-for-raspberry-pi-display-screen/32236159766.html

 

 

 

Raspberry Pi üzerinde Node.js ile dc motor kontrolü

Daha önceki makalelerimizde Raspberry pi üzerine nasıl node.js, socket.io kurulacağından bahsetmiştir. Bu makalede önceki bilgileri de kullanarak raspberry'e bağladığımız bir aracı başka bir bilgisayardan nasıl kontrol edebileceğimizden bahsedeceğiz.

Raspberry ile dc motor kontrol etmek için L293d entegresine ihtiyacımız var. 4-5TL'ye her elektronikçide bulabileceğiniz bir entegre.

Bağlantıların nasıl yapılacağını araştırırken bu siteye rastladım: http://computers.tutsplus.com/tutorials/controlling-dc-motors-using-python-with-a-raspberry-pi--cms-20051 Bağlantıların nasıl yapılacağını çok güzel anlatmış. Fakat ben devre kartını oluştururken kolaylık olması açısından bazı pinlerin yerini değiştirdim.

İsis çizimi şu şekilde

Ares çizimi ise şöyle

L293d entegresinin özelliği iki dc motoru iki yönde sürebilmesi. Bunu yaparken her bir motor için raspberry'den 3 gpio pin'i kullanacağız. Benim örneğimde 1. Motoru sürmek için kullanılmak üzere 16,18,22. Ve 2. Motoru sürmek için 19,21,23. bacaklar.

Üstteki ve alttaki tabloları örnekleyecek olursak 1.motoru ileri hareket ettirmek için motoru Enable edip A bacağına sinyal yollamamız gerekiyor, yani bu örnekte 16 ve 22. Pinlere (GPIO'da 23 ve 25) 1 değerini göndereceğiz. Aşağıda ise bu değerlerin doğruluk tablosu verilmiş.

 

İşin donanımsal kısmıyla ilgili söyleyeceklerim bunlar. Gelelim yazılım tarafına… Raspberry üzerinde node.js ve socket.io kurulu olması gerekiyor. Bir önceki websocket'le ilgili makalede de olduğu gibi yazılım kısmının iki ayağı bulunmakta. Bir server ve bir client. Şu sitede http://evothings.com/controlling-a-toy-car-with-evothings-and-raspberry-pi/ yapacağımız işin tam karşılığı bulunmakta. Client tarafında güzel bir arayüz mevcut ve tüm proje dosyalarını githubda paylaşmış arkadaş. Kendisine teşekkür ediyoruz. Ben de kendi hazırladığım dosyaları yazının sonunda paylaşıyor olacağım. Önce server tarafından başlayalım.

sudo nano gpioMotorControl.js

komutuyla yeni bir dosya açıyoruz. Kodlar aşağıdaki gibi olacak.    

// socket.io'yu açıp 8085. portu dinliyoruz
var io = require('socket.io').listen(8085)

// Load required modules.
var sys = require('sys'),
exec = require('child_process').exec

// Path to Raspbian's gpio driver, used for sending signals to the remote.
var path = '/sys/class/gpio/',
// pin numaralarını buraya giriyoruz
        pins = [23,24,25,10,9,11 ];

// kullanılacak pinleri açıp ayarlıyoruz initPins fonksiyonunun kodları aşağıdadır.
initPins()

//hazırlayacağımız komutları çalıştırmak için bunu kullanacağız
function calistir(command)
{
    exec(command, function (error, stdout, stderr)
    {
        if (error !== null)
            console.log('exec error: ' + error)
    })
}



// burda socket.io bir clientin bağlanmasını bekler
io.sockets.on('connection', function (socket)
{
    console.log('baglanti kuruldu');
    // clienttan gelen bilgiyi dinliyoruz

    socket.on('direction', function (data)
    {
        console.log('gelen yön: ' + data);

        // hazırlayacağımız komut değişkeni
        command = ''
        //ileri giderken 1. ve ikinci motorların A ve E pinlerine 1 gönderiyoruz
        if ( data === 'UP' )
        {
            command = 'echo 1 > ' + path + 'gpio23/value';
            calistir(command);
            command = 'echo 1 > ' + path + 'gpio11/value';
            calistir(command);

            command = 'echo 1 > ' + path + 'gpio25/value';
            calistir(command);
            command = 'echo 1 > ' + path + 'gpio10/value';
            calistir(command);
        }
        else if ( data === 'DOWN' )
        {
            command = 'echo 1 > ' + path + 'gpio23/value';
            calistir(command);
            command = 'echo 1 > ' + path + 'gpio11/value';
            calistir(command);

            command = 'echo 1 > ' + path + 'gpio24/value';
            calistir(command);
            command = 'echo 1 > ' + path + 'gpio9/value';
            calistir(command);
        }
        else if ( data === 'RIGHT' )
        {
            command = 'echo 1 > ' + path + 'gpio11/value';
            calistir(command);

            command = 'echo 1 > ' + path + 'gpio10/value';
            calistir(command);
        }
        else if ( data === 'LEFT' )
        {
            command = 'echo 1 > ' + path + 'gpio23/value';
            calistir(command);

            command = 'echo 1 > ' + path + 'gpio25/value';
            calistir(command);
        }
        //ileri tuşu bırakıldığında motoru durdurmak için aynı pinlere bu sefer 0 değerini yazıyoruz
        else if ( data === 'STOPUP' )
        {
            command = 'echo 0 > ' + path + 'gpio23/value';
            calistir(command);
            command = 'echo 0 > ' + path + 'gpio11/value';
            calistir(command);

            command = 'echo 0 > ' + path + 'gpio25/value';
            calistir(command);
            command = 'echo 0 > ' + path + 'gpio10/value';
            calistir(command);
        }

        else if ( data === 'STOPDOWN' )
        {
            command = 'echo 0 > ' + path + 'gpio23/value';
            calistir(command);
            command = 'echo 0 > ' + path + 'gpio11/value';
            calistir(command);

            command = 'echo 0 > ' + path + 'gpio24/value';
            calistir(command);
            command = 'echo 0 > ' + path + 'gpio9/value';
            calistir(command);
        }
        else if ( data === 'STOPRIGHT' )
        {
            command = 'echo 0 > ' + path + 'gpio11/value';
            calistir(command);

            command = 'echo 0 > ' + path + 'gpio10/value';
            calistir(command);
        }
        else if ( data === 'STOPLEFT' )
        {
            command = 'echo 0 > ' + path + 'gpio23/value';
            calistir(command);

            command = 'echo 0 > ' + path + 'gpio25/value';
            calistir(command);
        }

    })

})



function initPins()
{
    // Enable control of the Raspberry Pi's gpio pins.
    // Read more at http://elinux.org/RPi_Low-level_peripherals#Bash_shell_script.2C_using_sysfs.2C_part_of_the_raspbian_operating_system
    for (var pin in pins)
    {
        console.log('Creating port ' + pins[pin] + '...')

        // The command first checks whether the port already exists.
        var command = 'if (! [ -f ' + path + 'gpio' + pins[pin] + '/direction ]); then ' +
                'echo ' + pins[pin] + ' > ' + path + 'export; fi';

        // Create the ports using Raspbian's command line.
        exec(command, function(error, stdout, stderr)
        {
            if (error === null)
                console.log('Successfully created port.')
            else
                console.log('Error when creating port: ' + error + ' (' + stderr + ').')
        })
    }

    // Configure the Raspberry Pi's gpio pins as output ports which enables signals
    // to be sent to the car's remote control.
    // Read more at http://elinux.org/RPi_Low-level_peripherals#Bash_shell_script.2C_using_sysfs.2C_part_of_the_raspbian_operating_system
    for (var pin in pins)
    {
        console.log('Configuring port ' + pins[pin] + '...')

        // The command configures the pin as an output port.
        var command = 'echo out > ' + path + 'gpio' + pins[pin] + '/direction'

        // Configure the ports using Raspbian's command line.
        exec(command, function(error, stdout, stderr)
        {
            if (error === null)
                console.log('Successfully configured pin.')
            else
                console.log('Error when configuring port: ' + error + ' (' + stderr + ').')
        })
        }
    }

Client tarafında kullanacağımız dosyaları ekleyeceğim fakat bizim için önemli olan client içindeki index.htm dosyası. Kodları ise şu şekilde

<!DOCTYPE html>
<html>
<head>
	<title>Raspberry Car</title>
	<meta charset="UTF-8" />
	<meta name="viewport"
		content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0" />
	<link rel="stylesheet" href="index.css" />
	<script src="libs/jquery-2.1.1.js"></script>
	<script src="libs/jquery.mobile.custom.js"></script>
	<script src="libs/thumbstick.js"></script>
	<script src="http://192.168.2.6:8085/socket.io/socket.io.js"></script>
	<script>
	$(document).ready(function() {

		try {
		    // Connect to the server running on the Raspberry Pi.
            //ip adreslerinin ve portların doğru olduğuna emin olun
			var socket = io.connect('http://192.168.2.6:8085')
			socket.on('connect', function() {
			    alert('connected');
			})
		} catch (error) {
			alert('Failed to connect to the Raspberry Pi!')
		}

		// Create a thumbstick in the canvas.
		var thumbStick = new ThumbStick('stage')
		thumbStick.init()
		$(window).resize(thumbStick.onResizeCanvas.bind(thumbStick))

		// Listen for directional events from the thumbstick and send them to
		// the Raspberry Pi, which sends corresponding signals to the car's
		// remote control.
		thumbStick.addEventListener(
			['UP', 'DOWN', 'LEFT', 'RIGHT',
			'STOPUP', 'STOPDOWN', 'STOPLEFT', 'STOPRIGHT'],
			function(directionEvent) {
			    try {
                    //raspberry'e bilgi gönderdiğimiz yer burası
				    socket.emit('direction', directionEvent)
				    //alert(directionEvent)
				} catch (error) { }
			})

	})
	</script>
</head>
<body>
	<h1>Raspberry Car</h1>
	<div id="canvas_container">
		<canvas id="stage" width="1024" height="690"></canvas>
	</div>
</body>
</html>

Ve test videosu

Ve dosyalar        

Raspberry Pi ile socket programlama

Bu yazımızda Raspberry Pi kullanarak basit bir soket program hazırlayacağız. Soket programlama için Node.js bileşenini ve gene node.js içinde bulunan socket.io'yu kullanacağız. Node.js kurulumundan daha önceki yazımızda bahsetmiştik. O yüzden doğrudan socket.io kurulumuna geçeceğim Node.js kurulu sisteminizde socket.io kurmak için tek yapmanız gereken

sudo npm install socket.io

komutunu çalıştırmak. Uygulamamızda bir server bir de client tarafı olacak, benim örneğimde server raspberry üzerinde, client ise Windows bilgisayarımda çalışacak. Önce server tarafını halledelim.

    sudo nano websocket_ornek.js

komutuyla yeni bir js dosyası oluşturuyoruz. Dosya içine yazacağımız kodlar şu şekilde:  

   //uygulamamızın 5000 numaralı portu dinleyeceğini söylüyoruz

var io = require('socket.io').listen(5000);

//socket bağlantısını açıyoruz ve dinlemeye başlıyoruz

io.sockets.on('connection', function (socket) {

    //bir client'ın bağlandığını anlıyoruz

console.log('oturum açıldı');

    //eğer client socket kullanarak ping isimli bir bilgi gönderdiyse raspberry tarafında ekrana ping yazısını yazdırıyoruz.

socket.on('ping', function(data) {

console.log(data);

});

});

    Artık Windows tarafında hazırlayacağımız client uygulamasına geçebiliriz. Client uygulamasını çalıştırabilmek için jquery kütüphanesine ihtiyacımız var http://jquery.com sitesinde kütüphaneyi indirip kaydedebilirsiniz. Ben "jquery-2.1.0.min" versiyonunu kullanacağım. Uygulamamızın klasörü içinde js isimli bir klasör açıp jquery dosyasını oraya atıyorum. Js klasörünün bir üstünde ise index.htm isimli bir dosya açıyoruz, index.htm içerisindeki kodlar ise şu şekilde: Burada raspberry cihazınızın ip adresini ve dinlediğiniz portu kendinize göre ayarlamayı unutmayın.  

<!DOCTYPE
html>

<html
lang="en">

<head>


<title>Test</title>


<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">


<script
src="js/jquery-2.1.0.min.js"></script>


<script
src="http://192.168.2.50:5000/socket.io/socket.io.js"></script>


<script>

        //raspberry ile aramızda açılacak socket'i tanımlıyoruz.


var socket = io.connect('http://192.168.2.50:5000');

    //socket açıldığında bağlandı mesajını vereceğiz.

socket.on('connect', function () {

alert('bağlandı')

})

 

$(document).ready(function () {

$("#hello").click(function () {

        //butona tıklandığında serverde tanıttığımız ping dinleyicisine merhaba bilgisini gönderiyoruz.

socket.emit('ping', 'merhaba');

});

});


</script>

 

 

</head>

<body>


<button
id="hello"
type="button">

Buraya tıklayın!


</button>

</body>

</html>

  Artık uygulamamızı deneyebiliriz. Raspberry tarafında uygulamamızı çalıştırmak için

sudo node websocket_ornek.js

  uygulamayı durdurmak için ctrl+c tuş kombinasyonunu kullanabilirsiniz. Client tarafında ise tek yapmanız gereken index html'yi çalıştırıp bağlandı bilgisini görmek ve butona tıklamak.

Raspberry Pi üzerine Node.js ile GPIO denemesi

GPIO hizmetine erişebilmek için raspberry'de komutlar sudo olarak çalıştırılmalı, bunun için gpio için bir kullanici oluşturacağız

git clone git://github.com/quick2wire/quick2wire-gpio-admin.git

cd quick2wire-gpio-admin

make

sudo make install

sudo adduser $USER gpio

bu kodlardan sonra logout ve login gerekmekte. RPi-GPIO kurulumunu yapıyoruz

npm install rpi-gpio

Kablolamayı ise şu şekilde yapıyoruz.

6. bacak toprak ve 7. Bacak sinyal.

Node klasörünü node örnekleri için oluşturmuştum oraya giderek yeni bir örnek oluşturuyorum

nano gpio_test1.js

oncelikle kullanacağımız sistemin gpio içerdiğini söylememiz gerekmekte.

var gpio = require('rpi-gpio');

7 numarakı pini çıkış pini olarak ayarlıyoruz ve write fonksiyonunu çağırıyoruz.

gpio.setup(7, gpio.DIR_OUT, write);

aşağıdaki true değeri 7 numaralı bacaktaki ledi yakacaktır. Değiştirip false yaparak söndüğünü de görün

function write() {

gpio.write(7, true, function(err) {

if (err) throw err;

console.log('Written to pin');

});

En basit haliyle node ile gpio kullanarak led yakmak bu şekilde

Aşağıdaki örnek ise 10 saniye boyunca 1 saniye aralıklarla ledi yakıp söndürmekte ve 10 saniye sonunda pini boşaltmaktadır.

var gpio = require("rpi-gpio");

var intervalId;

var durationId;

var gpioPin = 7;

gpio.setup(gpioPin, gpio.DIR_OUT, function(err) {

    var on = 1;

    console.log('GPIO pin '+gpioPin+' is open. toggling LED every 1000 mS for 10s');

    intervalId = setInterval( function(){

        gpio.write(gpioPin, on, function() { // toggle pin between high (1) and low (0)

            on = (on + 1) % 2;

        });

    }, 1000);

});

durationId= setTimeout( function(){

    clearInterval(intervalId);

    clearTimeout(durationId);

    console.log('10 seconds blinking completed');

    gpio.write(gpioPin, 0, function() { // turn off pin 7

        gpio.destroy(); // then Close pin 7

        process.exit(0); // and terminate the program

    });

}, 10000); // duration in mS

 

Rpi-gpio hakkında daha ayrıntılı bilgi için

https://www.npmjs.org/package/rpi-gpio

 

Raspberry Pi üzerine Node.js Kurulumu

Herşeyden önce raspberry'de raspbian'ın güncel halinin yüklü olduğundan emin oluyoruz.

sudo apt-get upgrade

sudo apt-get update

Şimdi node.js'i kurmaya başlayabiliriz. Öncelikle http://nodejs.org/download/ adresinden son sürümü alacağız. Sayfanın altında other releases linkine tıklıyoruz. Node.js'i Arm işlemcili pi'ye kuracağımız için pi versiyonunu indirmemiz gerekmekte. Bu makaleyi yazarken son sürümü v0.11.12 görünüyordu fakat yükleme sonrasında sorun yaşadım ve o yüzden daha eski bir versiyon olan v0.10.2'yi indirdim. Klasör içinde "node-v0.10.2-linux-arm-pi.tar.gz" dosyasını buluyorum. Eğer bulamadıysanız önceki versiyonlara bakın. Yolu kopyalayarak terminal ekranına aşağıdaki komutları yazıyoruz.

wget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gz

    tar –xvzf node-v0.10.2-linux-arm-pi.tar.gz

  Bu kadar. En basit haliyle node.js sistemimize kurulmuş oldu. Eğer node.js'e erişmek için klasörler arasında gezinmek istemiyorsak profil dosyası oluşturmamız gerekmekte.

sudo mkdir /opt/node
sudo mv node-v0.10.2-linux-arm-pi/* /opt/node    
 
sudo nano /etc/profile

Bu komutlardan sonra aşağıdaki 3 satırı yapıştırıyoruz ve kaydedip çıkıyoruz.

 NODE_JS_HOME="/opt/node"

    PATH="$PATH:$ NODE_JS_HOME/bin"

    export PATH

bu işlemden sonra node –v komutu sonrasında versiyon numarasını görebiliyorsanız düzgün çalıştı demektir, fakat node –v düzgün çalışmasına rağmen sudo node –v komut bulunamadı hatası verdi biraz araştırdıktan sonra:

 sudo nano /etc/sudoers

açılan sayfada secure_path değişkenine "/opt/node/bin" yolunu da eklememiz gerekiyor. bu işlemden sonra logot ve login yapıyoruz ki sistem node kelimesini heryerde tanıyabilsin.

Hello world'süz olmaz!

Öncelikle raspberry'nin ip adresini öğreniyoruz ve bir yere not alıyoruz. Tabi ki modeminizin arayüzün kullanarak raspberry'e sabit ip vermesini isteyebilirsiniz.

 ifconfig

ben kök dizinimde nodejs isimli bir klasör oluşturdum ve node.js kullanarak yaptığım örnekleri orada saklayacağım. Klasör içinde

nano helloworld.js

komutuyla bir dosya açıp aşağıdaki kodları yapıştırıyoruz ve kaydediyoruz. Burada dikkat etmeniz gereken husus ip adresinin raspberryi'nizin ip adresi olması gerektiğidir.

 var http = require('http');

    http.createServer(function (request, response) {

        response.writeHead(200, {'Content-Type': 'text/plain'});

        response.end('Hello World!\n');

    }).listen(8000,'192.168.0.22');

 

    console.log('Server running at http://192.168.0.22:8000/');

RPI web serverımızı çalıştıralım node helloworld.js ağdaki başka bir bilgisayardan adres çubuğuna http://192.168.0.22:8000 yazarak merhaba dünya diyebiliriz artık.  

Raspberry Pi üzerine VNC server kurulumu ve windowstan erişim

Raspberry cihazınıza başka bir bilgisayardan bağlanmak ve masaüstüne de erişmek istiyorsanız vnc (virtual network computing)'den faydalanabilirsiniz. Öncelikle terminal ekranında  

    sudo apt-get install tightvncserver

  komutunu yazarak tightvncserver uygulamasını kuruyoruz uygulamayı çalıştırmak için

    tightvncserver

yazmamız yeterli. Bu aşamada sizden bir şifre belirlemenizi ve doğrulamanızı isteyecektir. Sonrasında view-only şifre belirlemek isteyip istemediğinizi soracaktır ki bu işlem opsiyoneldir. Terminal ekranından vnc serverınızı ayar yaparak da çalıştırabilirsiniz.

 vncserver :0 -geometry 1920x1080 -depth 24

  sıradaki işlemimiz Windows tarafına vnc client'i kurmak. http://www.tightvnc.com/download.php adresinden setup dosyasını indirip kolayca kurulum yapabilirsiniz. Kurulum esnasında custom seçeneğini işaretleyerek sadece client kurabilirsiniz. Zira windowsumuzu vnc server olarak kullanmayacağız. Bundan sonra tek yapmanız gereken remote host bölümüne raspberry'nizin ip adresini yazmak ip adresinden sonra : işareti ve görüntülenecek ekran numarasını da girmeyi unutmayın. Ör: http://10.0.0.22:1 Ayrıntılı bilgiyi ve raspberry açıldığında vnc'yi otomatik çalıştırma konusunu şu adresten öğrenebilirsiniz. http://www.raspberrypi.org/documentation/remote-access/vnc/README.md

Raspberry Pi ssh ayarlaması

Raspberry pi cihazınıza ekran bağlamadan Windows arayüzünden erişmek istiyorsanız bunun birden fazla yolu var, konu ile ilgili daha ayrıntılı bilgi için http://www.raspberrypi.org/documentation/remote-access/ bu makalede ssh kullanarak nasıl bağlantı yapabileceğinizi kısaca anlatacağım. Ssh kullanarak bağlandığınızda sadece terminal ekranına erişebileceğinizi unutmayın. Masaüstüne erişmek istiyorsanız vnc kullanmalısınız ki bir sonraki yazımda ondan bahsediyor olacağım. Terminal ekranında

Sudo raspi-config

Yazıyoruz ve açılan ekranda "Advanced options" seçeneğini işaretliyoruz. Açılan ekrandan "Ssh" bağlantısına tıklayıp "enable" etmemiz gerekmekte. Raspberry cihazınızda yapmanız gerekenler bunlar. Bileşenler üzerinde yüklü geliyor dolayısıyla bize sadece açmak kalıyor. Bir de ifconfig diyerek ip adresini ogrenmeyi unutmayın. Windows tarafında ise http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html bu adresten putty uygulamasını indirip çalıştırın ve raspberry'nizin ip adresini yazarak open butonuna tıklayın bundan sonrası raspberry'nizin terminal ekranı karşınıza gelecek bu kadar.

Raspberry Pi Raspbian kurulumu ve ilk GPIO uygulaması

Raspberry Pi Type B modelini aşağıdaki adresten edinebilirsiniz. https://www.samm.com/bilisim-urunleri/raspberry-pi-turkiye.html Aşağıdaki bağlantıda Raspberry'ye işletim sisteminin kurulumunu güzelce açıklamışlar. http://www.raspberrypi.org/help/noobs-setup/ Bu arada default kullanıcı adınız pi, sifreniz raspberry Masaüstü ekranına geçmek için startx komutunu yazmanız yeterli Yükleme sonrasında klavye dili İngilizce gelmekte. Öncelikle klavyeyi Türkçe yapmaya çalışacağız. Root yetkisiyle terminali açmak için. Başlat – Accessories – Root Terminal'i çalıştırıyoruz. Komut satırına

sudo nano /etc/default/keyboard

yazıp enter'a basıyoruz. Açılan sayfada "gb" yazın yeri "tr" yapıp kaydediyoruz (ctrl+x çıkş, akydetmek isteyip istemediğimizi soracaktır. Y diyip entera basıyoruz). Yeniden başlattığımızda klavye dilimiz Türkçe olacaktır. Sıradaki işlem ekran çözünürlüğü Root yetkisiyle terminali açtıktan sonra

tvservice –d edid

edidparser edid

gelen bilgilerden en uygun ekran çözünürlüğünü seçeceğiz her çözünürlüğe bir score verilmiş.

nano boot/config.txt

Doküman içerisinde hmdi_group=1 #1=cea 2=dmt hdmi_mode=4 #benim monitörümde en uygunu bu görünüyordu iki kodun başındaki # işaretini kaldırmayı unutmayın kaydettikten sonra

shutdown –r now

komutu ile raspberrynizi yeniden başlatabilirsiniz.   Bu ayarlamalardan sonra sıra python ortamının ayarlarının yapılmasına geliyor. GPIO (Raspberry üzerindeki programlanabilir pinler) desteği için

Sudo apt-get update

Sudo apt-get install python-dev

Pypi.python.org sitesinden RPi.GPIO'nun son sürümünü indirin ve indirme işleminden sonra klasöre gidin.

Tar zxvf RPi.GPIO…..

Cd RPi.GPIO……

Sudo python setup.py install

Tüm bu ayarlamalardan sonra artık python ortamını açabiliriz.

Sodu idle

File-new window diyerek yeni sayfa açıyoruz ve aşağıdaki kodları yapıştırıp çalıştırıyoruz.

Python'da tab karakterinin de önemli olduğunu unutmayın. Kodları yukarıdan aşağı dümdüz yazarsanız hata ile karşılaşırsınız. Kodları iç içe yazmayı unutmayın.

import RPi.GPIO as GPIO

import time

# blinking function

def blink(pin):

    GPIO.output(pin,True)

    time.sleep(1)

    GPIO.output(pin,False)

    time.sleep(1)

    return

# to use Raspberry Pi board pin numbers

GPIO.setmode(GPIO.BOARD)

# set up GPIO output channel

GPIO.setup(7, GPIO.OUT)

# blink GPIO17 50 times

for i in range(0,50):

    blink(7)

GPIO.cleanup()

  Kablolamayı ise şu şekilde yapıyoruz.

6. bacak toprak ve 7. Bacak sinyal.