MODUL PRAKTIKUM ROBOTIKA DENGAN ARDUINO
DISUSUN OLEH : ABDUL JABBAR LUBIS, ST, M.KOM UMMUL KHAIR, S,KOM, M.KOM
LABORATORIUM ROBOTIKA JURUSAN TEKNIK INFORMATIKA SEKOLAH TINGGI TEKNIK HARAPAN MEDAN 2014 Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
Kata pengantar
Assalamu alaikum Warahmatullahi Wabarakatu…. Selayaknya dan sepatutnyalah sebagai mahluk ciptaan Tuhan yang senantiasa dan setiap saat menikmati segala bentuk Nik’matNya untuk memanjatkan puji syukur atas segala karuniaNya. Salawat dan salam kepada baginda Rasulullah S.A.W sebagai sosok yang selalu memberikan pencerahan dalam mengarungi hidup untuk sebuah misi kemanusian yang sejati lagi hakiki. Sebagai insan yang tak luput dari kesalahan dan kekhilafan, penulis selalu mencari dan terbuka dalam segala hal khususnya dalam penggunaan modul praktikum ini yang apabila didalam penggunaanya terdapat kekeliruan yang menyebabkan kesalahan dalam pengaplikasiannya. Untuk itu tentunya umpan balik dari pengguna modul ini daharapkan dapat menyampaikan kekeliruan yang terdapat didalamnya. Terlepas dari hal diatas dan berangkat dari keinginan yang besar akan upaya membangkitkan minat dan keingintahuan mahasiswa secara umum tentang keilmuan robotika dan mahasiswa STT-Harapan Medan khususnya, maka dengan ini penulis menyusun modul praktikum robotika. Dengan modul ini kelak diharapkan dapat memperjelas dan memberi kemudahan mahasiswa yang mengambil mata kuliah “robotika” dalam memahami keilmuan robotika. Akhirnya, dengan penuh harapan yang besar dalam penggunaan modul praktikum ini benar-benar dimanfaatkan dengan baik untuk kepentingan pengembangan keilmuan robotika demi memajukan mahasiswa STT-Harapan Medan. Besar pula harapan dalam diri penulis untuk diberikan saran dan kritik dalam pengembangan modul praktikum yang lebih baik lagi. Paling penting dari segalanya bahwa manusia hanyalah senantiasa berusaha untuk menjadi yang terbaik tetapi Yang Kuasalah yang memberikan penilaian dari kebaikan yang dilakukan oleh manusia maka senantiasalah berbuat baik dalam menjadi yang terbaik. Amiinnn… Medan, Oktober 2014 Penyusun
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
PROSES DAN TUJUAN PRAKTIKUM ROBOTIKA
1. Setiap praktikum diberikan penjelasan mengenai Alat yang akan di praktikkan 2. Setiap Alat yang digunakan dilengkapi penjelasan atau datasheet alat 3. Pada setiap pertemuan praktikum diberikan penjelasan tujuan praktik 4. Pada setiap praktikum diharapkan mahasiswa dapat memahami perangkat yang digunakan 5. Pada
Evaluasi
Akhir
Praktikum
mahasiswa
diharapkan
dapat
mengintegrasikan antara satu perangkat sensor dengan aktuator dalam satu bentuk robot sederhana
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
BAB I PENGENALAN ARDUINO
Untuk memahami Arduino, terlebih dahulu kita harus memahami terlebih dahulu apa yang dimaksud dengan physical computing. Physical computing adalah membuat sebuah sistem atau perangkat fisik dengan menggunakan software dan hardware yang sifatnya interaktif yaitu dapatmenerima rangsangan dari lingkungan dan merespon balik. Physical computing adalah sebuah konsep untuk memahami hubungan yang manusiawi antara lingkungan yang sifat alaminya adalah analog dengan dunia digital. Pada prakteknya konsep ini diaplikasikan dalam desain-desain alat atau projek-projek yang menggunakan sensor dan microcontroller untuk menerjemahkan input analog ke dalam sistem software untuk mengontrol gerakan alat-alat elektro-mekanik seperti lampu, motor dan sebagainya. Pembuatan prototype atau prototyping adalah kegiatan yang sangat penting di dalam proses physical computing karena pada tahap inilah seorang perancang melakukan eksperimen dan uji coba dari berbagai jenis komponen, ukuran, parameter, program komputer dan sebagainya berulang-ulang kali sampai diperoleh kombinasi yang paling tepat. Dalam hal ini perhitungan angka-angka dan rumus yang akurat bukanlah satu-satunya faktor yang menjadi kunci sukses di dalam mendesain sebuah alat karena ada banyak faktor eksternal yang turut berperan, sehinggaproses mencoba dan menemukan/mengoreksi kesalahan perlu melibatkan hal-hal yang sifatnya non-eksakta. Prototyping adalah gabungan antara akurasi perhitungan dan seni. Pada masa lalu (dan masih terjadi hingga hari ini) bekerja dengan hardware berarti membuat rangkaian menggunakan berbagai komponen elektronik seperti resistor, kapasitor, transistor dan sebagainya. Setiap komponen disambungkan secara fisik dengan kabel atau jalur tembaga yang disebut dengan istilah “hard wired” sehingga untuk merubah rangkaian maka sambungansambungan itu harus diputuskan dan disambung kembali. Dengan hadirnya teknologi digital dan microprocessor fungsi yang sebelumnya dilakukan dengan hired wired digantikan dengan program-program software. Ini adalah sebuah revolusi di dalam proses prototyping. Software lebih mudah diubah dibandingkan hardware, dengan beberapa penekanan tombol kita dapat merubah logika alat secara radikal dan mencoba versi ke-dua, ke-tiga dan seterusnya dengan cepat tanpa harus mengubah pengkabelan dari rangkaian. Arduino dikatakan sebagai sebuah platform dari physical computing yang bersifat open source. Pertama-tama perlu dipahami bahwa kata “platform” di sini adalah sebuah pilihan kata yang tepat. Arduino tidak hanya sekedar sebuah alat pengembangan, tetapi ia adalah kombinasi dari hardware, bahasa pemrograman Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
dan Integrated Development Environment (IDE) yang canggih. IDE adalah sebuah software yang sangat berperan untuk menulis program, meng-compile menjadi kode biner dan meng-upload ke dalam memory microcontroller. Ada banyak projek dan alat-alat dikembangkan oleh akademisi dan profesional dengan menggunakan Arduino, selain itu juga ada banyak modul-modul pendukung (sensor, tampilan, penggerak dan sebagainya) yang dibuat oleh pihak lain untuk bisa disambungkan dengan Arduino. Arduino berevolusi menjadi sebuah platform karena ia menjadi pilihan dan acuan bagi banyak praktisi. Salah satu yang membuat Arduino memikat hati banyak orang adalah karena sifatnya yang open source, baik untuk hardware maupun software-nya. Diagram rangkaian elektronik Arduino digratiskan kepada semua orang. Anda bisa bebas men-download gambarnya, membeli komponen-komponennya, membuat PCBnya dan merangkainya sendiri tanpa harus membayar kepada para pembuat Arduino. Sama halnya dengan IDE Arduino yang bisa di-download dan diinstal pada komputer secara gratis. Kita patut berterima kasih kepada tim Arduino yang sangat dermawan membagi-bagikan kemewahan hasil kerja keras mereka kepada semua orang. Saya pribadi betul-betul kagum dengan desain hardware, bahasa pemrograman dan IDE Arduino yang berkualitas tinggi dan sangat berkelas. Arduino dikembangkan oleh sebuah tim yang beranggotakan orang-orang dari berbagai belahan dunia. Anggota inti dari tim ini adalah : 1. Massimo Banzi Milano, Italy 2. David Cuartielles Malmoe, Sweden 3. Tom Igoe New York, US 4. Gianluca Martino Torino, Italy 5. David A. Mellis Boston, MA, USA Saat ini komunitas Arduino berkembang dengan pesat dan dinamis di berbagai belahan dunia. Bermacam-macam kegiatan yang berkaitan dengan projek-projek Arduino bermunculan dimana-mana, termasuk di Indonesia. Yang membuat Arduino dengan cepat diterima oleh orang-orang adalah karena : 1. Murah, dibandingkan platform yang lain. Harga sebuah papan Arduino tipe Uno asli buatan Italia yang saya beli di tahun 2011 seharga Rp 290.000,-. Sebuah investasi yang sangat murah untuk berbagai keperluan projek. Harganya akan lebih murah lagi jika pengguna membuat papannya sendiri dan merangkai komponen-komponennya satu per satu. 2. Lintas platform, software Arduino dapat dijalankan pada system operasi Windows, Macintosh OSX dan Linux, sementara platform lain umumnya terbatas hanya pada Windows. 3. Sangat mudah dipelajari dan digunakan. Processing adalah bahasa pemrograman yang digunakan untuk menulis program di dalam Arduino. Processing adalah bahasa pemrograman tingkat tinggi yang dialeknya Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
sangat mirip dengan C++ dan Java, sehingga pengguna yang sudah terbiasa dengan kedua bahasa tersebut tidak akan menemui kesulitan dengan Processing. Bahasa pemrograman Processing sungguh-sungguh sangat memudahkan dan mempercepat pembuatan sebuah program karena bahasa ini sangat mudah dipelajari dan diaplikasikan dibandingkan bahasa pemrograman tingkat rendah seperti Assembler yang umum digunakan pada platform lain namun cukup sulit. Untuk mengenal Processing lebih lanjut, silakan mengunjungi situs web-nya di http://www.processing.org.
Gambar Arduino UNO Buatan Italy Secara umum Arduino terdiri dari dua bagian, yaitu : 1. Hardware papan input/output (I/O) 2. Software software Arduino meliputi IDE untuk menulis program, driver untuk koneksi dengan komputer, contoh program dan library untuk pengembangan program. Saat ini ada bermacam-macam bentuk papan Arduino yang disesuaikan dengan peruntukannya seperti diperlihatkan berikut ini : 1. ARDUINO USB
Gambar Arduino USB Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
Menggunakan USB sebagai antar muka pemrograman atau komunikasi komputer. Contoh: 1. Arduino Uno 2. Arduino Duemilanove 3. Arduino Diecimila 4. Arduino NG Rev. C 5. Arduino NG (Nuova Generazione) 6. Arduino Extreme dan Arduino Extreme v2 7. Arduino USB dan Arduino USB v2.0
2. ARDUINO SERIAL Menggunakan RS232 sebagai antar muka pemrograman atau komunikasi komputer.
Gambar Arduino Serial Contoh: Arduino Serial dan Arduino Serial v2.0 3. ARDUINO MEGA
Gambar Arduino Mega
Papan Arduino dengan spesifikasi yang lebih tinggi, dilengkapi tambahan pin digital, pin analog, port serial dan sebagainya. Contoh : Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
1. 2.
Arduino Mega Arduino Mega 2560
4. ARDUINO FIO
Gambar Arduino FIO Ditujukan untuk penggunaan nirkabel. 5. ARDUINO LILYPAD
Gambar Arduino LilyPad Papan dengan bentuk yang melingkar. Contoh: LilyPad Arduino 00, LilyPad Arduino 01, LilyPad Arduino 02, LilyPad Arduino 03, LilyPad Arduino 04
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
6. ARDUINO BT (Bluetooth)
Gambar Arduiono BT (Bluetooth) Mengandung modul bluetooth untuk komunikasi nirkabel.
7. ARDUINO NANO DAN ARDUINO MINI
Gambar Arduino Nano Dan Arduino Mini Papan berbentuk kompak dan digunakan bersama breadboard. Contoh : 1. Arduino Nano 3.0, Arduino Nano 2.x 2. Arduino Mini 04, Arduino Mini 03, Arduino Stamp 02
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
Dengan mengambil contoh sebuah papan Arduino tipe USB, bagianbagiannya dapat dijelaskan sebagai berikut.
Gambar Blok Diagram Arduino Adapun Fungsi Bagian Dari Papan Arduino Adalah Sbb : 14 pin input/output digital (0-13) Berfungsi sebagai input atau output, dapat diatur oleh program. Khusus untuk 6 buah pin 3, 5, 6, 9, 10 dan 11, dapat juga berfungsi sebagai pin analog output dimana tegangan output-nya dapat diatur. Nilai sebuah pin output analog dapat diprogram antara 0 – 255, dimana hal itu mewakili nilai tegangan 0 – 5V. USB Berfungsi untuk : Memuat program dari komputer ke dalam papan papan dan computer.
Komunikasi serial antara
Sambungan SV1 Sambungan atau jumper untuk memilih sumber daya papan, apakah dari sumber eksternal atau menggunakan USB. Sambungan ini tidak diperlukan lagi pada papan Arduino versi terakhir karena pemilihan sumber daya eksternal atau USB dilakukan secara otomatis.
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
Q1 – Kristal (quartz crystal oscillator) Jika microcontroller dianggap sebagai sebuah otak, maka kristal adalah jantung-nya karena komponen ini menghasilkan detak-detak yang dikirim kepada microcontroller agar melakukan sebuah operasi untuk setiap detaknya. Kristal ini dipilih yang berdetak 16 juta kali per detik (16MHz).
Tombol Reset S1 Untuk me-reset papan sehingga program akan mulai lagi dari awal. Perhatikan bahwa tombol reset ini bukan untuk menghapus program atau mengosongkan microcontroller.
In-Circuit Serial Programming (ICSP) Port ICSP memungkinkan pengguna untuk memprogram microcontroller secara langsung, tanpa melalui bootloader. Umumnya pengguna Arduino tidak melakukan ini sehingga ICSP tidak terlalu dipakai walaupun disediakan.
IC 1 – Microcontroller Atmega Komponen utama dari papan Arduino, di dalamnya terdapat CPU, ROM dan RAM.
X1 – sumber daya eksternal Jika hendak disuplai dengan sumber daya eksternal, papan Arduino dapat diberikan tegangan DC antara 9-12V.
6 pin input analog (0-5) Pin ini sangat berguna untuk membaca tegangan yang dihasilkan oleh sensor analog, seperti sensor suhu. Program dapat membaca nilai sebuah pin input antara 0 – 1023, dimana hal itu mewakili nilai tegangan 0 – 5V.
Tanpa melakukan konfigurasi apapun, begitu sebuah papan Arduino dikeluarkan dari kotak pembungkusnya ia dapat langsung disambungkan ke sebuah komputer melalui kabel USB. Selain berfungsi sebagai penghubung untuk pertukaran data, kabel USB ini juga akan mengalirkan arus DC 5 Volt kepada papan Arduino sehingga praktis tidak diperlukan sumber daya dari luar. Saat
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
mendapat suplai daya, lampu LED indikator daya pada papan Arduino akan menyala menandakan bahwa ia siap bekerja.
Gambar Koneksi Arduino Ke Port USB Pada papan Arduino Uno terdapat sebuah LED kecil yang terhubung ke pin digital no 13. LED ini dapat digunakan sebagai output saat seorang pengguna membuat sebuah program dan ia membutuhkan sebuah penanda dari jalannya program tersebut. Ini adalah cara yang praktis saat pengguna melakukan uji coba. Umumnya microcontroller pada papan Arduino telah memuat sebuah program kecil yang akan menyalakan LED tersebut berkedip-kedip dalam jeda satu detik. Jadi sangat mudah untuk menguji apakah sebuah papan Arduino baru dalam kondisi baik atau tidak, cukup sambungkan papan itu dengan sebuah komputer dan perhatikan apakah LED indikator daya menyala konstan dan LED dengan pin 13 itu menyala berkedip-kedip.
SOFTWARE ARDUINO Sehubungan dengan pembahasan untuk saat ini software Arduino yang akan digunakan adalah driver dan IDE, walaupun masih ada beberapa software lain yang sangat berguna selama pengembangan Arduino. IDE Arduino adalah software yang sangat canggih ditulis dengan menggunakan Java. IDE Arduino terdiri dari: • Editor program, sebuah window yang memungkinkan pengguna menulis dan mengedit program dalam bahasa Processing. • Compiler, sebuah modul yang mengubah kode program (bahasa Processing) menjadi kode biner. Bagaimanapun sebuah microcontroller tidak akan bisa memahami bahasa Processing. Yang bisa dipahami oleh Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
•
microcontroller adalah kode biner. Itulah sebabnya compiler diperlukan dalam hal ini. Uploader, sebuah modul yang memuat kode biner dari Jomputer ke dalam memory di dalam papan Arduino.
Berikut ini adalah contoh tampilan IDE Arduino dengan sebuah sketch yang sedang diedit.
Gambar Tampilan Arduino (IDE)
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
BAB II PRAKTIKUM DASAR ARDUINO MEMBUAT LED BLINKING PRAKTIKUM I /* Simulasi dan praktek Pertama LED Berkedip untuk uji simulasi dan upload program */ int led = 13; // LED terhubung pada pin 13 void setup() { pinMode(led, OUTPUT); // set led sebagai output } void loop() { digitalWrite(led, HIGH); // set led on delay(500); // tunda untuk 1/2 detik digitalWrite(led, LOW); // set led off delay(500); // tunda untuk 1/2 detik }
PRAKTIKUM II /* Proyek 1- Blink Tiga LED Tiga LED berkedip pada digital pin yang berbeda */ int firstLedPin = 3; // Inisialisasi setiap pin LED int secondLedPin = 5; int thirdLedPin = 7; void setup() { pinMode(firstLedPin, OUTPUT);//set LED pin sebagai output pinMode(secondLedPin, OUTPUT);//set LED pin sebagai output pinMode(thirdLedPin, OUTPUT); //set LED pin sebagai output } void loop() { // Setiap LED berkedip 500 milisecond (1/2 detik) blinkLED(firstLedPin, 500); blinkLED(secondLedPin, 500); blinkLED(thirdLedPin, 500); } // Durasi kedipan LED dalam milisecond void blinkLED(int pin, int duration) { digitalWrite(pin, HIGH); // LED on delay(duration); digitalWrite(pin, LOW); // LED off delay(duration); Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
BAB III PRAKTIKUM MEMBUAT MINI TRAFIC LIGHT
Source Code // Proyek 2 Mini Traffic Lights int ledDelay = 10000; // delay Pada setiap perubahan int redPin = 10; int yellowPin = 9; int greenPin = 8; void setup() { pinMode(redPin, OUTPUT); pinMode(yellowPin, OUTPUT); pinMode(greenPin, OUTPUT); } void loop() { digitalWrite(redPin, HIGH); // Nyalakan LED merah delay(ledDelay); // tunda beberapa milisecond digitalWrite(yellowPin, HIGH); // Nyalakan LED Kuning delay(2000); // tunda 2 detik digitalWrite(greenPin, HIGH); // Nyalakan LED Hijau digitalWrite(redPin, LOW); // OFF kan LED Merah digitalWrite(yellowPin, LOW); // OFF kan LED Kuning delay(ledDelay); // tunda beberapa milisecond digitalWrite(yellowPin, HIGH); // Nyalakan LED Kuning digitalWrite(greenPin, LOW); // OFF kan LED Hijau delay(2000); // Tunda 2 detik digitalWrite(yellowPin, LOW); // OFF kan LED Kuning // Loop akan terus berulang }
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
BAB IV PRAKTIKUM MEMBUAT BRIGTHNESS LED
/* Proyek 3- Brightness LED Mengontrol intensitas (kecerahan) cahaya LED dengan menggunakan Pin PWM sebagai analog ouput. */ const int firstLed = 3; //inisialisasi setiap pin PWM pd LED const int secondLed = 5; const int thirdLed = 6; int brightness = 0;// inisialisasi nilai awal ntensitas LED int increment = 1; // inisialisasi kenaikan intensitas LED void setup() { // analogWrite tidak perlu deklarasi pin sebagai output } void loop() { if(brightness > 255) { increment = -1; // hitung mundur setelah mendekati 255 } else if(brightness < 1) { increment = 1; // hitung maju setelah kembali ke 0 } brightness = brightness + increment; // kenaikan atau //penurunan intensitas. // nilai intensitas cahaya LED analogWrite(firstLed, brightness); analogWrite(secondLed, brightness); analogWrite(thirdLed, brightness); delay(10); // 10ms untuk setiap perubahan kenaikan atau //penurunan intensitas LED }
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
BAB V PRAKTIKUM MEMBUAT LAMPU PEMADAM MINI
// Project 4 - Lampu Pemadam mini int ledPin1 = 9; // inisialisasai pin 9 int ledPin2 = 10; // inisialisasai pin 10 int ledPin3 = 11; // inisialisasai pin 11 void setup() { pinMode(ledPin1, OUTPUT); // set pin 9 sebagai output pinMode(ledPin2, OUTPUT); // set pin 10 sebagai output pinMode(ledPin3, OUTPUT); // set pin 11 sebagai output } void loop() { analogWrite(ledPin1, random(120) + 135); analogWrite(ledPin2, random(120) + 135); analogWrite(ledPin3, random(120) + 135); delay(random(100)); }
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
BAB V PRAKTIKUM MEMBUAT MULTIPLE LED
/* Proyek 5- Multiple LED Telah dimodifikasi */ int timer = 500; // pewaktuan melambat // array (penyusunan) nomor pin LED int ledPins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int pinCount = 10; // jumlah pin (panjang array) void setup() { // Elemen array penomoran dari 0 sampai (pinCount 1). // Gunakan for loop untuk inisialisai pin sebagai output for (int thisPin = 0; thisPin < pinCount; thisPin++) { pinMode(ledPins[thisPin], OUTPUT); } } void loop() { // loop dari pin rendah ke lebih tinggi for (int thisPin = 0; thisPin < pinCount; thisPin++) { // ON-kan pin : digitalWrite(ledPins[thisPin], HIGH); delay(timer); // OFF-kan pin : digitalWrite(ledPins[thisPin], LOW); } // loop dari pin lebih tinggi ke pin lebih rendah: for (int thisPin = pinCount - 1; thisPin >= 0; thisPin--) { // ON-kan pin : digitalWrite(ledPins[thisPin], HIGH); delay(timer); // OFF-kan pin: digitalWrite(ledPins[thisPin], LOW); } }
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
BAB VI PRAKTIKUM MEMBUAT 1 SAKLAR TEKAN PUSH BUTTON
/* Proyek 6.1- Satu Saklar tekan Hidupkan satu LED */ int LED = 13; // inisialisasi LED pin 13 int BUTTON = 7; // inisialisasi pin 7 // sebagai input sakalar tekan int val = 0; // Variabel val digunakan untuk menyimpan // pernyataan pada pin input void setup() { pinMode(LED, OUTPUT); // set LED (pin 13) sebagai Output pinMode(BUTTON, INPUT);//set BUTTON (pin 7) sebagai input } void loop(){ val = digitalRead(BUTTON); // Membaca & menyimpan // nilai input // Mengecek input ketika HIGH(saat saklar ditekan) if (val == HIGH) { digitalWrite(LED, HIGH); // LED ON } else { digitalWrite(LED, LOW); // LED OFF } }
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
BAB VII PRAKTIKUM MEMBUAT 3 SAKLAR TEKAN PUSH BUTTON
/* Proyek 6.2- Tiga Saklar Tekan Untuk mengontrol mmasing-masing satu LED */ int inputPins[] = {2,4,6}; // buat array untuk 3 pin input int ledPins[] = {10,11,12}; // buat array untuk pin output LED void setup() { for(int index = 0; index < 3; index++) { pinMode(ledPins[index], OUTPUT); // set LED sebagai ouput pinMode(inputPins[index], INPUT); // set saklar tekan sbg input digitalWrite(inputPins[index], HIGH); // pull-up resistors } } void loop(){ for(int index = 0; index < 3; index++) { int val = digitalRead(inputPins[index]); // baca nilai input if (val == HIGH) // cek jika saklar ditekan { digitalWrite(ledPins[index], HIGH); // LED ON jika saklar ditekan } else { digitalWrite(ledPins[index], LOW); // LED OFF } } }
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
BAB VIII PRAKTIKUM MEMBUAT ANALOG TO DIGITAL CONVERTER
/* Proyek 7- LED Bar Graph LED dikontrol dari potentiometer sebagai analog input */ const int analogPin = 0; // pin potentiometer dipasang const int ledCount = 10; // jumlah elemen/LED bar graph int ledPins[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // mendeklarasikan array pada pin LED void setup() { // loop pin array dan menset semua pin array sbg output: for (int thisLed = 0; thisLed < ledCount; thisLed++) { pinMode(ledPins[thisLed], OUTPUT); } } void loop() { // Baca potensiometer int sensorReading = analogRead(analogPin); // hasil range input analog dari 0 ke sejumlah led int ledLevel = map(sensorReading, 0, 1023, 0, ledCount); // loop LED array for (int thisLed = 0; thisLed < ledCount; thisLed++) { // jika elemen pada array lebih kecil dari ledLevel, // ON-kan pin if (thisLed < ledLevel) { digitalWrite(ledPins[thisLed], HIGH); } // OFF kan semua pin yang lebih tinggi dari ledLevel: else { digitalWrite(ledPins[thisLed], LOW); } } }
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
BAB IX PRAKTIKUM MEMBUAT SENSOR CAHAYA
/* Proyek 8-Sensor Cahaya, LED menyala pada kondisi lingkungan Gelap,dan padam bila kondisi lingkungan terang */ const int pinLDR = 0;//Inisialisasi SensorLDR pin analog 0 const int pinLED = 8;//inisialisasi LED pada pin 8 int sensorValue = 0;// inisialisasi nilai terbaca di sensor int outputValue = 0;// penskalaan nilai sensor void setup() { } void loop() { sensorValue = analogRead(pinLDR); // baca nilai sensor: // penskalaan nilai sensor (0-1023) mnjdi nilai output (0-500) outputValue = map(sensorValue, 0, 1023, 0, 500); // deteksi, jika nilai OutputValue <=300, kondisi redup/gelap if(outputValue <= 300) digitalWrite(pinLED, HIGH); // ON-kan LED else digitalWrite(pinLED, LOW); // OFF-kan LED delay(200); }
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
BAB X PRAKTIKUM MEMBUAT CONTROL MOTOR STEPPER
/* Proyek 9- Kendali Motor Servo, Sweep Servo */ #include <Servo.h> Servo myservo; // membuat obyek servo untuk kendali servo int pos = 0; // variabel untuk menyimpan posisi/sudut servo void setup() { myservo.attach(9); // pasang objek servo pada pin 9 } void loop() { for( pos = 0; pos < 180; pos += 1)// posisi dari 0 // derajat ke 180 derajat dengan langkah 1 derajat { myservo.write(pos);// posisi sesuai variable 'pos' delay(15); // tunggu 15ms untuk posisi servo } for( pos = 180; pos >= 1; pos -= 1) // posisi dari 180 // derajat ke 0 derajat { myservo.write(pos); // posisi sesuai variable 'pos' delay(15); // tunggu 15ms untuk posisi servo } }
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
BAB XI PRAKTIKUM MEMBUAT PLAY MELODI SEDERHANA
/* Proyek 10- Play Melodi Contoh program dasar melodi dengan memainkan not lagu Birthday */ // Domain public #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262 #define NOTE_C4_1 260 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330
Happy
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
#define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define
NOTE_F4 NOTE_FS4 NOTE_G4 NOTE_GS4 NOTE_A4 NOTE_AS4 NOTE_B4 NOTE_C5 NOTE_CS5 NOTE_D5 NOTE_DS5 NOTE_E5 NOTE_F5 NOTE_FS5 NOTE_G5 NOTE_GS5 NOTE_A5 NOTE_AS5 NOTE_B5 NOTE_C6 NOTE_CS6 NOTE_D6 NOTE_DS6 NOTE_E6 NOTE_F6 NOTE_FS6 NOTE_G6 NOTE_GS6 NOTE_A6 NOTE_AS6 NOTE_B6 NOTE_C7 NOTE_CS7 NOTE_D7 NOTE_DS7 NOTE_E7 NOTE_F7 NOTE_FS7 NOTE_G7 NOTE_GS7 NOTE_A7 NOTE_AS7 NOTE_B7 NOTE_C8 NOTE_CS8 NOTE_D8 NOTE_DS8
349 370 392 415 440 466 494 523 554 587 622 659 698 740 784 831 880 932 988 1047 1109 1175 1245 1319 1397 1480 1568 1661 1760 1865 1976 2093 2217 2349 2489 2637 2794 2960 3136 3322 3520 3729 3951 4186 4435 4699 4978
// inisialisasi pin 9 sebagai pin speaker int speakerPin = 9; // not-not melody: int melody[] = { NOTE_C4_1,NOTE_C4, NOTE_D4, NOTE_C4,NOTE_F4,NOTE_E4, Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
NOTE_C4_1,NOTE_C4,NOTE_D4,NOTE_C4,NOTE_G4,NOTE_F4, NOTE_C4_1,NOTE_C4,NOTE_C5,NOTE_A4,NOTE_F4,NOTE_E4,NOTE _D4, NOTE_AS4,NOTE_AS4,NOTE_A4,NOTE_F4,NOTE_G4,NOTE_F4}; // durasi not: 4 = not ke 4 , 8 = not ke 8, dll: int noteDurations[] = { 6, 6, 3, 3,3,3, 6, 6, 3, 3,3,3, 6, 6, 3, 3,3,3,3, 6, 6, 3, 3,3,3 }; void setup() { pinMode(speakerPin, OUTPUT); } void loop() { for (int thisNote = 0; thisNote < 26; thisNote++) { int noteDuration = 1000 / noteDurations[thisNote]; tone(9, melody[thisNote], noteDuration); int pauseBetweenNotes = noteDuration + 50; delay(pauseBetweenNotes); noTone(9); // stop mainkan tone } }
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan
DAFTAR PUSTAKA Arduino Home Page, (2012).Arduino Uno Getting Started. [Online]. Tersedia: http://www.arduino.cc/en/Main/arduinoBoardUno[diakses pada tanggal 12 April 2014] DF Robot Home Page,(2011).IR Kit for Arduino [Online]. Tersedia: http://www.dfrobot.com/index.php?route=product/product&filter_name=IR%20re mote&product_id=366#.Uhn4BT9dtPsDjuandi, Feri. (2011). Pengenalan Arduino.[OnLine]. Tersedia: http://www.TokoBuku.com/arduino pengenalan.PDF[diakses pada tanggal 12April 2014] Austerlitz, Howard. 2003. Data Acquisition Techniques Using PC’s. Academic Press, San Diego Developers, Android. 2013. Dashboards | Android Developers, http://developer.android.com/about/dashboards/index.html. Diakses tanggal 5 Maret 2014 Klebovich, Pavel. 2011. IP http://www.appbrain.com/app/com.pas.webcam#descriptionsection. tanggal 4 Maret 2014
Webcam, Diakses
Lee W. M. 2011. Beginning Android Application Development. Wiley Publishing, Indiana Mc.Comb, Gordon. 2001. The Robot Builder’s Bonaza (second edition). Mc.Grow-Hill National Semiconductor. 2000. LM35 datasheet, http://www.alldatasheet.com/datasheetpdf/pdf/8866/NSC/LM35.html. Diakses tanggal 4 Maret 2014 Tim Paseban. 2012. Wi-Fi Tethering, http://portal.paseban.com/article/7241/wifitethering. Diakses tanggal 4 Maret 2014 Tim PenerbitAndi. 2004. Wireless Atasi Keterbatasan Jangkauan. Andi, Yogyakarta
Modul Praktikum Robotika Laboratorium Robotika STT-Harapan Medan