DIEKONET1

Dieko Warnet, Service Komputer, & Micro Controller

Minggu, 21 Oktober 2012

Robot Arduino: Arduino Line Follower

Robot Arduino: Arduino Line Follower

Arduino Line Follower


Robot Arduino: Display

Robot Arduino: Display: 3.2 TFT LCD Screen Module ITDB02-3.2S Rp. 299.000,- 4Display-Shield-144 Rp. 609.000,- I2C LCD Backpack Rp. 109.000,- LCD Ch...

Robot Arduino: Sensor

Robot Arduino: Sensor: ACS712LowCurrentSensorBreakout Rp. 179.000,- uCAM-TTL - Serial JPEG Camera Module - TTL Rp. 819.000,- Wheel Encoders for DFRobot...

Robot Arduino: Mechanics

Robot Arduino: Mechanics: TrackandWheelSet Rp. 139.000,- Short U-Bracket Rp. 69.000,- Rubber Wheel for A4WD and A2WD (Pair) Rp. 69.000,- MicroMetalGea...

Robot Arduino: Kits

Robot Arduino: Kits: Solder Time II Watch Kit Rp. 779.000,- PoGa-Kit Rp. 600.000,- BigTime Watch Kit Rp. 399.000,-

Robot Arduino: Dieko Net Services Komputer

Robot Arduino: Dieko Net Services Komputer: Terima Jasa Install Ulang Komputer , Install Ulang Laptop, Memperbaiki Komputer, Upgrade Komputer Jaringan warnet & kantor Menyediakan an...

Robot Arduino: How To Buy

Robot Arduino: How To Buy: Pembayaran bisa di lakukan dengan cara transfer melalui Rekening Bank : Atau menghubungi no kami di : Hp  : 0856 - 164 - 6699 denga...

Robot Arduino: How To Buy

Robot Arduino: How To Buy: Pembayaran bisa di lakukan dengan cara transfer melalui Rekening Bank : Atau menghubungi no kami di : Hp  : 0856 - 164 - 6699 denga...

Robot Arduino: ARDUINO

Robot Arduino: ARDUINO: ArduPilot - Arduino Compatible UAV Controller Rp. 319.000,-          Arduino Fio Rp. 269.000,-                     ...

Robot Arduino: Membuat Robot sederhana menggunakan arduino

Robot Arduino: Membuat Robot sederhana menggunakan arduino: Ini adalah robot dasar yang pada kedua motornya dikendalikan oleh IC L293D melalui board arduino untuk membuat robot ini kita tidak memerluk...

Robot Arduino: Obstacle Avoidance Robot

Robot Arduino: Obstacle Avoidance Robot

Robot Arduino: Storage

Robot Arduino: Storage: SDModuleShield Rp. 139.000,- uDRIVE-uSD-G1 Rp. 369.000,-

Obstacle Avoidance Robot


Jumat, 19 Oktober 2012

Kamis, 18 Oktober 2012

ROBOT ARDUINO DENGAN STICK WIRELESS PS2 SEBAGAI CONTROLLER

 Pada Video diatas adalah robot arduino yang di kendalikan dengan stick ps 2 wireless, untuk membuat robot seperti itu kita membutuhkan bahan-bahan sebagai berikut :

1.    1 Board Arduino Uno/DFRduino

2.    1 Motor driver 1A sebagai penggerak motor dc 6V

3.    2 Motor DC 6 V

4.    1 Stick Ps2 wireless beserta receivernya

5.    2 Roda Motor DC

6.    1 Baterai 9V

7.    1 Clip baterai 9V

8.    1 Jack Dc 3.5mm



9.    4 Baterai AA

10.  Male in Header secukupnya
11.  Female Pin Header

12. Kabel
13.  Doa


Nah setelah mempersiapkan bahan-bahannya sekarang kita mulai merakit robot tapi sebelum merakit robot tersebut ada baiknya anda mengerti cara kerja daripada stick PS tersebut untuk itu perhatikan pada gambar berikut :

Sumbu Koordinat X dan Y

