GPIO: semua tentang koneksi Raspberry Pi 4 dan 3

Raspberry Pi 4 GPIO

Los Pin GPIO dari papan Raspberry Pi 4, 3, dan juga pendahulunya, menyediakan papan SBC dengan kemampuan yang mirip dengan yang dimiliki Arduino, karena dengan mereka Anda dapat membuat proyek elektronik yang sangat menarik yang dikendalikan dari sistem operasi melalui kode dalam berbagai bahasa, seperti Python.

Itu membuat papan lebih dari sekedar komputer murah. Ini akan memungkinkan Anda untuk menghubungkan banyak elemen elektronik yang dapat Anda gunakan dengan Arduino, tetapi itu juga dapat dikontrol dari Pi. Dalam panduan ini saya akan mencoba memberi Anda informasi sebanyak mungkin tentang pin GPIO ini sehingga Anda dapat mulai memanfaatkannya ...

Apa itu GPIO?

GPIO

GPIO adalah singkatan dari General Purpose Input / Output, yaitu General Purpose Input / Output. Produk elektronik yang berbeda dapat memilikinya, seperti chip itu sendiri atau papan PCB tertentu seperti Raspberry Pi ini. Seperti namanya, mereka adalah pin yang dapat dikonfigurasi untuk melakukan fungsi yang berbeda, oleh karena itu pin tersebut bertujuan umum dan bukan untuk penggunaan tertentu.

Ini akan menjadi pengguna pada waktu proses yang bisa konfigurasikan pin GPIO ini sehingga mereka melakukan apa yang dia inginkan. Ini dapat dilakukan dengan berbagai cara, seperti dengan kode atau skrip tertentu dari konsol atau dengan program Python, yang merupakan salah satu cara paling sederhana dan paling disukai karena jumlah opsi yang Anda miliki.

Dengan cara ini, Raspberry Pi tidak hanya memiliki rangkaian port dan interface untuk menghubungkan beberapa perangkat standar, tetapi tambahkan pin GPIO ini sehingga Anda dapat menambahkan perangkat elektronik lain atau proyek pembuat yang telah Anda buat sendiri. Dengan cara yang sama seperti yang Anda lakukan dengan Arduino dan pin I / O-nya untuk kontrol.

Y tidak eksklusif untuk Arduino atau Raspberry Pi, begitu pula papan SBC serupa dan produk yang disematkan.

Fungsi GPIO

Dan di antara KARAKTERISTIK nya paling luar biasa:

  • Mereka bisa dikonfigurasi jadi sebagai masukan sebagai keluaran. Mereka memiliki dualitas seperti yang terjadi pada mereka Arduino.
  • Pin GPIO juga dapat diaktifkan dan dinonaktifkan dengan kode. Artinya, mereka dapat disetel ke 1 (level voltase tinggi) atau 0 (level voltase rendah).
  • Tentu saja bisa membaca data biner, sebagai satu dan nol, artinya, sinyal tegangan atau tidak adanya itu.
  • Nilai keluaran dari Membaca dan menulis.
  • Nilai input dapat dikonfigurasi dalam beberapa kasus sebagai peristiwa sehingga mereka menghasilkan beberapa jenis tindakan di papan atau sistem. Beberapa sistem tertanam menggunakannya sebagai IRQ. Kasus lain adalah untuk mengkonfigurasi ketika satu atau lebih pin aktif oleh sensor tertentu, melakukan beberapa tindakan ...
  • Sedangkan untuk tegangan dan intensitasnya, Anda harus tahu betul kapasitas maksimal yang dapat diterima untuk board tersebut, dalam hal ini Raspberry Pi 4 atau 3. Anda tidak boleh melewatkannya agar tidak merusaknya.

Omong-omong, ketika sekelompok pin GPIO dikelompokkan, seperti halnya dengan Raspberry Pi, kelompok itu dikenal sebagai Port GPIO.

Pin GPIO dari Raspberry Pi

Raspberry Pi GPIO

Skema valid untuk versi 4, 3, Zero

baru Papan Raspberry Pi 4 dan versi 3 Mereka dilengkapi dengan sejumlah besar pin GPIO. Tidak semua versi menawarkan jumlah yang sama, juga tidak diberi nomor dengan cara yang sama, jadi Anda harus berhati-hati dengan ini untuk mengetahui dengan baik bagaimana Anda harus membuat sambungan sesuai dengan model dan revisi yang Anda miliki.

