• pelatihan siswa lks

    peatihan siswa smk negeri 1 krangkeng dalam persiapan lomba lks

  • penghargaan juara

    tingkat kabupaten pada tahun yang sama dapat penghargaan juara 1 lks electrical instalation dan juara 1 lks industrial control

  • Pemograman Robotik

    Mempelajari ilmu Pemograman robot arduino dan IOT

  • Foto Siswa

    Foto siswa Jurusan Elektronika Industri SMK NEGERI 1 KRANGKENG

  • Pembelajaran PLC

    Materi Pembelajaran PLC Omron dan Smart relay sesuai yang dibutuhkan di industri dan khusus lomba LKS

Mobil Pemadam Kebakaran dengan arduino uno

 Didalam  membuat  proyek ini, kami akan membangun robot Pemadam Kebakaran sederhana yang dapat bergerak menuju api dan meniup angin dari putaran kipas. Pada versi originalnya digunakan pompa keluar air disekitarnya untuk memadamkan api, anda bisa cek disini untuk detailnya. Model kipas dalam robot ini  sangat sederhana yang akan mengajari kita konsep dasar robotika pemadam kebakaran.


Alat yang dibutuhkan :
Sensor api 1 x 5ch

2x fan kipas modul untuk robot

2 x mini motor  dc Gearbox + roda

Shield Driver l293d

 1 x 8 jumper kabel female to female

Rangkaian skematik 

pemograman :

#include <AFMotor.h> AF_DCMotor MotorL(1); // Motor for drive Left on M1
AF_DCMotor MotorR(2); // Motor for drive Right on M2
AF_DCMotor fanMotor(3); // Motor for Fan on M3 int val; void setup() {
Serial.begin(115200); // set up Serial library at 115200 bps
Serial.println("*SMARS Firefighter Mod*");
// Set the speed to start, from 0 (off) to 255 (max speed)
MotorL.setSpeed(255); MotorL.run(FORWARD); MotorL.run(RELEASE); MotorR.setSpeed(
255);
MotorL.run(FORWARD);
MotorL.run(RELEASE);

MotorR.setSpeed(255); MotorR.run(FORWARD); MotorR.run(RELEASE); fanMotor.setSpeed(
MotorR.run(FORWARD);
MotorR.run(RELEASE);

fanMotor.setSpeed(255); fanMotor.run(FORWARD); fanMotor.run(RELEASE); } fanMotor.run(FORWARD);
fanMotor.run(RELEASE);
} void loop() { flameangle();
flameangle(); // aligns the flame on the central sensor
setdistance(); // move the robot in the right position
int num= maxflame('v');

if (num> 996) { // verify the flame intensitiy
fanMotor.run(FORWARD); // actives the fan motor for 2 seconds
delay(2000); fanMotor.run(RELEASE);
fanMotor.run(RELEASE); // deative the fan motor
};
} //---------------------------------------------------------------------------
// The function maxflame() gets the values from the 5 channels and returns
// the position where it finds the max value (if you give 'p' as argument l)
// or the max value (if you give 'v' as argument l)
// connections:
//----------------------
// sensor arduino-
// - A1 -. A0 -
// - A2 -. A1 -
// - A3 -. A2 -
// - A4 -. A3 -
// - A5 -. A4 -
//----------------------
// int maxflame(char l) {
int data[5]; // creating an array where store the sensor values
int i;

for (i=0; i<5; i++) { // read the sensor values and store them into the array
data[i]= analogRead(i); };
};

int mv=0; // max value
int mn; // max value position

for (i=0; i<5; i++) { // check all the array's elements and sets mv to the maximum value measured and mn to the array's position i
if (data[i]> mv) { mv=data[i]; mn=i; } };
mv=data[i];
mn=i;
}
};

if(l=='p') { // returns the position of the maximum value
return mn; };
}; if(l=='v') { // returns the maximum value
return mv; } } }
} //---------------------------------------------------------------------------------------
// The function flameangle() move aligns the robot with the flame

