RANCANG LENGAN ROBOT DENGAN METODE KINEMATIK...

21
RANCANG LENGAN ROBOT DENGAN METODE KINEMATIK MENGGUNAKAN ATMEGA 168 HALAMAN JUDUL Naskah Publikasi diajukan oleh Wensiscilius Sibau 06.11.1299 kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA YOGYAKARTA 2013

Transcript of RANCANG LENGAN ROBOT DENGAN METODE KINEMATIK...

RANCANG LENGAN ROBOT DENGAN METODE KINEMATIK

MENGGUNAKAN ATMEGA 168

HALAMAN JUDUL

Naskah Publikasi

diajukan oleh

Wensiscilius Sibau

06.11.1299

kepada

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER

AMIKOM YOGYAKARTA

YOGYAKARTA

2013

HALAMAN PENGESAHAN

DESIGN OF ROBOT’S ARM WITH KINEMATIC METHOD

USES ATMEGA 168 MICROCONTROLLER

RANCANG LENGAN ROBOT DENGAN METODE KINEMATIK

MENGGUNAKAN ATMEGA 168

Wensiscilius Sibau

Emha Taufiq Luthfi

Jurusan Teknik Informatika

STMIK AMIKOM YOGYAKARTA

ABSTRACT

ABSTRACT ABSTRACT

In this current technological era the development in all the fields with the basis of technology really fast. Various discoveries and the development of technology made plenty of changes for various developing sorts of the life order dimasyarakat. This progress helped facilitated humankind in completing the work that previously it was considered was difficult in fact almost impossible to be carried out. One of them was in the control field, with the discovery mikrokontroler as the manager's automatic aids

Through this thesis the author will use mikrokontroler ATMega 168 as one of the

several ATMEL output products to arrange and undertake the mechanical movement from the hands of the robot. The writer used the C programming language as the programming language to mikrokontroler ATMega 168.

The robot's arms were drafted to select and move the thing was based on the

volume. This system consisted of 6 (six) the motor servo as aktuator arms. The six motors servo this was controlled through 4 (four) the PWM canal (Pulse widht modulation) that has been available in mikrokontroler ATMega 168. Four PWM canals were the OCR register (output compare the register). The movement of the round of the corner of the motor servo was arranged by changing the values bit to his OCR register.

Keyword: Technology, Mikrokontroler, ATMega 168, the programming Language, the

Plan

1. PENDAHULUAN

Saat ini robot telah banyak digunakan oleh banyak orang, baik itu sebagai alat

bantu atau hanya sebagai hiburan saja. Tiap robot memiliki bentuk masing-masing,

tergantung fungsi dan manfaatnya. Pada kasus ini, hanya menggunakan lengan robot

dan konveyor sebagai tambahan. Lengan robot ini berfungsi untuk mengambil dan

memindahkan objek. Sementara konveyor sebagai penyedia objek.

Pada kasus ini penulis menggunakan metode kinematik untuk mendapatkan

gerakan yang tepat pada lengan robot. Penulis juga menggunakan sensor untuk

memudahkan dalam pemilahan objek. Dengan adanya sensor pemilahan objek akan

lebih akurat tanpa harus memilah secara manual. Maka dari semua itu penulis

mengambil judul dengan "Rancang lengan robot dengan metode kinematik

menggunakan mikrokontroler atmega 168".

2. LANDASAN TEORI

2.1 Pengenalan Robot

2.1.1 Sejarah Robot

Pertama kali kata robot digunakan di New York pada tahun 1921 di sebuah

pentas theater yang berjudul “Rossum's Universal Robots (RUR)”, oleh Wright Karel

Caper. Namun, bangsa Yunani kuno sekitar 270 BC, Ctesibus, insinyur yunani membuat

organ dan jam air yang dapat dipindahkan. Pada tahun 1770, Pierre Jacquet Droz,

membuat tiga boneka mekanis yang dapat menulis, dapat memainkan musik dan organ,

dan yang terahkir dapat menggambar. Sementara Nikola Tesla tahun 1898, membuat

boat yang dikontrol melalui remote kontrol dan didemokan di Madison Square Garden.

Namun karena bermasalah dengan dana sehingga proyek tersebut tak bisa dilanjutkan.

Tahun 1956, UNIMATION memulai bisnis robot dan baru pada tahun 1972 mendapatkan

