ĐẶNG TRUNG DŨNG ỨNG DỤNG VI MẠCH ĐIỆN TỬ ARDUINO MEGA TRONG CÀI ĐẶT THUẬT TOÁN ĐIỀU KHIỂN ỔN ĐỊNH VỊ TRÍ CON LẮC NGƯỢC QUAY LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ THÁI NGUYÊN - 2014... ĐẠI
Trang 1ĐẶNG TRUNG DŨNG
ỨNG DỤNG VI MẠCH ĐIỆN TỬ ARDUINO MEGA TRONG CÀI ĐẶT THUẬT TOÁN ĐIỀU KHIỂN
ỔN ĐỊNH VỊ TRÍ CON LẮC NGƯỢC QUAY
LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ
THÁI NGUYÊN - 2014
Trang 2ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
ĐẶNG TRUNG DŨNG
ỨNG DỤNG VI MẠCH ĐIỆN TỬ ARDUINO MEGA TRONG CÀI ĐẶT THUẬT TOÁN ĐIỀU KHIỂN
ỔN ĐỊNH VỊ TRÍ CON LẮC NGƯỢC QUAY
Chuyên ngành: KỸ THUẬT ĐIỆN TỬ
Mã số: 60.52.02.03
LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ
PHÒNG QUẢN LÝ ĐÀO
TẠO SAU ĐẠI HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS Nguyễn Văn Chí
KHOA ĐIỆN TỬ TRƯỞNG KHOA
THÁI NGUYÊN - 2014
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi, các số liệu, kết quả nêu trong luận văn này là trung thực và là công trình nghiên cứu của riêng tôi, luận văn này không giống hoàn toàn bất cứ luận văn hoặc các công trình đã có trước đó
Thái Nguyên, ngày tháng năm 2014
Tác giả luận văn
Đặng Trung Dũng
Trang 4LỜI CẢM ƠN
Trong suốt quá trình học tập và tốt nghiệp, tôi đã nhận được sự giúp
đỡ tận tình của các thầy cô trong bộ môn Đo lường điều khiển - Khoa Điện
tử - Trường Đại học Kỹ thuật công nghiệp - Đại học Thái Nguyên Tôi xin bày tỏ lòng biết ơn đối với các thầy cô giáo và Phòng quản lý đào tạo sau đại học vì sự giúp đỡ tận tình này Tôi đặc biệt gửi lời cảm ơn đến thầy giáo
TS Nguyễn Văn Chí đã tận tình giúp đỡ, hướng dẫn tôi trong thời gian
thực hiện đề tài Cảm ơn sự giúp đỡ của gia đình, bạn bè và các đồng nghiệp trong thời gian qua
Mặc dù đã cố gắng, song do điều kiện thời gian và kinh nghiệm còn nhiều hạn chế nên không thể tránh khỏi thiếu sót Vì vậy, tôi rất mong nhận được sự đóng góp ý kiến của các thầy cô cũng như của các bạn bè, đồng nghiệp
Tôi xin chân thành cảm ơn!
Thái Nguyên, ngày tháng năm 2014
Tác giả luận văn
Đặng Trung Dũng
Trang 5MỤC LỤC
LỜI CAM ĐOAN ii
LỜI CẢM ƠN iiii
MỤC LỤC ivv
BẢNG THUẬT NGỮ VIẾT TẮT vii
DANH MỤC HÌNH VẼ vii
DANH MỤC BẢNG BIỂU ixx MỞ ĐẦU 1
Chương 1 GIỚI THIỆU VỀ VI MẠCH ARDUINO MEGA 2560 3
1.1 Giới thiệu về Arduino 3
1.1.1 Giới thiệu chung 3
1.1.2 Giới thiệu về Arduino Mega 2560 4
1.1.3 Các thông số cơ bản của Arduino 2560 [2] 4
1.2 Cài đặt Arduino Mega 7
1.3 Thiết lập giao tiếp giữa Matlab/Simulink và Arduino [4], [5] 10
1.4 Kết luận chương 1 13
Chương 2 THUẬT TOÁN ĐIỀU KHIỂN CON LẮC NGƯỢC QUAY KRI PP-300 14
2.1 Hệ thống con lắc ngược quay và những ứng dụng đã được phát triển 14
2.2 Giới thiệu về con lắc ngược quay Kri PP-300 16
2.2.1 Tổng quan hệ thống con lắc ngược quay Kri PP-300 16
2.2.2 Những bài toán sử dụng hệ thống con lắc ngược quay Kri PP-300 17
2.3 Hệ thống con lắc ngược quay Kri PP-300 có tại Bộ môn Đo lường điều khiển…20 2.3.1 Phần mềm hệ thống (System sofwave) 21
2.3.2 Hệ thống máy tính (Personal Computer System) 21
2.3.3 Bo mạch điều khiển UC96 (Universal Controller UC96 Microcontroller Board) 22
2.3.4 Bo mạch công suất điều khiển động cơ (Motor Driver Board) 22
2.3.5 Bộ nguồn (Power Supply) 23
Trang 62.3.6 Bộ con lắc ngược quay Kri PP-300 (Inverted Pendulum Apparatus Kri
PP-300) 24
2.4 Thuật toán điều khiển hệ thống con lắc ngược quay Kri PP-300 28
2.4.1 Mô hình toán hệ thống 28
2.4.2 Xác định tham số của mô hình 31
2.4.3 Thiết kế bộ điều khiển 34
2.5 Kết luận chương 2 38
Chương 3 ỨNG DỤNG VI MẠCH ĐIỆN TỬ ARDUINO MEGA TRONG CÀI ĐẶT THUẬT TOÁN ĐIỀU KHIỂN ỔN ĐỊNH VỊ TRÍ CON LẮC NGƯỢC QUAY KRI PP - 300 39
3.1 Sơ đồ khối hệ thống con lắc ngược quay Kri PP-300 39
3.2 Nhiệm vụ của các khối 40
3.3 Hệ thống điều khiển trên Matlab/Simulink 42
3.3.1 Khối con lắc ngược quay - Rotary Inverted Pendulum: 43
3.3.2 Bộ điều khiển cân bằng - Balance controller: nhằm ổn định con lắc ở vị trí cân bằng, được thiết kế trên Matlab/Simulink như Hình 3.8: 44
3.3.3 Bộ điều khiển Swing up - Swing up controller 44
3.3.4 Khóa chuyển đổi bộ điều khiển - Switch 45
3.4 Chương trình cho Arduino mega 2560 46
3.5 Kết quả điều khiển 53
3.5.1 Kết quả trên bộ điều khiển có 3 biến trạng thái 53
3.5.2 Kết quả trên bộ điều khiển có 4 biến trạng thái 55
3.5.3 Video kết quả thực nghiệm 57
3.6 Kết luận chương 3 57
KẾT LUẬN VÀ ĐÁNH GIÁ 54
1.1 Kết luận 58
1.2 Đóng góp của luận văn 59
1.3 Hướng phát triển của đề tài 59
TÀI LIỆU THAM KHẢO 60
Trang 7BẢNG THUẬT NGỮ VIẾT TẮT
Từ
ADC Biến đổi tương tự - số Analog Digital Converter
COM Cổng nối tiếp
PWM Điều chế độ rộng xung Pulse Width Modulation
PID Bộ điều khiển vi tích phân tỉ lệ Proportional Integral Derivative UAV Máy bay không người lái Unmanned aerial vehicle
USB Chuẩn kết nối nối tiếp Universal Serial Bus
VDC Điện áp một chiều Volts Direct Current
Trang 8DANH MỤC HÌNH VẼ
Hình 1.1 Đầu vào ra số trên Arduino Mega 2560 5
Hình 1.2 Đầu ra PWM trên Arduino Mega 2560 6
Hình 1.3 Cổng Communication trên Arduino Mega 2560 6
Hình 1.4 Đầu vào tương tự trên Arduino Mega 2560 7
Hình 1.5 Vi mạch Arduino Mega 2560 8
Hình 1.6 Cáp USB chuẩn A-B 8
Hình 1.7 Download phần mềm Arduino Sofwave 9
Hình 1.8 Download phần mềm Arduino Sofwave 9
Hình 1.9 Cài đặt phần mềm Arduino Sofwave 10
Hình 1.10 Matlab/Simulink R2012a 10
Hình 1.11 Cài đặt Target installer 11
Hình 1.12 Cài đặt Target installer 11
Hình 1.13.Cài đặt Target installer 12
Hình 1.14 Cài đặt Arduino IO Library 12
Hình 2.1 Cầu trục 14
Hình 2.2 Xe hai bánh tự cân bằng 15
Hình 2.3 Tên lửa khi rời bệ phóng 15
Hình 2.4 Mô hình con lắc ngược quay Kri PP-300 16
Hình 2.5 Mô phỏng hệ thống cẩu tháp 17
Hình 2.6 Cân bằng con lắc 18
Hình 2.7 Swing up và cân bằng con lắc 18
Hình 2.8 Swing up và cân bằng con lắc ở vị trí bất kỳ cho trước 19
Hình 2.9 Tổng quan về Kri PP-300 20
Hình 2.10 Phần mền hệ thống 21
Hình 2.11 Hệ thống máy tính 21
Hình 2.12 Bo mạch điều khiển UC96 22
Hình 2.13 Mạch công suất 22
Hình 2.14 Bộ nguồn 23
Trang 9Hình 2.15 Bộ con lắc ngược 24
Hình 2.16 Cảm biến góc quay 24
Hình 2.17 Trống quay 25
Hình 2.18 Encoder 25
Hình 2.19 Vị trí Encoder 27
Hình 2.20 Bộ nguồn 27
Hình 2.21 Arduino mega 2560 28
Hình 2.22 Mô hình toán học con lắc ngược quay 28
Hình 2.23 Cánh tay con lắc 31
Hình 2.24 Mô tả khối lượng cánh tay và quả lắc 32
Hình 2.25 Sơ đồ khối bộ điều khiển hệ thống vòng hở 36
Hình 2.26 Sơ đồ khối bộ điều khiển hệ thống vòng kín 36
Hình 2.27 Bộ điều khiển sử dụng phương pháp gán điểm cực 37
Hình 3.1 Sơ đồ khối kết nối Arduino mega 2560 điều khiển con lắc ngược quay Kri PP-300 39
Hình 3.2 Chân đọc tín hiệu Encoder trên Arduino mega 2560 40
Hình 3.3 Chân xuất ra tín hiệu điều khiển động cơ trên Arduino mega 2560 40
Hình 3.4 Chân đọc tín hiệu góc quay con lắc trên Arduino mega 2560 41
Hình 3.5 Sơ đồ khối điều khiển hệ thống trên Matlab/Simulink 42
Hình 3.6 Mô hình mô phỏng hệ thống con lắc 43
Hình 3.7 Mô hình xử lý tín hiệu Anpha, Anpha_dot, Beta, Beta_dot 43
Hình 3.8 Mô hình bộ điều khiển cân bằng cho con lắc ngược quay 44
Hình 3.9 Mô hình bộ điều khiển Swing up 44
Hình 3.10 Mô hình xử lý Swing up 45
Hình 3.11 Mô hình khóa chuyển đổi bộ điều khiển (Switch) 45
Hình 3.12 Đáp ứng góc của cánh tay và góc của con lắc với 3 biến điều khiển 53
Hình 3.13 Đáp ứng vận tốc của cánh tay và góc của con lắc với 3 biến điều khiển 54 Hình 3.14 Đáp ứng góc của cánh tay và góc của con lắc với 4 biến điều khiển 55 Hình 3.15 Đáp ứng vận tốc của cánh tay và góc của con lắc với 4 biến điều khiển 56
Trang 10DANH MỤC BẢNG BIỂU
Bảng 2.1 Bảng tham số của hệ thống con lắc ngược quay 29
Bảng 2.2 Bảng tham số khối lượng con lắc 31
Bảng 2.3 Bảng khảo sát tham số K u 32
Bảng 2.4 Bảng hệ số K t , K b , R a của động cơ 33
Bảng 2.5 Bảng giá trị hệ số J 0 , C 0 , J 1 , C 1 33
Trang 11lý của rất nhiều thiết bị từ đơn giản đến phức tạp và đặc điểm nổi bật hơn cả của
vi mạch điện tử Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng, và điều làm nên hiện tượng Arduino chính là tích hợp hệ thống điều khiển, mang tính ứng dụng cao, tính chất nguồn mở từ phần cứng tới phần mềm mà có giá thành hợp lý
Khi sử dụng vi mạch điện tử Arduino với những đặc điểm như trên ứng dụng cho bài toán tích hợp điều khiển thực tế cho thấy các ưu điểm:
- Giảm thời gian và chi phí tích hợp phần cứng hệ thống;
- Hoàn toàn có thể sử dụng môi trường Matlab/Simulink để cài đặt các thuật toán, các ứng dụng một cách linh hoạt;
Qua cách tiếp cận vi mạch điện tử Arduino cho thấy phương thức đơn giản để thực hiện các thí nghiệm, thực nghiệm, ứng dụng trong giảng dạy, nghiên cứu;
Hiện nay, Mô hình con lắc ngược quay Kri PP – 300 có tại phòng thí
nghiệm thuộc bộ môn Đo lường - điều khiển là một mô hình đóng kín về phần mềm và phần cứng, không cho phép chỉnh định thay đổi chương trình điều khiển Hơn 10 năm qua mô hình đã không còn chạy được do phần mềm bị hỏng, vi mạch điều khiển hỏng Với những ưu điểm của vi mạch điện tử
Arduino như trên, tác giả đã mạnh dạn lựa chọn đề tài “Ứng dụng vi mạch
điện tử Arduino MEGA trong cài đặt thuật toán điều khiển ổn định vị trí con lắc ngược quay”
2 Mục tiêu của luận văn
Mục tiêu chính của đề tại này là ứng dụng vi mạch điện tử Arduino Mega để cài đặt thuật toán điều khiển ổn định vị trí con lắc ngược quay, qua
đó phát triển thêm phương thức ứng dụng vi mạch điện tử mới trong quá trình điều khiển hệ thống Các mục tiêu cụ thể của đề tài:
- Tìm hiểu về vi mạch điện tử Arduino Mega và ứng dụng nhúng các trình điều khiển trên nó
- T ìm hiểu về c on lắc ngược q uay v à p hương p háp đ iều khiể n cân b ằng nó
- Nghiên cứu kết hợp vi mạch điện tử Arduino Mega cài đặt thuật toán điều khiển ổn định vị trí con lắc ngược quay Kri PP - 300 có tại trung tâm thí nghiệm của Trường Đại học kỹ thuật công nghiệp – Đại học Thái Nguyên
3 Đối tượng và phạm vi nghiên cứu
Trang 12Đối tượng và phạm vi nghiên cứu chính của đề tài là: Ứng dụng vi
mạch điện tử Arduino MEGA 2560 trong cài đặt thuật toán điều khiển ổn định vị trí con lắc ngược quay Kri PP-300
4 Ý nghĩa khoa học và thực tiễn của đề tài
Nhằm nghiên cứu kỹ hơn việc ứng dụng vi mạch điện tử Arduino Mega tạo ra hệ thống có mạch điều khiển với độ chính xác, ổn định cao, góp một phần nhỏ vào việc phát triển, ứng dụng vi mạch điện tử Arduino
Ứng dụng vi mạch Arduino Mega để cài đặt tình điều khiển phục hồi
lại hoạt động của mô hình con lắc ngược quay Kri PP-300 có tại trung tâm
thí nghiệm của Trường, giúp cho thuận tiện hơn trong việc cài đặt và thử nghiệm các thuật toán điều khiển khác nhau phục vụ cho công tác nghiên cứu,
đào tạo của Bộ môn, Khoa và Nhà trường
5 Phương pháp nghiên cứu
Nghiên cứu, tìm hiểu những ứng dụng được phát triển trên vi mạch điện tử Arduino Mega;
Nghiên cứu tìm hiểu có chế hoạt động, thuật toán điều khiển cân bằng con lắc ngược quay thông qua mô hình thực;
Khảo sát, thực nghiệm trên vi mạch điện tử Arduino Mega cài đặt thuật toán điều khiển cân bằng con lắc ngược quay Kri PP-300 thông qua Matlab/Simulink
6 Bố cục của luận văn:
Nội dung chính của luận văn được trình bày trong 04 chương như sau:
Chương 1: Giới thiệu về vi mạch Arduino mega 2560
Chương 2: Thuật toán điều khiển con lắc ngược quay Kri PP-300 Chương 3: Ứng dụng vi mạch điện tử Arduino Mega trong cài đặt
thuật toán điều khiển ổn định vị trí con lắc ngược quay Kri PP-300
Chương 4: Kết luận và đánh giá
Tác giả xin bày tỏ lòng biết ơn chân thành đến các thầy cô giáo, đặc biệt là thầy giáo hướng dẫn TS Nguyễn Văn Chí đã tận tình giúp đỡ để hoàn thành luận văn này
Trong khuôn khổ giới hạn của luận văn cùng khả năng kiến thức và thời gian nghiên cứu còn hạn chế, nên mặc dù đã có nhiều cố gắng song luận văn chắc chắn không tránh khỏi những thiếu sót Tác giả mong nhận được sự đóng góp ý kiến của các thầy giáo, cô giáo để đề tài được hoàn thiện hơn
Xin trân trọng cảm ơn!
Trang 13Chương 1 GIỚI THIỆU VỀ VI MẠCH ARDUINO MEGA 2560
1.1 Giới thiệu về Arduino
1.1.1 Giới thiệu chung
Trong những năm gần đây, cùng với việc phát triển của cộng nghệ
kỹ thuật, đặc biệt là công nghệ vi mạch đạt được nhiều tiến bộ vượt bậc,
đa dạng Vi mạch điện tử Ardiuno là một sản phẩm mới ứng dụng mạnh
mẽ những thành tựu công nghệ đó Arduino thật ra là một bo mạch vi xử
lý được dùng để lập trình tương tác với các thiết bị phần cứng Vi mạch điện tử Arduino được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản đến phức tạp Trong số đó có một vài ứng dụng thực sự chứng tỏ khả năng vượt trội của vi mạch điện tử Arduino do chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp và đặc điểm nổi bật hơn cả của vi mạch điện tử Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng, và điều làm nên hiện tượng Arduino chính là tích hợp hệ thống điều khiển, mang tính ứng dụng cao, tính chất nguồn mở từ phần cứng tới phần mềm, và giá thành hợp lý Hiện nay trên thế giới, những ứng dụng sử dụng vi mạch điện tử Arduino được phát triển mạnh mẽ trong nhiều lĩnh vực từ đơn giản đến phức tạp như: điều khiển Led, điều khiển hệ thống nhà thông minh, sử dụng làm bộ não cho máy in 3D, Robot, và sử dụng cho cả máy bay không người lái UAV, không những thế ngay cả Google cũng muốn hỗ trợ khi cho ra đời bộ kit Arduino Mega ADK dùng để phát triển các ứng dụng trên hệ điều hành Android Tuy nhiên tại Việt Nam vi mạch điện tử Arduino chưa được biết đến nhiều, chưa có nhiều ứng dụng được phát triển trên loại vi mạch này [1]
Trang 141.1.2 Giới thiệu về Arduino Mega 2560
Bo mạch điện tử Arduino Mega 2560 là một Vi mạch điện tử điều khiển dựa trên nền tảng của chíp ATmega 2560, Arduino Mega 2560 tích hợp tất cả các tính năng cần thiết của một vi điều khiển, chỉ cần kết nối vi mạch điện tử này với máy tính thông qua cổng USB, với phần mềm của Arduino được tải về và cài đặt một cách dễ dàng là người sử dụng có thể tiến hành lập trình, cài đặt vô số các tập lệnh để điều khiển các ứng dụng
1.1.3 Các thông số cơ bản của Arduino 2560 [2]
- Nguồn cấp cho Vi mạch Arduino Mega 2560:
Nguồn cho Arduino Mega 2560 được cấp qua cáp kết nối USB hoặc thông qua một cổng kết nối nguồn riêng Vi mạch sẽ tự động lựa chọn 1 trong 2 nguồn cấp phù hợp Chuẩn kết nối cấp nguồn cho Arduino là một giắc cắm loại 2.1mm có chân nguồn dương (+) ở giữa với điện áp đầu vào có dải từ: 7 - 12VDC, nhưng không được vượt quá điện áp giới hạn: 6 - 20VDC Ngoài ra, khi cấp nguồn vào vi mạch điện tử Arduino trên vi mạch sẽ tự ổn áp và đưa ra điện
áp đã được ổn áp: 5VDC và 3.3 VDC
- Bộ nhớ của Vi mạch Arduino Mega 2560
Chíp Vi điều khiển ATmega 2560 có 256 Kb bộ nhớ flash để lưu trữ
mã lệnh điều khiển, trong đó có 8KB được sử dụng để chứa chương trình khởi động Ngoài ra ATmega 2560 còn có thêm 8 KB SRAM và 4 KB EEPROM, trong đó có EEPROM giúp cho vi điều khiển nâng cao khả đọc và ghi các dữ liệu điều khiển một các dễ dàng
Trang 15- Đầu vào, ra của vi mạch điện tử Arduino Mega 2560
+ Đầu vào, ra số (Digital I/O):
Vi mạch Arduino Mega 2560 có 54 chân được sử dụng làm đầu vào ra
số như Hình 1.1, sử dụng các lệnh có cấu trúc: pinMode(); digitalWrite(); digitalRead();
Hình 1.1 Đầu vào ra số trên Arduino Mega 2560
Những đầu vào ra số này hoạt động ở dải điện áp 0 đến +5 VDC, chúng
có thể đọc hoặc xuất ra tín hiệu có dòng điện tối đa là 40mA, và điện trở treo tại các chân này có giá trị từ 20 - 50 kΩ Trong số các đầu vào ra này có một
số chân có chức năng đặc biệt
+ Đầu ra PWM (Pulse Width Modulation) Hình 1.2: gồm các chân số
2 đến chân số 13, chân số 44 đến chân số 46 trên vi mạch điện tử Arduino Mega 2560, các chân này xuất ra tín hiệu PWM được mã hóa 8bit
Trang 16Hình 1.2 Đầu ra PWM trên Arduino Mega 2560
+ Cổng Communication Hình 1.3: là cổng nhận và truyền dữ liệu vào,
ra theo kiểu nối tiếp (COM) trên Arduino Mega 2560 gồm các cặp: RX0(Chân 0), TX0(Chân 1); RX1(Chân 19), TX1(Chân 18); RX2(Chân 17),
TX2(Chân 16); RX3(Chân 15), TX3(Chân 14)
Hình 1.3 Cổng Communication trên Arduino Mega 2560
Trang 17+ Đầu vào tương tự (Analog in) Hình 1.4: Trên vi mạch điện tử
Arduino Mega tích hợp 16 đầu vào tương tự có độ phân giải 10bit (0-1023), bao gồm các chân từ A0 đến A15 , các chân này đọc được tín hiệu tương tự đưa vào có giá trị từ 0 đến +5VDC thông qua lệnh: AnalogRead()
Hình 1.4 Đầu vào tương tự trên Arduino Mega 2560
1.2 Cài đặt Arduino Mega
* Cài đặt kết nối Arduino trên Arduino Sofwave [3]
Muốn làm việc được với vi mạch điện tử Arduino ta cần kết nối được
vi mạch với máy tính có cài đặt các hệ điều hành thông dụng hiện có trên thị trường như: Window, Mac OS, Linux… Để cài đặt được ta tiến hành thực
hiện theo các bước sau:
- Bước 1: Các điều kiện cần có:
+ Máy tính có cài hệ điều hành (hệ điều hành Windows 7- 32bit hoặc Windows XP - 32bit) có kết nối Internet hoặc không kết nối Internet
Trang 18+ Vi mạch điện tử Arduino như Hình 1.5:
Hình 1.5 Vi mạch Arduino Mega 2560
+ Cáp kết nối USB chuẩn A-B như Hình 1.6:
Hình 1.6 Cáp USB chuẩn A-B
- Bước 2: Tải phần mềm và cài đặt chương trình để lập trình cho
Arduino:
+ Tải phần mềm và cài đặt chương trình:
Arduino là vi mạch điện tử rất đa năng có thể được sử dụng để điều khiển nhiều ứng dụng từ đơn giản đến phức tạp Để có thể lập trình cho bo Arduino, trước hết ta cần download và cài môi trường viết chương trình cho Arduino; vào
mục Download như Hình 1.7 trên website: http://www.arduino.cc/
Trang 19Hình 1.7 Download phần mềm Arduino Sofwave
Sau khi nhấn chọn Dowload sẽ xuất hiện:
Hình 1.8 Download phần mềm Arduino Sofwave
Tiến hành lựa chọn phiên bản phần mềm tương thích cho hệ điều hành cảu máy tính, kích chọn máy tính sẽ tải về, tiến hành giải nén file vừa được tải
về Sau đó chọn, chạy file: “arduino-1.0.5-windows.exe” để cài đặt phần
mềm như Hình 1.9 có môi trường lập trình cho vi mạch Arduino
Trang 20Hình 1.9 Cài đặt phần mềm Arduino Sofwave
Trong quá trình chạy cài đặt “arduino-1.0.5-windows.exe”, việc cài
đặt kết nối USB đối với vi mạch Arduino sẽ được tự động cài đặt (nếu máy tính sử dụng hệ điều hành Mac OS không có phần cài đặt kết nối USB này)
1.3 Thiết lập giao tiếp giữa Matlab/Simulink và Arduino [4], [5]
Arduino là vi mạch điện tử được Matlab/Simulink hỗ trợ tốt, trong thư
viện công cụ (toolbox) của Matlab/Simulink có nhiều khối giao tiếp được dùng
để thực hiện điều kiển, giao tiếp với vi mạch Arduino (trong đó phiên bản
Matlab R2012a là phiên bản được hỗ trợ đầy đủ nhất đối với Arduino Mega)
+ Cài đặt phần mềm Matlab/Simulink có phiên bản r2012a (32bit) ra
máy tính có hệ điều hành và cấu hình thích hợp Hình 1.10
Hình 1.10 Matlab/Simulink R2012a
Trang 21* Cài đặt thư viện Arduino trong Matlab/Simulink [4], [5]
Để thuận lợi nhất cho quá trình thí nghiệm, thực nghiệm, mô phỏng, giám sát điều khiển Arduino Mega 2560, ta tiến hành hoàn thiện cài đặt
Matlab/Simulink phiên bản r2012a, sau đó tiến hành cài đặt các khối giao
tiếp giữa Matlab/Simulink và Arduino thực hiện theo các bước sau:
+ Bước 1: Cài đặt (Target for Use with Arduino hardwave) thư viện
giao tiếp giữa máy tính và Arduino vào toolbox cả Matlab/Simulink Trong
Matlab commad Window, nhập dòng lệnh targetinstaller (phần này máy tính cần được kết nối Internet để được hỗ trợ tốt nhất), cửa sổ Taget Installer hiện
ra, chọn Internet (recommender), sau đó nhấn Next Hình 1.11
Hình 1.11 Cài đặt Target installer
Tiếp theo, chọn cài đặt cho Arduino Mega 2560, và Next
Hình 1.12 Cài đặt Target installer
Trang 22Sau đó chọn Install => Next, máy tính sẽ tự động chạy cho đến khi hoàn thành cài đặt Khi đó, Target for Use with Arduino hardwave sẽ được tự động cập nhật vào thư viện Toolbox Simulink của Matlab như Hình 1.13
Hình 1.13.Cài đặt Target installer
+ Bước 2: Cài đặt thư viện kết nối vào, ra (Arduino IO Libraly) cho
Arduino Mega 2560, ta tiến hành như sau:
Trong Matlab commad Window, ta nhập dòng lệnh “install_arduino”,
khi đó Arduino IO Library sẽ được cập nhật vào thư viện Toolbox Simulink của Matlab như Hình 1.14
Hình 1.14 Cài đặt Arduino IO Library
Trang 231.4 Kết luận chương 1
Chương này của luận văn trình bày về nội dung nhằm đánh giá tổng quan về vi mạch điện tử Arduino với các ưu điểm cũng như cách thức cài đặt, kết nối vi mạch điện tử Arduino với phần mềm Arduino và với Matlab/Simulink
Qua đó làm rõ thêm khả năng có thể kết nối, mở rộng điều khiển đối với vi mạch điện tử Arduino, khả năng “nhúng” các ứng dụng điều khiển trên Arduino là rất mạnh nhằm phục vụ các yêu cầu nghiên cứu khoa học, giảng dạy và ứng dụng điều khiển trong thực tế
Trang 242.1 Hệ thống con lắc ngược quay và những ứng dụng đã được phát triển
Hệ thống con lắc ngược là hệ thống phức tạp có tính phi tuyến cao và không ổn định Hiện nay có rất nhiều nhà nghiên cứu đã sử dụng các thuật toán điều khiển khác nhau để điều khiển hệ thống con lắc như thuật toán điều khiển PID, điều khiển trượt, thuật toán điều khiển tối ưu LQR và điều khiển logic mờ Fuzzy đã thu được một số thành công đáng kể
Từ đề tài con lắc ngược đã có những đề tài nghiên cứu phát triển để nghiên cứu về các vấn đề như: Điều khiển cầu trục Hình 2.1; Xe hai bánh tự cân bằng như Hình 2.2; Điều khiển ổn định góc tên lửa khi rời bệ phóng Hình 2.3;
Hình 2.1 Cầu trục
Trang 25Hình 2.2 Xe hai bánh tự cân bằng
Hình 2.3 Tên lửa khi rời bệ phóng
Trang 262.2 Giới thiệu về con lắc ngược quay Kri PP-300
Nghiên cứu, tìm hiểu hệ thống con lắc ngược là một đề tài đã thực hiện
từ lâu, những ứng dụng phát triển từ hệ thống này đã được áp dụng nhiều trong thực tế Hệ thống con lắc ngược quay đã có mặt tại nhiều phòng thí nghiệm, nhiều viện nghiên cứu, nhiều trường đại học trên thế giới
2.2.1 Tổng quan hệ thống con lắc ngược quay Kri PP-300
* Hệ thống con lắc ngược quay bao gồm:
- Cánh tay (Arm): gắn vào trục động cơ một chiều (DC motor) quay
quanh trục thẳng đứng
- Con lắc (Pendulum): là khớp quay tự do gắn vào trục của cảm
biến góc quay (Potentiometer) ở đầu cánh tay, tư do trong mặt phẳng
vuông góc với cánh tay thể hiện ở Hình 2.4 Con lắc không ổn định, nó luôn đổ xuống, trừ khi có lực tác động thích hợp vào cánh tay Bài toán
đặt ra là điều khiển cánh tay để lắc con lắc lên (Swing up) và giữ con lắc
cân bằng ở vị trí thẳng đứng
Hình 2.4 Mô hình con lắc ngược quay Kri PP-300
Trang 272.2.2 Những bài toán sử dụng hệ thống con lắc ngược quay Kri PP-300
Hệ thống con lắc ngược Kri PP-300 là hệ thống mà trên đó có thể nghiên cứu, phát triển rất nhiều ứng dụng, trong đó có 04 ứng dụng điển hình
có cấp độ từ đơn giản đến phức tạp [7]:
+ Mô phỏng hệ thống cẩu tháp xây dựng
Ứng dụng thuật toán khảo sát hoạt động của cẩu tháp trong xây dựng, nhằm điều khiển con lắc ở vị trí ổn định dưới
Hình 2.5 Mô phỏng hệ thống cẩu tháp
Trang 28+ Cân bằng con lắc
Hình 2.6 Cân bằng con lắc
Ứng dụng điều khiển cân bằng con lắc ngược nghiên cứu phát triển các thuật toán ổn định hệ thống tuyến tính và tuyết tính tại các vùng ổn định và cả vùng không ổn định để đưa ra giải pháp tối ưu nhất cho các
thuật toán điều khiển
+ Swing up và cân bằng con lắc
Hình 2.7 Swing up và cân bằng con lắc
Trang 29+ Swing up và cân bằng con lắc ở một trí bất kỳ cho trước
Quá trình Swing up và cân bằng con lắc ở một vị trí bất kỳ cho trước là bài toán ổn định được nghiên cứu ứng dụng để phát triển các hệ thống tự cân bằng trong nhiều lĩnh vực như: dân dụng, công nghiệp, quốc phòng, hàng không và không gian
Hình 2.8 Swing up và cân bằng con lắc ở vị trí bất kỳ cho trước
Trang 302.3 Hệ thống con lắc ngược quay Kri PP-300 có tại Bộ môn Đo lường điều khiển
Hệ thống con lắc ngược quay Kri PP-300 được thiết kế và chế tạo bởi nhà sản xuất KentRidge Instruments Pte.Ltd dựa trên sự hợp tác với Trường đại học công nghệ Nanyang, Singapo Hệ thống này đã được ứng dụng, sử dung tại nhiều phòng thí nhiệm thuộc các viện nghiên cứu, nhiều trường Đại học kỹ thuật trên thế giới, trong đó có Trường Đại học kỹ thuật công nghiệp -Đại học Thái Nguyên, Việt Nam
Hệ thống con lắc ngược quay Kri PP-300 được đưa về Trung tâm thí nghiệm của Trường Đại học kỹ thuật công nghiệp - Đại học Thái Nguyên từ năm 2000, với đầy đủ các thành phần của hệ thống bao gồm
như Hình 2.9:
Hình 2.9 Tổng quan về Kri PP-300
Trang 312.3.1 Phần mềm hệ thống (System sofwave)
Cung cấp giao diện giúp cho người dùng dễ dàng nghiên cứu và sử
dụng hệ thống Phần mềm này được lưu trữ trên đĩa mềm (Floppy Disk)
Trang 322.3.3 Bo mạch điều khiển UC96 (Universal Controller UC96 Microcontroller Board)
Hình 2.12 Bo mạch điều khiển UC96
Bo mạch vi điều khiển UC96 tích hợp các mạch truyền, nhận, xử lý các tín hiệu vào, ra để điều khiển hệ thống có cấu hình:
Trang 33Được thiết kế để kết nối, điều khiển động cơ thông qua tín hiệu PWM Các tín hiệu điều khiển được lấy tư bo mạch điều khiển UC96 với các đặc tính:
+ Dòng động cơ (dòng định mức 3A, dòng đỉnh 6A)
+ 1 đầu vào cảm biến vận tốc
+ 2 đầu vào encoder quay
+ 1 cổng giao tiếp máy tính RS232
+ 1 đầu vào đo góc quay
+ 1 đầu vào điều khiển chiều quay động cơ
+ Nguồn một chiều từ ±15VDC đến ±30VDC
2.3.5 Bộ nguồn (Power Supply)
Bộ nguồn công suất biến đổi điện áp xoay chiều từ 220VAC - 50Hz sang nguồn một chiều đối xứng, đảm bảo dòng, áp cho hệ thống hoạt động
Hình 2.14 Bộ nguồn
Trang 342.3.6 Bộ con lắc ngược quay Kri PP-300 (Inverted Pendulum Apparatus Kri PP-300)
Hình 2.15 Bộ con lắc ngược
a Cảm biến góc quay (Potentiometer)
Hình 2.16 Cảm biến góc quay
Trang 35Cảm biến góc quay là một biển trở có giá trị 5KΩ (±20%), được cấp nguồn +5VDC, tín hiệu đầu ra để biến đổi ADC có biên độ thay đổi từ 0 đến +5VDC ứng với góc quay từ 0 đến 3600, dải mã hóa được 10 - bit ADC
Hình 2.17 Trống quay
Ngoài ra trên cánh tay của hệ thống con lắc còn có cơ cấu giúp truyền tín hiệu từ cảm biến góc quay về mạch vi xử lý thông qua 3 vòng dây được quấn quanh một trống quay Cơ cấu này giúp cho quá trình đưa tín hiệu vị trí
con lắc về vi xử lý một cách dễ dàng, linh hoạt
b Encoder
Hình 2.18 Encoder