Viết tiếp đi Hải Bắc, bài viết của bạn rất có ích đấy.
Thông báo
Collapse
No announcement yet.
Mình muốn hỏi về việc dùng Matlab trong giao tiếp VDK với máy tính!
Collapse
X
-
Chương trình giao tiếp trên PC với RS232 dùng Matlab
.
Cảm ơn bạn đã động viên.
Bài viết sau mình viết tại picvietnam.com ở luồng sau:
http://picvietnam.com/forum/showthre...=6568#post6568
Chào tất cả mọi người,
Hôm qua vừa thi xong được một môn, làm bài cũng gọi là tạm tạm không biết được mấy điểm
. Sau nửa ngày hăng say lập trình
, mình xin gửi mọi người một chương trình giao tiếp RS232 bằng Matlab.
Giao diện của nó như sau:

Cách dùng:
1/ Chọn tham số cho Rs232 rùi ấn nút Connect để bắt đầu kết nối với RS232 nhé.
2/ Nhập dữ liệu vào ô TX rùi nhấn nút Send để gửi dữ liệu.
3/ Để thay đổi tham số (tốc độ, ..) cho RS232 thì phải nhấn Disconnect trước rùi chỉnh tham số nhé. Sau đó quay lại bước 1.
Các bạn chú ý, đây là chương trình mình viết dưới dạng mở, tức là các bạn có thể thêm code vào các hàm để phục vụ mục đích của mình. Đó chính là các hàm ngắt nhận, ngắt gửi,...
BytesAvailableFcnCount là số byte nhận được trong bộ đệm nhận trước khi xảy ra ngắt nhận.
Các hàm đó là:- function ByteAvailable_Callback(obj, event)
- function OutputEmpty_Callback(obj, event)
- function Error_Callback (obj, event)
- function PinStatus_Callback(obj, event)
- function Timer_Callback (obj,event)
- function BreakInterrupt_Callback(obj, event)
Chương trình này dùng GUI nên để biết thêm chi tiết về cách lập trình và chạy chuơng trình mời các bạn vào luồng Lập trình GUI trên Matlab ở www.dientuvietnam.net nhé:
http://dientuvietnam.net/forums/showthread.php?t=594
Trong chương trình, bạn có thể dùng chức năng About để xem hướng dẫn (User Manual), mình mới chỉ viết bằng tiếng Anh thôi.
Chương trình mình đã test khi nối tắt 2 chân 2 và 3 của RS232 lại với nhau. Còn với Vi điều khiển, .. mong các bạn test nhé.
Chúc các bạn thành công.Attached FilesLast edited by ngohaibac; 26-12-2006, 08:49.Technical sale at WT Microelectronics S'pore
Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com
Comment
-
haibac cho mình hỏi tí: trong quá trình truyền nhận bạn có gặp lỗi timeout hay không? Lỗi này mình thường gặp khi nhận dữ liệu, khi xảy ra lỗi thì sẽ không nhận được dữ liệu (dữ liệu = ''), mình vẫn chưa khắc phục được lỗi này.
Chào thân ái!Tư vấn, thiết kế hệ thống SCADA dùng WinCC, Citect...
Nhận giả lập khóa cứng (dongle), cung cấp license Citect, Rockwell, Siemens...
Liên hệ: servocontrol(at)gmail
Comment
-
Chào các bạn.
Tất nhiên là phải có Timeout rùi, trong ứng dụng của mình có tham số thiết lập timeout cho việc truyền và nhận dữ liệu đó. Theo mặc định nó = 10s.
Khi có Timeout nó sẽ gọi hàm ngắt sau:
Bạn thấy rằng hàm ngắt chỉ có tham số là obj (đối tượng Serial) và event (sự kiện) thì làm sao mà tương tác với GUI được??Code:function Timer_Callback (obj,event)
Để làm được điều này thì bạn phải thông qua một file mà mình đã thiết lập data.mat. Do đó trong hàm ngắt cần có 2 lệnh:
Các bạn chú ý nhé nếu không là không tương tác được với GUI đâu. Ngoài ra bạn có thể lập trình thêm cho nó có chức năng vẽ đồ thị thời gian thực chẳng hạn, dữ liệu nhận về sau khi tính toán thì hiển thị luôn lên đồ thị.Code:load data %Lấy các biến đã lưu trong data.mat % Làm gì thì làm ở đây, hiển thị thì hiển thị :D. save data % Ghi dữ liệu mới của các biến thay đổi vào data.mat
Máy mình chậm nên chắc chẳng có thời gian thực gì cả
.Các bạn có câu hỏi gì thì xin cứ trình bày mình sẽ trả lời. Còn giờ đi học thư viện đây
. Chăm không??
Chúc các bạn thành công.Technical sale at WT Microelectronics S'pore
Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com
Comment
-
Chào các bạn.
Đây là một các nữa để chia sẻ dữ liệu giữa các hàm Callback.
Để lưu dữ liệu nằm trong biến X chúng ta set một trường trong cấu trúc handles = X và sau đó lưu trữ cấu trúc đó bằng hàm guidata:
Từ đó bạn có thể lấy dữ liệu này từ trong các hàm Callback khác bằng lệnh:Code:handles.current_data = X; guidata(hObject,handles)
Chúc các bạn thành công.Code:X = handles.current_data;
Technical sale at WT Microelectronics S'pore
Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com
Comment
-
RS232 Communication V2.0
Chào các bạn.
Mình đã sửa lại một tí để fix một số lỗi trong quá trình trao đổi dữ liệu giữa các hàm Callback bằng cách sử dụng cấu trúc handles, trao đổi giữa hàm ngắt của Serial Object bằng biến toàn cục global hand.
Bây giờ các hàm sẽ không phải trao đổi dữ liệu qua data.mat nữa, tránh được lỗi khi save và load nhiều thì file này bị hỏng.
Mình không upload được file lên site này, các bạn sang PVN down nhé:
http://www.picvietnam.com/forum//showthread.php?t=752
Chúc các bạn thành công.Technical sale at WT Microelectronics S'pore
Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com
Comment
-
Nguyên văn bởi ngohaibac Xem bài viếtMình chưa làm giao tiếp giữa vi điều khiển với máy tính thông qua Matlab qua COM và LPT nhưng mình nghĩ rằng nếu mà giao tiếp ngon lành mà không cần card mở rộng thì thật là hay. Mình đã từng search về vấn đề này nhưng chưa tìm hiểu cụ thể và mình biết là Matlab có khả năng này.
Vấn đề này rất hay và thiết thực bởi vì dùng công cụ Matlab để xử lý số liệu thì còn gì bằng. Có thời gian mình sẽ nghiên cứu về vấn đề này và viết bài trao đổi cùng mọi người. Anh Dương Minh Tấn làm về giao tiếp này nhưng chỉ là mô phỏng thôi chứ chưa làm giao tiếp ra bên ngoài. Anh cũng vào trao đổi luôn nhé
.
Vấn đề này thật sự hay với dân điều khiển tự động của bọn mình. Chúng ta cùng trao đổi vấn đề này nhé. Bạn nào đã làm rùi, đã biết rùi thì hãy hướng dẫn cụ thể cho mọi người nhé.
Chúc các bạn thành công.
Well, từ ngày tốt nghiệp ĐH BK đến giờ mình mới quay lại Forum này. Mình trước có làm về giao tiếp giữa Matlab và VDK qua cổng COM. Mình khá vất vả cho đồ án đó nhưng về sau mình đã thành công. Đợt đó mình làm mmoo phỏng cái tay máy 3D = VRML sau đó ĐK = chip VDK bên ngoài. Đồ án vẫn còn lưu trên VP bộ môn ĐKTD ĐH Bách khoa HN.
Comment
-
handles.current_data = X;
guidata(hObject,handles)
Đây là cấu trúc cho phép chuyển quyền điều khiển lên thành phần của handles. Cấu trúc này cho phép tạo linh giữa các calback. Thực ra tạo giao tiếp trong Matlab còn đơn giản hơn cả trong VB có điều ít người dùng.http://techpal.vn
Chia sẻ công nghệ, cùng thành công
Comment
-
Matlab có nối thẳng tới VDK đâu mà bạn hỏi nó hỗ trợ VDK nào ? Matlab là phần mềm, còn VDK là phần cứng, vậy 2 thằng này nối với nhau kiểu gì ?Nguyên văn bởi qkhanh Xem bài viếtcác bác cho em hỏi hiện nay matlab đã hỗ trợ những loại VDk nào rồi .Technical sale at WT Microelectronics S'pore
Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com
Comment
-
tất nhiên là em hỏi vậy chắc bác phải hiểu chứ . matlab hỗ trợ rất mạnh các vdk thông qua các card . việc lập trình vdk trên matlab là một vấn đề rất hot hiện nay . vấn đề của em là chưa có cái nhìn tổng quan về vấn đề này rất mong các bác chỉ giáoNguyên văn bởi ngohaibac Xem bài viếtMatlab có nối thẳng tới VDK đâu mà bạn hỏi nó hỗ trợ VDK nào ? Matlab là phần mềm, còn VDK là phần cứng, vậy 2 thằng này nối với nhau kiểu gì ?
Comment
-
Hiện tại em đang làm đềi tài tốt nghiệp về hiện thị tín hiệu từ cảm biến lên textbox trong vi điều khiển. Sơ đồ phần cứng của em là :cảm biến nhiệt độ→adc0804→vdk 89s52→max232→PC.
Em muốn nhờ các anh có thể giúp em viết đoạn code hiển thỉ giá trị trên ô textbox thông qua sự kiện callback từ việc đưa con trỏ chuột vào ô textbox cần hiển thị. Em xin chân thành cảm ơn các anh (chị) rất nhiều!
Comment
Bài viết mới nhất
Collapse
-
bởi theidiotcatViệc lựa chọn một chiếc laptop gaming phù hợp với nhu cầu, ngân sách chưa bao giờ là dễ dàng. Và điều đó càng khó hơn trong năm 2026 khi mà mức giá liên tục tăng.
Nếu bạn chưa biết nên chọn một chiếc laptop gaming như thế nào...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:29 -
-
bởi theidiotcatVới mức ngân sách 20 - 30 triệu đồng trong năm 2026, các bạn sinh viên và dân văn phòng có thể tìm thấy nhiều lựa chọn cao cấp, mạnh mẽ, pin “trâu”, đặc biệt là các mẫu laptop AI hỗ trợ cho học tập và làm việc.
Trong phân...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:25 -
-
bởi theidiotcatDưới đây là một số mẫu laptop nổi bật trong phân khúc dưới 20 triệu giúp các bạn văn phòng, sinh viên và đặc biệt là tân sinh viên có thể dễ dàng lựa chọn được mẫu laptop phù hợp với nhu cầu và ngân sách của mình.
Thị...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:07 -
-
bởi theidiotcatViệc chọn mua một bộ máy tính phục vụ cho các nhu cầu làm việc văn phòng và sử dụng cơ bản hàng ngày đang trở nên dễ dàng và tiết kiệm hơn bao giờ hết. Thay vì phải đau đầu trích ngân sách để mua cả vi xử lý lẫn card đồ họa rời...
-
Channel: Đánh giá sản phẩm DTVN
25-06-2026, 11:23 -
-
bởi theidiotcatViệc nâng cấp từ một dàn máy tính cũ lên cấu hình mới luôn khiến nhiều người đắn đo về mức chi phí bỏ ra. Nếu bạn đang tìm kiếm một sự lột xác hoàn toàn về hiệu năng mà vẫn cân đối được dòng tiền, combo giữa vi xử lý Ryzen...
-
Channel: Đánh giá sản phẩm DTVN
25-06-2026, 11:06 -
-
Trả lời cho Lực dọc trục làm hỏng ổ bi.bởi nguyendinhvanVí dụ một trang như thế này
...-
Channel: Điện tử công suất
24-06-2026, 19:57 -
-
Trả lời cho Lực dọc trục làm hỏng ổ bi.bởi nguyendinhvanỔ bi có loại chịu lực dọc, loại chịu lực ngang.
Bạn kiếm một quyển Data cũng một hãng vòng bi nào đó. Họ sẽ cấp cho bạn đủ thông số kỹ thuật.
Khi lựa chọn được mã sản phẩm, bạn chỉ việc tìm mua mã đó, hoặc đặt hàng....-
Channel: Điện tử công suất
24-06-2026, 19:52 -
-
bởi GargiChào mọi người, tôi đang gặp một vấn đề kỹ thuật và muốn được nghe ý kiến của mọi người.
Tôi đã lắp một đĩa xích vào trục đầu ra của hộp số hành tinh bánh răng xoắn dùng cho truyền động xích. Sau vài tháng hoạt động, ổ bi đầu ra bị hỏng.
Bản thân...-
Channel: Điện tử công suất
24-06-2026, 13:22 -
-
bởi vi van phamSau hàng chục năm, không biết có ai còn nghĩ gì về tôi? Riêng tôi, nhớ nhiều về dientuviet nam. net. Ngày ấy tìm 1 người bạn đam mê về điện từ khó như trúng số độc đăc. Tôi đã trúng số độc đắc khi được mời về dientuvietnam.net...
-
Channel: Tâm tình dân kỹ thuật
23-06-2026, 22:43 -

Comment