0% menganggap dokumen ini bermanfaat (0 suara)
52 tayangan58 halaman

Coding3 0

Dokumen tersebut memberikan ringkasan singkat tentang bahan rujukan mekatronika tingkat 3 yang disusun untuk guru Robot Terengganu. Dokumen tersebut menyediakan komponen-komponen robot dan tutorial untuk memasang robot serta menguji sensor ultrasonik.

Diunggah oleh

pk rahim
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
52 tayangan58 halaman

Coding3 0

Dokumen tersebut memberikan ringkasan singkat tentang bahan rujukan mekatronika tingkat 3 yang disusun untuk guru Robot Terengganu. Dokumen tersebut menyediakan komponen-komponen robot dan tutorial untuk memasang robot serta menguji sensor ultrasonik.

Diunggah oleh

pk rahim
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 58

BAHAN RUJUKAN MEKATRONIK TING.

3
BAHAN RUJUKAN INI DISUSUN SEBAGAI
RUJUKAN TAMBAHAN GURU RBT.
DISEDIAKAN OLEH:
JURULATIH UTAMA RBT TERENGGANU

ROBOTerengganu
RBT
VERSI 3.0
1|RoBoTerengganu
2|RoBoTerengganu
3|RoBoTerengganu
4|RoBoTerengganu
5|RoBoTerengganu
6|RoBoTerengganu
7|RoBoTerengganu
BAHAN-BAHAN
1. Arduino UNO
2. Ultrasonic sonar HC SR 04
3. Motor driver L9110S
4. 2WD Arduino robot kit( termasuk motor DC)
5. HC 05 bluetooth module
6. Wayar pelompat M-M, F-M, F-F

2
3

8|RoBoTerengganu
Langkah-langkah menambah file .ZIP library

Langkah 1:
Pastikan file NazMotor.zip, NazL298N.zip dan NazSonar.zip sudah dimuat turun kedalam
storan komputer.
file. Zip library boleh dimuat turun dari http://gg.gg/roboterengganu

Langkah 2:
Ikut langkah gambar di bawah. (contoh NazMotor.zip).

Ulang langkah 1 dan 2 untuk file .zip library yang lain.

9|RoBoTerengganu
Langkah 3:
Langkah untuk melihat contoh penggunaan library.

10 | R o B o T e r e n g g a n u
11 | R o B o T e r e n g g a n u
PENYEDIAAN PRODUK MEKATRONIK
TUTORIAL 1: PEMASANGAN BODY CHASIS DAN PENDAWAIAN MOTOR

NOTA: HENDAKLAH dilakukan oleh GURU. Bukan pelajar.

Langkah 1:
Sediakan komponen-komponen berikut:

Langkah 2:
Uji kedua – dua motor dengan menyambungkan wayar ke bateri bagi memastikan motor
berfungsi dengan baik.

12 | R o B o T e r e n g g a n u
Langkah 3:
Pasangkan motor dengan kedudukan seperti rajah di bawah ini.

Motor Kanan Motor Kiri

R L

Kedudukan Motor Pada Chasis


A1A
dari pandagan bawah B1A

A1B B1B

Langkah 4:
Uji pemacu motor.

• Sambung pin Vcc ke punca positif (+ ve) bateri.


• Sambung pin GND ke punca negatif (– ve) bateri.
LED pada pemacu motor akan menyala apabila
menerima bekalan voltan secukupnya.

Langkah 5:
Buat pendawaian litar motor seperti yang ditunjukkan pada Muka surat 14.

13 | R o B o T e r e n g g a n u
B1A

B1B

A1A

A1B

Cadangan Susun Atur (Boleh Ikut Kesesuaian Masing-Masing)

14 | R o B o T e r e n g g a n u
PENYEDIAAN PRODUK MEKATRONIK
TUTORIAL 2: MEMBUAT PRODUK MEKATRONIK SEDIA ADA KEPADA PELAJAR

NOTA: HENDAKLAH dilakukan oleh GURU. Bukan pelajar.

Langkah 1:
Pada desktop komputer, Buka Arduino IDE

Langkah 2:
Salin aturcara pada muka surat 20-21 atau 22(library) ditulis dengan warna hitam sahaja.

Langkah 3:
Sambungkan kabel USB dari board Uno ke computer.

Langkah 4:
Pilih board. Sila ikut rajah di bawah.

1)

2)

15 | R o B o T e r e n g g a n u
3)

