Anda tidak menyebutkan sistem operasi, seperti Milliways Saya akan menganggap Anda maksud Raspbian atau GNU / Linux lainnya. Windows IoT akan terpisah.
Semua pustaka python adalah pembungkus pada pustaka C, yang tidak biasa. Menciptakan perpustakaan dari awal dalam sesuatu selain C akan menjadi. Ada tiga:
Ini sudah ada setidaknya beberapa tahun dan secara aktif dipertahankan (misalnya, versi terakhir libbcm2835 adalah 3-4 bulan yang lalu).
Namun, Anda tidak perlu pustaka tergantung pada apa yang ingin Anda lakukan. Seperti disebutkan di sana, selain antarmuka sysfs untuk hal-hal dasar, ada antarmuka tingkat C userland portabel untuk I2C dan SPI yang menggunakan driver kernel. Ini hanya meninggalkan PWM - untuk mengakses dan menggunakan saluran perangkat keras yang Anda butuhkan untuk menggunakan salah satu dari tiga perpustakaan itu. Atau, seperti yang disebutkan joan dalam komentar pada pertanyaan lain itu, jika Anda mencoba menghitung pulsa yang sangat cepat (saya akan bereksperimen dengan beberapa metode dalam kasus itu).
Saya belum mencoba setiap kombinasi, tetapi anggap pi perpustakaan tertentu dikodekan dengan baik, Anda harus dapat mencampur dan mencocokkannya dengan antarmuka portabel (mis., Gunakan API I2C biasa dan wiringPi untuk PWM) selama Anda menggunakannya untuk pin terpisah. Ini mungkin tampak pendekatan yang aneh, tetapi masuk akal jika Anda bekerja dengan kode modular dan ingin membuat bagian-bagian individu semudah mungkin. Misalnya, jika Anda ingin menulis antarmuka untuk sensor I2C, tempatkan di sekitar API driver kernel. Kemudian jika Anda ingin menggunakannya dalam program dengan PWM, gunakan salah satu dari tiga pustaka untuk PWM. Kode yang ditulis dengan pigpio / wiringPi / libbcm2835 hanya akan berfungsi pada Raspberry Pi; kode yang ditulis menggunakan API driver kernel akan bekerja pada sistem linux apa pun.