(001)가변저항을 이용한 모터속도제어
void MotorControl(int a, int B, int C, int D, int S)
{
}
Agv.digitalWrite(0, A);
Agv.digitalWrite(1, B);
Agv.digitalWrite(2, C);
Agv.digitalWrite(3, D);
Agv.analogWrite (PIN RWS, S);
Agv.analogWrite (PIN LWS, S);
void MotorControl(int a, int B, int C, int D, int S)
{
void loop() [
if (bluetooth.available())
message = (char) bluetooth.read();
switch (message)
【
24
case 'U':
MotorControl (LOW, HIGH, HIGH, LOW, 25);
break;
MotorControl(HIGH,LOW, HIGH, LOW, 100);
39
25
break:
41
40
case 'D':
43
}
MotorControl(LOW,HIGH, LOW, HIGH, 50);
44
break:
451
case 'R':
case 'L':
MotorControl (HIGH,LOW, LOW, HIGH, 25);
break:
case 'X':
MotorControl (LOW, LOW, LOW, LOW, 0);
break:
28
Agv.printf (message);
1 #include <SoftwareSerial.h>
2 #include <MetisAgv.h>
3 #include <MetisRemote10.h>
4
5 const int Tx = 2;
6 const int Rx = 3:
7 char message:
8 SoftwareSerial bluetooth (Tx, Rx);
9
10 void MotorControl (int A, int B, int C, int D, int S);
11
128 void setup() {
13
14
Agv. Initialize (19200);
151
bluetooth.begin(9600);
2 SoftwareSerial
일반 GPIO를 TTL 레벨의 UART 통신 포트로 사용하기 위해 제공하는 라이브러리 함수.
SoftwareSerial 변수명(Tx핀번호, Rx핀번호): 통신 객체를 새로 생성.
변수명.begin(통신속도) : 통신 속도를 지정하고 비동기 통신을 시작.
int 변수명.available(): 수신 포트에 도착한 매 시지가 존재하면 1을 리턴.
변수명.read(): 수신 포트에 도착한 메시지 1개 를 읽기.
-101-
(002) 조이스틱을 활용한 AGV 제어
#include <MetisAgv.h>
2 #include <MetisRemote10.h>
3
4 #define PIN RWS O
5 #define PIN LWS 1
6
7 78
int SPEED = 50:
9 const int Threshold = 750:
10 const int L Threshold 250:
11
12 int Range (int VR):
14
waid MotorControl (int A, int B, int C, int D, int S):
15@void setup() {
16 Agv-Initialize (19200);
17
Agv.analogWrite (PIN_RWS, SPEED):
18
Agv.analogWrite (PIN_LWS, SPEED):
19)
2. Const (자료형)
#define과 비슷한 용도로 사용되며, 컴파일 후 절대 변하지 않는 상수,
#define과의 차이는 자료형을 지정 할 수 있다는 특징이 있음.
21 void loop()(
22 int VRx analogRead (A0);
23
int VRy analogRead (Al);
24
25
int x = Range (VRx);
26
int y Range (VRy);
27
26
if(x1 && y ==0)
29日
30
MotorControl (HIGH, LOW, HIGH, LOW, 100);
31
32
else if (x1640)
339
34
35
36
MotorControl (LOW, HIGH, LOW, HIGH, 50);
else if (x=0&y= 1)
37回
38
39
40
MotorControl(LOW,HIGH, HIGH, LOW, 25):
41日 【
42
else if (x == 0 && y=-1)
43 }
MotorControl (HIGH, LOW, LOW, HIGH,25);
45日
1
46
47
1
44 else
MotorControl (LOW, LOW, LOW, LOW,0);
49
50)
Agv.printf("VRx: id, VRy d", VRx, VRY):
53 int Range (int VR)
54日1
55
if (VR <L_Threshold)
56日
72
57
56
}
59
60日
61
62
63
65
66
67}
70
71
69 void MotorControl (int A, int B, int C, int D. inc 5)
return -1;
else if (VR > H_Threshold)
return 1;
}
eise
64日 [
return 0;
}
Agv.digitalWrite(0, A):
Agv.digitalWrite(1, B):
73
Agv.digitalWrite(2, C);
74
Agv.digitalWrite(3, D):
75
76
Agv.analogWrite(PIN_RWS, 3);
Agv.analogWrite (PIN LWS, S):
771
(003) 블루투스 모듈을 이용한 AGV 제어
#include <SoftwareSerial.h>
COMTZ
int x = 2;
int Rx = 3;
AT-NAMEMET-01
5 char message:
6
OKsetnam
7 SoftwareSerial bluetooth (Tx, Rx);
8
gavoid setup() {
10
Serial.begin(9600);
bluetooth.begin(9600);
121
13
14日void loop() {
16日
【
17
18
if (bluetooth.available())
19
20
21
}
22日 【
23
24
25
26)
자스크로타워스캠프 표시
anding950 보드레이트
출닥 지우기
2. AT 명령어
UART 신호를 다른 통신 프로토콜로 컨버팅하는 모들의 통신 설 정을 하는데 쓰이는 언어.
모듈 제조사마다 차이가 있으므로 해당 제조사의 매뉴얼을 참조.
message = (char) bluetooth.read();
Serial.write (message);
15
HC-06의 경우
if (Serial.available())
message (char) Serial.read();
bluetooth.write (message);
AT: 접속 확인
AT+NAME아이디명 : 아이디 변경
AT+PIN핀번호4자리: 핀번호 변경
-98
#include <MetisAgv.h>
2 #include <MetisRemoteIO.h>
3
4 #define PIN_RWS 0
5 #define PIN LWS 1
6
7 int SPEED = 50;
8
10
9日 void setup() {
11
Agv.analogWrite(PIN_RWS, SPEED);
Agv.analogWrite (PIN_LWS, SPEED);
12
131
14
Agv. Initialize (19200);
15日 void loop() {
16
17
18
int VRy analogRead(Al);
19
Agv.printf("VRx: %d, VRY: %d", VRX, VRY);
201
int VRx = analogRead (A0);
COMICOVIJES
Digital Read/Write
Digital Read Only1
RCW
RCCW
LAMPI
SWITCHE
RM1
(M1
Digital Read Only2
LOW
LAMP3
13
SWITCH3
LM3
LAMP2
12
SWITCH2
RM2
M2
LCCW
LAMPM
SWITCHE
IMA
LMA
$1
LIFT UP
LAMPS
SWITCHS
POMS
LMS
52
LIFT ON
LAMP?
SWITCH?
LM7
LAMPS
SWITCHE
LMG
LAMPO
PLS
SWITCHS
LMO
GetSet Parameter
Get Paramatar Only
Test Move Button
RIGHT
SPEED
LEFT
ACCEL
0
FRONT
ANGLE
LEFT 24404
DECELO
REAR
(1023, 512)
(1023, 0)
(1023, 1023)
(512, 0)
(512,512)
+y (512, 1023)
(0,0)
(0, 1023)
(0, 512)
-92-
댓글 없음:
댓글 쓰기