4) Jika Port berwarna kelabu seperti dalam rajah di bawah, sila ke Device Manager.

Sekiranya tiada masalah begini, terus tekan ikon VERIFY

Jika Port warna kelabu seperti


dalam gambar ni, sila pergi ke
Device Manager.

16 | R o B o T e r e n g g a n u
5) Pada Device Manager, sila lihat pada tempat yang ditunjukkan pada rajah di bawah.

Periksa di sini.
Kalau tidak ada, sila install
CH341SER.EXE

Langkah 5:
Tekan ikon Verify untuk memastikan aturcara yang dibuat tiada kesalahan.

VERIFY

17 | R o B o T e r e n g g a n u
Jika tiada kesalahan, akan kelihatan begini.

Langkah 6:
Tekan ikon Upload untuk menghantar aturcara ke board Uno.

UPLOAD

Jika kelihatan begini, bermakna aturcara telah berjaya di hantar ke board Uno.

18 | R o B o T e r e n g g a n u
Langkah 7:

7.1 Sebaik sahaja Uploading berjaya, Robocar akan bergerak ke hadapan sahaja. Jika
Robocar ke belakang atau berpusing, maka ada dua kemungkinan.

a) Wayar pada pemacu motor salah kedudukan. Cara penyelesaian, tukar


kedudukan wayar pada pemacu motor yang berkaitan sahaja.

Tukar kedudukan wayar

Tukar kedudukan wayar

b) Kemungkinan sambungan wayar pada motor tidak kemas, menyebabkan hanya


satu motor sahaja berputar. Cara penyelesaian, kemaskan sambungan wayar.

7.2 Tambah aturcara berikut untuk hasilkan pergerakan ke hadapan dan ke belakang.

7.3 Ulangi langkah 5 dan langkah 6 .

Lihat hasilnya.
Cuba pula hasilkan pergerakan ke kanan dan ke kiri.

19 | R o B o T e r e n g g a n u
//pengaturcaraan mudah untuk kawal motor menggunakan L29110s/l289N motor driver
// hubungi Nazron Ahmad, smk sg tong https://t.me/nazrown jika ada masalah
// boleh guna powerbank utk tambah kuasa motor
// PERKATAAN WARNA MERAH HANYA NOTA DAN TIDAK PERLU TAIP DALAM IDE EDITOR

const int AIA = 9; //gerak ke hadapan IN1


const int AIB = 5; // gerak ke belakang IN2
const int BIA = 10; //gerak ke hadapan IN3
const int BIB = 6; // gerak ke belakang IN4
byte speed = 255; // kawal kelajuan motor

// arduino akan laksanakan arahan di bawah sekali sahaja


void setup() {
pinMode(AIA, OUTPUT); // set pins kepada output
pinMode(AIB, OUTPUT);
pinMode(BIA, OUTPUT);
pinMode(BIB, OUTPUT);
}
// arahan yang akan diulang oleh arduino
// boleh tambah arahan depan,belakang, kiri, kanan, henti ikut kehendak kita
void loop() {
depan(); // ini hanya contoh untuk robot bergerak kehadapan sahaja

}
//bahagian bawah ini untuk laksanakan arahan depan,belakang, kanan, kiri dan henti
void henti() // arahan untuk hentikan motor
{
analogWrite(AIA, 0);
analogWrite(AIB, 0);
analogWrite(BIA, 0);
analogWrite(BIB, 0);
}
void belakang() // arahan untuk gerak motor ke belakang
{
analogWrite(AIA, 0);
analogWrite(AIB, speed);
analogWrite(BIA, 0);
analogWrite(BIB, speed);
}

void depan() // arahan untuk gerak motor ke hadapan


{
analogWrite(AIA, speed);
analogWrite(AIB, 0);
analogWrite(BIA, speed);
analogWrite(BIB, 0);
}

20 | R o B o T e r e n g g a n u
void kiri() // arahan untuk gerak motor ke kiri
{
analogWrite(AIA, 150);
analogWrite(AIB, 0);
analogWrite(BIA, 0);
analogWrite(BIB, 150);
}

void kanan() // arahan untuk gerak ke kanan


{
analogWrite(AIA, 0);
analogWrite(AIB, 150);
analogWrite(BIA, 150);
analogWrite(BIB, 0);
}
// pengaturcaraan tamat

