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
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #16
    Viết tiếp đi Hải Bắc, bài viết của bạn rất có ích đấy.
    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


    • #17
      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 Matlabwww.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 Files
      Last 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


      • #18
        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


        • #19
          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)
          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??

          Để 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
          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ị.

          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


          • #20
            hay wa' chòi !...bis...bis..bis...

            Comment


            • #21
              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)
              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:
              X = handles.current_data;
              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


              • #22
                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 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


                • #23
                  Nguyên văn bởi ngohaibac Xem bài viết
                  Mì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


                  • #24
                    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


                    • #25
                      minh thu chạy lại cai file code ban gui nhưng chạy ko dược. Mong ban chi giáo thêm. Thứ 7 nộp bài mong chi giáo som!

                      Comment


                      • #26
                        Mình đang có ý tưởng về một chiếc computer mini ,rất cần các bạn góp ý thêm về phần kết nỗi với màn hình LCD
                        Bạn nào có hững thú thì PM cho mình nhá .
                        Y!H timve_quehuong88

                        Comment


                        • #27
                          các bác cho em hỏi hiện nay matlab đã hỗ trợ những loại VDk nào rồi .

                          Comment


                          • #28
                            Nguyên văn bởi qkhanh Xem bài viết
                            các bác cho em hỏi hiện nay matlab đã hỗ trợ những loại VDk nào rồi .
                            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ì ?
                            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


                            • #29
                              Nguyên văn bởi ngohaibac Xem bài viết
                              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ì ?
                              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áo

                              Comment


                              • #30
                                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

                                Về tác giả

                                Collapse

                                courtney Tìm hiểu thêm về courtney

                                Bài viết mới nhất

                                Collapse

                                Đang tải...
                                X