Pada gambar diatas merupakan cara kerja dari analog stick yang terdiri dari 2 sumbu X dan Y pada sumbu Y terdapat nilai minimum 0, 128 sebagai nilai tengah dan 255 sebagai nilai maksimal sehingga apabila dalam posisi netral maka stick analog bernilai 128, 128 yang mana penerapannya pada motor robot yang akan kita buat pada posisi ini robot akan diam ( tidak bergerak ) sedangkan untuk membuat motor maju maka koordinat X < dari 128 dan untuk bergerak mundur nilai koordinat X > dari 128 sedang untuk bergerak ke kiri maka nilai koordinat Y < 128 dan untuk berbelok kekanan nilai koordinat Y > dari 128 untuk lebih jelas perhatikan pada gambar yang diarsir dengan warna.

Berdasarkan gambar diatas dapat diartikan seperti berikut :

  • Motor bergerak maju apabila stick berada pada koordinat berwarna Merah
  • Motor bergerak mundur apabila stick berada pada koordinat berwarna Kuning
  • Motor berbelok ke kanan apabila stick berada pada koordinat berwarna Biru
  • Motor berbelok ke kiri apabila stick berada pada koordinat berwarna Hijau
  • Motor Berhenti apabila stick berada pada koordinat berwarna Putih
Pada penjelasan diatas maka pergerakan stick dapat diterjemahkan kedalam koordinat dan angka yang kurang lebihnya seperti ini :

  • Untuk maju maka : Y < 64 dan X di antara 64 dan 192
  • Untuk mundur maka: Y > 192 dan X di antara 64 dan 192
  • Untuk kanan maka : X > 192 dan Y di antara 64 dan 192
  • Untuk kiri maka : X < 64 dan Y di antara 64 dan 192
Apabila telah memahami pergerakan daripada stick tersebut maka analogi diatas dapat di buatkan kode untuk arduino  program :
  • Maju: ((ps2x.Analog(PSS_RY) < 64) && ((ps2x.Analog(PSS_RX) >= 64) && (ps2x.Analog(PSS_RX) <= 192)))
  • Mundur: ((ps2x.Analog(PSS_RY) < 64) && ((ps2x.Analog(PSS_RX) >= 64) && (ps2x.Analog(PSS_RX) <= 192)))
  • Kanan:((ps2x.Analog(PSS_RX) < 64) && ((ps2x.Analog(PSS_RY) >= 64) && (ps2x.Analog(PSS_RY) <= 192)))
  • Kiri:((ps2x.Analog(PSS_RX) < 64) && ((ps2x.Analog(PSS_RY) >= 64) && (ps2x.Analog(PSS_RY) <= 192)))
Setelah penjelasan diatas maka tibalah saatnya untuk merakit robot setelah mempersiapkan bahan-bahannya, untuk merakit stick pada board arduino ada baiknya anda memperhatikan gambar berikut :


Skema receiver stick Ps2 Wireless




Pada gambar diatas dijelaskan 9 pin dari receiver wireless ps2 yang akan kita hubungkan pada pin arduino :

  1. Pin Data
  2. Pin Command
  3. Pin Vibration Motor Power
  4. Pin Ground
  5. Pin Power 3.3V
  6. Pin Attention
  7. Pin Clock
  8. Pin Unknown
  9. Pin Acknowledge
Namun kita hanya membutuhkan 6 pin dari pin wireless tersebut yang diantaranya Pin 1, 2, 4, 5, 6 dan 7.Merujuk pada library Bill Porter maka pin yang akan dihubungkan pada board arduino adalah sebagai berikut :

  1. Pin 1 (Data) –> Pin Digital 12 Arduino
  2. Pin 2 (Command) –> Pin Digital 11 Arduino
  3. Pin 4 (Ground) –> Pin Ground Arduino
  4. Pin 5 (Power 3.3V) –> Pin 3.3V Arduino
  5. Pin 6 (Attention) –> Pin Digital 10 Arduino
  6. Pin 7 (Clock) –> Pin Digital 13 Arduino
Untuk menghubungkan pin pada wireless stick dan arduino kita membutuhkan yang namanya black housing yang telah di solder dengan pin male header perhatikan gambar di bawah :

Black Housing / female header pin

Pin header Male

Solderlah kabel pada female header pin lalu pada ujung female header solder dengan pin header male sehingga akan terlihat seperti gambar di bawah ini :

