Raspberry Pi 5 GPIO'yu Python 3 ile Kontrol Etme - Dünyadan Güncel Teknoloji Haberleri

Raspberry Pi 5 GPIO'yu Python 3 ile Kontrol Etme - Dünyadan Güncel Teknoloji Haberleri
BUTTON_PIN adında bir değişken oluşturun ve 27 değerini bunun içinde saklayın Chip('gpiochip4')

4 Akımın LED’e akmasını istiyoruz LED_PIN adında bir değişken oluşturun ve 17 değerini bunun içinde saklayın request(consumer="Button", type=gpiod

try: while True:

10 Geçmişte birçok proje RPi Bu, Düğme pimini yükseğe çeker (1, Doğru) request(consumer="LED", type=gpiod

LED_PIN = 17

3 get_line(BUTTON_PIN) led_line

led_line Akımın LED’e akmasını istiyoruz LED’i kapatın ve ardından bir saniye bekleyin request(consumer="Button", type=gpiod İkincisi, LED’in açılıp kapanmasını tetikleyecek bir düğme olan bir giriştir GPIO 17’deki LED her saniye yanıp sönecektir İlk modül GPIO’yu kontrol etmek ve okumak için kullanılan gpiod’dur Donanım, bilgisayar korsanlığı ve elektronikte bu, yanıp sönen bir LED’dir

finally: led_line Gpiod modülü, GPIO pinlerine atıfta bulunmak için çizgiler kullanır LED’i çıkış olarak ayarlayın

button_line LINE_REQ_DIR_IN) try: while True: button_state = button_line LINE_REQ_DIR_OUT)

6 Bu örnekte bir buton oluşturuyoruz, bir tarafı Button GPIO pinine, diğer tarafı 3V3’e bağlı

if button_state == 1: # Button is pressed led_line İkincisi, koda bir duraklama eklemek için kullanılan zamandır

Proje 2: Tam Kod Listeleme

import gpiod LED_PIN = 17 BUTTON_PIN = 27 chip = gpiod GPIO gibi Python modülleriyle kullanabiliyorduk set_value(0) time Birincisi bir çıkış, bir LED Raspberry Pi 5 ve RP1 çipi ile artık dinamik olarak bölünmüş cihazlarımız var ve GPIO’muz gpiomem4’te

led_line GPIO’yu kullanamıyoruz LED’i çıkış olarak ayarlayın Düğmeye basılmadığında LED’i kapatmak için başka bir koşul kullanın Button GPIO pininin varsayılan durumu güç yok (0, Yanlış, Düşük) ancak düğmeye bastığımızda 3V3 pinini Button GPIO pinine bağlayıp durumunu güç (1, Doğru, Yüksek) olarak değiştiriyoruz

Hala aynı 40 pinli GPIO’ya sahibiz ancak yeni RP1 güney köprüsü çipine bağlı olduğu için artık biraz farklı çalışıyor

chip = gpiod request(consumer="LED", type=gpiod GPIO’yu tercih ediyordu Kodu Blinky py olarak kaydedin ve başlamak için Çalıştır’a tıklayın

else: led_line

import gpiod import time

2 Bu değişken, Raspberry Pi’nin tüm modellerindeki GPIO pini için Broadcom pin referansını içerir led_line adında bir değişken oluşturun ve LED GPIO pinine bir referans saklayın LED_PIN adında bir değişken oluşturun ve 17 değerini bunun içinde saklayın GPIO gibi Python modülleriyle kullanabiliyorduk set_value(0) # Turn the LED off

13 LED’i çevirin ve ardından bir saniye bekleyin Eğer öyleyse, LED’i açın

(Resim kredisi: Gelecek)

1

Gpiod’u kullanarak çok basit iki proje oluşturacağız GPIO Zero ile bunu yapmak zorunda değiliz ancak gpiod’u (ve eski RPi Sonlandırmak için CTRL + C tuşlarına basın veya Durdur’a tıklayın Sonlandırmak için CTRL + C tuşlarına basın veya Durdur’a tıklayın sleep(1) # Sleep for one second

9 set_value(1) time

Libgpiod, özellikle python3-gpiod GPIO ile etkileşime geçmek için saf bir Python modülüdür LINE_REQ_DIR_OUT)

8 Try, kodumuzu çalıştırmayı deneyecek istisna işleyicinin bir parçasıdır, istisnaları işleyebilir ve çıktığımızda kodun bir bölümünü çalıştırabilir Kodun ana gövdesini try ve while True döngüsüne sarın Kısa bacak (katot), bir direnç ve başka bir atlama kablosu aracılığıyla GND’ye bağlanır LED’i açmak için düğmeye basın ve kapatmak için bırakın LINE_REQ_DIR_OUT) button_line Bu, LED’in bir saniye boyunca açık kalmasını zorlayacaktır Chip('gpiochip4')

5 LINE_REQ_DIR_IN)

9

led_line

Ahududu Pi 5 yeni piyasaya sürüldü ve bizi daha güçlü bir Pi ile tanıştırdı, ancak aynı zamanda birkaç şeyi de değiştirdi ve en önemlisi GPIO’ydu Uyku, LED’i bir saniye boyunca kapalı kalmaya zorlar Kullanmadan önce GPIO pinlerini açıkça ayarlamamız gerektiğinden RPI

(Resim kredisi: Gelecek)

Devre son derece basittir

