Belajar Robotik Dengan Arduino #2, Robotic Arm

Dalam tutorial kali ini, kita akan coba membuat  Robotic Arm menggunakan Arduino Uno. Robotic arm ini akan dirancang dengan menngunakan beberapa bahan skrap dan sebuah servo. Seluruh proses konstruksi kami coba jelaskan secara rinci di bawah ini. Robotic arm ini  dibangun dengan kardus dengan bagian ternentu yang disatukan ke motor servo.  

Arduino Uno digunakan untuk mengendalikan motor servo,Mengenai pembahasan tentang control motor servo silahkan baca disini. Servo berfungsi sebagai sendi lengan Robot di sini. Pengaturan ini juga terlihat sebagai Robotic Crane atau kita dapat mengubahnya menjadi Crane dengan sangat mudah. Proyek ini akan sangat membantu bagi pemula yang ingin belajar mengembangkan Robot Sederhana dengan biaya rendah.




Robotic Arm Arduino ini dikontrol oleh empat Potensiometer yang terpasang padanya, masing-masing potensiometer digunakan untuk mengontrol setiap servo. Anda dapat memindahkan servo ini dengan memutar pot untuk mengambil beberapa objek, dengan beberapa latihan Anda dapat dengan mudah memilih dan memindahkan objek dari satu tempat ke tempat lain. Kami telah menggunakan servos torsi rendah di sini, tetapi Anda dapat menggunakan servo yang lebih kuat untuk memilih benda berat.

Komponen Yang harus Disiapkan



  • Arduino Uno
  • 1000uF Capacitor (4 pieces)
  • 100nF Capacitor (4 pieces)
  • Servo Motor (SG 90- four pieces)
  • 10K pot- Variable Resistor (4 pieces)
  • Power Supply (5v- preferably two)
Konstruksi Robotic Arm

Gunakan media dengan permukaan yang rata dan stabil, seperti meja atau papan . Selanjutnya letakkan motor servo di tengah dan tempelkan di tempatnya. Pastikan tingkat rotasi berada di area yang ditunjukkan pada gambar. Servo ini bertindak sebagai dasar lengan.




Tempatkan selembar karton kecil di atas servo pertama dan kemudian tempatkan servo kedua di atas papan ini dan rekatkan di tempatnya. Rotasi servo harus sesuai dengan diagram.












Ambil beberapa kardus dan potong menjadi 3cm x 11cm. Pastikan potongan tidak melunak. Potong lubang persegi panjang di salah satu ujung (sisakan 0,8 cm dari bawah) cukup agar pas dengan servo yang lain dan di ujung yang lain paskan gigi servo dengan erat dengan sekrup atau dengan lem. Kemudian paskan servo ketiga di lubang pertama.





Sekarang potong karton lain dengan panjang yang ditunjukkan pada gambar di bawah ini dan rekatkan gigi lain di bagian bawah potongan ini.



Kemduaian rekatkan servo keempat dan terakhir di tepi potongan kedua seperti yang ditunjukkan pada gambar.




Maka kedua bagian tersebut akan terlihat seperti ini



Ketika kita menggabungkan hasil ini ke bagian dasar,maka akan terlihat seperti,





Oke, proyek ini hampir selesai. Kita hanya perlu membuat pengait untuk mengambil dan mengambil objek seperti tangan robot. Untuk pengait, potong dua lembar lagi kartu dengan panjang 1cmx7cm & 4cmx5cm. Rekatkan keduanya seperti yang ditunjukkan pada gambar dan tempelkan gigi terakhir di bagian paling ujung.




Pasang bagian ini di atas maka dengan ini proyek kita telah selesai membangun Robotic Arm.




Dengan ini, desain robotic arm kita telah selesai dan itulah bagaimana proses kita membangun lengan robot murah kami. Sekarang hubungkan sirkuit di papan breadboard sesuai diagram sirkuit.




Diagram Sirkuit




Tegangan melintasi resistor variabel tidak sepenuhnya linier; itu akan menjadi yang bising. Jadi untuk menyaring kebisingan ini, kapasitor ditempatkan di setiap resistor seperti yang ditunjukkan pada gambar.

Sekarang kita akan memberi makan tegangan yang disediakan oleh resistor variabel ini (tegangan yang mewakili kontrol posisi) ke saluran ADC Arduino. Kami akan menggunakan empat saluran ADC UNO dari A0 ke A3 untuk ini. Setelah inisialisasi ADC, kami akan memiliki nilai digital pot yang mewakili posisi yang dibutuhkan oleh pengguna. Kami akan mengambil nilai ini dan mencocokkannya dengan posisi servo.

