Awal tahun ini anda mendapat lawatan ke GPIO Raspberry Pi dan juga mengesyorkan papan pelayaran yang sangat berguna untuk mengenal pasti nombor pin. Hari ini kami meneruskan tema itu dan mula menggunakan pin ini digabungkan dengan kod dan perkakasan.
GPIO adalah bagaimana Raspberry Pi berbincang dengan dunia luar - "perkara sebenar" - menggunakan kod untuk memprogram isyarat dan tegasan ke dan dari header header 40-pin.
Pengekodan dengan GPIO cukup mudah untuk dimulakan, terutamanya untuk projek pemula seperti LED dan buzzer. Dengan hanya beberapa komponen dan beberapa baris kod anda boleh menyala atau memancarkan LED sebagai sebahagian daripada projek anda.
Artikel ini akan menunjukkan kepada anda apa yang anda perlukan untuk menyalakan LED menggunakan kod Python pada Raspberry Pi anda, menggunakan kaedah 'RPi.GPIO' tradisional.
01 04
Apa yang anda perlukan
Berikut adalah senarai semua yang anda perlukan untuk projek starter kecil ini. Anda harus dapat mencari item ini di kedai pembuat kegemaran anda atau laman lelongan dalam talian.
- Workstation Raspberry Pi yang menjalankan Raspbian (Pi, skrin, papan kekunci, tetikus, kuasa, kad SD - semua yang berkaitan)
- Papan kecil kecil
- A 5mm LED
- Perintang 330 ohm
- 2 lelaki kepada wayar jumper wanita
02 04
Buat Litar - Langkah 1
Kami akan menggunakan 2 pin GPIO untuk projek ini, pin tanah (pin fizikal) untuk kaki tanah LED, dan PIN GPIO generik (GPIO 21, pin fizikal 40) untuk memacu LED - tetapi hanya apabila kami membuat keputusan - yang mana kodnya masuk.
Pertama, matikan Raspberry Pi anda. Sekarang, dengan menggunakan wayar jumper, hubungkan pin tanah ke lorong di papan roti anda. Seterusnya buat yang sama untuk PIN GPIO, menyambung ke lorong yang berbeza.
03 dari 04
Buat Litar - Langkah 2
Seterusnya kita menambah LED dan perintang ke litar.
LED mempunyai polariti - bermakna mereka perlu kabel dengan cara tertentu. Mereka biasanya mempunyai satu kaki lagi iaitu kaki anod (positif), dan biasanya pinggiran rata pada kepala plastik LED yang menandakan kaki katod (negatif).
Perintang digunakan untuk melindungi kedua-dua LED daripada menerima terlalu banyak arus, dan pin GPIO dari 'memberi' terlalu banyak - yang boleh merosakkan kedua-duanya.
Terdapat sedikit penarafan perintang generik untuk LED standard - 330ohm. Terdapat beberapa matematik di belakangnya, tetapi sekarang mari kita memberi tumpuan kepada projek - anda sentiasa boleh melihat ke dalam hukum ohm dan topik yang berkaitan selepas itu.
Sambungkan satu kaki perintang ke lorong GND pada papan roti anda, dan kaki perintang lain ke lorong yang disambungkan ke kaki yang lebih pendek dari LED anda.
Kaki yang lebih panjang daripada LED sekarang perlu menyertai lorong yang disambungkan ke pin GPIO.
04 04
Kod GPIO Python (RPi.GPIO)
Pada masa ini, kami mempunyai litar berwayar dan bersedia untuk pergi, tetapi kami belum memberitahu PIN GPIO kami untuk menghantar apa-apa kuasa lagi, jadi LED anda tidak seharusnya dinyalakan.
Mari buat fail Python untuk memberitahu PIN GPIO kami untuk menghantar beberapa kuasa selama 5 saat dan kemudian berhenti. Versi terbaru Raspbian akan mempunyai perpustakaan GPIO necassary yang telah dipasang.
Buka tetingkap terminal dan buat skrip Python baru dengan memasukkan arahan berikut:
sudo nano led1.pyIni akan membuka fail kosong untuk memasukkan kod kami. Masukkan garisan di bawah:
#! / usr / bin / python # Mengimport perpustakaan yang kami perlukan impor RPi.GPIO sebagai masa import GPIO # Tetapkan GPIO mode GPIO.setmode (GPIO.BCM) # Tetapkan LED GPIO number = 21 # Tetapkan PIN GPIO LED sebagai output GPIO.setup (LED, GPIO.OUT) # Putar pin GPIO di GPIO.output (LED, Benar) # Tunggu 5 detik time.sleep (5) # Matikan PIN GPIO.output (LED, Palsu)Tekan Ctrl + X untuk menyimpan fail. Untuk menjalankan fail tersebut, masukkan arahan berikut di terminal dan tekan enter:
sudo python led1.pyLED perlu menyala selama 5 saat kemudian mematikan, mengakhiri program.
Mengapa tidak cuba menukar nombor 'time.sleep' untuk menyalakan LED untuk masa berlainan, atau cuba ubah 'GPIO.output (LED, Benar)' ke 'GPIO.output (LED, Palsu)' dan lihat apa yang berlaku?