Viết chương trình cho vi điều khiển:

Một phần của tài liệu Nghiên cứu, thiết kế chế tạo mô hình hệ thống lái ô tô trợ lực điện có kết nối máy tính để phục vụ đào tạo (Trang 78)

6. Ý nghĩa khoa học và thực tiễn của đề tài:

4.4. Viết chương trình cho vi điều khiển:

4.4.1. Xây dựng quy luật điều khiển:

Trong thực tế, trợ lực của hệ thống lái được điều khiển bằng các bản đồ lưu trữ có sẳn trong ECU-EPS, các bản đồ này được kích hoạt tại các nhà máy phụ thuộc vào các yếu tố cho trước như: loại xe, trọng lượng xe, …

Về nguyên tắc, trợ lực lái sẽ làm việc khi có lực tác dụng lên vành tay lái làm cho thanh xoắn trong cảm biến mô men xoắn xoay. Cảm biến mô men xoắn sẽ xác định được mô men đánh lái của người điều khiển và gửi tín hiệu về ECU-EPS. Kết hợp với tín hiệu tốc độ di chuyển của ô tô luôn được ECU động cơ gửi về cho ECU- EPS và bản đồ được lưu trữ trong ECU-EPS, ECU-EPS sẽ tính toán lực trợ lực cần thiết và quyết định dòng điện cấp cho động cơ điện. Mô men từ động cơ điện sẽ tác động lên cơ cấu lái song song với mô men đánh lái của người điều khiển đặt lên vành tay lái, từ đó làm quay bánh xe dẫn hướng.

Như vậy với mô hình hệ thống lái đã chọn, quy luật điều khiển dòng điện tùy thuộc vào tốc độ xe và cảm biến mô men cản trên vành tay lái. Quy luật này phải căn cứ vào đặc tính làm việc của hệ thống lái trợ lực điện có từ thực tế. Tuy nhiên, việc thực hiện đo đạc các tín hiệu trên xe trong điều kiện làm việc thực tế là hết sức khó khăn, không cần thiết do mô hình có mục đích chính là mô phỏng quá trình làm việc của hệ thống trợ lái ô tô lực điện.

Để xây dựng quy luật điều khiển cho mô hình, tác giả chọn đặc tính điều khiển có sẵn được khảo sát trước đó trên hệ thống lái ô tô trợ lực điện [9]. Các đặc tính điều khiển như sau:

Hình 4.31. Mối quan hệ giữa mô men đánh lái và điện áp ra của cảm biến mô men xoắn [9]

Hình 4.32. Mối quan hệ giữa mô men đánh lái và dòng điện trợ lực khi xe đứng yên [9]

4.4.2.Lưu đồ giải thuật điều khiển chính True True False Vxoắn > 2,5 V Vòng lặp vô tận Xuất dữ liệu ra LCD Tính toán giá trị dòng điện trợ lực tương ứng với

vận tốc xe và mô men lái

Khởi động động cơ trợ lực quay trái với giá trị PWM

đã tính Tính toán giá trị dòng

điện trợ lực tương ứng với vận tốc xe và mô men lái

Khởi động động cơ trợ lực quay phải với giá trị

PWM đã tính Dừng động

cơ trợ lực

Gửi dữ liệu ra máy tính

Vxoắn < 2,5 V

True

False RESET

Khởi tạo các khối chức năng phần cứng, các bộ định thời, các

bộ chuyển đổi ADC

Khởi tạo các biến chính:

M1, M2 – cảm biến vành tay lái, V – Vận tốc xe (C0),

Và các biến trung gian

Xử lí, tính toán chuyển đổi về mô men đánh lái và vận tốc xe -Đọc giá trị từ cảm biến M xoắn; -Đọc giá trị từ cảm biến giả lậpVxe

Hình 4.35. Lưu đồ giải thuật chương trình cập nhật dữ liệu

