Professional Documents
Culture Documents
MauTrinhBay Assignment AUT109
MauTrinhBay Assignment AUT109
ASSIGNMENT
Lớp: AC16301
HÀ NỘI – 2021
1
Mụ c Lụ c
CHƯƠNG I: TỔNG QUAN......................................................................................................................3
1.1 Khái niệm điều khiển tư động......................................................................................................3
1.1.1 Khái niệm...................................................................................................................................3
1.1.2 Các nguyên tắc điều khiển..........................................................................................................3
1.1.3 Các phần tử trong thệ thống điều khiển tự động........................................................................4
1.1.4 Phân loại hệ thống điều khiển.....................................................................................................5
1.2 Nhiệm vụ đề tài............................................................................................................................6
CHƯƠNG II: ĐỘNG CƠ ĐIỆN 1 CHIỀU VÀ PHƯƠNG PHÁP ĐIỀU KHIỂN TỐC ĐỘ.......................8
2.1 Đặc tính của động cơ điên 1 chiều.....................................................................................................8
2.1.2 Phương pháp nhận dạng trực tuyến mô hình động cơ.................................................................9
2.2 Phương pháp điều khiển đông cơ......................................................................................................9
CHƯƠNG III: BỘ ĐIỀU KHIỂN PID..................................................................................................11
3.1 Bô điều khiển PID.............................................................................................................................11
3.1.1 Lý thuyết về bộ điều khiển PID................................................................................................11
CHƯƠNG IV LỰA CHỌN PHƯƠNG ÁN THIẾT KẾ.......................................................................14
4.1 Lựa chọn động cơ............................................................................................................................14
4.2 . Lựa chọn phương pháp dẫn đường...............................................................................................16
4.3 Lựa chọn phương án bộ điều khiển.................................................................................................18
CHƯƠNG V :THIẾT KẾ.......................................................................................................................21
5.1 Sơ đồ khối........................................................................................................................................21
5.2 Sơ đồ nguyên lý...............................................................................................................................22
5.3 Sơ đồ lắp ráp....................................................................................................................................23
5.4 Sơ đồ đường đi trong nhà máy........................................................................................................24
5.5 Chương trình điều khiển..................................................................................................................25
CHƯƠNG V: THI CÔNG......................................................................................................................35
5.1 Danh mục vật tư..............................................................................................................................35
3.2 Địa chỉ mua sắm vật tư....................................................................................................................36
Linh kiện 3M CƠ SỞ HÀ NỘI..........................................................................................................36
CHƯƠNG VI: KẾT LUẬN...................................................................................................................37
2
CHƯƠNG I: TỔNG QUAN
1.1 Khái niệm điều khiển tư động
1.1.1 Khái niệm
Điều khiển là quá trình thu thập thông tin, xử lý thông tin và tác động lên
hệ thống để đáp ứng của hệ thống “gần” với mục đích định trước. Điều khiển
tự động là quá trình điều khiển không có sự tác động của con người.
Tại sao cần phải điều khiển tự động
- Đáp ứng của hệ thống không thỏa mãn yêu cầu
- Tăng độ chính xác
- Tăng hiệu quả kinh tế
- Muốn hệ thống điều khiển có chất lượng cao thì bắt buộc phải có phản hồi thông
- Các sơ đồ điều khiển dựa trên nguyên tác phản hồi thông tin
- Muốn quá trình điều khiển có chất lượng thì sự đa dạng của bộ điều khiển phải
tương xứng với sự đa dạng của đối tượng. Tính đa dạng cảu bộ điều khiển thể hiện
ở khả năng thu thập thông tin, lưu trữ thông tin, truyền tin, phân tích, chọn quyết
định
- Ý nghĩa: Cần thiết kế bộ điều khiển phù hợp với đối tượng
- Ví dụ: Hãy so sánh yêu cầu chất lượng điều khiển và bộ điều khiển sử dụng trong
hệ thống sau:
+ Điều khiển nhiệt độ bàn ủi (chấp nhận sai số lớn) với điều khiển lò sấy (chấp
3
nhận sai số lớn)
+ Điều khiển mực nước trong bồn chứa khách sạn (chỉ cần đảm bảo luôn có nước
trong bồn) với điều khiển mực chất lỏng trong các dây chuyền sản xuất (mực chất
- Một hệ thống luôn tồn tại và hoạt động trong môi trường cụ thể và có tác động
qua lại chặc chẽ với môi trường đó. Nguyên tác bổ sung ngoài thừa nhận có một
đối tượngchưa biết (hộp đen) tác độn vào hệ thống và ta phải điều khiển cả hệ
thống vào hộp đen
- Ý nghĩa: Khi thiết kế hệ thống tự động, muốn hệ thống có chất lượng cao thì
không thể bỏ qua nhiễu
Vì nguyên tác 3 luôn coi thông tin chưa đầy đủ phải đề phòng các bất trắc xảy ra
và không được dùng toàn bộ lực lượng trong điều kiện bình thường, nhưng cần để
đảm bảo cho hệ thống vận hành an toàn
Một hệ thống điều khiển phức tạp cần xây dựng nhiều lớp điều khiển bổ sung cho
trung tâm. Cấu trúc phân cấp thường sử dụng là cấu trúc hình cây
- Đa số hệ thống điều khiển trong dây chuyền sản xuất hiện nay có thể chia ra làm
3 cấp
+ Cấp thực thi: Điều khiển thiết bị, đọc tín hiệu từ cảm biến
4
Hình 1 Các phần tử của hê thống điều khiển
- Hệ thống liên tục: Hệ thống liên tục được mô tả bằng phương trình vi phân
- Hệ thống rời rạc: Hệ thống rời rạc được mô tả bằng phương trình sai phân
- Hệ thống bất biến theo thời gian: Hệ số của phương trình vi phân/sai phân
- Hệ thống biến đổi theo thời gian: Hệ số của phương trình vi phân/sai phân
- Hệ thống một ngõ vào – một ngõ ra (Hệ SISO): (Single Input-Single
Output)
- Hệ thống nhiều ngõ vào – nhiều ngõ ra (Hệ MIMO): (Multi Input-Multi
Output)
5
Đa số các hệ thống trong thực tế đề là hệ phi tuyến biến đổi theo thời gian, nhiều
- Mục tiêu điều khiển thường gặp nhất là sai số giữ tín hiệu ra và tín hiệu vào
chuẩn càng nhỏ càng tốt. Tùy theo dạng tín hiệu vào mà ta có các loại điều
khiển sau:
➢ Điều khiển ổn định hóa: nếu tín hiệu chuẩn r(t) = const, ta gọi là điều khiển
ổn định hóa
➢ Điều khiển theo chương trình: Tín hiện vào r(t) là hàm thay đổi theo thời
➢ Điều khiển theo dõi: Tín hiệu vào r(t) là hàm không biết trước theo thời gian
Đây là bước đầu tiên của quá trình thiết kế nhằm đưa ra hướng giải quyết vấn đề:
- Tìm hiểu và đánh giá các thiết bị trên thị trường để thực hiện phương án:
động cơ, vi điều khiển….
Với các phương án điện đã chọn, tiến hành lựa chọn thông số và sử dụng các
thiết bị, kết hợp các thiết bị thành một khối hoàn chỉnh. Công việc bao gồm:
6
- Lựa chọn thông số vi điều khiển, các mô đun công suất và cảm biến.
- Sử dụng được các cảm biến của robot, thiết kế bộ điều khiển sử dụng hồi tiếp
vận tốc để điều khiển động cơ.
Tiến hành thiết kế các giải thuật điều khiển cho robot với các công việc sau:
- Thiết kế giải thuật tìm đường cho một hệ thống kho hàng cụ thể.
- Thiết kế giải thuật điều khiển robot tự hành để đáp ứng các yêu cầu.
7
CHƯƠNG II: ĐỘNG CƠ ĐIỆN 1 CHIỀU VÀ PHƯƠNG PHÁP ĐIỀU KHIỂN
TỐC ĐỘ
2.1 Đặc tính của động cơ điên 1 chiều
2.1.1 Mô hình toán học động cơ DC sử dụng nam châm vĩnh cửu
Trong
hình 2.1, J là momen quán tính của roto động cơ, B là hệ số tải, ωm là tốc độ động
cơ(rpm), và Em, Im là điện áp và dòng điện nguồn cấp cho động cơ.
Tm =K.Im (2.1)
Lại có Em= Im.Ro (2.2) với Ro là điện trở phần ứng roto.
dωm KEm
Thay (2.1),(2.2),(2.3)=> J¿ dt +Bωm = Ro (2.4)
Phương trình (2.5) biểu thị mô hình hàm truyền của động cơ DC.
8
ωm(s)
Đăt G(s) = Em( s)
Và thực hiện phép biến đổi Laplace ngược cả 2 vế phương trình (2.5) ta có :
Như vây từ phương trình (2.5), để xác định được đáp ứng của tốc độ động cơ
dưới dạng mô hình hàm truyển đạt hoặc dạng hàm thèo thời gian, ta cần xác định
các thông số của động cơ như K (hệ số khuyếch đại tĩnh động cơ ),B, J và Ro .Từ
đó ta xác định được hệ số khuyếch đại và hằng số thời gian của mô hình đông cơ.
Vì lý do thời gian có hạn, nên phương pháp nhận dạng trực tuyến này không
được đề cập ở đây.
Động cơ DC dùng nam châm vĩnh cửu ta coi là có từ thông không đổi. Phương
trình (2.4) biểu diễn quan hệ giữa tốc độ động cơ với điện áp đặt 2 đầu cuộn dây
phần ứng. Mặt khác, tác động về mặt cơ học của động cơ là tương đối nhanh. Do
đó ta sử dụng biên pháp thay đổi điện áp phần ứng để thay đổi tốc độ động cơ DC,
cụ thể là sử dụng phương pháp điều khiển chế độ rộng xung (PWM).
9
Hình 2.2 Nguyên lý điều chế độ rộng xung PWM
Duty Cycle
Ta thấy giá trị điện áp trên tải phụ thuộc vào tỉ số γ = period , do đó ứng với mỗi
tần số xung, ta có thể điều chỉnh Duty cycle đề điều chỉnh điện áp.
Nếu ta lấy Duty Cycle có giá trị từ 0-255 thì dải tần số của xung PWM xuất ra
khoảng 15Hz -4kHz.
Khi lựa chọn tần số xung PWM, ta cần lựa chọn sao cho đáp ứng cơ học của
động cơ đủ mịn đề không có cảm giác bị vấp khi thay đổi điện áp.
10
CHƯƠNG III: BỘ ĐIỀU KHIỂN PID
3.1 Bô điều khiển PID
Có thể nói trong lĩnh vực điều khiển, bộ điều khiển PID được xem như một giải
pháp đa năng cho các ứng dụng điều khiển tương tự hay kĩ thuật số. Hơn 90% các
bô điều khiển trong công nghiệp được sử dụng là bộ điều khiển PID. Nếu được
thiết kế tốt bộ điều khiển PID có khả năng điều khiển hệ thống đáp ứng tốt các tiêu
chí chất lượng như đáp ứng nhanh, thời gian quá độ ngắn, độ quá điều chỉnh thấp,
triệt tiêu được sai lệch tĩnh.
Trong đó u là tín hiệu điều khiển e là sai lệch điều khiển (e=ysp-y).
Tín hiệu điều khiển tổng có ba thành phần : tỉ lệ, tích phân và vi phân.
11
Các tham số bộ điều khiển Kp,Ki,KD
u(t)=Kp.e(t)
Tác động vào thành phần tích phân là tín hiệu điều khiển tỉ lệ tuyến tính với
sai lệch điều khiển. Ban đầu, khi sai lệch lớn thì tín hiệu điều khiển lớn. Sai lệch
giảm dần thì tín hiệu điều khiển giảm dần .Khi sai lệch e(t)=0thì u(t)=0. Một vấn
đề khi sai lệch đổi dấu thì tín hiệu điều khiển cũng đổi dấu.
Tuy nhiên khi hệ số Kp càng lớn thì thay đổi của tín hiệu điều khiển càng
mạnh dẫn đến dao động lớn, đồng thời làm hệ nhạy cản hơn với nhiễu đo. Hơn
nữa, đối với đối tượng không có đăc tính tích phân thì sử dụng bộ P vẫn tồn tại sai
lệch tĩnh.
u(t) = KI .∫ e ( τ ) dτ
0
Với thành phần tích phân, khi tồn tại một sai lệch điều khiển dương, luôn làm tăng
tín hiệu điều khiển, và khi sai lệch là âm thì luôn làm giảm tín hiệu điều khiển, bất
kể sai lệch đó nhỏ hay lớn.Do đó ở trạng thái thiết lập, sai lệch bị triệt tiêu e(t)=0.
Đây cũng là ưu điểm của thành phần tích phân.
Nhược điểm của thành phần tích phân là do phải đợi thành phần e(t) =0 nên đặc
tính tác động của bộ điều khiển sẽ chậm hơn . Ngoài ra thành phần tích phân đôi
khi còn làm xấu đi đặc tính cơ học của hệ thống, thậm chí làm mất ổn định.
12
Thành phần vi phân (D)
u(t)=de(t)/dt
Mục đích của thành phần vi phân là cải thiện sự ổn định của hệ thống kín. Do
động học của quá trình, nên tồn tại một khoảng thời gian trễ làm bộ điều khiển
chậm so với sự thay đổi lệch e(t) và đầu ra y(t) của quá trình và đưa thành phần
thích hợp dựa trên chiều hướng và tốc độ thay đổi của sai lệch e(t), làm tang tốc độ
phản ứng của hệ.
Một ưu điểm nữa là thành phần vi phân giúp ổn định một số quá trình mà bình
thường không được ổn định được với các bộ PI hay P.
Nhược điểm của PI là rất nhạy cảm với nhiễu đo hay các giá trị đặt do tính đáp
ứng nhanh nêu ở trên.
13
CHƯƠNG IV LỰA CHỌN PHƯƠNG ÁN THIẾT KẾ
4.1 Lựa chọn động cơ
Robot tự hành di động nên thông thường sử dụng động cơ dùng dòng điện
DC. Một số loại động cơ dùng dòng điện DC như: động cơ bước, động cơ DC,
động cơ DC servo. Robot tự hành cần điều khiển vận tốc nên động cơ DC phải có
hồi tiếp vận tốc (mặc dù một số động cơ DC điều khiển được chính xác vận tốc,
không cần hồi tiếp nhưng giá sẽ rất cao). Do đó chọn động cơ bước hoặc động cơ
DC servo là phương án khả thi. Sau đây là những phân tích về ưu, nhược điểm của
hai loại động cơ này, từ đó có thể xác định được loại động cơ cần dùng để phù hợp
với yêu cầu đặt ra.
• Động cơ bước
Động cơ bước thông thường là loại động cơ điều khiển vòng hở, biến đổi các
xung điện rời rạc kế tiếp nhau thành chuyển động quay của rotor. Giá trị góc quay
phụ thuộc và số xung điện cấp vào động cơ. Mỗi vòng quay có số bước cố định,
thay đổi tốc độ quay bằng cách thay đổi tốc độ tín hiệu điện cấp cho động cơ.
+ Ưu điểm:
14
- Điều khiển chính xác, không có vọt lố và có momen giữ tại một vị trí.
+ Nhược điểm:
• Động cơ DC servo
Động cơ DC servo là động cơ DC có thêm bộ phận đo thông số đầu ra của
động cơ thông thường là góc quay, vận tốc quay. Từ các sai số góc quay, vận tốc
quay thì bộ điều khiển sẽ tăng hay giảm dòng cấp cho động cơ để đạt góc quay,
vận tốc mong muốn.
+ Ưu điểm:
- Có tín hiệu hồi tiếp nên có thể điều khiển được góc quay và vận tốc.
+ Nhược điểm:
15
- Khi dừng lại, tùy theo chất lượng của bộ điều khiển ảnh hưởng đến đáp ứng
nên có thể gây dao động, rung lắc.
Dưới đây là bảng tổng kết các đặc điểm của hai loại động cơ đã được phân
tích.
Đ ộng cơ bư ớc Có Th ấp Không
Dựa vào phân tích và điều kiện hoạt động của robot, động cơ DC servo sẽ là
phương án được lựa chọn để thiết kế robot.
Tuy nhiên, để phù hợp với mô hình và điều kiện thực tế ở đây chúng ta chọn
động cơ DC 5-12V.
Từ chương tổng quan chúng ta có thể thấy được các loại đường dẫn cố định
phù hợp cho đề tài này. Sau đây sẽ phân tích đặc điểm các loại đường dẫn thông
dụng là: màu sắc, từ trường, dây cảm ứng điện.
-Đường dẫn màu: Dán đường dẫn có màu sắc tương phản với mặt sàn, robot
sử dụng các loại cảm biến quang học để nhận biết. Đường dẫn màu có các ưu
điểm là việc lắp đặt, thay đổi đường dẫn màu không ảnh hưởng đến mặt sàn.
Tuy nhiên, các loại cảm biến quang dễ bị nhiễu bởi ánh sáng đèn điện, mặt
trời. Bề mặt đường dẫn dễ bám bẩn, mài mòn gây ra sai lệch khi robot di
chuyển.
16
Hình 4.3: Đường dẫn màu đen trên nền trắng.
-Đường dẫn từ trường: Có 2 cách lắp đặt đường dẫn từ trường là dán trực tiếp
lên mặt sàn hoặc thi công âm sàn. Đường dẫn từ trường âm sàn cần máy móc
để lắp đặt. Cách dán băng từ lên mặt sàn có ưu điểm là dễ lắp đặt, điều chỉnh
đường dẫn. Tuy nhiên, tuổi thọ đường dẫn giảm khi có nhiều phương tiện
hoạt động với tải trọng nặng. Ưu điểm của đường dẫn từ là không ảnh hưởng
bởi ánh sáng, bụi bẩn. Nhược điểm của đường dẫn là nhiễu do từ trường.
-Đường dẫn cảm ứng điện: Sử dụng dòng điện thay đổi để tạo ra từ trường
quanh dây dẫn. Đường đẫn được chôn dưới bề mặt sàn, robot được lắp anten
17
gồm các cuộn dây quấn để nhận biết đường đi. Ưu điểm của loại này là nhiều
đường dẫn có thể phân biệt bằng tần số khác nhau. Nhược điểm của đường
dẫn là: phải có bộ nguồn điều khiển dòng điện qua dây dẫn, khi lắp đặt cần
cắt xuống bề mặt sàn dẫn đến chi phí cao. Ngoài ra, những thiết bị dẫn đường
này rất hiếm trên thị trường trong nước.
Từ những phân tích trên và điều kiện thiết kế hệ thống robot cũng như giá
thành, đường dẫn màu được chọn cho đề tài này.
18
- Sử dụng PLC: Bộ điều khiển PLC được sử dụng nhiều trong công nghiệp
bởi độ bền và tính tin cậy cao. Các thành phần trong hệ thống PLC đã được chuẩn
hóa và dễ dàng tìm mua trên thị trường. Tuy vậy, hệ thống điều khiển dùng PLC có
kích thước khá lớn và giá thành cao.
- Sử dụng vi điều khiển: Phương án này rất phổ biến cho cách dạng robot di
chuyển. Ưu điểm là kích thước nhỏ gọn, giá thành rẻ. Tuy nhiên chỉ sử dụng được
cho những hệ thống vừa và nhỏ, thời gian hoạt động không dài.
19
Khi hoạt động thực tế cần sử dụng bộ điều khiển có độ tin cậy cao là PLC.
Tuy nhiên, phương án lựa chọn là vi điều khiển giúp tiết kiệm chi phí đối với
những mô hình thử nghiệm.
20
CHƯƠNG V :THIẾT KẾ
5.1 Sơ đồ khối
NGUỒN 12V
Mô hình robot gồm bộ điều khiển trung tâm là vi điều khiển. Động cơ được
điều khiển qua driver công suất bằng xung PWM cấp từ vi điều khiển. Cảm biến
hồng ngoại đo giá trị độ lệch của xe và hồi tiếp về vi điều khiển. Tín hiệu trả về
của cảm biến hồng ngoại là tín hiệu digital. Nút nhấn để đưa ra lệnh điều khiển
21
đến vi điều khiển.Vi điều khiển nhận điều chỉnh xung đến driver hiển thị qua
LCD.
5.2 Sơ đồ nguyên lý
Nhiệm vụ của bộ điều khiển là đưa sai lệch đường đi về không. Khi di
chuyển, robot cần tính toán vận tốc phù hợp cho cả hai động cơ. Để đơn giản hóa
bộ điều khiển, sử dụng chênh lệch vận tốc của hai động cơ là đầu ra của bộ điều
khiển.
22
Bắt đầu
Kết thúc
23
5.4 Sơ đồ đường đi trong nhà máy
Kho 2
Kho 3
Kho1
Kho 4
Bắt đầu
-Robot đi từ điểm bắt đầu đến kho1 dừng lại đến khi ấn nút tiếp tục chạy đến kho2
thì dừng cứ như vậy cho đến kho 4, xe quay về vị trí ban đầu để reset quá trình và
sạc pin.
24
5.5 Chương trình điều khiển
#include <PID_v1.h>
uint8_t speed_robot=200;
int sensor;
int click_button=0;
int penta_sensor=0;
int tri_left=0;
int tri_right=0;
25
void setup()
pinMode(EnA,OUTPUT);
pinMode(EnB,OUTPUT);
pinMode(Pin_ss1,INPUT);
pinMode(Pin_ss2,INPUT);
pinMode(Pin_ss3,INPUT);
pinMode(Pin_ss4,INPUT);
pinMode(Pin_ss5,INPUT);
pinMode(InA,OUTPUT);
pinMode(InB,OUTPUT);
pinMode(InC,OUTPUT);
pinMode(InD,OUTPUT);
pinMode(button,INPUT_PULLUP);
Input =0;
myPID.SetSampleTime(1);
myPID.SetMode(AUTOMATIC);
myPID.SetOutputLimits(-speed_robot,speed_robot);
void loop() {
click_button=0;penta_sensor=0;tri_left=0;tri_right=0;
if (digitalRead(button)==0){ click_button=click_button+1;}
if (sensor=5){tri_right=tri_right+1;}
26
if
( (digitalRead(Pin_ss1)==0)&&(digitalRead(Pin_ss2)==0)&&(digitalRead(Pin_ss
3)==0)&&(digitalRead(Pin_ss4)==0)&&(digitalRead(Pin_ss5)==0))
{penta_sensor=penta_sensor + 1;delay(1000);}
if (sensor==-5){ tri_left=tri_left+1;}
if
((digitalRead(Pin_ss1)==0)&&(digitalRead(Pin_ss2)==0)&&(digitalRead(Pin_ss3
)==0)&&(digitalRead(Pin_ss4)==0)&&(digitalRead(Pin_ss5)==0)){ go_stop();}
if ((click_button==1)&&(penta_sensor==1)&&(tri_left==0)&&tri_right==0)
{go_up();follow_the_line();}
if ((click_button==1)&&(penta_sensor==2)&&(tri_left==0)&&tri_right==0)
{go_left();follow_the_line();}
if ((click_button==1)&&(penta_sensor==2)&&(tri_left==0)&&tri_right==1)
{go_up();follow_the_line();}
if ((click_button==1)&&(penta_sensor==3)&&(tri_left==0)&&tri_right==1)
{go_stop();}
if ((click_button==2)&&(penta_sensor==3)&&(tri_left==0)&&tri_right==1)
{go_turn();follow_the_line();}
if ((click_button==2)&&(penta_sensor==3)&&(tri_left==1)&&tri_right==1)
{go_left();follow_the_line();}
if ((click_button==2)&&(penta_sensor==3)&&(tri_left==1)&&tri_right==2)
{go_up();follow_the_line();}
if ((click_button==2)&&(penta_sensor==4)&&(tri_left==1)&&tri_right==2)
{go_stop();}
if ((click_button==3)&&(penta_sensor==4)&&(tri_left==1)&&tri_right==2)
{go_turn();follow_the_line();}
27
if ((click_button==3)&&(penta_sensor==4)&&(tri_left==2)&&tri_right==2)
{go_left();follow_the_line();}
if ((click_button==3)&&(penta_sensor==4)&&(tri_left==2)&&tri_right==3)
{go_up();follow_the_line();}
if ((click_button==3)&&(penta_sensor==5)&&(tri_left==2)&&tri_right==3)
{go_stop();}
if ((click_button==4)&&(penta_sensor==5)&&(tri_left==2)&&tri_right==3)
{go_turn();follow_the_line();}
if ((click_button==4)&&(penta_sensor==5)&&(tri_left==3)&&tri_right==3)
{go_left();follow_the_line();}
if ((click_button==4)&&(penta_sensor==5)&&(tri_left==3)&&tri_right==4)
{go_up();follow_the_line();}
if ((click_button==4)&&(penta_sensor==6)&&(tri_left==3)&&tri_right==4)
{go_stop();}
if ((click_button==5)&&(penta_sensor==6)&&(tri_left==3)&&tri_right==4)
{go_turn();follow_the_line();}
if ((click_button==5)&&(penta_sensor==6)&&(tri_left==4)&&tri_right==4)
{go_left();follow_the_line();}
if ((click_button==5)&&(penta_sensor==6)&&(tri_left==5)&&tri_right==4)
{go_left();follow_the_line();}
if ((click_button==5)&&(penta_sensor==7)&&(tri_left==5)&&tri_right==4)
{go_stop();}
if ((click_button==5)&&(penta_sensor==7)&&(tri_left==5)&&(tri_right==4))
{go_turn();}
go_back();
28
if ((click_button==5)&&(penta_sensor==8)&&(tri_left==5)&&(tri_right==4))
{go_stop();click_button=0;penta_sensor=0;tri_left=0;tri_right=0;}
int speed_zero;
speed_zero = speed_robot/2;
if(duty_value>1)
speed_b=-speed_zero;
speed_a=duty_value;
analogWrite(EnB,speed_b+speed_zero);
analogWrite(EnA,speed_a+speed_zero);
digitalWrite(InA,1);
digitalWrite(InB,0);
digitalWrite(InC,1);
digitalWrite(InD,0);
29
void read_sensor()
if((digitalRead(Pin_ss1)==1)&&(digitalRead(Pin_ss2)==1)&&(digitalRead(Pin_ss
3)==1)&&(digitalRead(Pin_ss4)==1)&&(digitalRead(Pin_ss5)==0)) sensor=4;
else
if((digitalRead(Pin_ss1)==1)&&(digitalRead(Pin_ss2)==1)&&(digitalRead(Pin_ss
3)==0)&&(digitalRead(Pin_ss4)==0)&&(digitalRead(Pin_ss5)==0)) sensor=5;
else
if((digitalRead(Pin_ss1)==1)&&(digitalRead(Pin_ss2)==1)&&(digitalRead(Pin_ss
3)==1)&&(digitalRead(Pin_ss4)==0)&&(digitalRead(Pin_ss5)==0)) sensor=3;
else
if((digitalRead(Pin_ss1)==1)&&(digitalRead(Pin_ss2)==1)&&(digitalRead(Pin_ss
3)==1)&&(digitalRead(Pin_ss4)==0)&&(digitalRead(Pin_ss5)==1)) sensor=2;
else
if((digitalRead(Pin_ss1)==1)&&(digitalRead(Pin_ss2)==1)&&(digitalRead(Pin_ss
3)==0)&&(digitalRead(Pin_ss4)==0)&&(digitalRead(Pin_ss5)==1)) sensor=1;
else
if((digitalRead(Pin_ss1)==1)&&(digitalRead(Pin_ss2)==1)&&(digitalRead(Pin_ss
3)==0)&&(digitalRead(Pin_ss4)==1)&&(digitalRead(Pin_ss5)==1)) sensor=0; //
vào line giữa
else
if((digitalRead(Pin_ss1)==1)&&(digitalRead(Pin_ss2)==0)&&(digitalRead(Pin_ss
3)==0)&&(digitalRead(Pin_ss4)==1)&&(digitalRead(Pin_ss5)==1)) sensor=-1;
else
if((digitalRead(Pin_ss1)==1)&&(digitalRead(Pin_ss2)==0)&&(digitalRead(Pin_ss
3)==1)&&(digitalRead(Pin_ss4)==1)&&(digitalRead(Pin_ss5)==1)) sensor=-2;
30
else
if((digitalRead(Pin_ss1)==0)&&(digitalRead(Pin_ss2)==0)&&(digitalRead(Pin_ss
3)==1)&&(digitalRead(Pin_ss4)==1)&&(digitalRead(Pin_ss5)==1)) sensor=-3;
else
if((digitalRead(Pin_ss1)==0)&&(digitalRead(Pin_ss2)==1)&&(digitalRead(Pin_ss
3)==1)&&(digitalRead(Pin_ss4)==1)&&(digitalRead(Pin_ss5)==1)) sensor=-4;
else
if((digitalRead(Pin_ss1)==0)&&(digitalRead(Pin_ss2)==0)&&(digitalRead(Pin_ss
3)==0)&&(digitalRead(Pin_ss4)==1)&&(digitalRead(Pin_ss5)==1)) sensor=-5;
void follow_the_line() {
Setpoint=0;
read_sensor();
Input = sensor;
myPID.Compute();
motorControl(Output);
void go_back(){
analogWrite(InA,0);
analogWrite(InB,150);
analogWrite(InC,0);
analogWrite(InD,150);
void go_up(){
digitalWrite(InA,1);
31
digitalWrite(InB,0);
digitalWrite(InC,1);
digitalWrite(InD,0);
void go_left(){
analogWrite(InA,0);
analogWrite(InB,150);
analogWrite(InC,75);
analogWrite(InD,0);
void go_right(){
analogWrite(InA,75);
analogWrite(InB,0);
analogWrite(InC,0);
analogWrite(InD,150);
void go_turn(){
digitalWrite(InA,0);
digitalWrite(InB,1);
digitalWrite(InC,1);
digitalWrite(InD,0);
analogWrite(EnA,50);
32
analogWrite(EnB,150);delay(2000);
read_sensor();
if (sensor == 0){analogWrite(EnA,0);analogWrite(EnB,0);
void go_stop(){
digitalWrite(InA,0);
digitalWrite(InB,0);
digitalWrite(InC,0);
digitalWrite(InD,0);
33
CHƯƠNG V: THI CÔNG
5.1 Danh mục vật tư
ốc và vít 10 M36
34
3.2 Địa chỉ mua sắm vật tư
35
CHƯƠNG VI: KẾT LUẬN
Qua bài ASSIGNMENT em đã tìm hiểu rõ hơn về điều khiển tự động. Cụ thể, là xe
robot trong nhà máy. Tuy nhiên, em vẫn còn nhiều thiếu sót trong bài vì nhiều lí do
như :
36