laba dari usahanya tersebut. Istilah robot makin populer setelah ada film Starwars dan

Robot R2D2 yaitu sekitar tahun 70-an.

2.1.2 Definisi Robot

Kata robot berasal dari bahasa Czech, Robota yang berarti pekerja. Ada juga

yang mengatakan robot adalah sebuah mesin yang berbentuk seperti manusia yang bisa

bergerak dan berbicara1. Sedangkan Robot Institute of America mendefinisikannya

dengan “Sebuah robot adalah sesuatu yang dapat di program dan diprogram ulang,

1 Taufiq dwi septian suyadhi, Buku pintar robotika bagaimana merancang dan membuat robot

sendiri hal 1

dengan memiliki manipulator mekanik / pengerak yang didisain untuk memindahkan

barang-barang, komponen-komponen atau alat-alat khusus dengan berbagai program

yang fleksibel / mudah disesuaikan untuk melaksanakan berbagai macam tugas”.

2.1.3 Jenis Robot

2

2.1.3.1 Jenis Robot berdasarakan bentuknya

1. Turtle robot, karena bentuk robot mirip rumah kura-kura;

2. Vehicle robot, berbentuk seperti kendaraan yang dilengkapi dengan roda dan

bergerak seperti mobil;

3. Rover robot, bentuk seperti vehicle tapi lebih pendek, robot jenis ini dilengkapi

beberapa fungsi, misal kemampuan mendeteksi api, mendeteksi objek,

mengangkut beban, dan fungsi lain;

4. Walker robot, pergerakannya menggunakan kaki dan biasanya berbentuk mirip

serangga;

5. Arm robot, robot berupa lengan yang biasanya digunakan untuk mengambil dan

memindahkan barang. Lengan ini dapat terpasang pada robot yang bergerak

atau pada sebuah tempat yang statis;

6. Android robot, didesain menyerupai manusia dan mempunyai kemampuan untuk

berkomunikasi dengan manusia;

2.1.3.2 Jenis Robot berdasarkan Kendalinya

1. Robot otomatis (automatic robot) dapat bergerak sendiri berdasarkan perintah-

perintah yang telah dituliskan dalam program pengendalinya. Jenis robot ini

dilengkapi dengan sensor yang berfungsi sebagai masukan (input) yang dapat

memberikan data mengenai lingkungannya kepada prosesor;

2. Robot teleoperasi (teleoperated robot) robot jenis ini bergerak berdasarkan

perintah-perintah yang dikirimkan secara manual, baik tanpa kabel/wireless

(remote control), atau dengan kabel(joystick);

2.1.4 Sistem Penggerak Robot

3

2.1.4.1 DC Motor

DC motor atau dinamo adalah motor yang paling banyak digunakan untuk mobile

2Ibid hal 2

3Widodo budiharto, Belajar sendiri membuat robot cerdas panduan utama untuk mengikuti kontes

robot hal 6

robot.

2.1.4.2 Servo Motor

Servo motor adalah DC motor kualitas tinggi yang memenuhi syarat untuk

digunakan pada aplikasi servo seperti closed control loop.

2.2 Kinematika Robot

Kinematika Robot adalah studi analitis pergerakan lengan robot (robot arm)

terhadap sistem kerangka koordinat referensi yang diam/bergerak tanpa memperhatikan

gaya yang menyebabkan pergerakan tersebut.

Kinematika balik adalah salah satu cara perhitungan dalam kinematika robot

lengan, dimana akan menghasilkan nilai sudut yang di peroleh dari perhitungan nilai titik

akhir yang diinginkan (end efector). Hasil dari perhitungan berupa satuan sudut yang

akan dikerjakan oleh tiap derajat kebebasan (DOF).

2.3 Pulse Width Modulation (PWM)

Secara umum PWM adalah sebuah cara memanipulasi lebar sinyal atau

tegangan yang dinyatakan dengan pulsa dalam suatu periode, yang akan digunakan

untuk mentransfer data pada pengatur tegangan sumber yang konstan untuk

mendapatkan tegangan rata-rata yang berbeda.

2.4 Perangkat Keras

2.4.1 Konveyor

Konveyor merupakan pengangkut berbentuk sabuk berjalan yang terbuat dari

