Dari Sangatta ke Padepokan Robot Bandung

Sangatta adalah salah satu kecamatan di Kabupaten Kutai Timur, Kalimantan Timur. Dengan kendaraan darat dari Bontang, ditempuh dalam waktu 2 jam, sementara dari Balikpapan, harus menempuh waktu 6 jam.

Dari Sangatta, dua orang guru TIK yang melayani di SMP Prima School – Yayasan Pendidikan Prima Swarga Bara, di bawah naungan PT. Kaltim Prima Coal – berangkat menuju Bandung untuk belajar robotik, tepatnya di NEXT SYSTEM Robotics Learning Center.

Sebuah perjuangan yang tidak ringan, mengingat jalan dari dan menuju Sangatta, bukanlah jalan yang mulus dan licin. Itulah yang disaksikan oleh mereka.

Sebuah semangat yang luar biasa dan patut di-apresiasi!

Kelas yang berlangsung selama 5 (lima) hari ini, akan berakhir besok, Jum’at, 2 Oktober 2009. Kiranya, upaya yang dilakukan, motivasi dan inspirasi yang diberikan, akan menjadi bekal bagi mereka saat kembali mengajar di hari Senin mendatang.

Brown-out Detection

Kebanyakan mikrokontroler memiliki rangkaian Brown-out Detection (BOD) di dalamnya, yang akan memantau tingkat tegangan catu selama chip beroperasi. Rangkaian BOD adalah sebuah komparator, yang membandingkan tegangan catu terhadap level trigger yang tetap.

Rangkaian di atas menjelaskan rangkaian detektor brown out. Di pasaran terdapat IC khusus yang akan memberikan waktu tunda dan histerisis karena normalisasi tegangan catu memerlukan waktu. IC seperti ini lebih murah dibanding membuatnya dari komponen diskrit.

Mikrokontroler ATMega128 memiliki detektor Brown-Out di dalamnya. Trigger level 2.7V atau 4.0V dapat dipilih dengan memprogram fuse bits. Trigger level juga memiliki sebuah histerisis untuk menghindari spike. Histerisis dapat di-interpretasikan sebagai VBOT+=VBOT+VHYST/2 dan VBOT-=VBOT-VHYST/2.

Jadi, jika rangkaian Brown-Out diaktifkan melalui fuse bit dan tegangan Vcc turun hingga di bawah nilai trigger (VBOT-), maka Brown-Out reset diaktifkan dan setelah tegangan catu naik di atas level trigger (VBOT+) maka delay timer mulai menghitung untuk menjaga MCU dalam keadaan reset selama beberapa saat. Setelah penghitungan selesai, sinyal reset internal selesai.

* Terjemahan bebas dari www.scienceprog.com

Belajar Robotik vs Belajar Produk Robot

Saat ini, pembelajaran robotik tengah naik daun, khususnya di tataran sekolah dasar dan menengah. Namun, keberadaannya masih sarat dengan gengsi, sehingga sekolah kebanyakan merujuk pada program robotik dari luar negeri, dengan segala konsekuensinya, seperti biaya mahal, kurikulum yang belum tentu pas dengan visi sekolah, dan sebagainya.

Terkait dengan program-program tersebut, umumnya, ada perangkat / produk robot yang dibundel, sehingga mau tidak mau, suka tidak suka, siswa harus belajar menggunakan produk robot tertentu. Dalam mempelajari robotik memang dibutuhkan perangkat untuk berpraktek. Namun, perangkat robot merupakan alat bantu semata, bukan target pembelajaran.

Namun, secara faktual, harus diakui, banyak pelaksanaan pembelajaran bukan fokus pada pembelajaran robotik sebagai bidang ilmu pengetahuan, namun semata-mata hanya mempelajari produk robot tertentu. Alhasil, siswa pembelajar menjadi terkunci dan tergantung pada alat bantu tersebut. Dan saat diperhadapkan pada robot jenis lain, mereka pun kaget dan tidak tahu harus berbuat apa. Padahal, bila pembelajar sudah memahami robotik sebagaimana mestinya, maka tidak akan mempermasalahkan perangkat robot yang digunakan. Toh, mereka sudah memahami robotik, bukan memahami produk robot tertentu.

