Sabtu, 21 Desember 2013

GIMANA SIH CARA BIKIN ROBOT , MULAI DARI MANA ?



Bagi para pemula di bidang robotika dan mikrokontroler , biasanya selalu bertanya :
1. Bagaimana cara memulai membuat robot ?
2. Berapa biaya yang diperlukan untuk membuat robot ?
3. Apa yang harus saya pelajari terlebih dahulu ?
4. Buku apa  yang membahas lengkap mengenai robot ?
5. Bagaimana cara membuat dan mengupload program kedalam mikrokontroler ?
6. Apa itu mikrokontroler ? apa hubungannya dengan robot ?
Dan umumnya jika kita tanyakan ke forum diskusi online , jawabannya kurang memuaskan.
masih membingungkan , apalagi jika kita bukan siswa jurusan teknik elektronika atau komputer.
Saya coba urutkan hal yang mungkin wajib kita baca jika kita ingin mulai belajar tentang membuat robot.

1. Cara memulai pembuatan robot ,
Beli komponen dasarnya dulu. Ini penting , karena pada akhirnya anda harus praktekkan   apa yang selama ini anda pelajari. Jadi tidak mungkin hanya bertanya - tanya dan baca tutorial saja kita bisa bikin robot
Apa saja yang harus dibeli ?
Pilih satu proyek robot , misal Robot Line Follower ( Pengikut garis ) , Robot penghindar rintangan ( Obstacle Avoidance ) , Robot pembaca sensor 
( suhu , tekanan udara , detektor gas ).
Cari cara pembuatannya di berbagai situs di Google. Gunakan bahasa Inggris agar mudah mendapat materinya .

    Berikut Situs yang menyediakan Tutorial Robotik :
    www.instructables.com
    www.apcmag.com
    www.letsmakerobot.com

    Berikut Situs asing yang menyediakan komponen robotik :
    www.banggood.com
    www.ebay.com
    Ebay seller yang cukup baik ( murah produknya dan paket tiba dgn sukses ) diantaranya :

    alice1101983
    chip_partner
    e_goto
    electronics_lee
    sure-hifi
   
    Pemesanan via ebay & Banggood menggunakan fasilitas Paypal dan kartu kredit Visa
    Lamanya proses pengiriman dari Ebay tergantung dari negara asal pengirim dan kota
    kita selaku penerima barang. Umumnya jika pesan dari seller China dan Hongkong lama
    waktu pengiriman sekitar 1 bulan untuk tiba di kawasan Jabodetabek . Untuk wilayah
    lain , seperti di Kalimantan , bisa sampai 3 bulan. Itu jika metodenya free shipping.
    Ada opsi pengiriman via express courier tinggal kontak sellernya saja.
    Jika menggunakan express courier seperti  DHL , USPS bisa lebih cepat , tapi biayanya
    tentu bertambah. Untuk pembelian dibawah US$ 50 tidak kena pajak , tapi hanya kena
    biaya bea cukai. Biasanya berkisar Rp 5000 sd Rp 10000.
    Alur belanja di Ebay :
    masukkan username dan password - klik kategori - ketik nama
    barang yang dicari - klik Opsi Buy it now , Free shipping - klik best match atau lowest 
    price - pilih barang - masukkan shopping cart jika beli banyak jenis barang -
    klik Buy it now - otomatis masuk ke akun Paypal - bayar - Kartu kredit Visa Anda akan
    menampilkan tagihannya nanti.
    barang dikirim - akan ada surat dari kantor pos yg berisi pemberitahuan agar mengambil
    paket di kantor pos yang ditentukan atau kadang barang diantar langsung ke alamat.
    Jika belum ada kabar hingga 2 bulan , anda bisa tanyakan pada seller via form di Ebay.
    Jika telah terkirim , berarti Anda tanyakan ke kantor pos dengan membawa nomer track
    pengiriman atau jika free shipping tanpa nomer tracking pun , titipkan saja no Hp pada
    petugas pos agar memberi kabar jika ada pengiriman buat Anda.
    Jika meragukan barang sampai atau tidak , Anda bisa meminta uang kembali ke Ebay.
    Sebelum melakukan itu sebaiknya berkomunikasi dulu dengan seller ybs.

    Berikut sejumlah situs lokal penyedia komponen robotik :
    www.klinikrobot.com
    www.klinik_robot.com
    www.iseerobot.com
    www.famosa.com
    www.geraicerdas.com
    www.toko-embedded.com
    One-electronic Tokopedia.
    Para seller di Kaskus dan Group Facebook .

    Setidaknya ada beberapa komponen dasar yang biasa dipakai , kita tidak perlu
    membeli semuanya , karena tergantung jenis robot yang mau dibuat ini diantaranya :  
    DC Gearbox Motor
    Servo
    Dual DC motor controller
    Roda dan Caster
    PCB atau Breadboard
    Sensor ( Sensor Ultrasonik HC-SR05 , Sensor Infrared )
    LCD 16x2 line
    Baterai dan rumah baterai
    Sejumlah resistor , dioda , led , IC sesuai proyeknya.
    Arduino boards ( Arduino Uno paling populer buat pemula )
    Selain Arduino masih banyak boards atau minimum system lain yang bisa digunakan.
    Tetapi karena lebih kompleks proses upload programmya , maka sementara buat pemula
    boleh bermain dengan Arduino dahulu .
    Bisa juga beli Kit Arduino yang sudah berisi komponen2 diatas.

    Alat penunjangnya :
    Adaptor
    Komputer PC atau Laptop
    Solder dan bahan pendukungnya.
    Jika menggunakan breadboard tidak perlu solder , hanya harus punya banyak 
    kabel jumper sebagai sarana untuk menghubungkan komponen elektroniknya.






