Randomisasi Gerakan Robot @ Arduino Duemilanove

Posted: 19 Januari 2011 in Otomasi dan Robotika
Tag:,

Assalamu’alaikum Wr. Wb.

Yah mau tidur… pengen nulis dikit2. Tadi siang saya membuat robot GeJe. Gerakannya ngawur tapi lucu juga🙂. Gerakannya tidak ditentukan namun random, belok kanan kiri maju mundur, seru juga :p. Saya nggak tahu apakah judul Randomisasi itu betul ? Apa kayak minimisasi yah ? Inget2 praktikum RD adjah he he he. Yah kali ini membahas fungsi random() sebenernya masih binggung beda antara randomSeed(). cari tahu sendiri lah, bahasa inggirs malas baca. Liad di referensinya. namun sekilas itu buat nggenerate nilai bila pin analog ini tidak disambungkan. jadi meski tidak digunakan masih bisa nggenerate nilai untuk fungsi analogRead(A0);

randomSeed(analogRead(0));

Oh ya artikel ini tinggal menyabung artikel sebelumnya https://tarecha.wordpress.com/2011/01/18/pengaturan-pwm-motor-menggunakan-arduino/

Yang pasti random tinggal memasukkan nilainya lalu dimasukkan variable

int acak=random(20) artinya akan menggenerate 0 – (max-1) atau 0 sampai 19

kalo pengen antara 3 sampai 9 gimana ?

int acak=random(3, 10) dimana 3 adalah min dan 10 adalah max. yang nantinya 10-1 – = 9

 

La ini sourcecodenya

int tunda=0;
int acak=0;

void setup()  { 
 //di kerjakan sekali
 pinMode(3, OUTPUT); //untuk pwm ab
 pinMode(0, OUTPUT); //kontrol direction a
 pinMode(1, OUTPUT); //kontrol direction b
 pinMode(2, OUTPUT); //kontrol direction c
 pinMode(4, OUTPUT); //kontrol direction d
 pinMode(5, OUTPUT); //untuk pwm cd
 tunda=1000;
} 

void loop() //akan diulang terus menerus 
{ 
 
 
 writepwm(255/2,254/2); //jika full robotnya terlalu cepat
 //sehingga pwm saya bagi 2 agar lambat sedikit :)
 acak =random(8); //8-1= 0 sampai 7
 switch (acak) 
{
 case 0:    
         rem();
         break;
 case 1:   
         maju();
         break;
 case 2:    
         mundur();
         break;
 case 3:   
         kanan();
         break;
 case 4:    
         kiri();
         break;
 case 5:   
         puter_kanan();
         break;
 case 6: 
         puter_kiri();
         break;
 default:   //dalam kasus nie adalah 7
         los();
 }
 delay(tunda);
 
 
 
 
}
void writepwm(int kiri,int kanan)
{
 analogWrite(3, kanan);  
 analogWrite(5, kiri);
}

void rem()
 {
 digitalWrite(0, HIGH);
 digitalWrite(1, HIGH); 
 digitalWrite(2, HIGH);
 digitalWrite(4, HIGH);  
 }
void los()
 {
 digitalWrite(0, LOW);
 digitalWrite(1, LOW); 
 digitalWrite(2, LOW);
 digitalWrite(4, LOW);  
 }
void maju()
 {
 digitalWrite(0, LOW);
 digitalWrite(1, HIGH); 
 digitalWrite(2, LOW);
 digitalWrite(4, HIGH);  
 }
void mundur()
 {
 digitalWrite(0, HIGH);
 digitalWrite(1, LOW); 
 digitalWrite(2, HIGH);
 digitalWrite(4, LOW);  
 }
void kanan()
 {
 digitalWrite(0, HIGH);
 digitalWrite(1, HIGH); 
 digitalWrite(2, LOW);
 digitalWrite(4, HIGH);  
 }
void kiri()
 {
 digitalWrite(0, LOW);
 digitalWrite(1, HIGH); 
 digitalWrite(2, HIGH);
 digitalWrite(4, HIGH);  
 }
void puter_kiri()
 {
 digitalWrite(0, HIGH);
 digitalWrite(1, LOW); 
 digitalWrite(2, LOW);
 digitalWrite(4, HIGH);  
 }
void puter_kanan()
 {
 digitalWrite(0, LOW);
 digitalWrite(1, HIGH); 
 digitalWrite(2, HIGH);
 digitalWrite(4, LOW);  
 }
 
dijamin robotnya pasti bergerak ngaco, gak ada aturannya tapi lucu ^_^
Salam Robotika.
Wassalamu'alaikum Wr. Wb.

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s