Pathfinder: Kit Proyek Arduino UNO – Komponen & Perlengkapan
Komponen dan Perlengkapan
- Arduino UNO × 1
- Sensor Ultrasonik - HC-SR04 (Umum) × 1
- Baterai Li-Ion 1000mAh × 2
- RGB Diffused Common Cathode × 1
- Buzzer × 1
- Resistor 330 ohm × 3
- Kabel USB-A ke B × 1
- Kabel Jumper (umum) × 20
Alat dan Mesin yang Diperlukan
- Arduino Materia 101
- Obeng Digilent
Aplikasi dan Layanan Online
- Arduino IDE
- Autodesk Fusion 360
Tentang Proyek Ini
Sinopsis
Kertas ini mewakili desain Robot Menghindari Halangan dengan kemampuan mendeteksi objek dalam jalurnya dan menavigasi di sekitar objek tersebut dengan membuat keputusan yang tepat. Ini menunjukkan unit robotik berdasarkan Arduino UNO dan Adafruit Motor Shield di mana kode ditulis dalam perangkat lunak Arduino IDE. Penghindaran halangan adalah salah satu faktor kunci yang signifikan untuk mengembangkan robot mobile. Penerapan Sensor Jarak Ultrasonik yang ditempatkan pada Mikro-Servo Motor menghasilkan lebih banyak presisi untuk mendeteksi objek di sekitar. Robot yang dirancang ini berbeda dari robot lain yang tersedia karena integrasi Buzzer Magnetik dan LED RGB Diffused CC yang mengakibatkan kemampuan untuk mengindikasikan proses deteksi objek dan mengontrol kecepatan Motor DC Gear dalam 4 jenis situasi. Sebagai robot otonom, potensi untuk maneuver melalui kondisi tidak diketahui tanpa menciptakan dampak apa pun telah dieksekusi. Selain itu, teknologi yang dirancang ini dapat digunakan untuk operasi militer dan bantuan kemanusiaan dengan meningkatkan kapasitas deteksi objek di lingkungan yang beragam.
Multimedia
Interpretasi
Library yang disertakan dalam kode blok adalah sebagai berikut:
AFMotor.h
Servo.h
Koneksi yang ditetapkan dalam kode inline adalah sebagai berikut:
define BuzzPIN A0
define TrigPIN A1
define EchoPIN A2
define LEDBPIN A3
define LEDGPIN A4
define LEDRPIN A5
define DCMROFF 25
Program yang diantisipasi dalam arsitektur robot adalah sebagai berikut:
- Kemampuan untuk mendeteksi objek dalam jalurnya berdasarkan jarak yang ditentukan.
- Cari jalur baru secara relatif terhadap arah yang terbuka.
- Indikasikan deteksi objek dan kontrol kecepatannya.
Semua operasi akan dilakukan secara otonom tanpa kebutuhan kontrol eksternal apa pun.
Proyek ini menyajikan detail penting untuk merancang robot mobile yang diimplementasikan dengan kemampuan menghindari halangan, menavigasi sendiri, dan mengindikasikan gerakan motor DC gear dengan menyala warna selektif dari LED RGB diffused CC dalam 4 situasi berbeda. Robot yang dirancang menunjukkan variasi dari robot menghindari halangan lain dalam hal indikasi cahaya-suara, kontrol kecepatan motor, dan teknik manuver intensif dengan mendeteksi halangan dalam jangkauan 180 derajat di depan robot; yang merupakan tugas yang sulit untuk digabungkan melalui pemrograman yang tepat. Robot dibangun pada platform Arduino UNO Rev3 dengan bantuan perangkat lunak Arduino IDE v1.8.5 untuk integrasi kode assembly yang tepat untuk mendapatkan fungsi yang diperlukan. Integrasi itu membuat robot mampu melakukan operasi yang diperlukan tanpa interaksi manusia dan dengan akurasi yang cukup. Dengan pengembangan lebih lanjut dengan menggabungkan kamera siaran dan teknologi nirkabel, robot ini dapat digunakan secara efektif untuk operasi militer untuk mendeteksi berbagai jenis aktivitas sedangkan unit dasarnya dapat berguna untuk membantu manusia dengan gangguan penglihatan atau pendengaran untuk memberi tahu lokasi objek di sekitar.
Youth Zest Project Showcase
Kode
ProgramArduino
Program assembly, untuk mengatur mesin otonom ini sesuai kebutuhan.
#include <AFMotor.h> // Tambahkan library kit Adafruit Motor Shield untuk Arduino.
#include <Servo.h> // Tambahkan library Servo Motor.
#define BuzzPIN A0 // Tetapkan PIN A0 sebagai BuzzPIN.
#define TrigPIN A1 // Tetapkan PIN A1 sebagai TrigPIN.
#define EchoPIN A2 // Tetapkan PIN A2 sebagai EchoPIN.
#define LEDBPIN A3 // Tetapkan PIN A3 sebagai LEDBPIN.
#define LEDGPIN A4 // Tetapkan PIN A4 sebagai LEDGPIN.
#define LEDRPIN A5 // Tetapkan PIN A5 sebagai LEDRPIN.
#define DCMROFF 25 // Ini mengatur Offset untuk membedakan dua Motor Traksi DC.
AF_DCMotor M1 (1, MOTOR12_64KHZ); // Buat DCMotor #1 menggunakan output M1, Set ke frekuensi PWM 64kHz.
AF_DCMotor M2 (2, MOTOR12_64KHZ); // Buat DCMotor #2 menggunakan output M2, Set ke frekuensi PWM 64kHz.
Servo SER1; // Buat objek Servo untuk mengontrol Servo.
int Search (void) {
float Duration = 0.0;
float CM = 0.0;
digitalWrite (TrigPIN, LOW);
delayMicroseconds (2);
digitalWrite (TrigPIN, HIGH);
delayMicroseconds (10);
digitalWrite (TrigPIN, LOW);
Duration = pulseIn (EchoPIN, HIGH);
CM = (Duration/58.8);
return CM;
}
int RightDistance, LeftDistance;
float Distance = 0.00;
void setup () {
pinMode (BuzzPIN, OUTPUT);
pinMode (TrigPIN, OUTPUT);
pinMode (EchoPIN, INPUT);
pinMode (LEDBPIN, OUTPUT);
pinMode (LEDGPIN, OUTPUT);
pinMode (LEDRPIN, OUTPUT);
SER1.attach (10);
}
void loop () {
SER1.write (80);
delay (100);
Distance = Search ();
if (Distance < 30) {
digitalWrite (BuzzPIN, HIGH);
digitalWrite (LEDBPIN, LOW);
digitalWrite (LEDGPIN, LOW);
digitalWrite (LEDRPIN, HIGH);
M1.setSpeed (100);
M2.setSpeed (100);
ChangePath ();
} else if ((Distance >= 30) && (Distance < 60)) {
digitalWrite (BuzzPIN, LOW);
digitalWrite (LEDBPIN, HIGH);
digitalWrite (LEDGPIN, LOW);
digitalWrite (LEDRPIN, LOW);
M1.setSpeed (150);
M2.setSpeed (150);
Forward ();
} else if ((Distance >= 60) && (Distance < 90)) {
digitalWrite (BuzzPIN, LOW);
digitalWrite (LEDBPIN, LOW);
digitalWrite (LEDGPIN, HIGH);
digitalWrite (LEDRPIN, LOW);
M1.setSpeed (200);
M2.setSpeed (200);
Forward ();
} else {
digitalWrite (BuzzPIN, LOW);
digitalWrite (LEDBPIN, HIGH);
digitalWrite (LEDGPIN, HIGH);
digitalWrite (LEDRPIN, HIGH);
M1.setSpeed (250);
M2.setSpeed (250);
Forward ();
}
}
void ChangePath () {
Stop ();
Backward ();
Stop ();
SER1.write (12);
delay (500);
RightDistance = Search ();
delay (500);
SER1.write (160);
delay (1000);
LeftDistance = Search ();
delay (500);
SER1.write (80);
delay (500);
CompareDistance ();
}
void CompareDistance () {
if (RightDistance > LeftDistance) {
TurnRight ();
} else if (LeftDistance > RightDistance) {
TurnLeft ();
} else {
TurnAround ();
}
}
void Forward () {
M1.run (FORWARD);
M2.run (FORWARD);
}
void Backward () {
M1.run (BACKWARD);
M2.run (BACKWARD);
delay (500);
}
void TurnRight () {
M1.run (BACKWARD);
M2.run (FORWARD);
M1.setSpeed (100+DCMROFF);
delay (300);
}
void TurnLeft () {
M1.run (FORWARD);
M2.run (BACKWARD);
M2.setSpeed (100+DCMROFF);
delay (300);
}
void TurnAround () {
M1.run (FORWARD);
M2.run (BACKWARD);
M2.setSpeed (100+DCMROFF);
delay (700);
}
void Stop () {
M1.run (RELEASE);
M2.run (RELEASE);
delay (100);
}
Bagian dan Enclosure Kustom
Chassis
Chassis robot, untuk mengatur mesin otonom ini sesuai kebutuhan.
Skematik
Diagram rangkaian, untuk mengatur mesin otonom ini sesuai kebutuhan.