2. Biayanya ?
    Ada beberapa jenis board Arduino , ada yang original , clone dan palsu.
    Original artinya asli dari produsennya.
    Clone artinya hasil rakitan sendiri atau dari produsen lain dengan desain label berbeda
    dari Arduino originalnya namun sama persis fungsinya.
    Palsu artinya jiplakan dari Arduino original yang desain labelnya mirip aslinya.
    Semua jenis board diatas berfungsi sama baiknya , tentu ada kelebihan lain dari
    produk original , misal kualitas komponennya sesuai standar RoHs.

    Kisaran harga di tahun 2015 sbb :
    Arduino Uno original harganya Rp 299 ribu
    Arduino Uno clone harganya bisa sampai Rp 185 ribu
    Arduino Uno palsu harganya bisa sampai Rp120 ribu.
    Dalam membeli Arduino clone ada yg menyertakan kabel USBnya dan ada yang tidak.
    Jadi tanyakan dulu pada Seller/Penjualnya.

    DC Double Gearbox motor Tamiya Rp 130 ribu
    DC Gearbox motor plastik yang kuning Rp 35 ribu
    Sensor Ultrasonik HC - SR05 harganya Rp 25 ribu.
    Micro servo dari harga Rp 30 ribu
    Roda harga bervariasi dari harga Rp 30 ribu
 
    Belanja Komponen Online di situs lokal dan luar negeri

    Jika beli di situs online lokal , ditambah ongkos kirim tapi cepat sampai.
    Jika beli di situs Ebay / Banggood , bisa free shipping dan harga bisa lebih murah ,
    tapi free shipping lama pengirimannya bisa sampai 3 bulan.
    Coba saja buka situs Ebay , saat ini bahkan harganya jauh lebih murah.
    ada Arduino Nano V3 clone/palsu hanya seharga $ 2.99 ! atau sekitar Rp 36.000 saja.
    Uniknya jika kita beli hanya sebuah pun , mereka tetap kirim ke alamat kita.
    Hanya saja lebih baik kita membeli beberapa item dari satu Seller agar kepastian
    pengiriman barangnya lebih terjamin.
    Cuma ya itu , pegel nunggunya 3 bulan....
    Kebijakan baru ttg pengiriman paket dari China telah membuat prosedurnya lebih lama.
    Padahal penyedia komponen di Ebay rata2 seller dari China.
    Jadi terserah , mau komponen super murah tapi nunggu lama , atau mahal dikit
    tapi langsung dapet. ( Sebetulnya beda harganya jauh banget sih )
   
    Mahal ngga ? ya mahal banget kalo cuma lihat fisik robotnya , dengan uang segitu
    bisa beli mainan RC Tank atau mobil RC yang jauh lebih keren kan ?
    Tapi jika kita menguasai pemrograman robot , mau bikin model robot apa saja ,
    bisa , bahkan jadi modal pengetahuan untuk karir di masa depan juga bisa !


