PIC Vietnam

Go Back   PIC Vietnam > Robotics > Matlab-Simulink & Labview & 20-Sim

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Matlab-Simulink & Labview & 20-Sim Các công cụ mô phỏng đa ngành...

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 04-08-2013, 04:14 AM   #2
nhanconan030789
Đệ tử 3 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 49
:
Smile

Trích:
Nguyên văn bởi nguyennam1890 View Post
Em mới làm quen với Matlab.Phần nhận và truyền dữ liệu thì em đã làm được ở Tag Command. Bây giờ em muốn làm cái GUI đơn giản để giao tiếp lấy giá trị xung của động cơ rồi hiển thị lên ô Text .Em đang vướng ở chỗ không biết làm sao để tự động lấy giá trị liên tục.Tức là ở chỗ đặt đoạn code ở chỗ nào( button thì mỗi lần nhấn mới lấy được, radio button thì ko biết...., còn figure thi ko thấy tác dụng hoặc làm sai...).Nếu là Visual Basic thì đặt ở MSComm hoặc figure cũng được thì phải.Em coi cái RS232Comm của a.Ngô Hải Bắc thì chóng mặt quá( chắc do nội công chưa đủ). Vậy có ai biết giúp em với, nếu có cái file ví dụ nữa thi quá tốt!!! em cảm ơn trước!!!
Chào bạn, để nhận được tự động trong GUI thì bạn sẽ dùng chức năng ngắt của đối tượng cổng com, có nhiều kiểu ngắt: ngắt sau khi nhận đủ số byte định trước, hay ngắt khi nhận được ký tự xuống dòng: LF, ngắt khi bị lỗi vv.
Sau khi khởi tạo cổng com với lệnh: s=serial('COM1'), COM1 là môt ví dụ, bạn dùng lệnh get(s) để lấy thông tin về cổng com
ByteOrder = littleEndian
BytesAvailable = 0
BytesAvailableFcn = Dòng 1
BytesAvailableFcnCount = 48
BytesAvailableFcnMode = terminator
BytesToOutput = 0
ErrorFcn =
InputBufferSize = 512
Name = Serial-COM1
ObjectVisibility = on
OutputBufferSize = 512
OutputEmptyFcn =
RecordDetail = compact
RecordMode = overwrite
RecordName = record.txt
RecordStatus = off
Status = closed
Tag =
Timeout = 10
TimerFcn =
TimerPeriod = 1
TransferStatus = idle
Type = serial
UserData = []
ValuesReceived = 0
ValuesSent = 0

SERIAL specific properties:
BaudRate = 9600
BreakInterruptFcn =
DataBits = 8
DataTerminalReady = on
FlowControl = none
Parity = none
PinStatus = [1x1 struct]
PinStatusFcn =
Port = COM1
ReadAsyncMode = continuous
RequestToSend = on
StopBits = 1
Terminator = LF Dòng 2


bạn quan tâm đến dòng 1 và 2, Dòng 1 định nghĩa hàm mà bạn sẽ gọi khi ngắt xảy ra
Dòng 2 mô tả khi nào ngắt xảy ra:
+ LF: ngắt khi nhận được ký tự xuống dòng( hex: 0x0A, dec: 10, \n với C, ví dụ từ vdk bạn gửi printf("100\n"))
+ byte: ngắt khi cổng com nhận đủ số byte định trước
Ở đây bạn chỉ cần khai báo hàm cần gọi khi ngắt, còn lại cứ để mặc định, lưu ý các khai báo này phải thực hiện trước khi mở cổng: fopen
Khai báo hàm ngắt như sau: set(s,'BytesAvailableFcn',{@thanh,hObject,handles} );
Đồng thời bạn củng phải viết nội dung cho hàm thanh, hàm này bạn tự add thêm vào file *.m đi kèm với file *.fig như ví dụ bên dưới.

function thanh(obj,event,hObject, handles)
data=fscanf(obj);
set(handles.data_text,'string',data(1:end-1));

obj là đối tượng cổng com, handles là tham chiếu tổng quát đến tất cả các đối tượng của figure, nếu không có khai báo này ở phần khai báo hàm ngắt thì bạn sẽ không thể chuyển dữ liệu nhận được đến các đối tượng khác.

Trong chương trình mình đính kèm sẽ thực hiện việc tìm kiếm cổng com đang tồn tại trong máy tự động và kết nối, khi cổng com nhận được dữ liệu nó sẽ tự động chuyển đến textbox, nếu máy bạn có cỏng com ảo bạn có thể dùng phần mềm terminal để mô phỏng hoặc giao tiếp trực tiếp với vi điều khiển

ví dụ bạn nhận được chuổi abc1234 và ký tự xuống dòng, nó sẽ hiện thị ra textbox abc1234
Link:http:http://www.youtube.com/watch?v=UIdkq...ature=youtu.be

Hy vọng giúp ích được bạn.
Hình Kèm Theo
File Type: png 8-4-2013 2-59-22 AM.png (10.6 KB, 45 lần tải)
File Kèm Theo
File Type: rar QuangThanh.rar (6.3 KB, 48 lần tải)
nhanconan030789 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 10:23 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam