TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH...

12
TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH DEE5081 - PROJECT 1 1 Ditulis Oleh: En.Mohd Zahidi@JKE MOBILE ROBOT PENGENALAN Salah satu jenis robot yang banyak diminati oleh penggemar robot adalah mobile robot. Dari namanya kita akan tahu bahawa yang dimaksud dengan Mobile Robot adalah jenis robot yang penggeraknya menggunakan roda umpama kereta dan kebiasaanya menggunakan hanya 2 motor penggerak sahaja. Di negara kita, buat masa sekarang banyak jenis mobile robot digunakan di dalam pertandingan seperti Sumo Bot, Robot Pemain Bola, ataupun Line Follower Robot. Masing-masing jenis mobile robot berkenaan memiliki kelebihan dan kekurangan masing-masing. Untuk membina sebuah ‘basic mobile robot’. Ada beberapa perkara yang perlu diperhatikan; perkara pertama adalah pemilihan penggeraknya iaitu untuk mengerakkan sebuah mobile robot dapat digunakan 2 buah motor DC. Perkara kedua, motor DC pula perlu dikawal dengan menggunakan Motor Driver yang berperanan sebagai pemacu motor ke hadapan dan kebelakang serta Motor Driver juga boleh mengawal kelajuan motor. Manakala perkara yang ketiga adalah pemilihan microcontroller yang sesuai dimana ianya mudah didapati berserta dengan peranti input/output yang serasi, murah dan mudah di aturcara. Perkara yang terakhir adalah pemilihan bateri yang bersesuaian juga penting kerana bateri memainkan peranan dalam membekalkan sumber arus yang diperlukan bagi menggerakkan motor, jangka hayat penggunaan yang lebih lama dan dicadangkan bateri boleh dicas semula digunakan bagi menjimatkan kos pembelian bateri yang baru. Rajah 1: Contoh Bluetooth Mobile Robot Selepas mengambil kira perkara-perkara di atas, bagi memenuhi kehendak silibus kursus projek 1; dimana pelajar perlu belajar kaedah menghasilkan papan PCB dari merebentuk litar, menganalisa litar dan seterusnya menghasilkan papan PCB yang berfungsi dengan perisian CAD (Proteus). JOM! Kita sama-sama belajar kaedah membina ‘basic mobile robot’ ini dari A-Z dengan peralatan yang telah dikenalpasti dan akan dibekalkan kepada setiap kumpulan pelajar. Projek ini dikenali sebagai PROJEK MINI bagi pelajar yang mengambil kursus projek 1 pada semester ini. Di akhir semester nanti, semasa pameran inovasi projek pelajar semester akhir, mobile robot ini perlu disiapkan untuk sama-sama kita menyertai pertandingan Sumo Bot, Robot Pemain Bola, ataupun Line Follower Robot. Bateri Motor Driver Motor DC Bluetooth Microcontroller

Transcript of TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH...

Page 1: TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH …jkeprojek.weebly.com/uploads/9/8/5/0/98509224/membinamobilerobota… · penggeraknya menggunakan roda umpama kereta dan kebiasaanya menggunakan

TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH DEE5081 - PROJECT 1

1 Ditulis Oleh: En.Mohd Zahidi@JKE

MOBILE ROBOT

