KELAS ROBOT
Mendaftar

Pendahuluan: Servo A-Go-Go!

Servo pada dasarnya adalah jenis motor diarahkan khusus. Apa yang membuat servo berbeda dari motor diarahkan normal adalah bahwa ia memiliki papan pengontrol bawaan dan (biasanya) potensiometer umpan balik (seperti kenop volume stereo) untuk penentuan posisi yang akurat. Sangat mudah untuk mengendalikan motor servo menggunakan mikrokontroler seperti Arduino. Biasanya tidak diperlukan sirkuit kontrol lain. Servo pada dasarnya adalah motor yang sangat mudah dan andal untuk bekerja.

Jenis-jenis Servos

Hobi servos cenderung datang dalam berbagai ukuran. Mereka juga memiliki berbagai opsi lain seperti rotasi keseluruhan, cara gearbox mereka dibangun, dan bagaimana mereka berkomunikasi dengan mikrokontroler. Berikut adalah beberapa tipe dasar servos yang mungkin Anda temui.


Standar Servos


servos standar cukup standar sejauh servos pergi. Karena itulah namanya, servo standar. Nama standar sebagian besar berlaku untuk ukuran motor (sekitar 1,5 "x 1,5" x 0,75 "). Selain itu, cenderung tidak ada standar tentang servo standar.

Ada berbagai jenis servos standar yang mungkin Anda temui. Mereka membuatnya dengan gearbox plastik atau logam, yang pada gilirannya dirancang untuk kecepatan tinggi atau torsi tinggi. Sebagian besar memiliki rotasi 90 derajat (90 derajat di kedua arah - total 180), tetapi beberapa memiliki rotasi 180 derajat (180 derajat di kedua arah - total 360), atau rotasi terus menerus dan dapat berputar dengan bebas. Beberapa bahkan memiliki papan kontrol digital, yang bertentangan dengan servos dengan papan analog seperti yang kami gunakan. Anda bahkan dapat menemukan beberapa yang tidak memenuhi deskripsi ini. Ada banyak servos "standar" di dunia.


Nano Servos

Nano servos kecil - kira-kira seukuran koin yang sangat kecil. Ini digunakan ketika kendala ukuran menjadi masalah. Mereka bagus untuk memanipulasi mekanisme yang ada (yaitu menekan tombol), atau membangun robot yang sangat-sangat kecil. Mereka diproduksi sebagian besar untuk melakukan hal-hal seperti kontrol flaps di pesawat RC.


Mikro

Servo Ini seperti nano servos, tetapi sedikit lebih besar dan lebih kuat. Mereka memiliki sebagian besar kasus penggunaan dan fungsionalitas nano servos yang sama. Mereka baik untuk membangun hal-hal kecil daripada hal-hal kecil. Mereka juga biasanya diproduksi untuk digunakan dalam pesawat RC.


1/4 Skala

Jika Anda menilai berdasarkan nama, Anda mungkin menyimpulkan bahwa servo 1/4 skala sangat kecil. Namun, Anda salah. Servo ini dimaksudkan untuk digunakan dengan mobil model yang ukurannya seperempat dari ukuran sebenarnya. Jadi, mereka relatif besar dan mereka biasanya cukup kuat. Ketika Anda membutuhkan sesuatu yang berat, ini harus menjadi tujuan Anda. 

Ukuran dan kekuatannya menjadikannya ideal untuk motor penggerak. Sayangnya, servos ini jarang dibuat pra-rotasi terus menerus. Namun, dimungkinkan untuk mengubah servo standar menjadi servo rotasi berkelanjutan dan sejumlah pengecer akan melakukan ini untuk Anda dengan biaya tambahan.

Konstruksi Gearbox

Seperti disebutkan, tidak semua servos diciptakan sama. Setiap servo bekerja secara berbeda tergantung pada jenis motor yang digunakan, konfigurasi rakitan roda gigi, dan apakah roda gigi terbuat dari plastik atau logam. 

Servo dengan roda gigi logam cenderung dibangun untuk memberikan torsi lebih dari servos dengan roda gigi plastik. Alasan untuk ini adalah bahwa roda gigi plastik patah karena beban yang berat dan roda gigi logam cenderung jauh lebih kuat. Dengan demikian, servo logam diarahkan mampu menangani beban yang lebih berat dan kekuatan yang lebih besar.

Bagi mereka yang masih bingung, torsi pada dasarnya adalah jumlah kekuatan yang dapat diberikan poros berputar. Artinya, sesuatu dengan torsi lebih besar cenderung lebih kecil (atau berhenti berputar dan / atau menekan) daripada sesuatu dengan torsi lebih sedikit. Jika Anda perlu mengangkat sesuatu, atau menekan sesuatu, semakin banyak torsi yang dapat diberikan oleh servo Anda, semakin baik. 

Pengukuran torsi yang biasanya Anda temui dalam satuan ons (inci), kilogram sentimeter (kg-cm), atau Newton meter (Nm). Memahami ini adalah masalah yang rumit. Untuk menyederhanakan, lebih besar biasanya lebih baik untuk sebagian besar aplikasi. Anda harus terbiasa bekerja di oz-in atau kg-cm, dan kemudian menggunakan konverter pengukuran online untuk menerjemahkan semua pengukuran ke nilai yang paling Anda sukai.

Servos Standar

Saat menggunakan servo standar, Anda dapat mengirimnya ke posisi yang sangat spesifik di sepanjang sudut rotasi itu. Dengan kata lain, jika Anda menggunakan servo yang mampu berputar 180 derajat, Anda dapat memerintahkannya untuk naik ke tingkat apa pun (misalnya - 112 derajat misalnya), dan ia akan pindah ke sana dari posisi saat ini. 

Alasannya adalah dapat mengetahui di mana posisi itu berada karena ada potensiometer (atau variabel resistor) yang dibangun ke dalam gear box. Komponen itu pada dasarnya adalah tombol berliku yang Anda lihat melayang di atas papan sirkuit. Cara kerjanya adalah ketika gigi berputar, mereka juga memutar kenop yang mengubah jumlah resistansi di sirkuit. Papan kontrol dapat merasakan perubahan resistensi ini dan secara tepat menentukan posisi poros motor dalam derajat.

Karena potensiometer hanya dapat diputar sejauh ini, motor ini tidak dapat berputar di luar sudut maksimumnya. Selain itu, jika Anda melihat lebih dekat pada gigi terbesar di sisi kanan kotak roda gigi, Anda akan melihat tab plastik kecil yang menonjol dari permukaan. Ini adalah penghentian fisik yang mencegah servo memanjang melampaui sudut rotasi maksimumnya. Servo standar secara fisik dibatasi untuk melakukan rotasi penuh dalam dua cara.

Meskipun Anda jelas tidak dapat menggunakan servo jenis ini untuk menggerakkan robot, itu sangat berguna untuk sejumlah besar aplikasi. Katakanlah Anda sedang membangun lengan robot, misalnya. Anda dapat menggunakan servo untuk mengontrol setiap sambungan. Dengan melakukan ini, Anda dapat memberi tahu setiap sambungan untuk pindah ke posisi yang sangat tepat, memungkinkannya melakukan tugas yang sangat kompleks. Anda juga dapat menggunakannya untuk melakukan hal-hal seperti membuat laba-laba robot berjalan berkaki banyak, menekan hal-hal lain seperti semprotan nozzle, atau membuat boneka bayi animatronik yang menyeramkan.

Servos Rotasi Berkelanjutan

Servo rotasi kontinu tidak memiliki kemampuan pemosisian, dan mampu melakukan rotasi penuh. Jika Anda melihat lebih dekat pada gigi besar di sebelah kanan Anda akan melihat bahwa tidak ada fisik yang berhenti membatasi kemampuannya untuk memutar. 

Daripada mengatur posisi, servos yang terus menerus memungkinkan Anda untuk mengatur arah dan kecepatan motor. Ini memungkinkan Anda untuk dengan mudah melakukan hal-hal seperti menentukan bahwa ia bergerak cepat ke arah searah jarum jam, berhenti sejenak, dan kemudian melanjutkan dengan sangat lambat ke arah berlawanan arah jarum jam. Servo ini pada dasarnya memiliki built-in H-bridge yang dapat Anda kontrol menggunakan mikrokontroler.

Mereka sangat berguna sebagai roda penggerak robot, atau dalam sistem mekanis yang membutuhkan motor dengan rotasi terus menerus (seperti dengan mekanisme kuas di bot spons). Namun, jangan berharap untuk mendapatkan banyak kecepatan dari mereka. Sementara servos dikenal untuk kontrol yang mudah, dan torsi yang baik, mereka tidak dikenal untuk kecepatan. Ini karena gearbox yang dirancang untuk menyediakan torsi melakukannya dengan mengorbankan kecepatan motor keseluruhan.

Sepanjang kelas ini kita hanya akan menggunakan servos sebagai motor penggerak karena tidak ada yang kita bangun yang dimaksudkan untuk melaju dengan sangat cepat. Namun, saat Anda semakin mendalami robotika dan mulai merasakan kebutuhan akan kecepatan, Anda mungkin ingin meneliti motor dan pengendali motor DC. Ini mungkin terdengar luar biasa, tapi ingat, servo rotasi kontinu pada dasarnya adalah motor DC diarahkan dengan pengontrol motor yang sudah terpasang.

Memberi daya pada Servo

Servo memiliki 3 kabel yang lepas darinya.
Sinyal: Terhubung ke pin kontrol digital 5V dari mikrokontroler. 
Daya: Ini dapat dihubungkan ke tegangan positif dari 4,5V hingga 6V. 
Tanah: Terhubung ke kesamaan - selalu.
Anda mungkin tergoda untuk hanya menghubungkan kabel daya servo ke pin 5V pada mikrokontroler Arduino. JANGAN! 

Menghubungkan servo ke pin 5V adalah ide yang buruk karena: 
1) Pin 5V Arduino hanya dapat memberikan jumlah arus yang terbatas. Dengan demikian, Anda mungkin akan memberi daya lebih rendah pada motor. 
2) Pin 5V tidak memiliki banyak sirkuit perlindungan. Artinya, jika tegangan lebih besar dari 5V muncul di pin, Anda berpotensi merusak papan Arduino. Motor (seperti servo) secara khusus dikenal untuk menghasilkan arus balik (yaitu arus listrik yang tidak terduga), dan Anda berpotensi mengirim lebih dari 5V kembali ke papan.
3) Juga, jika Anda menarik terlalu banyak arus dari papan Arduino, kode Anda bisa melakukan hal-hal lucu dan tidak berfungsi dengan benar. Ini hanya praktik terbaik untuk menyalakan babi saat ini (seperti motor) secara terpisah.