karet dengan jaringan benang penguat untuk memindahkan material secara terus-

menerus.

2.4.2 Sensor Jarak Ultrasonik PING

Sensor jarak ultrasonik PING adalah sensor 40 KHz produksi parallax yang

banyak digunakan untuk aplikasi atau kontes robot cerdas untuk mendeteksi jarak suatu

objek.

2.4.3 Mikrokontroler ATMega 168

Mikrokontroler tipe ATMega168 termasuk dalam keluarga MegaAVR merupakan

suatu mikrokomputer dengan kecepatan maksimal 16 MHz yang menggunakan konsumsi

daya rendah.

Spesifikasi ATMega168 antara lain sebagai berikut ;

1. Saluran IO sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D;

2. ADC 10 bit sebanyak 8 Channel;

3. Tiga buah timer / counter.32 register;

4. Watchdog Timer dengan oscilator internal;

5. SRAM sebanyak 512 byte;

6. Memori Flash sebesar 8 kb;

7. Sumber Interrupt internal dan eksternal;

8. Port SPI ( Serial Pheriperal Interface );

9. EEPROM on board sebanyak 512 byte;

10. Komparator analog;

11. Port USART (Universal Shynchronous Ashynchronous Receiver

Transmitter);

Fitur yang dimiliki oleh ATMega168 yaitu sebagai berikut ;

1. Sistem processor 8 bit berbasis RISC dengan kecepatan maksimal 16

Mhz;

2. Ukuran memory flash 8KB, SRAM sebesar 512 byte, EEPROM sebesar

512 byte;

3. ADC internal dengan resolusi 10 bit sebanyak 8 channel;

4. Port komunikasi serial USART dengan kecepatan maksimal 2.5 Mbps;

5. Mode Sleep untuk penghematan penggunaan daya listrik;

2.5 Perangkat Lunak

2.5.1 Arduino

4Dalam buku “Getting Started with Arduino”, Arduino dituliskan sebagai sebuah

platformphysical computing yang open source pada board input output sederhana. Yang

dimaksud dengan platform Physical Computing di sini adalah sebuah sistem fisik yang

interaktif dengan penggunaan software dan hardware yang dapat mendeteksi dan

merespon situasi dan kondisi yang ada di dunia nyata.

4 Dian artanto, Interaksi arduino dan labview hal 1

Dari situs resminya, arduino didefinisikan sebagai platform elektronik yang open

source, berbasis pada software dan hardware yang fleksibel dan mudah digunakan, yang

ditujukan untuk para seniman, desainer, hobbies dan setiap orang yang tertarik dalam

membuat objek atau lingkungan yang interaktif.

3. PERANCANGAN SISTEM

3.1 Tujuan Perancangan

Perancangan berfungsi untuk mendisain rancang bangun sistem yang akan

dibuat, memilah fungsi dan kegunaan alat, serta komponen-komponen yang digunakan

agar tidak terjadi kesulitan dalam pembuatan sistem yang akan dibangun.

3.2 Diagram Blok

3.3 Perancangan Elektronik

Tahap pertama yang dilakukan adalah perancangan elektronik.. Suatu hal yang

harus dilakukan adalah memastikan pemilihan komponen sesuai dengan yang

dibutuhkan dan menyiapkan semua hal yang diperlukan dalam proses pembuatan

rangkaian. Tahapan ini merupakan tahapan yang penting dalam proses pengerjaan alat.

Komponen yang dibutuhkan harus sesuai dengan ketentuan dan apabila tidak terdapat

dipasaran komponen yang diinginkan dapat diganti dengan jenis yang lain dengan

catatan fungsi dan kerja komponen tersebut tidak jauh beda dengan komponen awal. Hal

ini juga akan membantu dalam hal keuangan dan keandalan dari alat yang dibuat.

3.4 Perancangan Mekanik

Pada tahap perancangan mekanik, ada dua tahapan yaitu perancangan lengan

robot dan perancangan konveyor.

3.4.1 Perancangan Lengan Robot

Gambar 3.1Diagram Blok Perancangan Sistem

Lengan robot terdiri dari dua bagian yaitu lengan dan penjepit (end-effector) dan

terdiri dari lima sendi. Untuk pergerakannya, masing-masing sendi diberi servo yang

langsung terhubung dengan mikrokontroler.