PENGENALAN Salah satu jenis robot yang banyak diminati oleh penggemar robot adalah mobile robot. Dari namanya kita akan tahu bahawa yang dimaksud dengan Mobile Robot adalah jenis robot yang penggeraknya menggunakan roda umpama kereta dan kebiasaanya menggunakan hanya 2 motor penggerak sahaja. Di negara kita, buat masa sekarang banyak jenis mobile robot digunakan di dalam pertandingan seperti Sumo Bot, Robot Pemain Bola, ataupun Line Follower Robot. Masing-masing jenis mobile robot berkenaan memiliki kelebihan dan kekurangan masing-masing. Untuk membina sebuah ‘basic mobile robot’. Ada beberapa perkara yang perlu diperhatikan; perkara pertama adalah pemilihan penggeraknya iaitu untuk mengerakkan sebuah mobile robot dapat digunakan 2 buah motor DC. Perkara kedua, motor DC pula perlu dikawal dengan menggunakan Motor Driver yang berperanan sebagai pemacu motor ke hadapan dan kebelakang serta Motor Driver juga boleh mengawal kelajuan motor. Manakala perkara yang ketiga adalah pemilihan microcontroller yang sesuai dimana ianya mudah didapati berserta dengan peranti input/output yang serasi, murah dan mudah di aturcara. Perkara yang terakhir adalah pemilihan bateri yang bersesuaian juga penting kerana bateri memainkan peranan dalam membekalkan sumber arus yang diperlukan bagi menggerakkan motor, jangka hayat penggunaan yang lebih lama dan dicadangkan bateri boleh dicas semula digunakan bagi menjimatkan kos pembelian bateri yang baru.

Rajah 1: Contoh Bluetooth Mobile Robot

Selepas mengambil kira perkara-perkara di atas, bagi memenuhi kehendak silibus kursus projek 1; dimana pelajar perlu belajar kaedah menghasilkan papan PCB dari merebentuk litar, menganalisa litar dan seterusnya menghasilkan papan PCB yang berfungsi dengan perisian CAD (Proteus).

JOM! Kita sama-sama belajar kaedah membina ‘basic mobile robot’ ini dari A-Z dengan peralatan

yang telah dikenalpasti dan akan dibekalkan kepada setiap kumpulan pelajar. Projek ini dikenali sebagai PROJEK MINI bagi pelajar yang mengambil kursus projek 1 pada semester ini. Di akhir semester nanti, semasa pameran inovasi projek pelajar semester akhir, mobile robot ini perlu disiapkan untuk sama-sama kita menyertai pertandingan Sumo Bot, Robot Pemain Bola, ataupun Line Follower Robot.

Bateri

Motor Driver

Motor DC

Bluetooth

Microcontroller

Page 2: TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH …jkeprojek.weebly.com/uploads/9/8/5/0/98509224/membinamobilerobota… · penggeraknya menggunakan roda umpama kereta dan kebiasaanya menggunakan

TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH DEE5081 - PROJECT 1

2 Ditulis Oleh: En.Mohd Zahidi@JKE

* Namun begitu, para pelajar masih perlu mengadakan brainstorming dengan penyelia masing-masing untuk menghasilkan satu projek inovasi pada semester akan datang. Dimana projek inovasi ini merupakan satu projek yang boleh menyelesaikan masalah masyarakat/industri di luar. Projek mini ini hanyalah merupakan latihan kemahiran pelajar dalam membina PCB Board disamping robot yang telah dihasilkan itu nanti boleh memenuhi keperluan pertandingan robot dimasa-masa akan datang.

KEPERLUAN/PERKAKASAN ROBOT 1. Software Proteus 7

Rekabentuk litar & simulasi litar Membina Papan PCB 2. Software Arduino

Pengaturcaraan pada Arduino Board 3. Kertas tracing paper

Digunakan untuk mencetak litar PCB menggunakan laser printer 4. Papan Positive PCB

Digunakan untuk menghasilkan PCB Board 5. 1 set komponen lengkap bluetooth mobile robot

i. 2 Motor DC berserta badan ii. Arduino Nano berserta USB kabel iii. IC L293D (Driver motor) beserta 16 pin socket iv. 2 biji 40 pin socket v. 2 biji terminal block-2 dan sebiji terminal block-3 vi. 1 modul bluetooth HC-05 vii. Bateri dan casing viii. 2 biji slide switch

Mengenali nama setiap pin pada Arduino Nano membolehkan anda membuat sambungan dengan tepat dan betul.

Page 3: TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH …jkeprojek.weebly.com/uploads/9/8/5/0/98509224/membinamobilerobota… · penggeraknya menggunakan roda umpama kereta dan kebiasaanya menggunakan

TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH DEE5081 - PROJECT 1

3 Ditulis Oleh: En.Mohd Zahidi@JKE

