DIY servo tester multi-channel

Halo

Seperti yang diumumkan di artikel sebelumnya tentang lineup , saya menyelesaikan pekerjaan pada proyek servo tester multi-channel dan saya siap untuk membagikan semua materi dengan komunitas. Itu bisa dibuat di rumah, tetapi saya memesan sejumlah papan dan sekarang penguji saya terlihat seperti ini:


Untuk apa ini?


Dalam elektronik hobi, sistem dengan kontrol sinyal PWM banyak digunakan. Ini adalah kereta pulsa dengan frekuensi 50 Hz. Informasi di dalamnya dikodekan dalam bentuk durasi pulsa, yang dapat bervariasi dari 0,8 hingga 2,3 ms. Nilai ekstrim rentang ini mungkin sedikit berbeda dari produsen ke produsen.



Penggerak servo untuk pembuatan model pesawat terbang, hexapod, manipulator, dll., Hanya menggunakan sinyal seperti itu. Sebagai aturan, mereka memiliki tiga kabel - kekuatan, umum dan sinyal. Juga, dalam pemodelan pesawat terbang, pemodelan mobil, dan pembangunan pesawat terbang, pengatur langkah kolektor dan motor tanpa sikat menggunakan sinyal kontrol yang sama yang menentukan kecepatan dan arah putaran mesin.

Sumber sinyal tersebut dapat berupa panel kontrol, pengontrol yang terprogram, atau semacamnya. Tetapi sangat sering pada tahap konstruksi lebih mudah untuk menggunakan servo tester, yang menghasilkan sinyal yang sama dalam mode manual. Ini memungkinkan Anda untuk mengecek kinerja mekanik, mengukur posisi ekstrem, dll.

Fitur dan karakteristik perangkat kami


Sebagian besar penguji yang dapat Anda beli sekarang sangat sederhana atau mahal. Saya ingin membuatnya semurah mungkin, tetapi pada saat yang sama memberikannya fungsi seluas mungkin. Inilah yang saya dapatkan:
  1. Enam saluran kontrol independen. Itu independen! Biasanya dalam keadaan siap Anda dapat menghubungkan beberapa mesin secara bersamaan, tetapi sinyalnya sama. Di perangkat saya, Anda bahkan dapat menjalankannya dalam mode otomatis, dan mengatur sisanya secara manual, dll.
  2. Pengondisian sinyal dan indikasi dalam mikrodetik. Pada sebagian besar penguji, indikasi yang ditampilkan tidak jelas apa, atau sama sekali tidak ada
  3. Langkah minimum untuk mengubah durasinya adalah 1 ΞΌs. Artinya, kisaran 0,8-2,3 ms dibagi menjadi 1500 langkah
  4. Kemampuan untuk terhubung ke PC. Anda dapat menggunakannya, misalnya, dipasangkan dengan Raspberry Pi. Sinyal itu sendiri akan dibentuk dalam hal ini jauh lebih akurat daripada dengan menggunakan komputer papan tunggal itu sendiri
  5. Keterbukaan. Pada akhir artikel, Anda dapat menemukan semua file yang diperlukan untuk pembuatan tester secara independen

Dan inilah karakteristiknya:
  1. Tegangan suplai - 5V
  2. ( ), β€” 100
  3. β€” 0,8-2,3
  4. β€” 1
  5. β€” 50
  6. β€” 9600, 8 bits, 1 stop bit


Saat mengerjakan skema, saya mencoba membuatnya semurah mungkin dan membuatnya mudah diulang. Pengontrol populer Atmega8A-AU digunakan sebagai pengontrol kontrol.

Tampilan tujuh segmen tiga digit terhubung melalui register geser dan transistor logika. Enam LED digunakan untuk menampilkan mode saat ini dan mereka terhubung dengan metode yang disebut charleplexing untuk menyimpan kesimpulan MK.
Untuk kontrol, encoder inkremental konvensional dan dua tombol digunakan. Encoder mengontrol sudut yang disetel, dan tombol-tombol mengganti mode kontrol dan saluran saat ini. Di mana-mana ada kapasitor dari bouncing kontak, sehingga semua ini bekerja dengan sangat jelas.