Solusi paling sederhana adalah menyediakan motor dengan catu dayanya sendiri. Ini dapat dilakukan dengan paling mudah dengan menghubungkan pasokan baterai 6V ke servo. Yah - hampir bisa dilakukan dengan mudah. Ada masalah mendasar. Kabel arde dari kemasan baterai harus dibagi dengan kabel arde dari Arduino. Ini mungkin terdengar rumit, tetapi sangat sederhana. Sebenarnya sangat sederhana. 

Setiap kali membangun sirkuit dengan beberapa sumber tegangan DC, atau menghubungkan bersama papan sirkuit yang berbeda, kabel arde mereka harus terhubung. 


Sama seperti penting untuk memiliki kesamaan di antara semua peserta dalam percakapan, penting untuk memiliki kesamaan ketika bekerja dengan elektronik. Memiliki koneksi ground bersama menempatkan semua voltase pada halaman yang sama, dan memungkinkan mereka untuk berkomunikasi.

Berbicara tentang komunikasi, sambungkan kabel sinyal ke Digital Pin 9 pada Arduino.

Mengontrol Servo Standar

Unggah kode berikut ke Arduino untuk membuat Servo bergerak maju mundur:
/*
 
 Servo Back and Forth code
 
 Sends the servo horn back and forth from 0 degrees to 180 degrees
 
*/