Tetapi yang lebih umum adalah jenis GPIO yang dapat Anda temukan di port board Raspberry Pi. Dan itu akan menjadi hal pertama yang ingin saya jelaskan, karena begitulah cara Anda akan tahu jenis pin Anda dapat mengandalkan proyek Anda:

  • makanan: pin ini digunakan untuk menghubungkan saluran listrik atau kabel untuk proyek elektronik Anda. Mereka sesuai dengan pin yang mirip dengan yang ada di papan Arduino, dan yang memberikan tegangan 5v dan 3v3 (3.3v terbatas pada beban 50mA). Selain itu, Anda juga akan menemukan yang di darat (GND atau Ground). Jika Anda tidak menggunakan sumber daya eksternal seperti baterai, atau adaptor, pin ini bisa sangat membantu untuk memberi daya pada sirkuit Anda.
  • DNC (Jangan Terhubung): mereka adalah pin yang ada di beberapa versi dan tidak memiliki fungsi, tetapi di papan baru mereka telah diberi tujuan lain. Anda hanya akan menemukannya di model Pi yang lebih primitif. Di 3 dan 4 baru mereka akan ditandai sebagai GND secara umum, dapat diintegrasikan ke grup sebelumnya.
  • Pin yang dapat dikonfigurasi: mereka adalah GPIO normal, dan dapat diprogram dengan kode seperti yang akan saya jelaskan nanti untuk melakukan apa yang Anda butuhkan.
  • Pin khusus: ini adalah beberapa koneksi yang ditujukan untuk koneksi atau antarmuka khusus seperti koneksi serial UART, TXD dan RXD, dll., seperti yang terjadi dengan Arduino. Anda bahkan akan menemukan beberapa seperti SDA, SCL, MOSI, MISO, SCLK, CE0, CE1, dll. Mereka menonjol di antara mereka:
    • PWM, yang dapat mengatur lebar pulsa seperti yang kita lihat di artikel sebelumnya. Pada Raspberry Pi 3 dan 4 mereka adalah GPIO12, GPIO13, GPIO18 dan GPIO19.
    • SPI adalah antarmuka komunikasi lain yang juga saya bahas di artikel lain. Untuk papan 40-pin baru, itu adalah pin (dengan saluran komunikasi yang berbeda seperti yang Anda lihat):
      • 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 Ada hubungan lain yang juga saya jelaskan di blog ini. Bus ini terdiri dari sinyal data (GPIO2) dan jam (GPIO3). Selain Data EEPROM (GPIO0) dan Jam EEPROM (GPIO1).
    • Serial, komunikasi lain yang sangat praktis dengan pin TX (GPIO14) dan RX (GPIO15) seperti yang dapat Anda temukan di papan tulis Arduino UNO.

Ingatlah bahwa GPIO adalah antarmuka antara Raspberry Pi dan dunia luar, tetapi mereka memilikinya keterbatasannya, terutama kelistrikan. Sesuatu yang harus Anda pertimbangkan agar tidak merusak papan adalah mengingat bahwa pin GPIO ini biasanya tidak disangga, yaitu tanpa buffer. Ini berarti mereka tidak memiliki perlindungan, jadi Anda harus memantau besarnya tegangan dan intensitas yang diterapkan agar tidak berakhir dengan pelat yang tidak berguna ...

Perbedaan GPIO antar versi

Pin Raspberry Pi GPIO lama

Seperti yang saya katakan, tidak semua model memiliki pin yang samaBerikut adalah beberapa diagram sehingga Anda dapat melihat perbedaan antara model dan dengan demikian dapat fokus pada Raspberry Pi 4 dan 3, yang terbaru dan yang mungkin Anda miliki. Ini berbeda antara (semua dari setiap grup berbagi pin yang sama):

  • Raspberry Pi 1 Model B Rev 1.0, dengan 26-pin sedikit berbeda dari Rev2.
  • Raspberry Pi 1 Model A dan B Rev 2.0, keduanya model dengan 26-pin.
  • Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero dan Zero W, serta model 4. Semuanya dengan 40-pin GPIO header.

Apa yang bisa saya sambungkan ke GPIO?

Topi Raspberry Pi

Anda tidak hanya akan bisa hubungkan perangkat elektronik sebagai transistor, sensor kelembaban / suhu, termistor, motor stepper, LED, dll. Anda juga dapat menghubungkan komponen atau modul yang dibuat khusus untuk Raspberry Pi dan yang memperluas kemampuan papan melebihi apa yang termasuk dalam basis.

Saya mengacu pada yang terkenal topi atau topi dan piring yang bisa Anda temukan di pasaran. Ada banyak tipe, dari yang digunakan untuk mengontrol motor dengan driver, hingga yang lain untuk berkreasi sebuah cluster komputasi, Dengan Panel LED dapat dikontrol, untuk menambahkan Kemampuan TV DVB, layar LCD, Dll

Topi atau topi ini Mereka dipasang di papan Raspberry Pi, mencocokkan GPIO yang diperlukan agar berfungsi. Oleh karena itu, perakitannya cukup sederhana dan cepat. Tentu saja, pastikan versi pelat kompatibel dengan setiap topi, karena port GPIO berbeda seperti yang Anda lihat ...

Saya mengatakan ini jika Anda memiliki piring yang lebih tua, karena topi hanya kompatibel dengan yang terbaru. Seperti halnya model Raspberry Pi Model A +, B +, 2, 3, dan 4.

Pengantar menggunakan GPIO di Raspberry Pi

Keluaran perintah pinout

Sumber: Raspberry Pi