21 | R o B o T e r e n g g a n u
// Arahan memasang pin Arduino di motor driver L9110s
// NazMotor nazMotor(A1A,A1B,B1A,B1B,laju1,laju2);
// hubungi nazron smk sg tong https://t.me/nazrown jika ada masalah
// Nazron Ahmad september 2018, smk sg tong, setiu([email protected])
//file. Zip library boleh dimuat turun dari http://gg.gg/roboterengganu

#include<NazMotor.h>

NazMotor nazMotor(9,5,10,6,250,150);
// laju1 untuk ke hadapan dan laju2 untuk belok ke kiri atau ke kanan atau kebelakang

void setup() {
nazMotor.PinSetup(); // setup pin-pin sebagai OUTPUT
}

void loop() {
nazMotor.depan();// contoh untuk gerakan motor ke hadapan sahaja
}

//pengaturcaraan tamat

22 | R o B o T e r e n g g a n u
TUTORIAL 3: MENGUJI KEBOLEHFUNGSIAN ULTRASONIC SENSOR (SONAR)

NOTA: HENDAKLAH dilakukan oleh PELAJAR.

Langkah 1:
Pada desktop komputer, Buka Arduino IDE

Langkah 2:
Salin aturcara pada muka surat 28 atau 29(library).

Langkah 3:
Sambungkan kabel USB dari board Uno ke komputer.

Langkah 4:
Sambungkan semua wayar ke pin dan sonar (rujuk muka surat 30)

Langkah 5:
Pilih board. Sila ikut rajah di bawah.

1)

2)

23 | R o B o T e r e n g g a n u
3)

8 Jika Port berwarna kelabu seperti dalam rajah di bawah, sila ke Device Manager.
Sekiranya tiada masalah begini, terus tekan ikon VERIFY

Jika Port warna kelabu seperti


dalam gambar ni, sila pergi ke
Device Manager.

24 | R o B o T e r e n g g a n u
5) Pada Device Manager, sila lihat pada tempat yang ditunjukkan pada rajah di bawah.

Periksa di sini.
Kalau tidak ada, sila install
CH341SER.EXE

Langkah 6:
Tekan ikon Verify untuk memastikan aturcara yang dibuat tiada kesalahan.

VERIFY

25 | R o B o T e r e n g g a n u
Jika tiada kesalahan, akan kelihatan begini.

Langkah 7:
Tekan ikon Upload untuk menghantar aturcara ke board Uno.

UPLOAD

Jika kelihatan begini, bermakna aturcara telah berjaya di hantar ke board Uno.

Langkah 8:

26 | R o B o T e r e n g g a n u
Buka Serial Monitor pada Arduino IDE

8.1

8.2 Pada paparan Serial Monitor, bacaan jarak akan berubah bergantung kepada jarak objek
yang dikesan oleh sonar.

Jika ini terhasil, menandakan sonar anda berfungsi dengan baik.

27 | R o B o T e r e n g g a n u
/*ini pengaturcaraan untuk menggunakan ultrasonic sonar HC SR04 untuk menunjukkan
jarak melalui serial monitor*/
// hubungi nazron smk sg tong https://t.me/nazrown jika ada masalah

#define trigPin 12 // pin 12 untuk trig sonar


#define echoPin 13 // pin 13 untuk echo sonar

void setup() {
Serial.begin (9600);// untuk menggunakan serial monitor
pinMode(trigPin, OUTPUT);//set pin menghantar isyarat
pinMode(echoPin, INPUT); //set pin menerima isyarat
}

void loop() {
float jarak,masa; // float(nombor perpuluhan)
digitalWrite(trigPin, HIGH); //set 10microsaat untuk HIGH
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

masa = pulseIn(echoPin, HIGH);// data dari echoPin disimpan dalam ‘masa’


jarak = (masa/ 2) * 0.0344; // rumus untuk mengira jarak

/*-rumus yang lain jarak= masa/58(cm) @ /148(inch)


-rumus perlu di buat ubahsuai kerana kelajauan cahaya dipengaruhi suhu dan
kelembapan
-c=331.3+(0.606xT)+(0.0124xH)
-pengaturcaraan setakat ini jika hanya hendak guna jarak untuk kawal motor atau servo
dll*/

// serial.print() untuk memaparkan jarak di serial monitor


Serial.print("jarak = ");
Serial.print(jarak);
Serial.println(" cm");// println(); untuk kebaris seterusnya

delay(500);
}

//pengaturcaraan tamat

