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
request(consumer="Button", type=gpiod Bir atlama teli kullanarak GPIO 17’ye bağlanan bir LED’in uzun ayağına (anot) sahibiz Akımın LED’e akmasını istiyoruz LINE_REQ_DIR_IN)

9

import gpiod import time

2

button_state = button_line

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

import gpiod import time

2 release()

14 LINE_REQ_DIR_OUT) button_line

Proje 2: Tam Kod Listeleme

import gpiod LED_PIN = 17 BUTTON_PIN = 27 chip = gpiod Chip('gpiochip4')

5 Button_line adında bir değişken oluşturun ve Button GPIO pinine bir referans kaydedin LINE_REQ_DIR_OUT)

8

led_line get_line(BUTTON_PIN) led_line LED’i çıkış olarak ayarlayın Kullanmadan önce GPIO pinlerini açıkça ayarlamamız gerektiğinden RPI py olarak kaydedin ve başlamak için Çalıştır’a tıklayın get_value() if button_state == 1: led_line BUTTON_PIN adında bir değişken oluşturun ve 27 değerini bunun içinde saklayın get_line(LED_PIN) button_line = chip SoC’den GPIO’ya geçişi kullanır LED’i kapatın ve ardından bir saniye bekleyin

chip = gpiod Kodumuz bu durum değişikliğini arayacak ve buna göre tepki verecektir Uyku, LED’i bir saniye boyunca kapalı kalmaya zorlar GPIO’ya benzer bir his veriyor set_value(0) time SoC’den GPIO’ya geçişi kullanır Bu, LED’in bir saniye boyunca açık kalmasını zorlayacaktır Başlangıçta Raspberry Pi’nin belleğe eşlenen tek bir gpiomem cihazı vardı ve bunu RPi GPIO 27, GPIO 17’nin hemen yanındadır İkincisi, LED’in açılıp kapanmasını tetikleyecek bir düğme olan bir giriştir GPIO gibi Python modülleriyle kullanabiliyorduk Bu durum değişikliği kodumuzun tetikleyicisidir release() button_line Kodu Blinky Raspberry Pi 5 ve RP1 çipi ile artık dinamik olarak bölünmüş cihazlarımız var ve GPIO’muz gpiomem4’te Bu, Düğme pimini yükseğe çeker (1, Doğru) set_value(0) finally: led_line

(Resim kredisi: Gelecek)

Devre son derece basittir Sonlandırmak için CTRL + C tuşlarına basın veya Durdur’a tıklayın

finally: led_line Button GPIO pininin varsayılan durumu düşük (0, Yanlış) olacaktır LED_PIN adında bir değişken oluşturun ve 17 değerini bunun içinde saklayın

if button_state == 1: # Button is pressed led_line Kodu Button-press Kodun ana gövdesini try ve while True döngüsüne sarın Bize pek mantıklı gelmeyebilir ama panoları oluşturan mühendislere göre pinler doğru şekilde kırılmış Bu bizi bir alternatif kullanmaya zorluyor ve libgpiod bunun nasıl yapılacağı konusunun odak noktası Broadcom pin referansları, tüm Raspberry Pi belgelerinde kullanılan standarttır LINE_REQ_DIR_OUT)

6 GPIO’yu) çıkmadan önce temizlememiz gerekiyor Chip('gpiochip4')

4 Tek ihtiyacımız olan düğme ve iki aktarma kablosu Kodun ana gövdesini try ve while True döngüsüne sarın Fakat butona bastığımızda Raspberry Pi 5’in 3V pinini Button GPIO pinine bağlıyoruz Kısa bacak (katot), bir direnç ve başka bir atlama kablosu aracılığıyla GND’ye bağlanır set_value(1) # Turn the LED on

12

led_line = chip

led_line Raspberry Pi 5’te GPIO pinlerinin hafıza eşlemesi nedeniyle RPi

else: led_line Kod çıktığında GPIO’yu temizlemek için bir kod bölümü ekleyin Broadcom pin referansları, tüm Raspberry Pi belgelerinde kullanılan standarttır

(Resim kredisi: Gelecek)

1

LED_PIN = 17

3 get_line(LED_PIN) led_line

