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
SoC’den GPIO’ya geçişi kullanır led_line adında bir değişken oluşturun ve LED GPIO pinine bir referans saklayın BUTTON_PIN adında bir değişken oluşturun ve 27 değerini bunun içinde saklayın Donanım, bilgisayar korsanlığı ve elektronikte bu, yanıp sönen bir LED’dir Button GPIO pininin varsayılan durumu düşük (0, Yanlış) olacaktır Button GPIO pininin mevcut durumunu alın ve onu Button_state adlı bir değişkende saklayın GPIO 27, GPIO 17’nin hemen yanındadır Chip('gpiochip4') led_line = chip İlk modül GPIO’yu kontrol etmek ve okumak için kullanılan gpiod’dur GPIO Zero ile bunu yapmak zorunda değiliz ancak gpiod’u (ve eski RPi set_value(1) time

try: while True:

10

led_line Thonny’yi açın ve iki kod modülünü içe aktarın set_value(0) # Turn the LED off

13 İkincisi, LED’in açılıp kapanmasını tetikleyecek bir düğme olan bir giriştir Düğmeye basılmadığında LED’i kapatmak için başka bir koşul kullanın Koda GPIO’yu nerede bulacağınızı söyleyin 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ış LED’i çıkış olarak ayarlayın Bir atlama teli kullanarak GPIO 17’ye bağlanan bir LED’in uzun ayağına (anot) sahibiz Kod çıktığında GPIO’yu temizlemek için bir kod bölümü ekleyin 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

else: led_line set_value(1) time LED’i çevirin ve ardından bir saniye bekleyin get_line(BUTTON_PIN)

7 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 set_value(0) time Bu neden önemli? Her şey GPIO ile etkileşime giren kodu nasıl yazdığımıza bağlı GPIO gibi Python modülleriyle kullanabiliyorduk LINE_REQ_DIR_IN)

9 release()

10

Proje 2: Tam Kod Listeleme

import gpiod LED_PIN = 17 BUTTON_PIN = 27 chip = gpiod Sonlandırmak için CTRL + C tuşlarına basın veya Durdur’a tıklayın py olarak kaydedin ve başlamak için Çalıştır’a tıklayın set_value(0) time Başlangıçta Raspberry Pi’nin belleğe eşlenen tek bir gpiomem cihazı vardı ve bunu RPi request(consumer="LED", type=gpiod release() button_line LED’i çıkış olarak ayarlayın Bu değişken, Raspberry Pi’nin tüm modellerindeki GPIO pini için Broadcom pin referansını içerir

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 Thonny’yi açın ve iki kod modülünü içe aktarın Sonlandırmak için CTRL + C tuşlarına basın veya Durdur’a tıklayın Kod çıktığında GPIO’yu temizlemek için bir kod bölümü ekleyin release()

14 get_line(LED_PIN) button_line = chip Bu konuda yeniyseniz, şunu kullanın: GPIO Sıfır Raspberry Pi 5 ile de çalışır

led_line get_line(LED_PIN)

6 request(consumer="Button", type=gpiod LED_PIN adında bir değişken oluşturun ve 17 değerini bunun içinde saklayın set_value(0) finally: led_line Bu durum değişikliği kodumuzun tetikleyicisidir İlk modül GPIO’yu kontrol etmek ve okumak için kullanılan gpiod’dur Akımın LED’e akmasını istiyoruz Bizim göz atın direnç referans kılavuzu daha fazla bilgi için Koda GPIO’yu nerede bulacağınızı söyleyin Chip('gpiochip4')

4 Raspberry Pi 5 ve RP1 çipi ile artık dinamik olarak bölünmüş cihazlarımız var ve GPIO’muz gpiomem4’te

BUTTON_PIN = 27

4 Fakat butona bastığımızda Raspberry Pi 5’in 3V pinini Button GPIO pinine bağlıyoruz

finally: led_line Akımın LED’e akmasını istiyoruz Kodu Button-press Direnç 100 ila 330 Ohm (Turuncu-Turuncu-Kahverengi-Altın) arasında herhangi bir değer olabilir Bu, Düğme pimini yükseğe çeker (1, Doğru) GPIO’yu) çıkmadan önce temizlememiz gerekiyor

LED_PIN = 17

3

finally: led_line get_line(LED_PIN)

5 release() button_line

1 Bu örnekte bir buton oluşturuyoruz, bir tarafı Button GPIO pinine, diğer tarafı 3V3’e bağlı py olarak kaydedin ve başlamak için Çalıştır’a tıklayın

(Resim kredisi: Gelecek)

Devre son derece basittir GPIO’yu) çıkmadan önce temizlememiz gerekiyor GPIO’yu tercih ediyordu get_value()