28 | R o B o T e r e n g g a n u
// Pin 12 untuk trig, pin 13 untuk echo
// NazSonar nazSonar(trig,echo);
// Nazron Ahmad smk sg tong https://t.me/nazrown jika ada masalah
// Nazron Ahmad 2018, smk sg tong, setiu([email protected])
//file. Zip library boleh dimuat turun dari http://gg.gg/roboterengganu

#include<NazSonar.h> // library untuk ultrasonic sensor HC-RS04


NazSonar nazSonar(12,13); //menentukan pin yang digunakan

void setup() {
nazSonar.PinSetup();// setup pin trig untuk OUTPUT dan pin echo untuk INPUT
Serial.begin(9600); //paparan di serial monitor
}

void loop() {
Serial.print(nazSonar.jarak());// memaparkan nilai dalam cm
Serial.println("cm");
delay(100);
}
//pengaturcaraan tamat

29 | R o B o T e r e n g g a n u
30 | R o B o T e r e n g g a n u
PENGUBAHSUAIAN PRODUK MEKATRONIK
TUTORIAL 4: MENAMBAH KAWALAN ROBOT DENGAN ULTRASONIC SENSOR (SONAR)

NOTA: HENDAKLAH dilakukan oleh PELAJAR.

Langkah 1:
Pada desktop komputer, Buka Arduino IDE

Langkah 2:
Salin aturcara pada muka surat 32-34 atau 35(library), Modul ROBOTerengganu RBT yang
ditulis dengan warna hitam sahaja.

Langkah 3:
Sambungkan semua wayar ke pin dan sonar (rujuk muka surat 36).

Langkah 4:
Sambungkan kabel USB dari board Uno ke computer. Kemudian, pilih Port, Verify dan
Upload ke board uno.

Langkah 5:
Lihat pergerakan Robocar yang dikawal.

Aturcara yang telah diprogramkan Pergerakan yang sepatutnya dilakukan oleh


robocar

Jika halangan berada melebihi jarak 20 cm


dari sonar, maka Robocar akan maju ke
hadapan.
Tetapi, sekiranya terdapat halangan pada
jarak 20 cm atau kurang, Robocar akan
berhenti sesaat, kemudian berundur sesaat
dan beralih arah ke kiri sesaat.
Arahan ini akan berulang-ulang sehingga
halangan berada jauh melebihi jarak 20 cm.

31 | R o B o T e r e n g g a n u
/*-pengaturcaraan untuk menghentikan robot jika ada halangan menggunakan ultrasonic
sonar
-pengaturcaraan 1-8 di salin dan tampal dari file sonarRBT ke file L9110 RBT atau taip seperti
berikut
- hanya void loop() yg perlu di ubah mengikut kehendak kita*/
// hubungi nazron smk sg tong https://t.me/nazrown jika ada masalah

const int AIA = 9;


const int AIB = 5;
const int BIA = 10;
const int BIB = 6;
#define trigPin 12 // -1
#define echoPin 13 // -2

byte speed = 255; // ubah 0-255 utk kawal kelajuan

void setup() {
pinMode(AIA, OUTPUT);
pinMode(AIB, OUTPUT);
pinMode(BIA, OUTPUT);
pinMode(BIB, OUTPUT);
pinMode(trigPin, OUTPUT);// -3
pinMode(echoPin, INPUT); //-4
}

void loop() {
float jarak, masa;// -5

digitalWrite(trigPin, HIGH);//-6
delayMicroseconds(10);
digitalWrite(trigPin, LOW);//-7

masa = pulseIn(echoPin, HIGH);//-8


jarak = (masa / 2) * 0.0344;// -9

// arahan dari bawah ni adalah arahan baru


// jarak ditentukan untuk kereta berhenti
if (jarak>20){
depan();// gerak kehadapan selagi tiada halangan
}

32 | R o B o T e r e n g g a n u
// jika ada halangan maka robot akan laksanakan arahan di bawah
// turutan arahan boleh diubah ikut kehendak kita
else {
henti();
delay(1000);
belakang();
delay(1000);
kiri();
delay(1000);
}

}
// arahan untuk motor
void henti(){
analogWrite(AIA, 0);
analogWrite(AIB, 0);
analogWrite(BIA, 0);
analogWrite(BIB, 0);
}

void belakang(){
analogWrite(AIA, 0);
analogWrite(AIB, speed);
analogWrite(BIA, 0);
analogWrite(BIB, speed);
}

