Sebuah Saran Untuk Belajar Robot

Lintang Erlangga - May 10th, 2021

Belajar dasar robot
Belajar dasar robot.

Memang gak ada salahnya setiap orang belajar sesuatu yang mutakhir, tapi saya menganjurkan untuk bersabar dahulu dan coba pelajari hal-hal yang mendasar. Alasan pertama, karena hal yang mendasar itu bisa membantu kita memahami sesuatu yang lebih advanced. Kemudian yang kedua, tak jarang beberapa cabang di robotika memang memerlukan prerequisites terlebih dahulu. Sebagai contoh, konsep probabilistic robotics untuk sistem posisi robot memerlukan pemahaman setidaknya materi-materi peluang. Implementasi kinematika robot setidaknya paham tentang dasar-dasar dari aljabar linear, dan masih ada lagi sebenarnya.

Nah untuk kali ini kita sebenarnya gak akan banyak belajar banyak hal mengenai teoritikal yang disebutkan sebelumnya, melainkan lebih ke prinsip kerja robotika secara umum (gak umum banget sih sebenarnya).

Bagian besar robotika

Jadi kalau versi saya, di dalam robotika ada tiga bagian atau komponen utama yaitu elektronik, mekanik, dan pemrograman.

Elektronik

Suatu robot perlu mengetahui kondisi lingkungan sekitar jika ingin bekerja dengan baik (salah satunya supaya safety), juga perlu melakukan perhitungan dalam pengambilan keputusan dan aksinya. Dan hal-hal tersebut bisa dikatakan sebagai fungsi utama dari komponen elektronik. Komponen elektronik yang digunakan untuk mengetahui kondisi sekitar disebut sebagai sensor, dan jenisnya ada banyak macam, seperti sensor jarak, sensor suhu, sensor citra (kamera), sensor cahaya, dan masih banyak lagi. Dari namanya mungkin kalian sudah bisa menebak fungsinya apa aja ya, sensor jarak ya pastinya mengukur jarak, sensor cahaya untuk mendeteksi cahaya, dan sebagainya.

Kalau di pasaran, sensor jarak itu umunya ada HCSR-04 untuk yang versi yang murah dan ada SRF-05, untuk sensor cahaya umumnya dan yang pernah saya pakai yaitu LM35, kalau kamera biasanya pakai webcam, dan sensor cahaya pakai photo diode.

Itu untuk sensor, nah untuk melakukan perhitungannya kita menggunakan alat yang namanya mikroprosesor. Kalau untuk belajar saya saranin pakkai mikrokontroler aja dulu seperti ATmega32, dan sejenisnya. Soalnya kalau mikrokontroler itu udah ada peripheral-nya, sederhananya input-output dari mikrokontroler itu udah bisa langsung digunakan untuk menjadi perintah karena umumnya keluarannya udah 5V. Berbeda dengan mikroprosesor yang rata-rata masih 3.3V.

Apabila mau yang lebih sederhana lagi, bisa gunakan Arduino. Semuanya udah ada dan tinggal pakai pokoknya kalau pakai Arduino, kalau mau proyekan bisa langsung ngehubungi komponen-komponen yang dipakai. Mengingat mikrokontroler itu perlu yang namanya sistem minimum, jadi kita perlu merangkai lagi power supply-nya, membuat osilator, dan membuat ekstensi yang menghubungkan kaki-kaki pin mikrokontroler. Dengan Arduino semuanya gak perlu kalian lakukan lagi (kok jadi kayak promosi ya).

Lalu kemampuan apa saja yang perlu dimiliki?

Mekanik

Untuk berinteraksi dengan lingkungan atau bisa juga dikatakan untuk mewujudkan aksi yang dimaksud pada pembahasan sebelumnya, kita perlu merubah informasi listrik tersebut menjadi suatu aksi nyata. Hal tersebut dilakukan pada bagian mekanik, selain itu mekanik juga bagian dari mendesain wujud atau model robot yang akan dibuat. Dalam istilah mekanik ada yang disebut sebagai aktuator yang fungsinya untuk melakukan gerakan. Ada banyak macam aktuator, di antaranya motor listrik (umumnya motor DC), servo, dan pneumatik. Servo sendiri sebenarnnya motor DC, hanya saja ada umpan balik atau feedback sehingga servo itu bisa dikatakan sebagai motor listrik yang terkontrol (menurut saya ini mah).

Untuk produknya secara spesifik, sebenarnya banyak banget motor listrik ini, tapi secara umum bisa kita klasifikasikan berdasarkan tegangan kerjanya. Maksudnya seperti motor 5V, 12V hingga 24V, kemudian bisa juga berdasarkan RPM atau rotation per minute-nya, dan kekuatan torsinya.

Kemudian untuk servo umumnya untuk proyek kecil-kecilan (budget-nya) bisa pakai Tower Pro SG 90, harganya bener-bener murah pokoknya.