11 Tek ihtiyacımız olan düğme ve iki aktarma kablosu Raspberry Pi 5 ve RP1 çipi ile artık dinamik olarak bölünmüş cihazlarımız var ve GPIO’muz gpiomem4’te sleep(1) # Sleep for one second

9 Kodun ana gövdesini try ve while True döngüsüne sarın GPIO gibi Python modülleriyle kullanabiliyorduk SoC’den GPIO’ya geçişi kullanır Eğer öyleyse, LED’i açın

LED_PIN = 17

3 request(consumer="LED", type=gpiod GPIO’ya benzer bir his veriyor

led_line Chip('gpiochip4')

5 Başlangıçta Raspberry Pi’nin belleğe eşlenen tek bir gpiomem cihazı vardı ve bunu RPi Uyku, LED’i bir saniye boyunca kapalı kalmaya zorlar Gpiod modülü, GPIO pinlerine atıfta bulunmak için çizgiler kullanır get_line(BUTTON_PIN) led_line LINE_REQ_DIR_OUT)

6 Düğmeye basılıp basılmadığını kontrol etmek için if koşulunu kullanın Raspberry Pi 5’te GPIO pinlerinin hafıza eşlemesi nedeniyle RPi LED’i açmak için düğmeye basın ve kapatmak için bırakın GPIO Zero, Ben Nuttall ve Dave Jones tarafından oluşturuldu ve GPIO’yu büyük ölçüde basitleştiriyor request(consumer="LED", type=gpiod

button_line = chip sleep(1)

8 Gpiod modülü, GPIO pinlerine atıfta bulunmak için çizgiler kullanır

import gpiod import time

2 GPIO’yu kullanamıyoruz Kullanmadan önce GPIO pinlerini açıkça ayarlamamız gerektiğinden RPI

if button_state == 1: # Button is pressed led_line LINE_REQ_DIR_IN) try: while True: button_state = button_line

led_line = chip LINE_REQ_DIR_OUT)

8 LED’i kapatın ve ardından bir saniye bekleyin

(Resim kredisi: Gelecek)

1 Gpiod’u Python ve GPIO için daha çok bir ara modül olarak görüyoruz 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 Button_line adında bir değişken oluşturun ve Button GPIO pinine bir referans kaydedin Kodumuz bu durum değişikliğini arayacak ve buna göre tepki verecektir

chip = gpiod

Libgpiod, özellikle python3-gpiod GPIO ile etkileşime geçmek için saf bir Python modülüdür Bu, LED’in bir saniye boyunca açık kalmasını zorlayacaktır release() LINE_REQ_DIR_OUT) try: while True: led_line

Gpiod’u kullanarak çok basit iki proje oluşturacağız GPIO 17’deki LED her saniye yanıp sönecektir

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

button_line get_value() if button_state == 1: led_line sleep(1) finally: led_line

Proje 1: Tam Kod Listeleme

import gpiod import time LED_PIN = 17 chip = gpiod

import gpiod import time

2

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

try: while True:

7 Broadcom pin referansları, tüm Raspberry Pi belgelerinde kullanılan standarttır Bu değişken, Raspberry Pi’nin tüm modellerindeki GPIO pini için Broadcom pin referansını içerir Düğmeyi giriş olarak ayarlayın İkincisi, koda bir duraklama eklemek için kullanılan zamandır request(consumer="Button", type=gpiod request(consumer="LED", type=gpiod Bize pek mantıklı gelmeyebilir ama panoları oluşturan mühendislere göre pinler doğru şekilde kırılmış set_value(1) else: led_line

led_line = chip

chip = gpiod Geçmişte birçok proje RPi get_line(LED_PIN) led_line LED_PIN adında bir değişken oluşturun ve 17 değerini bunun içinde saklayın Broadcom pin referansları, tüm Raspberry Pi belgelerinde kullanılan standarttır

led_line set_value(1) # Turn the LED on

12 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

button_state = button_line Kısa bacak (katot), bir direnç ve başka bir atlama kablosu aracılığıyla GND’ye bağlanır sleep(1) led_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 İkincisi, koda bir duraklama eklemek için kullanılan zamandır Kodu Blinky LINE_REQ_DIR_OUT) button_line Birincisi bir çıkış, bir LED Bu bizi bir alternatif kullanmaya zorluyor ve libgpiod bunun nasıl yapılacağı konusunun odak noktası Akımın LED’e akmasını istiyoruz led_line adında bir değişken oluşturun ve LED GPIO pinine bir referans saklayın Chip('gpiochip4') led_line = chip