Jumper kabel DIY

Wireless Pins & Arduino Pins





Anda dapat menambahkan led bila anda mau seperti robot yang saya buat ada dua led yang terpasang pada body robot satu di depan dan satu dibelakang ,...nah setelah semua pin terhubung maka kita tinggal membuat kode program yang kurang lebihnya seperti dibawah ini :


 #include <PS2X_lib.h> //PS2X Library
int led1 = 4;  //Penambahan Led 1
int led2 = 7;  //Penambahan Led 2
//PS2X - Start
PS2X ps2x; // create PS2 Controller Class

int error = 0;
byte type = 0;
byte vibrate = 0;
//PS2X - End

// Constants for robot wheel.
const int RIGHTSPEED = 255;  //right motor speed
const int LEFTSPEED  = 255;  //left motor speed
int motorR = 5;       //right motor
int dirmotorR = 4;    //motor direction
int motorL = 6;       //left motor
int dirmotorL = 7;    //motor direction

/*
 * Initializes everything. Is run once.
 */
void setup() {
pinMode(led1, OUTPUT);  // Tambahan Led1
pinMode(led2, OUTPUT);  // Tambahan Led2
  //PS2X - Start
  Serial.begin(57600);
  //Serial.begin(9600);           // set up Serial library at 9600 bps
  error = ps2x.config_gamepad(13,11,10,12, true, true);   //setup pins and settings:  GamePad(clock, command, attention, data, Pressures?, Rumble?) check for error
   
  
  if(error == 0)
  {
    Serial.println("Found Controller, configured successful");
    Serial.println("Try out all the buttons, X will vibrate the controller, faster as you press harder;");
    Serial.println("holding L1 or R1 will print out the analog stick values.");
    Serial.println("Go to www.billporter.info for updates and to report bugs.");
  } else if(error == 1)
  {
    Serial.println("No controller found, check wiring, see readme.txt to enable debug. visit www.billporter.info for troubleshooting tips");
  } else if(error == 2)
  {
    Serial.println("Controller found but not accepting commands. see readme.txt to enable debug. Visit www.billporter.info for troubleshooting tips");
  } else if(error == 3)
  {
    Serial.println("Controller refusing to enter Pressures mode, may not support it. ");
  }

  //Serial.print(ps2x.Analog(1), HEX);

  type = ps2x.readType();
    switch(type) {
      case 0:
        Serial.println("Unknown Controller type");
      break;
      case 1:
        Serial.println("DualShock Controller Found");
      break;
      case 2:
         Serial.println("GuitarHero Controller Found");
      break;
      }

  //PS2X - End

}

/*
 * Runs continuously.
 * 1. Update Servo.
 * 2. Check IR range sensor.
 * 3. Move Robot
 */

