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. Menjelang Siri Tutorial Raspberry Pi ini, anda akan dapat membuat projek berprofil tinggi sendiri. Baca tutorial di bawah:
- Bermula dengan Raspberry Pi
- Konfigurasi Pi Raspberry
- LED Berkelip
- Memadankan Butang Raspberry Pi
- Generasi Raspberry Pi PWM
- Mengawal Motor DC menggunakan Raspberry Pi
Dalam tutorial ini, kita akan Mengawal Kelajuan Motor Stepper menggunakan Raspberry Pi. Dalam Stepper Motor, seperti namanya sendiri, putaran poros adalah dalam bentuk Step. Terdapat pelbagai jenis Stepper Motor; di sini kita akan menggunakan yang paling popular iaitu Unipolar Stepper Motor. Tidak seperti motor DC, kita dapat memutar motor stepper ke sudut tertentu dengan memberikan arahan yang betul.
Untuk memutar Motor Tahap Stepper Empat ini, kami akan memberikan denyutan kuasa dengan menggunakan Litar Pemandu Motor Stepper. Litar pemacu mengambil pencetus logik dari PI. Sekiranya kita mengawal pencetus logik, kita mengawal denyutan kuasa dan dengan itu kelajuan motor stepper.
Terdapat 40 pin output GPIO di Raspberry Pi 2. Tetapi daripada 40, hanya 26 pin GPIO (GPIO2 hingga GPIO27) yang dapat diprogramkan. Sebilangan pin ini menjalankan beberapa fungsi khas. Dengan GPIO khas, kita hanya tinggal 17 GPIO. Setiap pin GPIO 17 ini dapat menghasilkan arus maksimum 15mA. Dan jumlah arus dari semua Pin GPIO tidak boleh melebihi 50mA. Untuk mengetahui lebih lanjut mengenai pin GPIO, baca: LED Berkedip dengan Raspberry Pi
Terdapat pin output kuasa + 5V (Pin 2 & 4) dan + 3.3V (Pin 1 & 17) di papan untuk menyambungkan modul dan sensor lain. Rel kuasa ini tidak dapat digunakan untuk menggerakkan Motor Stepper, kerana kita memerlukan lebih banyak tenaga untuk memutarnya. Oleh itu, kita harus menyampaikan kuasa ke Stepper Motor dari sumber kuasa lain. Motor stepper saya mempunyai nilai voltan 9V jadi saya menggunakan bateri 9v sebagai sumber kuasa kedua saya. Cari nombor model motor stepper anda untuk mengetahui penarafan voltan. Bergantung pada penilaian memilih sumber sekunder dengan tepat.
Seperti yang dinyatakan sebelum ini, kita memerlukan litar pemandu untuk menggerakkan Motor Stepper. Kami juga akan merancang Litar Pemandu Transistor Sederhana di sini.
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Ω Resistor (3)
- Motor Stepper
- Butang (2)
- Transistor 2N2222 (4)
- 1N4007 Diod (4)
- Kapasitor- 1000uF
- Papan Roti
Penjelasan Litar:
Motor stepper menggunakan 200 langkah untuk menyelesaikan putaran 360 darjah, bermaksud putarannya 1.8 darjah setiap langkah. Oleh kerana kita menggerakkan Four Stage Stepper Motor, jadi kita perlu memberikan empat denyutan untuk menyelesaikan satu kitaran logik. Setiap langkah motor ini menyelesaikan putaran 1.8 darjah, jadi untuk menyelesaikan kitaran, kita memerlukan 200 denyutan. Jadi 200/4 = 50 kitaran logik diperlukan untuk menyelesaikan satu putaran. Periksa ini untuk mengetahui lebih lanjut mengenai Steppers Motors dan Mod Pemanduannya.
Kami akan menggerakkan setiap empat gegelung ini dengan transistor NPN (2N2222), transistor NPN ini mengambil nadi logik dari PI dan menggerakkan gegelung yang sesuai. Empat transistor mengambil empat logik dari PI untuk menggerakkan empat tahap motor stepper.
Litar pemacu transistor adalah persediaan yang sukar; di sini kita harus memberi perhatian bahawa penyambungan transistor secara salah boleh memuatkan papan dengan teruk dan merosakkannya. Periksa ini untuk memahami Litar Pemandu Motor Stepper dengan betul.
Motor adalah aruhan dan oleh itu semasa menghidupkan motor, kita mengalami lonjakan induktif. Spiking ini akan memanaskan transistor dengan kuat, jadi kita akan menggunakan Diode (1N4007) untuk memberikan perlindungan kepada transistor terhadap Inductive Spiking.
Untuk mengurangkan turun naik voltan, kita akan menyambungkan kapasitor 1000uF di seluruh bekalan kuasa seperti yang ditunjukkan dalam Rajah Litar.
Penjelasan Kerja:
Setelah semuanya disambungkan mengikut rajah litar, kita dapat menghidupkan PI untuk menulis program dalam PYHTON.
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. Seperti 'PIN 35' di papan 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 empat pin GPIO sebagai output untuk menggerakkan empat gegelung motor stepper.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
Kami menetapkan GPIO26 dan GPIO19 sebagai pin input. Kami akan mengesan penekanan butang dengan pin ini.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
Sekiranya keadaan di pendakap itu benar, pernyataan di dalam gelung akan dilaksanakan sekali. Oleh itu, jika pin GPIO 26 menjadi rendah, maka penyataan di dalam gelung IF akan dilaksanakan sekali. Sekiranya pin GPIO 26 tidak rendah, maka pernyataan di dalam gelung IF tidak akan dilaksanakan.
jika (IO.input (26) == Salah):
Perintah ini menjalankan gelung 100 kali, x bertambah dari 0 hingga 99.
untuk julat x (100):
Manakala 1: digunakan untuk infinity loop. Dengan perintah ini, pernyataan di dalam gelung ini akan dilaksanakan secara berterusan.
Kami mempunyai semua arahan yang diperlukan untuk mencapai Speed Control Motor Stepper dengan ini.
Setelah menulis program dan melaksanakannya, yang tinggal hanyalah mengendalikan kawalan. Kami mempunyai dua butang yang disambungkan ke PI. Satu untuk menambah kelewatan antara empat denyutan dan yang lain untuk mengurangkan kelewatan antara empat denyutan. Kelewatan itu sendiri bercakap mengenai kepantasan; jika kelewatan lebih tinggi motor mengambil brek antara setiap langkah dan putarannya perlahan. Sekiranya kelewatan mendekati sifar, maka motor berputar pada kelajuan maksimum.
Di sini harus diingat bahawa, mesti ada sedikit kelewatan antara denyutan. Setelah memberi nadi, motor stepper memerlukan beberapa milisaat masa untuk sampai ke peringkat akhir. Sekiranya tidak ada kelewatan yang diberikan di antara nadi, motor stepper tidak akan bergerak sama sekali. Biasanya kelewatan 50ms adalah baik di antara denyutan. Untuk maklumat yang lebih tepat, lihat lembaran data.
Oleh itu dengan dua butang kita dapat mengawal kelewatan, yang pada gilirannya mengawal kelajuan motor stepper.