void flameangle(){ val= maxflame(
val= maxflame('p'); //store the position of the maxflame into the variable val if(val<2) {
while (val!=2) { MotorL.setSpeed(
MotorL.setSpeed(80); MotorR.setSpeed(
MotorR.setSpeed(80); MotorL.run(FORWARD); MotorR.run(BACKWARD); val= maxflame(
MotorL.run(FORWARD);
MotorR.run(BACKWARD);
val= maxflame('p'); }; };
};
};

Serial.println(val);
if(val>2) {
while(val!=2) { MotorL.setSpeed(
MotorL.setSpeed(80); MotorR.setSpeed(
MotorR.setSpeed(80); MotorR.run(FORWARD); MotorL.run(BACKWARD); val= maxflame(
MotorR.run(FORWARD);
MotorL.run(BACKWARD);
val= maxflame('p'); }; };
};
}; if (val==2) { // When the robot is in front of the flame, it deactivates the motors
MotorL.run(RELEASE);
MotorR.run(RELEASE);
}
} //---------------------------------------------------------------------------------------
// The function setdistance() makes the robot move forward or backward until it is at a choosed distance
void setdistance() {
int md=998; //minimun distance
int maxd=980; //maximum distance
int tub=996; //tollerance

val= maxflame('v'); //if the robot it's too near the flame, it go backward

if(val> md) { MotorL.run(BACKWARD); MotorR.run(BACKWARD); }
MotorL.run(BACKWARD);
MotorR.run(BACKWARD);
} if(val>maxd && val<tub) { //if the robot it's too far from thr flame, it go forward
MotorL.run(FORWARD);
MotorR.run(FORWARD);
} if(val>tub&& val<md) { // if it's at the right distance, it stops.
MotorL.run(RELEASE);
MotorR.run(RELEASE);
}
}




Share:

Robot pengangkat barang dengan Bluetooth

 Didalam Proyek ini menyajikan desain robot pengangkat barang mini yang dapat menyimpan dan mengambil objek ke / dari slot penyimpanan tertentu dari / ke pangkalan menggunakan remote control Bluetooth hc-05. Komponen khusus yang Anda perlukan adalah motor roda gigi dengan sumbu  55mm 60RPM, penggunaan motor untuk mengangkat barang dengan mulus ke atas dan ke bawah.


Rangkaian skematik 

Cara pembuatan hardware 
Solder motor dc gearbox

Masukkan motor roda gigi ke bagian rangka dasar.

Pasangkan kedua mur tersebut secara berdampingan dan diikat, ditempatkan pada alas dan ujung poros motor seperti terlihat pada gambar. Dua mur yang berdampingan harus sejajar agar mudah saat memasang bagian 3D sekrup angkat

Pasang bersama-sama bagian 3D: tiang, frok dan sekrup angkat seperti yang ditunjukkan pada gambar. Kemudian kencangkan di bagian atas tiang untuk menahan lift screw namun masih bisa berputar.
Sekarang pasang rakitan garpu ke rangka dasar yang sudah memiliki motor roda gigi seperti yang ditunjukkan.

Pasang motor servo ke dalam kotak servo.

Putar poros motor servo hingga 45 °, untuk detail lihat gambar.

Pasang konektor servo ke depan sasis mobil

Pasang dan kencangkan lengan servo dan konektor servo ke servo case assembly seperti yang ditunjukkan gambar di bawah ini.

Pasang rakitan rangka dasar ke dalam rakitan kotak servo.
Pasang kabel servo dan motor dc


Untuk pemograman nya 

#include <AFMotor.h>
#include <Servo.h> AF_DCMotor MotorL(1); // Motor for drive Left on M1
AF_DCMotor MotorR(2); // Motor for drive Right on M2
AF_DCMotor MotorFork(3); // Motor for drive fork Up/Down on M3 const int buzPin = 2; // set pin 2 as buzzer pin (use active buzzer)
Servo servo1; // create a servo object servo1
int valServo; String readString, action, Lspeed, Rspeed, actionDelay, stopDelay; // declaring multiple strings void setup(){
Serial.begin(115200); // set up Serial library at 115200 bps
Serial.println("*SMARS Forklift Mod*"); pinMode(buzPin, OUTPUT); // sets the buzzer pin as an Output
servo1.attach(10); // tell the servo1 object that its servo is plugged into pin 10
servo1.write(25); // move the servo to the 25 degree position

// Set the speed to start, from 0 (off) to 255 (max speed)
// sometimes the motors don't have the same speed, so use these values tomake your SMARS move straight
MotorL.setSpeed(255); MotorR.setSpeed(
MotorR.setSpeed(255); MotorFork.setSpeed(
MotorFork.setSpeed(255);
// turn off motor
MotorL.run(RELEASE);
MotorR.run(RELEASE);
MotorFork.run(RELEASE);
} void loop() {
while (Serial.available() > 0) {
char c = Serial.read(); // gets one byte from serial buffer
readString += c;

if (c == '\n') {
Serial.println("---------------");
Serial.print(readString); // prints string to serial port out int n1;
int n2; // separate the string that receive from serial buffer into several substring
action = readString.substring(0, 1); Lspeed =
Lspeed = readString.substring(1, 4); Rspeed =
Rspeed = readString.substring(4, 7); Serial.println(action);
Serial.println(Lspeed);
Serial.println(Rspeed); char carray1[7]; // declaring character array
Lspeed.toCharArray(carray1, sizeof(carray1)); // passing the value of the string to the character array
n1 = atoi(carray1); // convert char/string to a integer value

char carray2[7]; Rspeed.
Rspeed.toCharArray(carray2, sizeof(carray2)); n2 = atoi(carray2);
n2 = atoi(carray2);
Serial.println(n1); // prints integer value n1 to serial port out
Serial.println(n2); // prints integer value n2 to serial port out

readString = "";

// move forward
if(action.equals("F")){ MotorL.setSpeed(n1); MotorR.setSpeed(n2); MotorL.run(FORWARD); MotorR.run(FORWARD);
MotorL.setSpeed(n1);
MotorR.setSpeed(n2);
MotorL.run(FORWARD);
MotorR.run(FORWARD); // move backward
} else if(action.equals("B")){ MotorL.setSpeed(n1); MotorR.setSpeed(n2); MotorL.run(BACKWARD); MotorR.run(BACKWARD);
MotorL.setSpeed(n1);
MotorR.setSpeed(n2);
MotorL.run(BACKWARD);
MotorR.run(BACKWARD); // turn left
} else if(action.equals("L")){ MotorL.setSpeed(n1); MotorR.setSpeed(n2); MotorL.run(BACKWARD); MotorR.run(FORWARD);
MotorL.setSpeed(n1);
MotorR.setSpeed(n2);
MotorL.run(BACKWARD);
MotorR.run(FORWARD); // turn right
} else if(action.equals("R")){ MotorL.setSpeed(n1); MotorR.setSpeed(n2); MotorL.run(FORWARD); MotorR.run(BACKWARD);
MotorL.setSpeed(n1);
MotorR.setSpeed(n2);
MotorL.run(FORWARD);
MotorR.run(BACKWARD); // turn the fork up
} else if(action.equals("U")){ MotorFork.setSpeed(n1); MotorFork.run(FORWARD);
MotorFork.setSpeed(n1);
MotorF
ork.run(FORWARD); // turn the fork down
} else if(action.equals("D")){ MotorFork.setSpeed(n1); MotorFork.run(BACKWARD);
MotorFork.setSpeed(n1);
MotorFork.run(BACKWARD); // turn the fork off
} else if(action.equals("T")){ MotorFork.run(RELEASE);
MotorFork.run(RELEASE); // stop
} else if(action.equals("S")){ MotorL.run(RELEASE); MotorR.run(RELEASE);
MotorL.run(RELEASE);
MotorR.run(RELEASE); // turn on horn
} else if(action.equals("H")){
digitalWrite(buzPin, HIGH);
delay(120);
digitalWrite(buzPin, LOW);
delay(100);
digitalWrite(buzPin, HIGH);
delay(120);
digitalWrite(buzPin, LOW); // set position of servo for tilt angle
} else if(action.equals("V")){ servo1.write(n1);
servo1.write(n1); // move the servo position depend on value n1
delay(15); } } } }
}
}
}
}

Share:
Diberdayakan oleh Blogger.