Selasa, 12 Maret 2013

Bolabot Robot Kontrol Digital RK02

Teknologi robot sebenarnya telah ada sebelum kata “robot” digunakan, ilmuwan muslim merupakan pionier pertama teknologi robot. Donald Routledge dalam bukunya Studies in Medieval Islamic Technology, mengatakan bahwa hingga zaman modern ini, tidak satupun dari suatu kebudayaan yang dapat menandingi lengkapnya instruksi untuk merancang, memproduksi dan menyusun berbagai mesin sebagaimana yang disusun oleh Al-Jazari. Pada 1206 ia merampungkan sebuah karya dalam bentuk buku yang berkaitan dengan dunia teknik. Beliau mendokumentasikan lebih dari 50 karya temuannya, lengkap dengan rincian desain dalam buku, “al-Jami Bain al-Ilm Wal ‘Aml al-Nafi Fi Sinat ‘at al-Hiyal” (The Book of Knowledge of Ingenious Mechanical Devices, Springer, 1973 Edition). Bukunya ini berisi tentang teori dan praktik mekanik. Karyanya ini sangat berbeda dengan karya ilmuwan lainnya, karena dengan piawainya Al-Jazari membeberkan secara detail hal yang terkait dengan mekanika. Dan merupakan kontribusi yang sangat berharga dalam sejarah teknik. Kontribusi Al-Jazari dalam dunia robotika salah satunya adalah jam gajah yang bekerja secara otomatis.



Gambar 1. Teknologi otomatisasi pada tahun 1206 karya Al-Jazzari

Kata Robot sendiri pertama kali digunakan oleh seorang novelist Karel Capek pada tahun 1920 Ketika membuat Teater Rossum’s Universal Robots (RUR), Robot menurut bahasa diambil dari kata Robota yang berasal dari bahasa Czech yang artinya pelayan atau pekerja. Sehingga robot dapat diartikan sebagai mesin yang dapat bekerja secara terus menerus sebagai pelayan atau pekerja yang dapat di kontrol atau bekerja secara otomatis sesuai dengan kebutuhan manusia atau tujuan pembuatannya. Oleh karena itu robot tidak harus berbentuk manusia atau hewan. Secara umum robot tergolong menjadi dua bagian yaitu robot otomatis dan robot teleoperated. Robot otomatis dapat bekerja tanpa kontrol langsung oleh manusia, robot tersebut bekerja berdasarkan program yang ditanamkan seperti robot line follower, robot avoider obstacle, robot humanoid, lampu lalu lintas, pintu otomatis, dan sebagainya. Sedangkan robot teleoperated harus dikontrol langsung oleh manusia, seperti robot kontrol, televisi, computer dan lainnya.

Secara umum prinsip dasar sistem robot terdiri dari tiga bagian utama yaitu input, proses, dan output. Input robot dapat berasal dari sensor, tombol kontrol, maupun program yang tertanam. Proses merupakan bagian otak robot yang menerima input dan membuat perintah pada output berisi logika atau kecerdasan buatan yang tertanam pada chip mikrokontroler, sedangkan output adalah actuator  yang dapat berisi hidup matinya motor DC, LED, buzzer atau lainnya.
Gambar 2. Prinsip umum sistem robotika

Pada percobaan kali ini, akan dibuat robot teleoperated sederhana menggunakan mikrokontroler ATmega 8, dengan kontrol navigasi tombol push-buttom yang dapat memberikan perintah pada robot untuk bergerak maju, mundur, belok kiri dan belok kanan.

Desain Lengkap Robot Kontrol Digital



Gambar 3. Skema proteus robot kontrol digital

Sesuai desain pada tombol gerak kiri dihubungkan dengan PIN D.0, tombol gerak kanan dihubungkan dengan PIN D.1,  tombol gerak maju dihubungkan dengan PIN D.2, serta gerak mundur dihubungkan dengan PIN D.3. Motor kiri diatur oleh PORTD.5 dan PORTD.6, sedangkan motor kanan diatur oleh PORTD.7 dan PORTB.0. Logika yang dibuat untuk membuat sebuah robot kontrol dapat diringkas dalam tabel berikut

Tabel 1. Kondisi Gerak Motor dan Kondisi Logika Tiap Pin Motor
 

Program Code Vision AVR untuk robot kontrol digital sederhana dapat dibuat sebagi berikut:


*****************************************************/

#include <mega8.h>



#include <delay.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 State0=T
PORTB=0x00;
DDRB=0x06;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 11.719 kHz
// Mode: Fast PWM top=0x00FF
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA1;
TCCR1B=0x0D;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// USART disabled
UCSRB=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;
DDRD.0=0; // mendefinisikan sebagai input dari tombol gerak ke kiri
DDRD.1=0; // mendefinisikan sebagai input dari tombol gerak ke kanan
DDRD.2=0; // mendefinisikan sebagai input dari tombol gerak maju
DDRD.3=0; // mendefinisikan sebagai input dari tombol gerak mundur
DDRD.5=1; // mendefinisikan sebagai ouput motor kiri
DDRD.6=1; // mendefinisikan sebagai ouput motor kiri
DDRD.7=1; // mendefinisikan sebagai ouput motor kanan
DDRB.0=1; // mendefinisikan sebagai ouput motor kanan
PORTD.0=1; // kondisi awal
PORTD.1=1;
PORTD.2=1;
PORTD.3=1;
PORTD.5=1;
PORTD.6=1;
PORTD.7=1;
PORTB.0=1;
OCR1A=200; // pengatur kecepatan motor menggunakan PWM untuk motor kiri
OCR1B=200;   // pengatur kecepatan motor menggunakan PWM untuk motor kanan

while (1)
      {
      if (PIND.0==0)    //robot gerak ke kiri
      {
      PORTD.5=1;
      PORTD.6=0;
      PORTD.7=0;
      PORTB.0=0;
      }
      else if (PIND.1==0)    //robot gerak ke kanan
      {
      PORTD.5=0;
      PORTD.6=0;
      PORTD.7=1;
      PORTB.0=0;
      }
      else if (PIND.2==0)    //robot gerak maju
      {
      PORTD.5=1;
      PORTD.6=0;
      PORTD.7=1;
      PORTB.0=0;
      }   
      else if (PIND.3==0)    //robot gerak mundur
      {
      PORTD.5=0;
      PORTD.6=1;
      PORTD.7=0;
      PORTB.0=1;
      }
      else     //robot diam
      {
      PORTD.5=0;
      PORTD.6=0;
      PORTD.7=0;
      PORTB.0=0;
      }
      }
}


Berikut adalah photo dan video realisasi robot kontrol digital yang telah dibuat oleh Profesor Bolabot





Copyright @ 2012 Profesor Bolabot
Share:

0 komentar:

Posting Komentar