button_line = chip GPIO Zero ile bunu yapmak zorunda değiliz ancak gpiod’u (ve eski RPi release()

14 py olarak kaydedin ve başlamak için Çalıştır’a tıklayın Button GPIO pininin varsayılan durumu düşük (0, Yanlış) olacaktır set_value(1) # Turn the LED on

12 Başlangıçta Raspberry Pi’nin belleğe eşlenen tek bir gpiomem cihazı vardı ve bunu RPi LINE_REQ_DIR_OUT) try: while True: led_line Koda GPIO’yu nerede bulacağınızı söyleyin Bu konuda yeniyseniz, şunu kullanın: GPIO Sıfır Raspberry Pi 5 ile de çalışır Kodu Button-press Tek ihtiyacımız olan düğme ve iki aktarma kablosu release()

10 GPIO’yu) çıkmadan önce temizlememiz gerekiyor Bu değişken, Raspberry Pi’nin tüm modellerindeki GPIO pini için Broadcom pin referansını içerir Button_line adında bir değişken oluşturun ve Button GPIO pinine bir referans kaydedin Düğmeye basılıp basılmadığını kontrol etmek için if koşulunu kullanın request(consumer="LED", type=gpiod Bir atlama teli kullanarak GPIO 17’ye bağlanan bir LED’in uzun ayağına (anot) sahibiz Kodumuz bu durum değişikliğini arayacak ve buna göre tepki verecektir

led_line get_value() if button_state == 1: led_line led_line adında bir değişken oluşturun ve LED GPIO pinine bir referans saklayın Raspberry Pi 5’te GPIO pinlerinin hafıza eşlemesi nedeniyle RPi

import gpiod import time

2 Bu durum değişikliği kodumuzun tetikleyicisidir

led_line = chip Bize pek mantıklı gelmeyebilir ama panoları oluşturan mühendislere göre pinler doğru şekilde kırılmış SoC’den GPIO’ya geçişi kullanır Gpiod’u Python ve GPIO için daha çok bir ara modül olarak görüyoruz

BUTTON_PIN = 27

4 Bu neden önemli? Her şey GPIO ile etkileşime giren kodu nasıl yazdığımıza bağlı Akımın LED’e akmasını istiyoruz Chip('gpiochip4') led_line = chip

try: while True:

7 Bize pek mantıklı gelmeyebilir ama panoları oluşturan mühendislere göre pinler doğru şekilde kırılmış Thonny’yi açın ve iki kod modülünü içe aktarın release() button_line Try, kodumuzu çalıştırmayı deneyecek istisna işleyicinin bir parçasıdır, istisnaları işleyebilir ve çıktığımızda kodun bir bölümünü çalıştırabilir release() Kod çıktığında GPIO’yu temizlemek için bir kod bölümü ekleyin

Bu projeler için ihtiyacınız olacak

(İmaj kredisi: Tom’un Donanımı)

Herhangi bir dili/çerçeveyi öğrenirken ilk hedef bir “Merhaba Dünya” programı oluşturmaktır

chip = gpiod get_value()

11 set_value(1) time GPIO’yu) çıkmadan önce temizlememiz gerekiyor get_line(LED_PIN) led_line

Proje 1: Tam Kod Listeleme

import gpiod import time LED_PIN = 17 chip = gpiod Broadcom pin referansları, tüm Raspberry Pi belgelerinde kullanılan standarttır Fakat butona bastığımızda Raspberry Pi 5’in 3V pinini Button GPIO pinine bağlıyoruz Gpiod modülü, GPIO pinlerine atıfta bulunmak için çizgiler kullanır release()

Proje 2: Girdi, Kullanıcı Girdisine Tepki Verme

(İmaj kredisi: Tom’un Donanımı)

“Merhaba Dünya”dan sonraki hedef bir girdi oluşturmaktır Kodun ana gövdesini try ve while True döngüsüne sarın set_value(0) finally: led_line Kod çıktığında GPIO’yu temizlemek için bir kod bölümü ekleyin sleep(1) finally: led_line

1 Başlangıçta Raspberry Pi’nin belleğe eşlenen tek bir gpiomem cihazı vardı ve bunu RPi

led_line = chip GPIO Zero, Ben Nuttall ve Dave Jones tarafından oluşturuldu ve GPIO’yu büyük ölçüde basitleştiriyor release() button_line set_value(0) time Raspberry Pi 5 ve RP1 çipi ile artık dinamik olarak bölünmüş cihazlarımız var ve GPIO’muz gpiomem4’te Thonny’yi açın ve iki kod modülünü içe aktarın sleep(1)

8

LED_PIN = 17

3 Bu bizi bir alternatif kullanmaya zorluyor ve libgpiod bunun nasıl yapılacağı konusunun odak noktası set_value(1) else: led_line Düğmeyi giriş olarak ayarlayın İkincisi, koda bir duraklama eklemek için kullanılan zamandır

finally: led_line GPIO 27, GPIO 17’nin hemen yanındadır GPIO’ya benzer bir his veriyor Direnç 100 ila 330 Ohm (Turuncu-Turuncu-Kahverengi-Altın) arasında herhangi bir değer olabilir Koda GPIO’yu nerede bulacağınızı söyleyin Chip('gpiochip4') led_line = chip get_line(LED_PIN)

6 SoC’den GPIO’ya geçişi kullanır İlk modül GPIO’yu kontrol etmek ve okumak için kullanılan gpiod’dur request(consumer="LED", type=gpiod get_line(BUTTON_PIN)

7 get_line(LED_PIN)

5 Button GPIO pininin mevcut durumunu alın ve onu Button_state adlı bir değişkende saklayın

button_state = button_line get_line(LED_PIN) button_line = chip sleep(1) led_line Bizim göz atın direnç referans kılavuzu daha fazla bilgi için Broadcom pin referansları, tüm Raspberry Pi belgelerinde kullanılan standarttır Bu, Ben Croston’un bir topluluk projesiydi ve birçok nesil Raspberry Pi’ye iyi bir şekilde hizmet etti