3. Yang harus dipelajari ?
    Pengenalan terhadap Microcontroler dan komponen elektronika.
    Pengenalan Pemrograman / Bahasa Pemrograman.
    Pengetahuan dasar komputer.
    Bahasa Inggris.

4.Buku tentang Robot ?
  









   Banyak , tapi tak ada yang membahas secara keseluruhan secara detail.
   Karena robotika terdiri dari banyak disiplin ilmu.
   Cara belajar sketch Arduino bisa dengan mengubah variabel dari contoh yang sudah ada.
   Jadi kita harus banyak searching di Google , baca tutorial , gabung grup robot di facebook
   baca buku2 tentang programming , pengen cepat ya kursus atau bahkan kuliah lebih baik.
   Untuk Arduino anda cukup buka situs resmi Arduino.cc saja , langsung ngerti deh.
   Bagi para pemula , sebaiknya ketahui dahulu ikhtisar bukunya , seringkali judul buku tidak
   sesuai dengan harapan kita. Banyak judul menarik , tapi pastikan sesuai dengan kebutuhan
   Kadang kita ingin buku berisi praktek pembuatan robot , setelah dibuka ternyata lebih            banyak pembahasan teori dasar komponen elektronika.
   Empat cover buku diatas nampaknya bagus bagi pemula Arduino. 
   Soalnya tidak mudah cari buku semacam itu dalam bahasa Indonesia.
   Buku itu dijual di Toko buku Gramedia.

5.Apakah Mikrokontroler itu ?
   Secara gambaran awam sebagai berikut ,
   Mikrokontroler berbentuk seperti IC ( Integrated Circuit ) namun memiliki RAM , ROM
   CPU ( Central Processing Unit ), Clock , ADC  ( Analog to Digital Converter ) dan
   Port I/O ( Input Output ) sekaligus didalamnya.
   Fungsinya tentu sebagai pusat pengolah data , sebagai otak dari sebuah robot.
   Program yang kita masukkan kedalam Mikrokontroler akan menentukan cara kerja robot
   tersebut. Berbagai sensor dapat terhubung ke input mikrokontroler 
   demikian pula aktuator seperti misalnya motor listrik , lampu LED dsb 
   akan mendapat output sinyal dari mikrokontroler tsb.

   Jenis Mikrokontroler
   Diantaranya seri yg cukup populer al : AVR , Atmel MCS-51 , PIC & ARM .
   Nama perusahaan pembuat mikrokontroler al :
   Atmel , Freescale Semiconductor , Intel , Holtek , Microchip , NEC , Texas Instrument
   Xilinx , Philips Semiconductors , STmicroelectronics ( wikipedia ).
   Mikrokontroler tidak dapat berdiri sendiri tanpa bantuan komponen pendukung lain
   seperti resistor , kristal & kapasitor , dia pun membutuhkan power supply dan komponen
   input/output seperti sensor , layar display LCD , servo dsb , sesuai tujuan proyeknya.
   Rangkaian pendukung mikrokontroler ini biasa disebut minimum system board / minsys.


   Mikrokontroler bisa diprogram secara langsung maupun tidak langsung.

   Secara langsung ,
   Artinya program yang ditulis di layar IDE / komputer langsung ditanamkan pada
   mikrokontroler via alat downloader.
   ( misal alat USBASP atau alat lain spt Arduino board as ISP )
   tentu dengan bantuan minimum system board.
   Biasanya menggunakan bahasa pemrograman seperti Assembly , Bahasa C.
   Secara tidak langsung ,
   Artinya , program yang ditulis di layar IDE / komputer ditanamkan pada mikro
   kontroler via board pendukung dan bantuan Bootloader.
   ( misal chip ATmega328 ditanamkan software bootloader Arduino )
   dan diberi rangkaian minimum system yang sesuai /board Arduino.
   Biasanya menggunakan bahasa pemrograman tingkat tinggi 
   yg telah dipermudah  pemakaiannya. Bahasa pemrograman tingkat tinggi memerlukan
   baris perintah program yang lebih singkat dibanding bahasa Assembly / Bahasa Mesin.
   Arduino adalah contoh bahasa tingkat tinggi yang mirip bahasa pemrograman C# .



   Ada banyak jenis mikrokontroler dan minimum system yang menjadi pendukungnya.
   Misal :
   Mikrokontroler  ATMega 328 dan Arduino board nya
                            MSP430G2553 dan Launchpad nya
                            AT89C2051 dan downloadernya.

                                     



  