void loop() {
  //PS2X - Start
  if(error == 1) //skip loop if no controller found
    return;
  if(type == 2) //Guitar Hero Controller
    return; //not used
  else { //DualShock Controller
    ps2x.read_gamepad(false, vibrate);          //read controller and set large motor to spin at 'vibrate' speed

    //if right analog stick is moved on Y axis forward-backward, or X axis right-left turn
    if((ps2x.Analog(PSS_RY) < 64) && ((ps2x.Analog(PSS_RX) >= 64) && (ps2x.Analog(PSS_RX) <= 192)))
    {
      //move forward
       digitalWrite(led1, HIGH);
      Serial.println("FORWARD");
      RMotor(RIGHTSPEED,true); // turn it on going forward
      LMotor(LEFTSPEED,true);  // turn it on going forward
      digitalWrite(led1, LOW);
    }
    else if((ps2x.Analog(PSS_RY) > 192) && ((ps2x.Analog(PSS_RX) >= 64) && (ps2x.Analog(PSS_RX) <= 192)))
    {
      //move backward
      digitalWrite(led2, HIGH);
      Serial.println("BACKWARD");
      RMotor(RIGHTSPEED,false); // turn it on going backward
      LMotor(LEFTSPEED,false);  // turn it on going backward
      digitalWrite(led2, LOW);

    }
    else if((ps2x.Analog(PSS_RX) < 64) && ((ps2x.Analog(PSS_RY) >= 64) && (ps2x.Analog(PSS_RY) <= 192)))
    {
      //move left
      Serial.println("LEFT");
      RMotor(RIGHTSPEED,true); // turn it on going left
      LMotor(LEFTSPEED,false); // turn it on going left
    }
    else if((ps2x.Analog(PSS_RX) > 192) && ((ps2x.Analog(PSS_RY) >= 64) && (ps2x.Analog(PSS_RY) <= 192)))
    {
      //move right
      Serial.println("RIGHT");
      RMotor(RIGHTSPEED,false); // turn it on going right
      LMotor(LEFTSPEED,true);   // turn it on going right
    }
    //using button up, down, right and left for movement
    else if(ps2x.Button(PSB_PAD_UP))
    {
      Serial.print("Up held this hard: ");
      Serial.println(ps2x.Analog(PSAB_PAD_UP), DEC);
      //move forward

      Serial.println("FORWARD");
      RMotor(RIGHTSPEED,true); // turn it on going forward
      LMotor(LEFTSPEED,true);  // turn it on going forward
    }
    else if(ps2x.Button(PSB_PAD_RIGHT))
    {
      Serial.print("Right held this hard: ");
      Serial.println(ps2x.Analog(PSAB_PAD_RIGHT), DEC);
      //move right
      Serial.println("RIGHT");
      RMotor(RIGHTSPEED,false); // turn it on going right
      LMotor(LEFTSPEED,true);   // turn it on going right
    }
    else if(ps2x.Button(PSB_PAD_LEFT))
    {
      Serial.print("LEFT held this hard: ");
      Serial.println(ps2x.Analog(PSAB_PAD_LEFT), DEC);
      //move left
      Serial.println("LEFT");
      RMotor(RIGHTSPEED,true); // turn it on going left
      LMotor(LEFTSPEED,false); // turn it on going left
    }
    else if(ps2x.Button(PSB_PAD_DOWN))
    {
      Serial.print("DOWN held this hard: ");
      Serial.println(ps2x.Analog(PSAB_PAD_DOWN), DEC);
      //move backward
      Serial.println("BACKWARD");
      RMotor(RIGHTSPEED,false); // turn it on going backward
      LMotor(LEFTSPEED,false);  // turn it on going backward
    }
    else
    {
      //stopped
      Serial.println("Robot Stopped!");
      RMotor(0,false); //stopped
      LMotor(0,false); //stopped
    }

  }

  Serial.print("Stick Values:");
  Serial.print(ps2x.Analog(PSS_LY), DEC); //Left stick, Y axis. Other options: LX, RY, RX
  Serial.print(",");
  Serial.print(ps2x.Analog(PSS_LX), DEC);
  Serial.print(",");
  Serial.print(ps2x.Analog(PSS_RY), DEC);
  Serial.print(",");
  Serial.println(ps2x.Analog(PSS_RX), DEC);
  //PS2X - End

}

// right motor
void RMotor(int pwmspeed, boolean forward) {
  analogWrite(motorR, pwmspeed);
  if (forward) {
    digitalWrite(dirmotorR, HIGH);
  }
  else {
    digitalWrite(dirmotorR, LOW);
  }
}

//left motor
void LMotor(int pwmspeed, boolean forward) {
  analogWrite(motorL, pwmspeed);
  if (forward) {
    digitalWrite(dirmotorL, HIGH);
  }
  else {
    digitalWrite(dirmotorL, LOW);
  }
}
Sebelum membuat kode program tersebut anda harus menginstal library yang dapat di download dari http://www.billporter.info/playstation-2-controller-arduino-library-v1-0/ setelah anda mendownload install library tersebut pada directory arduino anda tutorial ini dibuat berdasarkan pada FSR famosastudio.com .

Ok sampai disini tutorial saya  selamat mencoba..........

Minggu, 14 Oktober 2012

Membuat Robot sederhana menggunakan arduino

Ini adalah robot dasar yang pada kedua motornya dikendalikan oleh IC L293D melalui board arduino untuk membuat robot ini kita tidak memerlukan biaya yang sangat mahal baiklah untuk itu saya akan memcoba menjabarkan peralatan apa saja yang di perlukan untuk membuat robot ini

