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
-
Trả lời cho Tìm bạn thân quen cũ.bởi mèomướpDạ cháu đọc 1 số bài viết của bác vi... thì nhớ đc bác là 1 cụ già gần 80 tuổi, sức khỏe yếu. Đam mê và làm vc về kỹ thuật điện. Thích thơ ca. Có nhìu bài chia sẻ quý báu cho thế hệ sau. Tuy nhiên già rồi nên khái tính, bảo thủ, nhưng vẫn đáng kính ạ... còn lão nhathung... thì kiểu bố đời
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 12:52 -
-
bởi lvhnHãng nào tùy thích thôi bác! bây giờ các hãng đều hỗ trợ xem qua máy tính hay điện thoại đều được. Gắn Trước tiên mua về cắm nguồn set ip hết xong hãy lắp lên, cam poe chỉ cần 4 lõi là hoạt động bình thường nên 1 dây kéo cho 2 cam vẫn ok
-
Channel: Tâm tình dân kỹ thuật
30-07-2026, 15:49 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnNhớ không nhầm thì lúc còn đi học có gặp chú 1 lần cf bãi xe Nguyễn Kim, giờ quán cf đó nghỉ bán rồi
-
Channel: Tâm tình dân kỹ thuật
30-07-2026, 15:44 -
-
Trả lời cho Thắc mắc pin 21v ?bởi lvhnCon số đấy biểu thị gần đúng thôi, cái đồng hồ đó có đảm bảo chính xác hay không? pin có cục lên 4v4 vẫn bình thường. Cái gì cũng có sai số trong phạm vi không quá lớn thì không ảnh hưởng gì đâu, bàn ngay ngón ngắn ngón dài mà
-
Channel: Điện tử dành cho người mới bắt đầu
30-07-2026, 15:32 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnThay mấy con transisto nhỏ đầu vào, thường vi sai lỗi hay bị. Khám tổng quát chân các linh kiện xem có bị rỉ sét nhiều không?
-
Channel: Điện thanh
30-07-2026, 15:24 -
-
bởi dinhthuong92Mạch này hiệu suất ra led đạt khoảng 90.7% tại 12V in, 40W out.
-
Channel: Nguồn!
27-07-2026, 10:15 -
-
bởi dinhthuong92Có lẽ nguồn viết bài này chỉ mang tính định tính để nói rằng cần thay đổi tổng trở tải để có Pmax chứ trình bày chưa chi tiết và thấu đáo một cách định lượng. Công thức tổng quát phải có mặt L mới được, và nói là "tổng...
-
Channel: Nguồn!
27-07-2026, 10:09 -
-
Trả lời cho [Chia sẻ] Tổng hợp các công ty AI Việt Nam đang làm gì thật sự — Từ voicebot, computer vision đến AI agentsbởi nguyendinhvanCàng ngày, CNTT càng trở nên lôi thôi , rách việc.
Cái AI và Ge... trên trình duyệt chỉ tổ làm vướng mắt, mất thì gian.
Tôi toàm phải mất cộng tắt nó đi.-
Channel: Xu hướng, nhu cầu và thị trường
25-07-2026, 14:59 -
-
bởi trung30000Em có con amply 12 sò D 718 và e688 , biến áp 15A, 30v 0 30 v, một kênh thì hoạt động bình thường, kênh còn lại nổ bụp bụp, sột sột, đèn tín hiệu nhảy lên vạch max, khoảng 4 đến 5 giây, sau đó đèn tín hiệu trả về mức không, Em thấy như...
-
Channel: Điện thanh
24-07-2026, 13:50 -
-
Trả lời cho Tìm hiểu máy hàn lăn (Rolling Welding)bởi hoang_3ibác cần thì liên hệ Em: mayhanhaivuong.com (0903238399)...
-
Channel: Điện tử công nghiệp
24-07-2026, 10:58 -

Comment