Kontrol servo SG90 tanpa mikrokontroler


Terperangkap di tangan servo SG90 murah yang populer. Dan saya berpikir untuk mengelolanya, tetapi tanpa mikrokontroler. Pada artikel ini, saya akan menguraikan pola pikir pengembang ketika menerapkan salah satu opsi solusi.

Siapa yang peduli, tolong, di bawah kucing.

Ide


Diperlukan untuk mengontrol servo, tetapi tanpa mikrokontroler.

Pengetahuan


Semua orang tahu bahwa pengalaman dan pengetahuan membantu menciptakan dan menemukan solusi. Ada banyak contoh penggunaan drive servo dengan penggunaan controller di halaman Gicktime. Mereka menjelaskan secara rinci tentang sistem kontrol servo. Kami akan mengambil pengalaman pengembang lain ini untuk pengetahuan yang kami butuhkan untuk menyelesaikan masalah. Drive servo SG90 dikendalikan oleh sinyal PWM yang parameternya menentukan posisi rotor. Periode PWM adalah sekitar 20 ms, durasi sinyal kontrol adalah dari 500 hingga 2100 μS.

Tantangan


Ide dan pengetahuan memunculkan masalah yang harus dipecahkan. Kami merumuskan masalah untuk realisasi ide. Ini mirip dengan Kerangka Acuan. Tampaknya semuanya sederhana, Anda perlu mengambil generator pulsa dengan siklus tugas variabel, menghubungkan daya ke drive servo, dan menerapkan sinyal kontrol dari generator. Kami menekankan bahwa ada perubahan dalam siklus tugas dalam persyaratan - yaitu, harus ada kontrol atau antarmuka pengguna.

Implementasi


Di sinilah penderitaan kreativitas dimulai: apa yang harus diambil dan ke mana mendapatkannya? Anda dapat menemukan generator pulsa laboratorium yang sudah jadi, misalnya, G5-54 dengan pegangan, tombol, mengatur parameter yang diperlukan, menghubungkan generator ke drive servo. Namun, itu rumit dan tidak semua orang bisa mendapatkan kemewahan seperti itu. Oleh karena itu, pengembang, dengan mengandalkan pengalaman dan pengetahuan mereka, mencoba untuk menggabungkan keinginan (ide-tugas) dan peluang (materi dan kreatif) untuk pelaksanaan tugas. Kemungkinan material adalah "kodok" itu"Berapa banyak dan apa yang ingin saya habiskan untuk mengimplementasikan sebuah ide?" Kreativitas adalah, "Saya akan melihat apa yang sudah saya miliki." Ini belum tentu beberapa nilai material, tetapi pengalaman dan pengetahuan tentang perkembangan sebelumnya yang dapat disesuaikan dengan implementasi. Juga, tidak akan berlebihan untuk mencari (google) bahwa seseorang telah menerapkan sesuatu yang serupa. Untuk mengurangi opsi solusi, Anda sendiri perlu menambahkan persyaratan tambahan yang membatasi fantasi implementasi. Sebagai contoh, kami menambahkan satu syarat lagi untuk persyaratan, biarkan itu menjadi batasan materi, pelaksanaannya harus murah .

Cari alternatif


Menggunakan Internet, kami mencari opsi yang ditawarkan jaringan. Kami menetapkan dalam pencarian: "generator pulsa persegi panjang dengan siklus tugas variabel". Kami akan mendapatkan banyak opsi, baik dengan menggunakan timer terintegrasi NE555 (analog domestik KR1006VI1), dan pada sirkuit logika. Dari semua variasi, saya memilih opsi generator pada inverter dengan pemicu Schmitt pada input. Pertama, ini adalah yang paling sederhana, dan kedua, ini membutuhkan minimum detail dan yang paling menarik menggunakan elemen logis tunggal dari enam, jika, misalnya, Anda menggunakan chip 74HC14.

Sirkuit generator seperti ini terlihat seperti ini:


Sedikit teori


