Lawatan ke GPIO Raspberry Pi

01 dari 09

Pengenalan kepada Pins Raspberry Pi

GPIO Raspberry Pi. Richard Saville

Istilah 'GPIO' (Output Input Tujuan Umum) tidak eksklusif kepada Raspberry Pi. Pin input dan output boleh didapati di kebanyakan mikrokontroler seperti Arduino, Beaglebone dan banyak lagi.

Apabila kita bercakap mengenai GPIO dengan Raspberry Pi, kita merujuk kepada blok lama pin di sudut atas kiri lembaga. Model lama mempunyai 26 pin, namun kebanyakan kita akan menggunakan model semasa dengan 40.

Anda boleh menyambung komponen dan peranti perkakasan lain ke pin ini, dan gunakan kod untuk mengawal apa yang mereka lakukan. Ia merupakan bahagian penting dari Raspberry Pi dan cara terbaik untuk belajar tentang elektronik.

Selepas beberapa projek perisian, anda mungkin mendapati diri anda bereksperimen dengan pin ini, tidak sabar-sabar untuk mencampur kod anda dengan perkakasan untuk membuat perkara berlaku dalam 'kehidupan sebenar'.

Proses ini boleh menakutkan jika anda baru di tempat kejadian, dan mengingat bahawa satu langkah palsu boleh merosakkan Raspberry Pi anda, ia difahami bahawa ia adalah kawasan yang saraf untuk pemula untuk meneroka.

Artikel ini akan menerangkan apa jenis pin GPIO dan batasannya.

02 dari 09

GPIO

PIN GPIO bernombor 1 hingga 40, dan boleh dikumpulkan di bawah fungsi yang berlainan. Richard Saville

Pertama, mari lihat GPIO secara keseluruhan. Pins mungkin kelihatan sama tetapi semuanya mempunyai fungsi yang berbeza. Imej di atas menunjukkan fungsi ini dalam pelbagai warna yang akan kami jelaskan dalam langkah-langkah berikut.

Setiap pin dikira dari 1 hingga 40 bermula di sebelah kiri bawah. Ini adalah nombor pin fizikal, tetapi terdapat juga konvensyen penomboran / label seperti 'BCM' yang digunakan semasa menulis kod.

03 dari 09

Kuasa & Ground

Raspberry Pi menawarkan pelbagai kuasa dan pin tanah. Richard Saville

Diserlahkan merah, adalah pin kuasa berlabel '3' atau '5' untuk 3.3V atau 5V.

Pin ini membolehkan anda menghantar kuasa secara langsung ke peranti tanpa memerlukan mana-mana kod. Tidak ada cara untuk mematikannya sama ada.

Terdapat 2 rel kuasa - 3.3 volt dan 5 volt. Mengikut artikel ini, kereta api 3.3V adalah terhad kepada lukisan semasa 50mA, manakala rel 5V boleh memberikan apa sahaja kapasiti semasa yang tersisa daripada bekalan kuasa anda selepas Pi telah mengambil apa yang diperlukan.

Warna coklat yang tercerah adalah pin tanah (GND). Pin ini betul-betul apa yang mereka katakan - pin tanah - yang merupakan bahagian penting dari mana-mana projek elektronik.

(PIN GPIO 5V adalah nombor fizikal 2 dan 4. 3.3V PIN GPIO adalah nombor fizikal 1 dan 17. PIN GPIO tanah adalah nombor fizikal 6, 9, 14, 20, 25, 30, 34 dan 39)

04 dari 09

Pins Input / Output

Patch Input dan Output membolehkan anda menyambung perkakasan seperti sensor dan suis. Richard Saville

Pin hijau adalah apa yang saya panggil 'generik' input / output pin. Ini boleh dengan mudah digunakan sebagai input atau output tanpa sebarang kebimbangan mengenai pertembungan dengan fungsi lain seperti I2C, SPI atau UART.

Ini adalah pin yang boleh menghantar kuasa kepada LED, buzzer, atau komponen lain, atau digunakan sebagai input untuk membaca sensor, suis atau peranti input lain.

Kuasa output pin ini adalah 3.3V. Setiap pin tidak boleh melebihi 16mA semasa, sama ada tenggelam atau penyumberan, dan keseluruhan set pin GPIO tidak boleh melebihi lebih daripada 50mA pada satu-satu masa. Ini boleh menjadi ketat, jadi anda mungkin perlu kreatif dalam projek-projek tertentu.

