Nusabot V1
MODUL I
ROBOTIKA
===============================================================
1. PENGERTIAN ROBOTIKA
Kata Robot berasal dari bahasa Cekoslowakia, yakni robota, yang berarti pekerja. Robot
diciptakan atas dasar untuk mendukung dan membantu pekerjaan manusia. Istilah ini
dikemukakan oleh Karel Carpec pada tahun 1920. Isaac Asimov mengajukan ada 3 hukum
dari “robotics” dimana berguna untuk melindungi kita dari kecerdasan para robot.
Hukum Pertama: Sebuah robot tidak diperbolehkan melukai manusia, atau berdiam
diri membiarkan manusia celaka. Hukum Kedua: Sebuah robot harus mematuhi perintah
yang diberikan oleh manusia kecuali perintah tersebut bertentangan dengan hukum yang
pertama. Hukum Ketiga: Sebuah robot harus dapat melindungi dirinya sendiri selama itu
tidak bertentangan dengan Hukum yang Pertama dan yang Kedua. Meski Hukum Robot ini
hanya sebuah kutipan dari cerita fiksi yang dituliskan oleh Isaac Asimov, kita sudah tidak
jauh lagi dari era dimana kita memang membutuhkan hukum yang dituliskan oleh Asimov,
tidak ada keharusan untuk menurutinya, namun ini adalah ide yang baik. Area yang
berbahaya bagi keselamatan jiwa manusia, seperti daerah yang mengandung unsur
radioaktif, sulit dijangkau, kemudian kegiatan atau aktifitas manusia yang sifatnya
berulang serta membutuhkan kepresisian, dapat digantikan robot.
Supported By :
A. Robot Beroda
Robot beroda dalam pergerakannya menggunakan roda atau ban, sehingga dapat
berpindah dari titik satu ke titik yang lain. Jenis-jenis robot beroda adalah differential drive,
skid steering, synchro drive, omni wheel, tricycle steering, ackerman steering, dan
articulated drive. Jenis robot beroda di atas diklasifikasikan menurut pengendalian roda
robot.
1. Robot Beroda Satu. Tidak ada yang bisa saya jelaskan disini, selama ini saya belum
menemukan robot yang berjalan menggunakan roda satu. Mungkin karena mekaniknya
yang sulit, juga sistem kontrolnya yang mustahil.
2. Robot Beroda Dua. Atau lebih sering disebut Segway, robot ini memerlukan Sensor
Gyro untuk menjaga keseimbangannya agar bisa tetap berdiri. Sensor Gyro ini, aplikasinya
selain pada robot, juga ada pada setiap Smartphone canggih sekarang.
3. Robot Beroda Tiga. Ada dua jenis robot beroda tiga. Ada yang hanya menggunakan
dua roda yang bisa bergerak, dan roda yang satunya hanya sebagai penyeimbang dan juga
membantu berbelok, tapi tidak ada penggerak dalam rodanya. Dan ada juga yang ketiga
rodanya dapat bergerak, dan selalu menggunakan Omni Wheel, jenis roda yang memiliki
roda-roda kecil didalamnya, memungkinkan robot dapat bergerak kesegala arah.
Supported By :
Castor
Omni Wheel
4. Robot Beroda Empat. Robot beroda empatpun sama. Ada yang hanya dua roda
belakang yang dapat bergerak, dan roda depannya hanya roda biasa. Ada juga yang 4WD,
robot yang keempat rodanya memiliki Actuator dan dapat bergerak.
Supported By :
4WD
5. Robot Beroda Tank. Banyak keuntungan robot yang menggunakan roda tank, salah
satunya robot dapat berjalan pada tempat yang tidak rata, berbatu, bahkan tangga sekalipun.
Supported By :
syncronous drive dan holonomic drive. Pada Gambar dibawah ini merupakan contoh
mobile robot yang bergerak menggunakan roda (wheel robot).
1. Differential Drive
Sistem gerak differential drive terdiri dari dua buah roda yang terpasang pada kiri dan
kanan robot, sistem ini memungkinkan robot berputar di tempat dengan cara memutar
motor dengan arah berlawanan dapat dilihat pada Gambar dibawah Contoh sistem gerak
ini pada kehidupan sehari-hari adalah pada gardan belakang mobil dan mainan mobil radio
kontrol (RC).
2. Trycle Drive
Trycyle drive merupakan sistem gerak dengan tiga buah roda. Dua buah roda dengan satu
poros dihubungkan pada sebuah motor penggerak, sedangkan sebuah roda diberlakukan
sebagai kemudi yang dapat berputar (setir kemudi), ketika berbelok akan didapatkan radius
sepanjang titik pertemuan antara roda depan dengan roda belakang dapat dilihat pada
Supported By :
Gambar dibawah Contoh sistem gerak ini pada kehidupan sehari-hari adalah alat
transportasi becak dan bajaj.
3. Syncronous Drive
Syncronous Drive adalah sistem yang menggunakan semua roda yang terdapat pada robot
untuk dapat bergerak. Pada saat robot berjalan pada permukaan yang tidak rata, maka roda
yang terpengaruh pada permukaan yang tidak rata akan didukung oleh roda yang tidak
terpengaruh, sehingga robot bergerak dengan arah yang tetap dapat dilihat pada Gambar
dibawah. Contoh sistem gerak ini pada kehidupan sehari-hari adalah pada trolly pasar
swalayan.
4. Holonomic Drive
Holonomic drive adalah sistem gerak yang memungkinkan robot bergerak ke segala arah
(dengan penggunaan roda omni-directional), pada gambar dibawah konfigurasi ini
memungkinkan gerakan rotasi dan translasi pada mobile robot.
Supported By :
Gambar Roda sistem gerak Holonimic drive
B. Robot Berkaki
Selain robot beroda, jenis robot lain yang paling banyak dikembangkan adalah robot
berkaki. Robot ini bergerak dengan menggunakan servo, jenis motor yang rotasinya dapat
diatur, dan bahkan servo yang canggih sudah memiliki rangkaain pengontrol didalamnya.
Ada banyak sekali jenis robot berkaki. Berikut jenis-jenis robot berkaki yang dilihat dari
seberapa banyak jumlah kakinya.
1.Robot Berkaki Satu. Sama seperti halnya robot beroda satu, robot berkaki
satupun termasuk sulit mekaniknya. Walaupun begitu masih ada pihak yang
berusaha membuatnya, contohnya ditunjukan digambar bawah ini.
2. Robot Berkaki Dua. Biasa dipanggil Biped, robot ini memiliki 2 kaki dan dapat
berjalan layaknya seperti kaki manusia. Untuk pembelajaran ataupun aplikasi
Supported By :
nyatanya, robot berkaki tidak perlu memiliki badan ataupun bagian lainnya,
cukup kaki sajapun tidak masalah. Dibawah ini adalah contoh robotnya, dibuat
menggunaka Kit Innovati, namanya Bipedinno.
3. Robot Berkaki Tiga. Panggilan robot ini Triped, karena memiliki 3 kaki
gerak dan berjalan robot bisa lebih luas, kemanapun dia inginkan. Contoh
robot Triped dibawah ini bernama Strider.
Romela
Supported By :
4. Robot Berkaki Empat. Sebut saja Quadpod. Contoh robotnya bernama
BigDog, adalah robot berkaki empat buatan Boston Dinamic, perusahaan robot
yang sekarang telah diakuisisi oleh Google. BigDog ini dirancang untuk
keperlun militer, tepatnya untuk membawa amunisi saat perang.
BigDog
Supported By :
6. Robot Berkaki Delapan. Nama kerennya Octapod. Gerakan kakinya
meniru laba-laba, sehingga pergerakan robot ini bisa lebih lincah. Karena
jumlah kakinya banyak, jumlah servo yang dipakaipun tidak perlu servo
yang kuat. Penggunaan mini servo sudah cukup.
C. Robot Tangan
ROBOT TANGAN Sebuah lengan robot adalah jenis lengan mekanik, biasanya diprogram,
dengan fungsi yang sama dengan lengan manusia; lengan mungkin jumlah total dari
mekanisme atau dapat menjadi bagian dari sebuah robot yang lebih kompleks. Link dari
manipulator tersebut dihubungkan oleh sendi sehingga baik gerak rotasi (seperti dalam
robot diartikulasikan) atau translasi (linear) perpindahan. manipulator dapat dianggap
untuk membentuk rantai kinematik. Ujung rantai kinematik manipulator disebut end
effector dan itu adalah analog dengan tangan manusia tangan robot.
Supported By :
THE END EFFECTOR atau tangan robot, dapat dirancang untuk melakukan setiap tugas
yang diinginkan seperti pengelasan, mencengkeram, berputar dll, tergantung pada aplikasi.
Sebagai contoh lengan robot di jalur perakitan otomotif melakukan berbagai tugas seperti
pengelasan dan bagian rotasi dan penempatan selama perakitan. Dalam beberapa keadaan,
emulasi dekat tangan manusia yang diinginkan, seperti pada robot yang dirancang untuk
melakukan perlucutan senjata bom dan pembuangan.
Sebuah robot industri terdiri dari sebuah manipulator robot, power supply, dan pengontrol.
Manipulator robot dapat dibagi menjadi dua bagian, masingmasing dengan fungsi yang
berbeda yaitu:
a. Lengan dan Tubuh - lengan dan tubuh robot digunakan untuk memindahkan
bagian-bagian posisi dan atau alat dalam amplop kerja. Mereka terbentuk dari
tiga sendi dihubungkan dengan link besar.
1. Gantry - robot ini memiliki sendi linier dan dipasang overhead. Mereka juga
disebut robot Cartesian dan bujursangkar
Supported By :
3. Polar- Dasar bersama robot kutub memungkinkan untuk memutar dan sendi
adalah kombinasi jenis putar dan linier. Ruang kerja yang diciptakan oleh
konfigurasi ini bulat.
Supported By :
MODUL II
PENGANTAR ARDUINO
===============================================================
Tujuan :
Supported By :
Arduino Uno R3 adalah papan pengembangan (development board)
mikrokontroler yang berbasis chip ATmega328P. Disebut sebagai papan
pengembangan karena board ini memang berfungsi sebagai arena prototyping
sirkuit mikrokontroller. Dengan menggunakan papan pengembangan, anda akan
lebih mudah merangkai rangkaian elektronika mikrokontroller dibanding jika anda
memulai merakit ATMega328 dari awal di breadboard.
Arduino Uno memiliki 14 digital pin input / output (atau biasa ditulis I/O,
dimana 6 pin diantaranya dapat digunakan sebagai output PWM), 6 pin input
analog, menggunakan crystal 16 MHz, koneksi USB, jack listrik, header ICSP dan
tombol reset. Hal tersebut adalah semua yang diperlukan untuk mendukung sebuah
rangkaian mikrokontroler. Cukup dengan menghubungkannya ke komputer dengan
kabel USB atau diberi power dengan adaptor AC-DC atau baterai, anda sudah dapat
bermain-main dengan Arduino UNO anda tanpa khawatir akan melakukan sesuatu
yang salah. Kemungkinan paling buruk hanyalah kerusakan pada chip ATMega328,
yang bisa anda ganti sendiri dengan mudah dan dengan harga yang relatif murah.
Kata " Uno " berasal dari bahasa Italia yang berarti "satu", dan dipilih untuk
menandai peluncuran Software Arduino (IDE) versi 1.0. Arduino. Sejak awal
peluncuran hingga sekarang, Uno telah berkembang menjadi versi Revisi 3 atau
biasa ditulis REV 3 atau R3. Software Arduino IDE, yang bisa diinstall di Windows
maupun Mac dan Linux, berfungsi sebagai software yang membantu anda
memasukkan (upload) program ke chip ATMega328 dengan mudah.
Tegangan operasi 5V
Supported By :
14 buah, 6 diantaranya
Digital I/O pin
menyediakan PWM
SRAM 2 KB
EEPROM 1 KB
1. Pemrograman
Supported By :
Arduino ISP Arduino Uno R3 telah dilengkapi dengan chip ATmega16U2 yang
telah diprogram sebagai konverter USB to Serial. Firmware ATmega16U2 di load
oleh DFU bootloader, dan untuk merubahnya anda dapat menggunakan software
Atmel Flip (Windows) atau DFU programmer (Mac OSX dan Linux), atau
menggunakan header ISP dengan menggunakan hardware external programmer.
Board Arduino Uno dapat ditenagai dengan power yang diperoleh dari
koneksi kabel USB, atau via power supply eksternal. Pilihan power yang digunakan
akan dilakukan secara otomatis
External power supply dapat diperoleh dari adaptor AC-DC atau bahkan
baterai, melalui jack DC yang tersedia, atau menghubungkan langsung GND dan
pin Vin yang ada di board. Board dapat beroperasi dengan power dari external
power supply yang memiliki tegangan antara 6V hingga 20V. Namun ada beberapa
hal yang harus anda perhatikan dalam rentang tegangan ini. Jika diberi tegangan
kurang dari 7V, pin 5V tidak akan memberikan nilai murni 5V, yang mungkin akan
membuat rangkaian bekerja dengan tidak sempurna. Jika diberi tegangan lebih dari
12V, regulator tegangan bisa over heat yang pada akhirnya bisa merusak pcb.
Dengan demikian, tegangan yang di rekomendasikan adalah 7V hingga 12V
Supported By :
Pin 5V. Ini adalah pin output dimana pada pin tersebut mengalir tegangan 5V yang
telah melalui regulator
3V3. Ini adalah pin output dimana pada pin tersebut disediakan tegangan 3.3V
yang telah melalui regulator
IOREF. Ini adalah pin yang menyediakan referensi tegangan mikrokontroller.
Biasanya digunakan pada board shield untuk memperoleh tegangan yang sesuai,
apakah 5V atau 3.3V
1. Memori
Serial, terdiri dari 2 pin : pin 0 (RX) dan pin 1 (TX) yang digunakan untuk
menerima (RX) dan mengirim (TX) data serial.
External Interrups, yaitu pin 2 dan pin 3. Kedua pin tersebut dapat digunakan
untuk mengaktifkan interrups. Gunakan fungsi attachInterrupt()
PWM: Pin 3, 5, 6, 9, 10, dan 11 menyediakan output PWM 8-bit dengan
menggunakan fungsi analogWrite()
SPI : Pin 10 (SS), 11 (MOSI), 12 (MISO), dan 13 (SCK) mendukung komunikasi
SPI dengan menggunakan SPI Library
Supported By :
LED : Pin 13. Pada pin 13 terhubung built-in led yang dikendalikan oleh digital
pin no 13.
TWI : Pin A4 (SDA) dan pin A5 (SCL) yang mendukung komunikasi TWI dengan
menggunakan Wire Library
Arduino Uno memiliki 6 buah input analog, yang diberi tanda dengan A0,
A1, A2, A3, A4, A5. Masing-masing pin analog tersebut memiliki resolusi 10 bits
(jadi bisa memiliki 1024 nilai). Secara default, pin-pin tersebut diukur dari ground
ke 5V, namun bisa juga menggunakan pin AREF dengan menggunakan fungsi
analogReference(). Beberapa in lainnya pada board ini adalah :
3. Komunikasi
Supported By :
4. Reset Otomatis (software)
Supported By :
MODUL III
PEMMROGRAMAN ARDUINO
==========================================================
Tujuan :
Pendahuluan
Untuk installasi software dan board arduino bisa baca disini atau disumbernya
langsung disini.
1. ekspresi,
2. statemen,
3. blok statemen
4. blok fungsi
Supported By :
Fungsi setup() dijalankan pertama kali setiap board arduino
dihidupkan sedangkan fungsi loop() dijalankan terus menerus selama board
arduino hidup. Pada program standar C ANSI fungsi yg pertama dijalankan adalah
fungsi main() pada C arduino adalah fungsi setup().
void loop()
{
statement
}
contoh program
Supported By :
// pin 13 diberi nama led:
void setup() {
pinMode(led, OUTPUT);
void loop() {
delay(1000);
delay(1000);
Supported By :
VARIABLE SCOPE
Variable dan konstanta lokal hanya dapat diakses didalam fungsi tempat
dideklarasikannya.
Type Data
Supported By :
CONTROL STATEMENT
• While Loop
statement1;
statement2;
…..
while(expression)
statement;
• Do/While Loop
statement1;
statement2;
Supported By :
atau jika satement hanya 1 baris
do
statement;
while (expression);
• For Loop
for (expr1; expr2; expr3) //laksanakan perulangan sebanyak expr2 dimulai dari
expr1.
statement1;
statement2;
statement;
• If/Else
statement1;
statement2;
Supported By :
…
if(expression)
statement;
• SWITCH/CASE
switch (expression)
statement1;
statement2;
statement3;
statement4;
statement5;
statement6;
default:
Supported By :
statement8;
break, continue, & goto statements digunakan untuk merubah alur eksekusi untuk
statement pengulangan for, while, do/while, and switch .
Break
break statement digunakan untuk keluar dari pengulangan for, while, do/while, atau
switch . break keluar dari blok pengulangan dimana dia berada saja.
Continue
do/while, atau for loop. continue sama seperti break pengulangan akan berhenti
pada point yg dituju (di skip), bedanya continue akan memulai loop lagi, dari atas,
sedangkan break memaksa keluar dari loop / pengulangan .
setup()
loop()
int i;
Supported By :
{
if(i==3)
continue;
printf(%d, i )
Variable = nilai ,
Operator Arithmetic :
Perkalian *
Pembagian /
Modulo %
Penjumlahan +
Supported By :
Operator Logika
AND &&
OR ||
Operator relasional
sama dengan ==
increment
perbedaaanya adalah untuk ++X , tambahkan dulu nilai X dgn 1 baru di proses baris
kode tsb, sedangkan X++ , proses dulu baris code baru tambahkan nilai X dgn 1
deccrement
perbedaaanya adalah untuk –Y , kurangi dulu nilai Y dgn 1 baru di proses baris
kode tsb, sedangkan Y– , proses dulu baris code tsb baru kurangi nilai Y dgn 1
Supported By :
Compound
compound digunakan hanya untuk menyingkat baris expresi saja contoh nya sbb
a += 3; artinya a = a + 3
b -= 3; artinya b = b – 3
c *= 3; artinya c = c * 3
d /= a; artinya d = d / a
a |= 3; artinya a = a OR 3
b &= 3; artinya b = b AND 3
c ^= 3; artinya c = c ^ 3
kondisonal Expressi
if(expression_A)
expression_B;
else
expression_C;
IF(A>10)
x=5;
Else
Supported By :
{
x= 22
..
FUNGSI
yang dimaksud fungsi adalah sebuah blok statement yg melaksanakan tugas tertentu dan
bisa
program bahasa C terdiri dari fungsi fungsi dan sebuah program c minimal terdiri dari 1
fungsi .
fungsi terdiri dari dua bagian utama yaitu kepala fungsi dan blok fungsi
statement
kepala fungsi terdiri dari type return value, nama fungsi , types dan nama parameter(jika
ada) .
jika return value atau parameter tdk ada maka typennya ditulis void seperti dibawah ini
statement
Supported By :
}
Arduino Library
Digital Input
memerintahkan Arduino apakah pin akan diset sbg digital input atau output. Mode dapat
berupa Input atau OUTPUT.
Membaca nilai dari pin digital. Nilai yg didapat dapat berupa 1 atau 0.
Analog Input
Membaca nilai dari pin analog. Nilai yg didapat adalah antara 0 dan 1023.
Supported By :
MODUL IV
==========================================================
Tujuan :
Waktu : 2 x 45 menit
==========================================================
Magnet
Secara sederhana magnet dapat diartikan sebagai benda (besi) yang mempunyai
inti atom. Atom tersebut mempunyai sejumlah elektron yang selalu bergerak mengitari inti
atom ( proton dan neutron ).Besi magnet mempunyai 2 (dua) kutub (ujung), yaitu kutub
utara dan kutub selatan. Pada kutub-kutub itulah terpusatkan gaya magnet, yaitu gaya tarik
dan gaya tolak. Dari percobaan-percobaan yang telah dilakukan dengan mendekatkan dua
buah magnet didapatkan kesimpulan bahwa untuk magnet yang memiliki kutub yang sama
maka akan timbul gaya tolak menolak sedangkan untuk magnet yang memiliki kutub yang
berbeda akan menghasilkan gaya tarik menarik.
a. b.
Gambar 1. . Kutub sejenis b. kutub tidak sejenis
Supported By :
Magnet tetap adalah magnet yang diperoleh dari dalam alam ( penambangan ).
Magnet ini berupa jenis besi yang disebut Lodstone. Sifat atom magnet tetap tidak
sama dengan sifat atom magnet tidak tetap. Pada bahan magnat, garis edar elektron
pada atom yang satu dan lainnya membentuk formasi yang sejajar dan selalu tetap.
Sedangkan pada bahan yang bukan magnet, arah garis edar elektron pada setiap
atom tidak teratur.
Supported By :
Magnet ini dibuat dari baja lunak (baja karbon rendah). Baja ini dipilih karena
sifat baja lunak sifat kemagnetannya relatif mudah dihilangkan. Penghilangan
sifat magnet ini memang diperlukan untuk hampir semua peralatan magnet hasil
perlakuan listrik karena seringkali kutub-kutub magnetnya harus berubah-ubah
pada kecepatan tertentu. Untuk membentuk magnet ini, diperlukan elektro-
magnet sebagai bahan sumber medan magnet.
Ada 3 (tiga) cara yang dapat dilakukan untuk memperkuat medan magnet pada
elektromagnet :
Supported By :
menghasilkan medan magnet. Dengan demikian medan total tergantung
dari banyaknya elektron yang mengalir setiap detik atau kuat medan total
ditentukan oleh besarnya arus yang mengalir pada kumparan.
Motor DC
Motor arus searah (motor DC) telah ada selama lebih dari seabad. Keberadaan
motor dc telah membawa perubahan besar sejak dikenalkan motor induksi. Mesin listrik
dapat berfungsi sebagai motor listrik apabila didalam motor listrik tersebut terjadi proses
konversi dari energi listrik menjadi energi mekanik.
Motor dc memerlukan suplai tegangan yang searah pada kumparan jangkar dan
kumparan medan untuk diubah menjadi energi mekanik. Pada motor DC kumparan atau
medan magnet disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut
rotor (bagian yang berputar). Jika tejadi putaran pada kumparan jangkar dalam pada medan
magnet, maka akan timbul gaya gerak listrik atau tegangan (GGL) yang berubah-ubah arah
pada setiap setengah putaran, sehingga merupakan tegangan bolak-balik.
Prinsip dari arus searah adalah membalik phasa negatif dari gelombang sinusoidal
menjadi gelombang yang mempunyai nilai positif dengan menggunakan komutator,
dengan demikian arus yang berbalik arah dengan kumparan jangkar yang berputar dalam
medan magnet, dihasilkan tegangan (GGL) seperti yang terlihat pada Gambar dibawah ini
sebagai berikut :
Supported By :
berlangsungnya proses perubahan energi, daerah tersebut dapat dilihat pada
gambar dibawah ini :
Dengan memberi arus pada kumparan jangkar yang diselimuti oleh medan
magnet maka akan menimbulkan perputaran pada motor. Agar proses perubahan
energi mekanik tersebut dapat berlangsung secara sempurna, maka tegangan
sumber harus lebih besar dari pada tegangan gerak yang disebabkan reaksi lawan.
2. Konstruksi Motor DC
Supported By :
Gambar 6. Konstruksi Motor dc
Magnet yang berada pada dua sisi kanan dan kiri disebut dengan stator
yang merupakan magnet statik dengan dua kutub yaitu utara dan selatan yang
berfungsi untuk menciptakan medan magnet statik diantara area rotor agar dapat
menghasilkan gerakan pada rotor.
Supported By :
MODUL V
==========================================================
Tujuan :
==========================================================
Motor Driver
Supported By :
L293
L293 adalah komponen IC motor driver yang dirancang untuk dapat mendrive atau
mengendalikan motor dua arah dengan arus maksimal sebesar 1A pada voltase 4.5v sampai
dengan 36v. L293D sama halnya dengan l293, hanya saja L293D dapat mendrive motor
dua arah dengan arus maksimal sebesar 600mA. IC L293D merupakan tipe IC yang banyak
beredar dipasaran dibandingkan dengan tipe L293, oleh sebab itu banyak para disainer
system motor driver menggunakan IC tipe L293D. IC L293 memiliki 15 pin yang berikut
tertera pada gambar dibawah ini.
Supported By :
INPUT 1 merupakan jalur logika pengaktif OUTPUT1
L298
Supported By :
Vin Input catu daya control 2.3 ~ 7 Volt
Supported By :
MODUL VI
Merakit Nusabot V1
==========================================================
Tujuan :
==========================================================
https://www.youtube.com/watch?v=uT65FsH5Y7c&t=707s
Supported By :
MODUL VII
==========================================================
Tujuan :
Supported By :
2. Pengkabelan Robot mobil
Supported By :
int enA = 6;
int in1 = 8;
int in2 = 7;
// motor two
int enB = 3;
int in3 = 5;
int in4 = 2;
void setup()
void maju()
{ digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 200);
// turn on motor B
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, 200);
void kanan()
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enA, 200);
// turn on motor B
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
Supported By :
analogWrite(enB, 200);
void kiri()
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 200);
// turn on motor B
digitalWrite(in3,HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 200);
void mundur()
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 200);
void berhenti()
// this function will run the motors in both directions at a fixed speed
// turn on motor A
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 0);
Supported By :
// turn on motor B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 0);
void loop() {
maju();
delay(1000);
mundur();
delay(1000);
Program di atas akan menjalankan robot berjalan maju 1 detik dan berjalan
selama 1 detik juga.
Jika Robot Tidak maju dan mudur melainka belok ke kanan atau ke
kiri, rubah di void maju, void mundur, void kanan, void kiri. Sesuaikan
dengan gerak robot. Misal Robot di program Maju tapi robot berjalan
mundur, jadi rubah void maju menjadi void mundur dan yang tadinya void
mundur di rubah jadi void maju (jadi tinggal di rubah saja. Atau robot di
program belok kanan tapi robot bergerak kea rah kiri, rubah saja void kanan
jadi void kiri dan sebaliknya.
Supported By :
Rubah program yang ada di void loop menjadi :
void loop() {
maju();
delay(1000);
mundur();
delay(1000);
kanan();
delay(2000);
kiri();
delay(2000);
Latihan :
Jawaban
enA = 255
enB = 180
Supported By :
void maju()
{ digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 250);
// turn on motor B
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, 180);
void loop() {
maju();}
Supported By :
2. Buat robot berjalan membentuk kotak
Cari berapa lama robot berbelok kanan hingga berbelok 900 dengan merubah
delay
misal
void loop() {
kanan();
delay(200);
void loop() {
maju();
delay(200);
kanan();
delay(200);
Supported By :
3. Buat robot berjalan membentuk zig-zag
Logika
Maju
Kanan
Maju
Kiri
Rubah gerak kanan dan kiri robot dengan mencari berapa waktu (delay) yang
tepat supaya robot berbelok 450
Supported By :
MODUL VIII
==========================================================
Tujuan :
===========================================================
Sensor ultrasonik adalah sensor yang berfungsi untuk merubah besaran fisis
(suara) menjadi besaran listrik maupun sebaliknya yang dikonversi menjadi jarak.
Konsep dasar dari sensor ini yaitu memanfaatkan prinsip pemantulan gelombang
suara yang dapat diaplikasikan untuk menghitung jarak benda dengan frekuensi
yang ditentukan sesuai dengan sumber oscilator.
Supported By :
Gelombang ultrasonic merupakan gelombang suara yang memiliki frekuensi tinggi
yaitu pada kisaran 20 kHz.
Bunyi ini tidak bisa di dengar dengan telinga normal manusia, hanya bisa didengar
oleh sistem pendengaran pada kelelawar, anjing, lumba-lumba, dan kucing.
Dan sifat dari gelombang ini yaitu hanya bisa merambat melalui zat cair, padat, dan
gas.
Meskipun begitu pada gelombang bunyi ultrasonik akan mudah diserap oleh bahan
– bahan tertentu seperti bahan dari busa maupun tekstil .
Cara Kerja
Sensor ini dimulai dari gelombang ultrasonik dengan frekuensi tertentu yang
dibangkitkan melewati alat yang disebut juga dengan nama piezoelektrik sebagai
transmitter.
Biasanya alat ini akan memancarkan gelombang pada suatu target dan jika sudah
mengenai permukaan target, maka gelombang tersebut akan terpantulkan kembali.
Pantulan gelombang tersebut akan diterima oleh piezoelektrik (receiver) dan
kemudian sensor akan mengkalkulasi perbedaan antara waktu pengiriman dan
waktu gelombang pantul yang diterima.
Supported By :
ilustrasi prinsip kerja sensor ultrasonic
Keterangan :
Pemancar ultrasonik akan memancarkan gelombang dengan frekuensi 40kHz
dengan jeda waktu tertentu.
Kecepatan rambat gelombang bunyi yaitu kisaran 340 m/s.
Sesudah gelombang pantulan mengenai alat penerima, gelombang tersebut akan
diolah untuk dihitung jarak benda tersebut.
Rumus jarak benda dapat dihitung dengan rumus sebagai berikut :
S = 340.t/2
S = Jarak
t = Selisih waktu dipancarkan dan waktu diterima gelombang
Bagian – bagian dari sensor ultrasonic antara lain :
1. Piezoelektrik
Berfungsi sebagai alat pengubah energi listrik dijadikan menjadi energi mekanik.
Material dasar yang terdapat pada piezoelektrik yang menghasilkan medan listrik
saat terjadi tekanan mekanis dan sebaliknya.
Supported By :
Misalnya saja rangkaian pengukur dioperasikan pada mode pulsa dengan unsur
piezoelektrik yang sama, sehingga bisa digunakan sebagai mode reiceiver dan
transmitter.
Frekuensi dihasilkan tergantung dari osilator yang terpasang dan itu akan
disesuaikan dengan frekuensi kerja dari transduser.
2. Transmitter
Merupakan alat yang mempunyai peran sebagai pemancar gelombang dengan
frekuensi 40 kHz yang bersumber dari osilator. Frekuensi tersebut dihasilkan dari
rangkaian osilator serta amplifier sinyal / penguat sinyal.
Pada amplifier sinyal akan menghasilkan sinyal listrik yang diumpankan ke
piezoelektrik dan terjadilah reaksi mekanik.
Pada proses itu dimana piezoelektrik akan memancarkan gelombang sesuai dengan
sumber osilatornya.
3. Receiver
terdiri dari transduser ultrasonik yang memakai piezoelektrik juga yang difungsikan
sebagai penerima gelombang pantulan.
Bahan piezoelektrik mempunyai reaksi yang reversible, terdapat elemen keramik
yang berfungsi sebagai pembangkit tegangan listrik.
Pada waktu gelombang datang dengan kriteria frekuensi yang resonan dan pada saat
itu akan menggetarkan bahan piezoelektrik.
Spesifikasi
Modul yang ada dipasaran yang sering digunakan untuk arduino yaitu tipe HC-
SR04 (seperti gambar diatas). Spesifikasi dari sensor ultrasonic tersebut :
==========================================================
Tujuan :
Robot avoider/ robot halang rintang merupakan sebuah robot yang bergerak
menggunakan 2 buah motor DC yang dikontrol menggunakan sensor ultrasonic Hc-
sr04 sebagai alat deteksi jarak dan dijalankan mengunakan Microkontroller
Arduino. Cara kerja robot ini yaitu robot akan berjalan terus selama sensor
ultrasonic tidak mendeteksi halangan. Apabila robot mendeteksi halangan dengan
jarak yang ditentukan maka, robot akan memeriksa keadaan dari kanan dan kiri
robot, apakah di kanan robot ada halangan atau di kiri robot ada halangan. Agar
robot dapat mendeteksi sisi kanan dan kiri robot maka sensor ultrasonic akan di
putar dengan servo motor. Jika di sebelah kiri tidak ada halangan maka robot akan
berbelok ke kiri dan sebaliknya. Dan berikut tutorial bagaimana cara membuat
robot avoider/ robot halang rintang.
1. Pengkabelan robot pendeteksi dinding tanpa servo
Supported By :
Hubungkan kabel pada Robot Nusabot sesuai dengan gambar di atas dan pin di
bawah ini :
Pin Trigger sensor ultrasonic ==> Pin 11 Arduino
Pin Echo sensor ultrasonic ==> Pin 9 Arduino
Pin In1 Driver Motor ==> Pin 8 Arduino
Pin In2 Driver Motor ==> Pin 7 Arduino
Pin In3 Driver Motor ==> Pin 5 Arduino
Pin In4 Driver Motor ==> Pin 2 Arduino
Pin ENA-bawah Driver Motor ==> Pin 6 Arduino
Pin ENB-bawah Driver Motor ==> Pin 3 Arduino
Pin ENA-atas Driver Motor ==> Pin 5V Arduino
Pin ENB-atas Driver Motor ==> Pin 5V Arduino
OUT1 dan OUT2 Driver Motor ==> Motor 1
OUT3 dan OUT4 Driver Motor ==> Motor 2
Pin 12V Driver Motor ==> Hubungkan ke baterai
Pin GND Driver Motor ==> Hubungkan ke Ground(-) Baterai dan
Ground(GND) Arduino
Kaki vcc pada masing-masing komponen hubungkan ke sumber
power positif 5v (bisa dari 5v Arduino)
Kaki gnd/ground pada masing-masing komponen hubungkan ke
sumber negatif power (dihubungkan ke pin gnd Arduino)
Program ;
#define trigPin1 11
#define echoPin1 9
int enA = 6;
int in1 = 8;
int in2 = 7;
// motor two
Supported By :
int enB = 3;
int in3 = 5;
int in4 = 2;
void setup()
Serial.begin (9600);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
void mundur()
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 255);
void kanan()
// this function will run the motors in both directions at a fixed speed
// turn on motor A
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 255);
// turn on motor B
digitalWrite(in3,LOW);
digitalWrite(in4, HIGH);
Supported By :
// set speed to 200 out of possible range 0~255
analogWrite(enB, 255);
void kiri()
// this function will run the motors in both directions at a fixed speed
// turn on motor A
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enA, 255);
// turn on motor B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 255);
void maju()
// this function will run the motors in both directions at a fixed speed
// turn on motor A
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enA, 255);
// turn on motor B
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, 255);
Supported By :
}
void berhenti()
// this function will run the motors in both directions at a fixed speed
// turn on motor A
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 50);
// turn on motor B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 50);
void ultrasonik()
SonarSensor(trigPin1, echoPin1);
FrontSensor = distance;
Serial.print(FrontSensor);
Serial.print(" - ");
if(FrontSensor <=30) // untuk merubah jarak robot dengan dinding lebih kecil 30 cm
{ berhenti();
delay(1000);
mundur();
delay(1500);
kiri();
delay(500);
void loop() {
Supported By :
maju();
ultrasonik();
delay(100);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
Cek Terlebih dahulu di Serial Monitor pada software Arduino, apakah di serial
monitor menampilkan data dari sensor ultrasonik, jika belim coba cek lagi kabel
pada pin ultrasonik sr04 ke arduino sudah benar?
Supported By :
Catatan :
void ultrasonik()
SonarSensor(trigPin1, echoPin1);
FrontSensor = distance;
Serial.print(FrontSensor);
Serial.print(" - ");
if(FrontSensor <=30) // untuk merubah jarak robot dengan dinding lebih kecil 30 cm
{ berhenti();
delay(1000);
mundur();
delay(1500);
kiri();
delay(500);
Supported By :
MODUL X
==========================================================
Tujuan :
Hubungkan kabel pada Robot Nusabot sesuai dengan gambar di atas dan pin di
bawah ini :
Pin Trigger sensor ultrasonic ==> Pin 11 Arduino
Pin Echo sensor ultrasonic ==> Pin 9 Arduino
vcc pada sensor ultrasonic ==> Pin 13
Pin In1 Driver Motor ==> Pin 8 Arduino
Pin In2 Driver Motor ==> Pin 7 Arduino
Pin In3 Driver Motor ==> Pin 5 Arduino
Pin In4 Driver Motor ==> Pin 2 Arduino
Pin ENA-bawah Driver Motor ==> Pin 6 Arduino
Supported By :
Pin ENB-bawah Driver Motor ==> Pin 3 Arduino
Pin ENA-atas Driver Motor ==> Pin 5V Arduino
Pin ENB-atas Driver Motor ==> Pin 5V Arduino
OUT1 dan OUT2 Driver Motor ==> Motor 1
OUT3 dan OUT4 Driver Motor ==> Motor 2
Pin 12V Driver Motor ==> Hubungkan ke baterai
Pin GND Driver Motor ==> Hubungkan ke Ground(-) Baterai dan
Ground(GND) Arduino
Kaki vcc pada masing-masing komponen hubungkan ke sumber
power positif 5v (bisa dari 5v Arduino)
Kaki gnd/ground pada masing-masing komponen hubungkan ke
sumber negatif power (dihubungkan ke pin gnd Arduino)
Program ;
#include <NewPing.h>
int enA = 6;
int in1 = 8;
int in2 = 7;
// motor two
int enB = 3;
int in3 = 5;
int in4 = 2;
#define trig_pin 11
#define echo_pin 9
Supported By :
NewPing sonar(trig_pin, echo_pin, maximum_distance); //sensor function
void setup(){
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
servo_motor.write(90);
delay(2000);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
void berhenti()
// this function will run the motors in both directions at a fixed speed
// turn on motor A
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 10);
// turn on motor B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
Supported By :
// set speed to 200 out of possible range 0~255
analogWrite(enB, 10);
void maju(){
if(!goesForward){
goesForward=true;
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, 200);
}}
void mundur(){
goesForward=false;
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 200);
// turn on motor B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 200);
void kanan(){
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enA, 200);
// turn on motor B
Supported By :
digitalWrite(in3,HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 200);
void kiri(){
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 200);
// turn on motor B
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, 200);
void Sonar()
int distanceRight = 0;
int distanceLeft = 0;
delay(50);
berhenti();
delay(500);
mundur();
delay(200);
berhenti();
delay(500);
distanceRight = lookRight();
delay(300);
Supported By :
distanceLeft = lookLeft();
delay(300);
kanan();
delay(350);
berhenti();
delay(500);
else{
kiri();
delay(350);
berhenti();
delay(500);
else{
maju();
distance = readPing();
void loop(){
Sonar();
int lookRight(){
servo_motor.write(20);
delay(500);
delay(100);
servo_motor.write(90);
return distance;
Supported By :
int lookLeft(){
servo_motor.write(180);
delay(500);
delay(100);
servo_motor.write(90);
return distance;
delay(100);
int readPing(){
delay(70);
int cm = sonar.ping_cm();
if (cm==0){
cm=250;
return cm;
Catatan : Robot akan mendeteksi bagian mana yang pada dinding yang
lebih jauh, jika disebelah kanan robot ada dinding robot akan berbelok
kearah kiri, dan juga sebaliknya, bila robot berbelok kea rah yang ada
dindingnya rubah pada moving void kanan dan void kiri, seperti pada materi
moving.
Coba rubah delay moving robot pada void Sonar program di atas,
supaya dapat mengetahui perbedaan. Dan coba rubah jarak ultrasonic pada
if (distance <= 15){ <<< menjadi 30 (yaitu 30 cm)
Skema Robot, >>> Maju>>> ada Objek >>> Mundur>>>belok
Kanan/Kiri, Rubahlah delay pada mundur atau belok kanan/kiri di void sonar
sesuai yang kalian inginkan
Supported By :
MODUL XI
==========================================================
Tujuan :
Module Bluetooth HC-05 adalah module komunikasi nirkabel via bluetooth yang
dimana beroperasi pada frekuensi 2.4GHz dengan pilihan dua mode konektivitas.Mode 1
berperan sebagai slave atau receiver data saja, mode 2 berperan sebagai master atau dapat
bertindak sebagai transceiver. Pengaplikasian komponen ini sangat cocok pada project
elektronika dengan komunikasi nirkabel atau wireless.
Aplikasi yang dimaksud antara lain aplikasi sistem kendali, monitoring, maupun
gabungan keduanya. Antarmuka yang dipergunakan untuk mengakses module ini yaitu
serial TXD, RXD, VCC serta GND. Serta terdapat LED (built in) sebagai indikator koneksi
bluetooth terhadap perangkat lainnya seperti sesama module, dengan smartphone android,
dan sebagainya.
Module ini dapat digunakan sebagai mode slave (Rx), maupun mode master (TX) dan
memiliki 2 metode konfigurasi yaitu AT Mode dan Communication Mode. Pada AT Mode
berfungsi sebagai pengaturan konfigurasi dari HC-05, sedangkan pada Communication
Mode berfungsi sebagai komunikasi nirkabel dengan perangkat atau piranti lainnya.
Supported By :
Hubungkan kabel pada Robot Nusabot sesuai dengan gambar di atas dan pin di
bawah ini :
Pin TX BT HC 05 ==> Pin 0 arduino (RX) >> lepaskan kabel bila
menguplod program dari software arduino
Pin RX BT HC 05 ==> Pin 0 arduino (TX)
Pin In1 Driver Motor ==> Pin 8 Arduino
Pin In2 Driver Motor ==> Pin 7 Arduino
Pin In3 Driver Motor ==> Pin 5 Arduino
Pin In4 Driver Motor ==> Pin 2 Arduino
Pin ENA-bawah Driver Motor ==> Pin 6 Arduino
Pin ENB-bawah Driver Motor ==> Pin 3 Arduino
Pin ENA-atas Driver Motor ==> Pin 5V Arduino
Pin ENB-atas Driver Motor ==> Pin 5V Arduino
OUT1 dan OUT2 Driver Motor ==> Motor 1
OUT3 dan OUT4 Driver Motor ==> Motor 2
Pin 12V Driver Motor ==> Hubungkan ke baterai
Pin GND Driver Motor ==> Hubungkan ke Ground(-) Baterai dan
Ground(GND) Arduino
Kaki vcc pada masing-masing komponen hubungkan ke sumber
power positif 5v (bisa dari 5v Arduino)
Kaki gnd/ground pada masing-masing komponen hubungkan ke
sumber negatif power (dihubungkan ke pin gnd Arduino)
Supported By :
Program ;
//speed of motors betwen 0 and 255, if you like you can change it
int enA = 6;
int in1 = 8;
int in2 = 7;
// motor two
int enB = 3;
int in3 = 5;
int in4 = 2;
char command;
void setup() {
Serial.begin(9600);
pinMode(12, OUTPUT);
digitalWrite(12, HIGH);
void berhenti()
// this function will run the motors in both directions at a fixed speed
// turn on motor A
digitalWrite(in1, HIGH);
Supported By :
digitalWrite(in2, LOW);
analogWrite(enA, 2);
// turn on motor B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 2);
void kanan(){
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 250);
// turn on motor B
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, 250);
void kiri(){
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 250);
void maju(){
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
Supported By :
// set speed to 200 out of possible range 0~255
analogWrite(enA, 250);
// turn on motor B
digitalWrite(in3,HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 250);
void mundur(){
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enA, 250);
// turn on motor B
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, 250);
void loop() {
command = Serial.read();
berhenti();
switch(command){
case 'F':
maju();
break;
case 'B':
mundur();
break;
Supported By :
case 'L':
kiri();
break;
case 'R':
kanan();
break;
Supported By :
2. Buka aplikasi Bluetooth RC Controller pilih Connect to car pada
option menu
Catatan : Bila Masih salah saat di tekan rubah moving sesuai dengan fungsi
button
Supported By :
MODUL XII
==========================================================
Tujuan :
Robot ini mendeteksi garis dengan menggunakan sensor infrared yang terpasang
padanya. Data hasil pembacaan sensor dikirim ke mikrokontroler, kemudian
mikrokontroler akan menggunakan data tersebut untuk memutuskan arah gerak robot. Pada
programnya juga dapat ditanamkan logika fuzzy dan PID untuk meningkatkan
responsibilitas robot satu ini.
Dalam industri, robot ini dimanfaatkan untuk mengangkut barang dalam jumlah
kecil maupun besar dalam satu jalur yang tidak memiliki percabangan. Desain dan
spesifikasi robot line follower dibuat dengan menyesuaikan fungsi yang akan
dijalankannya. Jika robot line follower dirancang untuk mengangkut barang yang berat,
maka kapasitas motor yang digunakan juga harus besar agar robot ini dapat menjalankan
tugasnya dengan baik.
Supported By :
Gambar Kemungkinan Posisi Sensor Proximity Pada Line
Setelah mengetahui kemungkinan-kemungkinan posisi sensor, maka
selanjutnya harus didefinisikan aksi dari setiap kondisi tersebut. Perhatikan tabel
berikut ini :
Posisi
Aksi Robot Roda Kiri Roda Kanan
Sensor
Supported By :
1. Pengkabelan robot Robot Remote Bluetooth Android
Hubungkan kabel pada Robot Nusabot sesuai dengan gambar di atas dan pin di
bawah ini :
Pin Out 1 ==> Pin A0 arduino
Pin Out 2 ==> Pin A1 arduino
Pin Out 3 ==> Pin A2 arduino
Pin Out 4 ==> Pin A3 arduino
Pin Out 5 ==> Pin A4 arduino
Pin In1 Driver Motor ==> Pin 8 Arduino
Pin In2 Driver Motor ==> Pin 7 Arduino
Pin In3 Driver Motor ==> Pin 5 Arduino
Pin In4 Driver Motor ==> Pin 2 Arduino
Pin ENA-bawah Driver Motor ==> Pin 6 Arduino
Pin ENB-bawah Driver Motor ==> Pin 3 Arduino
Pin ENA-atas Driver Motor ==> Pin 5V Arduino
Pin ENB-atas Driver Motor ==> Pin 5V Arduino
OUT1 dan OUT2 Driver Motor ==> Motor 1
OUT3 dan OUT4 Driver Motor ==> Motor 2
Supported By :
Pin 12V Driver Motor ==> Hubungkan ke baterai
Pin GND Driver Motor ==> Hubungkan ke Ground(-) Baterai dan
Ground(GND) Arduino
Kaki vcc pada masing-masing komponen hubungkan ke sumber
power positif 5v (bisa dari 5v Arduino)
Kaki gnd/ground pada masing-masing komponen hubungkan ke
sumber negatif power (dihubungkan ke pin gnd Arduino)
int data0;
int data1;
int data2;
int data3;
int data4;
void setup() {
Serial.begin(9600);
void loop() {
data0 = analogRead(0);
data1 = analogRead(1);
Supported By :
data2 = analogRead(2);
data3 = analogRead(3);
data4 = analogRead(4);
Serial.print("Nilai ADC0=");
Serial.println(data0);
Serial.print("Nilai ADC1=");
Serial.println(data1);
Serial.print("Nilai ADC2=");
Serial.println(data2);
Serial.print("Nilai ADC3=");
Serial.println(data3);
Serial.print("Nilai ADC4=");
Serial.println(data4);
delay(1000);
Catatan :
Ada 3 Program untuk kalibrasi sensor garis, kalian boleh memilih salah satu
program saja
Setelah menguploud program buka serial monitor pada program Arduino, taruh
robot di garis hitam apakah ada perubahan, dan coba di kertas putih, bandingkan nilai
yang ada pada serial monitor (sama seperti Materi Kalibrasi Sensor Ultrasonik)
#define enA 6
#define in1 8
#define in2 7
#define in3 5
#define in4 2
#define enB 3
void setup() {
Serial.begin(9600);
Supported By :
pinMode (A0, INPUT);
void berhenti()
// this function will run the motors in both directions at a fixed speed
// turn on motor A
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 10);
// turn on motor B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 10);
void mundur(){
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 200);
// turn on motor B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 200);
Supported By :
void maju(){
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, 100); }
void belok_kiri(){
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enA, 0);
// turn on motor B
digitalWrite(in3,LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, 120); }
void belok_kanan(){
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enA, 120);
// turn on motor B
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, 0);
void kanan(){
digitalWrite(in1, LOW);
Supported By :
digitalWrite(in2, HIGH);
analogWrite(enA, 90);
// turn on motor B
digitalWrite(in3,HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 90);
void kiri(){
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 150);
// turn on motor B
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, 150);
void loop() {
int s1 = digitalRead(A0);
int s2 = digitalRead(A1);
int s3 = digitalRead(A2);
int s4 = digitalRead(A3);
int s5 = digitalRead(A4);
Serial.print(s1);
Serial.print(" -- ");
Serial.print(s2);
Serial.print(" -- ");
Serial.print(s3);
Serial.print(" -- ");
Supported By :
Serial.print(s4);
Serial.print(" -- ");
Serial.print(s5);
Serial.print(" -- ");
Serial.println("");
delay(100);
maju();
else if ( (s1==0) && (s2==0) && (s3==0) && (s4==0) && (s5==0) ) {
else if ( (s1==1) && (s2==0) && (s3==1) && (s4==1) && (s5==1) ) {
belok_kiri();
delay(100);
else if ( (s1==1) && (s2==1) && (s3==1) && (s4==0) && (s5==1) ) {
belok_kanan();
delay(100);
else if ( (s1==0) && (s2==1) && (s3==1) && (s4==1) && (s5==1) ) {
belok_kiri();
delay(100);
else if ( (s1==1) && (s2==1) && (s3==1) && (s4==1) && (s5==0) ) {
belok_kanan();
delay(100);
else{
maju();
Supported By :
Keuntungan Belajar Robot
Mungkinkah di sekolah kita sekarang ini kita belajar akan sistem robot?
Sebuah teknologi yang menurut kita jauh dari jangkauan kita, namun saat ini ada di
depan mata kita. Sanggupkah kita menjangkaunya sekarang?
Agar kita dapat mengerti sebuah teknologi robotik, kita tidak akan lepas dari
teknik-teknik dasar pembuatan robot itu. Hal inilah yang akan kita pelajari sejak
dini di sekolah-sekolah (SMP-SMA). Sebuah robot dalam bentuk mindstorm yang
Supported By :
di dalamnya terdapat brain (otak), hardware (komponen-komponen penyusun
robot baik itu berfungsi sebagai input, output ataupun robot body)
maupun software (programming language). Selain kita mendapat pengetahuan
dasar tentang pembuatan robot, kita juga akan mendapat keuntungan-keuntungan
antara lain:
Di samping hal itu kita dapat mengkaitkan antara teknik dasar robotik ini dengan
bidang pelajaran yang lain seperti: matematika, fisika dan science. Hal ini
dimungkinkan karena dengan belajar konstruksi ataupun perilaku serta
pemrograman pada robot ini kita tidak lepas dari perhitungan-perhitungan
matematika dan dasar pemikiran seperti yang diajarkan pada pelajaran fisika
maupun science. Menguntungkan bukan?
Supported By :