01 Juli 2023

PROJECT A: Penggunaan 2 servo untuk kaki robot



SKETCH YANG PERLU DIKETIK:

#include <Servo.h>

// Membuat objek servo
Servo servo1;
Servo servo2;

void setup() {
  // Menghubungkan objek servo ke pin
  servo1.attach(9);
  servo2.attach(10);

  // Posisi awal
  servo1.write(90);  // posisi netral
  servo2.write(90);
  delay(1000);
}

void loop() {
  // Langkah 1 - Gerakkan servo1 ke depan, servo2 tetap
  servo1.write(60);
  delay(500);

  // Langkah 2 - Servo1 kembali ke posisi awal
  servo1.write(90);
  delay(500);

  // Langkah 3 - Gerakkan servo2 ke depan
  servo2.write(120);
  delay(500);

  // Langkah 4 - Servo2 kembali ke posisi awal
  servo2.write(90);
  delay(500);
}

12 Juni 2023

SILABUS MATA PELAJARAN ROBOTIKA SMP ATAU SMA

 Berikut adalah contoh silabus pembelajaran robotika yang dapat digunakan sebagai panduan:


Mata Pelajaran: Robotika

Tingkat: Menengah (SMP/SMA)


Unit 1: Pengenalan Robotika

- Pengertian dan sejarah robotika

- Komponen utama robotika (sensor, aktuator, kontroler)

- Jenis-jenis robotika (mobile robot, robot manipulator, robot humanoid)

- Prinsip dasar robotika (kinematika, dinamika, penginderaan)


Unit 2: Elektronika Dasar

- Komponen elektronika (resistor, kapasitor, transistor)

- Rangkaian dasar (sirkuit seri, paralel)

- Pengenalan mikrokontroler dan Arduino

- Penggunaan sensor dalam robotika (sensor cahaya, sensor jarak, sensor suara)


Unit 3: Pemrograman Robotika

- Pengenalan bahasa pemrograman robotika (C, Python)

- Struktur dasar program (variabel, percabangan, perulangan)

- Penggunaan perintah dasar untuk mengontrol robot (gerak maju, berputar, mengangkat)


Unit 4: Mekanika Robotika

- Pengenalan mekanika (kinematika dan dinamika robotika)

- Sistem koordinat robotika (koordinat Cartesian, koordinat polar)

- Perancangan dan pemodelan mekanisme robotika


Unit 5: Pengendalian Robotika

- Pengenalan kontroler robotika

- Sistem kontroler sederhana (PID controller)

- Penggunaan sistem penglihatan komputer (computer vision) dalam robotika


Unit 6: Proyek Robotika

- Merancang dan membangun robot sederhana

- Pemrograman robot untuk menjalankan tugas tertentu

- Mengoptimalkan performa robot melalui pengaturan kontroler dan sensor


Unit 7: Aplikasi Robotika

- Aplikasi robotika dalam industri (otomasi, manufaktur)

- Aplikasi robotika dalam kehidupan sehari-hari (robot layanan, robot rumah tangga)

- Tantangan dan masa depan robotika (kecerdasan buatan, robotika kolaboratif)


Catatan: Silabus ini hanya sebagai contoh dan dapat disesuaikan dengan kebutuhan dan tingkat pendidikan yang lebih spesifik. Disarankan untuk mengadopsi metode pembelajaran yang interaktif, seperti proyek berbasis tim, laboratorium praktikum, dan presentasi hasil proyek untuk meningkatkan pemahaman dan keterampilan praktis siswa dalam robotika.

25 Mei 2023

ROBOT BERODA KENDALI BLUETOOTH HC 05 MODUL DRIVER L298N

 TOPOLOGI  ROBOT 2WD PENGENDALI BT HC 05

 


 
















Gambar 5.7. Topologi Robot Beroda 2WD kendali BT HC 05

 

A.     SETTING BLUETOOTH HC-05

1.      Memberikan Nama Bluetooth dan Password dengan AT COMMAND

2.      Penjelasan akan diuraikan di lampiran 2

 

B.      MENDOWNLOAD APLIKASI DI HP ANDROID

1.      Buka Google Play Store

2.      Ketik pada tab search “Arduino BT(HC-05)” lalu Install

3.      Password robot “1234”

 

C.      SKETCH ROBOT 2WD PENGENDALI BT HC 05

 

//CODER M.FIRDAUS,S.PD

//SEBELUM UPLOAD PROGRAM,CABUT DULU BT HC05 DAN SERVO

//HC05 RXD>pin 1

