Saya menyiapkan beberapa Raspberry Pis untuk digunakan dalam demo kepada kolega, untuk memamerkan kemampuan Pi itu sendiri, dan beberapa add-on board yang tersedia.
Saya benar-benar ingin dapat mempertahankan satu skrip cron-job / start-up untuk semua demo yang mungkin saya atur, dan minta skrip itu mendeteksi apa HAT atau papan GPIO yang lebih lama dicolokkan, sehingga saya dapat memicu sebuah skrip / program demo yang sesuai.
Sebagai contoh,
- Jika SenseHAT terpasang, maka mulailah Labirin Sense HAT Marble secara otomatis
- Jika HAT Display-O-Tron terpasang, maka jalankan secara otomatis contoh menu
- Jika layar PiTFT terpasang, maka mulai otomatis tayangan slide foto
Apakah ada cara untuk menjalankan Python, sh atau yang serupa, untuk mendeteksi yang mana dari beberapa papan GPIO umum yang terhubung ke Pi?
Hal-hal yang saya pertimbangkan:
- Menggunakan informasi dari Pinout.xyz untuk mendeteksi pin yang digunakan, tetapi itu terdengar seperti banyak pekerjaan.
Perhatikan bahwa maksud saya adalah mendeteksi konfigurasi secara otomatis, tanpa perlu memasang keyboard, ssh in, atau serupa - karenanya keinginan untuk deteksi otomatis, dan mengapa sesuatu seperti mengatur variabel lingkungan tidak akan membantu.
Jawaban:
Setelah membaca komentar dan jawaban sebelumnya yang sangat membantu dari Steve Robillard dan Ghanima :
/ proc / device-tree / hat / product
Jika
/proc/device-tree/hat/product
ada, Anda memiliki HAT yang dilampirkan dan dimuat - dan file itu berisi nama HAT.Berikut adalah beberapa contoh keluaran:
Tampilan-o-Tron HAT
Nama dan konten semua file di
/proc/device-tree/hat/
dalam perangkat ini:Adafruit PiTFT Plus - 3,5 inci
Nama dan konten semua file di
/proc/device-tree/hat/
dalam perangkat ini:Pembaruan: 2018-05-17
Beberapa perangkat dipasarkan sebagai HAT tetapi tidak memiliki EEPROM dengan gumpalan data yang valid, dalam hal ini, tidak ada cara untuk mendeteksi tipe "HAT", karena tidak sesuai dengan spesifikasi HAT.
Pembaruan: 2020-01-07
Saya membuat repo github dengan skrip untuk mendapatkan data untuk HAT yang saya akses, dan untuk mencatat yang bukan benar-benar HAT:
https://github.com/claremacrae/raspi_hat_data
Permintaan tarik dipersilahkan - jalankan saja
copy_hat_data.sh
skrip dalam repo itu.sumber
/sys/firmware/devicetree/base/hat
jika ada topi terpasang ke RPi. Mana yang disarankan?Ripping off SteveRobillards komentar luar biasa:
Gunakan E2C IE HAT
The Raspberry Pi Blog poin untuk HAT spesifikasi untuk GitHub dimana kedua dokumentasi dan perangkat lunak (
eepromutils
) untuk manipulasi tersedia.README.md :
Informasi HAT tercermin dalam bagan perangkat
/proc/device-tree/hat
yang dapat dibaca dari ruang pengguna dengan salah satu cara yang disebutkan (python, sh, ...).Perhatikan bahwa tidak ada HAT bertumpuk * (per Blog Raspberry Pi ):
Jadi pada waktu tertentu hanya satu HAT akan terhubung, minta EEPROM-nya dibacakan, dan buat informasinya tersedia di bagan perangkat.
* Dimungkinkan untuk membuat topi yang dapat ditumpuk jika mereka memiliki tipe yang sama dan karenanya tidak memerlukan identifikasi ganda dan berbeda, mis. Adafruit 16-Channel PWM / Servo HAT untuk Raspberry Pi .
sumber