Cập nhật dữ liệu cho M1, M2 & Vxe

True

Bắt đầu chuyển đổi

Hoàn tất chuyển đổi

False

Đọc kết quả chuyển đổi AD cho M1, M2 & Vxe

Lưu vào RAM

Hình 4.36. Lưu đồ giải thuật chương trình gửi dữ liệu vào máy tính

4.5. Xây dựng phần mềm kết nối máy tính: 4.5.1.Lựa chọn ngôn ngữ lập trình: 4.5.1.Lựa chọn ngôn ngữ lập trình:

Hầu hết các ứng dụng ngày nay đều chạy trên nền Window. Để viết một trình ứng dụng chạy trên nền window có rất nhiều ngôn ngữ như: C, J, pascal for Windows. Delphi, Visual Basic… so với các ngôn ngữ lập trình ra đời từ trước, việc làm quen và sử dụng ngôn ngữ Visual Basic của Microsoft đơn giản hơn rất nhiều. Bên cạnh đó, Visual Basic có nhiều ưu điểm, được thể hiện rõ ở chổ trong môi trường lập trình Visual Basic có chứa tất cả các công cụ mà ta cần đến để xây dựng một cách nhanh chóng và hiệu quả các trình ứng dụng từ đơn giản đến phức tạp. Mặt khác, so với các ngôn ngữ khác, việc tiếp cận với Visual Basic sẽ tiết kiệm thời gian và công sức hơn.

False

Xóa cờ báo bộ đệm phát rỗng

Tăng nội dung con trỏ lên 1 True Ghi ký tự vào bộ phát Hết dữ liệu Bộ đệm phát rỗng False True Gán con trỏ Gửi dữ liệu Trở về chương trình chính

Visual Basic gắn liền với khái niệm lập trình trực quan, hướng đối tượng. Nghĩa là khi thiết kế chương trình, ta có thể nhìn thấy ngay kết quả của từng thao tác và đặt biệt là thấy ngay giao diện chương trình. Việc sử dụng thư viện liên kết động DLL (Dynamic link library) cho phép ta ứng dụng tối đa các tiềm năng to lớn của Window vào việc xây dựng chương trình. Bên cạnh đó, trong Visual Basic còn có sẵn các điều khiển tuỳ biến là các công cụ để mở rộng ứng dụng cho Visual Basic.

Tóm lại, so với ngôn ngữ khác, Visual Basic có nhiều ưu thế hơn. Nhưng bên cạnh đó, Visual Basic vẫn có hạn chế đó là tốc độ thực thi chậm. Tuy nhiên, ngày nay với sự nâng cao tính năng của các máy tính cá nhân, tốc độ của các chương trình Visual Basic không còn là điều quan trọng. Song song đó, cuộc sống xã hội ngày nay dần dần chuyển hoá sang quản lý thông tin nên có thể nói ngôn ngữ lập trình Visual Basic đang là thế mạnh hiện nay và có thể nâng cao trong tương lai so với các ngôn ngữ lập trình khác. Vì vậy, chúng tôi quyết định chọn ngôn ngữ Visual Basic để xây dựng phần mềm của mình.

4.5.2.Khái quát về Visual Basic 6.0 [10]:

Ngôn ngữ lập trình Visual Basic 6.0 được giới thiệu vào năm 1988, là công cụ phát triển phần mềm nhanh chóng và hiệu quả để lập trình trên Microsoft Windows. Visual Basic đang là ngôn ngữ lập trình phổ dụng trên thế giới hiện nay. Nó được tăng cường năng lực cho việc đánh chỉ mục và các tính năng cơ sở dữ liệu mạnh hơn. Mặt khác, điểm tiện lợi khi dùng Visual Basic chính là ở chỗ tiết kiệm thời gian và công sức so với các ngôn ngữ lập trình khác khi xây dựng cùng một ứng dụng.