//HC05 TXD>pin 0

//HC05 GND>pin GND

//HC05 VCC>pin 5V

//menggunakan modul motor driver L298N

//PIN BLUETOOTH 1234

 

 

#include <SoftwareSerial.h>

char val;

 

// Penetapan Nama Variabel motor dan pin yang ditentukan

int ENA = 10; // pengatur kecepatan motor kiri di pin 10 pwm

int IN1 = 9; //IN1 motor kiri

int IN2 = 8; //IN2 motor kiri

int IN3 = 5; //IN3 motor kanan

int IN4 = 4; //IN4 motor kanan

int ENB = 3; // pengatur kecepatan motor kanan di pin 3 pwm

 

void setup()

{

  pinMode(IN1, OUTPUT); // in1 kiri

  pinMode(IN2, OUTPUT); // in2 kiri

  pinMode(IN3, OUTPUT); // in3 kanan

  pinMode(IN4, OUTPUT); // in4 kanan

  pinMode(ENA, OUTPUT); // nilai kecepatan motor kiri

  pinMode(ENB, OUTPUT); // nilai kecepatan motor kanan

 

  Serial.begin(9600); //Kecepatan komunikasi serial

 }

 

void loop(){

 

if( Serial.available() >0 )     

  {

    //Variable val untuk menyimpan sementara hasil dari bluetooth

    val = Serial.read();

    Serial.println(val);

  }

  

    if( val == 'F' ) {     //Motor Maju

        forward();

        }

    if( val == 'B') {      //Motor Mundur

        reverse();

        }

   if( val == 'R' ) {     //Motor Berbelok kanan

        right();

        }

   if( val == 'L' ) {     //Motor Berbelok kiri

        left();

        }

    if( val == 'S' ) {     //Motor Berhenti

        stop_bot();

        }

        delay(100);

 

    if( val == '1' ) {     //Motor Serong Kiri depan

        left();

        }

    if( val == '2' ) {     //Motor Serong Kanan depan

        right();

        }

    if( val == '3' ) {     //Motor Serong Kiri belakang

        sharpLeftTurn();

        }

    if( val == '4' ) {     //Motor Serong Kanan belakang

        sharpRightTurn();

        }

}

 

void forward(){

  analogWrite(ENA, 250); //Left Motor Speed

  analogWrite(ENB, 250); //Right Motor Speed

  digitalWrite(IN1, HIGH);

  digitalWrite(IN2, LOW);

  digitalWrite(IN3, HIGH);

  digitalWrite(IN4, LOW);

}

void reverse(){

  analogWrite(ENA, 250); //Left Motor Speed

  analogWrite(ENB, 250); //Right Motor Speed

  digitalWrite(IN1, LOW);

  digitalWrite(IN2, HIGH);

  digitalWrite(IN3, LOW);

  digitalWrite(IN4, HIGH);

}

void right(){

  analogWrite(ENA, 250); //Left Motor Speed

  analogWrite(ENB, 250); //Right Motor Speed

  digitalWrite(IN1, HIGH);

  digitalWrite(IN2, LOW);

  digitalWrite(IN3, LOW);

  digitalWrite(IN4, LOW);

}

void left(){

  analogWrite(ENA, 250); //Left Motor Speed

  analogWrite(ENB, 250); //Right Motor Speed

  digitalWrite(IN1, LOW);

  digitalWrite(IN2, LOW);

  digitalWrite(IN3, HIGH);

  digitalWrite(IN4, LOW);

}

void sharpRightTurn(){

  analogWrite(ENA, 250); //Left Motor Speed

  analogWrite(ENB, 250); //Right Motor Speed

  digitalWrite(IN1, HIGH);

  digitalWrite(IN2, LOW);

  digitalWrite(IN3, LOW);

  digitalWrite(IN4, HIGH);

}

void sharpLeftTurn() {

  analogWrite(ENA, 250); //Left Motor Speed

  analogWrite(ENB, 250); //Right Motor Speed

  digitalWrite(IN1, LOW);

  digitalWrite(IN2, HIGH);

  digitalWrite(IN3, HIGH);

  digitalWrite(IN4, LOW);

  

}

void stop_bot(){

  analogWrite(ENA, 0); //Left Motor Speed

  analogWrite(ENB, 0); //Right Motor Speed

  digitalWrite(IN1, LOW);

  digitalWrite(IN2, LOW);

  digitalWrite(IN3, LOW);

  digitalWrite(IN4, LOW);

}

A.  SKETCH ROBOT 2WD PENGENDALI Radio Frekuensi 4 Channel

 


 