6.Cara memasukkan program kedalam Mikrokontroler
   Masing masing pasangan mikrokontroler dengan minimum systemnya memiliki cara
   pemrograman yang berbeda.
   Intinya Komputer PC harus memiliki software programming
   atau disebut juga Integrated Development Environment ( IDE )yaitu tempat kita menulis
   program menggunakan bahasa pemrograman ,  menggabungkan program , compiling
   process , dan kemudian mengirimkannya kedalam mikrokontroler yang melekat pada
   minimum system / board tadi melalui kabel USB atau kabel serial ( DB9 ) atau kabel
   paralel ( contoh kabel printer ).

                        Tampilan Arduino IDE di layar PC

  
                            Tampilan IAR embedded workbench IDE untuk MSP430
  
     
                             Tampilan AVR Studio 4 untuk mikrokontroler Atmel


   Penulisan program pada IDE diatas menggunakan 'Bahasa Program'
   Ada banyak bahasa program , silakan saja baca di Wikipedia.
   Diantaranya Bahasa Assembler , bahasa C , C++ , C# , Pascal  dsb.
   Menulis program sering diistilahkan ' coding ' yaitu menyusun code bahasa program.
   Biasanya orang memiliki kesukaan yang berbeda dalam memilih bahasa program.
   Artinya , ada yg menyukai Assembly , C  maupun C# . Jarang yg menguasai banyak bahasa
   pemrograman sekaligus. Jadi tergantung kebiasaan pengguna bahasanya saja.
   Masing masing bahasa program memiliki kelebihan dan kekurangan.
   Untuk bahasa Assembly misalnya irit space di memorynya , tapi panjang programnya ,          Maklum   bahasa Assembly ( bhs mesin ) ini bahasa low level yg membutuhkan kejelian
   bagi penggunanya.
   Untuk Bahasa C relatif lebih singkat penulisan programnya , tapi memakan space memory
    lebih besar pada memory di mikrokontroler.
   Mudah dan sulitnya sih tergantung kebiasaan masing masing pengguna.
   MSP430 dan IDE nya menggunakan bahasa C dalam programnya .
   Arduino menggunakan Processing & Wiring yang merupakan turunan bahasa C / mirip C#
   Rangkaian program / code dalam Arduino disebut Sketch.
   Namun ada juga IDE Energia yang bisa ditulis menggunakan Sketch dan diupload
   ke MSP430.

   Istilah upload berarti memindahkan program yang kita tulis dan telah dikompilasi
   pada IDE di PC kedalam mikrokontroler kita .
   Mikrokontroler yang akan diisi program tadi disebut sebagai 'Target'
   Upload juga diistilahkan sebagai ' Burn / Burning program '.
   Tetapi istilah Burning program dipakai pada keadaan dimana program dimasukkan
   kedalam chip target secara langsung tanpa bantuan ' Bootloader ' seperti di Arduino.
   ( Bootloader adl semacam program kecil yg ditanamkan pada chip target sbg alat bantu
   dalam proses uploading program dari IDE di pc ).

   Ketika selesai menulis program di IDE , program tersebut akan diproses dalam
   software IDE , dikaitkan antara Library & Object dsb kemudian diubah formatnya jadi
   file Hex. Setelah itu barulah diupload kedalam mikrokontroler.
   Pada umumnya untuk mikrokontroler selain Arduino diprogram menggunakan IDE
   dan Compiler yang terpisah. Seperti MSP430 menggunakan IDE dan Compiler terpisah.
   Pada Arduino IDE , compiler dsb sudah termasuk dalam satu software.
   Pada system lain , misal BASCOM , setelah menuliskan program dalam bahasa Basic pada
   layar IDE nya kita akan gunakan software lain  ( misal Sinaprog ), 
   untuk mengkompilasi dan mengubahnya dalam kode mesin 
   yang dapat dipahami  mikrokontroler.

   Mikrokontroler yang telah diisi program selanjutnya bisa tetap di board atau bisa juga
   dicabut / dipindahkan pada rangkaian robot yang akan dibuat
   Untuk Arduino , biasanya mikrokontroler ATMega 328 tetap dibiarkan melekat pada
   boardnya , jadi robot akan membawa Arduino board nya kemana mana.
   Arduino Board memiliki rangkaian minimum system yang mampu 
   menerima hasil kompilasiIDE sekaligus memasukkannya pada 
   ATMega chip yang jadi otaknya.
   Kemudian ATMega chip menjalankan program melibatkan segala macam sensor
   ( misal : Sensor suhu ) & aktuator ( misal DC Motor , Servo , LED )
   yang terhubung pada Arduino boardnya.

   Tapi jika ingin banyak membuat robot , kita bisa mengkloning Arduino pada mikro
   kontroler ATMega 328 lain yang masih kosong ( belum ada bootloadernya ).
   Bootloader adalah software yang diburn / ditanamkan pada memory flash
   mikrokontroler dan berfungsi seperti sistem operasi yang membantu masuknya program
   melalui jalur komunikasi Tx/Rx ke memory flash dalam mikon tersebut.
   ATMega 328 yang kosong , setelah diisi bootloader Arduino
   menggunakan alat spt USBASP downloader , barulah disebut Arduino.

   Sedangkan untuk mikrokontroler dalam keadaan kosong tanpa bootloader ,
   umumnya diprogram menggunakan IDE dan Compiler yang terpisah.
   Seperti MSP430 menggunakan IDE dan Compiler terpisah.

   Tidak ada yang sulit , hanya saja untuk pemula , Arduino nampak simple.
   Kalau tiap Papan pengembang ( Development boards ) macam MSP430 , Arduino
   memiliki banyak tutorial berbahasa Indonesia , mungkin tak ada yang sulit.
   Dan tetap saja Bahasa C lebih luas jangkauannya dalam bidang pemrograman ,
   dibanding bahasa pada Arduino , karena bahasa C ibarat induknya.
   Kalau Arduino , IDE dan Compilernya menyatu dalam satu software.
   Hanya saja penggunaan bootloader akan memakan ruang memori pada
   mikrokontroler itu , meski tidak banyak.

