GPIO: semua mengenai sambungan Raspberry Pi 4 dan 3

Raspberi Pi 4 GPIO

The Pin GPIO papan Raspberry Pi 4, 3, dan juga pendahulunya, menyediakan papan SBC kemampuan yang serupa dengan yang dimiliki Arduino, kerana dengan mereka anda dapat membuat projek elektronik yang sangat menarik yang dikendalikan dari sistem operasi dengan menggunakan kod dalam bahasa yang berbeza, seperti Python.

Itu menjadikan papan lebih dari sekadar komputer yang murah. Ini akan membolehkan anda menghubungkan banyak unsur elektronik yang boleh anda gunakan dengan Arduino, tetapi itu juga dapat dikendalikan dari Pi. Dalam panduan ini, saya akan cuba memberi anda sebanyak mungkin maklumat mengenai pin GPIO ini supaya anda dapat memanfaatkannya ...

Apa itu GPIO?

GPIO

GPIO adalah akronim untuk Input / Output Tujuan Umum, iaitu Input / Output Tujuan Umum. Produk elektronik yang berbeza boleh memilikinya, seperti cip itu sendiri atau papan PCB tertentu seperti Raspberry Pi ini. Seperti namanya, mereka adalah pin yang dapat dikonfigurasikan untuk melakukan fungsi yang berbeda, oleh itu mereka adalah tujuan umum dan bukan untuk penggunaan tertentu.

Pengguna akan dapat masa runtime konfigurasikan pin GPIO ini supaya mereka melakukan apa yang dia mahukan. Ini boleh dilakukan dengan cara yang berbeza, seperti dengan kod atau skrip tertentu dari konsol atau dengan program Python, yang merupakan salah satu cara paling mudah dan paling disukai kerana jumlah pilihan yang anda miliki.

Dengan cara ini, Raspberry Pi tidak hanya mempunyai rangkaian port dan antara muka untuk menyambungkan pelbagai peranti standard, tetapi tambahkan pin GPIO ini supaya anda dapat menambahkan peranti elektronik atau projek pembuat lain yang telah anda buat sendiri. Dengan cara yang sama seperti yang anda lakukan dengan Arduino dan pin I / O untuk kawalan.

Y tidak eksklusif untuk Arduino atau Raspberry Pibegitu juga papan SBC dan produk terbenam yang serupa.

Fungsi GPIO

Dan antara KARAKTERISTIKnya paling luar biasa:

  • Boleh dikonfigurasikan jadi sebagai input sebagai output. Mereka mempunyai dualitas seperti yang berlaku pada mereka Arduino.
  • Pin GPIO juga boleh diaktifkan dan dinyahaktifkan mengikut kod. Iaitu, mereka dapat diatur ke 1 (tahap voltan tinggi) atau 0 (tahap voltan rendah).
  • Sudah tentu mereka boleh membaca data binari, sebagai satu dan nol, iaitu isyarat voltan atau ketiadaannya.
  • Nilai output sebanyak Membaca dan menulis.
  • Nilai input dapat dikonfigurasi dalam beberapa kasus sebagai acara sehingga mereka menghasilkan beberapa jenis tindakan di papan atau sistem. Beberapa sistem tertanam menggunakannya sebagai IRQ. Kes lain adalah untuk mengkonfigurasi bahawa apabila satu atau lebih pin aktif oleh sensor tertentu, lakukan beberapa tindakan ...
  • Mengenai voltan dan intensiti, anda mesti tahu kapasiti maksimum yang boleh diterima untuk papan, dalam hal ini Raspberry Pi 4 atau 3. Anda tidak boleh melewatinya untuk mengelakkan merosakkannya.

By the way, apabila sekumpulan pin GPIO dikelompokkan, seperti halnya dengan Raspberry Pi, kumpulan itu dikenali sebagai Pelabuhan GPIO.

Pin GPIO dari Raspberry Pi

Raspberry Pi GPIO

Skema sah untuk versi 4, 3, Zero

Yang baru Papan Raspberry Pi 4 dan versi 3 Mereka dilengkapi dengan sebilangan besar pin GPIO. Tidak semua versi menawarkan jumlah yang sama, juga tidak bernomor dengan cara yang sama, jadi anda harus berhati-hati dengan ini untuk mengetahui dengan baik bagaimana anda harus membuat sambungan mengikut model dan semakan yang anda miliki.

