1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thực nghiệm và biên soạn tài liệu hướng dẫn chi tiết cho các bài thí nghiệm mới phần điện tử có ghép nối máy tính ở khoa vật lí (2)

115 12 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 115
Dung lượng 3,43 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 1. Lí do chọn đề tài (12)
  • 2. Mục tiêu nghiên cứu (13)
  • 3. Nhiệm vụ nghiên cứu (13)
  • 4. Đối tượng và phạm vi nghiên cứu (13)
  • 5. Phương pháp nghiên cứu (14)
  • 6. Tổng quan vấn đề nghiên cứu (14)
  • CHƯƠNG 1: CƠ SỞ LÍ LUẬN VỀ PHƯƠNG PHÁP GIẢNG DẠY VÀ ĐÁNH GIÁ THÍ NGHIỆM THỰC HÀNH VẬT LÍ (15)
    • 1.1. Dạy học phát triển năng lực (15)
      • 1.1.1. Điều kiện để triển khai hiệu quả định hướng dạy học phát triển năng lực (16)
      • 1.1.2. Dạy học theo định hướng phát triển năng lực (16)
    • 1.2. Các năng lực chuyên biệt trong bộ môn Vật lí (18)
      • 1.2.1. Xây dựng các năng lực chuyên biệt bằng cách cụ thể hóa các năng lực chung (18)
      • 1.2.2. Xây dựng các năng lực chuyên biệt dựa trên đặc thù môn học (21)
    • 1.3. Lợi ích của việc dạy học phát triển năng lực (27)
      • 1.3.2. Các đặc điểm của thí nghiệm Vật lí (28)
      • 1.3.3. Chức năng của thí nghiệm vật lí trong dạy học vật lí (29)
  • CHƯƠNG 2: TỔNG QUAN LÝ THUYẾT VỀ MẠCH LẬP TRÌNH ARDUINO (31)
    • 2.1.1. Giới thiệu chung (31)
    • 2.1.2. Bo mạch Arduino UNO (32)
    • 2.2. Môi trường phát triển tích hợp (34)
      • 2.2.1. Giới thiệu phần mềm code Arduino IDE (35)
      • 2.2.2. Quản lý thư viện (36)
      • 2.2.3. Quản lý bo Arduino mở rộng (38)
    • 2.3. Lập trình phần mềm Visual Studio trên máy tính (38)
      • 2.3.1. Khởi tạo dự án (39)
      • 2.3.2. Lập trình trao đổi dữ liệu qua cổng nối tiếp (41)
  • CHƯƠNG 3: THIẾT KẾ NỘI DUNG TIẾN TRÌNH GIẢNG DẠY VÀ KIỂM TRA ĐÁNH GIÁ CHUYÊN MÔN (42)
    • 3.1. Khái quát hóa các bài thí nghiệm mới có ghép nối truyền dữ liệu từ máy tính ở khoa Vật lí (42)
    • 3.2. Thiết kế các bài thí nghiệm ghép nối máy tính (44)
      • 3.2.1. Thí nghiệm 1: Điều khiển hiển thị LED RGB và một chuỗi kí tự nhập vào từ máy tính cho hiển thị lên màn hình LCD (44)
      • 3.2.2. Thí nghiệm 2: Điều khiển động cơ quay theo một góc nhập từ bàn phím máy tính (51)
      • 3.2.3. Thí nghiệm 3: Đo nhiệt độ và độ ẩm của môi trường (62)
      • 3.2.4. Thí nghiệm 4: Đo khoảng cách bằng siêu âm (67)
    • 3.3. Xây dựng tiến trình giảng dạy (78)
    • 3.4. Xây dựng rubric đánh giá các kỹ năng (79)
      • 3.4.1. Rubric đánh giá kỹ năng thực nghiệm, thái độ học tập trách nhiệm (79)
      • 3.4.2. Rubric đánh giá kỹ năng làm việc nhóm (81)
      • 3.4.3. Rubric đánh giá kỹ năng báo cáo thuyết trình (83)
    • A. Kết luận (85)
    • B. Khuyến nghị: ............................................................................................................. 74 TÀI LIỆU THAM KHẢO .......................................................................................... IX PHỤ LỤC ................................................................................................................ PL 1 (85)

Nội dung

Để nâng cao chất lượng dạy học bộ môn Vật Lí, tôi nghĩ trong quá trình giảng dạy lý thuyết chúng ta cần trang bị cho các em các bài thí nghiệm thực hành giúp các em có thể hệ thống lại t

Mục tiêu nghiên cứu

- Nghiên cứu cơ sở lí luận về phương pháp giảng dạy theo định hướng phát triển năng lực

- Nghiên cứu tổng quan lý thuyết về mạch lập trình Arduino IDE

- Biên soạn nội dung cơ sở lý thuyết, tiến trình thực hiện các bài thí nghiệm điện tử mới có ghép nối máy tính ở Khoa Vật Lí

- Xây dựng rubric đánh giá chuyên môn.

Nhiệm vụ nghiên cứu

- Nghiên cứu các chuẩn đầu ra của bộ môn thí nghiệm thực hành điện tử

- Nghiên cứu cơ sở lý thuyết về mạch lập trình Arduino IDE, từ đó xây dựng chi tiết tiến trình thực hiện các bài thí nghiệm điện tử có ghép nối máy tính

- Thực nghiệm các bài thí nghiệm kết nối mạch điện tử với máy tính

- Nghiên cứu rubric đánh giá bộ môn thí nghiệm Vật lý.

Phương pháp nghiên cứu

- Phương pháp phân tích và tổng hợp lý thuyết

- Phương pháp thực nghiệm khoa học

- Phương pháp quan sát khoa học

Tổng quan vấn đề nghiên cứu

Khóa luận tốt nghiệp năm 2018 của sinh viên Lê Thị Mỹ Hạnh đã từng đi qua về mạch lập trình Arduino nhưng mạch được ghép nối chạy bởi phần mềm Labview và ở bài luận này chỉ tập trung đơn giản nói về mạch lập trình chứ chưa đi qua cách hướng dẫn giảng dạy cho sinh viên thực hành thông qua các phương pháp giảng dạy Chính vì thế tôi đã hình thành và phát triển nên khóa luận của mình về cách dạy học theo định hướng phát triển năng lực các bài thí nghiệm điện tử về mạch lập trình ở môn Vật lý kết hợp giữa phần mềm code Arduino IDE và phần mềm Visual Suto để thực hiện các bài thí nghiệm dưới đây Hi vọng sẽ giúp các bạn sinh viên sau này có được vốn kiến thức về mạch điện tử để phát triển những sản phẩm từ đơn giản đến hiện đại hóa nhất phục vụ cho đời sống và sản xuất

Phần thứ hai: NỘI DUNG

CƠ SỞ LÍ LUẬN VỀ PHƯƠNG PHÁP GIẢNG DẠY VÀ ĐÁNH GIÁ THÍ NGHIỆM THỰC HÀNH VẬT LÍ

Dạy học phát triển năng lực

Ngày nay dạy học dựa trên phát triển năng lực đã trở thành một chủ đề nóng trong giáo dục Nó ngày càng trở nên nóng hơn khi chính phủ đang nỗ lực tìm kiếm giải pháp trong cải cách giáo dục và đo lường chính xác hơn kết quả học tập của học sinh Hầu hết các trường học đều tuyên bố là họ đang dạy học theo định hướng phát triển năng lực nhưng lại không thể định nghĩa được một cách chính xác được về nó Vì vậy cần xác định lại khái niệm học tập dựa trên phát triển năng lực là gì? và nó mang lại lợi ích như thế nào cho mỗi trường học cũng như hệ thống giáo dục nói chung?

Vậy dạy học dựa trên phát triển năng lực là gì và điều gì làm cho nó khác biệt? Đặc điểm quan trọng nhất của dạy học phát triển năng lực là đo được “năng lực” của học sinh hơn là thời gian học tập và cấp lớp Học sinh thể hiện sự tiến bộ bằng cách chứng minh năng lực của mình, điều đó có nghĩa là chúng phải chứng minh mức độ làm chủ hay nắm vững kiến thức và kỹ năng (được gọi là năng lực) trong một môn học cụ thể, cho dù mất bao lâu Mặc dù các mô hình học truyền thống vẫn có thể đo lường được năng lực, nhưng chúng phải dựa vào thời gian, các môn học được sắp xếp theo cấp lớp vào từng kì học, năm học Vì vậy, trong khi hầu hết các trường học truyền thống đều cố định thời gian học tập theo năm học thì dạy học phát triển năng lực lại cho phép chúng ta giữ nguyên việc học và thay đổi lượng thời gian học Dạy học dựa trên phát triển năng lực tốt hơn cho phép mọi học sinh học tập, nghiên cứu theo tốc độ của riêng của chúng

Chúng ta đều thừa nhận rằng, mỗi học sinh là một cá thể độc lập với sự khác biệt về năng lực, trình độ, sở thích, nhu cầu và nền tảng xuất thân Dạy học phát triển năng lực thừa nhận thực tế này và tìm ra được những cách tiếp cận phù hợp với mỗi học sinh Không giống như phương pháp “một cỡ vừa cho tất cả” một chiếc áo tất cả đều mặc vừa, nó cho phép học sinh được áp dụng những gì đã học, thông qua sự gắn kết giữa bài học và cuộc sống Điều này cũng giúp học sinh thích ứng với những thay đổi của cuộc sống trong tương lai Đối với một số học sinh, dạy học phát triển NL cho phép đẩy nhanh

1.1.1 Điều kiện để triển khai hiệu quả định hướng dạy học phát triển năng lực: Để triển khai một cách hiệu quả, dạy học phát triển năng lực cần phải:

1 Đánh giá “năng lực” của học sinh hơn là thời gian học

2 Khai thác các thế mạnh của công nghệ cho việc dạy và học Hướng dẫn qua máy tính cho chúng ta khả năng cá nhân hóa việc học cho mỗi học sinh Bởi vì mỗi học sinh ở một tốc độ khác nhau và đến trường với kiến thức khác nhau, đây là một yêu cầu cơ bản của dạy học dựa trên năng lực

3 Thay đổi căn bản vai trò của giáo viên, khi các giáo viên trước kia thường làm việc với học sinh theo các lớp, dạy học theo lịch trong một số tuần quy định, giáo viên là người trực tiếp đưa hướng dẫn và kiểm soát quá trình học tập Đối với học sinh, điều này không phù hợp Một số học sinh sẽ cần chậm lại, một số khác có thể cần hoạt động nhanh hơn Học tập dựa trên phát triển năng lực làm thay đổi vai trò của giáo viên từ “một nhà hiền triết, suối nguồn của tri thức” đến “người hướng dẫn, đồng hành” Các giáo viên làm việc với học sinh, hướng dẫn chúng học tập, trả lời các câu hỏi, hướng dẫn thảo luận và giúp học sinh tổng hợp và áp dụng kiến thức

4 Xác định năng lực và phát triển các đánh giá phù hợp, tin cậy Tiền đề cơ bản của dạy học phát triển năng lực là chúng ta xác định những năng lực nào cần hình thành cho học sinh và có minh chứng cho các năng lực đó khi học sinh tốt nghiệp Điều này có nghĩa là chúng ta phải xác định các năng lực một cách rất rõ ràng Lấy nhu cầu của xã hội tương lai làm cơ sở Khi các năng lực được thiết lập, chúng ta cần các chuyên gia đánh giá để đảm bảo rằng chúng ta đo lường được một cách chính xác nhất có thể

1.1.2 Dạy học theo định hướng phát triển năng lực:

Việc dạy học định hướng phát triển năng lực về bản chất chỉ là cần và coi trọng thực hiện mục tiêu dạy học hiện tại ở các mức độ cao hơn, thông qua việc yêu cầu HS

“vận dụng những kiến thức, kĩ năng một cách tự tin, hiệu quả và thích hợp trong hoàn cảnh phức hợp và có biến đổi, trong học tập cả trong nhà trường và ngoài nhà trường, trong đời sống thực tiễn” Việc dạy học thay vì chỉ dừng ở hướng tới mục tiêu dạy học hình thành kiến thức, kĩ năng và thái độ tích cực ở HS thì còn hướng tới mục tiêu xa các hành động có ý nghĩa đối với người học Nói một cách khác việc dạy học định hướng phát triển năng lực về bản chất không thay thế mà chỉ mở rộng hoạt động dạy học hướng nội dung bằng cách tạo một môi trường, bối cảnh cụ thể để HS được thực hiện các hoạt động vận dụng kiến thức, sử dụng kĩ năng và thể hiện thái độ của mình Như vậy việc dạy học định hướng phát triển năng lực được thể hiện ở các trong các thành tố quá trình dạy học như sau:

1.1.2.1 Về mục tiêu dạy học:

Mục tiêu kiến thức: ngoài các yêu cầu về mức độ như nhận biết, tái hiện kiến thức cần có những mức độ cao hơn như vận dụng kiến thức trong các tình huống, các nhiệm vụ gắn với thực tế Với các mục tiêu về kĩ năng cần yêu cầu HS đạt được ở mức độ phát triển kĩ năng thực hiện các hoạt động đa dạng Các mục tiêu này đạt được thông qua các hoạt động trong và ngoài nhà trường

1.1.2.2 Về phương pháp dạy học:

