Modul Robotik PDF
Modul Robotik PDF
BAB 1
Robot dan Robotika
1.1. Pengertian
Robotika adalah satu cabang teknologi yang berhubungan dengan desain, konstruksi, operasi,
disposisi struktural, pembuatan, dan aplikasi dari robot. Robotika terkait dengan ilmu pengetahuan bidang
elektronika, mesin, mekanika, dan perangkat lunak komputer.
Robotika merupakan salah satu wacana teknologi untuk menuju peradaban yang lebih maju. Kebanyakan
orang selalu beranggapan bahwa robot adalah kemajuan teknologi yang mampu menggeser tingkah laku
seseorang untuk melakukan suatu tindakan. Dengan kemajuan yang pesat, maka kebutuhan akan SDM
akan merosot tajam.
Sedangkan Robot sendiri adalah sebuah alat mekanik yang dapat melakukan tugas fisik, baik
menggunakan pengawasan dan kontrol manusia, ataupun menggunakan program yang telah didefinisikan
terlebih dulu (kecerdasan buatan). Istilah robot berasal dari bahasa Cheko “robota” yang berarti pekerja
atau kuli yang tidak mengenal lelah atau bosan. Robot biasanya digunakan untuk tugas yang berat,
berbahaya, pekerjaan yang berulang dan kotor. Biasanya kebanyakan robot industri digunakan dalam
bidang produksi. Penggunaan robot lainnya termasuk untuk pembersihan limbah beracun, penjelajahan
bawah air dan luar angkasa, pertambangan, pekerjaan "cari dan tolong" (search and rescue), dan untuk
pencarian tambang. Belakangan ini robot mulai memasuki pasaran konsumen di bidang hiburan, dan alat
pembantu rumah tangga, seperti penyedot debu, dan pemotong rumput.
Saat ini hampir tidak ada orang yang tidak mengenal robot, namun pengertian robot tidaklah
dipahami secara sama oleh setiap orang. Ada banyak defenisi yang dikemukakan oleh para ahli mengenai
robot. Orang awam beranggapan bahwa robot mengandung pengertian suatu alat yang menyerupai
manusia, namun struktur tubuhnya tidak menyerupai manusia melainkan terbuat dari logam.
Pengertian dari Webster mengacu pada pemahaman banyak orang bahwa robot melakukan tugas
manusia, sedangkan pengertian dari Oxford lebih umum.
Beberapa organisasi di bidang robot membuat definisi tersendiri. Robot Institute of America
memberikan definisi robot sebagai :
2|Page
A reprogammable multifunctional manipulator designed to move materials, parts, tools or other
specialized devices through variable programmed motions for the performance of a variety of tasks
(Sebuah manipulator multifungsi yang mampu diprogram, didesain untuk memindahkan material,
komponen, alat, atau benda khusus lainnya melalui serangkaian gerakan terprogram untuk melakukan
berbagai tugas).
Dari beberapa definisi di atas, kata kunci yang ada yang dapat menerangkan pengertian robot
adalah:
Dapat diprogram,
Cerdas (intelligent),
Perkembangan robotika pada awalnya bukan dari disiplin elektronika melainkan berasal dari
ilmuwan biologi dan pengarang cerita novel maupun pertunjukan drama pada sekitar abad XVIII. Para
ilmuwan biologi pada saat itu ingin menciptakan makhluk yang mempunyai karakteristik seperti yang
mereka inginkan dan menuruti segala apa yang mereka perintahkan, dan sampai sekarang makhluk yang
mereka ciptakan tersebut tidak pernah terwujud menjadi nyata, tapi matrak menjadi bahan pada
novelnovel maupun naskah sandiwara panggung maupun film.
Baru sekitar abad XIX robot mulai dikembangkan oleh insinyur teknik, pada saat itu berbekal
keahlian mekanika untuk membuat jam mekanik mereka membuat boneka tiruan manusia yang bisa
bergerak pada bagian tubuhnya.
Pada tahun 1920 robot mulai berkembang dari disiplin ilmu elektronika, lebih spesifiknya pada
cabang kajian disiplin ilmu elektronika yaitu teknik kontrol otomatis, tetapi pada masa-masa itu
komputer yang merupakan komponoen utama pada sebuah robot yang digunakan untuk pengolaan data
masukan dari sensor dan kendali aktuator belum memiliki kemampuan komputasi yang cepat selain
ukuran fisik komputer pada masa itu masih cukup besar.
3|Page
Robot-robot cerdas mulai berkembang pesat seiring berkembangnya komputer pada sekitar
tahun1950-an.
Dengan semakin cepatnya kemampuan komputasi komputer dan semakin kecilnya ukuran
fisiknya, maka robot-robot yang dibuat semakin memiliki kecerdasan yang cukup baik untuk melakukan
pekerjan-pekerjan yang biasa dilakukan olaeh manusia. Pada awal diciptakaanya, komputer sebagai alat
hitung saja, perkembangan algoritma pemrograman menjadikan komputer sebagai instrumentasi yang
memiliki kemammpauankemampuan seperti otak manusia. Artificial intellegent atau kecerdasan buatan
adalah algoritma pemrograman yang membuat komputer memiliki kecerdasan seperti manusia yang
mampu menalar, mengambil kesimpulan dan keputusan berdasarkan pengalaman yang dimiliki.
Robot Mobil atau Mobile Robot adalah konstruksi robot yang ciri khasnya adalah mempunyai
aktuator berupa roda untuk menggerakkan keseluruhan badan robot tersebut, sehingga robot tersebut dapat
melakukan perpindahan posisi dari satu titik ke titik yang lain. Robot mobil ini sangat disukai bagi orang
yang mulai mempelajari robot. Hal ini karena membuat robot mobil tidak memerlukan kerja fisik yang
berat. Untuk dapat membuat sebuah robot mobile minimal diperlukan pengetahuan tentang
mikrokontroler dan sensor-sensor elektro.
4|Page
Robot Manipulator (Tangan)
Flying Robot
Robot yang mampu terbang , robot ini menyerupai pesawat model yang diprogram khusus untuk
memonitor keadaan di tanah dari atas, dan juga untuk meneruskan komunikasi.
5|Page
Robot Animalia
Hilangnya minat dan inisiatif membuat pasien demensia mengalami penurunan interaksi dengan
lingkungan sekitar. Robot binatang (Animal Robot) merupakan salah satu hasil penelitian yang dapat
digunakan untuk pasien demensia dalam interaksi , komunikasi dan keperacayaan diri pada pasien
demensia.
6|Page
Robot Humanoid
Robot Humanoid adalah konstruksi robot yang penampilan keseluruhannya dibentuk berdasarkan
tubuh manusia, mampu melakukan interaksi dengan peralatan maupun lingkungan yang dibuat untuk
manusia. Secara umum robot humanoid memiliki tubuh dengan kepala, dua buah lengan dan dua kaki,
meskipun ada pula beberapa bentuk robot humanoid yang hanya berupa sebagian dari tubuh manusia,
misalnya dari pinggang ke atas. Beberapa robot humanoid juga memiliki 'wajah', lengkap dengan 'mata'
dan 'mulut'.
Kebanyakan orang awam membayangkan robot adalah robot humanoid yang secara fisik tubuh
dan kerangkanya serta bagian-bagian yang lain semuanya dibuat dengan kombinasi besi maupun baja
yang dilengkapi dengan alat-alat serta senjata-senjata yang canggih. Namun pada konstruksinya Robot
humanoid bukan satu-satunya robot yang ada. Dan bukan seperti yang biasa orang bayangkan.
Pada umumnya sebuah sistem robot agar dapat berjalan sempurna harus memiliki elemenelemen
dasar seperti pada gambar 1.6. yaitu :
1. Sensor
2. Aktuator
3. Manipulator
4. Kontroler
7|Page
Gambar 1.8. : Sistem Robot.
1.4.1. Sensor
Merupakan perangkat atau komponen yang bertugas mendeteksi (hasil) gerakan atau fenomena
lingkungan yang diperlukan oleh sistem kontroler. Dapat dibuat dari sistem yang paling sederhana
seperti sensor ON/OFF menggunakan limit switch, sistem analog, hingga sistem mata kamera.
8|Page
1.4.2. Aktuator
Merupakan perangkat elektromekanik yang menghasilkan daya gerakan. Dapat dibuat dari
sistem motor listrik (motor DC (permanent magnet, brushless, shunt dan series), motor DC servo,
motor DC stepper, ultrasonic motor, linear motor, torque motor, solenoid, dll.), System Pneumatic
(perangkat kompresi berbasis udara atau gas nitrogen), dan perangkat hidrolik (berbasis bahan cair
seperti oli). Untuk meningkatkan tenaga mekanik aktuator atau torsi gerakan dapat dipasang sistem
gearbox, baik sistem direct-gear (sistem lurus, sistem ohmic/worm-gear, planetary gear, dll.),
spochet-chain (gear-rantai, gear-belt, ataupun system wire-roller, dll.).
1.4.3. Manipulator
Yaitu sistem gerak yang berfungsi untuk memanipulasi (memegang, mengambil, mengangkat,
memindah, atau mengolah) obyek. Pada robot industri fungsi mengolah ini dapat berupa perputaran
(memasang mur-baut, mengebor/drilling, milling, dll.), tracking (mengelas, membubut, dll.) ataupun
mengaduk (control proses). Untuk robot tangan, desain sendi-lengan diukur berdasarkan DOF
(Degree Of Freedom). Lengan dapat dibuat kaku/tegar (rigid) ataupun fleksibel (fleksibel
manipulator). Sistem tangan memiliki bagian khusus yang disebut sebagai gripper atau grasper
(pemegang).
1.4.4. Kontroler
Kontroler adalah bagian yang amat penting dalam robotik. Sistem robotik tanpa kontroler hanya
akan menjadi benda mekatronik yang mati. Dalam sistem kontroler robotik terdapat dua bagian yaitu
perangkat keras elektronik dalam perangkat lunak yang berisi program kemudi dan algoritma kontrol.
9|Page
Kontrol loop terbuka atau umpan maju (FeedForward Control) dapat dinyatakan sebagai
sistem kontrol yang outputnya tidak diperhitungkan ulang oleh kontroler.
Pada gambar diatas, jika hasil gerak aktual telah sama dengan referansi maka input kontroler akan
nol. Artinya kontroler tidak lagi membarikan sinyal aktuasi kepada robot karena target akhir
perintah gerak telah diperoleh.
10 | P a g e
2.2. Sensor
2.2.1. Sensor Ultrasonic
Gelombang ultrasonik adalah gelombang dengan besar
frekuensi diatas frekuensi gelombang suara yaitu lebih dari 20
KHz. Sensor ultrasonik terdiri dari rangkaian pemancar ultrasonik
yang disebut transmitter dan rangkaian penerima ultrasonik yang
disebut receiver.
Sinyal ultrasonik yang dibangkitkan akan dipancarkan dari
transmitter ultrasonik. Ketika sinyal mengenai benda penghalang,
maka sinyal ini dipantulkan, dan diterima oleh receiver ultrasonik.
Gambar 2.2. Sensor Ultrasonik
Sinyal yang diterima oleh rangkaian receiver dikirimkan ke rangkaian mikrokontroler yang
selanjutnya diolah untuk menghitung jarak terhadap benda di depannya (bidang pantul). Prinsip kerja dari
sensor ultrasonik adalah sebagai berikut :
1. Sinyal dipancarkan oleh pemancar ultrasonik. Sinyal tersebut berfrekuensi diatas 20 KHz,
biasanya yang digunakan untuk mengukur jarak benda adalah 40kHz. Sinyal tersebut di bangkitkan oleh
rangkaian pemancar ultrasonik.
2. Sinyal yang dipancarkan tersebut kemudian akan merambat sebagai sinyal/gelombang bunyi
dengan kecepatan bunyi yang berkisar 340 m/s. Sinyal tersebut kemudian akan dipantulkan dan akan
diterima kembali oleh bagian penerimaUltrasonik.
3. Setelah sinyal tersebut sampai di penerima ultrasonik, kemudian sinyal tersebut akan diproses
untuk menghitung jaraknya. Jarak dihitung berdasarkan rumus : S = 340.t/2 dimana S adalah jarak
antara sensor ultrasonik dengan bidang pantul, dan t adalah selisih waktu antara pemancaran gelombang
ultrasonik sampai diterima kembali oleh bagian penerima ultrasonik. Tabel Pengukuran Intensitas :
Jarak Pada Penggaris Jarak Pada NXT Perbandingan Tingkat Eror
11 | P a g e
Perbandingan Pengukuran Pada NXT Dengan Penggaris
25
20
15
10
0
10cm 15cm 20cm
Penggaris Penggaris Penggaris
Oleh karena kumparan tersebut sebenarnya adalah ibarat sebuah pisau berlubang-lubang, maka
pada saat ia bergerak naik turun, ia juga telah membuat gelombang magnet yang mengalir melewatiya
terpotong-potong. Kecepatan gerak kumparan menentukan kuat-lemahnya gelombang listrik yang
dihasilkannya. Komponen yang termasuk dalam Sensor suara adalah Micropone.
12 | P a g e
dB dBA
Diam 2 1
Suara 32 25
Tepuk Tangan 25 20
Tabel Pengukuran Intensitas :
35
30
25
20
dB
15 dBA
10
0
Diam Suara Tepuk Tangan
Prinsip kerja dari sensor cahaya adalah dengan mengubah energy foton (cahaya) menjadi energi
electron (listrik). Dimana satu foton dapat membangkitkan satu elektron. Dan besaran electron itulah yang
membangkitkan medan listrik dari hasil inputan cahaya.
Disini lampu LED akan memancarkan cahaya dimana cahaya tersebut akan memantul kembali
pada objek yang memiliki intensitas warna, pantulan itu sendiri akan diterima oleh Photo Dioda dan pada
13 | P a g e
photo diode ini akan mengukur nilai dari pantulan cahaya sehingga mengetahui intensitas warna dari objek
tersebut.
Dalam lego mindstrom, terdapat 2 metode yang digunakan untuk mengukur cahaya, yaitu
Reflected dan Ambient :
• Metode Reflected menggunakan cahaya yang dikeluarkan dari lampu LED dipantulkan oleh
bidang berwarna yang ada di depannya, cahaya akan diterima oleh “Photo Diode” dari pantulan
cahaya yang dipantulkan dari objek yang berwarna, cara ini digunakan untuk mendeteksi warna ,
karena setiap warna memiliki pantulan cahaya yang berbeda. Metode ini lebih bagus dikarenakan
pantulan cahaya dari luar tidak akan berpengaruh besar dikarenakan cahaya yang
dilepaskan/disinari oleh lampu LED.
• Metode Ambient tidak menggunakan pantulan cahaya dari lampu LED melainkan memanfaatkan
pantulan cahaya yang ada disekitarnya. Dimana pantulan cahaya dari objek warna akan langsung
diterima. Metode ini digunakan untuk mengukur intensitas cahaya pada suatu ruangan. Contohnya
saja cahaya yang dating dari jendela pada ruangan tertutup.
Merah
Percobaan Merah
Jarak Rata-rata (%)
Percobaan 1 (%) Percobaan 2 (%)
1 cm 22 23 22,5
2 cm 25 26 25,5
3 cm 27 28 27,5
Hijau
14 | P a g e
Percobaan Hijau
Jarak Rata-rata (%)
Percobaan 1 (%) Percobaan 2 (%)
1 cm 21 22 21,5
2 cm 24 25 24,5
3 cm 25 26 25,5
Biru
Percobaan Biru
Jarak Rata-rata (%)
Percobaan 1 (%) Percobaan 2 (%)
1 cm 21 20 20,5
2 cm 22 23 22,5
3 cm 23 23 23
Merah
Percobaan Merah
Jarak Rata-rata (%)
Percobaan 1 (%) Percobaan 2 (%)
1 cm 55 52 53,5
2 cm 44 43 43,5
3 cm 39 37 38
15 | P a g e
Hijau
Percobaan Hijau
Jarak Rata-rata (%)
Percobaan 1 (%) Percobaan 2 (%)
1 cm 44 41 42,5
2 cm 36 34 35
3 cm 33 31 32
Biru
Percobaan Biru
Jarak Rata-rata (%)
Percobaan 1 (%) Percobaan 2 (%)
1 cm 47 44 45,5
2 cm 38 37 38,5
3 cm 34 33 33,5
Merah
30
25
20
Percobaan 1
15
Percobaan 2
10
Rata - Rata
5
0
1 cm 2 cm 3 cm
16 | P a g e
Hijau
30
25
20
Percobaan 1
15
Percobaan 2
10
Rata - Rata
5
0
1 cm 2 cm 3 cm
Biru
24
23
22
Percobaan 1
21
Percobaan 2
20
Rata - Rata
19
18
1 cm 2 cm 3 cm
Merah
60
50
40
Percobaan 1
30
Percobaan 2
20
Rata-rata
10
0
1 cm 2 cm 3 cm
Hijau
17 | P a g e
50
40
30 Percobaan 1
20 Percobaan 2
10 Rata-rata
0
1 cm 2 cm 3 cm
Biru
50
40
30 Percobaan 1
20 Percobaan 2
10 Rata-rata
0
1 cm 2 cm 3 cm
1. Metode Pressed
Metode ini bekerja apabila kita menekan sensor sentuh, maka program akan dieksekusi oleh robot.
Misalnya, ketika sensor sentuh ditekan maka robot akan bergerak maju kedepan.
2. Metode Released
Program akan dieksekusi terus menerus, apabila sensor terkena sentuhan maka program akan
berhenti. Misalnya, robot terus berjalan maju dan apabila sensor terkena sentuhan maka robot
akan berhenti.
18 | P a g e
3. Metode Bumped
Metode tekan lepas. Sensor akan bekerja apabila terkena tekanan dan lepasan (memantul).
Misalnya, robot berjalan maju dan apabila sensor terkena tekanan dan lepas maka robor akan
berjalan mundur.
Motor Servo ini dilengkapi dengan kemampuan untuk menghitung perubahan sudut yang dialami
motornya. Servo motor dapat menghitung berapa derajat rotasi yang telah dilakukannya. Akurasi dari
sensor servo motor ini mencapai kurang lebih 1 derajat.
Motor Servo juga dilengkapi dengan sebuah lubang untuk as yang dihubungkan dengan rangkaian
axle dan roda sebagai penggerak robot. Pada rangkaian penggerak dilengkapi pula lubanglubang untuk
modifikasi gerakan motor.
Didalam rangkaian servo motor ini sudah dirancang sedemikan rupa sehingga, kita bisa
menentukan banyaknya putaran sesuai jarak tempuh yang kita inginkan. Posisi sudut jika motor akan
berputar dan lain sebagainya, yang dapat dimonitor melalui LCD pada NXT Brick. Oleh karena itu servo
motor dilengkapi dengan kabel USB yang dihubungkan ke NXT Brick.
Ada tiga motor servo yang dapat digunakan robot agar dapat bergerak, yang terdiri dari port A, B,
C. Jika anda menggunakan menu pada NXT brick (NXT Program) maka secara otomatis port B dan C
yang digunakan servo motor akan bekerja bersamaan, sehingga robot anda dapat bergerak lurus.
Adapun beberapa metode dalam perputaran pada motor servo NXT Lego Mindstorm.
Diantaranya yaitu :
1. Rotation, yaitu perputaran motor mengacu pada duration atau waktu yang hasil akhirnya untuk
menentukan banyaknya jumlah putaran.
19 | P a g e
2. Second, yaitu perputaran motor mengacu pada duration atau waktu yang hasil akhirnya untuk
menentukan banyaknya jumlah putaran berdasarkan waktu yang telah ditentukan.
3. Degrees, yaitu perputaran motor mengacu pada derajat yang telah ditentukan.
4. Unlimited, yaitu perputaran pada motor tidak dibatasi oleh waktu, rotasi, maupun derajat.
Biasanya metode ini digunakan untuk proses looping.
20 | P a g e
3.1. Building Robot
21 | P a g e
22 | P a g e
23 | P a g e
24 | P a g e
25 | P a g e
26 | P a g e
27 | P a g e
28 | P a g e
29 | P a g e
30 | P a g e
31 | P a g e
32 | P a g e
33 | P a g e
BAB IV Lego Mindstorm NXT Programming
Lego Mindstorm NXT Programming merupakan aplikasi bawaan dari robot Lego NXT yang
berbentuk GUI (Graphical User Interface).
Gambar di bawah ini merupakan tampilan awal dari Lego Mindstorms NXT Programming, untuk
memulai membuat sebuah program ketikan nama file yang akan dibuat pada Start New Program kemudian
klik “Go”.
34 | P a g e
Gambar 4.2. Lembar Kerja NXT Programming
Keterangan Tools :
2. Block Record/Play, yaitu untuk merekam gerakan yang dilakukan robot dan menjalankan gerakan
itu kembali.
5. Block Wait untuk mengatur tindakan robot pada kondisi tertentu, dalam block ini terdapat perintah
untuk mengaturan pendeteksian sensor diantaranya adalah sensor sentuh, sensor cahaya, sensor
suara, dan sensor ultrasonic.
7. Block Switch, yaitu untuk membuat dan menyeleksi 2 proses yang berbeda.
35 | P a g e
Gambar 4.4. Fungsi-fungsi Program ke NXT Brick
1. Sebelum membuat program ke dalam NXT Brick koneksikan dulu PC anda dengan NXT Brick
dengan cara klik tombol nomor 1 pada gambar di atas. Setelah itu akan muncul jendela baru
seperti gambar di bawah ini dan pilih scan.
Jika ditemukan, maka pada tab Communications akan muncul NXT yang terkoneksi. Pilih
koneksi NXT lewat Bluetooth atau USB, setelah itu pilih tombol “Connect”.
2. Download and run selected (tombol nomor 2) untuk mendownload file dan langsung
menjalankan pada robot NXT dengan memilih dulu file yang akan dijalankan.
3. Stop (tombol nomor 3) berfungsi untuk menghentikan program yang sedang running.
4. Download and Run (tombol nomor 4) untuk mendownload file dan langsung menjalakan pada
robot NXT.
36 | P a g e
4.2.2. Running Program Pada NXT Brick.
Keterangan :
1. Cari file atau program yang sudah didownload pada NXT file.
1. Move
Tools berupa output gerak dari NXT Programming yaitu untuk mengatur gerakan motor pada
robot.
Membuat program sederhana
Masukkan perintah seperti gambar dibawah ini.
Klik pada blok move tersebut dan Atur pengaturan sesuai keinginan.
37 | P a g e
2. Record/Play
Tools untuk merekam gerakan yang dilakukan robot dan menjalankan gerakan itu kembali
Membuat program sederhana
Masukkan perintah-perintah seperti pada gambar dibawah ini
Atur pengaturan motor A dan B blok move dengan 5 detik untuk jalan maju, dan 5
detik untuk jalan mundur.
Pada pengaturan blok record/play (dengan lambang bulat) pilih record dan masukkan
time-nya selama 10 detik.
Pada pengaturan blok play/play (dengan lambang play) pilih play.
3. Sound
Tools berupa output suara, untuk memutar suara yang tersimpan di NXT.
Membuat program sederhana
Masukkan perintah seperti pada gambar dibawah ini
38 | P a g e
Atur perintah blok sound sebagai berikut (atau atur sesuai keinginan)
Jalankan program.
4. Display
Ouput Tools yang berfungsi untuk menampilkan gambar atau teks dari NXT Brick.
Membuat program sederhana
Masukkan program berikut
39 | P a g e
5. Wait
Tools yang dijadikan referensi gerak (inputan) untuk melakukan berbagai tindakan robot.
Dalam block ini terdapat perintah untuk mengaturan pendeteksian sensor diantaranya adalah
sensor sentuh, sensor cahaya, sensor suara, dan sensor ultrasonic.
5.1 Time
Referensi gerak yang berfungsi untuk mengatur tindakan robot berdasarkan waktu.
Membuat program sederhana
Masukkan beberapa perintah seperti gambar dibawah ini
40 | P a g e
Klik pada perintah sensor sentuh sehingga muncul properties seperti pada gambar di bawah
ini :
Klik pada perintah display, sehingga muncul properties seperti pada gambar di bawah ini :
1. Pilih Text jika menginginkan output dari NXT Brick berupa text.
41 | P a g e
5.3 Sensor Cahaya
Keterangan :
3. Untuk mengatur nilai intensitas cahaya yang akan dideteksi menggunakan slider.
4. Untuk mengatur nilai intensitas cahaya yang akan dideteksi menggunakan inputan nilai
(Optional pengganti slider).
5. Penentuan intensitas cahaya yang akan dideteksi lebih dari atau kurang dari nilai yang
ditentukan.
6. Jika box ini di-check, maka lampu LED akan menyala dan sensor akan menerima pantulan
cahaya dari lampu LED tersebut.
Kemuadian masukkan 2 Block Display dan 1 Block Wait (Time) pada percabangan awal
(deteksi terang).
42 | P a g e
Gambar 4.12.Proses Ketika Mendeteksi Terang
Time digunakan untuk memberi jeda antara satu proses dengan proses selanjutnya.
Kemudian pada Block Display yang terakhir dilakukan proses Display dengan Action :
Reset yang berfungsi untuk menampilkan tampilan default yaitu icon LEGO MINDSTORMS.
Lakukan proses yang sama pada percabangan kedua (deteksi gelap), tapi dengan Display
yang berbeda.
43 | P a g e
Gambar 4.15.Proses Ketika Mendeteksi Gelap
Klik pada Switch dan atur sesuai dengan gambar dibawah ini :
44 | P a g e
Atur Motor kedua seperti gambar dibawah ini :
Klik pada Switch dan atur sesuai dengan gambar dibawah ini :
6. Loop
Tool untuk mengulang kegiatan robot.
Contoh program sudah dipraktikan pada poin 5.4 dan 5.5. Berikut
penjelasan toolnya :
Pada gambar terlihat bahwa loop akan dilakukan selama “Forever” (selamanya). Jadi
selama robot dinyalakan program yang ada didalam loop akan terus dieksekusi.
Kita juga bisa mengaturnya sesuai keinginan.
7. Switch
Tool yang berfungsi untuk menggambarkan dua buah kondisi yang berbeda. Robot akan
melakukan dua aktivitas yang berbeda pada masing-masing kondisi yang digambarkan pada
switch. Contohnya bisa dilihat pada point 5.4 dan point 5.5
4.1. Aplikasi
46 | P a g e
Selain menggunakan aplikasi Lego Mindstorms NXT Programming yang berbasis GUI, NXT juga
bisa diprogram menggunakan bahasa C. Adupun salah satu aplikasi yang dapat digunakan adalah aplikasi
bernama BricxCC (Bricx Command Center). Struktur Penulisan Program :
task main() { Statement1;
Statement2;
Statement3;
}
Saat pertama kali program dijalankan, pendeteksian Brick akan langsung dilakukan. Tentukan port
dimana Brick terhubung (bisa diset secara Automatic). Kemudian pilih Tipe Brick yang digunakan yaitu
NXT. Pilih Firmware Standar kemudian tekan OK.
4.3. Pemrograman C
Sintaks LCD
ClearScreen(); //hapus layar
ClearLine("line"); //hapus baris
TextOut("x", "line", "txt", "options"); //tampilkan teks
NumOut("x", "line", "val", "options"); //tampilkan nomor
ResetScreen(); //reset layar
Contoh Program
47 | P a g e
task main() { while(true)
{
TextOut(16, LCD_LINE4, "Lab. Robotik"); //tampilkan teks Lab.
Robotik
NumOut(38, LCD_LINE4, 2012); //tampilkan nomor 2012
}
}
Sintaks Button
ButtonPressed("btn"); //tekan button
ButtonCount("btn"); //count tekan button
4.3.3. Motor
48 | P a g e
Contoh Program
task main()
{
OnFwd(OUT_AB,50);
Wait(2000); //delay 2000ms = 2 detik
OnRev(OUT_AB,50);
Wait(2000);
Off(OUT_AB);
Wait(500); //delay 500ms = 0.5 detik
OnFwdSync(OUT_AB,50,35);
Wait(2000);
}
Sintaks
SetSensorTouch("port"); //Setting sensor touch Sensor
SetSensor("port", SENSOR_TOUCH); //Setting sensor touch Touch
SetSensorType("port", SENSOR_TYPE_TOUCH);
Sensor("port"); //Baca Sensor
Contoh Program
task main(){
SetSensorTouch(IN_1); //setting sensor while(true)
{
OnFwd(OUT_AB,50); if
(Sensor(IN_1)==1)
{
Off(OUT_AB); //motor stop
Wait(500); //delay 500ms = 0.5 detik OnRev(OUT_AB,50);
Wait(2000); //delay 2000ms = 2 detik
OnFwdSync(OUT_AB,50,-35);
Wait(2000);
}
} }
49 | P a g e
SetSensorType("port", SENSOR_TYPE_LIGHT_INACTIVE); //lampu Led OFF
Sensor("port"); //Baca Sensor
Contoh Program
task main() {
SetSensorLight(IN_1); while(true)
{
Off(OUT_AB); if(Sensor(IN_1)>40)
{
OnFwd(OUT_A,40);
Wait(200);
}
else
{
OnFwd(OUT_B,40);
Wait(200);
}
}
}
Contoh Program
void delay(int x) { Wait(x*1000); //x*1000ms
} task main() { SetSensorSound(IN_4); while (true) {
if (Sensor(IN_4)>=60)
{
OnFwd(OUT_AB,50); delay(3); //3 detik
}
}
}
50 | P a g e
Contoh Program Robot Explorer
void check() { int
ka=0,ki=0;
RotateMotor(OUT_A, 30, -90);
Wait (200); ka=SensorUS(IN_1);
RotateMotor(OUT_A, 30, 180);
Wait(200);
ki=SensorUS(IN_1);
RotateMotor(OUT_A, 30, -90); if
(ka>ki){
OnFwdSync(OUT_BC,50,30);
}
else {
OnFwdSync(OUT_BC,50,-30);
}
}
task main() {
SetSensorLowspeed(IN_1);
TextOut(30, LCD_LINE4, "WELCOME");
TextOut(9, LCD_LINE5, "Robot Explorer");
TextOut(20, LCD_LINE6, "by Robotic Laboratory"); while
(true)
{
OnRev(OUT_BC,60);
if (SensorUS(IN_1)<=30) {
Off(OUT_BC); check();
Wait(1000);
}
}
}
5.1. Aplikasi
Visual Basic adalah salah satu bahasa pemrograman Komputer Tingkat Tinggi. Bahasa
Pemrograman Adalah Perintah-perintah yang dimengerti oleh komputer untuk melakukan tugas-tugas
tertentu. Visual Basic merupakan salah satu bahasa Pemrograman yang Object Oriented Programming
(OOP) atau Pemrograman yang Berorientasi Pada Object. Kata “Visual” menunjukkan cara yang
digunakan untuk membuat Graphical User Interface (GUI). Dengan Cara ini, kita tidak perlu lagi
menuliskan instruksi pemrograman dalam kode-kode baris hanya untuk membuat sebuah Desaign
Form/Aplikasi. Tetapi dengan sangat mudah yakni kita cukup melakukan Drag and drop object-object
yang akan kita gunakan. Visual Basic dapat kita jdaikan alat Bantu untuk membuat berbagai macam
program computer. Aplikasi Visual Basic hanya dapat dijalankan pada system Operasi Windows.
51 | P a g e
5.2. Library
Library adalah kumpulan bahasa pemrograman yang berisi fungsi-fungsi untuk pembuatan suatu
program termasuk robot lego mindstroms. Library ini berfungsi untuk mempermudah pembuatan program
robot Lego Mindstroms NXT.
Buka Visual Basic dan buat project windows form application. Yang harus dilakukan pertama kali
adalah melakukan import library dengan cara mengklik kanan pada “WindowsApplicationX” (nama
project yang dibuat) melalui Solution Explorer
52 | P a g e
Gambar 5.2. : Memilih Library yang akan ditambahkan. Di solution explore
terdapat menu “show all”, pilih “Reference” lalu pilih library yang tadi kita tambahkan.
Setelah itu pada “properties”, menu “copy local” ganti dengan “True”
53 | P a g e
Gambar 5.4. : Mengcopy library ke folder project. Lalu beranjak pada menu bar
“Build” pilih “Rebuild Solution”. Jika sukses maka akan muncul di sebelah kiri bawah.
Jika selsesai maka secara otomatis library tersebut akan berpindah di folder project.
54 | P a g e
Gambar 5.6. : Library sudah ter-copy di folder project.
Catatan :
Jika menggunakan joystick untuk mengendalikan robot, maka kita harus merubah menu bar “Debug”.
Klik “Debug” pilih “exeptions”.
Pilih “Managed Debugging Assistants”, lalu hilangkan tanda centang (√) pada “LoaderLock”.
55 | P a g e
Gambar 5.8. : Merubah Format Joystick.
Import library
Imports project_LAB.robotik_informatika_controller
Imports project_LAB.robotik_informatika_ITN_lego
1. Joystik
sintaks joystik
joystik.arah_analog(jenis arah analog)
joystik.koordinat_analog(jenis arah analog, jenis
koordinat) joystik.pasang_joystik()
joystik.tekan_tombol(jenis tombol)
Contoh Program :
joystik.arah_analog(joystik.jenis_analog.kanan)
joystik.koordinat_analog(joystik.jenis_analog.kanan,joystik
.koord inat.x)
joystik.pasang_joystik()
joystik.tekan_tombol(joystik.tombol.arah_atas)
56 | P a g e
2. Keyboard
sintaks keyboard
keyboard.tekan_tombol(tombol yang ditekan)
Contoh program :
keyboard.tekan_tombol(Keys.A)
3. NXT
sintaks nxt
nxt.apakah_terkoneksi()
nxt.bunyikan_suara(frekuensi, durasi)
nxt.daftar_program_di_robot()
nxt.daftar_sound_di_robot()
nxt.hentikan_suara()
nxt.jalankan_program(nama
program) nxt.kondisi_baterai()
nxt.konek()
nxt.koneksi_port(port berapa)
nxt.nama_robot() nxt.putar_lagu(judul
lagu) nxt.putus_koneksi()
Contoh program :
nxt.apakah_terkoneksi()
nxt.bunyikan_suara(70, 100)
nxt.daftar_program_di_robot()
nxt.daftar_sound_di_robot()
nxt.hentikan_suara()
nxt.jalankan_program("robot_jalan"
) nxt.kondisi_baterai()
nxt.konek() nxt.koneksi_port(2)
nxt.nama_robot()
nxt.putar_lagu("tes")
nxt.putus_koneksi()
4. Motor
Sintaks program
motor.pasangkan_motorA()
motor.pasangkan_motorB()
motor.pasangkan_motorC() motor.berhenti(pilhan
motor)
57 | P a g e
motor.gerakkan_motor(jenis gerakan, pilihan motor, kecepatan)
motor.singkronkan_gerakan_motor(pilihan motor1, pilhan motor2,
kecepatan)
Contoh program
motor.pasangkan_motorA()
motor.pasangkan_motorB()
motor.pasangkan_motorC()
motor.berhenti(motor.pilihan_motor.motorA)
motor.gerakkan_motor(motor.pilihan_putaran_motor.maju,
motor.pilihan_motor.motorA, 60)
motor.singkronkan_gerakan_motor(motor.pilihan_motor.motorA,
motor.pilihan_motor.motorB, 60)
5. Sensor Cahaya
sintaks program
sensor_cahaya.pasangkan(port berapa)
sensor_cahaya.hidupkan_lampu = boelan
sensor_cahaya.intensitas_cahaya
Contoh program
sensor_cahaya.pasangkan(info_sensor.port.port1)
sensor_cahaya.hidupkan_lampu = True
Label1.Text = sensor_cahaya.intensitas_cahaya
6. Sensor Compas
Sintaks program
sensor_compas.pasangkan(port berapa)
sensor_compas.magnitudo
Contoh program
sensor_compas.pasangkan(info_sensor.port.port2)
sensor_compas.magnitudo
58 | P a g e
7. Sensor Sentuh
Sintaks program
sensor_sentuh.pasangkan(port berapa)
sensor_sentuh.apakah_ditekan_shared
Contoh program
sensor_sentuh.pasangkan(info_sensor.port.port3)
Label1.Text = sensor_sentuh.apakah_ditekan
8. Sensor Suara
Sintaks program
sensor_suara.pasangkan(port berapa)
sensor_suara.intensitas_suara
Contoh program
sensor_suara.pasangkan(info_sensor.port.port4)
Label1.Text = sensor_suara.intensitas_suara
9. Sensor Ultrasonik
Sintaks program
sensor_ultrasonik.pasangkan(port
berapa) sensor_ultrasonik.jarak
Contoh program
sensor_ultrasonik.pasangkan(info_sensor.port.port1)
Label1.Text = sensor_ultrasonik.jarak
Program Project
59 | P a g e
Imports project_LAB.robotik_informatika_controller
Imports project_LAB.robotik_informatika_ITN_lego
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Button1.Click
nxt.koneksi_port(Byte.Parse(TextBox1.Text))
motor.pasangkan_motorA() motor.pasangkan_motorB()
motor.pasangkan_motorC() joystik.pasang_joystick()
sensor_ultrasonik.pasangkan(info_sensor.port.port1) nxt.konek()
Threading.Thread.Sleep(1000)
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick Label1.Text
= sensor_ultrasonik.jarak baterai.Value =
nxt.kondisi_baterai
'maju
If sensor_ultrasonik.jarak >= 15 AndAlso
joystik.tekan_tombol(joystik.tombol.silang) = True AndAlso
60 | P a g e
motorA_.Value = 60 motorB_.Value
= 60
'kiri
ElseIf joystik.tekan_tombol(joystik.tombol.silang) = True AndAlso
joystik.tekan_tombol(joystik.tombol.arah_kiri) = True AndAlso
sensor_ultrasonik.jarak >= 22 AndAlso
joystik.tekan_tombol(joystik.tombol.arah_kanan) = False Then
motor.gerakkan_motor(motor.pilihan_putaran_motor.maju,
motor.pilihan_motor.motorB, 30)
motor.gerakkan_motor(motor.pilihan_putaran_motor.maju,
motor.pilihan_motor.motorA, 60) motorA_.Value = 60
motorB_.Value = 30
'kanan
ElseIf joystik.tekan_tombol(joystik.tombol.silang) = True AndAlso
joystik.tekan_tombol(joystik.tombol.arah_kanan) = True AndAlso
sensor_ultrasonik.jarak >= 22 AndAlso
joystik.tekan_tombol(joystik.tombol.arah_kiri) = False Then
motor.gerakkan_motor(motor.pilihan_putaran_motor.maju,
motor.pilihan_motor.motorA, 30)
motor.gerakkan_motor(motor.pilihan_putaran_motor.maju,
motor.pilihan_motor.motorB, 60) motorA_.Value = 30
motorB_.Value = 60
'mundur
ElseIf joystik.tekan_tombol(joystik.tombol.segitiga) = True
AndAlso joystik.tekan_tombol(joystik.tombol.arah_kanan) = False
AndAlso joystik.tekan_tombol(joystik.tombol.arah_kiri) = False
Then
motor.gerakkan_motor(motor.pilihan_putaran_motor.mundur,
motor.pilihan_motor.motorB, 60)
motor.gerakkan_motor(motor.pilihan_putaran_motor.mundur,
motor.pilihan_motor.motorA, 60) motorA_.Value = 60
motorB_.Value = 60
'mundur kanan
ElseIf joystik.tekan_tombol(joystik.tombol.segitiga) = True
AndAlso joystik.tekan_tombol(joystik.tombol.arah_kiri) = True
AndAlso joystik.tekan_tombol(joystik.tombol.arah_kanan) = False
Then
motor.gerakkan_motor(motor.pilihan_putaran_motor.mundur,
motor.pilihan_motor.motorB, 30)
motor.gerakkan_motor(motor.pilihan_putaran_motor.mundur,
motor.pilihan_motor.motorA, 60) motorA_.Value = 60
motorB_.Value = 30
'mundur kiri
ElseIf joystik.tekan_tombol(joystik.tombol.segitiga) = True
AndAlso joystik.tekan_tombol(joystik.tombol.arah_kanan) = True
AndAlso joystik.tekan_tombol(joystik.tombol.arah_kiri) = False
Then
motor.gerakkan_motor(motor.pilihan_putaran_motor.mundur,
motor.pilihan_motor.motorA, 30)
motor.gerakkan_motor(motor.pilihan_putaran_motor.mundur,
motor.pilihan_motor.motorB, 60) motorA_.Value = 30
61 | P a g e
motorB_.Value = 60 'maju
jarak pendek
ElseIf joystik.tekan_tombol(joystik.tombol.silang) = True AndAlso
joystik.tekan_tombol(joystik.tombol.arah_kiri) = False AndAlso
sensor_ultrasonik.jarak < 22 AndAlso
joystik.tekan_tombol(joystik.tombol.arah_kanan) = False Then
motor.berhenti(motor.pilihan_motor.motorA)
motor.berhenti(motor.pilihan_motor.motorB)
nxt.bunyikan_suara(70, 100)
ElseIf joystik.tekan_tombol(joystik.tombol.kotak) = True Then
motor.gerakkan_motor(motor.pilihan_putaran_motor.maju,
motor.pilihan_motor.motorC, 10)
ElseIf joystik.tekan_tombol(joystik.tombol.bulat) = True Then
motor.gerakkan_motor(motor.pilihan_putaran_motor.mundur,
motor.pilihan_motor.motorC, 10)
Else
motor.berhenti(motor.pilihan_motor.motorA)
motor.berhenti(motor.pilihan_motor.motorB)
motor.berhenti(motor.pilihan_motor.motorC)
motorA_.Value = 0 motorB_.Value = 0
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button2.Click nxt.putus_koneksi()
Timer1.Enabled = False
End Sub
End Class
62 | P a g e
Gambar 5.9. : Robot Pengambil Bola Lego NXT.
63 | P a g e