control,servomotor,computer,processingGui,Arduino uno pwm pin
आज मैं एक simple idea जिसको मेने भी try कर लिया है जिसे में आपके साथ share करने जा रहा हूँ ये Arduino project है मेरा मानना है Arduino सबसे बढ़िया computing Platform है processing का use करके Graphical user interface create कर दो servo motor को अपने pc से control करने का जिसमे मैंने अपने arduino uno की pwm pin 9,6 का use किया servo motor किसी भी CNC,robot का main part होती है यदि हमें servo motors पर control आ जाये तो हम अपनी CNC machine को gui के साथ control कर सकते है इन servo motors को हम home automation या फिर किसी robot को भी अपने computer से आसानी से control कर सकते है
(adsbygoogle = window.adsbygoogle || []).push({});
graphical user interfacegraphical user interfacegraphical user interfacegraphical user interfacegraphical user interface
Pc Servo Arduino Project Material-
- Computer with IDE
- 2XServo motor
- Processing software
- Arduino software
PC+Arduino Servo Circuit-
- servo A की yallow pin को arduino uno की pwm pin 6 से connect करें
- servo B की yallow pin को arduino uno की pwm pin 9 से connect करें
- servo A की Red pin को arduino uno की 5v pin से connect करें
- servo B की Red pin को arduino uno की 5v pin से connect करें
- servo A की Brown या black pin को arduino uno की Gnd pin से connect करें
- servo B की Brown pin को arduino uno की Gnd pin से connect करें
- Arduino को USB cable से computer से connect करें
Servo Control&Theory-
नीचे दिया program arduino uno में upload करें और circuit बनाये और gui के लिए दिया program को processing में paste कर के play पर click करें तब एक interface के लिए window create होगी मेने दो servo motors को लेकर के system तैयार किया जिसमें computer keyboard के 8 button A,S,D,F,H,J,K,L press करने के लिए Graphical user Interface तैयार किया जिसमे ये सभी button Arduino uno के लिए input का कम करेंगे और साथ ही gui window पर 8 button होंगे
ServoA
इसके लिए input keys A,S,D,F का use होगा keyboard का A press करने पर आपकी servo motor 30 degree तक rotate होगी S,D,F को press करने पर servoA 60,90,120 degree पर rotate होगी key press करते ही gui window में red button होगा
ServoB-
servoA की तरह ये H,J,K,L को press करने पर 30,60,90,120 degree पर rotate होगी
Arduino programming
program दो servo motor के लिए लिखा है इसमें दो pwm(pulse width modulation) pin use हो रही है input के लिए 9,6
/*created by mechanic37
servo control-GUI1
www.mechanic37.com
attach servo to pwm pin 9 */
#include<Servo.h>
Servo m1servo;
Servo m2servo;
void setup()
{
Serial.begin(9600);
m1servo.attach(9);
m2servo.attach(6);
}
void loop()
{
if (Serial.available() > 0) { int data = Serial.read();
switch (data) {
case ‘1’:
m1servo.write(30);
break;
case ‘2’ :
m1servo.write(60);
break;
case ‘3’ :
m1servo.write(90);
break;
case ‘4’ :
m1servo.write(120);
break;
case’5′:
m2servo.write(30);
break;
case’6′:
m2servo.write(60);
break;
case’7′:
m2servo.write(90);
break;
case’8′:
m2servo.write(120);
break;
default :
break;
}
}
}
Programming For Create Graphical User Interface(GUI)-
नीचे दिया program से इस प्रकार की window open होगी जो की arduino uno की pwm pin से जुडी दो servo motor के लिए computer में GUI create करेगी
import processing.serial.*;
Serial Mechanic37Port;
int r,g,b;
void setup() {
size(500, 500);
r = 0; g = 0;b = 0;
noStroke();
frameRate(10);
Mechanic37Port = new Serial(this, 9600);
}
void draw(){
rect(120,50,150,50);
rect(350,420,90,30);
fill(#48CB8B);
rect(0,0,500,500);
fill(#0CE00B);
rect(80,70,150,60,30);
rect(80,150,150,60,30);
rect(80,240,150,60,30);
rect(80,330,150,60,30);
rect(285,70,150,60,30);
rect(285,150,150,60,30);
rect(285,240,150,60,30);
rect(285,330,150,60,30);
fill(0,0,0);
textSize(30);
fill(#076738);
text(“Mechanic37 GUI”,150,50);
textSize(20);
fill(0,0,0);
text(“30°”,135,105);
text(“60°”,135,185);
text(“90°”,135,275);
text(“120°”,135,365);
text(“30°”,345,105);
text(“60°”,345,185);
text(“90°”,345,275);
text(“120°”,345,365);
text(“ServoA”,120,420);
text(“ServoB”,330,420);
}
void keyPressed(){
switch (keyCode) {
case ‘A’:
Mechanic37Port.write(‘1’);
fill(255,0,0);
rect(80,70,150,60,30);
break;
case ‘S’:
Mechanic37Port.write(‘2’);
fill(255,0,0);
rect(80,150,150,60,30);
break;
case ‘D’:
Mechanic37Port.write(‘3’);
fill(255,0,0);
rect(80,240,150,60,30);
break;
case ‘F’:
Mechanic37Port.write(‘4’);
fill(255,0,0);
rect(80,330,150,60,30);
break;
case ‘H’:
Mechanic37Port.write(‘5’);
fill(255,0,0);
rect(285,70,150,60,30);
break;
case ‘J’:
Mechanic37Port.write(‘6’);
fill(255,0,0);
rect(285,150,150,60,30);
break;
case ‘K’:
Mechanic37Port.write(‘7’);
fill(255,0,0);
rect(285,240,150,60,30);
break;
case ‘L’:
Mechanic37Port.write(‘8’);
fill(255,0,0);
rect(285,330,150,60,30);
break;
}
}
Leave a Reply