Raspberry Pi adalah papan berasaskan pemproses seni bina ARM yang direka untuk jurutera elektronik dan penggemar hobi. PI adalah salah satu platform pembangunan projek yang paling dipercayai di luar sana sekarang. Dengan kelajuan pemproses yang lebih tinggi dan RAM 1 GB, PI dapat digunakan untuk banyak projek berprofil tinggi seperti pemprosesan Imej dan Internet Perkara.
Untuk melakukan projek berprofil tinggi, seseorang perlu memahami fungsi asas PI. Kami akan merangkumi semua fungsi asas Raspberry Pi dalam tutorial ini. Dalam setiap tutorial kita akan membincangkan salah satu fungsi PI. Pada akhir siri tutorial, anda akan dapat membuat projek berprofil tinggi sendiri. Periksa ini untuk Bermula dengan Raspberry Pi dan Raspberry Pi Konfigurasi.
Kami telah membincangkan antara muka LED berkelip dan Butang dengan Raspberry Pi dalam tutorial sebelumnya. Dalam tutorial Raspberry Pi PWM ini kita akan membincangkan tentang mendapatkan output PWM dengan Raspberry Pi. PWM bermaksud ' Pulse Width Modulation '. PWM adalah kaedah yang digunakan untuk mendapatkan voltan berubah daripada bekalan kuasa berterusan. Kami akan menghasilkan isyarat PWM dari Raspberry PI dan menunjukkan PWM dengan mengubah Kecerahan LED, disambungkan ke Pi.
Modulasi Lebar Nadi:
Kami sebelum ini banyak kali bercakap mengenai PWM dalam: Modulasi lebar denyut dengan ATmega32, PWM dengan Arduino Uno, PWM dengan IC pemasa 555 dan PWM dengan Arduino Due.
Pada gambar di atas, jika suis ditutup secara berterusan dalam jangka masa tertentu, LED akan 'ON' selama waktu ini secara berterusan. Sekiranya suis ditutup selama setengah saat dan dibuka selama setengah saat berikutnya, maka LED akan menyala hanya pada separuh kedua pertama. Sekarang bahagian yang mana LEDnya AKTIF sepanjang masa disebut Duty Cycle, dan dapat dikira seperti berikut:
Duty Cycle = Hidupkan waktu / (Hidupkan waktu + Matikan masa)
Kitaran Tugas = (0.5 / (0.5 + 0.5)) = 50%
Jadi voltan keluaran purata adalah 50% daripada voltan bateri.
Ini berlaku selama satu saat dan kita dapat melihat LED mati selama setengah saat dan LED menyala setengah saat yang lain. Sekiranya Kekerapan waktu ON dan OFF meningkat dari '1 sesaat' menjadi '50 sesaat '. Mata manusia tidak dapat menangkap frekuensi ini. Untuk mata yang normal, LED akan kelihatan seperti bersinar dengan separuh dari kecerahan. Oleh itu, dengan pengurangan masa ON yang lebih lama, LED kelihatan lebih ringan.
Kami akan memprogram PI untuk mendapatkan PWM dan menyambungkan LED untuk menunjukkan kerjanya.
Terdapat 40 pin output GPIO di Raspberry Pi. Tetapi daripada 40, hanya 26 pin GPIO (GPIO2 hingga GPIO27) yang dapat diprogramkan. Untuk mengetahui lebih lanjut mengenai pin GPIO, lihat: LED Berkedip dengan Raspberry Pi
Komponen yang Diperlukan:
Di sini kita menggunakan Raspberry Pi 2 Model B dengan OS Raspbian Jessie. Semua keperluan asas Perkakasan dan Perisian dibincangkan sebelumnya, anda boleh mencarinya dalam Pengenalan Raspberry Pi, selain daripada yang kami perlukan:
- Pin penyambung
- 220Ω atau 1KΩ perintang
- LED
- Papan Roti
Penjelasan Litar:
Seperti yang ditunjukkan dalam rajah litar, kita akan menghubungkan LED antara PIN35 (GPIO19) dan PIN39 (ground). Seperti yang dinyatakan sebelumnya, kami tidak dapat menarik lebih daripada 15mA dari salah satu pin ini, jadi untuk mengehadkan arus, kami menyambungkan perintang 220Ω atau 1KΩ secara bersiri dengan LED.
Penjelasan Kerja:
Setelah semuanya disambungkan, kita dapat menghidupkan Raspberry Pi untuk menulis program dalam PYHTON dan melaksanakannya.
Kami akan membincangkan beberapa arahan yang akan kami gunakan dalam program PYHTON.
Kami akan mengimport fail GPIO dari perpustakaan, fungsi di bawah ini membolehkan kita memprogram pin GPIO PI. Kami juga mengganti nama menjadi "GPIO" menjadi "IO", jadi dalam program setiap kali kami ingin merujuk pada pin GPIO, kami akan menggunakan kata 'IO'.
import RPi.GPIO sebagai IO
Kadang-kadang, apabila pin GPIO, yang cuba kita gunakan, mungkin melakukan beberapa fungsi lain. Sekiranya demikian, kami akan menerima amaran semasa menjalankan program. Perintah di bawah ini memberitahu PI untuk mengabaikan amaran dan meneruskan program.
Peringatan IO (Salah)
Kita boleh merujuk pin GPIO PI, sama ada dengan nombor pin di papan atau dengan nombor fungsinya. Dalam gambarajah pin, anda dapat melihat 'PIN 35' di papan tulis adalah 'GPIO19'. Oleh itu, kami nyatakan di sini sama ada kami akan mewakili pin di sini dengan '35' atau '19'.
IO.setmode (IO.BCM)
Kami menetapkan GPIO19 (atau PIN35) sebagai pin output. Kami akan mendapat output PWM dari pin ini.
Persediaan IO (19, IO.IN)
Setelah menetapkan pin sebagai output, kita perlu mengatur pin sebagai pin output PWM, p = IO.PWM (saluran output, kekerapan isyarat PWM)
Perintah di atas adalah untuk mengatur saluran dan juga untuk mengatur frekuensi isyarat PWM. 'p' di sini adalah pemboleh ubah yang boleh menjadi apa sahaja. Kami menggunakan GPIO19 sebagai saluran output PWM. ' frekuensi isyarat PWM ' telah dipilih 100, kerana kita tidak mahu melihat LED berkelip.
Perintah di bawah ini digunakan untuk memulakan penjanaan isyarat PWM, ' DUTYCYCLE ' adalah untuk menetapkan nisbah Turn On, 0 bermaksud LED akan AKTIF selama 0% masa, 30 bermaksud LED akan AKTIF selama 30% dari waktu dan 100 bermaksud ON sepenuhnya.
p. memulakan (DUTYCYCLE)
Perintah ini menjalankan gelung 50 kali, x bertambah dari 0 hingga 49.
untuk julat x (50):
Manakala 1: digunakan untuk infinity loop. Dengan perintah ini, pernyataan di dalam gelung ini akan dilaksanakan secara berterusan.
Dengan program yang dijalankan, kitaran tugas isyarat PWM meningkat. Dan kemudian menurun setelah mencapai 100%. Dengan LED yang dipasang pada PIN ini, kecerahan LED meningkat terlebih dahulu dan kemudian berkurang.