(PIN GPIO generik adalah nombor fizikal 7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32, 33, 35, 36, 37, 38 dan 40)

05 dari 09

I2C Pins

I2C membolehkan anda menyambung peranti lain ke Pi anda dengan hanya beberapa pin. Richard Saville

Dalam kuning, kami mempunyai pin I2C. I2C adalah protokol komunikasi yang dalam istilah mudah membolehkan peranti untuk berkomunikasi dengan Raspberry Pi. Pin ini juga boleh digunakan sebagai 'generik' pin GPIO.

Satu contoh yang baik untuk menggunakan I2C adalah cip expander MCP23017 yang sangat popular, yang boleh memberikan lebih banyak input / output pin melalui protokol I2C ini.

(Pin GP I2C adalah nombor pin fizikal 3 dan 5)

06 dari 09

UART (Siri) Pin

Sambungkan ke Pi anda melalui sambungan siri dengan pin UART. Richard Saville

Dalam warna kelabu, adalah pin UART. Pin ini adalah satu lagi protokol komunikasi yang menawarkan sambungan bersiri, dan juga boleh digunakan sebagai input 'generik' GPIO / output juga.

Penggunaan kegemaran saya untuk UART adalah untuk membolehkan sambungan siri dari Pi saya ke komputer riba saya melalui USB. Ini boleh dicapai dengan menggunakan papan tambahan atau kabel mudah dan menghapuskan keperluan untuk skrin atau sambungan internet untuk mengakses Pi anda.

(Pin UART GPIO ialah nombor pin fizikal 8 dan 10)

07 dari 09

Pins SPI

SPI Pins - satu lagi protokol komunikasi berguna. Richard Saville

Dalam warna merah jambu , kami mempunyai pin SPI. SPI ialah bas antara muka yang menghantar data antara Pi dan perkakasan / perkakasan lain. Ia biasanya digunakan untuk menghidupkan peranti seperti matriks LED atau paparan.

Seperti yang lain, pin ini juga boleh digunakan sebagai 'generik' input / output GPIO juga.

(PIN SPI GPIO ialah nombor pin fizikal 19, 21, 23, 24 dan 26)

08 dari 09

DNC Pins

Tiada apa-apa untuk dilihat di sini - pin DNC tidak berfungsi. Richard Saville

Akhirnya dua pin berwarna biru yang, pada masa ini, dilabel sebagai DNC yang bermaksud 'Jangan Sambung'. Ini mungkin berubah pada masa akan datang jika Yayasan Raspberry Pi mengubah papan / perisian.

(PIN GPN DNC adalah nombor pin fizikal 27 dan 28)

09 dari 09

Konvensyen Penomboran GPIO

Portsplus adalah alat yang berguna untuk memeriksa nombor pin GPIO. Richard Saville

Apabila pengekodan dengan GPIO, anda mempunyai pilihan untuk mengimport perpustakaan GPIO dalam satu daripada dua cara - BCM atau LEMBAGA.

Pilihan yang saya suka ialah GPIO BCM. Inilah konvensyen penomoran Broadcom dan saya dapati ia digunakan lebih umum merentas projek dan perkakasan tambahan.

Pilihan kedua ialah GPIO BOARD. Kaedah ini menggunakan nombor pin fizikal, yang berguna apabila mengira pin, tetapi anda akan mendapati ia kurang digunakan dalam contoh projek.

Mod GPIO ditetapkan semasa mengimport perpustakaan GPIO:

Untuk import sebagai BCM:

import RPi.GPIO sebagai GPIO GPIO.setmode (GPIO.BCM)

Untuk mengimport sebagai LEMBAGA:

import RPi.GPIO sebagai GPIO GPIO.setmode (GPIO.BOARD)

Kedua-dua kaedah ini melakukan tugas yang sama, itu hanya soal penentuan nombor.

Saya kerap menggunakan papan label GPIO yang berguna seperti RasPiO Portsplus (gambar) untuk memeriksa pin saya yang menghubungkan wayar juga. Satu pihak menunjukkan konvensyen penomboran BCM, yang lain menunjukkan LEMBAGA - jadi anda dilindungi untuk sebarang projek yang anda cari.