Visual Basic gắn liền với khái niệm lập trình trực quan (Visual), nghĩa là khi thiết kế chương trình ta nhìn thấy ngay kết quả của từng thao tác và giao diện khi chương trình thực hiện. Đây là yếu tố thuận lợi lớn so với các ngôn ngữ lập trình khác. Visual Basic cho phép ta chỉnh sửa đơn giản, nhanh chóng. Màu sắc, kích thước, hình dáng của các đối tượng đều có mặt trong ứng dụng.

Khi viết chương trình Visual Basic phải trải qua 02 bước: + Thiết kế giao diện (Visual Programming).

+ Viết lệnh (Code Programming).

4.5.3.Truyền thông nối tiếp với Visual Basic:

Visual Basic được hỗ trợ cho việc truy nhập lên các cổng ghép nối của máy tính thông qua thành phần điều khiển truyền thông Microsoft comm. Để sử dụng thành phần

comm, trong thư mục \Window\System cần phải có các tập tin MSCOMM16.OCX (cho chế độ 16 bit) hoặc MSCOMM32.OCX (cho chế độ 32 bit).

Điều khiển truyền thông MSCOMM cung cấp hai khả năng để điều khiển việc trao đổi thông tin, đó là:

 Hỏi vòng: hỏi vòng các sự kiện và lỗi được thực hiện bằng cách kiểm tra giá trị của đặc tính comEvent sau mỗi chu kỳ của chương trình, để xác định xem liệu một sự kiện hoặc một lỗi đã xuất hiện. Do máy tính luôn ở trạng thái vòng lặp chờ nhận lệnh nên trong thời gian chưa có ký tự được nhận vào, máy tính vẫn không làm được công việc nào khác, do đó phương pháp này chỉ sử dụng cho các ứng dụng mà không cần làm việc khác khi chưa có ký tự nào nhận được.

 Truyền thông điều khiển sự kiện: là phương pháp tốt nhất được sử dụng trong quá trình điều khiển việc trao đổi thông tin nối tiếp khi nó giải phóng máy tính để làm các công việc khác. Để làm điều này, ta cần dùng sự kiện truyền thông Oncomm để bẫy và điều khiển các sự kiện. Điều khiển truyền thông còn phát hiện và điều khiển các lỗi truyền thông.

Thành phần Comm được bổ sung vào biểu mẫu khi cần đến việc truyền thông nối tiếp. Theo mặc định, cổng thứ nhất tạo ra đối tượng có tên MSComm1, đối tượng ứng với cổng thứ hai được gọi là MSComm2, v.v… Các đặc tính chính của đối tượng bao gồm: CommPort, DTREnable, EOFEnable, Handsaking, InbuffersSize, Index, Inputlen, Inputmode, Left, Name, NullDiscrd, OutbufferSize, Parityreplace, Rthreshold, RTSEnable, Settings, Sthreshold, Tag và Top. Sau đây là mô tả của các đặc tính quan trọng, cần thiết cho việc lập trình (Bảng 4.3).

Bảng 4.3. Mô tả các đặc tính quan trọng cho việc lập trình

Các thuộc tính Mô tả

 CommPort Đặt và trả lại số cổng truyền thông

 Input (nhập vào) Trả lại hoặc loại bỏ các ký tự ra khỏi bộ đệm nhận

 OutPut (xuất ra) Viết một xâu ký tự đến bộ đệm truyền

 PortOpen Mở / đóng một cổng (tuỳ thuộc vào thông số) và đặt thông số cho cổng

 Settings Đặt và trả lại các tham số truyền thông như: tốc độ, truyền theo bit, chẵn lẻ, số các bit dữ liệu v.v…

4.5.4. Thiết kế giao diện:

Do Visual Basic là một ngôn ngữ lập trình hướng đối tượng rất đơn giản, bằng cách đưa các đối tượng vào Form và tiến hành thay đổi một số thuộc tính của các đối tượng đó.

