Chương 1 GIỚI THIỆU VỀ VI MẠCH ARDUINO MEGA 2560 1. Giới thiệu về Arduino 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]. 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. 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. - 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.
5 - Đầ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. Đầ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.
Đầ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). Cổng Communication trên Arduino Mega 2560 7 + Đầ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. Đầu vào tương tự trên Arduino Mega 2560 1. 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.
8 + Vi mạch điện tử Arduino như Hình 1. Vi mạch Arduino Mega 2560 + Cáp kết nối USB chuẩn A-B như Hình 1. 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.
Download phần mềm Arduino Sofwave Sau khi nhấn chọn Dowload sẽ xuất hiện: Hình 1. 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.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. Cài đặt phần mềm Arduino Sofwave Trong quá trình chạy cài đặt “arduino-1.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).
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. Matlab/Simulink R2012a 11 * 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.
Cài đặt Target installer Tiếp theo, chọn cài đặt cho Arduino Mega 2560, và Next. Cài đặt Target installer 12 Sau đó 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.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. Cài đặt Arduino IO Library 13 1.
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ế. THUẬT TOÁN ĐIỀU KHIỂN CON LẮC NGƯỢC QUAY KRI PP-300 Chương này sẽ giới thiệu sơ lược về hệ thống con lắc ngược quay; quá trình xây dựng mô hình toán học của hệ thống con lắc ngược tuyến tính và phi tuyến; căn cứ vào mô hình toán học và các tham số sẽ sử dụng Matlab/Simulink tính toán, cài đặt thuật toán vào vi mạch Arduino để xử lý, điều khiển con lắc ngược quay Kri PP-300 tại phòng thí nghiệm bộ môn Đo lường - điều khiển, khoa Điện Tử. 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. Cầu trục 15 Hình 2. Xe hai bánh tự cân bằng Hình 2.
Tên lửa khi rời bệ phóng 16 2.