- PWM (Modulasi Lebar Pulsa):
- Motor Servo dan PWM:
- Komponen yang Dibutuhkan:
- Diagram Sirkuit:
- Penjelasan Bekerja dan Pemrograman:
Raspberry Pi adalah papan berbasis prosesor arsitektur ARM yang dirancang untuk insinyur elektronik dan penghobi. PI adalah salah satu platform pengembangan proyek paling tepercaya saat ini. Dengan kecepatan prosesor yang lebih tinggi dan RAM 1 GB, PI dapat digunakan untuk banyak proyek profil tinggi seperti Pemrosesan gambar dan Internet of Things.
Untuk melakukan salah satu proyek profil tinggi, seseorang perlu memahami fungsi dasar PI. Kami akan membahas semua fungsi dasar Raspberry Pi dalam tutorial ini. Dalam setiap tutorial kita akan membahas salah satu fungsi PI. Pada akhir Seri Tutorial Raspberry Pi ini, Anda akan dapat melakukan proyek profil tinggi sendiri. Pergi melalui tutorial di bawah ini:
- Memulai dengan Raspberry Pi
- Konfigurasi Raspberry Pi
- LED Blinky
- Antarmuka Tombol Raspberry Pi
- Generasi Raspberry Pi PWM
- Mengontrol Motor DC menggunakan Raspberry Pi
- Kontrol Motor Stepper dengan Raspberry Pi
- Interfacing Shift Register dengan Raspberry Pi
- Tutorial ADC Raspberry Pi
Dalam tutorial ini kita akan Mengontrol Motor Servo dengan Raspberry Pi. Sebelum ke servo mari kita bahas PWM karena konsep pengendalian Servo Motor berasal darinya.
PWM (Modulasi Lebar Pulsa):
Kami sebelumnya telah berbicara tentang PWM berkali-kali di: Modulasi lebar pulsa dengan ATmega32, PWM dengan Arduino Uno, PWM dengan IC timer 555 dan PWM dengan Arduino Due. PWM adalah singkatan dari 'Pulse Width Modulation'. PWM adalah metode yang digunakan untuk mendapatkan tegangan variabel dari catu daya yang stabil. Untuk lebih memahami PWM pertimbangkan rangkaian di bawah ini,
Pada gambar di atas, jika sakelar ditutup terus menerus selama periode waktu tertentu, LED akan 'ON' selama ini terus menerus. Jika sakelar ditutup selama setengah detik dan dibuka untuk setengah detik berikutnya, maka LED hanya akan ON di paruh pertama kedua. Sekarang proporsi LED AKTIF selama total waktu disebut Siklus Tugas, dan dapat dihitung sebagai berikut:
Duty Cycle = Turn ON time / (Turn ON time + Turn OFF time)
Siklus Tugas = (0,5 / (0,5 + 0,5)) = 50%
Jadi tegangan keluaran rata-rata akan menjadi 50% dari tegangan baterai.
Saat kami meningkatkan kecepatan ON dan OFF ke tingkat, kami akan melihat LED redup alih-alih ON dan OFF. Ini karena mata kita tidak dapat menangkap frekuensi yang lebih tinggi dari 25Hz dengan jelas. Pertimbangkan siklus 100ms, LED MATI selama 30mdetik dan ON selama 70mdetik. Kami akan memiliki 70% tegangan stabil pada output, jadi LED akan menyala terus menerus dengan intensitas 70%.
Rasio Tugas berubah dari 0 menjadi 100. '0' berarti MATI sepenuhnya dan '100' sepenuhnya AKTIF. Rasio Tugas ini sangat penting untuk Motor Servo. Posisi Motor Servo ditentukan oleh Rasio Tugas ini. Periksa ini untuk demonstrasi PWM dengan LED dan Raspberry Pi.
Motor Servo dan PWM:
Motor Servo adalah kombinasi dari motor DC, sistem kendali posisi dan roda gigi. Servos memiliki banyak aplikasi di dunia modern dan dengan itu, mereka tersedia dalam berbagai bentuk dan ukuran. Kami akan menggunakan SG90 Servo Motor dalam tutorial ini, ini adalah salah satu yang populer dan termurah. SG90 adalah servo 180 derajat. Jadi dengan servo ini kita bisa memposisikan sumbu dari 0-180 derajat.
Motor Servo terutama memiliki tiga kabel, satu untuk tegangan positif, yang lain untuk ground dan yang terakhir untuk pengaturan posisi. The kawat Red terhubung ke listrik, kawat Brown terhubung ke tanah dan kuning kawat (atau PUTIH) terhubung ke sinyal.
Dalam servo, kami memiliki sistem kontrol yang mengambil sinyal PWM dari pin Signal. Ini menerjemahkan sinyal dan mendapatkan rasio tugas darinya. Setelah itu, ia membandingkan rasio dengan nilai posisi yang telah ditentukan sebelumnya. Jika ada perbedaan nilai, itu menyesuaikan posisi servo yang sesuai. Jadi posisi sumbu motor servo didasarkan pada rasio tugas sinyal PWM pada pin Signal.
Frekuensi sinyal PWM (Pulse Width Modulated) dapat berbeda-beda berdasarkan jenis motor servo. Untuk SG90 frekuensi sinyal PWM adalah 50Hz. Untuk mengetahui frekuensi operasi servo Anda, periksa Lembar Data untuk model tertentu itu. Jadi, setelah frekuensi dipilih, hal penting lainnya di sini adalah RASIO TUGAS dari sinyal PWM.
Tabel di bawah ini menunjukkan Posisi Servo untuk Rasio Tugas tersebut. Anda bisa mendapatkan sudut apa pun di antaranya dengan memilih nilai yang sesuai. Jadi untuk servo 45º, Duty Ratio harus '5' atau 5%.
POSISI |
RASIO TUGAS |
0º |
2.5 |
90º |
7.5 |
180º |
12.5 |
Sebelum Menghubungkan Servo Motor ke Raspberry Pi, Anda dapat menguji servo Anda dengan bantuan Rangkaian Penguji Motor Servo ini. Juga periksa proyek Servo kami di bawah ini:
- Kontrol Motor Servo menggunakan Arduino
- Kontrol Motor Servo dengan Arduino Due
- Antarmuka Motor Servo dengan Mikrokontroler 8051
- Kontrol Motor Servo menggunakan MATLAB
- Kontrol Motor Servo dengan Sensor Fleksibel
- Kontrol Posisi Servo dengan Berat (Sensor Gaya)
Komponen yang Dibutuhkan:
Di sini kami menggunakan Raspberry Pi 2 Model B dengan Raspbian Jessie OS. Semua persyaratan dasar Perangkat Keras dan Perangkat Lunak telah dibahas sebelumnya, Anda dapat mencarinya di Pengenalan Raspberry Pi, selain itu yang kami butuhkan:
- Menghubungkan pin
- Kapasitor 1000uF
- SG90 Servo Motor
- Papan tempat memotong roti
Diagram Sirkuit:
A1000µF harus dihubungkan melintasi power rail + 5V jika tidak PI mungkin mati secara acak saat mengendalikan servo.
Penjelasan Bekerja dan Pemrograman:
Setelah semuanya terhubung sesuai diagram rangkaian, kita dapat MENGAKTIFKAN PI untuk menulis program di PYHTON.
Kami akan berbicara tentang beberapa perintah yang akan kami gunakan dalam program PYHTON, Kami akan mengimpor file GPIO dari perpustakaan, fungsi di bawah ini memungkinkan kami untuk memprogram pin GPIO PI. Kami juga mengganti nama "GPIO" menjadi "IO", jadi dalam program kapan pun kami ingin merujuk ke pin GPIO, kami akan menggunakan kata 'IO'.
impor RPi.GPIO sebagai IO
Terkadang, ketika pin GPIO, yang kami coba gunakan, mungkin melakukan beberapa fungsi lain. Dalam hal ini, kami akan menerima peringatan saat menjalankan program. Perintah di bawah ini memberi tahu PI untuk mengabaikan peringatan dan melanjutkan program.
IO.setwarnings (Salah)
Kita dapat merujuk pin GPIO PI, baik dengan nomor pin di papan atau dengan nomor fungsinya. Seperti 'PIN 29' di papan tulis adalah 'GPIO5'. Jadi kami beri tahu di sini apakah kami akan mewakili pin di sini dengan '29' atau '5'.
IO.setmode (IO.BCM)
Kami mengatur PIN39 atau GPIO19 sebagai pin keluaran. Kami akan mendapatkan output PWM dari pin ini.
IO.setup (19, IO.OUT)
Setelah mengatur pin keluaran, kita perlu mengatur pin sebagai pin keluaran PWM, p = IO.PWM (saluran keluaran, frekuensi sinyal PWM)
Perintah di atas adalah untuk mengatur saluran dan juga untuk mengatur frekuensi Saluran ”. 'p' di sini adalah variabel itu bisa apa saja. Kami menggunakan GPIO19 sebagai PWM “Saluran keluaran. "Frekuensi sinyal PWM" kami akan memilih 50, karena frekuensi kerja SG90 adalah 50Hz.
Perintah di bawah ini digunakan untuk memulai pembangkitan sinyal PWM. ' DUTYCYCLE ' adalah untuk mengatur rasio 'Turn On' seperti yang dijelaskan sebelumnya, p. mulai (TUGAS)
Perintah di bawah ini digunakan sebagai perulangan selamanya, dengan perintah ini pernyataan di dalam perulangan ini akan dijalankan terus menerus.
Sedangkan 1:
Di sini program untuk Mengontrol Servo menggunakan Raspberry Pi memberikan sinyal PWM di GPIO19. Rasio Tugas dari sinyal PWM diubah antara tiga nilai selama tiga detik. Jadi untuk setiap detik Servo berputar ke posisi yang ditentukan oleh Rasio Tugas. Servo terus berputar ke 0º, 90º dan 180º dalam tiga detik.