第 1 页
BÀI 1: LẬP TRÌNH THIẾT KẾ GIAO DIỆN TRÊN MÁY TÍNH BẰNG PHẦN MỀM VISUAL STUDIO ĐỂ KẾT NỐI VÀ ĐIỀU KHIỂN THIẾT BỊ NGOẠI VI 1. Mục đích: Khi hoàn thành xong bài thực hành này sinh viên có thể nắm vững kiến thức để lập trình: - Tạo ra được giao diện người dùng (GUI) trên máy tính bằng Window form với C++, sử dụng phần mềm Visual Studio (Bản Professional năm 2019) - Lâp trình kết nối giao diện trên máy tính với thiết bị ngoại vi. Cụ thể là vi điều khiển Arduino Uno R3 trên bộ Kit MTS-100 thông qua cổng USB. 2. Định nghĩa - Giao diện người dùng, GUI (Graphic User Interface): là một giao diện được thiết lập trên máy tính dùng để giao tiếp (truyền và nhận dữ liệu) với các thiết bị ngoại vi. Thông qua giao diện ta có thể hiển thị trạng thái, điều khiển các phần tử (cảm biến, cơ cấu chấp hành...) của thiết bị ngoại vi. - Bo mạch điều khiển là một một bộ phận của hệ thống cơ điện tử dùng để thu nhận và xử lý dữ liệu từ các cảm biến, các nút ấn, giao diện điều khiển,...Sau đó truyền tín hiệu điều khiển đến các cơ cấu chấp hành. 3. Thiết bị và phần mềm Kit MTS 100, Máy tính, Mạng LAN, Sever chung, phần mềm Visual Studio, phần mềm Arduino IDE. Hình 1-1. Kit Arduino MTS-100
第 2 页
*Đặc tính của Kit MTS-100: 1. Điện áp vào: AC 110/220V, 50/60Hz Điện áp ra: +5V/1.5A, +3.3V/0.5A 2. Mạch điều khiển: + Arduino UNO R3 + Core: ATMEGA328P + Digital IO: 14 (D0~D13) + Analog IO: 6 (A0~A5) + PWM Output: 6 (D3, D5, D6, D9, D10, D11) + Hỗ trợ pin AREF + Hỗ trợ pin Tx/Rx + Hỗ trợ giao diện I2C + Hỗ trợ tải về ISP + Hỗ trợ giao diện sử dụng USB Type 3. Module vào - Digital Input a. 4x4 Keypad: touch button b. DIP Switch: 8 pins - Analog Input a. Slide Potentiometer: 20K x 2 b. Joystick x 1 c. Microphone x 1 - Sensor Input a. CDS Sensor x 1 b. Temperature & Humidity Sensor x 1 c. Accelerometer: 3-axis d. Ultrasonic x 1 e. IR Line Tracer x 1 4. Module ra - LED Matrix Display: 8x8 - 4-Digit 7-Segment Display -LED Bar: 10 bits -RGB LED x 4
第 3 页
-High Power LED: 1W -Serial RGB LED x 20 -LCD Display: 16x2 (Serial & Parallel) -Relay: 5V, 2 sets - DC Motor: 5V, 2 sets - Step Motor: 12V, 7.5 deg / tick - Servo Motor x 2 - Buzzer A: Electromagnetic, self-drive - Buzzer B: Electromagnetic, external-drive 5. Module kết nối - Wi-Fi: ESP8266 x 1 - Bluetooth: HC05 x 1 6. Other Module Solderless Breadboard: 81x51mm, 408 tie points 4. Cơ sở lý thuyết và ứng dụng 4.1. Tính năng để tạo GUI trên phần mềm Visual studio Hình 1-2. Môi trường làm việc của phần mềm Visual Studio
第 4 页
Microsoft Visual Studio là một môi trường phát triển tích hợp từ Microsoft. Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web. Visual Studio sử dụng nền tảng phát triển phần mềm của Microsoft như Windows API, Windows Forms, Windows Presentation Foundation, Windows Store và Microsoft Silverlight. Nó có thể sản xuất cả hai ngôn ngữ máy và mã số quản lý. Visual Studio bao gồm một trình soạn thảo mã hỗ trợ IntelliSense cũng như cải tiến mã nguồn. Trình gỡ lỗi tích hợp hoạt động cả về trình gỡ lỗi mức độ mã nguồn và gỡ lỗi mức độ máy. Công cụ tích hợp khác bao gồm một mẫu thiết kế các hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp và thiết kế giản đồ cơ sở dữ liệu. Nó chấp nhận các plug- in nâng cao các chức năng ở hầu hết các cấp bao gồm thêm hỗ trợ cho các hệ thống quản lý phiên bản (như Subversion) và bổ sung thêm bộ công cụ mới như biên tập và thiết kế trực quan cho các miền ngôn ngữ cụ thể hoặc bộ công cụ dành cho các khía cạnh khác trong quy trình phát triển phần mềm. Visual Studio còn có tính năng biên dịch nền tức là khi mã đang được viết thì phần mềm này sẽ biên dịch nó trong nền để nhằm cung cấp thông tin phản hồi về cú pháp cũng như biên dịch lỗi và được đánh dấu bằng các gạch gợn sóng màu đỏ. Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình biên tập mã và gỡ lỗi để hỗ trợ (mức độ khác nhau) hầu như mọi ngôn ngữ lập trình. Các ngôn ngữ tích hợp gồm có C,[1] C++ và C++/CLI (thông qua Visual C++), VB.NET (thông qua Visual Basic.NET), C thăng (thông qua Visual C#) và F thăng (như của Visual Studio 2010[2]). Hỗ trợ cho các ngôn ngữ khác như J++/J thăng, Python và Ruby thông qua dịch vụ cài đặt riêng rẽ. Nó cũng hỗ trợ XML/XSLT, HTML/XHTML, JavaScript và CSS. Trong bài thực hành này, ta sẽ sử dụng tính năng CLR/CLI của Visual Studio để tạo một giao diện người dùng chạy trên môi trường Window (Window form) nhằm kết nối với cách bo mạch điều khiển để điều khiển các thiết bị ngoại vi. Hình 1-3. Tính năng thiết kế giao diện người dùng trên Visual
第 5 页
4.2. Phần mềm Arduino IDE để lập trình cho vi điều khiển Arduino trên bộ kit MTS-100 Phần mềm Arduino IDE được viết tắt (Arduino Integrated Development Environment) là một trình soạn thảo văn bản, giúp bạn viết code để nạp vào bo mạch Arduino. Giao diện phần mềm gồm 3 vùng cơ bản: Vùng thanh công cụ, vùng lập trình (biên soạn chương trình), vùng thông báo thông tin, như trong hình 1-4. Các nút tính năng cơ bản như trong hình 1-5. Hình 1-4. Giao diện làm việc của phần mềm Arduino IDE Hình1- 5. Các chức năng trên thanh công cụ của phần mềm Arduino IDE
第 6 页
5. Quy trình thực hiện 5.1. Thiết kế giao diện Windows Forms Designer được sử dụng với mục đích xây dựng GUI sử dụng Windows Forms, được bố trí dùng để xây dựng các nút điều khiển bên trong hoặc cũng có thể khóa chúng vào bên cạnh mẫu. Điều khiển trình bày dữ liệu có thể được liên kết với các nguồn dữ liệu như: Cơ sở dữ liệu hoặc truy vấn. Bước 1: Khởi tạo Project bằng C++/CLI (hình1- 6) Hình 1-6. Tạo một project mới để thiết kế giao diện Bước 2: Tạo các thuộc tính cho Project Vào Project, chọn properties sẽ hiện bảng như hình, cấu hình các phần liên kết (Linker) để tạo môi trường làm việc cho một Window form trong GUI như hình 1-7
第 7 页
Bước 3: Tạo thêm file Window form trong Project Bước 4: Lập trình để khởi tạo giao diện trong Project Ta click vào myform.cpp. Nhập đoạn code sau: using namespace System; using namespace System::Windows::Forms; [STAThreadAttribute] void main(array<String^>^ args) { Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); MyProject::MyForm form;
第 8 页
Application::Run(% form); } Sau đó, tắt Visual studio đi và khởi động lại vào Project vừa tạo. Kết quả trên giao diện ta thấy như sau: Các thuộc tính của các Vùng Giao diện tính năng thiết kế Các tính năng Bước 5: Thiết kế giao diện đã tạo trên Window form trong Project Để thiết kế giao diện, ta chỉ việc kéo thả các tính năng cần thiết (button, textbox, label...) vào trong Giao diện đã được tạo ra ở bước 4. Sau đó ta có thể đi thiết lập các thuộc tính của các tính năng đã thiết kế trên giao diện.
第 9 页
5.2. Kết nối với giao diện với thiết bị ngoại vi (Bộ kit MTS-101) 5.2.1. Thiết lập kết nối trên giao diện Chúng ta sẽ giao tiếp với thiết bị ngoại vi (Bộ kit MTS-101) mạch qua cổng usb. Vào Window form, tạo 1 cổng serialPort1 trên giao diện như hình dưới
第 10 页
Ta tạo event click button1 bằng cách double click vào button1. Sau đó sang file myform.h để tiến hành lập trình. Ta có 1 cổng COMX được kết nối với Arduino qua USB, ta sẽ gửi dữ lieu qua đường truyền này, trên kia là 1 đoạn mã để gửi dữ liệu “1” đi khi click vào button1. Chúng ta sẽ chọn cổng COMX phù hợp để kết nối, tất cả cổng COM chúng ta sẽ đưa lên combobox, điều đó sẽ thuận lợi hơn cho việc điều khiển và kết nối, và giờ chúng ta chỉ cần chọn cổng COM trên combo box và click vào button. 5.2.2. Kiểm tra kết nối bằng phần mềm Arduino IDE. Để biết chính xác Arduino có nhân được dữ liệu hay không, ta sẽ có 1 chương trình nhỏ trên Arduino IDE để kiểm tra
第 11 页
Sau đó ta vào vùng quan sát (vùng thông báo) trên phần mềm Arduino IDE (hình 4) để xem kết quả: - Nếu đúng in ra 1 thì việc kết nối đã thành công. - Nếu bạn bị lỗi, hãy kiểm tra đúng cổng hay chưa, hoặc có đang mở Serial Monitor của Arduino không. 6. Kết luận Như vậy, chúng ta tạo được Giao diện đơn giản có thể giao tiếp với vi điều khiển Arduino qua USB. Giao diện có thể giao tiếp kết nối với vi điều khiển để điều khiển. Đây chính là tiền đề cho việc Thiết kế giao diện trên máy tính để điều khiển các thiết bị ngoại vi. 7. Câu hỏi ôn tập: 7.1. Tự tạo một Project để thiết kế giao diện bằng Window Form theo các bước hướng dẫn ở mục 5.1. Trên giao diện chứa: +) 3 nút ấn (button): nút ấn 1, nút ấn 2 +) 1 vùng hiển thị (textbox). 7.2. Viết một đoạn chương trình để đổi hình nền của Giao diện (đã thiết kế ở trên) sang màu đỏ (red) bằng một nút ấn 1 và đoạn chương trình cho nút ấn 2 để khi ấn nút thì trên textbox hiển thị dòng chữ: “Thực hành môn kỹ thuật lập trình CĐT”. 7.3. Tạo các hàm để kết nối với vi điều khiển trong chương trình Giao diện điều khiển (đã thiết kế ở trên) với bộ Kit MTS-100 như mục 5.2.1. Sử dụng phần mềm Arduino IDE để tạo chương trình kiểm tra kết nối như ở mục 5.2.2. Kiểm tra xem đã kết nối hay chưa?
第 12 页
8. Báo cáo thu hoạch 8.1. Trả lởi các câu hỏi ôn tập ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… …………………………………… 8.2. Tóm tắt các bước đã thực hiện trong bài thí nghiệm ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ………………………………………………………………………………………………
第 13 页
……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……… 8.3. Kết quả thiết kế và mô phỏng thử nghiệm (Phần này của cán bộ hướng dẫn thí nghiệm đánh giá sinh viên đạt hay không đạt) ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ………………………………………… 8.4. Kết luận (Liên hệ bản thân về việc thu hoạch được kiến thức, kỹ năng cho chuyên ngành Cơ điện tử)
第 14 页
……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ………………………………………………………………………………………………
第 15 页
BÀI 2: LẬP TRÌNH THIẾT KẾ GIAO DIỆN TRÊN MÁY TÍNH ĐỂ ĐIỀU KHIỂN ĐÈN LED ĐƠN TRÊN BỘ KIT MTS-100 1. Mục đích: Sau khi hoàn thành xong bài thực hành, sinh viên có thể hiểu về thiết lập một giao diện cách giao tiếp giữa giao diện trên máy tính để giao tiếp và điều khiển với một cơ cấu chấp hành (đèn LED) trên bộ Kit MTS-100. Qua đó sẽ biết được cách điều khiển các thiết bị ngoại vi mà cụ thể trong bài thực hành này là led đơn. 2. Định nghĩa - LED (viết tắt của Light Emitting Diode, có nghĩa là diode phát sáng hoặc diode phát quang) là các diode có khả năng phát ra ánh sáng hay tia hồng ngoại, tử ngoại. Cũng giống như diode, LED được cấu tạo từ một khối bán dẫn loại p ghép với một khối bán dẫn loại n. Hình 2-1. Ký hiệu điện tử của đèn LED - Nguyên lý hoạt động của LED giống với nhiều loại diode bán dẫn. Khối bán dẫn loại p chứa nhiều lỗ trống tự do mang điện tích dương nên khi ghép với khối bán dẫn n (chứa các điện tử tự do) thì các lỗ trống này có xu hướng chuyển động khuếch tán sang khối n. Cùng lúc khối p lại nhận thêm các điện tử (điện tích âm) từ khối n chuyển sang. Kết quả là khối p tích điện âm (thiếu hụt lỗ trống và dư thừa điện tử) trong khi khối n tích điện dương (thiếu hụt điện tử và dư thừa lỗ trống). Ở biên giới hai bên mặt tiếp giáp, một số điện tử bị lỗ trống thu hút và khi chúng tiến lại gần nhau, chúng có xu hướng kết hợp với nhau tạo thành các nguyên tử trung hòa. Quá trình này có thể giải phóng năng lượng dưới dạng ánh sáng (hay các bức xạ điện từ có bước sóng gần đó). 3. Trang thiết bị và phần mềm Kit MTS 100, máy vi tính, mạng LAN, sever chung, phần mềm Visual Studio, phần mềm Arduino IDE, đèn led đơn (trên bộ Kit MTS- 100)
第 16 页
Hình 2-2. Sơ đồ nối dây của cụm đèn LED đơn trong bộ kit MTS-100 4. Cơ sở lý thuyết và ứng dụng Như ở bài thục hành số 1 chúng ta đã tìm về các thiết bị, phần mềm hỗ trợ như Kit MTS 100, Visual studio và cách tạo một giao diện điểu khiển để kết nối với vi điều khiển thông qua cáp usb (truyền thông qua cổng serial). Phần mềm Visual studio với tính năng hỗ trợ tạo giao diện Window form. Việc thiết kế giao diện với phần kéo thả các tính năng có sẵn và hỗ trợ các phần lập trình cho từng tính năng của giao diện sẽ hỗ trợ rất nhiều người dùng trong quá trình tạo giao diện. Giao diện cũng cho phép kết nối với các bo mạch của vi điều khiển Arduino Uno thông qua các hàm chuẩn của cổng serialPort1, một trong những tính năng cung cấp sẵn trong thư viện của Window Form của phần mềm Visual Studio. Phần mềm Arduino IDE cho phép người dùng lập trình cho vi điều khiển Arduino Uno R3 trên bộ Kit MTS-100. Với các hàm chuẩn được cung cấp trong thư viện của phần mềm sẽ hỗ trợ người lập trình trong quá trình xây dựng chương trình. Như vậy, quá trình điều khiển đèn LED bằng giao diện trên máy tính ở đây chính là quá trình truyền tín hiệu từ các nút ấn trên giao diện qua cáp kết nối tới đầu vào của vi điều khiển Arduino Uno R3. Tại đây, tín hiệu đầu vào sẽ được vi điều khiển xử lý để đưa ra tín hiệu đầu ra tại các chân của vi điều khiển. Mà bản chất là quá trình thay đổi mức điện áp đầu ra của chân vi điều khiển để thay đổi trạng thái phát quang của đèn LED.
第 17 页
5. Quy trình thực hiện 5.1. Tạo Giao diện điều khiển bằng Window form của phần mềm Visual studio Bước 1: Tạo một project mới. Bước 2: Thiết kế các tính năng điều khiển Toolbox chứa tất cả các control có thể sử dụng trong form. Nếu bạn không thấy ToolBox có thể chọn View -> Toolbox để hiện thị lại. Kéo các tính năng cần thiết và cài đặt các thuộc tính cho nó như hình
第 18 页
Hình 3. Giao diện điều khiển đèn LED và thuộc tính của các tính năng Bước 3: Thiết lập cổng giao tiếp cho giao diện (thêm Serial Port) Kéo thả SerialPort từ ToolBox ra ngoài Giao diện điều khiển, lúc này SerialPort không nằm trên Giao diện điều khiển mà nằm ở bên dưới với tên mặc định là serialPort1
第 19 页
5.2. Lập trình cho các tính năng trên giao diện - Click đúp vào tính năng btnConnect trên giao diện, ta được event click btnConnect. Thiết lập viết đoạn code như sau Sau đó bấm F5 và test thử. Khi Giao diện hiện lên, nhập COMx (COMx là cổng com đã connect với Arduino) vào textbox và bấm Connect, kết quả
第 20 页
Nếu bạn bị lỗi, hãy kiểm tra đúng cổng hay chưa, hoặc có đang mở Serial Monitor của Arduino không. Sau đó nhớ tắt Form đi để lập trình tiếp. - Lập trình cho nút ấn Turn on LED Quay trở lại giao diện bằng phím Shift + F7 hoặc click vào tab MyForm.h[Design]. click đúp vào btnLED, thêm đoạn code như bên dưới. 5.2. Lập trình cho vi điều khiển trên Arduino IDE Ta nối chân dương của LED số 10 với chân 11 trên Arduino, chân dương của LED nối với chân nguồn 5V của bộ Kit MTS-100 (như hình 2), sau đó ta thêm đoạn chương trình sau vào Arduino IDE, cắm cáp USB và nạp đoạn chương trình dưới vào vi điều khiển, và sử dụng cáp USB để giao tiếp với giao diện điều khiển Window form.
评论 (0)
暂无评论。快来抢沙发吧!