Ngoài cách dạy học thuyết trình cung cấp kiến thức cần tổ chức hoạt động dạy học thông qua trải nghiệm, giải quyết những nhiệm vụ thực tiễn Như vậy thông thường, qua một hoạt động học tập, HS sẽ được hình thành và phát triển không phải chỉ một loại năng lực mà là được hình thành đồng thời nhiều năng lực hoặc nhiều năng lực thành tố mà ta không cần (và cũng không thể) tách biệt từng thành tố trong quá trình dạy học

1.1.2.3 Về nội dung dạy học:

Cần xây dựng các hoạt động, chủ đề, nhiệm vụ đa dạng gắn với thực tiễn

1.1.2.4 Về kiểm tra đánh giá:

Về bản chất đánh giá năng lực cũng phải thông qua đánh giá khả năng vận dụng kiến thức và kĩ năng thực hiện nhiệm vụ của HS trong các loại tình huống phức tạp khác nhau Trên cơ sở này, các nhà nghiên cứu ở nhiều quốc gia khác nhau đề ra các chuẩn năng lực trong giáo dục tuy có khác nhau về hình thức, nhưng khá tương đồng về nội hàm Trong chuẩn năng lực đều có những nhóm năng lực chung Nhóm năng lực chung này được xây dựng dựa trên yêu cầu của nền kinh tế xã hội ở mỗi nước Trên cơ sở năng lực chung, các nhà lí luận dạy học bộ môn cụ thể hóa thành những năng lực chuyên biệt Tuy nhiên không dừng ở các năng lực chuyên biệt, các tác giả thể hóa thành các thành tố liên quan đến kiến thức, kĩ năng… để định hướng quá trình dạy học, kiểm tra đánh giá của GV

Khác với việc tổ chức hoạt động dạy học, các công cụ đánh giá cần chỉ rõ thành tố của năng lực cần đánh giá và xây dựng được các công cụ đánh giá từng thành tố của các năng lực thành phần Sự liên hệ giữa mục tiêu, hoạt động dạy học và công cụ đánh giá được thể hiện như trong hình 1:

Hình 1 Mối quan hệ giữa mục tiêu hoạt động dạy học và đánh giá trong dạy học định hướng phát triển năng lực.

Các năng lực chuyên biệt trong bộ môn Vật lí

Có nhiều quan điểm xây dựng chuẩn các năng lực chuyên biệt trong dạy học từng môn, quan điểm xây dựng tuy là khác nhau nhưng đem lại kết quả khá tương đồng

1.2.1 Xây dựng các năng lực chuyên biệt bằng cách cụ thể hóa các năng lực chung: Ở cách tiếp cận này, người ta xác định các năng lực chung trước, chúng là các năng lực mà toàn bộ quá trình giáo dục ở trường phổ thông đều phải hướng tới để hình thành ở HS Sau đó, từng môn học sẽ xác định sự thể hiện cụ thể của các năng lực chung ở trong môn học của mình như thế nào Với cách tiếp cận như vậy, từ các năng lực chung đã được đưa vào dự thảo chương trình phổ thông tổng thể, chúng tôi tạm vạch ra các năng lực chuyên biệt trong môn Vật lí như ở bảng 1

Bảng 1 Bảng năng lực chuyên biệt môn Vật lí được cụ thể hóa từ năng lực chung

STT Năng lực chung Biểu hiện năng lực trong môn Vật lí

Nhóm năng lực làm chủ và phát triển bản thân:

- Lập được kế hoạch tự học và điều chỉnh, thực hiện kế hoạch có hiệu quả

- Tìm kiếm thông tin về nguyên tắc cấu tạo, hoạt động của các ứng dụng kĩ thuật

- Đánh giá được mức độ chính xác nguồn thông tin

- Đặt được câu hỏi về hiện tượng sự vật quanh ta

- Tóm tắt được nội dung vật lí trọng tâm của văn bản

- Tóm tắt thông tin bằng sơ đồ tư duy, bản đồ khái niệm, bảng biểu, sơ đồ khối

- Tự đặt câu hỏi và thiết kế, tiến hành được phương án thí nghiệm để trả lời cho các câu hỏi đó

Năng lực giải quyết vấn đề