// Include the Servo library
// This is needed to send the Arduino servo-specific commands
#include <Servo.h>

// Let the Arduino know that there is a standard servo connected.
Servo StandardServo1; 

// Create a variable for storing the servo position
int servoPosition = 0;


void setup() {

  // Tell the Arduino that the standard servo is connected to pin 9
  StandardServo1.attach(9);  

}

void loop() {

  // This is a 'for loop'. The code contained within the brackets repeats over and over
  // until the value of servoPosition is greater than 180 degrees.
  // Basically, it increments the variable servoPosition by 1 from 0 to 180 degrees.
  for (servoPosition = 0; servoPosition <= 180; servoPosition += 1){

    // Moves the servo to the value of the variable servoPosition
    // In other words, as the variable increases by 1, the position of the servo increases by 1 
    StandardServo1.write(servoPosition);             

    // Wait a tiny bit for the servo to move into place
    delay(15);                       
  }

  // Does the same thing as the last 'for loop,' but in the opposite direction.
  // This decreases the value of servoPosition from 180 degrees to 0.
  for (servoPosition = 180; servoPosition >= 0; servoPosition -= 1) { 
    StandardServo1.write(servoPosition); 
    delay(15); 
  }
  
}

Mengontrol Servo Berkelanjutan



Unggah kode berikut untuk membuat motor berputar searah jarum jam:
/*
 
 Spin a continuous servo clockwise
  
*/

// Include the Servo library
// This is needed to send the Arduino servo-specific commands
#include <Servo.h>

// Let the Arduino know that there is a continuous servo connected.
Servo ContinuousServo1; 

void setup() {

  // Tell the Arduino that the continuous servo is connected to pin 9
  ContinuousServo1.attach(9);  
  
  // Start the continuous servo at it's neutral position
  // This position is typically somewhere around 90.
  // You can change this value slightly until the servo stops spinning.
  // Starting paused is not necessary. I just wanted to talk about this.
  ContinuousServo1.write(94);

  // Wait a second for the heck of it
  delay(1000);

}

void loop() {

   // Any number you write to the servo above the value of the neutral position the servo clockwise.
   // The higher the number, the faster it theoretcally spins.
   
   ContinuousServo1.write(110);
  
}


Untuk membuat motor berputar, unggah secara berlawanan kode ini:
/*
 
 Spin a continuous servo counterclockwise
  
*/

// Include the Servo library
// This is needed to send the Arduino servo-specific commands
#include <Servo.h>

// Let the Arduino know that there is a continuous servo connected.
Servo ContinuousServo1; 

void setup() {

  // Tell the Arduino that the continuous servo is connected to pin 9
  ContinuousServo1.attach(9);  
  
  // Start the continuous servo at it's neutral position
  // This position is typically somewhere around 90.
  // You can change this value slightly until the servo stops spinning.
  // Starting paused is not necessary. I just wanted to talk about this.
  ContinuousServo1.write(94);

  // Wait a second for the heck of it
  delay(1000);

Komentar

Postingan populer dari blog ini