void depan(){
analogWrite(AIA, speed);
analogWrite(AIB, 0);
analogWrite(BIA, speed);
analogWrite(BIB, 0);
}

void kiri(){
analogWrite(AIA, 150);
analogWrite(AIB, 0);
analogWrite(BIA, 0);
analogWrite(BIB, 150);
}

33 | R o B o T e r e n g g a n u
void kanan(){
analogWrite(AIA, 0);
analogWrite(AIB, 150);
analogWrite(BIA, 150);
analogWrite(BIB, 0);
}

// pengaturcaraan tamat

34 | R o B o T e r e n g g a n u
// Pin 12 untuk trig, pin 13 untuk echo
// NazSonar nazSonar(trig,echo);
// NazMotor nazMotor(A1A, A1B,B1A, B1B,laju1,laju2);
// hubungi nazron smk sg tong https://t.me/nazrown jika ada masalah
// Nazron Ahmad 2018, smk sg tong, setiu([email protected])
//file. Zip library boleh dimuat turun dari http://gg.gg/roboterengganu

#include<NazSonar.h> // library untuk ultrasonic sensor HC-RS04


#include <NazMotor.h>// library untuk motor L9110S
NazSonar nazSonar(12,13); //menentukan pin yang digunakan
NazMotor nazMotor(9,5,10,6,250,150);//laju2 untuk belok ke kiri atau kanan

void setup() {
nazSonar.PinSetup();// setup pin trig untuk OUTPUT dan pin echo untuk INPUT
nazMotor.PinSetup();
}
void loop(){
if( nazSonar.jarak()>20){
nazMotor.depan();
}
else {
nazMotor.henti();
delay(50);
nazMotor.belakang();
delay(1000);
nazMotor.kanan();
delay(1000);
}
}

35 | R o B o T e r e n g g a n u
36 | R o B o T e r e n g g a n u
PENGUBAHSUAIAN PRODUK MEKATRONIK
TUTORIAL 5: MENGUJI KEBOLEHFUNGSIAN BLUETOOTH

NOTA: HENDAKLAH dilakukan oleh PELAJAR.

Langkah 1:
Pada desktop komputer, Buka Arduino IDE

Langkah 2:
Salin aturcara pada muka surat 45 .

Langkah 3:
Sambungkan kabel USB dari board Uno ke komputer.

Langkah 4:
Pastikan wayar Bluetooth tidak disambung pada board Uno.

Langkah 5:
Pilih board. Sila ikut rajah di bawah.

1)
Pilih board

2)

37 | R o B o T e r e n g g a n u
3)

4) Jika Port berwarna kelabu seperti dalam rajah di bawah, sila ke Device Manager.

Sekiranya tiada masalah begini, terus tekan ikon VERIFY

Jika Port warna kelabu seperti


dalam gambar ni, sila pergi ke
Device Manager.

38 | R o B o T e r e n g g a n u
5) Pada Device Manager, sila lihat pada tempat yang ditunjukkan pada rajah di bawah.

Periksa di sini.
Kalau tidak ada, sila install
CH341SER.EXE

Langkah 6:
Tekan ikon Verify untuk memastikan aturcara yang dibuat tiada kesalahan.

VERIFY

39 | R o B o T e r e n g g a n u
Jika tiada kesalahan, akan kelihatan begini.

Langkah 7:
Tekan ikon Upload untuk menghantar aturcara ke board Uno.

UPLOAD

Jika kelihatan begini, bermakna aturcara telah berjaya di hantar ke board Uno.

40 | R o B o T e r e n g g a n u
Langkah 8:

• Sambungkan semua wayar Bluetooth board UNO (Rujuk muka surat 46).

• Pastikan kabel USB masih tersambung pada port USB computer.

• LED pada Bluetooth akan menyala (berkelip) menandakan Bluetooth menerima voltan
dari board UNO.

Langkah 9:

Buat Pairing Bluetooth dengan telefon pintar (guna peranti android sahaja.)
• Buka setting Bluetooth pada setting telefon.

• Cari Nama Bluetooth yang ada pada belakang Bluetooth (jika guna Bluetooth dalam set
MagnetCode) atau, cari HC-05 kalau guna yang beli sendiri.

• Masuk password 1234

Langkah 10:

Guna aplikasi Arduino Bluetooth Control untuk menghantar maklumat kepada Bluetooth.