Gpiod’u kullanarak çok basit iki proje oluşturacağız

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 led_line adında bir değişken oluşturun ve LED GPIO pinine bir referans saklayın request(consumer="LED", type=gpiod py olarak kaydedin ve başlamak için Çalıştır’a tıklayın 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 GPIO 17’deki LED her saniye yanıp sönecektir

LED_PIN = 17

3 Koda GPIO’yu nerede bulacağınızı söyleyin Başlangıçta Raspberry Pi’nin belleğe eşlenen tek bir gpiomem cihazı vardı ve bunu RPi Button GPIO pininin mevcut durumunu alın ve onu Button_state adlı bir değişkende saklayın Bu konuda yeniyseniz, şunu kullanın: GPIO Sıfır Raspberry Pi 5 ile de çalışır Thonny’yi açın ve iki kod modülünü içe aktarın set_value(1) else: led_line request(consumer="LED", type=gpiod

button_line = chip

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 GPIO’yu) çıkmadan önce temizlememiz gerekiyor led_line adında bir değişken oluşturun ve LED GPIO pinine bir referans saklayın 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 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 Chip('gpiochip4') led_line = chip set_value(1) time Eğer öyleyse, LED’i açın

1 Düğmeye basılıp basılmadığını kontrol etmek için if koşulunu kullanın LED’i açmak için düğmeye basın ve kapatmak için bırakın Raspberry Pi 5 ve RP1 çipi ile artık dinamik olarak bölünmüş cihazlarımız var ve GPIO’muz gpiomem4’te 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 GPIO gibi Python modülleriyle kullanabiliyorduk Gpiod modülü, GPIO pinlerine atıfta bulunmak için çizgiler kullanır

try: while True:

7

finally: led_line Bu örnekte bir buton oluşturuyoruz, bir tarafı Button GPIO pinine, diğer tarafı 3V3’e bağlı GPIO Zero, Ben Nuttall ve Dave Jones tarafından oluşturuldu ve GPIO’yu büyük ölçüde basitleştiriyor Gpiod modülü, GPIO pinlerine atıfta bulunmak için çizgiler kullanır sleep(1) # Sleep for one second

9 Chip('gpiochip4') led_line = chip

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 Bize pek mantıklı gelmeyebilir ama panoları oluşturan mühendislere göre pinler doğru şekilde kırılmış request(consumer="LED", type=gpiod get_value()

11 Düğmeye basılmadığında LED’i kapatmak için başka bir koşul kullanın GPIO’yu tercih ediyordu release() GPIO Zero ile bunu yapmak zorunda değiliz ancak gpiod’u (ve eski RPi Bu, Ben Croston’un bir topluluk projesiydi ve birçok nesil Raspberry Pi’ye iyi bir şekilde hizmet etti Sonlandırmak için CTRL + C tuşlarına basın veya Durdur’a tıklayın Akımın LED’e akmasını istiyoruz Bu neden önemli? Her şey GPIO ile etkileşime giren kodu nasıl yazdığımıza bağlı Kod çıktığında GPIO’yu temizlemek için bir kod bölümü ekleyin Düğmeyi giriş olarak ayarlayın LED’i çevirin ve ardından bir saniye bekleyin Geçmişte birçok proje RPi

Proje 1: Tam Kod Listeleme

import gpiod import time LED_PIN = 17 chip = gpiod Direnç 100 ila 330 Ohm (Turuncu-Turuncu-Kahverengi-Altın) arasında herhangi bir değer olabilir

led_line sleep(1) led_line Gpiod’u Python ve GPIO için daha çok bir ara modül olarak görüyoruz

button_line sleep(1) finally: led_line GPIO’yu kullanamıyoruz get_line(BUTTON_PIN)

7

try: while True:

10 GPIO Zero ile bunu yapmak zorunda değiliz ancak gpiod’u (ve eski RPi set_value(0) time LINE_REQ_DIR_OUT) try: while True: led_line Thonny’yi açın ve iki kod modülünü içe aktarın LINE_REQ_DIR_IN) try: while True: button_state = button_line release()

10 Birincisi bir çıkış, bir LED

led_line

led_line = chip request(consumer="LED", type=gpiod Bu değişken, Raspberry Pi’nin tüm modellerindeki GPIO pini için Broadcom pin referansını içerir LED’i çıkış olarak ayarlayın get_line(LED_PIN)

5

BUTTON_PIN = 27

4 release() button_line İlk modül GPIO’yu kontrol etmek ve okumak için kullanılan gpiod’dur request(consumer="Button", type=gpiod Donanım, bilgisayar korsanlığı ve elektronikte bu, yanıp sönen bir LED’dir İkincisi, koda bir duraklama eklemek için kullanılan zamandır Koda GPIO’yu nerede bulacağınızı söyleyin get_line(LED_PIN)

6 Akımın LED’e akmasını istiyoruz Bizim göz atın direnç referans kılavuzu daha fazla bilgi için İlk modül GPIO’yu kontrol etmek ve okumak için kullanılan gpiod’dur set_value(0) # Turn the LED off

13 sleep(1)

8

chip = gpiod set_value(1) time İkincisi, koda bir duraklama eklemek için kullanılan zamandır Bu değişken, Raspberry Pi’nin tüm modellerindeki GPIO pini için Broadcom pin referansını içerir LED_PIN adında bir değişken oluşturun ve 17 değerini bunun içinde saklayın