Gambar 3.2 Desain Lengan Robot Dengan Motor Servo

3.4.2 Perancangan Konveyor

Pada perancangan mekanik tahap yang terahkir adalah perancangan konveyor.

Pada bagian ini pada konveyor akan diberi dua buah sensor ping dan sebuah motor dc.

Sensor nantinya berfungsi untuk mengukur dan menyeleksi objek yang nantinya akan

dikirim langsung ke mikrokontroler. Motor DC berungsi untuk menggerakkan konveyor.

Untuk lebih detailnya bisa dilihat pada gambar berikut :

42 cm

20 cm 15 cm

Motor

DC Sensor

ping

Motor

Servo

Gambar 3.3a Desain Konveyor Dengan Motor DC dan Sensor

3.5 Perancangan Software

Setelah merancang mekanik, langkah selanjutnya adalah perancangan software.

Software yang digunakan adalah Arduino 1.02 dengan bahasa C yang di upload ke

memori mikrokontroler ATMega 168.

Gambar 3.4 Flowchart Sistem

4. IMPLEMENTASI DAN PEMBAHASAN

4.1 Implementasi

4.1.1 Pembuatan Lengan Robot

Mengacuh rancangan yang telah dipaparkan pada bab sebelumnya, lengan

robot terdiri dari 2 bagian yaitu capit dan lengan. Lengan robot akan dibuat dari bahan

alumunium, ini dimaksudkan agar lengan lebih ringan dan lebih kokoh.

Gambar 4.1 Bentuk Hasil dari Lengan Robot Keseluruhan

4.1.2 Pembuatan Konveyor

Pada pembuatan konveyor, akan dibuat dari bahan alumunium sebagai bodi

konveyor dan belt sebagai alas. Seperti tampak pada gambar 4.3, konveyor terdiri dari

bodi, belt, motor dc dan sensor.

Gambar 4.2 Bentuk Hasil dari Capit dengan Sebuah Servo

Gambar 4.3 Bentuk Hasil dari Konveyor dengan Motor DC

Gambar 4.4 Bentuk Hasil dari Konveyor dengan sensor

4.1.3 Rangkaian Elektronik

Rangkaian utama pada robot adalah arduino board yang menjadi penerjemah

perintah dan kemudian dilanjutkan ke seluruh rangkaian yang terhubung dengan arduino

board. Board Arduino dapat beroprasi pada sebuah suplai eksternal 6 sampai 20 Volt

namun range yang direkomendasikan adalah 7 sampai 12 Volt. Dalam hal ini board

Arduino diberikan daya konsumsi sebesar 9 Volt agar regulator board tidak kelebihan

panas dan tidak kekurangan konsumsi daya sehingga lebih stabil.

Arduino memiliki beberapa pin yang digunakan untuk komunikasi mikrokontroler

sebanyak 14 pin dan beberapa pin daya yang bisa di bypass keluar board ketika

mendapatkan suplai tegangan.

Gambar 4.5 Konfigurasi pin I/O board arduino

4.1.4 Pembuatan Program

Dalam pemrograman mikrokontroler board Arduino, kode program dituliskan

seperti berikut:

Tiap servo diberi nama untuk lebih memudahakan mengidentifikasi servo, seperti

pada perintah berikut ;

Servo bawah; Servo dudukan1; Servo dudukan2; Servo tengah; Servo atas; Servo capit;

Berikutnya mendeklarasikan sensor, dimana sensor 1 berada pada pin 7 dan

sensor 2 pada pin 13, perintahnya sebagai berikut;

const int pingPin = 7; const int pingPin1 = 13; long duration, inches, cm; long duration1, inches1, cm1;

Pada bagian motor, pin berada pada 4 dan 5, perintahnya sebagai berikut ;

#define KiriMaju 4 #define KiriMundur 5 int k1=5,k2=6,p=15; int sen,sen2;

Pada bagian setup tiap servo dihubungkan dengan pin yang ada;

void setup()

{ Serial.begin(9600); bawah.attach(12); dudukan1.attach(10); dudukan2.attach(11); tengah.attach(8); atas.attach(3); capit.attach(2); }

Agar lebih mudah dalam mengeksekusi tiap servo dan motor, setiap gerakan

yang diinginkan dibuat dalam bentuk class. Gerakan servo dibagi atas gerakan dan diberi