Nah untuk desainnya, sebenarnya saya bukan ahli ngedesain mekanik untuk robot, tapi saya saat baru belajar bikin robot biasanya bikin menggunakan CAD vektor, seperti Corel Draw. Jadi kalau pakai CAD vektor, kita ngebayangin suatu desain 3D di buat menjadi bagian-bagian 2D. Tapi kalau saya lihat teman-teman saya yang mekanik mereka banyak yang menggunakan aplikasi Inventor.

Kemampuan yang diperlukan (versi anak Elektro)

Pemrograman

Wujudnya udah ada, rangkaian elektroniknya udah ada, tapi robotnya belum bisa bekerja sesuai yang diinginkan? Ini dia tugas dari program atau kode yang akan dibuat. Jadi bagian pemrograman itu bertugas untuk membuat si robot bertindak seperti apa yang kita mau. Peralatan-peralatan yang diperlukan cukup menggunakan editor, compiler, dan downloader. Untuk mikroprosesor yang berbeda memerlukan library yang berbeda tapi umumnya bahasa pemrograman yang digunakan yaitu bahasa C.

Biasanya beberapa bagian penting yang perlu dipersiapkan pada pemrograman yaitu menyesuaikan clock rate yang dipakai, mengatur pin-pin mana saja yang menjadi input dan output. Terus pin-pin tersebut juga bisa diatur apakah masukan dan keluarannya berupa analog, kemudian mengatur timer.

Sebenarnya kalau secara garis besar, pemrograman yang dibuat itu bertujuan memanipulasi pin-pin pada mikrokontroler sedemikian rupa sehingga tugas yang kita inginkan tercapai.

Setelah program yang kita buat sudah dirasa oke, barulah kalian bisa melakukan kompilasi. Hasil kompiasinya yang biasanya berupa file dengan ekstensi hex, barulah kita masukkkan ke mikrokontroler menggunakan downloader. Umumnya orang menggunakan USB-ASP untuk hardware-nya, dan avrdude untuk aplikasinya. Kalau kalian pakai Arduino gak perlu repot-repot, tinggal koneksiin ke komputer terus langsung upload.

Beberapa kemampuan yang perlu dimiliki

Prinsip kerja robotika

Setelah mengetahui ketiga bagian utama dari robot, kita juga perlu mengetahui bagaimana relasi antara ketiganya. Secara umum, prinsip kerja dari robot ini bisa dibagi menjadi tiga juga, yaitu sensing atau merasakan, proses, kemudian aksi. Hubungan antara ketiganya diilustrasikan pada gambar berikut.

Prinsip kerja robot
Alur kerja robot secara umum.

Praktek!

Belajar teori, ikut pelatihan robot di kampus aja gak cukup bro, kalian harus praktekkin langsung ilmu kalian. Alasan yang paling kuat kenapa harus praktek yaitu, karena kenyataannya tidak selalu mulus seperti pada teori atau simulasi. Nanti kalian bakal menemukan ketika robot yang digunakan ternyata punya anomali, misal saja seperti yang pernah saya temui, seperti drop tegangan terutama ketika aktuator sedang digunakan. Ada juga penambahan suatu bilangan yang saya sebut magic number, sesuai namanya bilangan ini tidak tahu asalnya dari mana tapi kalau digunakan sebagai ambang batas ngebantu banget kerja si robot.

Saya sangat menyarankan untuk belajar robot line follower terlebih dahulu, karena jenis robot yang satu ini bisa dikatakan sebagai pintu masuk untuk semua orang yang ingin mempelajari robotika. Robot yang satu ini merupakan salah satu yang mendasar dalam dunia robotika. Buat kalian yang tertarik untuk mempelajari robotika lebih lanjut, saya sarankan coba pelajari dahulu prinsip kerja dari robot line follower.

Saat semester 1 juga saya pernah buat dan kalian bisa akses proyek saya secara lengkap, mulai dari skematik, PCB, mekanik, hingga programmnya di GitHub saya, di https://github.com/koseng-lc/line-follower-Tim-LC. Wujud dari robotnya sendiri sesuai seperti yang ada di cover artikel ini.


Masih banyak lagi yang ingin saya tulis di sini, beberapa pengalaman saya saat belajar tentang robot di semester awal kuliah. Bukan cara yang terbaik tapi semoga saja bisa menjadi gambaran buat teman-teman sekalian untuk merancang cara belajar kalian. Kemudian kalau teman-teman sekalian ada pertanyaan atau mau konsultasi belajar robot coba masukkin komentar aja, semoga saya bisa membantu, terima kasih.

Labelteknikrobotpemrogramanmekanikelektronik
Lintang Erlangga
Lintang Erlangga

Lintang Erlangga merupakan alumni Teknik Elektro UGM 2016, dan juga mantan anggota Gadjah Mada Robotics Team sebagai perwakilan kampus pada kompetisi robot tingkat regional hingga nasional.