Teori mengatakan bahwa frekuensi generator tersebut adalah f = 1 / T = 1 / (0,8 * R * C). Untuk mendapatkan frekuensi yang diperlukan, Anda harus memilih nilai nominal dari salah satu elemen yang menentukan frekuensi. Karena elemen logika dibuat sesuai dengan teknologi CMOS, ia memiliki impedansi input yang besar, oleh karena itu, elemen yang menentukan arus operasi kecil dapat digunakan. Kami memilih kapasitansi C1 dari sejumlah denominasi umum, misalnya 0,47 μF. Kemudian, untuk mendapatkan frekuensi yang diperlukan (50Hz), resistor harus sekitar 53 kOhm, tetapi tidak ada resistor seperti itu dalam seri standar, jadi kami memilih 51 kOhm.


Sinyal yang dekat dengan berliku-liku dihasilkan pada output generator seperti itu, jadi kita perlu menyesuaikan sirkuit sehingga memenuhi persyaratan tugas. Untuk mendapatkan durasi pulsa yang dapat disesuaikan pada output, perlu untuk mengubah mode pengisian kapasitor dari level tinggi pada output, yaitu, untuk mengurangi waktu pengisian. Untuk melakukan ini, tambahkan dua elemen lagi ke sirkuit: dioda dan resistor variabel. Setiap dioda switching berdaya rendah cocok.

Maka sirkuit akan mengambil bentuk berikut:


Tampaknya: semuanya, masalahnya terpecahkan, tetapi dalam posisi ekstrim dari variabel resistor perilaku servo tidak stabil. Hal ini disebabkan oleh fakta bahwa nilai durasi pulsa, pada posisi ekstrim resistor variabel, tidak sesuai dengan yang diperlukan. Secara pribadi, saya juga tidak suka menggunakan resistor variabel, jadi saya ingin mengubah antarmuka kontrol dengan menambahkan Wishlist ke ketentuan referensi, misalnya, sehingga siklus tugas berubah tergantung pada cahaya. Ada solusi sederhana dan murah untuk ini: terapkan photoresistor GL55xx (digunakan dalam proyek Arduino) sebagai elemen pengatur, perubahan resistansi yang terletak pada rentang yang luas.

Kemudian kesenangan dimulai. Tidak ada rumus perhitungan untuk mendapatkan nilai resistansi yang menyediakan durasi pulsa yang diperlukan, oleh karena itu, pada tingkat intuisi (secara eksperimental, menggunakan resistor variabel), kami menentukan nilai resistansi di mana nilai-nilai yang diperlukan dari durasi pulsa diatur. Kemudian kita mengubah sirkuit sehingga ketika resistansi photoresistor berubah, resistansi total berubah, mengatur nilai yang diperlukan dari durasi pulsa.

Skema terakhir mengambil bentuk berikut:


Penjelasan untuk garis besar akhir


Kapasitor C1 dengan nilai nominal 0,47 μF menentukan waktu pengisian ulang. Resistor 51 kΩ R1 menetapkan kecepatan pengulangan pulsa dasar di wilayah 50 Hz. Kombinasi resistor R2-R4 total akan bervariasi dalam kisaran dari 2,5 kOhm hingga 24 kOhm tergantung pada iluminasi. Bersama dengan dioda D1, resistor ini akan memengaruhi waktu pengisian kapasitor C1 di bawah aksi pulsa positif pada keluaran elemen logika, dengan demikian menentukan durasinya.

Hasil


Dengan menghubungkan generator ini ke input kontrol drive servo, kita akan dapat mengendalikannya dengan mengubah iluminasi photoresistor. Di video, Anda dapat melihat apa yang dihasilkannya:



Itu saja, tapi saya bisa menawarkan pengembangan pengembangan ini. Karena kami hanya menggunakan satu dari enam elemen logika yang termasuk dalam rumah sirkuit mikro, kami dapat mengumpulkan lima generator lain dan menghubungkannya ke servos lain. Dengan menghubungkan flaps ke tuas penggerak servos, yang akan memblokir fluks bercahaya dari fotoresistor yang mengendalikan servos lain, Anda bisa mendapatkan perilaku lucu dari servos, tetapi saya mengusulkan untuk melakukan percobaan ini sendiri.

Pergi untuk itu dan semoga berhasil!

Source: https://habr.com/ru/post/id400631/


All Articles