Memrogram Fuse Bits pada ATmega8535

Bagian ini bukan untuk pemula dan  harus diperhatikan dengan baik sehingga tidak menimbulkan “bencana” ketika menyentuhnya. Disebut “bencana” karena tidak sedikit pengguna, setelah “menyentuh” bagian ini, chip mikrokontroler-nya menjadi “pingsan” alias tidak berfungsi.

Mengingat resikonya cukup tinggi, maka biasanya, di dalam kelas pelatihan, kami selalu memberikan peringatan untuk tidak menyentuh bagian ini, sebelum benar-benar memahaminya. Dalam banyak kasus, bagian ini memang tidak perlu diutak-atik, kecuali saat pertama kali, mengingat pihak pabrik meng-konfigurasi chip AVR dengan osilator internal (default); sehingga bila kita akan menggunakan osilator eksternal, perlu melakukan pemrograman terhadap bagian konfigurasi ini.

* S8535C – untuk memilih mode kerja mikrokontroler. Default = 1. Bila dipilih 0 (checked) maka beberapa fitur yang tidak didukung AT90S8535 akan dimatikan.

* WDTON – untuk mengatur Watch Dog Timer. Default = 1 (unchecked) berarti aktivasi Watch Dog Timer dikendalikan melalui register WDTCTR. Sementara bila 0 (checked), Watch Dog Timer selalu aktif.

* CKOPT – untuk menentukan sumber clock. Default = 1 (unchecked), sumber clock merupakan osilator internal dengan frekuensi 1 MHz. Diberi nilai 0 (checked) bila sumber clock berasal dari luar.

* EESAVE – merupakan bit pengatur aktivasi penyimpanan data EEPROM secara permanen. Default = 1, berarti tidak dilakukan proses penyimpanan data EEPROM secara permanen.

* BOOTSZ1 dan BOOTSZ0 – merupakan bit untuk memilih ukuran boot sector. Default = 00, ukuran boot sector 1024 word dengan alamat boot sector pada 0C00h.

* BOOTRST – merupakan bit untuk memilih vektor reset. Default = 1, berarti alamat reset berada di alamat 0000h. Jika bernilai 0, alamat reset ditentukan oleh nilai BOOTSZ1 dan BOOTSZ0.

* CKSEL3, CKSEL2, CKSEL1 dan CKSEL0 – merupakan bit untuk mengatur pemilihan sumber clock. Default = 0001, berarti sumber clock berasal dari osilator RC internal. Jika bit CKOPT = 0, maka keempat bit ini harus diprogram sesuai dengan pilihan yang disediakan, yaitu: 1111 – 1010 (kristal atau resonator eksternal), 1001 (kristal frekuensi rendah), 1000-0101 (osilator RC eksternal), 0100-0001 (osilator RC internal), 0000 (clock eksternal).

* SUT1 dan SUT0 – merupakan bit untuk memilih waktu startup. Default = 10, sehingga memberikan waktu startup terbesar, 65 ms. Jika diberi nilai 00, maka tidak ada waktu tunda. Disarankan bila bit BODEN diprogram. Bila bernilai 01, waktu tunda sebesar 41 ms.

* BODEN – merupakan bit pengatur deteksi brown out. Default = 1, berarti fitur ini tidak aktif.

* BODLEVEL – menentukan level deteksi brown out. Default = 1, sehingga tegangan brown out di-set pada 4 Volt. Bila diberi nilai 0, tegangan brown out di-set pada 2.7 Volt. Bit ini berfungsi bila bit BODEN aktif.

Calibrated internal RC oscillator

