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
set_value(0) finally: led_line

Proje 2: Tam Kod Listeleme

import gpiod LED_PIN = 17 BUTTON_PIN = 27 chip = gpiod Gpiod modülü, GPIO pinlerine atıfta bulunmak için çizgiler kullanır sleep(1) # Sleep for one second

9 Kısa bacak (katot), bir direnç ve başka bir atlama kablosu aracılığıyla GND’ye bağlanır

LED_PIN = 17

3 LINE_REQ_DIR_OUT) try: while True: led_line Bu, LED’in bir saniye boyunca açık kalmasını zorlayacaktır Kodu Button-press sleep(1) led_line Raspberry Pi 5 ve RP1 çipi ile artık dinamik olarak bölünmüş cihazlarımız var ve GPIO’muz gpiomem4’te Tek ihtiyacımız olan düğme ve iki aktarma kablosu LINE_REQ_DIR_OUT)

8 Bu, Ben Croston’un bir topluluk projesiydi ve birçok nesil Raspberry Pi’ye iyi bir şekilde hizmet etti

1 LED’i açmak için düğmeye basın ve kapatmak için bırakın request(consumer="Button", type=gpiod Akımın LED’e akmasını istiyoruz Kod çıktığında GPIO’yu temizlemek için bir kod bölümü ekleyin

import gpiod import time

2 GPIO’yu kullanamıyoruz Kodu Blinky Koda GPIO’yu nerede bulacağınızı söyleyin get_line(LED_PIN) button_line = chip Düğmeye basılmadığında LED’i kapatmak için başka bir koşul kullanın

led_line = chip Kodun ana gövdesini try ve while True döngüsüne sarın

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 Broadcom pin referansları, tüm Raspberry Pi belgelerinde kullanılan standarttır request(consumer="LED", type=gpiod sleep(1) finally: led_line LED’i kapatın ve ardından bir saniye bekleyin GPIO 17’deki LED her saniye yanıp sönecektir

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

led_line İkincisi, koda bir duraklama eklemek için kullanılan zamandır

if button_state == 1: # Button is pressed led_line Chip('gpiochip4')

5

button_line = chip

Proje 1: Tam Kod Listeleme

import gpiod import time LED_PIN = 17 chip = gpiod GPIO’yu tercih ediyordu Düğmeye basılıp basılmadığını kontrol etmek için if koşulunu kullanın request(consumer="LED", type=gpiod Thonny’yi açın ve iki kod modülünü içe aktarın Button_line adında bir değişken oluşturun ve Button GPIO pinine bir referans kaydedin py olarak kaydedin ve başlamak için Çalıştır’a tıklayın

try: while True:

7 request(consumer="LED", type=gpiod Başlangıçta Raspberry Pi’nin belleğe eşlenen tek bir gpiomem cihazı vardı ve bunu RPi Direnç 100 ila 330 Ohm (Turuncu-Turuncu-Kahverengi-Altın) arasında herhangi bir değer olabilir Gpiod’u Python ve GPIO için daha çok bir ara modül olarak görüyoruz GPIO gibi Python modülleriyle kullanabiliyorduk

BUTTON_PIN = 27

4 set_value(0) # Turn the LED off

13 Eğer öyleyse, LED’i açın Bizim göz atın direnç referans kılavuzu daha fazla bilgi için 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

(Resim kredisi: Gelecek)

1

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 set_value(0) time Chip('gpiochip4') led_line = chip Broadcom pin referansları, tüm Raspberry Pi belgelerinde kullanılan standarttır Düğmeyi giriş olarak ayarlayın Sonlandırmak için CTRL + C tuşlarına basın veya Durdur’a tıklayın

led_line get_line(LED_PIN) led_line Button GPIO pininin varsayılan durumu düşük (0, Yanlış) olacaktır Bu neden önemli? Her şey GPIO ile etkileşime giren kodu nasıl yazdığımıza bağlı GPIO’yu) çıkmadan önce temizlememiz gerekiyor get_line(LED_PIN)

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

LED_PIN = 17

3 get_line(BUTTON_PIN) led_line release()

10 Akımın LED’e akmasını istiyoruz GPIO Zero, Ben Nuttall ve Dave Jones tarafından oluşturuldu ve GPIO’yu büyük ölçüde basitleştiriyor 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)

8

led_line

(Resim kredisi: Gelecek)

Devre son derece basittir Koda GPIO’yu nerede bulacağınızı söyleyin BUTTON_PIN adında bir değişken oluşturun ve 27 değerini bunun içinde saklayın Akımın LED’e akmasını istiyoruz set_value(1) time LINE_REQ_DIR_IN)

9 release() button_line Button GPIO pininin mevcut durumunu alın ve onu Button_state adlı bir değişkende saklayın

button_line

chip = gpiod Kodun ana gövdesini try ve while True döngüsüne sarın get_line(BUTTON_PIN)

7

import gpiod import time

2 Bu bizi bir alternatif kullanmaya zorluyor ve libgpiod bunun nasıl yapılacağı konusunun odak noktası GPIO’ya benzer bir his veriyor Başlangıçta Raspberry Pi’nin belleğe eşlenen tek bir gpiomem cihazı vardı ve bunu RPi get_value()

11 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 get_line(LED_PIN)

5 LED’i çıkış olarak ayarlayın Bu konuda yeniyseniz, şunu kullanın: GPIO Sıfır Raspberry Pi 5 ile de çalışır Bu değişken, Raspberry Pi’nin tüm modellerindeki GPIO pini için Broadcom pin referansını içerir GPIO 27, GPIO 17’nin hemen yanındadır

chip = gpiod set_value(0) time GPIO Zero ile bunu yapmak zorunda değiliz ancak gpiod’u (ve eski RPi py olarak kaydedin ve başlamak için Çalıştır’a tıklayın release()

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 SoC’den GPIO’ya geçişi kullanır LINE_REQ_DIR_OUT)

6 SoC’den GPIO’ya geçişi kullanır Bize pek mantıklı gelmeyebilir ama panoları oluşturan mühendislere göre pinler doğru şekilde kırılmış GPIO gibi Python modülleriyle kullanabiliyorduk

led_line release() button_line Birincisi bir çıkış, bir LED Bu örnekte bir buton oluşturuyoruz, bir tarafı Button GPIO pinine, diğer tarafı 3V3’e bağlı set_value(1) # Turn the LED on

12 Kodumuz bu durum değişikliğini arayacak ve buna göre tepki verecektir Chip('gpiochip4') led_line = chip 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 İkincisi, koda bir duraklama eklemek için kullanılan zamandır

button_state = button_line Raspberry Pi 5’te GPIO pinlerinin hafıza eşlemesi nedeniyle RPi GPIO’yu) çıkmadan önce temizlememiz gerekiyor LED’i çevirin ve ardından bir saniye bekleyin request(consumer="Button", type=gpiod LINE_REQ_DIR_IN) try: while True: button_state = button_line set_value(1) else: led_line İkincisi, LED’in açılıp kapanmasını tetikleyecek bir düğme olan bir giriştir led_line adında bir değişken oluşturun ve LED GPIO pinine bir referans saklayın GPIO Zero ile bunu yapmak zorunda değiliz ancak gpiod’u (ve eski RPi Bu değişken, Raspberry Pi’nin tüm modellerindeki GPIO pini için Broadcom pin referansını içerir

finally: led_line Chip('gpiochip4')

4

else: led_line

finally: led_line İlk modül GPIO’yu kontrol etmek ve okumak için kullanılan gpiod’dur İlk modül GPIO’yu kontrol etmek ve okumak için kullanılan gpiod’dur 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 Geçmişte birçok proje RPi Thonny’yi açın ve iki kod modülünü içe aktarın

Gpiod’u kullanarak çok basit iki proje oluşturacağız 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 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: while True:

10 set_value(1) time Bize pek mantıklı gelmeyebilir ama panoları oluşturan mühendislere göre pinler doğru şekilde kırılmış LINE_REQ_DIR_OUT) button_line LED’i çıkış olarak ayarlayın LED_PIN adında bir değişken oluşturun ve 17 değerini bunun içinde saklayın Donanım, bilgisayar korsanlığı ve elektronikte bu, yanıp sönen bir LED’dir get_value() if button_state == 1: led_line release()

14

led_line = chip Bu durum değişikliği kodumuzun tetikleyicisidir Uyku, LED’i bir saniye boyunca kapalı kalmaya zorlar Bir atlama teli kullanarak GPIO 17’ye bağlanan bir LED’in uzun ayağına (anot) sahibiz request(consumer="LED", type=gpiod Kullanmadan önce GPIO pinlerini açıkça ayarlamamız gerektiğinden RPI Bu, Düğme pimini yükseğe çeker (1, Doğru) Gpiod modülü, GPIO pinlerine atıfta bulunmak için çizgiler kullanır