(Đặc biệt quan trọng là NL giải quyết vấn đề bằng con đường thực nghiệm hay còn gọi là

- Đặc biệt quan trọng là năng lực thực nghiệm Đặt được những câu hỏi về hiện tượng tự nhiên: Hiện tượng… diễn ra như nào? Điều kiện diễn ra hiện tượng là gì? Các đại lượng trong hiện tượng tự nhiên có mối quan hệ với nhau như thế nào? Các dụng cụ có nguyên tắc cấu tạo và hoạt động như thế nào?

- Đưa ra được cách thức tìm ra câu trả lời cho các câu hỏi đã đặt ra

- Tiến hành thực hiện các cách thức tìm câu trả lời bằng suy luận lí thuyết hoặc khảo sát thực nghiệm

- Khái quát hóa rút ra kết luận từ kết quả thu được

- Đánh giá độ tin cậy và kết quả thu được

- Thiết kế được phương án thí nghiệm để kiểm tra giả thuyết (hoặc dự đoán)

- Lựa chọn được phương án thí nghiệm tối ưu

- Giải được bài tập sáng tạo

- Lựa chọn được cách thức giải quyết vấn đề một cách tối ưu

4 Năng lực tự quản lí

-Không có tính đặc thù

Nhóm năng lực về quan hệ xã hội:

- Sử dụng được ngôn ngữ vật lí để mô tả hiện tượng

- Lập được bảng và mô tả bảng số liệu thực nghiệm

- Vẽ được đồ thị từ bảng số liệu cho trước

- Vẽ được sơ đồ thí nghiệm

- Mô tả được sơ đồ thí nghiệm

- Đưa ra các lập luận logic, biện chứng

- Tiến hành thí nghiệm theo nhóm

- Tiến hành thí nghiệm theo các khu vực khác nhau Nhóm năng lực công cụ

Năng lực sử dụng công nghệ thông tin và truyền thông

- Sử dụng một số phần mềm chuyên dụng (maple, proteus, excel, …) để mô hình hóa quá trình vật lí

- Sử dụng phần mềm mô phỏng để mô tả đối tượng vật lí

8 Năng lực sử dụng ngôn ngữ

- Sử dụng ngôn ngữ khoa học để diễn tả quy luật vật lí

- Sử dụng bảng biểu, đồ thị để diễn tả quy luật vật lí

- Đọc hiểu được đồ thị, bảng biểu

9 Năng lực tính toán - Mô hình hóa quy luật vật lí bằng các công thức toán học

- Sử dụng toán học để suy luận từ kiến thức đã biết ra hệ quả hoặc ra kiến thức mới

1.2.2 Xây dựng các năng lực chuyên biệt dựa trên đặc thù môn học:

Với cách tiếp cận này, người ta sẽ dựa trên đặc thù nội dung, phương pháp nhận thức và vai trò của môn học đối với thực tiễn để đưa ra hệ thống năng lực, có nhiều nước trên thế giới tiếp cận theo cách này, dưới đây xin đề xuất hệ thống năng lực được phát triển theo chuẩn năng lực chuyên biệt môn Vật lí đối với HS 15 tuổi của Cộng hòa Liên bang Đức

Môn Vật lí giúp hình thành các năng lực sau:

➢ Năng lực giải quyết vấn đề

Tuy nhiên việc hình thành, phát triển và đánh giá các năng lực này như một chỉnh thể là việc làm hết sức khó khăn và đòi hỏi cần có thời gian Do đó ta cần tiếp tục chia nhỏ các năng lực trên thành các năng lực thành phần

Tiếp theo, ta cần chỉ ra các thao tác liên quan đến từng năng lực thành phần, mà các thao tác này có thể nhận biết được và đưa ra chỉ bảo rõ ràng về mức độ chất lượng của từng thao tác Giống như kĩ năng, chất lượng các thao tác có thể được đánh giá dựa trên sự thuần thục, tốc độ thực hiện, độ chính xác của thao tác…

Nói tóm lại khi muốn đánh giá một năng lực, ta cần làm rõ nội hàm năng lực đó bằng cách chỉ ra những kiến thức, kĩ năng và thái độ cần có làm nền tảng cho việc thể hiện, phát triển năng lực đó, sau đó xây dựng các công cụ đo kiến thức, kĩ năng, thái độ quen thuộc

Ví dụ để đánh giá năng lực thực nghiệm, một trong các năng lực quan trọng của

HS trong học tập vật lí, ta cần chỉ ra những thành tố làm nền tảng của năng lực thực nghiệm được trình bày ở hình 2

Hình 2 Các thành tố của năng lực thực nghiệm

Khi xây dựng các công cụ đánh giá, ta có thể xây dựng công cụ đánh giá từng thành tố hoặc đồng thời nhiều thành tố của năng lực, tuy nhiên để việc đánh giá được chính xác và có độ tin cậy cao, ta đánh giá càng ít thành tố càng tốt

Sau khi phân chia năng lực thành các thành phần như vậy, ta tổng hợp được nhóm các năng lực thành phần cần phải hình thành và phát triển trong môn Vật lí nói chung và ở cấp THPT nói riêng, theo bảng 2

Bảng 2 Năng lực chuyên biệt môn Vật lí

Nhóm năng lực thành phần

Năng lực thành phần trong bộ môn

Nhóm NLTP liên quan đến sử dụng kiến thức

-B1: Trình bày được kiến thức về các hiện tượng, đại lượng, định luật, nguyên lí vật lí cơ bản, các phép đo, các hằng số vật lí

-B2: Trình bày được mối quan hệ giữa các kiến thức vật lí

-B3: Sử dụng được kiến thức vật lí để thực hiện các nhiệm vụ học tập,

-B4: Vận dụng (giải thích, dự đoán, tính toán, đề ra giải pháp, đánh giá giải pháp, …) kiến thức vật lí vào các tình huống thực tiễn

Nhóm NLTP về phương pháp (tập trung vào năng lực thực nghiệm và năng lực mô hình hóa)

-B1: Đặt ra những câu hỏi về một hiện tượng vật lí

-B2: Mô tả được các hiện tượng tự nhiên bằng ngôn ngữ vật lí và chỉ ra các quy luật vật lí trong hiện tượng đó

-B3: Thu thập, đánh giá, lựa chọn và xử lí thông tin từ các nguồn khác nhau để giải quyết vấn đề trong học tập vật lí

-B4: Vận dụng sự tương tự và các mô hình để xây dựng kiến thức vật lí

-B5: Lựa chọn và sử dụng các công cụ toán học phù hợp trong học tập vật lí

-B6: Chỉ ra được điều kiện lí tưởng của hiện tượng vật lí

-B7: Đề xuất được giả thuyết, suy ra các hệ quả có thể kiểm tra được

-B8: xác định mục đích, đề xuất phương án, lắp ráp, tiến hành xử lí kết quả thí nghiệm và rút ra nhận xét

-B9: Biện luận tính đúng đắn của kết quả thí nghiệm và tính đúng đắn các kết luận được khái quát hóa từ kết quả thí nghiệm này

Nhóm NLTP trao đổi thông tin

HS có thể -B1: Trao đổi kiến thức và ứng dụng vật lí bằng ngôn ngữ vật lí và các cách diễn tả đặc thù của vật lí

-B2: Phân biệt được những mô tả các hiện tượng tự nhiên bằng ngôn ngữ đời sống và ngôn ngữ vật lí chuyên ngành

-B3: Lựa chọn, đánh giá được các nguồn thông tin khác nhau

-B4: Mô tả được cấu tạo và nguyên tắc hoạt động của các thiết bị kĩ thuật, công nghệ

-B5: Ghi lại được các kết quả từ các hoạt động học tập vật lí của mình (nghe giảng, tìm kiếm thông tin, thí nghiệm, làm việc nhóm)

-B6: Trình bày các kết quả từ các hoạt động học tập vật lí của mình (nghe giảng, tìm kiếm thông tin, thí nghiệm, làm việc nhóm) một cách phù hợp

-B7: Thảo luận được kết quả công việc của mình và những vấn đề liên quan dưới góc nhìn vật lí

-B8: Tham gia hoạt động nhóm trong học tập vật lí

Nhóm NLTP liên quan đến cá nhân

-B1: Xác định được trình độ hiện có về kiến thức, kĩ năng, thái độ của cá nhân trong học tập vật lí

-B2: Lập kế hoạch và thực hiện được kế hoạch, điều chỉnh kế hoạch học tập vật lí nhằm nâng cao trình độ bản thân

-B3: Chỉ ra được vai trò (cơ hội) và hạn chế của các quan điểm vật lí đối trong các trường hợp cụ thể trong môn Vật lí và ngoài môn Vật lí

-B4: So sánh và đánh giá được dưới khía cạnh vật lí các giải pháp kĩ thuật khác nhau về mặt kinh tế, xã hội và môi trường

-B5: Sử dụng được kiến thức vật lí để đánh giá và cảnh báo mức độ an toàn của thí nghiệm, của các vấn đề trong cuộc sống và của các công nghệ hiện đại

-B6: Nhận ra được ảnh hưởng vật lí lên các mối quan hệ xã hội và lịch sử Để đánh giá và giúp GV phân loại HS, người ta cũng đưa vào bảng phân cấp độ năng lực thành 3 bậc

Bảng 3 Cấp bậc các năng lực

Nhóm năng lực Cấp độ

Năng lực sử dụng kiến thức

KI Tái hiện kiến thức:

Tái hiện lại được các kiến thức và đối tượng vật lí cơ bản

KII Vận dụng kiến thức:

- Xác định và sử dụng kiến thức vật lí trong tình huống đơn giản

- Sử dụng phép tương tự

KIII Liên kết và chuyển tải kiến thức:

- Vận dụng kiến thức trong tình huống có phần mới mẻ

- Lựa chọn được đặc tính phù hợp

Năng lực về phương pháp (tập trung vào năng lực thực nghiệm và năng lực mô hình hóa)

PI Mô tả lại các phương pháp chuyên biệt

- Áp dụng, mô tả các phương pháp vật lí, đặc biệt là phương pháp thực nghiệm

PII Sử dụng các phương pháp chuyên biệt

- Sử dụng các chiến lược giải bài tập

- Lập kế hoạch và tiến hành thí nghiệm đơn giản

PIII Lựa chọn và vận dụng các phương pháp chuyên biệt để giải quyết vấn đề

- Lựa chọn và áp dụng một cách có mục đích và liên kết các phương pháp chuyên môn, bao

- Mở rộng kiến thức theo hướng dẫn gồm cả thí nghiệm đơn giản và toán học hóa

- Tự chiếm lĩnh kiến thức

Năng lực trao đổi thông tin

XI Làm theo mẫu diễn tả cho trước

- Diễn tả một đối tượng đơn giản gian bằng nói và viết hoặc theo mẫu cho trước theo hướng dẫn

- Đặt câu hỏi về đối tượng

XII Sử dụng hình thức diễn tả phù hợp

- Diễn tả một đối tượng bằng ngôn ngữ vật lí và có cấu trúc

- Biện giải về một đối tượng

- Lí giải các nhận đinh

XIII Tự lựa chọn cách diễn tả và sử dụng

- Lựa chọn, vận dụng và phản hồi các hình thức diễn tả một cách có tính toán và hợp lí

- Thảo luận về mức độ giới hạn phù hợp của một chủ đề

- Áp dụng sự đánh giá có sẵn

- Nhận thấy tác động của kiến thức vật lí

- Phát biểu được bối cảnh công nghệ đơn giản dưới nhãn quan vật lí

- Bình luận những đánh giá đã có

- Đưa ra những quyết định theo các khía cạnh đặc trưng của vật lí

- Phân biệt giữa các bộ phận vật lí và các bộ phận khác của việc đánh giá

- Tự đưa ra những đánh giá của bản thân

- Đánh giá ý ghĩa của các kiến thức vật lí

- Sử dụng các kiến thức vật lí như nền tảng quả quá trình đánh giá các đối tượng

- Xắp xếp các hiện tượng vào một bối cảnh vật lí

Tuy các năng lực hoặc năng lực thành phần có thể khác nhau nhưng khi phân tích chúng thành các thành tố năng lực cụ thể thì ta sẽ thu được các thành tố năng lực về cơ bản là giống nhau.

Lợi ích của việc dạy học phát triển năng lực

Những lợi ích của phương pháp dạy học dựa trên năng lực này đã được các nhà hoạch định chính sách và người có ảnh hưởng trong giáo dục công nhận Trung tâm “Vì sự Tiến bộ” của Mỹ gần đây đã cho thấy, “dạy học dựa trên việc phát triển năng lực có thể là chìa khóa để cung cấp chất lượng giáo dục phổ thông cho hàng triệu người Mỹ với chi phí thấp hơn.” Trong khi các nhà hoạch định chính sách đang ca ngợi dạy học dựa trên phát triển năng lực, thì lại chưa có đủ sự hỗ trợ để đảm bảo nó có thể được thực hiện thành công trên thực tiễn Ví dụ, các quy định về hỗ trợ tài chính thường dựa trên thời gian giảng dạy hoặc số lượng học sinh, tài liệu giảng dạy mới chỉ dừng lại ở sách giáo khoa và một vài tài liệu tham khảo giản đơn Việc biến quá trình dạy học phát triển năng lực thành xu thế chủ đạo sẽ đòi hỏi một sự thay đổi “căn bản và toàn diện” cách tiếp cận về giáo dục của chúng ta từ trước đến nay

1.3.1 Vai trò của thực hành và thí nghiệm Vật lí Đặc biệt là vai trò của máy vi tính trong thí nghiệm Vật lí:

Khi giảng dạy Vật lí, người GV một mặt phải tận dụng những kinh nghiệm sống của học sinh, nhưng mặt khác phải chỉnh lý, bổ sung, hệ thống hoá những kinh nghiệm đó và nâng cao lên mức chính xác, đầy đủ bằng các thí nghiệm Vật lý, nhờ đó mà tránh được tính chất giáo điều, hình thức trong giảng dạy

Làm các thí nghiệm Vật lí có tác dụng to lớn trong việc phát triển nhận thức của học sinh, giúp các em quen dần với phương pháp nghiên cứu khoa học, vì qua đó các em được tập quan sát, đo đạc, được rèn luyện tính cẩn thận, kiên trì, điều đó rất cần cho việc giáo dục kỹ thuật tổng hợp, chuẩn bị cho học sinh tham gia hoạt động thực tế Do được tận mắt, tự tay tháo lắp các dụng cụ, thiết bị và đo lường các đại lượng, các em có thể nhanh chóng làm quen với những dụng cụ và thiết bị dùng trong đời sống và sản xuất sau này

Vai trò của máy vi tính trong dạy học vật lí:

Bên cạnh các ứng dụng thường thấy trong các môn học khác như: học, ôn tập bằng máy, kiểm tra, đánh giá bằng máy, xử lí và tính toán các kết quả bằng máy thì máy vi tính còn có thể được ứng dụng chủ yếu trong dạy học vật lí ở các lĩnh vực quan trọng sau:

❖ Mô phỏng các đối tượng vật lí cần nghiên cứu

❖ Truyền dữ liệu sang các mạch điện tử

❖ Hỗ trợ các thí nghiệm vật lí

❖ Hỗ trợ cho việc phân tích phim video ghi các quá trình vật lí thực

Do máy vi tính là thiết bị đa phương tiện có thể ghép nối với các thiết bị hiện đại khác trong nghiên cứu vật lí và có tính năng hết sức ưu việt trong việc thu thập dữ liệu, xử lí dữ liệu cũng như trình bày các kết quả xử lí một cách tự động và cực kì nhanh chóng, chính xác và đẹp đẽ nên nó đã được sử dụng rất thành công trong các lĩnh vực nêu trên, góp phần giải quyết các khó khăn mà các phương tiện dạy học trước nó chưa giải quyết được trọn vẹn Với những tính năng đó, máy vi tính là phương tiện hỗ trợ rất có hiệu quả trong việc tổ chức hoạt động nhận thức cho học sinh trong dạy học vật lý Đặc biệt trong bộ TN được thực hành dưới đây hoàn toàn phụ thuộc vào sự hỗ trợ của máy tính, nó đóng một vai trò chủ đạo mang tầm ảnh hướng nhất định Chính vì thế chúng ta có thể nhận ra rằng máy tính rất bổ ích trong các TN vật lý

1.3.2 Các đặc điểm của thí nghiệm Vật lí:

Thí nghiệm vật lý là sự tác động có chủ định, có hệ thống của con người vào đối tượng của hiện thực khách quan Thông qua sự phân tích các điều kiện mà trong đó đã diễn ra sự tác động và các kết quả của sự tác động, ta có thể thu nhận được tri thức mới

Sau đây là 1 số đặc điểm của thí nghiệm vật lí:

❖ Các điều kiện của thí nghiệm phải được lựa chọn và được thiết lập có chủ định sao cho thông qua thí nghiệm, có thể trả lời được câu hỏi đặt ra, có thể kiểm tra được giả thuyết hoặc hệ quả suy ra từ giả thuyết Mỗi thí nghiệm có ba yếu tố cấu thành cần được xác định rõ: Đối tượng cần nghiên cứu, phương tiện gây tác động lên đối tượng cần nghiên cứu và phương tiện quan sát, đo đạc để thu nhận các kết quả của sự tác động

❖ Các điều kiện của thí nghiệm có thể làm biến đổi được để ta có thể nghiên cứu sự phụ thuộc giữa hai đại lượng, trong khi các đại lượng khác được giữ không đổi

❖ Các điều kiện của thí nghiệm phải được khống chế, kiểm soát đúng như dự định nhờ sử dụng các thiết bị thí nghiệm có độ chính xác ở mức độ cần thiết, nhờ sự phân tích thường xuyên các yếu tố của đối tượng cần nghiên cứu, làm giảm tối đa ảnh hưởng của các nhiễu (nghĩa là loại bỏ tối đa một số điều kiện để không làm xuất hiện các tính chất, các mối quan hệ không được quan tâm)

❖ Đặc điểm quan trọng nhất của thí nghiệm là tính có thể quan sát được các biến đổi của đại lượng nào đó do sự biến đổi của các đại lượng khác Điều này đạt được nhờ các giác quan của con người và sự hỗ trợ của các phương tiện quan sát, đo đạc

❖ Có thể lặp lại được thí nghiệm Điều này có nghĩa là: với các thiết bị thí nghiệm, các điều kiện thí nghiệm như nhau thì khi bố trí lại hệ thí nghiệm, tiến hành lại thí nghiệm, hiện tượng, quá trình vật lý phải diễn ra trong thí nghiệm giống như ở các lần thí nghiệm trước

1.3.3 Chức năng của thí nghiệm vật lí trong dạy học vật lí:

Chức năng chủ yếu của thí nghịêm vật lí là tạo điều kiện cho học sinh nắm vững chính xác, sâu sắc kiến thức, phát triển năng lực nhận thức và hình thành nhân cách của học sinh Trong quá trình dạy học nói chung và dạy học vật lí nói riêng, phương tiện dạy học đã chứng tỏ vai trò to lớn của mình ở tất cả các khâu như tạo động cơ, hứng thú học tập của học sinh, cung cấp các dữ liệu thực nghiệm nhằm khái quát hoá hoặc kiểm chứng các kiến thức về các khái niệm, định luật vật lí, mô phỏng các hiện tượng, quá trình vật lí vi mô, đề cập các ứng dụng của các kiến thức vật lí trong đời sống và kỹ thuật, sử dụng trong việc ôn tập, đào sâu, mở rộng, hệ thống hoá kiến thức, kỹ năng của học sinh; hỗ trợ việc kiểm tra, đánh giá kiến thức, kỹ năng,

Theo lý luận dạy học hiện đại, dạy học TN vật lí hỗ trợ hoạt động của GV và học sinh ở tất cả các pha của tiến trình giải quyết nhiệm vụ nhận thức Ở pha chuyển giao nhiệm vụ, bất ổn hóa tri thức, phát biểu vấn đề, phương tiện dạy học trước hết là công cụ hỗ trợ cho GV xây dựng tình huống vấn đề, tạo hứng thú nhận thức và động cơ hoạt động của học sinh Khi đã nhận nhiệm vụ, phương tiện dạy học lại là công cụ để học sinh hoạt động giải quyết nhiệm vụ được giao Trong quá trình giải quyết nhiệm vụ, nếu học sinh gặp trở ngại thì chính thí nghiệm có tác dụng hỗ trợ để học sinh ý thức được vấn đề cần giải quyết Chẳng hạn, giáo viên có thể sử dụng các thiết bị quen thuộc giao cho học sinh tiến hành các thí nghiệm đơn giản, có tính nghịch lý chỉ ra các hiện tượng, quá trình vật lý mới mẻ mà học sinh không thấy trong cuộc sống hàng ngày để kích thích tính tò mò tự nhiên của học sinh Các vật thật, mô hình vật chất, tranh ảnh, các thí nghiệm định tính mở đầu mô tả một quá trình vật lý, một hiện tượng vật lý nào đó trái với quan niệm ban đầu của học sinh có thể được giáo viên thiết kế thành một nhiệm vụ nhận thức giao cho học sinh tiến hành nhằm tạo ra cho học sinh nhu cầu tìm hiểu, giải thích

Với những quá trình biến đổi nhanh thì việc thiết kế và tiến hành thí nghiệm với các dụng cụ truyền thống gặp nhiều khó khăn, nhiều khi không thực hiện được Đối với các quá trình có thể tiến hành thí nghiệm thì lại đòi hỏi nhiều thời gian thu thập số liệu, tính toán, vẽ đồ thị và thời gian kiểm tra sự đúng đắn của các giả thuyết Trong thời gian của tiết học, học sinh không có đủ thời gian để tiến hành các hoạt động tư duy như dự đoán, đề xuất giả thuyết Giải pháp sử dụng phim video quay chậm thì học sinh chỉ chủ yếu được quan sát lại quá trình một cách định tính mà không được tham gia vào quá trình hoạt động xây dựng kiến thức Nhằm giải quyết những khó khăn đó, hiện nay trong dạy học người ta đã sử dụng ngày càng nhiều hơn sự hỗ trợ của máy vi tính và các phần mềm

Hình 3 Kit Arduino phiên bản đầu tiên.

TỔNG QUAN LÝ THUYẾT VỀ MẠCH LẬP TRÌNH ARDUINO

Giới thiệu chung

Nền tảng Arduino được phát triển đầu tiên ở Viện thiết kế Ivrea, Italia để hướng đến khả năng hỗ trợ người học điện tử tiếp cận nhanh và dễ dàng đến việc lập trình vi điều khiển cho các ứng dụng cụ thể Ban đầu, Arduino được phát triển chỉ gồm vi điều khiển AVR (ATmega168) và giao tiếp RS232 cùng với mạch nguồn như hình dưới

Qua quá trình phát triển, nền tảng Arduino hiện đã phát triển rất đa dạng về cả phần cứng và phần mềm Về mặt phần cứng, ngoài các bo mạch Arduino truyền thống sử dụng vi điều khiển AVR thì hiện có rất nhiều các bo mạch khác sử dụng các loại vi điều khiển khác nhau nhưng vẫn đảm bảo tương thích với nền tảng Arduino Tương ứng với các nền tảng phần cứng khác nhau thì phần mềm hỗ trợ cũng như thư viện đi kèm cũng được phát triển rất phong phú nhờ vào sự góp sức của một cộng đồng lớn mạnh đang sử dụng nền tảng này

Mặc dù các KIT Arduino đa dạng về chủng loại, nhưng cơ bản vẫn được phát triển với các khối chính: khối vi điều khiển, khối nguồn nuôi, khối giao tiếp (đã được phát triển theo chuẩn USB-RS232) Arduino được phát triển nhanh và rộng một phần quan trọng là nhờ môi trường phát triển tích hợp Arduino IDE có giao diện như trong

Hình 4 Môi trường phần mềm tích hợp Arduino IDE hình 4 Các KIT Arduino được phát triển một cách độc lập nhưng đều được tích hợp firmware hỗ trợ khả năng nhận mã nguồn từ Arduino IDE qua cổng USB-RS232.

Bo mạch Arduino UNO

Arduino UNO có thể xem là bo mạch Arduino phổ biến nhất hiện nay nhờ vào giá thành rẻ, tài nguyên phần cứng phong phú, phù hợp với việc phát triển cho nhiều ứng dụng khác nhau Hình 5 mô tả chi tiết các thành phần của bo mạch Arduino UNO R3 gồm vi điều khiển ATmega328, khối giao tiếp USB-RS232, nguồn nuôi vào các chân vào/ra Các thông số cơ bản của bo mạch này:

Vi điều khiển ATmega328P họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)