const int val1 = A0; // pin terjemah untuk maju

const int val2 = A1; // pin terjemah untuk mundur

const int val3 = A2; // pin terjemah untuk kanan

const int val4 = A3; // pin terjemah untuk kiri

 

// Penetapan Nama Variabel motor dan pin yang ditentukan

int ENA = 10; // pengatur kecepatan motor kiri di pin 10 pwm

int IN1 = 9; //IN1 motor kiri

int IN2 = 8; //IN2 motor kiri

int IN3 = 5; //IN3 motor kanan

int IN4 = 4; //IN4 motor kanan

int ENB = 3; // pengatur kecepatan motor kanan di pin 3 pwm

 

int readState = 0;

 

void setup() {

  pinMode(val1, INPUT);

  pinMode(val2, INPUT);

  pinMode(val3, INPUT);

  pinMode(val4, INPUT);

 

  pinMode(IN1, OUTPUT); // in1 kiri

  pinMode(IN2, OUTPUT); // in2 kiri

  pinMode(IN3, OUTPUT); // in3 kanan

  pinMode(IN4, OUTPUT); // in4 kanan

  pinMode(ENA, OUTPUT); // nilai kecepatan motor kiri

  pinMode(ENB, OUTPUT); // nilai kecepatan motor kanan

}

 

void loop() {

  

  //untuk tombol pertama D2 ke A0

  readState = digitalRead(val1);

  if (readState == HIGH) {//Arah Maju

        forward();

        }

  else {//Motor Berhenti

        stop_bot();

    }

    delay(100);

    

  //untuk tombol kedua D0 ke A1

  readState = digitalRead(val2);

  if (readState == HIGH){//Arah Mundur

        reverse();

        }

  else {//Motor Berhenti

        stop_bot();

    }

    delay(100);

    

  //untuk tombol ketiga D3 ke A2

  readState = digitalRead(val3);

  if (readState == HIGH){//Arah Kanan

        right();

        }

  else {//Motor Berhenti

        stop_bot();

    }

    delay(100);

    

  //untuk tombol keempat D1 ke A3

  readState = digitalRead(val4);

   if (readState == HIGH){// Arah Kiri

        left();

        }

  else {//Motor Berhenti

        stop_bot();

    }

    delay(100);

}

 

void forward(){

  analogWrite(ENA, 250); //Left Motor Speed

  analogWrite(ENB, 250); //Right Motor Speed

  digitalWrite(IN1, HIGH);

  digitalWrite(IN2, LOW);

  digitalWrite(IN3, HIGH);

  digitalWrite(IN4, LOW);

}

void reverse(){

  analogWrite(ENA, 250); //Left Motor Speed

  analogWrite(ENB, 250); //Right Motor Speed

  digitalWrite(IN1, LOW);

  digitalWrite(IN2, HIGH);

  digitalWrite(IN3, LOW);

  digitalWrite(IN4, HIGH);

}

void right(){

  analogWrite(ENA, 250); //Left Motor Speed

  analogWrite(ENB, 250); //Right Motor Speed

  digitalWrite(IN1, HIGH);

  digitalWrite(IN2, LOW);

  digitalWrite(IN3, LOW);

  digitalWrite(IN4, LOW);

}

void left(){

  analogWrite(ENA, 250); //Left Motor Speed

  analogWrite(ENB, 250); //Right Motor Speed

  digitalWrite(IN1, LOW);

  digitalWrite(IN2, LOW);

  digitalWrite(IN3, HIGH);

  digitalWrite(IN4, LOW);

}

void sharpRightTurn(){

  analogWrite(ENA, 250); //Left Motor Speed

  analogWrite(ENB, 250); //Right Motor Speed

  digitalWrite(IN1, HIGH);

  digitalWrite(IN2, LOW);

  digitalWrite(IN3, LOW);

  digitalWrite(IN4, HIGH);

}

void sharpLeftTurn() {

  analogWrite(ENA, 250); //Left Motor Speed

  analogWrite(ENB, 250); //Right Motor Speed

  digitalWrite(IN1, LOW);

  digitalWrite(IN2, HIGH);

  digitalWrite(IN3, HIGH);

  digitalWrite(IN4, LOW);

  

}

void stop_bot(){

  analogWrite(ENA, 0); //Left Motor Speed

  analogWrite(ENB, 0); //Right Motor Speed

  digitalWrite(IN1, LOW);

  digitalWrite(IN2, LOW);

  digitalWrite(IN3, LOW);

  digitalWrite(IN4, LOW);

}