Bài toỏn xỏc định điện trở của búng đốn.

Một phần của tài liệu Báo cáo tham luận hội nghị ứng dụng công nghệ Multimedia tong giáo dục đào tạo (Trang 46 - 49)

- CÁC PHẦN MỀM TẠO RA DỮ LIỆU MULTIMEDIA Cỏc phần mềm tạo ảnh.

2.2Bài toỏn xỏc định điện trở của búng đốn.

2. Xõy dựng module điều khiển tương tỏc bằng Lingo trong Director: 1 Tổng quan chung về lập trỡnh Lingo

2.2Bài toỏn xỏc định điện trở của búng đốn.

Bài toỏn 1: cho trước cỏc linh kiện mạch điện: búng đốn, vụn kế, ampekế, nguồn điện, khoỏ đúng mở mạch điện, dõy dẫn điện. Tiến hành mắc mạch điện và đo điện trở búng

đốn.

Giải quyết bài toỏn bằng Director:

Phõn tớch:

Việc thực hiện bài toỏn trong phũng thớ nghiệm thực khụng cú gỡ khú khăn, tuy nhiờn, trong một thớ nghiệm ảo, ta cần biết nờn sử dụng những đối tượng nào làm linh kiện để

việc lắp mạch và đo điện trở hiệu quả nhất.

Cỏc linh kiện mà hỡnh dạng khụng thay đổi như: nguồn điện, ăm pe kế, vụn kế, búng đốn

được xem như những đối tượng ảnh (ImageObject) được chốn vào như cỏc castmember. Riờng dõy dẫn: do đặc tớnh của dõy dẫn là cú đường đi, độ dài ngắn do người sử dụng quy

định lỳc mắc mạch nờn thay vỡ dựng một hỡnh ảnh cú sẵn, ta sẽ sinh ra dõy dẫn ngay lỳc người dựng nối dõy bằng chuột. Như vậy để lưu lại được đường đi của dõy dẫn, ta cần một mảng để lưu toạđộ chuột đi qua.

Xõy dựng:

Module khởi tạo cỏc giỏ trị khi movie bắt đầu chạy:

global nguon, ampe, volt , N_am, N_duong, A_am,A_duong,V_am, V_duong, den, khoa, den1, dotlist, mylist, nut

global E, R, rt, ra, rv global I, U, ss

global dotlist, canvasImg, dsListID

on startmovie dotlist=[]

canvasImg=member("test").image dsListID=[]

repeat with i=1 to 16 sprite(i).visible=false end repeat dau=7 cuoi=16 nut=[] j=1

repeat with i=dau to cuoi temp=[:]

addProp temp, #sp, sprite(i) addProp temp,#listnut, [] addProp temp,#id, i-6

addProp temp,#listID,[] addProp temp,#listdot,[[],[],[],[],[],[],[],[],[],[]] nut[j]= temp j=j+1 end repeat den= sprite(4) khoa= sprite(5) N_duong= sprite(7) N_am= sprite(8) V_duong= sprite(9) V_am= sprite(10) A_duong= sprite(11) A_am= sprite(12) khoa1= sprite(13) t1=0 E=0 ra=0.01 rv=10000 rt=0.02 R=3 I=0 U=0 end

Cỏc biến dựng chung được khai bỏo sau từ khoỏ Global: Tờn biến Mục đớch sử dụng

Dotlist Là một danh sỏch tuyến tớnh, lưu trữ cỏc điểm trờn đường vẽ khi người dựng tiến hành nối dõy giữa cỏc cực linh kiện.

Nut Là danh sỏch thuộc tớnh, trong đú mỗi phần tử lưu trữ cỏc thụng số về một nỳt (cực) của linh kiện. Chỳ ý rằng khi mắc mạch điện, tỡnh trạng hiện thời của mạch hoàn toàn phụ thuộc vào trạng thỏi của cỏc nỳt (cực điện). Sp: layer chứa nỳt.

Listnut: danh sỏch cỏc nỳt được nối với nỳt hiện tại.