1.  Arduino Board ( Uno, Atau DFRduino) ( RP 319.000 UNO )( RP 249.000 DFRDuino UNO )
2.  PCB Bolong ( RP 6000 )
3.  IC L293D ( Rp 21.500 )
4.  2 Motor DC 6V ( Rp 69.000 )
5.  2 Roda ( Rp 69000 )
6.  9V Batterai ( Rp 27.000 )
7.  4 Batterai atau 6V ( Rp 10.000 )
8.  2 meter kabel pelangi ( Rp 8..000 )
9.  1 Unit PC 
10. Doa

Pada gambar diatas adalah skema dari L293D

Langkah pertama solderlah Pin 4 ,Pin 5,Pin 12 dan Pin 13 dari IC L293D pada ground di pcb kosong

Langkah yang kedua solderlah Pin 1,Pin 9 dan Pin 16 dari IC L293D hubungkan pada  5 Volts pada pcb yang nantinya akan di hubungkan pada 5v di arduino

Langkah ketiga solderlah Pin 8 dari IC L293D dan hubungkan pada kutub positif batterai 6V

Langkah keempat solderlah Pin 3 dari L293D hubungkan pada motor dc 6v sebelah kanan
Langkah kelima solderlah Pin 6 dari L293D hubungkan pada motor dc 6v sebelah kanan

Langkah keenam solderlah Pin 11 dari L293D hubungkan pada motor dc 6v sebelah kiri
Langkah ketujuh  solderlah Pin 14 dari L293D hubungkan pada motor dc 6v sebelah kiri

Sekarang tinggal bagian output pin pada arduino untuk mengontrol motor dc sebelah kanan :
Solderlah Pin 2 dari L293D hubungkan pada pin output arduino
Solderlah Pin 7 dari L293D hubungkan pada pin output arduino

Lalu pin Output Arduino untuk mengontrol motor dc sebelah kiri :
Solderlah Pin 10 dari L293D hubungkan pada pin output arduino
Solderlah Pin 15 dari L293D hubungkan pada pin output arduino

Selanjutnya kita akan memprogram robot dasar ini untuk dapat bergerak kedepan, kekanan, kekiri, dan mundur untuk itulah bukalah sketch program yang telah disertakan pada saat anda membeli arduino setelah terbuka copy paste kan script dibawah ini :

int LeftMotorForward = 10; // Pin 10 motor sebelah kiri yang terhubung pd pin arduino
int LeftMotorReverse = 9; // Pin 9 motor sebelah kiri yang terhubung pd pin arduino

int RightMotorForward = 12; // Pin 12 motor sebelah kanan yang terhubung pd pin arduino
int RightMotorReverse = 13; // Pin 13 motor sebelah kanan yang terhubung pd pin arduino
//-----------------------------------------------------------------------------
void setup()
{
  pinMode(LeftMotorForward, OUTPUT);  // menginisialisasi pin sebagai output.
  pinMode(RightMotorForward, OUTPUT);  // menginisialisasi pin sebagai output.
  pinMode(LeftMotorReverse, OUTPUT);  // menginisialisasi pin sebagai output.
  pinMode(RightMotorReverse, OUTPUT);  // menginisialisasi pin sebagai output.
}
//-----------------------------------------------------------------------------