Opsi ini merupakan yang paling sering digunakan karena tidak memerlukan komponen eksternal. Chip sudah menyediakan osilator internal untuk 1 MHz (default pabrik), 2 MHz, 4 MHz dan 8 MHz. Modus ini dapat dipilih dengan memprogram fuse bit dalam range 0001 hingga 0100. Bit CKOPT tidak diprogram (tanda check menunjukkan tidak diprogram).

Pemrograman CHKSEL3..0 untuk keperluan di atas: 0001 ( 1 MHz, default), 0010 (2 MHz), 0011 (4 MHz), 0100 (8 MHz).

Berikut adalah contoh setting dengan pilihan sumber clock eksternal, dengan rujukan ATmega16 (dengan JTAG disable). Pada ATmega8535 tidak ada opsi JTAG.

Terkait dengan Pelatihan Mikrokontroler AVR, silahkan menghubungi Padepokan NEXT SYSTEM Bandung, (022) 4222062, 085100775874 (voice / sms) atau WhatsApp 085102238024

Tips Praktis Dalam Membuat PCB

Dalam membuat PCB, seringkali timbul pertanyaan, berapa lebar jalur yang harus dibuat? Bila terlalu tipis, kuatir jalur tersebut tidak mampu melewatkan arus dan akhirnya putus. Bila terlalu lebar, menghabiskan tempat.

Berikut adalah tips dari expresspcb.com mengenai lebar jalur yang disarankan:

  • 0.010″ 0.3 Amps
  • 0.015″ 0.4 Amps
  • 0.020″ 0.7 Amps
  • 0.025″ 1.0 Amps
  • 0.050″ 2.0 Amps
  • 0.100″ 4.0 Amps
  • 0.150″ 6.0 Amps

Harus diperhatikan pula bila harus membuat jalur melengkung. Jangan lebih tipis dari 0.012″ mengingat saat proses produksi, kuatir terkikis habis oleh larutan etching.

Saklar Bounce dan Debounce

Tidak ada yang lebih sederhana dibanding saklar dan push button. Ini merupakan cara yang paling sederhana untuk memberikan kondisi tegangan pada pin masukan mikrokontroler, dan tidak memerlukan penjelasan secara detail mengenai cara kerjanya. Namun demikian, dalam prakteknya, tidak semudah yang diperkirakan. Apa penyebabnya?

Getaran yang terjadi pada kontak saklar, yang merupakan masalah yang biasa dijumpai pada saklar mekanis.

Ketika kontak bersentuhan, momentum dan elastisitas beraksi bersamaan sehingga menimbulkan getaran. Hasilnya adalah sejumlah pulsa listrik (lihat gambar di atas) yang dapat menimbulkan salah interpretasi. Namun, kejadian ini tidak berlangsung lama (beberapa mikro atau milidetik), namun cukup lama untuk sebuah mikrokontroler. Bila menggunakan sebuah push button sebagai penghitung pulsa, kesalahan terjadi pada hampir 100% kasus.

Masalah ini mungkin cukup mudah diatasi dengan menghubungkannya dengan sebuah rangkaian RC untuk menekan perubahan tegangan yang cepat. Bila periode getaran tidak didefinisikan, nilai komponen yang digunakan tidak dapat ditentukan secara pasti. Namun dalam kebanyakan kasus, disarankan untuk menggunakan nilai yang tertera pada gambar di bawah ini:

Bila dibutuhkan stabilitas yang tinggi maka dibutuhkan cara lain. Output dari rangkaian berikut akan merubah kondisi logikanya hanya setelah men-deteksi pulsa pertama yang dipicu oleh getaran kontak saklar. Solusi ini lebih mahal, namun masalah dapat diselesaikan dengan sempurna.

Selain solusi berbasis hardware, juga terdapat solusi sederhana berbasis software. Bila sebuah program menguji kondisi sebuah pin input dan men-deteksi perubahan, pemeriksaan dilakukan selama jeda tertentu. Jika program memastikan perubahan, ini berarti bahwa posisi saklar atau push button sudah berubah. Keuntungan dari solusi ini sangat jelas: bebas biaya, efek dari noise di-eliminasi dan dapat diterapkan pada kontak yang kualitasnya kurang baik.