MEREKABENTUK DAN MENSIMULASI ROBOT KAWALAN BLUETOOTH – PERISIAN PROTEUS 7 Rekabentuk litar 1. Dengan berbantukan komputer, buka perisian Proteus 7 dan buat rekabentuk litar seperti

rajah 2 di bawah dengan bantuan penyelia. Pastikan dalam library perisian proteus anda telah dimasukkan library Arduino Nano (sila rujuk pada penyelia).

2. Dapatkan setiap komponen yang tersenarai dari library proteus, selesaikan sambungan seperti rajah 2 dibawah, pastikan anda membuat label dengan betul pada setiap komponen dan DEFAULT terminal connection.

Rajah 2: Litar skematik asas mobile robot bluetooth dalam proteus 7

Mensimulasi Robot 1. Buka perisian arduino dan taipkan aturcara (Sketch A) seperti di bawah. Cuba fahami setiap arahan

yang digunakan di dalam aturcara tersebut. Dengan kefahaman ini anda boleh mengubahsuai pergerakan robot mengikut kehendak anda.

Sketch A: int IN1 = 12; // Control pin 1 for motor right int IN2 = 11; // Control pin 2 for motor right int EN1 = 10; // Enable Pin for motor right int EN2 = 9 ; // Enable Pin for motor left int IN3 = 8; // Control pin 1 for motor left int IN4 = 7; // Control pin 2 for motor left void setup() { Serial.begin(9600); // initialize serial communication: pinMode(IN1, OUTPUT); //Declare pin as OUTPUT pinMode(IN2, OUTPUT); //Declare pin as OUTPUT pinMode(EN1, OUTPUT); //Declare pin as OUTPUT pinMode(EN2, OUTPUT); //Declare pin as OUTPUT pinMode(IN3, OUTPUT); //Declare pin as OUTPUT pinMode(IN4, OUTPUT); //Declare pin as OUTPUT }

Page 4: TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH …jkeprojek.weebly.com/uploads/9/8/5/0/98509224/membinamobilerobota… · penggeraknya menggunakan roda umpama kereta dan kebiasaanya menggunakan

TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH DEE5081 - PROJECT 1

4 Ditulis Oleh: En.Mohd Zahidi@JKE