Tần số hoạt động 16 MHz

Dòng tiêu thụ khoảng 40mA Điện áp vào khuyên dùng 7 - 12V DC Điện áp vào giới hạn 6 - 20V DC

Số chân Digital I/O 14 (6 chân hardware PWM)

Số chân Analog 6 (độ phân giải 10bit)

Hình 5 Hình ảnh bo mạch Arduino Uno R3

Dòng tối đa trên mỗi chân I/O 30 mA

Dòng ra tối đa (5V) 500 mA

Dòng ra tối đa (3.3V) 50 mA

Bộ nhớ Flash 32 KB với 0.5KB dùng bởi bootloader

Bộ nhớ chương trình - EEPROM 1 KB

Xung nhịp hệ thống 16MHz

Bo Arduino Uno R3 được xem là KIT tiêu chuẩn của Arduino và cũng được phát triển theo nhiều hướng ứng dụng khác nhau Hiện nay, rất nhiều các bên thứ ba đã nghiên cứu và phát triển nhiều bo mạch mở rộng còn được gọi là các shield Shield là các bo mạch có thể gắn trực tiếp trên bo Arduino Uno để dành cho việc phát triển từng ứng dụng cụ thể như giao tiếp Ethernet, điều khiển Motor, … Ở khối VĐK, Arduino UNO có thể sử dụng 3 VĐK họ 8bit AVR là ATmega8, ATmega168, ATmega328 Bộ não này có thể xử lí những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD, … Ở khối nguồn nuôi, Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V Thường thì cấp nguồn bằng pin vuông 9V là hợp lí nhất nếu bạn không có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt quá ngưỡng giới hạn trên sẽ làm hỏng Arduino UNO

• Arduino UNO không có bảo vệ cắm ngược nguồn vào Do đó bạn phải hết sức cẩn thận, kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino UNO Việc làm chập mạch nguồn vào của Arduino UNO sẽ biến nó thành một miếng nhựa chặn giấy Vì thế các bạn nên dùng nguồn từ cổng USB nếu có thể

• Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho các thiết bị khác, không phải là các chân cấp nguồn vào Việc cấp nguồn sai vị trí có thể làm hỏng board Điều này không được nhà sản xuất khuyến khích

• Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V có thể làm hỏng board

• Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển ATmega328

• Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển

• Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làm hỏng vi điều khiển

• Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của Arduino UNO vượt quá 40mA sẽ làm hỏng vi điều khiển Do đó nếu không dùng để truyền nhận dữ liệu, bạn phải mắc một điện trở hạn dòng Ở khối giao tiếp, Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong VĐK ATmega328.

Môi trường phát triển tích hợp

Sự phổ biến rộng rãi của Arduino có phần đóng góp rất lớn của Arduino IDE được phát triển trên nền tảng Java và có thể hoạt động trên đa nền tảng như Windows, Linux và MacOS Mặc dù các bo Arduino đều có các VĐK phổ biến và cũng được hỗ trợ bởi nhiều cộng cụ lập trình và mạch nạp, nhưng đều có thể sử dụng chung môi trường phát triển tích hợp Arduino IDE Hơn nữa, các nhà phát triển độc lập đã và đang phát triển các thư viện cho phép người dùng phát triển nhanh các ứng dụng cụ thể chỉ bằng các lệnh gọi hàm đơn giản so với việc viết các đoạn mã bằng C hoặc Asembly phức tạp

2.2.1 Giới thiệu phần mềm code Arduino IDE:

Một chương trình phát triển trên Arduino IDE về cơ bản là ngôn ngữ C phổ biến và bổ sung thêm khối mã lệnh dành riêng cho thiết lập hệ thống Mỗi chương trình trên Arduino IDE thường chia làm ba phần chính:

• Phần Khai báo và định nghĩa: Chủ yếu được sử dụng để khai báo các thư viện, định nghĩa các chân vào ra, hoặc các lời gọi hàm cho các đối tượng mở rộng được sử dụng trong hệ thống Ví dụ:

#define obj01 env_obj int int_var;