Sumber: mikroe.com

Berikut adalah contoh sederhana untuk mengatasi masalah bouncing:

TRISA = 255;
PORTA = 0;
TRISB = 0;
PORTB = 0;

while (1)
{
 int a, b;
 a = PORTA.F3;
 delay_ms(10);
 b = PORTA.F3;
 if ( a == b )
   if ( a == 0 )
   {
     PORTB.F0 = 1;
     delay_ms(2000);
     PORTB.F0 = 0;
   }
}

Motor DC dan Gearbox

Dalam membangun sebuah mobile robot, biasanya kita terkendala dengan chassis dan motor, terutama bila menggunakan motor DC. Bila menggunakan motor servo (continuous servo), karena bentuk fisiknya kotak, maka cukup mudah untuk menempatkannya pada chassis. Namun, motor servo umumnya memiliki kecepatan yang rendah, yakni sekitar 60 rpm saja.

Motor DC kebanyakan memiliki bentuk fisik bulat, sehingga tidak mudah untuk memasangnya pada chassis. Kecepatan putarnya (RPM) tinggi, namun torsinya rendah sehingga perlu dilengkapi dengan gearbox. Nah, menambahkan gearbox adalah masalah yang lain lagi, mengingat tidak mudah untuk mendapatkan gearbox yang sesuai dengan motor yang kita gunakan. Terkadang, persoalan yang satu ini sangat menguras waktu, tenaga dan pikiran.

NEXT SYSTEM Robotics Learning Center menawarkan cara mudah menggunakan motor DC, dengan menyediakan sejumlah produk motor DC yang sudah dilengkapi dengan gearbox, serta mudah dalam pemasangannya.

Pada gambar di atas, motor DC dengan kemasan fisik seperti motor servo dan sudah dilengkapi dengan gear train. Beroperasi pada tegangan 6 VDC dan mampu memberikan kecepatan hingga 300 rpm dengan torsi sekitar 2.4 kgf.cm.

Pada gambar disamping, motor DC yang telah dilengkapi dengan double gearbox. Kombinasi gear ratio dapat memberikan kecepatan maksimum hingga 1.040 rpm (efisiensi maksimum, torsi ~ 40 gf.cm) dan torsi maksimum hingga 2,3 kgf.cm (kecepatan ~35 rpm) pada tegangan kerja 3 VDC. Paket terpadu ini sangat mudah dipasangkan pada chassis yang rata.

Dengan demikian, chassis dan motor bukan lagi kendala untuk memulai “ngoprek” robotik, terutama mobile robot. Mulailah sebuah langkah kecil hari ini – start small, start now – untuk sebuah hasil yang luar biasa di esok hari 🙂

Untuk informasi lebih lanjut mengenai produk-produk di atas, konsultasi mengenai pembelajaran robotik di sekolah, serta pelatihan membuat mobile robot, silahkan menghubungi NEXT SYSTEM Robotics Learning Center.

Untuk Program Robotik yang Lebih Maju, Perlu Riset!

Kata riset tidak bisa diabaikan, untuk mengembangkan program robotik di sekolah, baik sekolah menengah maupun perguruan tinggi.

Apakah ada sekolah menengah yang memiliki program riset untuk robotik saat ini? Jangankan riset robotik, riset yang lain pun yang lebih sederhana, mungkin tidak ada (baca: langka). Untuk tingkat perguruan tinggi pun, baru beberapa universitas saja.

Padahal, untuk mengembangkan sebuah bidang keilmuan, perlu riset yang mumpuni. Tanpa itu, ibarat tong kosong yang berbunyi nyaring. Bersuara keras tapi tidak ada kualitas yang disampaikan.

Dalam banyak kesempatan, saya selalu menyebutkan hal ini, “to be an expert, we have to spend at least 10,000 hours in deliberate practises“. Deliberate practise adalah riset! Entah skala kecil atau skala besar. Tanpa mengalami tidak ada impresi. Tanpa impresi tidak ada pengalaman. Tanpa pengalaman, tidak ada pemahaman yang mengakar.

