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

led_line = chip Direnç 100 ila 330 Ohm (Turuncu-Turuncu-Kahverengi-Altın) arasında herhangi bir değer olabilir Düğmeyi giriş olarak ayarlayın release() button_line

import gpiod import time

2 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 Bu örnekte bir buton oluşturuyoruz, bir tarafı Button GPIO pinine, diğer tarafı 3V3’e bağlı request(consumer="Button", type=gpiod GPIO Zero, Ben Nuttall ve Dave Jones tarafından oluşturuldu ve GPIO’yu büyük ölçüde basitleştiriyor

led_line Kullanmadan önce GPIO pinlerini açıkça ayarlamamız gerektiğinden RPI led_line adında bir değişken oluşturun ve LED GPIO pinine bir referans saklayın Bize pek mantıklı gelmeyebilir ama panoları oluşturan mühendislere göre pinler doğru şekilde kırılmış BUTTON_PIN adında bir değişken oluşturun ve 27 değerini bunun içinde saklayın Bu neden önemli? Her şey GPIO ile etkileşime giren kodu nasıl yazdığımıza bağlı

led_line İkincisi, koda bir duraklama eklemek için kullanılan zamandır Kodu Button-press Gpiod modülü, GPIO pinlerine atıfta bulunmak için çizgiler kullanır get_line(BUTTON_PIN) led_line get_value() if button_state == 1: led_line GPIO’yu tercih ediyordu

Libgpiod, özellikle python3-gpiod GPIO ile etkileşime geçmek için saf bir Python modülüdür Button GPIO pininin varsayılan durumu düşük (0, Yanlış) olacaktır get_line(LED_PIN) button_line = chip Akımın LED’e akmasını istiyoruz Eğer öyleyse, LED’i açın release()

10 GPIO’ya benzer bir his veriyor Broadcom pin referansları, tüm Raspberry Pi belgelerinde kullanılan standarttır Sonlandırmak için CTRL + C tuşlarına basın veya Durdur’a tıklayın

Proje 1: Tam Kod Listeleme

import gpiod import time LED_PIN = 17 chip = gpiod

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 Kod çıktığında GPIO’yu temizlemek için bir kod bölümü ekleyin set_value(0) time

Gpiod’u kullanarak çok basit iki proje oluşturacağız Bize pek mantıklı gelmeyebilir ama panoları oluşturan mühendislere göre pinler doğru şekilde kırılmış

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 Bir atlama teli kullanarak GPIO 17’ye bağlanan bir LED’in uzun ayağına (anot) sahibiz set_value(0) finally: led_line Birincisi bir çıkış, bir LED

LED_PIN = 17

3 Chip('gpiochip4') led_line = chip get_line(LED_PIN)

6 Koda GPIO’yu nerede bulacağınızı söyleyin GPIO 17’deki LED her saniye yanıp sönecektir

if button_state == 1: # Button is pressed led_line

BUTTON_PIN = 27

4 Koda GPIO’yu nerede bulacağınızı söyleyin Bu durum değişikliği kodumuzun tetikleyicisidir

button_line

else: led_line LINE_REQ_DIR_OUT)

6 request(consumer="LED", type=gpiod Fakat butona bastığımızda Raspberry Pi 5’in 3V pinini Button GPIO pinine bağlıyoruz Akımın LED’e akmasını istiyoruz LINE_REQ_DIR_OUT)

8

led_line = chip Kodun ana gövdesini try ve while True döngüsüne sarın Kodu Blinky Bizim göz atın direnç referans kılavuzu daha fazla bilgi için GPIO gibi Python modülleriyle kullanabiliyorduk Başlangıçta Raspberry Pi’nin belleğe eşlenen tek bir gpiomem cihazı vardı ve bunu RPi request(consumer="LED", type=gpiod GPIO’yu) çıkmadan önce temizlememiz gerekiyor 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_state = button_line Bu değişken, Raspberry Pi’nin tüm modellerindeki GPIO pini için Broadcom pin referansını içerir

led_line set_value(1) time release()

14 GPIO 27, GPIO 17’nin hemen yanındadır request(consumer="LED", type=gpiod request(consumer="Button", type=gpiod Bu, LED’in bir saniye boyunca açık kalmasını zorlayacaktır sleep(1) led_line GPIO Zero ile bunu yapmak zorunda değiliz ancak gpiod’u (ve eski RPi

1 LED’i kapatın ve ardından bir saniye bekleyin Bu değişken, Raspberry Pi’nin tüm modellerindeki GPIO pini için Broadcom pin referansını içerir Raspberry Pi 5’te GPIO pinlerinin hafıza eşlemesi nedeniyle RPi Başlangıçta Raspberry Pi’nin belleğe eşlenen tek bir gpiomem cihazı vardı ve bunu RPi get_line(LED_PIN) led_line

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 py olarak kaydedin ve başlamak için Çalıştır’a tıklayın led_line adında bir değişken oluşturun ve LED GPIO pinine bir referans saklayın LINE_REQ_DIR_IN)

9 Chip('gpiochip4')

5 LINE_REQ_DIR_IN) try: while True: button_state = button_line Button GPIO pininin mevcut durumunu alın ve onu Button_state adlı bir değişkende saklayın Kod çıktığında GPIO’yu temizlemek için bir kod bölümü ekleyin py olarak kaydedin ve başlamak için Çalıştır’a tıklayın İkincisi, LED’in açılıp kapanmasını tetikleyecek bir düğme olan bir giriştir Sonlandırmak için CTRL + C tuşlarına basın veya Durdur’a tıklayın sleep(1) finally: led_line sleep(1)

8 Düğmeye basılmadığında LED’i kapatmak için başka bir koşul kullanın get_value()

11 LINE_REQ_DIR_OUT) button_line set_value(0) # Turn the LED off

13

button_line = chip set_value(1) # Turn the LED on

12 SoC’den GPIO’ya geçişi kullanır SoC’den GPIO’ya geçişi kullanır Bu konuda yeniyseniz, şunu kullanın: GPIO Sıfır Raspberry Pi 5 ile de çalışır set_value(0) time Uyku, LED’i bir saniye boyunca kapalı kalmaya zorlar release() Bu bizi bir alternatif kullanmaya zorluyor ve libgpiod bunun nasıl yapılacağı konusunun odak noktası GPIO Zero ile bunu yapmak zorunda değiliz ancak gpiod’u (ve eski RPi

chip = gpiod release() button_line LED_PIN adında bir değişken oluşturun ve 17 değerini bunun içinde saklayın Chip('gpiochip4')

4

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 Button_line adında bir değişken oluşturun ve Button GPIO pinine bir referans kaydedin Kodun ana gövdesini try ve while True döngüsüne sarın Bu, Ben Croston’un bir topluluk projesiydi ve birçok nesil Raspberry Pi’ye iyi bir şekilde hizmet etti LINE_REQ_DIR_OUT) try: while True: led_line set_value(1) else: led_line Kısa bacak (katot), bir direnç ve başka bir atlama kablosu aracılığıyla GND’ye bağlanır set_value(1) time

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

try: while True:

7 Tek ihtiyacımız olan düğme ve iki aktarma kablosu Thonny’yi açın ve iki kod modülünü içe aktarın Raspberry Pi 5 ve RP1 çipi ile artık dinamik olarak bölünmüş cihazlarımız var ve GPIO’muz gpiomem4’te

import gpiod import time

2 get_line(LED_PIN)

5

LED_PIN = 17

3

chip = gpiod

finally: led_line LED’i açmak için düğmeye basın ve kapatmak için bırakın Bu, Düğme pimini yükseğe çeker (1, Doğru) LED_PIN adında bir değişken oluşturun ve 17 değerini bunun içinde saklayın Geçmişte birçok proje RPi GPIO’yu) çıkmadan önce temizlememiz gerekiyor 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 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 Düğmeye basılıp basılmadığını kontrol etmek için if koşulunu kullanın get_line(BUTTON_PIN)

7 Chip('gpiochip4') led_line = chip LED’i çevirin ve ardından bir saniye bekleyin İlk modül GPIO’yu kontrol etmek ve okumak için kullanılan gpiod’dur Broadcom pin referansları, tüm Raspberry Pi belgelerinde kullanılan standarttır GPIO gibi Python modülleriyle kullanabiliyorduk request(consumer="LED", type=gpiod Donanım, bilgisayar korsanlığı ve elektronikte bu, yanıp sönen bir LED’dir GPIO’yu kullanamıyoruz LED’i çıkış olarak ayarlayın Raspberry Pi 5 ve RP1 çipi ile artık dinamik olarak bölünmüş cihazlarımız var ve GPIO’muz gpiomem4’te İlk modül GPIO’yu kontrol etmek ve okumak için kullanılan gpiod’dur Gpiod’u Python ve GPIO için daha çok bir ara modül olarak görüyoruz sleep(1) # Sleep for one second

9 Akımın LED’e akmasını istiyoruz Kodumuz bu durum değişikliğini arayacak ve buna göre tepki verecektir Thonny’yi açın ve iki kod modülünü içe aktarın LED’i çıkış olarak ayarlayın

try: while True:

10

(Resim kredisi: Gelecek)

1

(Resim kredisi: Gelecek)

Devre son derece basittir