// pada baris ini akan membuat robot bergerak lurus
void loop()
{
   void Driveforward();

   digitalWrite(RightMotorForward, HIGH);   // Meng ON kan motor sebelah kanan
   digitalWrite(LeftMotorForward, HIGH);   // Meng ON kan motor sebelah kiri
   delay(10000);               // wait for  10 seconds

   digitalWrite(RightMotorForward,LOW);   // Meng OFF kan motor sebelah kanan
   digitalWrite(LeftMotorForward, LOW);   //Meng OFF kan motor sebelah kiri
   delay(10000);               // menunggu 10 detik
//-----------------------------------------------------------------------------
   void Rightturn();

   digitalWrite(RightMotorForward, LOW);   // Meng OFF kan motor sebelah kanan
   digitalWrite(LeftMotorForward, HIGH);   // Meng ON kan motor sebelah kiri
   delay(10000);               //menunggu 10 detik

   digitalWrite(RightMotorForward,LOW);   // Meng OFF kan motor sebelah kanan
   digitalWrite(LeftMotorForward, LOW);   // Meng OFF kan motor sebelah kiri
   delay(10000);               //menunggu 10 detik
//-----------------------------------------------------------------------------
   void Leftturn();

   digitalWrite(RightMotorForward, HIGH);   //Meng ON kan motor sebelah kanan
   digitalWrite(LeftMotorForward, LOW);   // Meng OFF kan motor sebelah kiri
   delay(10000);               // menunggu 10 detik

   digitalWrite(RightMotorForward,LOW);   // Meng OFF kan motor sebelah kanan
   digitalWrite(LeftMotorForward, LOW);   //Meng OFF kan motor sebelah kiri
   delay(10000);   // wait for  10 seconds
//-----------------------------------------------------------------------------
   void Reverse();

   digitalWrite(RightMotorReverse, HIGH);   // Meng ON kan motor sebelah kanan
   digitalWrite(LeftMotorReverse, HIGH);   //Meng ON kan motor sebelah kiri
   delay(10000);               // menunggu 10 detik

   digitalWrite(RightMotorReverse, LOW);   // Meng ON kan motor sebelah kanan
   digitalWrite(LeftMotorReverse, LOW);   // Meng ON kan motor sebelah kiri
   delay(10000);               // menunggu 10 detik
//-----------------------------------------------------------------------------

   void Allstop();

   digitalWrite(RightMotorReverse, LOW);   // Meng ON kan motor sebelah kanan
   digitalWrite(LeftMotorReverse, LOW);   // Meng ON kan motor sebelah kiri
   delay(10000);               // menunggu 10 detik

   digitalWrite(RightMotorForward,LOW);   // Meng OFF kan motor sebelah kanan
   digitalWrite(LeftMotorForward, LOW);   // Meng OFF kan motor sebelah kiri
   delay(10000);    // menunggu 10 detik
//-----------------------------------------------------------------------------
}
Akhirnya selesai sudah robot buatan sendiri oh ya kode diatas dapat diubah-ubah sesuai kebutuhan anda kurang lebihnya mohon maaf,.....akhirnya sampai disini tutorial kali ini selamat mencoba.

ARDUINO

ArduPilot - Arduino Compatible UAV Controller Rp. 319.000,-

        
Arduino Fio Rp. 269.000,-


                                                                
Arduino Leonardo (with headers) Rp. 299.000,-

ArduinoADK Rp. 879.000,-

ArduinoMega2560R3 Rp. 609.000,-

ArduinoProMini328-5V16Mhz-Rp. 219.000,-

ArduinoUnoR3Rp. 319.000,-

DFRduino Mega 2560 V2.0 Rp. 459.000,-

Iteaduino v2.2 Rp. 269.000,-

Pro Micro-5V-16MHz Rp. 339.000,-

How To Buy

Pembayaran bisa di lakukan dengan cara transfer melalui Rekening Bank :


Atau menghubungi no kami di :

Hp  : 0856 - 164 - 6699 dengan Mr Eko / Mrs Dwi
@   : diekonet1@gmail.com

Untuk pengiriman barang kami menggunakan jasa / dapat di ambil langsung di alamat kami :

Jl.Pulau Biak Raya No.18 Perumnas III Bekasi Timur.




Storage

SDModuleShield Rp. 139.000,-

uDRIVE-uSD-G1 Rp. 369.000,-

Programmer

PocketAVRProgrammer Rp 199000

Module

5V Relay Module Rp. 69.000,-

ITEAD SIM900 GPRS GSM Module Rp. 489.000,-

RealTimeClockModuleDS1307 Rp. 159.000,-

Power

4xAABatteryHolder Rp 15000

4xAABatteryHolderWithCover Rp 8000

BreadboardPowerSupply RP 89000

DC-DCBoostConverter-3-34 Rp 49000

LipoBatteryBalanceCharger50W5APlusAdapter12V5A Rp 499000

LithiumPolymerBattery1000mAh7.4V Rp 119000

LithiumPolymerBattery2200mAh7.4V Rp 139000

Power Cell - LiPo Charger-Booster RP 259000