nama gerak1, gerak2, gerak3 dan gerak4, yang fungsi masing-masing untuk

mendapatkan gerakan yang halus dan lebih mudah untuk menentukan proses

pengambilan dan pemindahan benda. Untuk perintahnya sebagai berikut ;

void gerak1() { bawah.write(50); dudukan1.write(30); dudukan2.write(30);delay(100); tengah.write(170); atas.write(110); capit.write(30); delay(200); }

//=========================================

void gerak2() { for (int a = 50; a <= 160; a=a+2) { bawah.write(a); dudukan1.write(20); dudukan2.write(20); delay(100); tengah.write(175); } } //=========================================

void gerak3() { atas.write(90);delay(100); dudukan1.write(50);delay(200); dudukan2.write(50);delay(250); capit.write(90);delay(500); tengah.write(170);delay(400); atas.write(110);delay(300); for (int b=55; b >20; b = b - 2)

{ dudukan1.write(b); dudukan2.write(b); delay(100); } tengah.write(150);delay(200); }

//=========================================

void gerak4() { for (int c = 20; c <=60; c+=2) { dudukan1.write(c); dudukan2.write(c); delay(100); } atas.write(100); delay(200); for(int d=90; d>30; d--) { capit.write(d);delay(50); } for(int e=60; e>=20;e-=2) { dudukan1.write(e); dudukan2.write(e); delay(100);

} tengah.write(170); }

Untuk motor diberi nama majukiri, yang nantinya motor hanya bergerak ke arah

kiri dan membantu dalam mengendalikan kecepatan gerakan dari motor. Perintahnya

sebagai berikut :

void majuKiri() { pinMode (KiriMaju,OUTPUT); analogWrite (KiriMundur, 50); analogWrite(KiriMaju,0); }

//=========================================

void berhenti() { pinMode (KiriMaju,OUTPUT); digitalWrite (KiriMundur, 0); digitalWrite(KiriMaju,0); }

Untuk perintah mengubah gelombang ke cm, menggunakan perintah

seperti berikut ;

long microsecondsToInches(long microseconds) { return microseconds / 74 / 2; } long microsecondsToCentimeters(long microseconds) { return microseconds / 29 / 2; }

Agar perintah dapat dijalankan maka pada loop diberi perintah sebagai berikut ;

