Mô phỏng các quá trình vật lý trên máy vi tính bằng XNA

Abstract: Teaching with the support of the computer is being more interested in teacher research. One of the capabilities of computers for teaching physics is a simulation of physical phenomena. Thanks to this capability that computers help students realize the physics knowledge more easily, thereby improving teaching effectiveness. This article introduces methods of simulating the physical processes on the computer with XNA, a tool developed for free game led to Microsoft corp

pdf8 trang | Chia sẻ: yendt2356 | Lượt xem: 428 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Mô phỏng các quá trình vật lý trên máy vi tính bằng XNA, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Tạp chí Khoa học và Giáo dục, Trường Đại học Sư phạm Huế ISSN 1859-1612, Số 01(13)/2010: tr. 101-108 MÔ PHỎNG CÁC QUÁ TRÌNH VẬT LÝ TRÊN MÁY VI TÍNH BẰNG XNA NGUYỄN THANH VŨ Sở Giáo dục và Đào tạo Tây Ninh Tóm tắt: Dạy học với sự hỗ trợ của máy vi tính là vấn đề đang được nhiều giáo viên quan tâm nghiên cứu. Một trong những ứng dụng của máy vi tính trong dạy học vật lý là mô phỏng các hiện tượng vật lý. Thông qua các mô phỏng đó, học sinh lĩnh hội được kiến thức vật lý dễ dàng và nhanh chóng hơn. Có rất nhiều phương pháp và công cụ tạo ra các mô phỏng. Bài báo này giới thiệu phương pháp mô phỏng các quá trình vật lý trên máy vi tính bằng XNA, một công cụ phát triển game miễn phí của hãng Microsoft. 1. ĐẶT VẤN ĐỀ Theo Lê Công Triêm, một trong những ứng dụng quan trọng của máy vi tính trong dạy học vật lý là mô phỏng các quá trình vật lý. Mô phỏng các quá trình vật lý thường được tiến hành song song với việc xây dựng mô hình. Có thể nói mô phỏng là quá trình thực hiện các mô hình đã được xây dựng. [1] Để thực hiện được việc mô phỏng các quá trình, hiện tượng vật lý, người ta thường sử dụng các phần mềm mô phỏng như Crocodile Physics, Working Model... Thường thì các phần mềm này tạo ra một môi trường mà người sử dụng có thể tạo ra một hệ thống vật chất có cấu tạo từ đơn giản đến phức tạp và sau đó cho hệ thống hoạt động. Các hệ thống vật chất này thuộc về nhiều lĩnh vực khác nhau như cơ học, điện học, từ học hay quang học. Hiện nay, có rất nhiều phần mềm hỗ trợ cho việc tạo ra các hệ thống nói trên. Mặc dù vậy, các phần mềm này không thể tạo ra mọi sự mô phỏng mà giáo viên mong muốn. Ví dụ, khi nghiên cứu chuyển động của vật bị ném xiên, một số giáo viên thích mô phỏng chuyển động của trái bóng rổ, trong khi một số giáo viên khác lại thích mô phỏng chuyển động của một quả đạn đại bác. Cùng một hiện tượng, một quá trình, nhưng thời điểm sử dụng khác nhau, mục tiêu khác nhau cũng đưa đến những yêu cầu về sự mô phỏng khác nhau. Ví dụ như cùng khảo sát chuyển động ném xiên của quả đại bác, nếu sử dụng sự mô phỏng để hỗ trợ xây dựng phương pháp tọa độ thì cần phải thể hiện hệ trục tọa độ và hình chiếu của quả đạn trên các trục, nhưng nếu sử dụng với mục đích củng cố kiến thức cuối bài học, thì chỉ cần có cơ chế thay đổi tốc độ và góc ném, đồng thời có một yêu cầu bắn trúng một mục tiêu nào đó, để học sinh tinh toán vận tốc đầu và góc nghiêng tương ứng với tầm ném xa cho trước. Rõ ràng là các nhà thiết kế của các hãng phần mềm khó mà đáp ứng hết được những yêu cầu đa dạng như vậy. Do đó, có thể nói, việc tự mô phỏng các quá trình, hiện tượng vật lý trên máy vi tinh phù hợp với yêu cầu dạy học là một nhu cầu khi dạy học với sự trợ giúp của máy tính. Vấn đề đặt ra ở đây là: làm thế nào để mô phỏng trên máy vi tính các quá trình vật lý hoặc các hiện tượng vật lý phù hợp với yêu cầu dạy học cụ thể? NGUYỄN THANH VŨ 102 2. PHƯƠNG PHÁP MÔ PHỎNG TRÊN MÁY VI TÍNH CÁC HIỆN TƯỢNG, QUÁ TRÌNH VẬT LÝ HỖ TRỢ DẠY HỌC Phương pháp tạo ra một ứng dụng mô phỏng trên máy vi tính cũng tương tự như phương pháp tạo ra một ứng dụng tin học, nhìn chung gồm các bước sau: phân tích, thiết kế, viết mã, chạy thử và đóng gói. Phân tích Công việc đầu tiên là giáo viên phải xác định được nội dung của mô phỏng. Có nghĩa là giáo viên phải xác định máy vi tính mô phỏng quá trình hay hiện tượng vật lý gì. Máy vi tính chỉ mô phỏng các hiện tượng hay quá trình trên thông qua một trong các mô hình của chúng, để sự mô phỏng có hiệu quả trong dạy học, giáo viên cần phải xác định sử dụng mô hình nào trong sự mô phỏng này. Xác định được mô hình cần sử dụng khi mô phỏng, có nghĩa là giáo viên xác định được một hệ thống các đối tượng trên máy vi tính và các quy luật vận động của chúng khi ứng dụng mô phỏng được thực thi. Kết quả của quá trình phân tích là giáo viên phải chỉ ra được: - Hệ thống các đối tượng vật chất ảo (trên máy vi tính) và quy luật hoạt động của chúng nhằm mô phỏng tốt các quá trình hay hiện tượng vật lý xác định. - Hệ thống các tác động từ người sử dụng lên các đối tượng nói trên và cách mà chúng đáp trả từng tác động. - Hệ thống các cách đưa các tác động nói trên vào máy vi tính. Thiết kế Thiết kế là quá trình lên kế hoạch lập trình nhằm tối ưu hóa quá trình viết mã và đảm bảo yêu cầu về mục tiêu của ứng dụng. Thiết kế được thực hiện dựa trên kết quả của quá trình phân tích. Thiết kế cần tuân theo trình tự sau: - Thiết kế giao diện sử dụng: quyết định xây dựng bao nhiêu màn hình. Ví dụ: màn hình khởi động, màn hình giúp đỡ, màn hình tùy chọn, màn hình vận hành, hệ thống menu Tuy nhiên, đối với các mô hình đơn giản, không quá nhiều tương tác, ta có thể chỉ thiết kế duy nhất một màn hình vận hành và có thể không cần thiết kế menu. - Thiết kế sự tương tác với ứng dụng: khi ứng dụng thực thi, ta tương tác với nó như thế nào? Dùng chuột hoặc bàn phím? Nếu dùng bàn phím thì phải xác định rõ chức năng của từng phím. Khi mô hình được thiết kế trên một màn hình duy nhất, ta phải chú ý hiển thị rõ chức năng của từng phím điều khiển lên màn hình để người sử dụng dễ thao tác. - Thiết kế các lớp đối tượng: dựa vào hệ thống các đối tượng vật chất ảo mà ta xác định được trong quá trình phân tích, ta xác định được các lớp đối tượng cần thiết kế. Dựa vào quy luật chuyển động của chúng và sự tương tác của người sử dụng lên mô hình và các hiệu ứng cần đưa vào, ta thiết kế được các thuộc tính và MÔ PHỎNG CÁC QUÁ TRÌNH VẬT LÝ TRÊN MÁY VI TÍNH BẰNG XNA 103 phương thức hoạt động của từng lớp đối tượng tương ứng. Các thuộc tính và phương thức hoạt động của một đối tượng thường được chia thành các phần sau: các thuộc tính của đối tượng, các phương thức khởi tạo, các hàm hành động và các hàm tính toán. Một lớp đối tượng được thiết kế tốt có nghĩa là ta phải mô tả đầy đủ và chi tiết các thành phần trên của nó. Mối quan hệ về mặt kế thừa của các lớp đối tượng cũng cần được chỉ ra. Đây là một thói quen lập trình tốt. Việc các định các mối quan hệ về mặt kế thừa giữa các lớp sẽ giúp chúng ta tiết kiệm một phần lớn công sức khi viết mã cho mô hình. Viết mã Viết mã là bước tiếp theo của thiết kế. Có thể xem bước thiết kế là lên kế hoạch còn viết mã là bước thực thi kế hoạch. Sau khi thiết kế, tùy vào khả năng của người lập trình mà có thể lựa chọn ngôn ngữ thích hợp để viết mã. Chạy thử Thông thường, khi thi công xong một hàm hoặc một thủ tục, ta phải tiến hành chạy thử nhiều lần. Kết quả chạy thử ổn định mới tiếp tục thi công hàm hoặc thủ tục tiếp theo. Khi dự án hoàn thành, phải tiến hành chạy thử toàn bộ dự án vài lần rồi mới tiến hành đóng gói. Đóng gói Đóng gói là khâu sau cùng khi thiết kế một dự án. Quá trình này tạo ra bộ file setup để triển khai ứng dụng lên máy tính khác. 3. MICROSOFT XNA VỚI VIỆC MÔ PHỎNG CÁC HIỆN TƯỢNG, QUÁ TRÌNH VẬT LÝ TRÊN MÁY VI TÍNH XNA Game Studio Express beta 1 được phát hành vào 30/8/2006, cho đến nay đã là phiên bản 3.0. XNA là viết tắt của “It’s Not an Acronym”. Thực chất XNA là một công cụ phát triển game dựa trên nền .Net Framework Compact 2.0 cho Xbox 360 và .Net Framework 2.0 cho Windows. Nó bao gồm tập hợp các lớp, thư viện đặc biệt dùng để phát triển game theo hướng phát huy tối đa mã tái sử dụng (reuse code). Ngôn ngữ lập trình C# là ngôn ngữ chính thức được XNA hỗ trợ. Đứng về mặt lập trình, XNA là một thư viện vỏ bọc để người dùng không gọi trực tiếp các thư viện của Directx. Điều này khiến cho đồ họa và âm thanh trong XNA tương đương với các game viết trên Directx nhưng lại tốn ít công sức hơn rất nhiều khi lập trình. Như vậy, các ứng dụng mô phỏng trong dạy học được thiết kế trên XNA có thể tận dụng tối đa sức mạnh của card đồ họa và card âm thanh, tạo ra các hiệu ứng thật ấn tượng góp phần tăng cường hứng thú học tập của học sinh.[2] Khác với ứng dụng windows chỉ vẽ lại cửa sổ khi có sự cố on paint hoặc on resize, XNA liên tục cập nhật cửa sổ Game 60 lần một giây (default của macromedia flash là 12 lần một giây). Chính vì thế mà các đối tượng chuyển động trong các ưng dụng viết bằng XNA uyển chuyển hơn, thật hơn với flash. Đứng về mặt lập trình, bằng cách sử NGUYỄN THANH VŨ 104 dụng một biến thời điểm, cứ mỗi lần vẽ lại cửa sổ, ta cho biến số này tăng thêm một lượng ∆t xác định. Chuyển động của vật trên màn hình có thể được thiết kế nhanh hay chậm tùy thuộc vào lượng ∆t này. Như vậy, có thể dễ dàng biểu diễn chuyển động của vật khi biết quy luật phụ thuộc vào thời gian của tọa độ, tức là phương trình chuyển động của nó. Các thư viện của XNA cung cấp khá đầy đủ các kiểu dữ liệu, hàm và thủ tục để vẽ một đối tượng lên màn hình. Các kiểu dữ liệu Vector2D, Vector3D rất tiện lợi khi xác định vị trí một vật trong không gian 2 chiều hay 3 chiều. Thủ tục Draw của đối tượng SpriteBatch có thể vẽ một đối tượng ra màn hình với nhiều tùy biến khác nhau: có thể xoay đối tượng quanh một tâm nào đó với một góc xoay cho trước, thu nhỏ hoặc phóng to đối tượng theo một tỉ lệ cho trước. Lớp Math và MathHelper cung cấp các thủ tục tính toán trên trường vector, các hàm lượng giác giúp người lập trình tính toán tọa độ và góc xoay của đối tượng, nhằm hiển thị nó lên cửa sổ một cách hợp lý và đơn giản hơn. XNA có thể hỗ trợ tốt lập trình đồ họa trong không gian 2 chiều (2D) hoặc 3 chiều (3D), tuy nhiên trong phạm vi bài báo này, tác giả chỉ đề cập tới các mô hình dạy học thiết kế trong không gian 2 chiều. Nhược điểm lớn nhất của XNA nằm trong sự tiện lợi của nó. Do XNA là một lớp bọc để người sử dụng Directx trong C#, nên sản phẩm của nó bắt buộc phải chạy trên nền .Net Framework, Directx và phải có thêm thư viện đồ họa của XNA. Điều này gây ra sự phiền toái khi triển khai ứng dụng của XNA. Tuy nhiên, trình đóng gói ứng dụng Build\Publish sẽ tự động hóa mọi thứ. Khi cài đặt, trình đóng gói sẽ tải về và cài đặt mọi thứ cần thiết: Directx, .Net Framework và thư viện XNA với điều kiện máy tính phải kết nối internet. Nhược điểm thứ hai là XNA đòi hói khá mạnh về cấu hình phần cứng. Để chạy được ứng dụng XNA, card màn hình máy tính phải hỗ trợ Shader Pixel 1.1 trở lên. Thường chỉ có các card màn hình có bộ nhớ trên 128 MB mới hỗ trợ Shader Pixel. Trong thực tế các máy vi tính để bàn từ sản xuất một số năm gần đây đều đạt chuẩn này. Máy tính xách tay sản xuất trong năm 2009 cũng đa số hỗ trợ Shader Pixel. Hay nói một cách khác, có thể có một số máy tính hiện nay không chạy nổi ứng dụng của XNA. Công cụ phát triển XNA dành cho máy vi tính hoàn toàn miễn phí và có thể tải về từ internet. Tuy nhiên nếu muốn phát triển ứng dụng XNA trên Xbox 360 thì phải tham gia câu lạc bộ XNA Framework với lệ phí 99 USD một năm. Hiện nay trên trang web của Microsoft đang phát hành song song hai bản XNA 2.0 dành cho Visual C# 2005 Express Edition SP1 hay Visual Studio 2005 và bản XNA 3.0 dành cho Visual C# 2008 Express Edition SP1 hay Visual Studio 2008. Sau đây là các bước tải về và cài đặt XNA 3.0 dành cho C# 2008.[3] Bước 1: Tải về C# 2008 từ địa chỉ chọn nút download trong trong Visual C# 2008. Trình setup sẽ tự động cài đặt mọi thứ trong vòng từ 30 đến 60 phút. Sau khi cài đặt, vào Help\Register Product để đăng ký với MÔ PHỎNG CÁC QUÁ TRÌNH VẬT LÝ TRÊN MÁY VI TÍNH BẰNG XNA 105 Microsoft. Việc đăng ký này đòi hỏi phải có một tài khoảng trong trang Web của Microsoft. Tuy nhiên, việc đăng ký tài khoản này hoàn toàn miễn phí. Bước 2: Vào địa chỉ chọn menu Download categories\Games, tiếp tục chọn Microsoft XNA Game 3.0 Studio để tải về và cài đặt XNA. Dung lượng tải về khoảng vài chục MB và thời gian cài đặt khoảng từ 30 phút đến 45 phút. 4. MÔ PHỎNG CHUYỂN ĐỘNG CỦA VẬT NÉM XIÊN BẰNG XNA Phân tích Ứng dụng mô phỏng được sử dụng khi dạy bài “Chuyển động của vât bị ném”, bài thứ sáu của chương II “Động lực học chất điểm”, Vật lý 10 nâng cao. Trước khi dạy phần phương pháp tọa độ. Khi mở bài, giáo viên cần cho học sinh thấy được sự phụ thuộc của tầm bay cao H và tầm bay xa phụ thuộc vào vận tốc đầu v0 và góc ném α. Giáo viên cần có một khẩu pháo có thể thay đổi được góc bắn và vận tốc đầu của quả đạn. Khi bắn, viên đạn phải chuyển động tuân theo quy luật chuyển động của vật ném xiên, chạm đất và nổ. Để học sinh dễ hình dung về quỹ đạo của vật ném xiên, khi chuyển động viên đạn vẽ lại quỹ đạo của nó. Sau khi đạn nổ, màn hình phải hiện lên tầm bay cao H và tầm ném xa L của quả đạn. Như vậy, đối tượng vật chất ảo của ứng dụng gồm có khẩu súng và quả đạn. Khẩu súng đứng yên, góc hợp bởi nòng súng và phương ngang thay đổi được. Viên đạn chuyển động theo quy luật của vật ném xiên với vận tốc đầu và góc ném có thể thay đổi được. Tác động đưa từ bên gồm có: thay đổi góc bắn của súng, thay đổi vận tốc đầu của đạn, bắn, khởi tạo lại số liệu và thoát . Người tác động là giáo viên. Thiết kế - Thiết kế giao diện sử dụng: dự án chỉ gồm một mô hình duy nhất, nên có thể chỉ cần một màn hình vận hành (action scene) - Thiết kế sự tương tác với mô hình:Để đơn giản, mô hình này có thể dùng bàn phím để tương tác. + Nút ↑ , ← để tăng góc bắn và ↓ , → để giảm góc bắn của khẩu đại bác + Nút PageUp, Home để tăng tốc độ đầu và Page Down, End để giảm tốc độ đầu + Nút Space bar để bắn + Nút R khởi tạo lại từ đầu + Nút ESC thoát khỏi ứng dụng NGUYỄN THANH VŨ 106 Hình 1. Giao diện mô hình chuyển động của vật bị ném thiết kế bằng XNA - Thiết kế các lớp đối tượng: 1. Lớp Ground: Chức năng: vẽ nền cho ứng dụng. Phương thức khởi tạo chủ yếu là nạp hình nền đã được vẽ sẵn ở ngoài bằng Paint Brush. 2. Lớp Gun: Có nhiệm vụ vẽ lại khẩu đại bác. Phương thức khởi tạo: nạp hình của khẩu đại bác. Hàm hành sự: theo dõi sự thay đổi của góc bắn a, rồi chỉnh lại độ nghiêng của nòng súng cho thích hợp. 3. Lớp Rocket Chức năng: vẽ lại quả đạn khi chuyển động. Phương thức khởi tạo: nạp hình quả đạn, lấy tọa độ của súng làm tọa độ đầu. Các thuộc tính quan trọng: + IsFlying: cho biết quả đạn có đang bay hay không + L: tầm ném xa + H: độ cao cực đại + InitialPosition: tọa độ đầu + Time: thời điểm (biến t). MÔ PHỎNG CÁC QUÁ TRÌNH VẬT LÝ TRÊN MÁY VI TÍNH BẰNG XNA 107 Hàm hành sự: cập nhận tọa độ và góc nghiên của đạn tại mọi thời điểm và sau đó vẽ lại cho thích hợp. Sử dụng phương trình chuyển động: ( ) ( ) 0 0 2 0 0 1 2 x x v cos t y y v sin t gt α α ⎧ = + ⎪ ⎨ = + +⎪⎩ để xác định tọa độ của đạn và sử dụng phương trình vận tốc: ( ) 0 0 x y v v cos v v sin t gt α α =⎧ ⎨ = −⎩ để xác định góc nghiên của đạn trên quỹ đạo. Khi lập trình cần chú ý tọa độ đồ họa màn hình khác hệ trục tọa độ Oxy thường dụng. Hàm tính toán: xác định tọa độ của đạn có vượt ra ngoài cửa sổ không ? Quả đạn đã rơi đến đất chưa ? 4. Lớp Explosion Chức năng: tạo ra hiệu ứng nổ. Phương thức khởi tạo: nạp hình ảnh để tạo hiệu ứng nổ. Hàm hành sự: kiểm tra xem quả đạn có rơi xuống nền chưa, nếu rơi xuống thì tạo hiệu ứng nổ. 5. Lớp MySound Chức năng: tạo hiệu ứng âm thanh. Phương thức khởi tạo: nạp tập tin âm thanh. Hàm hành sự: kiểm tra bàn phím, nếu người sử dụng bấm space bar đển bắng thì tạo hiệu ứng đạn bay. Nếu quả đạn rơi tiếp đất thì tạo hiệu ứng âm thanh đạn nổ. 6. Lớp Result Chức năng: ghi lại kết quả L và H ở các lần bắn khác nhau, ngoài ra lớp này còn chịu trách nhiệm vẽ lại quỹ đạo của đạn ở mỗi lần bắn 7. Lớp ScreenSize Chức năng: chứa các biến toàn cục của chương trình. Các biến này được khai ở dạng static. 8. Lớp Game1 Chức năng: tạo đối tượng của các lớp trên, phối hợp hoạt động của chúng và tạo sự tương tác từ ngoài vào thông qua bàn phím. NGUYỄN THANH VŨ 108 TÀI LIỆU THAM KHẢO [1] Lê Công Triêm (1998). Ứng dụng máy tính điện tử trong dạy học vật lý ở trường phổ thông. Tạp chí Giáo dục. [2] Alexandre Lobão - Bruno Evangelista - José Antonio Leal de Farias (2008). Beginning XNA 2.0 Game Programming From Novice to Professional. Publisher Press. [3] Riemer Grootjan (2008), XNA usingC #, from: Title: SIMULATING THE PHYSICAL PROCESSES ON THE COMPUTER WITH XNA Abstract: Teaching with the support of the computer is being more interested in teacher research. One of the capabilities of computers for teaching physics is a simulation of physical phenomena. Thanks to this capability that computers help students realize the physics knowledge more easily, thereby improving teaching effectiveness. This article introduces methods of simulating the physical processes on the computer with XNA, a tool developed for free game led to Microsoft corp. ThS. NGUYỄN THANH VŨ Sở Giáo dục và Đào tạo Tây Ninh.

Các file đính kèm theo tài liệu này:

  • pdf19_298_nguyenthanhvu_17_nguyen_thanh_vu_8343_2021145.pdf