Listdot:Là một danh sỏch tuyến tớnh, lưu trữ cỏc điểm trờn đường vẽ khi người dựng tiến hành nối dõy giữa cỏc cực linh kiện.

canvasImg Dựng để lưu trữđối tượng ảnh mà trờn đú ta sẽ vẽđường dõy nối. Module hiển thị một linh kiện:

property mysprite, dau1, dau2, kim

property bt1, bt2, dc on mouseup me if not(cam) then if mysprite.visible then mysprite.visible= 0 dau1.visible=0 dau2.visible=0 sprite(me.spritenum).member=bt1 if kim<> 0 then sprite(kim).visible=0 end if else mysprite.visible= 1 dau1.visible=1 dau2.visible=1 sprite(me.spritenum).member=bt2 mysprite.member=dc if kim <> 0 then sprite(kim).visible=true end if end if end on getPropertyDescriptionList me return \ [ \ #mysprite: \ [ \

#comment: "dc hien thi:", \ #format: #sprite, \

#default: sprite(1) \ ],\

#dau1:\ [ \ (adsbygoogle = window.adsbygoogle || []).push({});

#comment: "dau1 hien thi:", \ #format: #sprite, \

#default: sprite(7) \ ],\

#dau2:\ [ \

#comment: "dau2 hien thi:", \ #format: #sprite, \

#default: sprite(8) \ ],\

#kim:\ [ \

#comment: "kim hien thi:", \ #format: #integer, \ #default: 25 \ ],\ #dc:\ [ \ #comment: "member dc:", \ #format: #member, \ #default: member("nguonthat1") \ ],\ #bt1:\ [ \

#format: #member, \

#default: member("nguon1") \ ],\

#bt2:\ [ \

#comment: "member bt cua nut dc2:", \ #format: #member, \

#default: member("nguon1-2") \ ]]

end

Module này gồm 2 script: mouseup và getPropertyDescriptionList.

Để script mouseup cú thể sử dụng với nhiều linh kiện khỏc nhau, thay vỡ khai bỏo cỏc biến, ta sử dụng thuộc tớnh (property)để khai bỏo thụng số vềđối tượng ngay khi ta kộo thả module vào đối tượng.

Script mouseupđỏp ứng lại thao tỏc nhả chuột của người dựng. Khi người dựng nhả chuột, thỡ một linh kiện, chẳng hạn vụn kế(mysprite) sẽ hiển thị trờn màn hỡnh, cựng với vụn kế là 2 cực õm – dương mà ta dựng 2 biến dau1, dau2để lưu cũng hiển thị. Tiếp

đú, nếu linh kiện này cú kim đo (kim) thỡ ta hiển thị kim đo. Lệnh hiển thị rất đơn giản: Mysprite.visible=1

Script getPropertyDescriptionList: định dạng giỏ trị khởi tạo, kiểu giỏ trị cho cỏc thuộc tớnh đó khai bỏo ở trờn.

Module nối dõy:

……..

Đõy là module được xõy dựng theo phương phỏp hướng đối tượng. Đầu tiờn ta tạo ra một đối tượng đoạn thẳng, gỏn thuộc tớnh (me, mate, myID) và phương thức (Draw, Draw1) cho nú: Phương thức Draw() vẽ một đoạn thẳng màu đỏ nối giữa hai điểm do đối tượng memate lưu trữ. Phương thức Draw1() vẽ một đoạn thẳng trựng màu với màu nền nối giữa hai điểm do đối tượng me va mate lưu trữ, đõy là một thủ thuật để gỡ bỏ dõy nối khi điều kiện nối khụng hợp lệ.

Trờn đõy chỉ là một số những đoạn mó cơ bản, để nắm được ý nghĩa của cỏc biến và chức năng của cỏc module ta cần tham khảo thờm toàn bộ chương trỡnh “Xỏc định

điện trở” của đề tài.

Một phần của tài liệu Báo cáo tham luận hội nghị ứng dụng công nghệ Multimedia tong giáo dục đào tạo (Trang 46 - 49)