GPIO: Raspberry Pi 4 ve 3 bağlantıları hakkında her şey

Ahududu Pi 4 GPIO

Jardines de Viveros Raspberry Pi 4 kartının GPIO pinleri, 3ve ayrıca selefleri, SBC kartına Arduino'nun sahip olabileceğine benzer yetenekler sağlar, çünkü onlarla Python gibi farklı dillerdeki kodlar aracılığıyla işletim sisteminden kontrol edilen çok ilginç elektronik projeler oluşturabilirsiniz.

Bu, anakartı ucuz bir bilgisayardan daha fazlasını yapar. Çok sayıda bağlantı kurmanıza izin verecektir. elektronik elemanlar Arduino ile kullanabileceğiniz, ancak bu Pi'den de kontrol edilebilir. Bu kılavuzda sizlere bu GPIO pinleri hakkında olabildiğince fazla bilgi vermeye çalışacağım, böylece onlardan yararlanmaya başlayabilirsiniz ...

GPIO nedir?

GPIO

GPIO Genel Amaçlı Girdi / Çıktı, yani Genel Amaçlı Girdi / Çıktı'nın kısaltmasıdır. Çiplerin kendileri veya bu Raspberry Pi gibi belirli PCB kartları gibi farklı elektronik ürünler buna sahip olabilir. Adından da anlaşılacağı gibi, farklı işlevleri yerine getirmek üzere yapılandırılabilen pimlerdir, bu nedenle bunlar genel amaçlıdır ve belirli bir kullanım için değildir.

Çalışma zamanında yapabilecek kullanıcı olacaktır. bu GPIO pinlerini yapılandırın böylece ne isterse onu yaparlar. Konsoldaki belirli kodlar veya komut dosyaları ile veya elinizin altında bulunan seçenek sayısı nedeniyle en basit ve en çok tercih edilen yöntemlerden biri olan Python programı gibi farklı şekillerde yapılabilir.

Bu şekilde, Raspberry Pi yalnızca bir dizi bağlantı noktasına ve arayüzler birden fazla standart cihazı bağlamak için, ancak bu GPIO pinlerini ekleyin, böylece kendi oluşturduğunuz diğer elektronik cihazları veya üretici projelerini ekleyebilirsiniz. Aynı şekilde Arduino ve kontrol için I / O pinleri ile yaparsınız.

Y Arduino veya Raspberry Pi'ye özel değil, diğer benzer SBC kartları ve gömülü ürünler de öyle.

GPIO işlevleri

Ve arasında KARAKTERİSTİKLERİ En seçkin:

  • Yapabilirler yapılandırılmak böylece çıktı olarak girdi olarak. Şu ikileme sahipler, çünkü bu ikili Arduino.
  • GPIO pinleri de etkinleştirilebilir ve devre dışı bırakılabilir kod ile. Yani 1 (yüksek voltaj seviyesi) veya 0 (düşük voltaj seviyesi) olarak ayarlanabilirler.
  • Elbette yapabilirler ikili verileri okubirler ve sıfırlar gibi, yani voltaj sinyali veya yokluğu.
  • Çıkış değerleri Okuma ve yazma.
  • Giriş değerleri bazı durumlarda şu şekilde yapılandırılabilir: Etkinlikler böylece kart veya sistem üzerinde bir tür eylem oluştururlar. Bazı gömülü sistemler, bunları IRQ'lar olarak kullanır. Diğer bir durum, belirli sensörler tarafından bir veya daha fazla pim etkin olduğunda, bazı eylemler gerçekleştirecek şekilde yapılandırmaktır ...
  • Voltaj ve yoğunluk ile ilgili olarak, kart için kabul edilebilir maksimum kapasiteleri, bu durumda Raspberry Pi 4 veya 3'ü iyi bilmelisiniz. Zarar vermemek için bunları geçmemelisiniz.

Bu arada, Raspberry Pi'de olduğu gibi bir grup GPIO pini gruplandığında, grup olarak bilinir. GPIO bağlantı noktası.

Raspberry Pi'nin GPIO pinleri

Ahududu Pi GPIO

Şema, sürüm 4, 3, Sıfır için geçerlidir

Yeni Raspberry Pi 4 kartları ve sürüm 3 Çok sayıda GPIO pini ile donatılmıştır. Tüm sürümler aynı miktarı sunmaz ve aynı şekilde numaralandırılmaz, bu nedenle sahip olduğunuz model ve revizyona göre bağlantıyı nasıl yapmanız gerektiğini iyi bilmek için buna dikkat etmelisiniz.

Ancak daha genel olan, Raspberry Pi kartlarının bağlantı noktasında bulabileceğiniz GPIO türleridir. Ve açıklığa kavuşturmak istediğim ilk şey bu olacak, çünkü bu şekilde bileceksiniz iğne türleri projeleriniz için güvenebilirsiniz:

  • beslemeBu pinler, elektronik projeleriniz için güç hatlarını veya kabloları bağlamak için kullanılır. Arduino kartındakilere benzer pinlere karşılık gelirler ve 5v ve 3v3 voltajları sağlarlar (3.3v 50mA yük ile sınırlıdır). Ek olarak, zemini de bulacaksınız (GND veya Zemin). Piller veya adaptörler gibi harici güç kaynakları kullanmıyorsanız, bu pinler devrenize güç sağlamada çok yardımcı olabilir.
  • DNC (Bağlanmayın): bazı sürümlerde bulunan ve işlevi olmayan pinlerdir, ancak yeni kartlarda onlara başka bir amaç verilmiştir. Bunları yalnızca Pi'nin daha ilkel modellerinde bulacaksınız. Yeni 3 ve 4'te genel olarak GND olarak işaretlenecekler ve önceki gruba entegre olabilecekler.
  • Yapılandırılabilir pimler: Bunlar normal GPIO'lardır ve ihtiyacınız olanı yapmak için daha sonra açıklayacağım gibi kodlarla programlanabilirler.
  • Özel pimler: bunlar, Arduino ile olduğu gibi UART, TXD ve RXD seri bağlantıları gibi özel bağlantılar veya arayüzler için tasarlanmış bazı bağlantılardır. SDA, SCL, MOSI, MISO, SCLK, CE0, CE1, vb. Gibi bazılarını bile bulacaksınız. Aralarında öne çıkıyorlar:
    • PWM, önceki bir makalede gördüğümüz gibi darbe genişliğini düzenleyebilen. Raspberry Pi 3 ve 4'te bunlar GPIO12, GPIO13, GPIO18 ve GPIO19'dur.
    • SPI, başka bir makalede de tartıştığım başka bir iletişim arayüzüdür. Yeni 40 pinli panolar söz konusu olduğunda, bunlar pinlerdir (görebileceğiniz gibi farklı iletişim kanallarıyla):
      • SPI0: MOSI (GPIO10), MISO (GPIO9), SCLK (GPIO11), CE0 (GPIO8), CE1 (GPIO7)
      • SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK(GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
    • I2C bu blogda da açıkladığım başka bir bağlantı. Bu veriyolu, veri sinyali (GPIO2) ve saatten (GPIO3) oluşur. EEPROM Verilerine (GPIO0) ve EEPROM Saatine (GPIO1) ek olarak.
    • Seri, kartta bulabileceğiniz gibi TX (GPIO14) ve RX (GPIO15) pinleri ile çok pratik bir iletişim daha Arduino UNO.

GPIO'ların Raspberry Pi ile dış dünya arasındaki arayüz olduğunu unutmayın, ancak sınırlamalarıözellikle elektrik. Kartı bozmamak için dikkate almanız gereken bir şey, bu GPIO pinlerinin genellikle arabelleksiz, yani arabelleksiz olduğunu hatırlamaktır. Bu, korumaya sahip olmadıkları anlamına gelir, bu nedenle işe yaramaz bir plaka ile sonuçlanmamak için uygulanan voltaj ve yoğunluk büyüklüklerini izlemelisiniz ...

Sürümler arasındaki GPIO farklılıkları

Eski Ahududu Pi GPIO pimleri

Söylediğim gibi, tüm modeller aynı pin değildirİşte bazı şemalar, böylece modeller arasındaki farkları görebilir ve böylece en yeni ve muhtemelen sahip olduğunuz Raspberry Pi 4 ve 3'e odaklanabilirsiniz. Şunlar arasında farklılık gösterir (her grubun tümü aynı pimleri paylaşır):

  • Raspberry Pi 1 Model B Rev 1.0, Rev26'den biraz farklı 2 pimli.
  • Raspberry Pi 1 Model A ve B Rev 2.0, her ikisi de 26 pimli.
  • Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero ve Zero W ve ayrıca 4 model.Hepsi 40-pin GPIO başlığına sahip.

GPIO'lara ne takabilirim?

Raspberry Pi şapka

Sadece yapamayacaksın elektronik cihazları bağlamak olarak transistörler, nem / sıcaklık sensörleri, termistörler, step motorlar, LED'ler, vb. Ayrıca, Raspberry Pi için özel olarak oluşturulmuş bileşenleri veya modülleri de bağlayabilirsiniz ve bu, kartın yeteneklerini tabanda bulunanların ötesine taşır.

Ünlüden bahsediyorum şapkalar veya şapkalar ve pazarda bulabileceğiniz tabaklar. Sürücülerle motorları kontrol etmek için kullanılanlardan, oluşturmak için diğerlerine kadar birçok tür vardır. bir bilgi işlem kümesiIle, LED paneli kontrol edilebilir, eklemek DVB TV özelliği, LCD ekran, vb.

Bu şapkalar veya şapkalar Raspberry Pi kartına monte edilirler, çalışması için gereken GPIO'larla eşleştirme. Bu nedenle montajı oldukça basit ve hızlıdır. Tabii ki, GPIO portu gördüğünüz gibi farklı olduğu için her bir şapka ile uyumlu plaka versiyonundan emin olun ...

Bunu daha eski bir tabağınız olması durumunda söylüyorum, çünkü şapkalar sadece en yenileriyle uyumlu. Raspberry Pi Model A +, B +, 2, 3 ve 4 modelleri gibi.

Raspberry Pi'de GPIO kullanımına giriş

Pinout komut çıktısı

Kaynak: Raspberry Pi

Başlamak için Raspbian'da konsolu açıp şunu yazabilirsiniz: komut Elektriksel bağlantıSize geri döneceği şey, kartınızda bulunan GPIO pinleri ve her birinin ne için olduğu ile terminaldeki bir görüntüdür. Kafanızın karışmaması için çalışma anında her zaman mevcut olması çok pratik bir şey.

İlk proje: GPIO'larla bir LED'in yanıp sönmesi

Raspberry Pi üzerinde LED'li GPIO

Bir tür yapmanın en basit yolu GPIO'larla "Merhaba dünya" Raspberry Pi'nin pinlerine bağlı basit bir LED kullanmaktır, böylece nasıl çalıştıklarını görebilirsiniz. Bu durumda, normal pinlerden birini seçebilmenize rağmen, onu GND'ye ve diğerini 17 pinine bağladım ...

Bağlandıktan sonra şunları yapabilirsiniz: Raspbian'dan kontrol et terminalden yararlanarak. Linux'ta, / sys / class / gpio / dizinindekiler gibi belirli dosyalar kullanılır. Örneğin, çalışmaya başlamak için gerekli yapıya sahip bir dosya oluşturmak için:

echo 17 > /sys/class/gpio/export

O zaman yapabilirsin giriş (giriş) veya çıkış (çıkış) olarak yapılandırın bu pim 17 örneğimiz için seçildi. Bunu çok kolay bir şekilde yapabilirsiniz:

echo out > /sys/class/gpio/gpio17/direction

Bu durumda çıktı olarak led'e elektrik darbesi göndermek istediğimizden onu yakmak istiyoruz ama eğer sensör vb. Olsaydı kullanabilirsiniz. Şimdi için aç (1) veya kapat (0) kullanabileceğiniz LED:

echo 1 > /sys/class/gpio/gpio17/value
echo 0 > /sys/class/gpio/gpio17/value

Başka bir projeye geçmek istiyorsanız ve girişi sil oluşturulduysa, bunu şu şekilde yapabilirsiniz:

echo 17 > /sys/class/gpio/unexport

Bu arada, öncekiler gibi projeniz için gerekli tüm komutları da toplayabilir, bunları bir dosya türüne kaydedebilirsiniz. bash betiği ve sonra bunları tek tek yazmak yerine, hepsini aynı anda paketler halinde çalıştırın. Bu, aynı alıştırmayı birçok kez tekrarladığınızda kullanışlıdır, böylece yeniden yazmak zorunda kalmazsınız. Sadece koş ve git. Örneğin:

nano led.sh

#!/bin/bash
source gpio 
gpio mode 17 out
while true; do 
gpio write 17 1 
sleep 1.3 
gpio write 17 0 
sleep 1.3 done

Bitirdiğinizde, kaydedersiniz ve ardından ona uygun yürütme ve yürütme izinlerini verebilirsiniz. senaryo LED'in yanması için 1.3 saniye bekleyin ve bir döngü içinde bu şekilde kapatın ...

chmod +x led.sh
./led.sh

Programlama ilerlemesi

programlama dili kaynak kodu

Açıkçası, yukarıdakiler birkaç bileşene sahip küçük elektronik projeler için işe yarar, ancak komutlar yerine daha gelişmiş bir şey oluşturmak istiyorsanız, kullanabilecekleriniz şunlardır: programlama dilleri işlemi otomatikleştiren farklı komut dosyaları veya kaynak kodları oluşturmak için.

Kullanılabilirler farklı araçlar çok farklı dillerle programlamak. Topluluğun geliştirdiği kütüphaneler, WiringPi, sysfs, pigpio vb. Gibi işleri sizin için çok daha kolaylaştırır. Programlar pek çok kişinin tercih ettiği Python'dan Ruby, Java, Perl, BASIC ve hatta C # aracılığıyla çok çeşitli olabilir.

Raspberry Pi size resmi olarak sunuyor birçok tesis GPIO'larınızı programlamak için, örneğin:

  • çizik, nasıl programlanacağını bilmeyenler ve Arduino'nun da programlanabileceği bu projenin puzzle bloklarını kullanmak isteyenler için vb. Grafik bloklarla programlama oldukça sezgiseldir ve eğitim alanı için çok pratiktir.
  • Python: Bu basit yorumlanmış programlama dili, hayal ettiğiniz hemen hemen her şeyi yapmak için emrinizde olan çok sayıda kitaplıkla basit ve güçlü kodlar oluşturmanıza olanak tanır.
  • C / C ++ / C #: GPIO'larla etkileşim kuracak ikili dosyalar oluşturmak için daha güçlü programlama dilleridir. Kütüphane aracılığıyla standart formu veya çekirdek arayüzünü kullanarak bunu birkaç şekilde yapabilirsiniz.libgpiod, aynı zamanda gibi bir üçüncü taraf kitaplığı aracılığıyla domuz yavrusu.
  • İşleme3, Arduino'ya benzer.

Esnek bir şekilde seçin en çok sevdiğin veya basit olduğunu düşündüğün.


4 yorum, sizinkini bırakın

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   Düşman dijo

    Rasperry'de başlamak hakkında çok güzel bir makale

    1.    isaac dijo

      Çok teşekkür ederim.

      1.    Ruth Medine dijo

        yazar mısın

        1.    isaac dijo

          Evet