Form: Form là biểu mẫu của mỗi ứng dụng Visual Basic. Ta dùng Form nhằm định vị và sắp xếp các bộ phận trên nó khi thiết kế các phần giao tiếp với người dùng. Ta có thể xem Form như là một bộ phận mà nó có thể chứa các bộ phận khác. Form là phần chính của ứng dụng, các thành phần của nó tương tác với các Form khác và các bộ phận của chúng tạo nên giao tiếp cho ứng dụng. Form chính là giao diện chính của ứng dụng, các Form khác có thể chứa hộp thoại, hiển thị cho nhập dữ liệu.

Hình 4.38. Giao diện chính của Visual Basic

Khi thiết kế một chương trình, là tạo ra một hay nhiều cửa sổ cho chương trình đó. Một chương trình Windows ban đầu thường có một cửa sổ chính, trong quá trình làm việc có thể phát triển thêm nhiều cửa sổ con. Khi ta vào Visual Basic, ban đầu luôn có một Form cho thiết kế:

- Tools Box (Hộp công cụ): Bản thân hộp công cụ chỉ chứa các biểu tượng biểu thị cho các điều khiển mà ta có thể bổ sung vào biểu mẫu, đó là bảng chứa các đối tượng được định nghĩa sẵn của Visual Basic. Các đối tượng này được sử dụng trong Form để tạo thành giao diện cho các chương trình ứng dụng của Visual Basic. Các đối tượng trong thanh công cụ thông dụng nhất bao gồm:

- Scroll Bar (Thanh cuốn): Các thanh cuốn được dùng để nhận nhập dữ liệu hoặc hiển thị kết xuất khi người sử dụng không quan tâm đến giá trị chính xác của một đối tượng, nhưng lại quan tâm đến sự thay đổi nhỏ hay lớn.

- Option Button Control (Nút chọn): Đối tượng nút chọn cho phép người sử dụng chọn một trong những lựa chọn đưa ra. Như vậy, tại một thời điểm chỉ có một trong các nút được chọn.

- Check Box (Hộp kiểm tra): Đối tượng hộp kiểm tra cho phép người sử dụng kiểm tra một hay nhiều điều kiện của chương trình ứng dụng. Như vậy, tại một thời điểm có thể có nhiều hộp kiểm tra được đánh dấu.

- Label (Nhãn): Đối tượng nhãn cho phép người sử dụng gán nhãn một bộ phận nào đó của giao diện cho chương trình ứng dụng. Dùng các nhãn để hiển thị thông tin không muốn người dùng thay đổi.

- Text Box (Hộp soạn thảo): Đối tượng Text Box cho phép người sử dụng đưa các chuỗi kí tự vào Form. Thuộc tính quan trọng nhất của Text Box là thuộc tính Text cho biết nội dung của hộp Text Box.

- Command Button (Nút lệnh): Đối tượng Command Button cho phép ta quyết định thực thi một công việc nào đó khi người sử dụng kích hoạt nó.

- Properties Windows (Cửa sổ thuộc tính): Properties Windows là nơi chứa danh sách các thuộc tính của một đối tượng cụ thể. Các thuộc tính này có thể thay đổi được để phù hợp với yêu cầu về giao diện của nó.

* Các thuộc tính cơ bản của các đối tượng trong Visual Basic 6.0 như sau: - Name: tên của đối tượng, mỗi đối tượng phải có tên khác nhau.

- Caption: hiển thị nội dung trên cửa sổ thiết kế. - Tab Index: thứ tự chuyển đến khi nhấn phím. - Tab Font: chọn font hiển thị trên đối tượng. - Backcolor, Forecolor: chọn màu hiển thị.

- Value: giá trị của đối tượng (dùng cho Check box và Option để xác định trạng thái được chọn hay không chọn).

- Text: nội dung chứa trong một Text box.