Sekarang, agar UNO mengubah sinyal analog menjadi sinyal digital, kita perlu Menggunakan Saluran ADC Arduino Uno, dengan bantuan fungsi di bawah ini:

1. analogRead (pin);
2. analogReferensi ();

3. analogReadResolution (bit);

Saluran Arduino ADC memiliki nilai referensi default 5V. Ini berarti kita dapat memberikan tegangan input maksimum 5V untuk konversi ADC di saluran input apa pun. Karena beberapa sensor memberikan tegangan dari 0-2.5V, jadi dengan referensi 5V, kita mendapatkan akurasi yang lebih rendah, jadi kita memiliki instruksi yang memungkinkan kita untuk mengubah nilai referensi ini. Jadi untuk mengubah nilai referensi kita memiliki "analogReference ();"

Sebagai default, kita mendapatkan resolusi papan ADC maksimum yang 10bits, resolusi ini dapat diubah dengan menggunakan instruksi ("analogReadResolution (bits);").

Dalam rangkaian tangan robotik kita, kita membiarkan tegangan referensi ini ke default, sehingga kita dapat membaca nilai dari saluran ADC dengan langsung memanggil fungsi "analogRead (pin);", di sini "pin" mewakili pin tempat kita menghubungkan sinyal analog, katakanlah kita ingin membaca "A0". Nilai dari ADC dapat disimpan ke dalam integer sebagai int SENSORVALUE0 = analogRead (A0) ;.

Sekarang mari kita bicara tentang SERVO, Arduino Uno memiliki fitur yang memungkinkan kita untuk mengontrol posisi servo hanya dengan memberikan nilai derajat. Katakanlah jika kita ingin servo berada pada 30, kita dapat langsung mewakili nilai dalam program. File SERVO header (Servo.h) menangani semua perhitungan rasio tugas secara internal.


#include <Servo.h>
servo servo0;
servo0.attach(3);
servo0.write(degrees);

Statement pertama di sini mewakili file header untuk mengendalikan SERVO MOTOR. Statement kedua adalah penamaan servo; kita membiarkannya sebagai servo0 karena kita akan menggunakan empat. Statement ketiga menyatakan di mana pin sinyal servo terhubung; ini harus pin PWM. Di sini kita menggunakan PIN3 untuk servo pertama. Statement keempat memberikan perintah untuk memposisikan motor servo dalam derajat. Jika diberikan 30, motor servo berputar 30 derajat.


Sekarang, kita memiliki posisi servo SG90 dari 0 hingga 180 dan nilai ADC dari 0-1023. Kita akan menggunakan fungsi khusus yang cocok dengan kedua nilai secara otomatis.


sensorvalue0 = map(sensorvalue0, 0, 1023, 0, 180);
Statement ini memetakan kedua nilai secara otomatis dan menyimpan hasilnya dalam bilangan bulat ‘servovalue0’.


Ini adalah bagaimana kami mengendalikan Servo di proyek Robotic Arm dengan menggunakan Arduino. Periksa kode lengkap di bawah ini.





#include <Servo.h>
Servo servo0;
Servo servo1;
Servo servo2;
Servo servo3;
int sensorvalue0;
int sensorvalue1;
int sensorvalue2;
int sensorvalue3;
void setup()
{
  pinMode(A0,INPUT);
  pinMode(3,OUTPUT);
  servo0.attach(3);

  pinMode(A1,INPUT);
  pinMode(5,OUTPUT);
  servo1.attach(5);

  pinMode(A2,INPUT);
  pinMode(6,OUTPUT);
  servo2.attach(6);

  pinMode(A3,INPUT);
  pinMode(9,OUTPUT);
  servo3.attach(9);
}
void loop()
{
  sensorvalue0 = analogRead(A0);
  sensorvalue0 = map(sensorvalue0, 0, 1023, 0, 180);
  servo0.write(sensorvalue0);
  sensorvalue1 = analogRead(A1);
  sensorvalue1 = map(sensorvalue1, 0, 1023, 0, 180);
  servo1.write(sensorvalue1);
  sensorvalue2 = analogRead(A2);
  sensorvalue2 = map(sensorvalue2, 0, 1023, 0, 180);
  servo2.write(sensorvalue2);
  sensorvalue3 = analogRead(A3);
  sensorvalue3 = map(sensorvalue3, 0, 1023, 0, 180);
  servo3.write(sensorvalue3);
}

Demikian artikel kali ini, selamat mencoba.

Tidak ada komentar

Diberdayakan oleh Blogger.