Soket penguji dirancang untuk menghubungkan servos itu sendiri, pemrograman, menghubungkan ke PC dan daya. Saya memutuskan untuk tidak memasang regulator daya di papan tulis. Artinya, untuk penggunaannya tidak akan bekerja untuk menggunakan tegangan baterai secara langsung. Hal ini diperlukan untuk menemukan sumber 5V atau stabilizer dengan arus yang sesuai dengan arus yang dikonsumsi oleh motor yang terhubung.
Saat memeriksa koneksi motor tanpa sikat dengan pengendali kecepatan (ESC), motor itu sendiri ditenagai oleh baterai. Jika ESC memiliki pengontrol kecepatan internal, maka Anda dapat memberi daya tester secara langsung darinya.



Papan sirkuit disiapkan dalam format Sprint Layout. Ini adalah papan dua sisi, tetapi saya menggambar sehingga saya bisa membuatnya di rumah dengan LUT atau photoresist, dan jumper dari satu sisi papan ke sisi lain dapat dengan mudah disolder menjadi vias.

Sisi depan papan:



... dan sebaliknya:



Saya membuat papan ini secara manual dan semuanya memeriksa dan berfungsi untuk saya:



Saya juga melakukan kampanye kecil di antara pelanggan Komoditas dari China ke kipas radio dan ruang peretasan lokal kami MakeItLab dan menemukan orang yang mendukung pelepasan sejumlah kecil perangkat. Saya mengambil kesempatan ini untuk mengucapkan terima kasih kepada mereka. Ini adalah perangkat buatan pabrik:




Daftar komponen


Berikut daftar lengkap dengan tautan:
  1. Atmega8A-AU TQFP44
  2. BC56-12GWA. , , aliexpress
  3. SN74HC595DR SOIC16
  4. BCR108E6327 SOT23 β€” 3
  5. KP-2012SGC, 0805 β€” 6
  6. EC12E24204A9
  7. T491C226K016AT (22-16, C)
  8. 0,1 0805 β€” 7
  9. 1 0805
  10. 1 0603Γ—4
  11. 300 0603Γ—4 β€” 3
  12. DTSM20-4.3N β€” 2
  13. 5,08
  14. PLS-40 sisir kontak (diperlukan 26 pin)
  15. Jumper

Perumahan


Saya juga menggambar dan mencetak pada printer 3D mandrel kecil dan pegangan encoder. File untuk diunduh nanti.




Firmware


File firmware akan berada di akhir artikel. Anda dapat mem-flash controller menggunakan ISP-programmer apa pun melalui konektor 6-pin standar. Di papan tulis, enam dari delapan pin di sebelah kiri encoder dirancang terutama untuk ini.
Bit sekering harus diatur seperti yang ditunjukkan pada gambar:



Penguji bekerja


Tentu saja, lebih mudah untuk melihat sekali:



Untuk memulai tester dalam mode kontrol manual, pelompat β€œPC / Manual” perlu dipasang saat daya dihidupkan.

Saat memulai dalam mode manual, pesan "HI" akan ditampilkan pada layar dan tester akan memasuki mode siaga ketika pengguna memilih durasi sinyal awal. Secara kasar, dari tepi atau dari tengah jangkauan. Ketika Anda menekan tombol kiri, kontrol akan terjadi dari nol, ketika Anda menekan tombol kanan, dari tengah. Setelah mengklik salah satu tombol, generasi sinyal akan mulai, saluran pertama akan menjadi aktif dan akan beralih ke mode "1".