Saya berharap, pembelajar sejati dapat lahir mulai dari tingkat sekolah menengah. Insan-instan yang tangguh, berkarakter dan mandiri, serta memiliki daya kreasi dan kemampuan yang luar biasa.

Mulailah dari hal yang kecil dan sederhana (baca: riset kecil). Perjalanan 1000 km dimulai dari sebuah langkah kecil.

Bila mampu melahirkan program riset robotik utk tataran sekolah menengah, ini akan menjadi mercusuar, khususnya di kota Bandung. Apalagi sampai bisa melahirkan produk robot karya orisinil siswa. Satu hal yang luar biasa!

Yuk, kita mulai melangkah!

Seminar Let’s Play and Fun with Robot!

Seminar Let’s Play and Fun with Robot di BE Mall Bandung hari ini, berjalan dengan baik dan cukup memuaskan. Memang penyampaian materi agak sedikit panjang, namun memang itulah modal awal yang harus dimiliki oleh peminat robotik pemula.

Acara yang seyogyanya dimulai pk 11.00, mundur hampir 30 menit, karena pihak panitia menunggu manajemen perusahaan yang baru datang dari Jakarta. Namun, saya tidak mau memperpanjang waktu seminar, karena selepas itu ada tugas lain. Jadi, pk 13.00 selesai tidak selesai, harus selesai.

Puji Tuhan,  akhirnya, seluruh materi dapat tersampaikan. Dan agenda acara pun berlanjut dengan demo. Demo pertama menggunakan Robot Lego Mindstorms yang dikendalikan secara wireless melalui laptop, dilanjutkan dengan Robot Edukasi yang bergerak mengikuti garis (line following) dan diakhiri dengan aplikasi Maze Solving.

Harus diakui, durasi demo terlalu pendek. Namun, saya memberikan kesempatan kepada peminat untuk melanjutkannya di kelas workshop khusus di kantor. So, peserta tidak perlu kecewa, karena akan dipuaskan selama workshop khusus tersebut 😉

Selepas acara, sejumlah wartawan media lokal meminta waktu untuk wawancara. Yuk, kita wawancara 🙂

Kompas: Bikin Robot, Bagi Ilmunya Dong!

 

Rabu, 27 Mei 2009 | 12:34 WIB

Laporan wartawan KOMPAS Dwi Bayu Radius

BANDUNG, KOMPAS.com – Lomba membuat robot pada ‘Lomba Kreativitas Siswa (LKS) Tingkat Jawa Barat Subteknologi Robotika’ di Lembang, Bandung, hari ini (27/5) ditutup. Misinya mengenalkan teknologi dasar robot kepada siswa dan membagi ilmu kepada teman dan guru di sekolah masing-masing peserta.

Hal itu diutarakan oleh salah seorang juri, Agus Mulyana, di sela-sela lomba di Lembang, Kabupaten Bandung Barat, Jawa Barat, (27/5). Agus mengatakan, lomba digelar untuk mengenalkan teknologi dasar robot kepada siswa SMA. Para peserta lomba juga diharapkan bisa membagi ilmu kepada teman dan guru di sekolahnya masing-masing. Selain itu, Agus menambahkan, tujuan lomba lainnya adalah untuk menciptakan embrio kompetisi regional, bahkan nasional. “Tadinya ada 15 siswa yang ikut tapi lima di antaranya dinyatakan gugur,” katanya.

Sementara itu, menurut Managing Director Next System, Christianto Tjahyadi, kemampuan dan daya tangkap siswa dianggap sangat baik. Para peserta diberi teori selama empat jam pada hari pertama lomba. Kegiatan lalu dilanjutkan dengan latihan pada hari kedua. “Mereka sudah mampu memrogram robot saat kompetisi hari ketiga. Kemampuan adaptasinya bagus, siswa diupayakan belajar teori dengan suasana yang menyenangkan,” kata Christianto.

Sumber : KOMPAS