×

Holomonic 3WD Omniwheel Robot

Selanjutnya adalah merakit modul elektronik, seperti Arduino UNO, modul driver motor (motor shield), dan modul bluetooth. Perlu diperhatikan disini kita menggunakan 3 buah dc motor gearbox, oleh karena itu kita memerlukan driver motor yang mampu mengendalikan setidaknya 3-4 buah dc motor sekaligus. Berikut peralatan elektronika dan modul yang kita gunakan :

Untuk pemasangan Arduino UNO dengan Driver Motor Shield cukup sederhana, yaitu ditancapkan sesuai posisi dari pin header antara Arduino dengan Motor Shield, perhatikan gambar berikut ini :

Adapun pin yang digunakan antara Arduino UNO R3 dengan Driver Motor Shield beserta dc motor (beri tanda/ marking pada motor M1, M2, M3) yang terhubung sebagai berikut :

Pin declare pada Script ArduinoTerminal pada Driver Motor ShieldDC Motor Gearbox
4M4 (2 kutub)Motor 1 (2 kutub)
3M3 (2 kutub)Motor 2 (2 kutub)
2M2 (2 kutub)Motor 3 (2 kutub)
Pemasangan antara Kutub Motor Gearbox dan Kutub pada Terminal boleh bebas/ terbalik, nanti kita cek dengan program pada langkah selanjutnya.

Setelah terhubung, kita bisa melakukan test program dengan software Arduino. berikut ini script yang dapat digunakan :

#include <AFMotor.h>

AF_DCMotor Motor3(2);
AF_DCMotor Motor2(3);
AF_DCMotor Motor1(4);

void setup()
{
Motor1.setSpeed(150);
Motor2.setSpeed(150);
Motor3.setSpeed(150);
}

void loop()
{
    Motor1.run(FORWARD); //delante
    Motor2.run(FORWARD);
    Motor3.run(FORWARD);
    delay(1000);
    Motor1.run(RELEASE); //delante
    Motor2.run(RELEASE);
    Motor3.run(RELEASE);
    delay(1000);
    Motor1.run(BACKWARD); //delante
    Motor2.run(BACKWARD);
    Motor3.run(BACKWARD);
    delay(1000);
}

Jika belum memiliki Library daripada AFMotor, dapat didownload disini. Setelah berhasil memprogram, kita cabut USB kabel dari komputer, lalu gunakan power supply dari luar (gunakan baterai AAx4). Kabel power dari baterai dapat dipasang pada port motor shield (terminal screw) dengan Label : EXT_PWR. Perhatikan terdapat jumper pin pada Motor Shield yang harus kita cabut, supaya ketika mau memprogram kembali Arduino UNO (Kabel USB terhubung), tidak terjadi konsleting antara Power Supply baterai dan Komputer.

Hasil dari script pemrograman diatas adalah setiap motor berputar maju (Forward) selama 1 detik, berhenti semua selama 1 detik, kemudian mundur (Backward) selama 1 detik, terus terulang (LOOP). Saatnya kita perhatikan apakah semua roda berputar dengan arah putaran yang sama? Apakah ada putaran yang berbeda? Untuk putaran yang berbeda berarti kita perlu menukar polaritas kutub pada terminal Motor Shield. Hal ini penting dilakukan, agar kita dapat menentukan gerak roda pada langkah selanjutnya. Setelah berhasil, maka kita dapatkan Robot dapat bergerak dengan cara berputar (rotasi) ditempat dalam arah Clock Wise (CW)/ searah jarum jam, diam, lalu berputar dalam arah Counter Clock Wise (CCW)/ berlawanan arah jarum jam.

Langkah selanjutnya adalah menghubungkan Modul Bluetooth (HC-06/ HC-05) dengan Arduino UNO via Motor Shield port. Dikarenakan seluruh pin Arduino UNO tertutup dengan Motor Shield, maka kita menggunakan pin terusan dari Motor Shield untuk dihubungkan dengan modul Bluetooh. Kita gunakan pin A2 dan A3 pada Motor Shield (pin ini adalah pin yang sama pada Arduino A2 dan A3), perhatikan gambar dibawah ini letak pin A2 dan A3 pada Motor Shield :

Module Bluetooth sendiri memerlukan Power Supply dan Ground untuk dapat bekerja, sehingga kita dapat solder semua pin header yang terdapat pada Motor Shield untuk memudahkan pemasangan modul Bluetooth :

Pin Motor ShieldPin Modul Bluetooth
A2Rx (Receiver)
A3Tx (Transmitter)
VccVcc / +5V
GndGND
Gunakan kabel jumper Female-Female untuk memudahkan pemasangan antara Modul Bluetooth dengan Pin Header Motor Shield.

Setelah selesai kita menghubungkan semua pin, kita akan melakukan testing komunikasi antara Arduino UNO dengan Modul Bluetooth tersebut dengan memprogram Arduino UNO menggunakan script berikut :

#include "SoftwareSerial.h"
SoftwareSerial Samsung(A3, A2); // Receiver | Transmitter Bluetooth HC-05/ 06

void setup() {
  Samsung.begin(9600);
}

void loop() {
     while(Samsung.available()){
      Serial.println(Samsung.read());
   }
  }

Pages: 1 2 3