void loop(){ forward(); Serial.println(" - 1SECOND"); delay(1000); reverse(); Serial.println(" - 1SECOND"); delay(1000); turnLeft(); Serial.println(" - 1SECOND"); delay(1000); turnRight(); Serial.println(" - 1SECOND"); delay(1000); stopRobot(); Serial.println(" - 1SECOND"); delay(1000); spinCW(); Serial.println(" - 1SECOND"); delay(1000); spinCCW(); Serial.println(" - 1SECOND"); delay(1000); } void forward() { Serial.print("Forward"); analogWrite(EN1, 255); // Run in full speed analogWrite(EN2, 255); // Run in full speed digitalWrite(IN1, HIGH); // right motor forward digitalWrite(IN2, LOW); // digitalWrite(IN3, HIGH); // left motor forward digitalWrite(IN4, LOW); // } void reverse(){ Serial.print("Reverse"); analogWrite(EN1, 255); // Run in full speed analogWrite(EN2, 255); // Run in full speed digitalWrite(IN1, LOW); // right motor reverse digitalWrite(IN2, HIGH); // digitalWrite(IN3, LOW); // left motor reverse digitalWrite(IN4, HIGH); // } void turnLeft(){ Serial.print("Turn Left"); analogWrite(EN1, 255); // Run in full speed analogWrite(EN2, 255); // Run in full speed digitalWrite(IN1, LOW); // right motor stop digitalWrite(IN2, LOW); // digitalWrite(IN3, HIGH); // left motor forward digitalWrite(IN4, LOW); // } void turnRight(){ Serial.print("Turn Right"); analogWrite(EN1, 255); // Run in full speed analogWrite(EN2, 255); // Run in full speed digitalWrite(IN1, HIGH); // right motor forward digitalWrite(IN2, LOW); // digitalWrite(IN3, LOW); // left motor stop digitalWrite(IN4, LOW); // } void stopRobot(){ Serial.print("Stop"); analogWrite(EN1, 0); // Run in full speed analogWrite(EN2, 0); // Run in full speed digitalWrite(IN1, LOW); // right motor stop digitalWrite(IN2, LOW); // digitalWrite(IN3, LOW); // left motor stop digitalWrite(IN4, LOW); // } void spinCW(){ Serial.print("Spin CW"); analogWrite(EN1, 255); // Run in full speed analogWrite(EN2, 255); // Run in full speed digitalWrite(IN1, HIGH); // right motor forward digitalWrite(IN2, LOW); // digitalWrite(IN3, LOW); // left motor reverse digitalWrite(IN4, HIGH); // } void spinCCW(){ Serial.print("Spin CCW"); analogWrite(EN1, 255); // Run in full speed analogWrite(EN2, 255); // Run in full speed digitalWrite(IN1, LOW); // right motor reverse digitalWrite(IN2, HIGH); // digitalWrite(IN3, HIGH); // left motor forward digitalWrite(IN4, LOW); // }

Page 5: TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH …jkeprojek.weebly.com/uploads/9/8/5/0/98509224/membinamobilerobota… · penggeraknya menggunakan roda umpama kereta dan kebiasaanya menggunakan

TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH DEE5081 - PROJECT 1

5 Ditulis Oleh: En.Mohd Zahidi@JKE

2. Setelah selesai aturcara (sketch) ditaip dengan teliti dan betul. Klik pada butang Verify untuk menentukan samada aturcara tersebut terdapat kesalahan atau tidak. Save As fail berkenaan di dalam folder yang sesuai.

3. Sekiranya aturcara (sketch) tiada kesalahan dan perisian menunjukkan Done compiling. Seterusnya

anda boleh klik pada Tools>Board>Arduino Nano. Kemudian, klik Sketch>Export compiled Binary. Fail aturcara anda akan ditukarkan kepada satu lagi fail iaitu fail HEX (fail bahasa mesin) di dalam folder tempat anda Save As fail aturcara tadi. Fail HEX ini akan digunakan untuk simulasi litar dalam proteus.

4. Buka kembali litar skematik mobile robot dan klik kanan pada ARDUINO NANO>Edit Properties. Dalam popup Edit Component, browse fail HEX aturcara tadi dalam folder tempat anda Save As aturcara tersebut. Kemudian klik Open>OK.

5. Jika anda hendak melihat paparan text message ketika motor sedang berpusing, anda boleh letakkan

kompoen Virtual Terminal pada skematik anda. Klik pada Virtual Instrumets Mode>VIRTUAL TERMINAL. Letakkan di mana-mana tempat sesuai pada skematik anda. Tambah DEFAULT terminal pin pada RXD dan labelkan TX (arduino-TX<->Virtual Terminal-RXD).

6. Seterusnya, anda boleh melihat simulasi litar mobile robot ini dengan klik pada butang Play pada belah kiri bawah.

Butang Verify

Done compiling.

Virtual Instrument Mode

Place at your schematic layout

Page 6: TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH …jkeprojek.weebly.com/uploads/9/8/5/0/98509224/membinamobilerobota… · penggeraknya menggunakan roda umpama kereta dan kebiasaanya menggunakan

TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH DEE5081 - PROJECT 1

6 Ditulis Oleh: En.Mohd Zahidi@JKE

7. Setelah butang Play tersebut di klik, maka anda dapat melihat motor DC anda akan berfungsi Forward, Reverse, Turn Left, Turn Right, Stop, Spin CW dan Spin CCW secara berterusan dalam masa 1 saat bagi setiap pergerakan. Jika motor anda tidak bergerak cuba cari mana-mana kesilapan

sambungan dan label dalam litar anda. Tekan pada butang Stop untuk hentikan simulasi.

Membina PCB 1. Sebelum litar skematik anda dipindahkan kepada ARES (PCB design), terlebih dahulu anda perlu

mengubah komponen bateri kepada terminal blok. Delete simbol bateri dan gantikan dengan terminal blok-3 seperti rajah dibawah.

2. Untuk mempastikan setiap komponen pada skematik anda sudah mempunyai package atau belum,

anda boleh klik pada Design Explorer dan popup Physical Partlist View akan muncul, di sini anda akan dapati samada setiap komponen pada skematik anda sudah mempunyai package atau tidak pada ruangan Circuit/Package.

Terdapat komponen missing/none

pada ruangan Circuit/Package.

Anda perlu assign package pada

setiap komponen missing/none

6 6 6 5

Page 7: TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH …jkeprojek.weebly.com/uploads/9/8/5/0/98509224/membinamobilerobota… · penggeraknya menggunakan roda umpama kereta dan kebiasaanya menggunakan

TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH DEE5081 - PROJECT 1

7 Ditulis Oleh: En.Mohd Zahidi@JKE

3. Apa yang perlu anda buat adalah, klik kanan pada setiap komponen dan pilih Packing Tool.

Sebagai contoh, untuk switch 2 hala, anda boleh memilih packaging:CONN-SIL3, kemudian klik pada ruangan A dan masukkan nombor kaki yang sepatutnya bersambung dengan pin yang ditunjukkan. Seterusnya klik Assign Package(s)>Save Package(s)>OK.

4. Anda boleh masukkan package untuk komponen lain seperti senarai berikut:

5. Terdapat 2 komponen yang belum lagi ada design dalam ARES iaitu arduino nano dan terminal pin

15. Anda perlu membuka perisian ARES dan membuat design seperti berikut, pastikan saiz jarak pin mengikut saiz yang ditunjukkan. Jika anda sukar membinanya, boleh Download di laman web projek : jkeprojek.weebly.com. Setelah selesai merekabentuk arduino nano dan terminal pin 15, anda perlu highlight komponen berkenaan secara berasingan dan klik kanan>Make Package. Isikan maklumat New Package Name/Category dan sub-category, klik OK seperti berikut. Anda telah pun selesai membina 2 pakej yang baru dengan nama ARDNANO dan 15PIN. Boleh kembali kepada ISIS dan pilih pakej tersebut.

5 6 6 6

Page 8: TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH …jkeprojek.weebly.com/uploads/9/8/5/0/98509224/membinamobilerobota… · penggeraknya menggunakan roda umpama kereta dan kebiasaanya menggunakan

TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH DEE5081 - PROJECT 1

8 Ditulis Oleh: En.Mohd Zahidi@JKE

6. Untuk assign pin pada arduino nano, anda boleh rujuk pada rajah dibawah. Masukkan nombor kaki

pada ruangan A. Untuk pin $RESET$ terdapat 2 pin pada arduino (ditulis 3,28), sama juga dengan GND (ditulis 4,29). Untuk 3V3 dan VIN pula, anda perlu klik pada Add Pin terlebih dahulu, kemudian taip nama pin berkenaan dan assign pin 17 dan 30 masing-masing. Seterusnya klik Assign Package(s)>Save Package(s)>OK.

7. Bagi membuat pin VIN dan 3V3 bersambung dalam PCB design anda, anda perlu setkan Configure

Power Rails sperti berikut;Design>Configure power Rails>,klik pada New dan masukkan nama pin VIN, kemudian taipkan nilai voltage 12 dan seterusnya klik pada VIN(Unconnected Power nets) dan klik Add (supaya VIN masuk pada column Nets connected to VIN). Ulangi langkah ini untuk pin 3V3 juga.

8. Setelah semua package telah di assign kan, klik pada icon ARES>OK. Pilih Generic Single Layer>OK.

Klik pula pada 2D Graphics Box Mode dan pilih Board Edge layer. Lukiskan petak ini pada layout anda (saiz petak boleh diubah mengikut kesesuaian komponen yang diletakkan).

Page 9: TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH …jkeprojek.weebly.com/uploads/9/8/5/0/98509224/membinamobilerobota… · penggeraknya menggunakan roda umpama kereta dan kebiasaanya menggunakan

TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH DEE5081 - PROJECT 1

9 Ditulis Oleh: En.Mohd Zahidi@JKE

9. Contoh kedudukan komponen dan saiz petak Board Edge yang boleh dijadikan panduan untuk anda.

Sebelum track dibuat, klik pada Design Rule Manager>Net Classes, set Trace Style untuk POWER dan SIGNAL pada T30>OK.

Design Rule Manager

Klik pada Auto-router

untuk membuat track

PCB yang telah siap di Auto-router. Pastikan kesemua

kaki komponen telah bersambung iaitu tiada lagi garisan

berwarna hijau kelihatan. Garisan hijau menunjukkan

laluan track tidak dijumpai, anda perlu mengubah

sedikit kedudukan komponen supaya track dapat dibuat

untuk kesemua kaki komponen.

Klik pada

OUTPUT>3D

Visualization untuk

memaparkan

bentuk litar PCB

dalam 3D.

Page 10: TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH …jkeprojek.weebly.com/uploads/9/8/5/0/98509224/membinamobilerobota… · penggeraknya menggunakan roda umpama kereta dan kebiasaanya menggunakan

TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH DEE5081 - PROJECT 1

10 Ditulis Oleh: En.Mohd Zahidi@JKE

10. Seterusnya, anda boleh mencetak litar PCB yang telah siap tersebut pada tracing paper dengan bantuan penyelia. Seterusnya boleh lah menjalani proses Photolitography, Etching, tebuk lubang dan pemasangan komponen pada PCB dengan bantuan penyelia di Bengkel Projek.

11. Litar yang telah siap dipasang boleh lah diuploadkan aturcara seperti Sketch B dibawah. Kaedah Menukar Nama Bluetooth HC-05 kepada Nama pilihan anda sendiri. 1. Anda boleh menonton secara video di https://youtu.be/pRcw_jMIhRo 2. Pasangkan Module HC-05 Bluetooth anda pada slot PCB anda, pastikan kedudukan pin pada tempat

yang betul.

3. Semasa menyambungkan usb kabel pada komputer pastikan anda menekan butang pada bluetooth

tanpa melepaskannya sehingga kabel dimasukkan. Anda akan melihat led berkelip secara perlahan (berada dalam mode AT), jika anda menyambungkan kabel tanpa menekan butang bluetooth anda akan dapati led pada bluetooth berkelip secara cepat (berada dalam mode biasa).

butang pada bleutooth 4. Seterusnya anda boleh taipkan program berikut menggunakan arduino software dan upload ke

dalam arduino board. #include <SoftwareSerial.h> SoftwareSerial BTSerial(2, 3); // CONNECT BT RX PIN TO ARDUINO 11 PIN | CONNECT BT TX PIN TO ARDUINO 10 PIN void setup(){ pinMode(4, OUTPUT); // this pin will pull the HC-05 pin 34 (key pin) HIGH to switch module to AT mode digitalWrite(4, HIGH); Serial.begin(9600); Serial.println("Enter AT commands:"); BTSerial.begin(38400); // HC-05 default speed in AT command more } void loop(){ // Keep reading from HC-05 and send to Arduino Serial Monitor if (BTSerial.available()) Serial.write(BTSerial.read()); // Keep reading from Arduino Serial Monitor and send to HC-05 if (Serial.available()) BTSerial.write(Serial.read()); }

5. Taip “AT” (tanpa pembuka kata) pada serial monitor dan tekan kekunci enter. Jika perkataan “OK” muncul menandakan bluetooth anda telah bersedia menerima arahan. Sekarang anda boleh menukar nama bluetooth anda dengan menaip AT+NAME?,tekan enter untuk memaparkan nama sedia ada dan menaip AT+NAME = MyRobot05, tekan enter. Nama bluetooth anda telah bertukar kepada “MyRobot05”. Nama ini memudahkan anda untuk membuat pairing dengan handphone anda nanti.

Page 11: TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH …jkeprojek.weebly.com/uploads/9/8/5/0/98509224/membinamobilerobota… · penggeraknya menggunakan roda umpama kereta dan kebiasaanya menggunakan

TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH DEE5081 - PROJECT 1

11 Ditulis Oleh: En.Mohd Zahidi@JKE

Sketch B: #include <SoftwareSerial.h> SoftwareSerial myBluetooth(2, 3); // RX, TX int IN1 = 13; // Control pin 1 for motor right int IN2 = 12; // Control pin 2 for motor right int EN1 = 11; // Enable Pin for motor right int EN2 = 10 ; // Enable Pin for motor left int IN3 = 9; // Control pin 1 for motor left int IN4 = 8; // Control pin 2 for motor left char state; void setup() { Serial.begin(9600); // initialize serial communication: myBluetooth.begin(9600); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(EN1, OUTPUT); pinMode(EN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); pinMode(BUZ, OUTPUT); } void loop(){ while (myBluetooth.available() > 0) { char inByte = myBluetooth.read(); Serial.println(inByte); state=inByte; } if(state=='A') forward(); if(state=='B') reverse(); if(state=='C') turnLeft(); if(state=='D') turnRight(); if(state=='E') stopRobot(); if(state=='F') spinCW(); if(state=='G') spinCCW(); }

void forward() { Serial.println("Forward"); analogWrite(EN1, 255); // Run in full speed analogWrite(EN2, 255); // Run in full speed digitalWrite(IN1, HIGH); // right motor forward digitalWrite(IN2, LOW); // digitalWrite(IN3, HIGH); // left motor forward digitalWrite(IN4, LOW); // } void reverse(){ Serial.println("Reverse"); analogWrite(EN1, 255); // Run in full speed analogWrite(EN2, 255); // Run in full speed digitalWrite(IN1, LOW); // right motor reverse digitalWrite(IN2, HIGH); // digitalWrite(IN3, LOW); // left motor reverse digitalWrite(IN4, HIGH); // } void turnLeft(){ Serial.println("Turn Left"); analogWrite(EN1, 255); // Run in full speed

Page 12: TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH …jkeprojek.weebly.com/uploads/9/8/5/0/98509224/membinamobilerobota… · penggeraknya menggunakan roda umpama kereta dan kebiasaanya menggunakan

TUTORIAL MEMBINA MOBILE ROBOT BLUETOOTH DEE5081 - PROJECT 1

12 Ditulis Oleh: En.Mohd Zahidi@JKE

analogWrite(EN2, 255); // Run in full speed digitalWrite(IN1, LOW); // right motor stop digitalWrite(IN2, LOW); // digitalWrite(IN3, HIGH); // left motor forward digitalWrite(IN4, LOW); // } void turnRight(){ Serial.println("Turn Right"); analogWrite(EN1, 255); // Run in full speed analogWrite(EN2, 255); // Run in full speed digitalWrite(IN1, HIGH); // right motor forward digitalWrite(IN2, LOW); // digitalWrite(IN3, LOW); // left motor stop digitalWrite(IN4, LOW); // } void stopRobot(){ Serial.println("Stop"); analogWrite(EN1, 0); // Run in full speed analogWrite(EN2, 0); // Run in full speed digitalWrite(IN1, LOW); // right motor stop digitalWrite(IN2, LOW); // digitalWrite(IN3, LOW); // left motor stop digitalWrite(IN4, LOW); // } void spinCW(){ Serial.println("Spin CW"); analogWrite(EN1, 255); // Run in full speed analogWrite(EN2, 255); // Run in full speed digitalWrite(IN1, HIGH); // right motor forward digitalWrite(IN2, LOW); // digitalWrite(IN3, LOW); // left motor reverse digitalWrite(IN4, HIGH); // } void spinCCW(){ Serial.println("Spin CCW"); analogWrite(EN1, 255); // Run in full speed analogWrite(EN2, 255); // Run in full speed digitalWrite(IN1, LOW); // right motor reverse digitalWrite(IN2, HIGH); // digitalWrite(IN3, HIGH); // left motor forward

digitalWrite(IN4, LOW); // }

SELAMAT MENCUBA!