10.1 Jika belum ada, Install aplikasi Arduino Bluetooth Control pada telefon anda. Aplikasi
ini boleh dimuat turun dari Google Play Store.

10.2 Buka aplikasi yang tertera pada telefon anda

Tekan ikon Apps


pada telefon

41 | R o B o T e r e n g g a n u
10.3 Tekan nama Bluetooth yang telah di pairing (bergantung pada nama Bluetooth
masing-masing).

Tekan nama
Bluetooth

Bluetooth berjaya
dihubungkan dengan Aplikasi

10.4 Jika bluetooth tidak dapat dihubungkan, tekan butang refresh. Dan kemudian tekan
nama Bluetooth sekali lagi.

Tekan butang
Tidak dapat dihubungkan refresh

10.5 Setelah berjaya dihubungkan, tekan butang Terminal. Paparan terminal akan
muncul.

Butang
Terminal

42 | R o B o T e r e n g g a n u
10.6 Buka Serial Monitor pada Arduino IDE.

Akan muncul paparan ini.

10.7 Masukkan arahan pada telefon pintar. Rujuk aturcara yang dibuat pada Arduino IDE.

Arahan untuk ke LED menyala

Arahan untuk ke LED padam

10.8 Mulakan dengan arahan menyalakan LED.

Taip ‘a’ dan tekan butang send

43 | R o B o T e r e n g g a n u
10.9 Lihat paparan terminal pada telefon pintar dan paparan serial monitor. Manakala
LED pada board Uno akan menyala.

Paparan pada terminal Paparan pada


telefon pintar Serial Monitor LED Menyala

10.10 Cuba pula dengan arahan memadamkan LED.

Taip ‘d’ dan tekan butang send

Paparan pada terminal Paparan pada LED Padam


telefon pintar Serial Monitor

10.11 Jika ini terhasil, menandakan Bluetooth anda berfungsi dengan baik.

44 | R o B o T e r e n g g a n u
/* -ini pengaturcaraan untuk menggunakan bluetooth HC-05 untuk mengawal pin13 dengan
laptop/hpon
- passsword bluetooth 1234
- PENTING utk pin TX dan RX tidak dipasang ketika muat turun pengaturcaraan*/
// hubungi nazron smk sg tong https://t.me/nazrown jika ada masalah

void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT); // menggunakan LED terbina dlm pin13
}

void loop() {

if(Serial.available()>0) {
char data= Serial.read(); // membaca data yang diterima
switch(data)
{
case 'a': digitalWrite(13, HIGH); break;
// bila ‘a’ di hantar dari app dalam hpon >led menyala
case 'd': digitalWrite(13, LOW); break;
// bila ‘d’ di hantar dari app dalam hpon > led xmenyala
}
Serial.println(data);
Serial.println("terima");
}

delay(50);
}
// pengaturcaraan tamat

45 | R o B o T e r e n g g a n u
46 | R o B o T e r e n g g a n u
PENGUBAHSUAIAN PRODUK MEKATRONIK
TUTORIAL 6: MENAMBAH KAWALAN ROBOT DENGAN BLUETOOTH

NOTA: HENDAKLAH dilakukan oleh PELAJAR.

Langkah 1:
Pada desktop komputer, Buka Arduino IDE

Langkah 2:
Salin aturcara pada muka surat 48-49 atau 50(library).

Langkah 3:
Sambungkan kabel USB dari board Uno pada Robocar ke computer.

Langkah 4:
Pastikan wayar Bluetooth tidak disambung pada board Uno. Kemudian, pilih Port, Verify dan
Upload ke board uno.

Langkah 5:
Sambungkan semua wayar bluetooth dan wayar-wayar lain rujuk muka surat 51.

Langkah 6:
Aktifkan Bluetooth pada telefon pintar.

Langkah 7:
Guna aplikasi Arduino Bluetooth Control untuk menghantar maklumat kepada Bluetooth.
(Rujuk tutorial 5, Langkah ke 10).

Langkah 8:
Masukkan data pada telefon pintar berdasarkan pengaturcaraan yang telah dibuat.

Robocar akan bergerak mengikut


data yang dimasukkan pada
telefon pintar.

47 | R o B o T e r e n g g a n u
// pengaturcaraan untuk mengawal motor DC dengan bluetooth hpon
// kata laluan Bluetooth 1234
// hubungi nazron smk sg tong https://t.me/nazrown jika ada masalah
const int AIA = 9;
const int AIB = 5;
const int BIA = 10;
const int BIB = 6;
byte speed = 255; // tukar nilai 0-255 utk kelajuan