void loop() { majuKiri(); Serial.print("sensor1"); Serial.print(cm); Serial.print("cm"); Serial.println(); pinMode(pingPin, OUTPUT); digitalWrite(pingPin, LOW); delayMicroseconds(2); digitalWrite(pingPin, HIGH); delayMicroseconds(5); digitalWrite(pingPin, LOW);

pinMode(pingPin, INPUT); digitalWrite (pingPin, HIGH); duration = pulseIn(pingPin, HIGH);

Perintah berikut untuk mengubah waktu ke jarak ;

cm = microsecondsToCentimeters(duration); Serial.print("sensor2"); Serial.print(cm1); Serial.print("cm1"); Serial.println(); pinMode(pingPin1, OUTPUT); digitalWrite(pingPin1, LOW); delayMicroseconds(2); digitalWrite(pingPin1, HIGH); delayMicroseconds(5); digitalWrite(pingPin1, LOW);

pinMode(pingPin1, INPUT); digitalWrite(pingPin1, HIGH);

duration1 = pulseIn(pingPin1, HIGH); cm1 = microsecondsToCentimeters(duration1);

int k1=5,k2=6,p=15; int m = 10; int m1 = 5; sen2 = cm + cm1; sen = sen2 - cm;

Perintah berikut untuk menggerakan lengan mengambil benda dan

memindahkan ke tempat yang telah ditentukan ;

if (sen2 >= 7 && sen2 <9)//besar { berhenti (); gerak2(); gerak3(); bawah.write(70); gerak4(); } else if(sen2 > 5 && sen2 < 7 )//kecil { berhenti (); gerak2(); gerak3(); bawah.write(30); gerak4(); } else { majuKiri(); gerak1(); } }

4.2 Hasil dan Pengujian

4.2.1 Hasil

Hasil akhir perancangan robot yang secara keseluruhan masih dalam bentuk

prototype terlihat pada gambar 4.6 sebagai berikut:

Gambar 4.6 Bentuk Hasil Robot

Dari hasil implementasi rancangan robot dihasilkan robot yang mampu untuk

memindahkan objek ke tempat yang telah ditentukan secara otomatis berdasarkan

program yang telah di inputkan sebelumnya.

4.2.2 Pengujian

Pengujian kinematika dilakukan dengan menghitung manual dengan

menggunakan rumus kinematika dan sudut dari servo

Tabel 4. 1Hasil Pengujian Pergerakan Minimum dan Maksimum Lengan Robot Motor Servo

Motor Servo Titik Minimum Titik Maksimum

Motor servo 1 (bawah) 30 160

Motor servo 2 & 3 (dudukan) 20 60

Motor servo 4 (tengah) 150 175

Motor servo 5 (atas) 70 110

Motor servo 6 (capit) 20 90

Untuk mendapat sudut yang tepat dalam mengambil obyek, maka harus

mengetahui titik pangkal (end effector)dari obyek tersebut agar sudut servo dapat

diinisialisasi. Berikut pengaplikasian rumus kinematika 3 DOF dalam mengambil obyek

dari hasil pengujian sebelumnya :

Sudut dudukan = θ1 = 55

Sudut tengah = θ2= 160

Sudut atas = θ3= 120

Panjang lengan1 = l1 = 10 cm

Panjang lengan2 = l2 = 9 cm

Panjang lengan3 = l3 = 9 cm

x = l1 cos θ1 + l2 cos (θ1+θ2 ) + l3 cos (θ1 + θ2 + θ3 )

= (10 x 0,6) + (9 x 0,57) + (9 x -0,42)

= 7,35

y = l1 sin θ1 + l2 sin (θ1+θ2 ) + l3 sin (θ1 + θ2 + θ3 )

=(k,10 x 0,82) + (9 x 0,2 ) + (9 x (-0,91))

= 1,81

Jadi posisi capit harus berada pada sudut teta 25 dari titik pusat obyek dan

berada pada sudut teta 120 dari titik pangkal servo pada capit nya.

y

x 25

5. PENUTUP

5.1 Kesimpulan

Dari hasil perencanaan dan pembuatan serta pengujian sistem secara

keseluruhan, dapat diambil kesimpulan sebagai berikut ;

1. Mikrokontroler ATMega 168 dapat digunakan sebagai sistem kendali robot;

2. Pada lengan bawah, penggunaan servo ada dua buah sehingga harus mengatur

dengan baik posisi kedua servo;

3. Capit terkadang susah menjepit objek;

4. Penggunaan driver motor lebih memudahkan mengatur gerak dari konveyor ;

5. Kurang presisi menentukan ukuran objek;

6. Penggunaan servo terlalu banyak sehingga korps konsumsi daya;

5.2 Saran

Untuk penyempurnaan dan pengembangan lebih lanjut maka disarankan ;

1. Servo khususnya pada lengan bawah sebisa mungkin menggunakan torsi yang

lebih besar, sehingga dapat mengurangi penggunaan servo;

2. Desain capit diperbaharui sehingga ketika mengambil dan mengangkat objek

lebih baik;

3. Robot hanya dapat mengenali ukuran objek yang telah ditentukan sebelumnya,

sehil]ngga untuk pengembangan selanjutnya diharapkan robot juga bisa

mengenali bentuk, warna, berat dan lain-lain dari objek;

4. Pengembangan selanjutnya diharapkan lengan robot sudah dapat berpindah

tempat dengan menambahkan roda kaki;

DAFTAR PUSTAKA

Artanto, Dian. 2012. Interaksi Arduino dan Labview. PT Elex Media Komputindo. Jakarta

Budiharto, Widodo. 2006. Belajar sendiri membuat robot cerdas panduan utama untuk

mengikuti kontes robot. PT Elex Media Komputindo. Jakarta

Dwi septian suyadhi, Taufiq. 2011. Buku pintar robotika bagaimana merancang dan

membuat robot sendiri. Andi Offset. Yogyakarta

http://arduino.cc/en/ diakses tanggal 8 mei 2013

http://kuliah.andifajar.com/sensor-ultrasonic/, diakses tanggal 8 mei 2013

Malik, Muchamad, 2012. Otomasi Mesin Rajang Tembakau Berbasis Mikrokontroler.

Universitas Gadjah Mada. Yogyakarta