7.Membuat robot tidak harus menggunakan Mikrokontroler.
   Bisa juga membuat robot sederhana menggunakan komponen elektronika dasar dan IC


                                         Sumber : Seattle Robotics

    Dibawah ini BEAM robot menggunakan 3 Jenis komponen yg umum di pasaran
    Baterai menggunakan 4x baterai AA , motor DC gunakan yang ada gearboxnya..
    Rangkaian dari situs Let's make robots.
  

   Model lain yg simpel hanya menggunakan LDR , motor bekas getar HP dan Dioda
 
 

   Misalnya pada BEAM Robot nya Mark Tilden.
   BEAM singkatan dari Biology , Electronics , Aesthetics and Mechanics .
   Mottonya " Keep It Simple " menggunakan komponen sedikit mungkin .
   Biasanya terdiri dari dua motor DC ukuran kecil , LDR , Transistor , resistor ,kapasitor
   dioda , saklar dan sebuah sel surya atau baterai jam.
   Robot ini dapat dibuat agar mengikuti cahaya , atau menjauhi cahaya  , atau menghindari
   halangan menggunakan " Bump sensor " artinya jika menabrak sesuatu , saklarnya akan
   terhubung. Komponen pendukungnya sederhana , dari bahan kawat dan bahan bekas.
   BEAM robot berbeda dengan Robot yang memiliki mikrokontroler , karena berisi
   program yang kompleks , sehingga robot dengan mikrokontroler sering disebut sebagai
   Robot cerdas.Banyaknya percabangan pada program konon menentukan tingkat kecer
   dasan robot.
   Mulailah dengan searching Google menggunakan kata kunci berbahasa Inggris , entah
   kenapa banyak yang menganggap para pemula robotika malas searching di Google ,
   saya mengira penyebabnya adalah skill berbahasa Inggris yang minim dan pemilihan kata
   kunci yang kurang tepat. Pemilihan kata kunci dengan bahasa Inggris akan mempercepat
   pencarian topik. Lain halnya jika menggunakan bahasa Indonesia. Mungkin karena Google
   bukan buatan Indonesia , ya jadinya seperti itu.
   Programming is already hard enough , so putting effort in understanding what is meant
   should be avoided. Itu sebabnya terjemahan proyek robotik perlu mendapat dukungan.
   Bayangkan saja seperti belajar cara menyanyikan tembang Jawa dari keping kepingan
   prasasti dan manuskrip Jawa kuno. (^_^).