void setup() {
pinMode(AIA, OUTPUT);
pinMode(AIB, OUTPUT);
pinMode(BIA, OUTPUT);
pinMode(BIB, OUTPUT);
Serial.begin(9600);

}
void loop() {
if (Serial.available()>0)// hantar data bila terima data
{
char data= Serial.read();// baca byte yang terima
switch(data)
{
case 'f': depan(); break;
case 'b': belakang(); break;
case 'l': kiri(); break;
case 'r':kanan(); break;
case 's': henti(); break;
default : break;// selain f,b,l,r dan maka ia tidak akan beri reaksi
}

}
// pengaturcaraan untuk mengerakkan motor
void henti()
{
analogWrite(AIA, 0);
analogWrite(AIB, 0);
analogWrite(BIA, 0);
analogWrite(BIB, 0);
}

48 | R o B o T e r e n g g a n u
void belakang()
{
analogWrite(AIA, 0);
analogWrite(AIB, speed);
analogWrite(BIA, 0);
analogWrite(BIB, speed);
}

void depan()
{
analogWrite(AIA, speed);
analogWrite(AIB, 0);
analogWrite(BIA, speed);
analogWrite(BIB, 0);
}
// speed untuk kiri kanan dikurangkan untuk lebih mudah mengawal pergerakkan
void kiri()
{
analogWrite(AIA, 80);
analogWrite(AIB, 0);
analogWrite(BIA, 0);
analogWrite(BIB, 80);
}
void kanan()
{
analogWrite(AIA, 0);
analogWrite(AIB, 80);
analogWrite(BIA, 80);
analogWrite(BIB, 0);
}

//pengaturcaraan tamat

49 | R o B o T e r e n g g a n u
// NazMotor nazMotor(A1A, A1B, B1A,B1B,laju1,laju2);
// hubungi nazron smk sg tong https://t.me/nazrown jika ada masalah
// Nazron Ahmad 2018, smk sg tong, setiu([email protected])
//file. Zip library boleh dimuat turun dari http://gg.gg/roboterengganu

#include <NazMotor.h>// library untuk motor L9110S


NazMotor nazMotor(9,5,10,6,250,158);// laju2 untuk belok ke kiri dan ke kanan

void setup() {
nazMotor.PinSetup();
Serial.begin(9600);

}
void loop() {
if (Serial.available()>0)// hantar data bila terima data
{
char data= Serial.read();// baca byte yang terima
switch(data)
{
case 'f':
nazMotor.depan(); break;
case 'b':
nazMotor.belakang(); break;
case 'l':
nazMotor.kiri(); break;
case 'r':
nazMotor.kanan(); break;
case 's':
nazMotor.henti(); break;
default :
break;// selain f,b,l,r dan maka ia tidak akan beri reaksi
}

50 | R o B o T e r e n g g a n u
51 | R o B o T e r e n g g a n u
LAMPIRAN
//obstacle avoiding robot using ultrasonic HC RS-04,arduino uno and L9110S
/* file NazMotor.Zip dan NazSonar.Zip boleh dimuat turun daripada
http://gg.gg/roboterengganu */
// hubungi nazron smk sg tong https://t.me/nazrown jika ada masalah
// Nazron Ahmad, SMK Sg. Tong( [email protected] )

#include <NazMotor.h>
#include <NazSonar.h>
#include <Servo.h>

NazMotor nazMotor(9,5,10,6,255,200);// NazMotor*(A1A,A1B,B1A,B1B,laju1,laju2)


NazSonar nazSonar(12,13);// NazSonar(trigPin,echoPin)
Servo servo_motor;

int jarak_halangan=100;

void setup(){
Serial.begin(9600);
nazMotor.PinSetup();
nazSonar.PinSetup();
servo_motor.attach(11); // pin servo

servo_motor.write(90);
delay(1000);
jarak_halangan=nazSonar.jarak();
delay(100);
jarak_halangan=nazSonar.jarak();
delay(100);
jarak_halangan=nazSonar.jarak();
delay(100);
jarak_halangan=nazSonar.jarak();
delay(100);
}

void loop(){

int jarak_kanan=0;
int jarak_kiri=0;
delay(50);

Serial.println(jarak_halangan);

52 | R o B o T e r e n g g a n u
if (jarak_halangan<=20){
nazMotor.henti();
delay(300);
nazMotor.belakang();
delay(400);
nazMotor.henti();
delay(300);
jarak_kanan = lihat_kanan();
delay(300);
jarak_kiri = lihat_kiri();
delay(300);

if (jarak_kanan >= jarak_kiri){


nazMotor.kanan();
delay(500);
nazMotor.henti();
}
else{
nazMotor.kiri();
delay(500);
nazMotor.henti();
}
}
else {
nazMotor.depan();
}
jarak_halangan=nazSonar.jarak();
}
// servo pusing kanan 10 darjah untuk jarak halangan kanan
int lihat_kanan(){
servo_motor.write(10);
delay(500);
int jarak_halanganKanan = nazSonar.jarak();
servo_motor.write(90);
return jarak_halanganKanan;
}
// servo pusing kiri 170 darjah untuk jarak halangan kiri
int lihat_kiri(){
servo_motor.write(170);
delay(500);
int jarak_halanganKiri = nazSonar.jarak();
servo_motor.write(90);
return jarak_halanganKiri;
}

53 | R o B o T e r e n g g a n u
/* pengaturcaraan untuk mengawal motor DC dengan bluetooth hpon dan menggunakan
sonar untuk berhenti sendiri jika ada halangan*/
// SAMBUNGAN RX(HC-05)-TX(UNO) DAN TX(HC-05)-RX(UNO)
// NazMotor nazMotor(A1A, A1B,B1A,B1B,laju1,laju2);
// hubungi nazron smk sg tong https://t.me/nazrown jika ada masalah
// Nazron Ahmad_2018, smk sg tong, setiu([email protected])
//file. Zip library boleh dimuat turun dari http://gg.gg/roboterengganu

#include<NazSonar.h> // library untuk ultrasonic sensor HC-RS04


#include <NazMotor.h>// libraru untuk motor L9110S
NazSonar nazSonar(12,13); //menentukan pin yang digunakan
NazMotor nazMotor(9,5,10,6,250,150);// speed2 untuk belok ke kiri atau ke kanan

void setup() {
nazSonar.PinSetup();// setup pin trig untuk OUTPUT dan pin echo untuk INPUT
nazMotor.PinSetup();
Serial.begin(9600);

void loop(){
if (nazSonar.jarak()>20){
nazMotor.henti();
nazMotor.belakang();
delay(1000);
}
if else (Serial.available()>0)// hantar data bila terima data
{
char data= Serial.read();// baca byte yang terima
switch(data){
case 'f': nazMotor.depan(); break;
case 'b':nazMotor.belakang(); break;
case 'l': nazMotor.kiri(); break;
case 'r':nazMotor.kanan(); break;
case 's': nazMotor.henti(); break;
default : break;// selain f,b,l,r dan maka ia tidak akan beri reaksi
}
}
}

54 | R o B o T e r e n g g a n u
55 | R o B o T e r e n g g a n u
//line follower
// hubungi nazron smk sg tong https://t.me/nazrown jika ada masalah

#include <NazMotor.h>
NazMotor nazMotor(9,5,10,6,250,180);
//Sensor
const int left_sensor_pin =A0;
const int right_sensor_pin =A1;
int left_sensor_state;
int right_sensor_state;
void setup() {
nazMotor.PinSetup(); delay(1000);
}
void loop() {
left_sensor_state = analogRead(left_sensor_pin);
right_sensor_state = analogRead(right_sensor_pin);
if(right_sensor_state > 500 && left_sensor_state < 500){
nazMotor.kanan();
delay (10);
}
if(right_sensor_state < 500 && left_sensor_state > 500){
nazMotor.kiri(); delay(10);
}
if(right_sensor_state > 500 && left_sensor_state > 500){
nazMotor.depan();
}
if(right_sensor_state < 500 && left_sensor_state < 500){
nazMotor.henti(); delay(10);
}
}

56 | R o B o T e r e n g g a n u
RUJUKAN:

1. https://www.arduino.cc/
2. https://core-electronics.com.au/tutorials/history-of-arduino.html
3. https://blog.arduino.cc/2013/11/02/evolution-of-arduino-the-family-tree/
4. https://www.arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf
5. https://commons.wikimedia.org/wiki/File:Pinout_of_ARDUINO_Board_and_ATMega328PU.svg
6. https://howtomechatronics.com/
7. http://www.fritzing.org/

57 | R o B o T e r e n g g a n u

Anda mungkin juga menyukai