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:
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:
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:
Code:handles.current_data = X; guidata(hObject,handles)
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
-
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
-
Nguyê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 Titun1210Em cần kinh nghiệm về schematic của con max485 để giao tiếp với ATmega, cổng vật lí cho rs485 là DB9. Ai đã làm việc và có bản vẽ thì càng tốt ạ. Hơn nữa thì với cổng DB9 thì 2 dây A,B của rs485 nằm ở chân nào
-
Channel: Vi điều khiển AVR
hôm nay, 21:45 -
-
Trả lời cho Đo nhiệt độ của pin 18650 real-timebởi villadyEm tìm hiểu vấn đề này mãi. Cảm ơn bác Việt nhé
-
Channel: Hỗ trợ học tập
hôm nay, 08:17 -
-
Trả lời cho Xin file lcsc part number của linh kiệnbởi lamvu0677Ý là có kho tài liệu nào về cái này không để tiện tra cứu...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 17:58 -
-
Trả lời cho Cần giúp Op-Amp Pre HA1457 /HA1457Wbởi nguyenha7940Vậy con bạn mới mua bị chết rồi. Chắc cần mua con khác thôi.... Con đó, giờ đặt mua cũng dễ...
-
Channel: Điện thanh
Hôm qua, 13:53 -
-
Trả lời cho Xin giúp đỡ về Opamp so sánh.bởi huukhai7Hi Bạn,
mình cũng từng bị trường hợp gần như bạn, thời điểm đầu tiên khi cấp nguồn con OA sẽ xuất xung mức 1, lúc ấy con OA 2 active ngay. Theo quan điểm mình, bạn chuyển sang so sánh âm ở con OA1 (Học theo bác Thành) và đầu ra con OA1...-
Channel: Điện tử công suất
Hôm qua, 12:57 -
-
Trả lời cho Xin file lcsc part number của linh kiệnbởi trthnguyenCâu hỏi k đầu k đuôi vậy ai trả lời được
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 10:22 -
-
Trả lời cho Xin file lcsc part number của linh kiệnbởi dinhthuong80Hỏi... người thiết kế hoặc google "xin hãy cho tôi file lcsc part number của linh kiện"
xem họ có cho thì lấy!!!-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 10:22 -
-
Trả lời cho Hỏi về sửa màn hình laptopbởi afrendlyTấm nền đổi cho nhau được bạn. Mình thử rồi. Nhưng mỗi nền lại bị 1 lỗi. Mình không biết tấm nền đó có tách ra đổi linh kiện qua cho nhau để thành 1 tấm nền dùng tốt được không?...
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 02:12 -
-
bởi lamvu0677Như tiêu đề,,mn biết chỉ dùm ạ
-
Channel: Điện tử dành cho người mới bắt đầu
22-03-2023, 19:02 -
Comment