Tetapi yang lebih generik adalah jenis GPIO yang boleh anda temui di port papan Raspberry Pi. Dan itu akan menjadi perkara pertama yang ingin saya jelaskan, kerana itulah bagaimana anda akan tahu jenis-jenis pin anda boleh bergantung pada projek anda:

  • makanPin ini digunakan untuk menyambungkan saluran kuasa atau pendawaian untuk projek elektronik anda. Mereka sesuai dengan pin yang serupa dengan papan Arduino, dan yang memberikan voltan 5v dan 3v3 (3.3v terhad kepada beban 50mA). Di samping itu, anda juga akan menemui tanah (GND atau Ground). Sekiranya anda tidak menggunakan sumber kuasa luaran seperti bateri, atau penyesuai, pin ini dapat sangat membantu menghidupkan litar anda.
  • DNC (Jangan Sambung): mereka adalah pin yang ada di beberapa versi dan tidak berfungsi, tetapi di papan baru mereka diberi tujuan lain. Anda hanya akan menjumpainya dalam model Pi yang lebih primitif. Pada 3 dan 4 baru mereka akan ditandai sebagai GND secara umum, dapat bergabung dalam kumpulan sebelumnya.
  • Pin yang boleh dikonfigurasikan: Mereka adalah GPIO biasa, dan mereka boleh diprogramkan dengan kod seperti yang akan saya jelaskan kemudian untuk melakukan apa yang anda perlukan.
  • Pin khas: ini adalah beberapa sambungan yang dimaksudkan untuk sambungan khas atau antara muka seperti sambungan bersiri UART, TXD dan RXD, dan lain-lain, seperti yang berlaku dengan Arduino. Anda juga akan menemui beberapa seperti SDA, SCL, MOSI, MISO, SCLK, CE0, CE1, dll. Mereka menonjol antaranya:
    • PWM, yang dapat mengatur lebar nadi seperti yang kita lihat pada artikel sebelumnya. Pada Raspberry Pi 3 dan 4 mereka adalah GPIO12, GPIO13, GPIO18 dan GPIO19.
    • SPI adalah antara muka komunikasi lain yang juga saya bincangkan dalam artikel lain. Bagi papan 40-pin baru, mereka adalah pin (dengan saluran komunikasi yang berbeza 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 adalah satu lagi hubungan yang telah saya terangkan dalam blog ini. Bas ini terdiri daripada isyarat data (GPIO2) dan jam (GPIO3). Sebagai tambahan kepada Data EEPROM (GPIO0) dan Jam EEPROM (GPIO1).
    • Bersiri, satu lagi komunikasi yang sangat praktikal dengan pin TX (GPIO14) dan RX (GPIO15) seperti yang anda dapati di papan tulis Arduino UNO.

Ingat bahawa GPIO adalah antara muka antara Raspberry Pi dan dunia luar, tetapi ia ada hadnyaterutamanya elektrik. Sesuatu yang mesti anda perhatikan agar tidak merosakkan papan adalah ingat bahawa pin GPIO ini biasanya tidak dibeli, iaitu tanpa penyangga. Ini bermaksud bahawa mereka tidak mempunyai perlindungan, jadi anda mesti memantau besarnya voltan dan intensiti yang berlaku agar tidak berakhir dengan plat yang tidak berguna ...

Perbezaan GPIO antara versi

Pin GPIO Raspberry Pi lama

Seperti yang saya katakan, tidak semua model adalah pin yang samaBerikut adalah beberapa gambar rajah sehingga anda dapat melihat perbezaan antara model dan dengan demikian dapat memberi tumpuan kepada Raspberry Pi 4 dan 3, yang terbaru dan yang mungkin anda miliki. Ia berbeza antara (semua kumpulan mempunyai pin yang sama):

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

Apa yang boleh saya pasangkan ke GPIO?

Topi Raspberry Pi

Anda bukan sahaja dapat sambungkan alat elektronik sebagai transistor, sensor kelembapan / suhu, termistor, motor stepper, LED, dan lain-lain. Anda juga boleh menyambungkan komponen atau modul yang dibuat khusus untuk Raspberry Pi dan yang memperluas kemampuan papan melebihi yang disertakan dalam pangkalan.

Saya merujuk kepada yang terkenal topi atau topi dan pinggan yang anda dapati di pasaran. Terdapat banyak jenis, dari yang digunakan untuk mengawal motor dengan pemandu, hingga yang lain untuk membuat sekumpulan pengkomputeran, Dengan Panel LED terkawal, untuk menambah Keupayaan TV DVB, Skrin LCD, Dll

Topi atau topi ini Mereka dipasang di papan Raspberry Pi, sepadan dengan GPIO yang diperlukan agar ia berfungsi. Oleh itu, pemasangannya cukup mudah dan pantas. Sudah tentu, pastikan versi plat sesuai dengan setiap topi, kerana port GPIO berbeza seperti yang anda lihat ...

Saya mengatakan ini sekiranya anda mempunyai pinggan yang lebih tua, kerana topi itu hanya serasi dengan yang terbaru. Seperti model Raspberry Pi Model A +, B +, 2, 3, dan 4.

Pengenalan penggunaan GPIO pada Raspberry Pi

Output arahan pinout

Sumber: Raspberry Pi

Untuk memulakan, di Raspbian, anda boleh membuka konsol dan menaip perintah itu pinoutApa yang akan dikembalikan kepada anda ialah gambar di terminal dengan pin GPIO yang terdapat di papan anda dan apa yang dimaksudkan dengan setiap pin. Sesuatu yang sangat praktikal untuk selalu mempunyainya semasa bekerja agar anda tidak keliru.

Projek pertama: memancarkan LED dengan GPIO

GPIO dengan LED pada Raspberry Pi

Kaedah paling asas untuk membuat sejenis "Hello world" dengan GPIO adalah menggunakan LED sederhana yang disambungkan ke pin Raspberry Pi supaya anda dapat melihat bagaimana ia berfungsi. Dalam kes ini, saya telah menghubungkannya ke GND dan yang lain ke pin 17, walaupun anda boleh memilih pin biasa yang lain ...

Setelah disambungkan, anda boleh mengawal mereka dari Raspbian menggunakan terminal. Di Linux, fail tertentu digunakan seperti yang terdapat di direktori / sys / class / gpio /. Contohnya, untuk membuat fail dengan struktur yang diperlukan untuk mula berfungsi:

echo 17 > /sys/class/gpio/export

Maka anda boleh konfigurasikan sebagai input (in) atau sebagai output (keluar) pin 17 yang dipilih untuk contoh kita. Anda boleh melakukannya dengan mudah dengan:

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

Dalam kes ini sebagai output, kerana kami ingin mengirim denyut elektrik ke LED untuk menyalakannya, tetapi jika ia adalah sensor, dll., Anda dapat menggunakannya. Sekarang untuk hidupkan (1) atau matikan (0) LED yang boleh anda gunakan:

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

Sekiranya anda ingin beralih ke projek lain dan padam entri dibuat, anda boleh melakukannya dengan cara ini:

echo 17 > /sys/class/gpio/unexport

Ngomong-ngomong, anda juga dapat mengumpulkan semua arahan yang diperlukan untuk projek anda, seperti yang sebelumnya, simpan dalam jenis fail skrip bash dan kemudian jalankan secara berkumpulan sekaligus, bukannya menaipnya satu persatu. Ini berguna apabila anda mengulang latihan yang sama berkali-kali, jadi anda tidak perlu menulis semula. Hanya berlari 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 selesai, anda menyimpan dan kemudian anda boleh memberikan izin pelaksanaan dan pelaksanaan yang sesuai skrip agar LED menyala, tunggu 1.3 saat dan matikan seperti ini dalam satu gelung ...

chmod +x led.sh
./led.sh

Kemajuan program

kod sumber bahasa pengaturcaraan

Jelas di atas berfungsi untuk projek elektronik kecil dengan beberapa komponen, tetapi jika anda ingin membuat sesuatu yang lebih maju, bukannya perintah, yang boleh anda gunakan adalah bahasa pengaturcaraan untuk membuat skrip atau kod sumber yang berbeza yang mengautomasikan operasi.

Mereka boleh digunakan alat yang berbeza untuk memprogram, dengan bahasa yang sangat berbeza. Perpustakaan yang telah dibangunkan oleh komuniti menjadikan anda lebih mudah, seperti WiringPi, sysfs, pigpio, dll. Program-programnya dapat sangat bervariasi, dari Python, yang merupakan pilihan utama bagi banyak orang, melalui Ruby, Java, Perl, BASIC, dan bahkan C #.

Secara rasmi, Raspberry Pi menawarkan kepada anda banyak kemudahan untuk memprogram GPIO anda, seperti:

  • Gores, bagi mereka yang tidak tahu bagaimana memprogram dan ingin menggunakan blok teka-teki projek ini yang dapat diprogramkan oleh Arduino, dll. Pengaturcaraan dengan blok grafik cukup intuitif dan sangat praktikal untuk bidang pendidikan.
  • Python: Bahasa pengaturcaraan yang mudah ditafsirkan ini membolehkan anda membuat kod mudah dan kuat, dengan banyak perpustakaan tersedia untuk melakukan hampir semua yang anda bayangkan.
  • C / C ++ / C #: mereka adalah bahasa pengaturcaraan yang lebih hebat untuk membuat binari untuk berinteraksi dengan GPIO. Anda boleh melakukannya dengan beberapa cara, menggunakan bentuk standard atau antara muka kernel melalui perpustakaanlibgpiod, tetapi juga melalui perpustakaan pihak ketiga seperti babi.
  • Pemprosesan3, serupa dengan Arduino.

Pilih secara fleksibel yang paling anda gemari atau yang anda fikirkan sederhana.


4 komen, tinggalkan komen anda

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Musuh kata

    Artikel yang sangat bagus tentang bermula di Rasperry

    1.    Ishak kata

      Terima kasih banyak.

      1.    Ruth Madinah kata

        adakah anda pengarang?

        1.    Ishak kata

          Ya