Untuk memulai, di Raspbian, Anda dapat membuka konsol dan mengetik perintah pinoutApa yang akan dikembalikan kepada Anda adalah gambar di terminal dengan pin GPIO yang tersedia di papan Anda dan untuk apa masing-masing pin itu. Sesuatu yang sangat praktis untuk selalu hadir pada saat Anda bekerja agar Anda tidak bingung.

Proyek pertama: mem-flash LED dengan GPIO

GPIO dengan LED pada Raspberry Pi

Cara paling dasar untuk membuat semacam "Halo dunia" dengan GPIO adalah menggunakan LED sederhana yang terhubung ke pin Raspberry Pi sehingga Anda dapat melihat cara kerjanya. Dalam hal ini, saya telah menghubungkannya ke GND dan yang lainnya ke pin 17, meskipun Anda dapat memilih pin normal lainnya ...

Setelah terhubung, Anda bisa kendalikan mereka dari Raspbian memanfaatkan terminal. Di Linux, file tertentu digunakan seperti yang ada di direktori / sys / class / gpio /. Misalnya, untuk membuat file dengan struktur yang diperlukan untuk mulai bekerja:

echo 17 > /sys/class/gpio/export

Maka kamu bisa konfigurasikan sebagai masukan (masuk) atau sebagai keluaran (keluar) pin 17 yang dipilih untuk contoh kita. Anda dapat melakukannya dengan sangat mudah dengan:

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

Dalam hal ini sebagai output, karena kami ingin mengirim pulsa listrik ke LED untuk menyalakannya, tetapi jika itu adalah sensor, dll., Anda dapat menggunakannya. Sekarang untuk hidupkan (1) atau matikan (0) LED yang dapat Anda gunakan:

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

Jika Anda ingin pindah ke proyek lain dan hapus entri dibuat, Anda dapat melakukannya dengan cara ini:

echo 17 > /sys/class/gpio/unexport

Ngomong-ngomong, Anda juga dapat mengumpulkan semua perintah yang diperlukan untuk proyek Anda, seperti semua perintah sebelumnya, menyimpannya dalam tipe file skrip pesta lalu menjalankannya dalam satu bundel sekaligus, alih-alih mengetiknya satu per satu. Ini berguna saat Anda mengulangi latihan yang sama berkali-kali, jadi Anda tidak perlu menulis ulang. Lari dan pergi. Sebagai contoh:

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

Setelah Anda selesai, Anda menyimpan dan kemudian Anda dapat memberikan izin eksekusi dan eksekusi yang sesuai naskah agar LED menyala, tunggu 1.3 detik dan matikan seperti ini dalam satu putaran ...

chmod +x led.sh
./led.sh

Kemajuan program

kode sumber bahasa pemrograman

Jelas yang di atas berfungsi untuk proyek elektronik kecil dengan sedikit komponen, tetapi jika Anda ingin membuat sesuatu yang lebih canggih, alih-alih perintah, yang dapat Anda gunakan adalah bahasa pemrograman untuk membuat skrip atau kode sumber berbeda yang mengotomatiskan pengoperasian.

Mereka bisa digunakan alat yang berbeda memprogram, dengan bahasa yang sangat berbeda. Perpustakaan yang telah dikembangkan komunitas membuat segalanya lebih mudah bagi Anda, seperti WiringPi, sysfs, pigpio, dll. Programnya bisa sangat bervariasi, dari Python, yang merupakan pilihan yang disukai banyak orang, melalui Ruby, Java, Perl, BASIC, dan bahkan C #.

Secara resmi, Raspberry Pi menawarkan Anda banyak fasilitas untuk memprogram GPIO Anda, seperti:

  • Gores, bagi mereka yang tidak tahu bagaimana memprogram dan ingin menggunakan blok teka-teki dari proyek ini yang juga dapat diprogram dengan Arduino, dll. Pemrograman dengan blok grafik cukup intuitif dan sangat praktis untuk bidang pendidikan.
  • Ular sanca: Bahasa pemrograman yang ditafsirkan sederhana ini memungkinkan Anda membuat kode yang sederhana dan kuat, dengan banyak perpustakaan yang dapat Anda gunakan untuk melakukan hampir semua yang Anda bayangkan.
  • C / C ++ / C #: adalah bahasa pemrograman yang lebih kuat untuk membuat binari yang dapat digunakan untuk berinteraksi dengan GPIO. Anda dapat melakukannya dengan beberapa cara, menggunakan formulir standar atau antarmuka kernel melalui pustakalibgpod, tetapi juga melalui pustaka pihak ketiga seperti babi.
  • Pengolahan3, mirip dengan Arduino.

Pilih secara fleksibel yang paling Anda sukai atau yang menurut Anda sederhana.


4 komentar, tinggalkan punyamu

tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   Musuh dijo

    Artikel yang sangat bagus tentang memulai di Rasperry

    1.    Isaac dijo

      Terima kasih banyak.

      1.    Rut Medina dijo

        apakah kamu penulisnya?

        1.    Isaac dijo

          Ya