Dalam mode operasi, tombol MODE mengganti mode kontrol, mengubah kenaikan. Mode saat ini ditampilkan menggunakan enam LED. Ada empat mode manual (langkah 0.1; 1; 10 dan dari 0 hingga 150, yaitu di antara tepi rentang) dan dua otomatis (start / stop). Tekan lama pada tombol MODE membuat saluran ke mode kontrol otomatis dan mesin mulai berayun dengan lancar dari sisi ke sisi. Menekan sebentar tombol MODE secara otomatis berhenti atau melanjutkan gerakan. Tekan lama pada tombol MODE mengembalikan saluran ke mode kontrol encoder.

Tombol CHANNEL beralih di antara saluran aktif. Saluran aktif saat ini ditampilkan pada layar dalam kode biner menggunakan titik bit. Tekan lama pada tombol ini menempatkan tester dalam mode menghasilkan pulsa yang sama di semua saluran.

Harap dicatat bahwa angka-angka dari 0 hingga 150 ditampilkan pada indikator. Ini kira-kira sesuai dengan sudut drive servo dan dapat dikonversi ke durasi pulsa. Untuk menghitung ulang, cukup dengan mengalikan pembacaan dengan sepuluh dan menambahkan 800. Misalnya, jika ada sepuluh pada indikator, maka durasi pulsa adalah 900 ΞΌs.

Koneksi komputer


Jika Anda menggunakan Raspberry Pi, maka Anda cukup mencolokkan Rx, Tx dan GND di bagian kiri bawah papan. Jika Anda tidak memiliki port COM yang kompatibel dengan TTL di komputer Anda, maka Anda dapat menggunakan adaptor USB-COM, yang sangat murah. Anda juga dapat mengambil tegangan port USB 5V, tetapi ingat bahwa arus maksimumnya adalah 500mA! Kecepatan koneksi adalah 9600.
Agar tester untuk boot dalam mode kontrol dari PC, perlu untuk menyalakannya tanpa jumper. Dalam hal ini, huruf "PC" akan ditampilkan pada indikator dan tester akan masuk ke mode siaga untuk perintah dari PC. Sampai paket lengkap pertama tiba, tidak akan ada sinyal di semua saluran.

Durasi pulsa harus dikirim dalam mikrodetik dari 0 hingga 1500. Artinya, dua byte dikonsumsi per saluran.

Paket data harus terdiri dari 16 byte: dua byte pertama 0xFF untuk menunjukkan awal paket, kemudian 12 byte durasi pulsa untuk setiap saluran dan pada akhirnya dua byte dari jumlah cek. Diperlukan jumlah cek untuk memverifikasi kebenaran paket dan harus sama dengan jumlah semua durasi.

Byte pertama - 255 (0xFF)
Byte kedua - 255 (0xFF)
Byte ketiga - byte tinggi dari saluran pertama
byte keempat - byte rendah dari saluran pertama
byte kelima - byte tinggi dari saluran kedua
6 byte - byte rendah dari saluran kedua
byte ke-7 - byte tinggi dari saluran ketiga
ke-8 byte - byte rendah dari saluran ketiga
byte ke-9 - byte tinggi dari saluran keempat
byte ke-10 - byte rendah dari saluran keempat
byte ke-11 - byte tinggi dari saluran kelima
12 byte - byte rendah dari saluran kelima
13 byte - byte tinggi dari saluran keenam
14 byte ke - rendah dari saluran keenam
15 byte ke - byte tinggi dari jumlah cek
16 byte - byte rendah dari jumlah cek

Contoh paket yang valid (dalam desimal):
255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (semua mesin ke posisi awal)
255 255 2 238 0 0 0 0 0 0 0 0 0 0 240 (mesin pertama ke posisi tengah)
255 255 2 238 2 238 2 238 2 238 2 238 2 238 17 148 (semua mesin di posisi tengah)

File untuk diunduh


Papan sirkuit tercetak Model
Firmware
untuk mencetak kasing
Dan, permisi, tautan ke artikel utama di situs saya .

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


All Articles