• Khối thiết lập thông số: được sử dụng để gọi các hàm và lệnh cho mục tiêu thiết lập thông số ban đầu cũng như gán các đối tượng gợi nhớ void setup() {

• Khối chương trình chính: là khối thực thi chức năng logic của hệ thống cho các nhiệm vụ cụ thể void loop() {

❖ Lưu ý: Các câu lệnh và hàm được đặt trong khối thiết lập chỉ được thực hiện một lần khi khởi động hệ thống và sẽ không được gọi lại trong các tác vụ khác Khối chương trình chính sẽ luôn được thực hiện ở dạng vòng lặp vộ tận trong suốt quá trình hệ thống hoạt động

Arduino IDE được xây dựng trên nền ngôn ngữ C, do vậy cấu trúc khối, chương trình con, lệnh và các lời gọi hàm hoàn toàn tương đồng với các chương trình của ngôn ngữ C Tuy nhiên, khối chương trình chính được bao ngoài bởi vòng lặp vô tận “ loop() ” nên chúng ta không cần sử dụng vòng lặp vô hạn như trong các chương trình cho vi điều khiển thường gặp khác

Qui trình tạo mới, biên dịch và nạp vào KIT Arduino từ môi trường phát triển được cụ thể hóa như sau:

1 Tạo mới tập tin mã nguồn với định dạng của Arduino IDE với đuôi ino Tập tin này cần được lưu vào một thư mục cùng tên đồng thời chứa tất cả các tập tin liên quan trong quá trình hoạt động

2 Viết mã nguồn phù hợp với ứng dụng của hệ thống bảo đảm cú pháp và cấu trúc của một chương trình trên Arduino IDE

3 Biên dich mã nguồn, kiểm tra lỗi cú pháp bằng cách kích vào biểu tượng hoặc chọn trình đơn Shetch -> chọn Verify/Compile (hoặc tổ hợp phím tắt: Ctrl + R)

4 Biên dịch vào nạp vào KIT bằng cách kích vào biểu tượng hoặc tổ hợp phím tắt là Ctrl + U

❖ Lưu ý : Trước khi biên dịch và tải lên bo Arduino chúng ta cần kết nối bo được sử dụng vào máy tính và khai báo chính xác loại bo “ Tools/Board ” giao tiếp được sử dụng ( COMX ) Một số bo Arduino còn cần được khai báo cả chương trình nạp mã nguồn phù hợp ( Programmer )

Dựa vào cộng đồng phát triển rộng khắp nên có rất nhiều các đoạn mã đã được cộng đồng xây dựng và tối ưu tạo ra các thư viện rất sử dụng cho người dùng Arduino IDE hỗ trợ tối đa các giải pháp bổ sung thư viện nhằm giúp người dùng xây dựng nhanh các ứng dụng của mình Tuy rằng, chương trình Arduino IDE mới chưa được gắn bất kỳ thư viện nào, nhưng người dùng cần phải khai báo đủ các thư viện cần sử dụng theo cả hai cách là sử dụng giao diện khai báo thư viện như được trình bày trong hình bên dưới hoặc khai báo trực tiếp vào chương trình bằng lệnh khai báo “#include” Một điểm cần lưu ý là Arduino IDE tự động quản lý thư viện nên các thư viện chuẩn đã được quản lý sẽ được xem là thư viện mặc định, khi khai báo sẽ được đặt trong hai dấu “< >”; các thư viện tùy chọn của người dùng cần được đặt trong cùng thư mục của mã nguồn và trong

Hình 6 Cửa sổ bổ sung thư viện vào chương trình cho Arduino

Arduino IDE ở thời điểm cài đặt cũng đã được xây dựng kèm với một số thư viện tiêu chuẩn đáp ứng cơ bản cho một số các hệ thống đơn giản của người dùng Tuy nhiên, người dùng có thể cần bổ sung thêm một số thư viện tự tạo hoặc đã được chia sẽ trong cộng đồng người dùng thì cần được bổ sung vào Arduino IDE khi người dùng chọn trình quản lý thư viện “Manage Libraries …” thì cửa sổ cho phép bổ sung thư viện sẽ xuất hiện như được mô tả trong hình dưới Cửa sổ bổ sung thư viện cho phép tìm kiếm các thư viện được cộng đồng chia sẽ, và còn được cung cấp công cụ tìm kiếm thư viện đã được chia sẽ trong thời gian sớm nhất

Ngoài ra, Arduino IDE còn cung cấp giải pháp bổ sung thư viện trực tiếp ở dạng file nén “*.zip” Thư viện được chia sẽ chủ yếu trên internet hiện nay là các file nén chứa nhiều file đi kèm (tập tin mã nguồn, thư viện khai báo, mã nguồn ví dụ, …) Khi sử dụng phương pháp cập nhật trực tiếp thư viện ở dạng file nén thì Arduino IDE cũng chuyển tất cả mã nguồn và các tập tin liên quan về thư mục thư viện mặc định Và sau đó, người dùng sử dụng các thư viện mới được bổ sung cũng hoàn toàn tương tự như các thư viện đã có từ trước hoặc ngày khi cài đặt Arduino IDE

Hình 8 Cửa sổ trình đơn quản lý bo Arduino

2.2.3 Quản lý bo Arduino mở rộng:

Môi trường phát triển Arduino luôn được cập nhật, tuy nhiên có rất nhiều nhà phát triển phần cứng tham gia và tạo ra rất nhiều bo Arduino mới có thể không cập nhật kịp cho người sử dụng Giải pháp cho thách thức này là công cụ quản lý bổ sung bo mạch Arduino được tích hợp trong môi trường phát triển Trong môi trường Arduino IDE vào trình đơn Tools/Bo sẽ xuất hiện danh sách các dạng bo Arduino được hỗ trợ Khi bo Arduino cần dùng không được hỗ trợ thì cần sử dụng công cụ quản lý để tìm loại được hỗ trợ tương ứng ở mục đầu tiên của danh sách Trình đơn quản lý bo Arduino xuất hiện như trong mô tả ở hình bên dưới Dựa vào công cụ tìm kiếm, người dùng cần xác định chính xác dòng bo Arduino tương thích với bo của người dùng đang sử dụng.

Lập trình phần mềm Visual Studio trên máy tính

Môi trường lập trình Visual Studio là công cụ lập trình trên nền tảng Window rất được phổ biến và hỗ trợ đa ngôn ngữ lập trình như C++, Basic, C#,

Hình 10 Chọn mẫu dữ án cho chương trình cần sử dụng

Hình 11 Tạo 1 dự án mới để thiết lập

Mở đầu cho một chương trình được lập từ môi trường Visual Studio ta cần khởi tạo một dự án (project) phù hợp cho mục tiêu của ứng dụng Trong bài thực hành này chúng ta cần lập một chương trình có giao diện người dùng nên chọn kiểu dự án Windows.Form như sau:

1 Chọn trình đơn File/New/Project hoặc tổ hợp phím Ctrl+Shift+N

2 Chọn mẫu dự án Windows Form App (.NET Framework) như trong hình dưới

3 Tạo một dự án mới cần thiết lập và đặt tên cho dự án

Hình 12 Chọn những tài nguyên cần thiết lập ở Toolbox

Hình 13 Giao diện sau khi đã hoàn thiện

4 Môi trường lập trình sẽ chuyển qua chế độ tạo mã nguồn cho dự án

Bằng cách chọn các đối tượng cần sự dụng từ tài nguyên ở Toolbox ở phía bên trái để tạo nên giao diện phù hợp với mục tiêu lập trình và từ đó tạo nên mã nguồn phù hợp với mục đích của bài thực hành Muốn khởi tạo mã nguồn cho đối tượng nào trong giao diện ta chỉ cần chọn đối tượng đó và dịch chuyển về góc dưới bên phải để chọn hoạt động phù hợp với mục tiêu để tạo mã nguồn

Ví dụ một giao diện mới sau khi đã được thiết lập xong như sau:

Như vậy là chúng ta hoàn thiện xong một dự án, sau đó chỉ cần kết nối với mạch điện tử và chương trình code ở Arduino IDE là đã hoàn thành xong một dự án hoàn toàn mới Tóm lại, phần mềm Visual Studio có tác dụng tạo cho chúng ta một giao diện bảng dùng để điều khiển và đọc cái kết quả trên mạch điện tử Arduino

2.3.2 Lập trình trao đổi dữ liệu qua cổng nối tiếp:

Mục tiêu quan trọng của thực hành ghép nối là khả năng trao đổi dữ liệu giữa bo mạch thực hành với máy tính Mạch thực hành sử dụng bo Arduino nên giao tiếp với máy tính thông qua giao tiếp nối tiếp mở rộng: USB-to-COM Đối với bo mạch Arduino, để giao tiếp với cổng nối tiếp, ta phải thiết lập tốc độ truyền đồng bộ cho các cả hai bên (bên nhận và bên phát) Câu lệnh thực hiện việc này là: Serial.Begin() Ngoài ra, ta cần một số lệnh để tương tác với cổng nối tiếp như sau:

➢ Serial.available(): kiểm tra xem cổng nối tiếp có sẵn sàng hay không

➢ Serial.ReadString(): đọc 1 chuỗi kí tự từ cổng nối tiếp

➢ Serial.ReadByte(): đọc 1 byte từ cổng nối tiếp

➢ Serial.Write(): ghi dữ liệu ra cổng nối tiếp

Trong Visual Studio, giao tiếp nối tiếp được xem là một cấu thành tiêu chuẩn đã được tạo sẵn và người dùng chỉ cần khai báo trong dự án để sử dụng Khai báo thành phần cổng nối tiếp bằng cách chọn Components/SerialPort và kéo thả vào Form sử dụng Để kiểm tra lại sự tồn tại của cấu thành SerialPort trong dự án mã nguồn ta có thể vào Form1.Design.cs sẽ liệt kê tất cả khai báo đã có của dự án được tạo

Lập trình trao đổi dữ liệu qua giao tiếp nối tiếp cần các lệnh như sau:

1 Kiểm tra sự tồn tại và tên của các cổng nối tiếp: serialPort.GetPortNames()

2 Chọn tên cổng: serialPort.PortName

3 Chọn tốc độ BAUD cho giao tiếp nối tiếp: serialPort.BaudRate= 9600

4 Khởi tạo cổng nối tiếp: serialPort.Open()

5 Đọc dữ liệu từ cổng nối tiếp: serialPort.Read()

6 Ghi dữ liệu ra cổng nối tiếp: serialPort.Write(var)

7 Ngắt kết nối cổng nối tiếp: serialPort.Close()

THIẾT KẾ NỘI DUNG TIẾN TRÌNH GIẢNG DẠY VÀ KIỂM TRA ĐÁNH GIÁ CHUYÊN MÔN

Khái quát hóa các bài thí nghiệm mới có ghép nối truyền dữ liệu từ máy tính ở khoa Vật lí

Dưới đây là hệ thống các bài thí nghiệm về mạch lập trình Arduino IDE đơn giản nhất, là công cụ để phát triển nên những sản phẩm tiên tiến sau này, áp dụng trực tiếp vào đời sống thực tiễn Qua sự hỗ trợ nạp mã code của phần mềm Arduino IDE phiên bản 1.8.9 và phần mềm Visual Studio điều khiển giao diện đến mạch điện tử hoặc xuất hiển thị kết quả đo trên màn hình máy tính cho chúng ta những kết quả đo có tính chính xác cao nhất

Bài 1: Điều khiển hiển thị LED RGB và một chuỗi kí tự nhập vào từ máy tính cho hiển thị lên màn hình LCD

Bài 2: Điều khiển động cơ quay theo một góc nhập từ bàn phím máy tính

Bài 3: Đo nhiệt độ và độ ẩm của môi trường

Hình 14 Minh họa bộ thí nghiệm ghép nối toàn phần

Bài 4: Đo khoảng cách bằng siêu âm

Bài 5: Đo và điều khiển nhiệt độ

Sau khi học xong học phần, sinh viên đạt được các chuẩn đầu ra như sau:

STT Chuẩn đầu ra học phần

1 Thiết kế, vận hành được các bài thí nghiệm điện tử, thực hiện chuẩn các thao tác trên mạch cũng như xử lí trên phần mềm máy tính

2 Phân tích và giải thích được các kết quả thí nghiệm

3 Viết được báo cáo và thuyết trình

4 Phát triển kĩ năng làm việc nhóm, tiếng Anh

5 Có thái độ học tập tích cực, chủ động, và có trách nhiệm Để hoàn thành việc học tập, sinh viên phải thực hiện các nhiệm vụ sau:

❖ Đọc kỹ tài liệu hướng dẫn thí nghiệm trước khi đến phòng thí nghiệm

❖ Phải thiết kế được quy trình thí nghiệm khi vào phòng thí nghiệm

❖ Phải chuẩn bị cho mình riêng những dự án mới phục vụ cho việc học tập

❖ Tham gia đầy đủ 100% giờ thực hành và có báo cáo kết quả

❖ Tham dự thi kết thúc học phần

❖ Chủ động tổ chức thực hiện giờ tự học.

Thiết kế các bài thí nghiệm ghép nối máy tính

3.2.1 Thí nghiệm 1: Điều khiển hiển thị LED RGB và một chuỗi kí tự nhập vào từ máy tính cho hiển thị lên màn hình LCD

3.2.1.1 Mục đích và yêu cầu:

Mục đích của bài thực hành này SV sẽ nắm rõ quá trình trao đổi dữ liệu giữa máy tính và VĐK trong bo mạch phát triển Arduino nhằm điểu khiển và hiển thị các thông tin cần thiết lên hệ thống thông qua chuỗi đèn LED và màn hình LCD

➢ Nắm rõ kiến thức về cấu trúc máy tính

➢ Nắm rõ kiến thức về cấu trúc VĐK và lập trình cho bo Arduino

➢ Có kiến thức về cấu trúc LED đơn, LED RGB, màn hình LCD

➢ Biết cách lập trình giao diện trên PC bằng các phần mềm như Visual basic, Visual C…

➢ Kết thúc bài thí nghiệm sinh viên phải xây dựng một chương trình để thực hiện những công việc sau:

• Điều khiển độ sáng và màu sắc của một đèn LED RPG

• Điều khiển để hiển thị chuỗi ký tự nhận được từ phần mềm lên màn hình LCD trên bo mạch

3.2.1.2 Thiết bị và phần mềm cần thiết:

• Máy tính cá nhân (PC) hoặc laptop

• Chương trình lập trình cho Arduino

Trong bài thí nghiệm này, các mô-đun sẽ được ghép nối với bo Arduino qua các chân được gán nhãn như trong hình dưới

Hình 15 Gán nhãn để ghép nối các mô-đun với chân trên bo mạch Arduino

Hình 16 Ghép nối với led RBG

Hình 17 Ghép nối với màn hình LCD

Bài thí nghiệm này sẽ gồm có 02 mô-đun chính:

• Mô-đun led RPG: được ghép nối điều khiển với bo Arduino thông qua các chân D2, D3, D4 Tín hiệu điều khiển ở các chân này sẽ thực hiện đóng/ ngắt với các transitor Q1, Q2, Q3 để đảm bảo đủ công suất điều khiển cho led

• Mô-đun LCD: được ghép nối với bo Arduino qua các chân được gán nhãn A4, A5 để giao tiếp thông qua chuẩn I2C

❖ LED đơn và LED RGB:

LED đơn là linh kiện phát quang dựa trên hiện tượng tái hợp lỗ trống/eletron ở chân bán dẫn Ngõ ra của LED gồm hai chân Anode và Cathode có màu sắc hoàn toàn

Hình 18 Minh họa hình dạng và sơ đồ chân LED RGB khác nhau tùy vào phương pháp chế tạo Bằng cách ghép tổ hợp các LED nối tiếp hay song song chúng ta sẽ tạo ra mạch điện phát ra màu sắc như ý LED này sẽ phát sáng khi điện áp đầu Anode cao hơn Cathode với một giá trị hoàn toàn xác định tùy theo từng loại

LED RGB là loại LED siêu sáng được tích hợp 3 màu trong một con LED duy nhất (R = red = đỏ; G = Green = xanh lá; B = Blue = Xanh dương) Loại này gồm 4 chân, trong đó có một chân nối dương nguồn(Anode chung) hoặc âm nguồn (Cathode chung) và 3 chân RGB Bằng cách điều khiển các chân R, G hay B của LED, chúng ta sẽ tạo ra màu sắc phát ra tùy ý Phương pháp được sử dụng trong điều khiển loại LED này là phát xung có độ rộng thay đổi PWM

Trong sơ đồ mạch thông thường, các LED này đều được đấu thêm điện trở để hạn chế tác dụng đánh thủng của dòng điện

❖ Kỹ thuật điều chế độ rộng xung PWM:

Kỹ thuật điều chế độ rộng xung (PWM - Pulse Width Modulation) là kỹ thuật cho phép điều chỉnh điện áp ra tải hay nói cách khác là phương pháp điều chế dựa trên sự thay đổi độ rộng của chuỗi xung vuông dẫn đến sự thay đổi điện áp trung bình Các xung PWM khi biến đổi thì có cùng 1 tần số và khác nhau về độ rộng của sườn dương hay hoặc là sườn âm Đồ thị dạng sóng ứng với các tỷ lệ phần trăm điều chế Cụ thể PWM là phương pháp được thực hiện theo nguyên tắc đóng ngắt nguồn của tải và một cách có chu kì theo luật điều chỉnh thời gian đóng cắt

Hình 19 Minh họa tỉ lệ phần trăm điều chế xung PWM

Hình 20 Màn hình hiển thị LCD sử dụng chuẩn I2C cho Arduino

Với các đặc điểm như trên, PWM được ứng dụng nhiều trong điều khiển hoạt động của các thiết bị Ứng dụng điển hình nhất là điều khiển tốc độ động cơ và các bộ xung áp, điều áp Ở đây bằng cách điều khiển xung PWM thích hợp chúng ta hoàn toàn có thể thực hiện phối màu LED RGB một cách túy ý

❖ Lập trình hiển thị trên màn hình LCD:

Chức năng hiển thị là một yêu cầu tất yếu trong các hệ thống điện tử, dùng để biểu diễn thông tin và trạng thái của hệ thống một cách trực quan và hiệu quả nhất Mạch điện thực hành với mạch điều khiển chính là Arduino Uno R3 thì chúng ta phải tiết kiệm tối đa các tín đường tín hiệu nên ta phải sử dụng chuẩn giao tiếp một dây I2C Mạch thực hành sử dụng linh kiện hiển thị là LCD hiển thị ký tự trên hai dòng 16 ký tự với chip điều khiển chính là HD44780 8bit nhưng kết hợp vi mạch giao tiếp I2C như trong hình sau

Bài thực hành kết hợp giữa Arduino và hiển thị LCD giao tiếp I2C có thể sử dụng

Hình 21 Bộ thí nghiệm 1 sau khi được ghép nối màn hình LCD hai dòng 16 ký tự được giao tiếp với bo Arduino thông qua giao tiếp I2C ở hai chân A4 & A5

Thư viện cho mục tiêu hiển thị là “ LiquidCrystal_I2C.h ” Ở phần khai báo ban đầu cần bổ sung lệnh khai báo LCD gồm địa chỉ trên I2C, cấu hình của LCD gồm số dòng và số ký tự: LiquidCrystal_I2C lcd(0x27,20,4)

Trong khối thiết lập cần khởi tạo LCD bằng hàm: lcd.init();

Các lệnh thường dùng trong việc hiển thị gồm:

1 Lệnh tích cực đèn nền: lcd.backlight()

2 Lênh xóa màn hình: lcd.clear()

3 Lệnh thiết lập con trỏ hiển thị: lcd.setCursor(0,1)

4 Lệnh xuất chuỗi ký tự: lcd.print(dong1)

Bước 1: Thiết lập đoạn code điều khiển hoạt động của LED RGB và nhập một vài kí tự từ bàn phím cho hiển thị lên màn hình LCD theo phụ lục 1 Và cho bo Arduino nhận được dữ liệu gửi từ PC thông qua cổng nối tiếp Từ dữ liệu nhận được, bo Arduino cần xử lý để đưa ra lệnh điều khiển đóng/ mở hoặc hiển thị tương ứng với mạch điện tử

Bước 2: Xây dựng giao diện bảng điều khiển hoạt động của LED RGB và màn hình

LCD bằng phần mềm Visual Studio bằng cách chọn các thiết bị trong Toolbox và code

Giao diện sau khi được thiết lập sẽ có dạng như sau:

Bước 3: Cấp nguồn cho bộ thí nghiệm (nếu cần) và kết nối bộ thí nghiệm với PC qua cổng USB Khởi chạy giao diện trên phần mềm Visual Studio để điều khiển độ sáng của các đèn RGB cũng như việc nhập vài kí tự trên bàn phím và cho xuất ra từ màn hình LCD của bản mạch

Ví dụ: Khi ta kết nối với cổng COM4 và chọn Select LCD từ bảng giao diện điều khiển sau đó nhập vào từ bàn phím dòng chữ “DO THI THU HIEU”, tiếp tục nhấn Sent LCD thì trên bản mạch điện tử thực tế sẽ nhận dữ liệu và cho xuất ra màn hình LCD với dòng chữ như chúng ta đã nhập

Hình 22 Giao diện điều khiển bài thí nghiệm số 1

Bước 4: Nhân xét mạch điện tử thực tế với chương trình đã điều khiển

➢ Khi điều khiển phần mềm Arduino và Visual Studio thì mạch giao tiếp với cổng COM khá ổn định, mạch điều khiển hiển thị được dữ liệu bằng chương trình hiển thị LCD ở hai dòng (dòng một và dòng hai) Chúng ta có thể điều khiển hiển thị dữ liệu trên LCD theo một hay nhiều hàng như yêu cầu của bài bằng cách sử dụng câu lệnh lcd.print với thời gian trễ là 1/10 giây

3.2.2 Thí nghiệm 2: Điều khiển động cơ quay theo một góc nhập từ bàn phím máy tính

3.2.2.1 Mục đích và yêu cầu:

Qua bài thực hành này sinh viên sẽ nắm rõ quá trình trao đổi dữ liệu giữa máy tính (PC) và VĐK trong Kit phát triển Arduino nhằm điểu khiển hoạt động của động cơ

DC, động cơ bước và động cơ servo

➢ Nắm rõ kiến thức về cấu trúc máy tính (PC)

➢ Nắm rõ kiến thức về cấu trúc vi điều khiển VĐK và lập trình cho bo Arduino

➢ Có kiến thức về cấu trúc và phương thức điều khiển động cơ DC, động cơ bước và động cơ servo

➢ Biết cách lập trình giao diện trên PC bằng các phần mềm như Visual basic, Visual C…

➢ Kết thúc bài thí nghiệm sinh viên phải xây dựng một chương trình để thực hiện những công việc sau:

• Điều khiển góc quay của động cơ servo

• Điều khiển chiều quay và tốc độ của động cơ DC

• Điều khiển chiều quay, tốc độ và số bước của động cơ bước

3.2.2.2 Thiết bị và phần mềm cần thiết:

• Máy tính cá nhân (PC) hoặc laptop

• Chương trình lập trình cho Arduino

Trong bài thí nghiệm này, các mô-đun sẽ được ghép nối với bo Arduino qua các chân được gán nhãn như trong hình bên dưới

Hình 24 Gán nhãn để ghép nối các mô-đun với chân trên bo mạch Arduino

Servo là một dạng động cơ điện đặc biệt Không giống như động cơ thông thường cứ cắm điện vào là quay liên tục, servo chỉ quay khi được điều khiển (bằng xung PPM) với góc quay nằm trong khoảng bất kì từ 0 o - 180 o Mỗi loại servo có kích thước, khối lượng và cấu tạo khác nhau Có loại thì nặng chỉ 9g (chủ yếu dùng trên máy bay mô mình), có loại thì sở hữu một momen lực rất lớn (vài chục Newton/m) Động cơ Servo được thiết kế những hệ thống hồi tiếp vòng kín Tín hiệu ra của động cơ được nối với một mạch điều khiển Khi động cơ quay, vận tốc và vị trí sẽ được hồi tiếp về mạch điều khiển này Nếu có bầt kỳ lý do nào ngăn cản chuyển động quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong muốn Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được điểm chính xác Các động cơ servo điều khiển bằng liên lạc vô tuyến được gọi là động cơ servo RC (radio- controlled) Trong thực tế, bản thân động cơ servo không phải được điều khiển bằng vô tuyến, nó chỉ nối với máy thu vô tuyến trên máy bay hay xe hơi Động cơ servo nhận tín hiệu từ máy thu này

Hình 26 Ghép nối với mô-đun Servo

Mô-đun động cơ Servo được ghép nối với bo Arduino thông qua chân được gán nhãn PWM như sau:

Xây dựng tiến trình giảng dạy

Bảng 4 Bảng xây dựng tiến trình giảng dạy bộ môn thí nghiệm điện tử cơ bản Tuần Chuẩn bị của sinh viên Nội dung giảng dạy và học tập tại lớp

- Phân chia nhóm học tập (5 nhóm), mỗi buổi mỗi nhóm sẽ thực hành 1 bài khác nhau từ nhóm 1 đến nhóm 5 xoay quanh từ bài 1 đến bài 5

- Tìm hiểu thông tin học phần

- Thảo luận ý tưởng dự án học tập

- GV giới thiệu các thiết bị điện tử cần thiết để thực hành có tại phòng TN

- GV cung cấp các tài liệu học tập phục vụ cho học phần thực hành

- Mỗi nhóm nghiên cứu, chuẩn bị xây dựng các chương trình code trên phần mềm Arduino và Visual

Studio cho bài thí nghiệm tương ứng trong tuần của theo nhóm

- Tìm hiểu thêm các cách thực hiện khác để xây dựng chương trình code cho phù hợp

- Tiến hành thí nghiệm đo đạc các đại lượng trong bài thí nghiệm của nhóm

- Bao gồm các bài TN sau:

Bài 1: Điều khiển hiển thị LED RGB và một chuỗi kí tự nhập vào từ máy tính cho hiển thị lên màn hình LCD

Bài 2: Điều khiển động cơ quay theo một góc nhập từ bàn phím máy tính

Bài 3: Đo nhiệt độ và độ ẩm của môi trường

Bài 4: Đo khoảng cách bằng siêu âm Bài 5: Đo và điều khiển nhiệt độ

- Ôn tập lý thuyết các bài thí nghiệm và tiến trình thực hành để chuẩn bị kiểm tra giữa kỳ

- Tiến hành kiểm tra giữa kỳ bằng hình thức thi lý thuyết và thực hành như sau:

• Lý thuyết: Mỗi cá nhân sẽ làm 1 bài kiểm tra gồm các câu hỏi nhỏ xoay quanh về kiến thức trong các bài

TN trong vòng 35 phút Kết quả bài làm sẽ lấy trọng số 0.2

• Thực hành: Mỗi nhóm sẽ bốc thăm và thực hành 1 bài TN theo thăm bốc Kết quả TN sẽ lấy trọng số 0.3

- Chuẩn bị tất cả các báo cáo về các bài TN đã học để báo cáo kiểm tra cuối kỳ

- Ôn tập lý thuyết để trả lời vấn đáp

- Tiến hành kiểm tra cuối kỳ bằng hình thức báo cáo mỗi nhóm 1 bài thí nghiệm trong số những bài thí nghiệm trên theo yêu cầu của GV

- Mỗi cá nhân sẽ phải trả lời vấn đáp 1 số câu hỏi của GV để lấy thêm điểm cá nhân.

Xây dựng rubric đánh giá các kỹ năng

3.4.1 Rubric đánh giá kỹ năng thực nghiệm, thái độ học tập trách nhiệm:

Theo tác giả Đinh Anh Tuấn: “NLTN là khả năng vận dụng những kiến thức, kinh nghiệm, kĩ năng, thái độ và hứng thú để hành động một cách phù hợp và có hiệu quả trong các tình huống đa dạng của cuộc sống” Như vậy, trên cơ sở các quan niệm về NL và NLTN, chúng ta có thể hiểu: “NLTN là khả năng vận dụng các kiến thức, kĩ năng với thái độ tích cực để giải quyết các vấn đề đặt ra trong lĩnh vực vật lí, đó là nghĩ ra các phương án TN có tính khả thi để kiểm chứng những giả thuyết khoa học hay thực hành được TN thành công để rút ra kết quả cần thiết” Các thành tố của năng lực thực nghiệm dựa trên sự tiếp cận nội dung, phương pháp nhận thức cũng như vai trò của môn học đối với thực tiễn, ngoài các NL chung, NLTN là một trong những NL quan trọng cần được hình thành và phát triển thông qua dạy học vật lí Cấu trúc NLTN dựa vào 3 thành tố, đó là: kiến thức, kĩ năng và thái độ

Chính vì những quan điểm trên mà tôi đã xây dựng rubric đánh giá đối với học sinh như sau:

Bảng 5 Bảng rubric đánh giá kỹ năng thực nghiệm, thái độ học tập

-Không vận dụng được lý thuyết vào thực hành

-Biết vận dụng lý thuyết vào thực hành nhưng chưa trả lời được các câu hỏi đặt ra

-Hiểu, trả lời tốt tất cả các câu hỏi thầy cô đưa ra

-Biết vận dụng lý thuyết vào thực hành nhưng chưa thiết lập và giải thích được các chương trình code theo yêu cầu

-Hiểu và trả lời được tất cả các câu hỏi mà thầy cô đưa ra

-Biết vận dụng lý thuyết vào thực hành

-Thiết lập và giải thích tốt các chương trình code đã xây dựng -Biết đề xuất ra phương án thực hành

-Không đáp ứng được các kỹ năng thực hành

-Không sử dụng được các thiết bị thực hành

-Biết các phần mềm hỗ trợ nhưng chưa sử dụng thành thạo được chúng

-Sử dụng thành thạo các loại thiết bị thực hành

Thao tác nhanh nhẹn, chuẩn

-Biết thu thập dữ liệu nhưng chưa xử lí tốt

-Biết sử dụng các phần mềm

-Sử dụng thành thạo các loại thiết bị thực hành Thao tác nhanh nhẹn, chuẩn

-Thu thập dữ liệu, phân tích và xử lí số liệu một cách chính xác xây dựng chương trình những chưa thành thạo

-Sử dụng thành thạo các phần mềm xây dựng chương trình

-Không hoàn thành nhiệm vụ được giao

-Hoàn thành được một phần nhiệm vụ được giao

-Không tích cực trong học tập

-Tích cực trong học tập, tỉ mỉ

-Hoàn thành đúng nhiệm vụ được giao nhưng chưa đúng hạn

-Có hứng thú trong hoạt động học tập Tích cực, kiên nhẫn, trung thực, tỉ mỉ -Hoàn thành đúng hạn nhiệm vụ được giao

3.4.2 Rubric đánh giá kỹ năng làm việc nhóm:

Quá trình đánh giá hiệu quả làm việc nhóm của HS sẽ được đánh giá ngang hàng giữa những HS trong một nhóm, các bạn tự đánh giá lẫn nhau theo rubric bên dưới

Bảng 6 Bảng rubric đánh giá kỹ năng làm việc nhóm

Giải quyết vấn đề đặt ra

-Không tham gia làm việc nhóm

-Không đi làm thí nghiệm

-Không cố gắng để giải quyết vấn đề hoặc giúp người khác giải quyết vấn đề

-Không đề xuất hoặc tinh chỉnh các giải pháp nhưng sẵn sàng thử các giải pháp do người khác đề xuất

-Chủ động tìm kiếm và đề xuất các giải pháp cho các vấn đề

-Tinh lọc các giải pháp do người khác đề xuất

Thái độ trong quá trình làm việc nhóm

-Không tham gia làm việc nhóm

-Không đi làm thí nghiệm

-Thường công khai phê bình về dự án hoặc công việc của các thành viên khác của nhóm, có thái độ tiêu cực về các nhiệm vụ

-Rất ít khi công khai phê bình về dự án hoặc công việc của người khác, có thái độ tích cực về các nhiệm vụ

Không bao giờ công khai phê bình về dự án hoặc công việc của người khác, luôn luôn có thái độ tích cực về các nhiệm vụ

Sự hợp tác giữa các thành viên

-Không tham gia làm việc nhóm

-Không đi làm thí nghiệm

-Hiếm khi nghe, chia sẻ và ủng hộ những nỗ lực của người khác nhưng không phải là một thành viên tốt trong nhóm

-Có lắng nghe, chia sẻ, và hỗ trợ những nỗ lực của người khác, nhưng đôi khi không phải là một thành viên tốt trong nhóm

-Hầu như luôn lắng nghe, chia sẻ và hỗ trợ những nỗ lực của người khác Cố gắng giữ mọi người làm việc tốt với nhau

Sự đóng góp vào công trình của nhóm

-Không tham gia làm việc nhóm

-Không đi làm thí nghiệm

-Hiếm khi cung cấp những ý tưởng hữu ích khi tham gia vào nhóm và thảo luận trong lớp

Có thể từ chối tham gia

-Thỉnh thoảng cung cấp ý tưởng hữu ích khi thảo luận trong lớp

Một thành viên nhóm đạt yêu cầu làm những gì được yêu cầu

-Thường xuyên cung cấp những ý tưởng hữu ích khi thảo luận tại các buổi họp nhóm và tại lớp Nhóm trưởng là người có nhiều nổ lực để đóng góp cho sự phát triển của nhóm

3.4.3 Rubric đánh giá kỹ năng báo cáo thuyết trình:

Thông qua các tiêu chí chính sau đây mà người GV cần hình thành rubric đánh giá đối với HS như sau:

Bảng 7 Bảng rubric đánh giá kỹ năng báo cáo thuyết trình

-Đáp ứng được dưới 40% yêu cầu về nội dung báo cáo

-Đáp ứng được từ 40% đến dưới 60% yêu cầu về nội dung báo cáo

-Đáp ứng được từ 60% đến dưới 80% yêu cầu về nội dung báo cáo

-Đáp ứng được trên 80% yêu cầu về nội dung báo cáo

-Nội dung slide còn dài, thiếu tính cô đọng

-Còn nhiều lỗi về hình thức như cỡ chữ, tương phản màu sắc, chưa làm nổi bật được nội dung quan trọng

-Nội dung slide ngắn gọn, đủ ý, logic

-Hình thức hợp lí nhưng chưa làm nổi bật được những nội dung quan trọng

-Nội dung slide ngắn gọn, đủ ý, logic

-Hình thức hợp lí làm nổi bật được những nội dung quan trọng

-Chỉ đọc chứ chưa phải là thuyết trình

-Trình bày được nội dung tương đối rõ ràng nhưng chưa thu hút và

-Trình bày tốt, rõ ràng, dễ hiểu, thu hút và có tương tác với người nghe chú ý tới người nghe

Khả năng trả lời vấn đáp

-Không trả lời được vấn đề được hỏi

-Trả lời được 50% tổng số các câu hỏi

-Trả lời được trên 70% tổng số các câu hỏi

-Trả lời suôn sẻ được 90% tổng số các câu hỏi

Phần thứ ba: KẾT LUẬN

Kết luận

Đề tài khóa luận này có thể được xem như một tài liệu giới thiệu về Arduino và cách thức giao tiếp của Arduino thông qua máy tính nhờ 2 phần mềm hỗ trợ là Arduino IDE và Visual Studio Qua đó, sinh viên các ngành học thực nghiệm sẽ học được thêm một cách giao tiếp mới, giúp sinh viên tiếp cận việc thực hành điền khiển các thiết bị hay thực hiện một ứng dụng nào đó một cách dễ dàng hơn

Khóa luận này giới thiệu về bộ kit Arduino gồm nhiều bài thí nghiệm sử dụng các linh kiện, thiết bị và một số cảm biến thông dụng, hướng dẫn cách sử dụng phần mềm Arduino IDE và Visual Studio một cách cơ bản nhất Xây dựng tiến trình thực hiện các bài thí nghiệm có sẵn ở khoa Vật lý một cách chi tiết nhất Điều này giúp cho sinh viên có thể phát triển thêm ý tưởng thiết kế mạch cho riêng mình mà không cần phụ thuộc quá nhiều vào các ví dụ đã trình bày trong khóa luận này

Bên cạnh đó khóa luận cũng trình bày phương pháp giảng dạy theo định hướng phát triển năng lực Xây dựng cụ thể tiến trình giảng dạy và học tập Hơn nữa là xây dựng các rubric đánh giá học phần này thông qua các tiêu chí căn bản nhất đòi hỏi sinh viên phải thực hiện được.

Khuyến nghị: 74 TÀI LIỆU THAM KHẢO IX PHỤ LỤC PL 1

Với những ưu điểm vượt trội của Arduino như vậy, tôi nghĩ Khoa Vật lý nên đầu tư các mạch thiết bị điện tử phục vụ cho sinh viên học tập và phát triển để đưa ra một kế hoạch học tập mới, áp dụng Arduino vào chuyên ngành điện tử hoặc các bài thực hành ghép nối, giao tiếp thiết bị trong chương trình đào tạo của Khoa để sinh viên có thể phát huy được tính tích cực, sáng tạo của mình trong việc nghiên cứu, chế tạo các mô hình, ứng dụng thực tiễn hơn vào cuộc sống và đặc biệt là trong lĩnh vực điện tử, đo lường và tự động hóa

[1] Nguyễn Hoàng Anh (2017), Xây dựng các tiêu chí đánh giá năng lực thực nghiệm dựa trên thí nghiệm tự tạo, Tạp chí khoa học Trường Đại học Trà Vinh

[2] Vũ Cao Đàm (2000), Phương pháp luận nghiên cứu khoa học, NXB Khoa học và

[3] Lê Đắc Hiền (2018), Sự phát triển của Arduino thông qua các bo mạch điều khiển

[4] Đinh Anh Tuấn (2015), Bồi dưỡng năng lực thực nghiệm cho học sinh trong dạy học chương Cảm ứng điện từ, Luận văn thạc sĩ

[5] Phạm Xuân Quế - Ngô Diệu Nga - Nguyễn Văn Biên - Nguyễn Anh Thuấn - Thạch Thị Đào Liên - Nguyễn Văn Nghiệp - Nguyễn Trọng Sửu (2014), Hướng dẫn dạy học và kiểm tra đánh giá theo định hướng phát triển năng lực học sinh cấp năng lực phổ thông, Bộ giáo dục và đào tạo Hà Nội

[6] Vụ giáo dục trung học, Tài liệu tập huấn Hướng dẫn dạy học và kiểm tra đánh giá theo định hướng năng lực học sinh cấp trung học phổ thông môn Vật lí, 2014

[7] Thư viện học liệu mở Việt Nam (VOER)

[8] Tài liệu thực hành Thí nghiệm ghép nối và đo lường điều khiển bằng máy tính, Khoa Vật lý Trường Đại học Sư Phạm – Đại học Đà Nẵng, 2019.

#include //khai báo thư viện Liquid Crystal I2C

LiquidCrystal_I2C lcd(0x27, 16, 2); //khai báo LCD, su dung dia chi 0x3F neu su dung loai LCD xanh String hang1;

String check; //chuỗi kiểm tra int val1, val2, val3;

String chuoi3; byte moc1; byte moc2; void LCD(); void SEG(); void RGB(); void setup() {

// put your setup code here, to run once:

Serial.begin(9600); //khai báo tốc độ baud lcd.init(); //cài đặt LCD lcd.backlight(); //bật đèn nền LCD lcd.clear(); //xóa LCD lcd.print("TH GHEP NOI"); //in ra LCD "TH GHEP NOI" lcd.print("DO THI THU HIEU"); //in ra LCD "DO THI THU HIEU" pinMode (A, OUTPUT); pinMode (B, OUTPUT); pinMode (C, OUTPUT); pinMode (D, OUTPUT); pinMode (RED, OUTPUT); pinMode (GREEN, OUTPUT); pinMode (BLUE, OUTPUT);

/* - kiểm tra biến check -*/ if (check == "lcd") //

{ lcd.clear(); lcd.print("Chon LCD");

LCD(); //gọi hàm con LCD

{ lcd.clear(); lcd.print("Chon 7_SEG");

{ lcd.clear(); lcd.print("Chon LED");

{ lcd.clear(); lcd.print("Chon RGB");

} while (Serial.available()) //kiểm tra Serial đang hoạt động { check = Serial.readString(); //đọc dữ liệu nhập từ Serial if (check == "lcd") // nếu biến check = "lcd"

{ lcd.clear(); lcd.print("Chon LCD");

LCD(); // gọi hàm LCD lcd.clear(); lcd.print("nhap text");

} if (check == "seg") // nếu biến check = "sv"

{ lcd.clear(); lcd.print("Chon Servo");

} if (check == "leb") // nếu biến check = "dc"

{ lcd.clear(); lcd.print("Chon MotorDC");

} if (check == "rgb") // nếu biến check = "ss"

{ lcd.clear(); lcd.print("Chon sensor");

// Hàm con LCD void LCD()

String t = Serial.readString(); //đọc dữ liệu nhập vào từ Serial if ( t == "led") // nếu dữ liệu nhập vào là "sv"

{ check = t; // gán biến check = "sv" return; // thoát khỏi vòng lặp

} if (t == "seg") // nếu dữ liệu nhập vào là "ss"

{ check = t; // gán biết check = "ss" return; // thoát vòng lặp

} if (t == "rgb") // nếu dữ liệu nhập vào là "dc"

{ check = t; // gán biến check = "dc" return; // thoát vòng lặp

} lcd.clear(); if (t.length() 0) //nếu sau khi cắt khi độ dài chuỗi t > 0

{ lcd.setCursor(0, 0); //đặt con trỏ tại hàng 1, cột 1 lcd.print(hang1); //in ra hang1 sau khi cắt if (t.length() 16 kí tự

{ hang2 = t; //gán hang2 = chuỗi t for (i = 16; i >= 0; i )

{ if (t.charAt(i) == ' ') //kiểm tra kí tự thứ i = " "

{ hang2.remove(i, t.length() - i); //cắt bỏ hang2 từ kí tự thứ "i" tới hết chuỗi t.remove(0, i + 1); //cắt bỏ chuỗi t từ vị trí 0 tới i+1 break;

} lcd.setCursor(0, 1); //đưa con trỏ tới hàng 2, cột 1 lcd.print(hang2); //in ra LCD chuỗi hang2 hang1 = hang2; // gán hang1 = hang2 để lặp lại vòng lặp **

} delay(3000); //delay 3s lcd.clear(); //xóa LCD để in ra chuỗi tiếp theo

String number = Serial.readString(); //đọc dữ liệu nhập vào từ Serial if ( number == "lcd")

{ check = number; return; // thoát khỏi vòng lặp

{ check = number; return; // thoát vòng lặp

String led = Serial.readString(); //đọc dữ liệu nhập vào từ Serial if ( led == "lcd")

{ check = led; return; // thoát khỏi vòng lặp

{ check = led; return; // thoát vòng lặp

String chuoi = Serial.readString(); //đọc dữ liệu nhập vào từ Serial if ( chuoi == "lcd")

{ check = chuoi; return; // thoát khỏi vòng lặp

{ check = chuoi; return; // thoát vòng lặp

} for (int i = 0; i < chuoi.length(); i++) { if (chuoi.charAt(i) == ',')

{ moc1 = i; //Tìm vị trí của dấu ","

{ moc2 = i; //Tìm vị trí của dấu ","

} chuoi1 = chuoi; chuoi2 = chuoi; chuoi3 = chuoi; chuoi1.remove(moc1); //Tách giá trị thanh trượt 1 ra chuoi1 chuoi2.remove(0, moc1 + 1); ////Tách giá trị thanh trượt 2 ra chuoi2 chuoi3.remove(0, moc2 + 1); val1 = chuoi1.toInt(); //Chuyển chuoi1 thành số val2 = chuoi2.toInt(); //Chuyển chuoi2 thành số val3 = chuoi3.toInt(); digitalWrite(RED, val1); digitalWrite(BLUE, val2); digitalWrite(GREEN, val3);

2 Phụ lục 2: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports;

{ public partial class Form1 : Form

} private void Form1_Load(object sender, EventArgs e)

{ trackBar1.Maximum = 255; trackBar2.Maximum = 255; trackBar3.Maximum = 255; string[] ComList = SerialPort.GetPortNames(); cbxComList.Items.AddRange(ComList); groupBox2.Enabled = false;

} private void button1_Click(object sender, EventArgs e)

MessageBox.Show("Vui Long Chon Cong COM", "Thong Bao", MessageBoxButtons.OK, MessageBoxIcon.Error); return;

{ serialPort.Close(); button1.Text = "Connect"; groupBox2.Enabled = false;

{ serialPort.PortName = cbxComList.Text; serialPort.Open(); button1.Text = "Disconnect"; groupBox2.Enabled = true;

MessageBox.Show("Khong The Mo Cong COM");

} private void button15_Click(object sender, EventArgs e)

{ serialPort.Write("led7_off"); label7.Text = "LED 7: OFF";

} private void button2_Click(object sender, EventArgs e)

{ serialPort.Write("led1_on"); label1.Text = "LED 1: ON";

} private void button4_Click(object sender, EventArgs e)

} private void button6_Click(object sender, EventArgs e) { serialPort.Write("led3_on"); label3.Text = "LED 3: ON";

} private void button8_Click(object sender, EventArgs e) { serialPort.Write("led4_on"); label4.Text = "LED 4: ON";

} private void button10_Click(object sender, EventArgs e) { serialPort.Write("led5_on"); label5.Text = "LED 5: ON";

} private void button12_Click(object sender, EventArgs e) { serialPort.Write("led6_on"); label6.Text = "LED 6: ON";

} private void button14_Click(object sender, EventArgs e) { serialPort.Write("led7_on"); label7.Text = "LED 7: ON";

} private void button16_Click(object sender, EventArgs e) { serialPort.Write("led8_on"); label8.Text = "LED 8: ON";

} private void button3_Click(object sender, EventArgs e) { serialPort.Write("led1_off"); label1.Text = "LED 1: OFF";

} private void button5_Click(object sender, EventArgs e) { serialPort.Write("led2_off"); label2.Text = "LED 2: OFF";

} private void button7_Click(object sender, EventArgs e) { serialPort.Write("led3_off"); label3.Text = "LED 3: OFF";

} private void button9_Click(object sender, EventArgs e) { serialPort.Write("led4_off"); label4.Text = "LED 4: OFF";

} private void button11_Click(object sender, EventArgs e) { serialPort.Write("led5_off"); label5.Text = "LED 5: OFF";

{ serialPort.Write("led6_off"); label6.Text = "LED 6: OFF";

} private void button17_Click(object sender, EventArgs e)

{ serialPort.Write("led8_off"); label8.Text = "LED 8: OFF"; private void trackBar2_Scroll(object sender, EventArgs e)

} private void button18_Click(object sender, EventArgs e)

{ serialPort.Write(textBox1.Text); textBox1.Clear();

} private void label1_Click(object sender, EventArgs e)

} private void toolStripStatusLabel1_Click(object sender, EventArgs e) {

} private void trackBar3_Scroll(object sender, EventArgs e)

} private void button19_Click(object sender, EventArgs e)

{ serialPort.Write(trackBar1.Value.ToString()); serialPort.Write(","); serialPort.Write(trackBar2.Value.ToString()); serialPort.Write("."); serialPort.Write(trackBar3.Value.ToString());

} private void button20_Click(object sender, EventArgs e)

{ serialPort.WriteLine(textBox2.Text); textBox2.Clear();

} private void button21_Click(object sender, EventArgs e)

{ serialPort.Write("lcd"); groupBox3.Enabled = false; groupBox4.Enabled = false; groupBox5.Enabled = false; groupBox6.Enabled = true;

} private void button22_Click(object sender, EventArgs e)

{ serialPort.Write("seg"); groupBox3.Enabled = false; groupBox4.Enabled = false; groupBox5.Enabled = true; groupBox6.Enabled = false;

} private void button24_Click(object sender, EventArgs e) serialPort.Write("led"); groupBox3.Enabled = true; groupBox4.Enabled = false; groupBox5.Enabled = false; groupBox6.Enabled = false;

} private void button23_Click(object sender, EventArgs e) { serialPort.Write("rgb"); groupBox3.Enabled = false; groupBox4.Enabled = true; groupBox5.Enabled = false; groupBox6.Enabled = false;

} private void label10_Click(object sender, EventArgs e) {

// defines pins numbers const int stepPin = 3; const int dirPin = 2;

#include //khai báo thư viện Servo

Servo myservo; //khai báo servo const int stepsPerRevolution = 200;

String goc; //dùng cho servo

String tocdo; int tocdo2; int tocdo3; //dùng cho motor

String check; //chuỗi kiểm tra void SERVO(); // ham con Servo void MOTOR(); //ham con motor void STEPS(); //ham con step void setup() {

// put your setup code here, to run once:

Serial.begin(9600); //khai báo tốc độ baud myservo.attach(10); //khai báo chân OUT của servo

// Tốc độ 100rpm pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT);

/* - kiểm tra biến check -*/ if (check == "sv")

SERVO(); //gọi hàm con SERVO

MOTOR(); //gọi hàm con MOTOR

STEPS(); //gọi hàm con STEPS

} while (Serial.available()) //kiểm tra Serial đang hoạt động { check = Serial.readString(); //đọc dữ liệu nhập từ Serial if (check == "sv") // nếu biến check = "sv"

} if (check == "dc") // nếu biến check = "dc"

} if (check == "steps") // nếu biến check = "ss"

// Hàm con SERVO void SERVO()

String goc = Serial.readString(); //đọc giá trị góc nhập từ Serial if ( goc == "dc") // nếu dữ liệu nhập vào là "dc"

{ check = goc; // gán biến check = "dc" return; // thoát vòng lặp

} if ( goc == "steps") // nếu dữ liệu nhập vào là "steps"

{ check = goc; // gán biến check = "ss" return; // thoát vòng lặp

} myservo.write(goc.toInt()); // chuyển góc từ kiểu String qua Int,quay servo theo góc được nhập từ Serial }

} // hàm con MOTOR void MOTOR()

String tocdo = Serial.readString(); //đọc giá trị góc nhập từ Serial if (tocdo == "sv") // nếu dữ liệu nhập vào là "sv"

{ check = tocdo; // gán biến check = "sv" return; // thoát vòng lặp

} if (tocdo == "steps") // nếu dữ liệu nhập vào là "ss"

{ check = tocdo; // gán biến check = "ss" return; // thoát vòng lặp

String c = Serial.readString(); //đọc dữ liệu nhập từ Serial if (c == "sv") // nếu dữ liệu nhập vào là "sv"

{ check = c; // gán biến check = "sv" return; //// thoát vòng lặp

} if (c == "dc") // nếu dữ liệu nhập vào là "dc"

{ check = c; // gán biến check = "dc" return; // thoát vòng lặp

{ digitalWrite(dirPin, LOW); for (int x = 0; x < c.toInt(); x++) { digitalWrite(stepPin, HIGH); delayMicroseconds(500); digitalWrite(stepPin, LOW); delayMicroseconds(500);

4 Phụ lục 4: using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; namespace WindowsFormsApp2

{ public partial class Form1 : Form

} private void Form1_Load(object sender, EventArgs e)

{ string[] ComList = SerialPort.GetPortNames(); comboBox1.Items.AddRange(ComList); groupBox2.Enabled = false;

} private void button1_Click(object sender, EventArgs e)

MessageBox.Show("Vui Long Chon Cong COM", "Thong Bao", MessageBoxButtons.OK, MessageBoxIcon.Error); return;

{ serialPort.Close(); button1.Text = "Connect"; groupBox2.Enabled = false;

{ serialPort.PortName = comboBox1.Text; serialPort.Open(); button1.Text = "Disconnect"; groupBox2.Enabled = true;

MessageBox.Show("Khong The Mo Cong COM");

} private void textBox1_TextChanged(object sender, EventArgs e)

} private void button3_Click(object sender, EventArgs e)

{ serialPort.Write("sv"); groupBox3.Enabled = true; groupBox4.Enabled = false;

} private void button2_Click(object sender, EventArgs e) { serialPort.Write(textBox1.Text);

} private void button6_Click(object sender, EventArgs e) { serialPort.Write("steps"); groupBox3.Enabled = false; groupBox4.Enabled = false; groupBox5.Enabled = true;

} private void button5_Click(object sender, EventArgs e) { serialPort.Write(textBox3.Text);

} private void button7_Click(object sender, EventArgs e) { serialPort.Write("dc"); groupBox3.Enabled = false; groupBox4.Enabled = true; groupBox5.Enabled = false;

LiquidCrystal_I2C lcd(0x27,16,2); const int DHTPIN = 2;//khai báo chân DHT const int DHTTYPE = DHT11; //khai báo loại DHT11

DHT dht(DHTPIN, DHTTYPE);//khai báo DHT void setup() {

Serial.begin(9600); //khai báo tốc độ baud lcd.init();//cài đặt LCD lcd.backlight(); //bật đèn nền LCD dht.begin();//khởi tạo hàm dht

} void loop(){ float h = dht.readHumidity();//gán biến h = độ ẩm đọc từ DHT float t = dht.readTemperature();//gán biến t = nhiệt độ đọc từ DHT lcd.setCursor(0,0); lcd.print("nhietdo:"); lcd.setCursor(10,0); lcd.println(t);//in ra LCD nhiệt độ lcd.setCursor(12,0); lcd.print("c ");

Serial.println(t); lcd.setCursor(0,1); lcd.print("doam:"); lcd.setCursor(7,1); lcd.println(h); //in ra LCD độ ẩm lcd.setCursor(9,1); lcd.print("% "); delay(2000);

6 Phụ lục 6: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; namespace WindowsFormsApp2

{ public partial class Form1 : Form

} private void Form1_Load(object sender, EventArgs e)

{ string[] ComList = SerialPort.GetPortNames(); comboBox1.Items.AddRange(ComList); groupBox2.Enabled = false;

} private void button1_Click(object sender, EventArgs e)

MessageBox.Show("Vui Long Chon Cong COM", "Thong Bao", MessageBoxButtons.OK, MessageBoxIcon.Error); return;

{ serialPort.Close(); button1.Text = "Connect"; groupBox2.Enabled = false;

{ serialPort.PortName = comboBox1.Text; serialPort.Open(); button1.Text = "Disconnect"; groupBox2.Enabled = true;

MessageBox.Show("Khong The Mo Cong COM");

} private void timer1_Tick(object sender, EventArgs e)

String data = serialPort.ReadLine().ToString();

String[] dataTempHumid = data.Split(','); int Hum = (int)(Math.Round(Convert.ToDecimal(dataTempHumid[0]), 0)); int Temp = (int)(Math.Round(Convert.ToDecimal(dataTempHumid[1]), 0)); label1.Text = "Nhiệt độ: " + Hum.ToString() + "°C "; label2.Text = "Độ ẩm: " + Temp.ToString() + " % ";

} private void button2_Click(object sender, EventArgs e)

7 Phụ lục 7: const int trig = 8; // chân trig của HC-SR04 const int echo = 7; // chân echo của HC-SR04

String check; //chuỗi kiểm tra void SENSORSRF05(); //ham con sensor void setup()

{ // put your setup code here, to run once:

Serial.begin(9600); //khai báo tốc độ baud pinMode(trig, OUTPUT); // chân trig sẽ phát tín hiệu pinMode(echo, INPUT); // chân echo sẽ nhận tín hiệu

{ while (Serial.available()) //kiểm tra Serial đang hoạt động

{ check = Serial.readString(); //đọc dữ liệu nhập từ Serial if (check == "ssrf") // nếu biến check = "ss"

} //hàm con SENSOR void SENSORSRF05() while (1)

{ unsigned long duration; // biến đo thời gian int distance; // biến lưu khoảng cách

/* Phát xung từ chân trig */ digitalWrite(trig, 0); // tắt chân trig delayMicroseconds(2); digitalWrite(trig, 1); // phát xung từ chân trig delayMicroseconds(5); // xung có độ dài 5 microSeconds digitalWrite(trig, 0); // tắt chân trig

// Đo độ rộng xung HIGH ở chân echo duration = pulseIn(echo, HIGH);

// Tính khoảng cách đến vật distance = int(duration / 2 / 29.412);

/* In kết quả ra Serial Monitor */

8 Phụ lục 8: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; namespace WindowsFormsApp4

{ public partial class Form1 : Form

} private void Form1_Load(object sender, EventArgs e)

{ string[] ComList = SerialPort.GetPortNames(); comboBox1.Items.AddRange(ComList); groupBox2.Enabled = false;

} private void button1_Click(object sender, EventArgs e)

MessageBox.Show("Vui Long Chon Cong COM", "Thong Bao", MessageBoxButtons.OK, MessageBoxIcon.Error); return;

{ serialPort.Close(); button1.Text = "Connect"; timer.Stop(); groupBox2.Enabled = false;

{ serialPort.PortName = comboBox1.Text; serialPort.Open(); button1.Text = "Disconnect"; groupBox2.Enabled = true;

MessageBox.Show("Khong The Mo Cong COM");

} private void timer_Tick(object sender, EventArgs e)

//timer.Interval = 1000; string data = serialPort.ReadLine(); label1.Text = "Khoảng Cách: " + data.ToString();

} private void button2_Click(object sender, EventArgs e)

{ serialPort.Write("ssrf"); timer.Start();

} private void label2_Click(object sender, EventArgs e)

} private void groupBox2_Enter(object sender, EventArgs e)

#include // Chân nối với Arduino

#define ONE_WIRE_BUS 5 //Thiết đặt thư viện onewire

OneWire oneWire(ONE_WIRE_BUS); //Mình dùng thư viện DallasTemperature để đọc cho nhanh DallasTemperature sensors(&oneWire);

String check; //chuỗi kiểm tra void SENSORDS18B20(); //ham con sensor void NGUONLANH(); void NGUONNONG(); void setup()

// put your setup code here, to run once:

Serial.begin(9600); //khai báo tốc độ baud sensors.begin(); pinMode(LANH, OUTPUT); pinMode(NONG, OUTPUT); digitalWrite(LANH, HIGH); digitalWrite(NONG, HIGH);

{ while (Serial.available()) //kiểm tra Serial đang hoạt động

{ check = Serial.readString(); //đọc dữ liệu nhập từ Serial if (check == "ssds") // nếu biến check = "ss"

} if (check == "dklanh") // nếu biến check = "ss"

} if (check == "dknong") // nếu biến check = "ss"

//hàm con SENSOR void SENSORDS18B20()

String ss = Serial.readString(); //đọc dữ liệu nhập từ Serial if (ss == "dklanh") // nếu biến check = "ss"

} if (ss == "dknong") // nếu biến check = "ss"

Serial.println(sensors.getTempCByIndex(0)); // vì 1 ic nên dùng 0 //chờ 1 s rồi đọc để bạn kiệp thấy sự thay đổi delay(1000);

String n = Serial.readString(); //đọc dữ liệu nhập từ Serial if (n == "ssds") // nếu biến check = "ss"

} if (n == "dklanh") // nếu biến check = "ss"

} digitalWrite(LANH, LOW); delay(5000); digitalWrite(LANH, HIGH); break;

String l = Serial.readString(); //đọc dữ liệu nhập từ Serial if (l == "ssds") // nếu biến check = "ssds"

} if (l == "dknong") // nếu biến check = "ss"

} digitalWrite(NONG, LOW); delay(5000); digitalWrite(NONG, HIGH); break;

10 Phụ lục 10: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; namespace WindowsFormsApp5

{ public partial class Form1 : Form

} private void Form1_Load(object sender, EventArgs e)

{ string[] ComList = SerialPort.GetPortNames(); comboBox1.Items.AddRange(ComList); groupBox2.Enabled = false;

} private void button1_Click(object sender, EventArgs e)

MessageBox.Show("Vui Long Chon Cong COM", "Thong Bao", MessageBoxButtons.OK, MessageBoxIcon.Error); return;

{ button1.Text = "Connect"; timer1.Stop(); groupBox2.Enabled = false;

{ serialPort.PortName = comboBox1.Text; serialPort.Open(); button1.Text = "Disconnect"; groupBox2.Enabled = true;

MessageBox.Show("Khong The Mo Cong COM"); }

} private void label1_Click(object sender, EventArgs e) {

} private void button2_Click(object sender, EventArgs e) { serialPort.Write("ssds"); timer1.Start();

} private void timer1_Tick(object sender, EventArgs e) { timer1.Interval = 500; string data = serialPort.ReadLine(); label1.Text = "Nhiệt độ: " + data; timer1.Stop();

} private void button3_Click(object sender, EventArgs e) { serialPort.Write("dklanh");

} private void button4_Click(object sender, EventArgs e) { serialPort.Write("dknong");

Ngày đăng: 06/05/2021, 16:56

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w