- MultiLine: cho phép hiện nhiều dòng trên Text box hay không. - Enable: cho phép đối tượng hoạt động hay không.

- Duration: xác định thời gian Timer tràn (đơn vị là ms). Các sự kiện cơ bản của các đối tượng trên VB 6.0 bao gồm:

+ Form_Load: xảy ra mỗi khi mở một Form.

+ Click: Xảy ra khi thực hiện nhấn chuột trái trên đối tượng. + Timer: xảy ra mỗi khi Timer tràn.

4.5.5.Viết lệnh cho các đối tượng:

Dùng các lệnh của Visual Basic để quy định cách ứng xử cho mỗi Form và Control. Viết Form như vậy tức là ta đã tạo ra một dự án bao gồm tất cả các yếu tố để tạo nên chương trình.

Hình 4.39. Cửa sổ viết lệnh của Visual Basic

4.5.6.Viết chương trình với ngôn ngữ Visual Basic [10]:

Các chức năng chính của chương trình bao gồm:

- Tự động thu thập số liệu, tính toán và xuất ra kết quả các đại lượng

- Biểu diễn sự biến thiên của các đại lượng trên dưới dạng đồ thị và biểu bảng. - Lưu các kết quả đo được dưới dạng File dữ liệu.

Thiết kế theo chức năng của chương trình, ta có biểu đồ phân bố các chức năng như sau:

Hình 4.40. Biểu đồ phân bố các chức năng của chương trình

Dữ liệu thu được từ phần cứng

Giải mã dữ liệu Tính toán các đại lượng

cần đo

Biểu bảng Hình ảnh

Lưu thành File

Xuất Nhập

Giao diện chính của chương trình như sau:

Trong đó:

 Thanh tiêu đề: hiển thị tên phần mềm, người sử dụng có thể cập nhật vào thực đơn hệ thống bằng cách click chuột lên biểu tượng nhỏ tại đỉnh trái.

 Thanh thực đơn gồm các thực đơn sau:

 Thực đơn File: bao gồm các chức năng:

 Export to Excel: cho phép xuất dữ liệu thu thập sang dạng Excel

 Print: cho phép in đồ thị.

 Exit: thoát khỏi trương trình trở về Window.

 Thực đơn Settings: gồm các chức năng cho phép cấu hình khi truyền dữ liệu:

 Port: cho phép chọn cổng COM kết nối với bộ ECU của mô hình.

 Speed: cho phép chọn tốc độ truyền dữ liệu.

 Data Bits: chọn khung dữ liệu truyền.

 Parity: lựa chọn kiểm tra lỗi truyền dữ liệu.

 Thực đơn View: cho phép lựa chọn hình thức hiển thị dữ liệu:

 Table data: cho phép hiển thị dữ liệu dưới dạng bảng biểu các dữ liệu thu thập được.

 Thực đơn Connect: cho phép bắt đầu hay kết thúc kết nối với thiết bị ngoại vi.

 Màn hình chính: gồm có hai lựa chọn hiển thị thông qua hai Tab hoặc có thể truy xuất từ thực đơn View, có hai chế độ hiển thị hoặc lựa chọn hiển thị dữ liệu dưới dạng biểu bảng “DU LIEU BIEU BANG” hoặc hiển thị dữ liệu dưới dạng đồ thị “DU LIEU DO THI”. Ngoài ra, để có thể hiển thị dữ liệu đồ thị được rõ ràng, sinh động trên màn hình còn có các nút kiểm (Check box) cho phép hiển thị một hoặc nhiều đồ thị cùng lúc. Trên màn hình còn có thêm các nút lệnh để giúp cho việc tương tác với phần mềm

Một phần của tài liệu Nghiên cứu, thiết kế chế tạo mô hình hệ thống lái ô tô trợ lực điện có kết nối máy tính để phục vụ đào tạo (Trang 78)

Tải bản đầy đủ (PDF)

(109 trang)