1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bồi dưỡng năng lực thực nghiệm của học sinh thông qua xây dựng và sử dụng các thí nghiệm về sóng cơ có kết nối với điện thoại thông minh

129 1 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 129
Dung lượng 4,65 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH Hồng Thị Bích Tuyền BỒI DƯỠNG NĂNG LỰC THỰC NGHIỆM CỦA HỌC SINH THÔNG QUA XÂY DỰNG VÀ SỬ DỤNG CÁC THÍ NGHIỆM VỀ SĨNG CƠ CĨ KẾT NỐI VỚI ĐIỆN THOẠI THƠNG MINH LUẬN VĂN THẠC SĨ KHOA HỌC GIÁO DỤC Thành phố Hồ Chí Minh – 2020 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH Hồng Thị Bích Tuyền BỒI DƯỠNG NĂNG LỰC THỰC NGHIỆM CỦA HỌC SINH THÔNG QUA XÂY DỰNG VÀ SỬ DỤNG CÁC THÍ NGHIỆM VỀ SĨNG CƠ CĨ KẾT NỐI VỚI ĐIỆN THOẠI THƠNG MINH Chun ngành: Lí luận phương pháp dạy học môn Vật lý Mã số : 8140111 LUẬN VĂN THẠC SĨ KHOA HỌC GIÁO DỤC NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Trần Ngọc Chất Thành phố Hồ Chí Minh – 2020 LỜI CAM ĐOAN Tơi xin cam đoan luận văn thạc sĩ giáo dục với đề tài “Bồi dưỡng lực thực nghiệm học sinh thơng qua xây dựng sử dụng thí nghiệm sóng có kết nối với điện thoại thơng minh” cơng trình nghiên cứu riêng tơi Các nội dung kết luận văn trung thực chưa công bố cơng trình khác Tơi chịu trách nhiệm với lời cam đoan Thành phố Hồ Chí Minh, tháng 11 năm 2020 Tác giả Hồng Thị Bích Tuyền LỜI CÁM ƠN Lời xin chân thành cám ơn bày tỏ lòng biết ơn sâu sắc đến TS Trần Ngọc Chất – Người bảo, hướng dẫn tận tình cho tơi suốt q trình nghiên cứu hồn thành luận văn Tơi xin gửi lời cám ơn chân thành đến quý Thầy Cơ giáo Khoa Vật lí, Trường Đại học Sư phạm Thành phố Hồ Chí Minh nhiệt tình truyền đạt kiến thức kinh nghiệm quý báu cho suốt khóa học Thạc sĩ trường Xin gửi lời cám ơn đến Phòng Sau Đại học, Trường Đại học Sư phạm Thành phố Hồ Chí Minh tạo điều kiện cho tơi hồn thành luận văn Xin bày tỏ lòng cám ơn sâu sắc tới ban Giám hiệu Trường THPT Thạnh Lộc toàn thể quý thầy tổ Vật lí, nhóm em học sinh lớp 12A9 giúp đỡ tạo điều kiện thuận lợi cho suốt thời gian thực nghiệm sư phạm trường Xin bày tỏ lòng cám ơn sâu sắc tới ban Giám hiệu Trường THPT Lý Thái Tổ tồn thể q thầy tổ Vật lí, nhóm em học sinh lớp 12A4, 12A6 giúp đỡ tạo điều kiện thuận lợi cho suốt thời gian thực nghiệm sư phạm trường Cuối xin cám ơn gia đình, bạn bè anh chị, bạn học viên K29 trường Đại học Sư phạm thành phố Hồ Chí Minh ln động viên tơi q trình học tập, nghiên cứu hoàn thành luận văn Do thời gian thực đề tài có hạn tình hình dịch bệnh kéo dài nên luận văn khơng thể tránh khỏi thiếu sót, kính mong nhận góp ý, bổ sung từ q thầy bạn để đề tài hoàn thiện Xin chân thành cảm ơn! Thành phố Hồ Chí Minh, tháng 11 năm 2020 Tác giả Hồng Thị Bích Tuyền MỤC LỤC Lời cam đoan Lời cám ơn Mục lục Danh mục chữ viết tắt Danh mục bảng Danh mục hình ảnh, biểu đồ, sơ đồ MỞ ĐẦU 1 Lí chọn đề tài Mục đích nghiên cứu đề tài 3 Giả thuyết khoa học đề tài Đối tượng nghiên cứu đề tài Nhiệm vụ nghiên cứu đề tài 5.1 Nghiên cứu lí luận 5.2 Nghiên cứu điều tra thực tiễn 5.3 Nghiên cứu phịng thí nghiệm 5.4 Nghiên cứu thí nghiệm Phương pháp nghiên cứu đề tài Đóng góp đề tài Cấu trúc đề tài CHƯƠNG 1: CƠ SỞ LÍ LUẬN VỀ BỒI DƯỠNG NĂNG LỰC THỰC NGHIỆM CỦA HỌC SINH TRONG DẠY HỌC VẬT LÍ …… .6 1.1 Năng lực thực nghiệm 1.1.1 Khái niệm lực 1.1.2 Khái niệm lực thực nghiệm 1.1.3 Cấu trúc lực thực nghiệm 1.2 Bồi dưỡng lực thực nghiệm học sinh dạy học Vật lí 11 1.2.1 Tầm quan trọng việc bồi dưỡng lực thực nghiệm học sinh 11 1.2.2 Các biện pháp bồi dưỡng lực thực nghiệm học sinh 12 1.2.3 Các mức độ biểu lực thực nghiệm học sinh học tập 15 1.3 Dạy học phát giải vấn đề 19 1.3.1 Khái niệm dạy học phát giải vấn đề 19 1.3.2 Tiến trình dạy học phát giải vấn đề 20 1.4 Điện thoại thông minh dạy học Vật lí 24 1.4.1 Máy tính thí nghiệm ghép nối máy tính 24 1.4.2 Điện thoại thơng minh thay phần máy tính 25 1.4.3 Những tính vượt trội điện thoại thông minh 26 1.4.4 Thí nghiệm kết nối với điện thoại thơng minh dạy học Vật lí 27 1.5 Nền tảng công nghệ 29 1.5.1 Sơ lược Blue pill (STM32F103C8T6) 29 1.5.2 Các thông số phần cứng 30 1.5.3 Ưu điểm so với mạch Arduino 31 1.5.4 Phần mềm điện thoại có hệ điều hành Android 32 CHƯƠNG 2: CHẾ TẠO VÀ SỬ DỤNG THÍ NGHIỆM SĨNG CƠ CĨ KẾT NỐI VỚI ĐIỆN THOẠI THƠNG MINH NHẰM BỒI DƯỠNG NĂNG LỰC THỰC NGHIỆM CỦA HỌC SINH…………………………………………… 39 2.1 Mạch kiến thức Sóng 39 2.2 Các thí nghiệm chương “Sóng cơ” 40 2.3 Thực trạng bồi dưỡng lực thực nghiệm học sinh dạy học trường THPT 40 2.4 Thực trạng việc dạy học kiến thức Sóng trường THPT 42 2.4.1 Về phương pháp hình thức tổ chức dạy học: 42 2.4.2 Về phương pháp tiếp thu kiến thức học sinh 43 2.4.3 Các vấn đề sai lầm mà học sinh thường gặp trình tiến hành thí nghiệm Sóng 43 2.5 Thực trạng sử dụng thiết bị thí nghiệm 43 2.5.1 Thực trạng thiết bị thí nghiệm 43 2.5.2 Thực trạng sử dụng thiết bị thí nghiệm 44 2.6 Những ưu điểm nhược điểm thiết bị thí nghiệm trường phổ thơng dạy học phần Sóng 44 2.6.1 Ưu điểm 44 2.6.2 Nhược điểm 45 2.7 Chế tạo thiết bị thí nghiệm Sóng lớp 12 có kết nối với điện thoại thông minh 46 2.7.1 Chức thiết bị thí nghiệm 46 2.7.2 Các thành phần thiết bị thí nghiệm 46 2.7.3 Các bước tiến hành thí nghiệm 51 2.8 Thiết kế tiến trình dạy học sử dụng thí nghiệm Sóng có kết nối với điện thoại thơng minh nhằm bồi dưỡng lực thực nghiệm học sinh THPT 65 2.8.1 Kế hoạch dạy học kiến thức Sóng dừng 66 2.8.2 Tiến trình dạy học 68 2.9 Xây dựng tiêu chí đánh giá lực thực nghiệm 74 CHƯƠNG 3: THỰC NGHIỆM SƯ PHẠM 78 3.1 Mục đích thực nghiệm sư phạm 78 3.2 Đối tượng, nhiệm vụ, nội dung thực nghiệm sư phạm 78 3.2.1 Đối tượng thực nghiệm 78 3.2.2 Nhiệm vụ thực nghiệm sư phạm 79 3.2.3 Nội dung thực nghiệm sư phạm 79 3.3 Kế hoạch thực nghiệm sư phạm 80 3.4 Diễn biến trình thực nghiệm sư phạm 80 3.5 Đánh giá kết thực nghiệm sư phạm 83 3.5.1 Xây dựng tiêu chí đánh giá lực thực nghiệm 83 3.5.2 Phân tích kết thực nghiệm sư phạm 86 KẾT LUẬN VÀ KIẾN NGHỊ 96 Kết luận 96 Kiến nghị 97 TÀI LIỆU THAM KHẢO 98 PHỤ LỤC PL1 DANH MỤC CÁC CHỮ VIẾT TẮT Chữ viết đầy đủ Chữ viết tắt Giải vấn đề GQVĐ Giáo viên GV Học sinh HS Hậu kiểm HK Năng lực thực nghiệm NLTN Thí nghiệm TN Thực nghiệm sư phạm TNSP Tiền kiểm TK DANH MỤC CÁC BẢNG Bảng 1.1 Kiến thức, kĩ năng, thái độ lực thành phần cấu thành lực thực nghiệm học sinh Bảng Bảng Rubric đánh giá lực thực nghiệm học sinh 74 Bảng 3.1 Bảng lượng hóa mức độ đạt tiêu chí NLTN 84 Bảng 3.2 Bảng quy đổi mức độ NLTN theo phần trăm điểm tổng số điểm HS đạt 86 Bảng 3.3 Bảng đánh giá NLTN HS 87 Bảng 3.4 Bảng thống kê số HS theo mức độ quy đổi .88 Bảng 3.5 Bảng đánh giá tổng thể NLTN 93 Bảng 3.6 Bảng thống kê số HS theo mức độ quy đổi 93 DANH MỤC CÁC HÌNH ẢNH, BIỂU ĐỒ, SƠ ĐỒ Hình 1.1: Thí nghiệm định luật bảo toàn động lượng .25 Hình 1.2: Thí nghiệm định luật Boyle –Mariote 25 Hình 1.3: Thí nghiệm dao động tắt dần 25 Hình 1.4: Bảng mạch Blue pill (STM32F103C8T6) 30 Hình 1.5: Các thông số phần cứng mạch Blue pill 30 Hình 1.6 : Biểu tượng phần mềm Bluetooth Graph Plotter .33 Hình1.7: Giao diện phần mềm Bluetooth Graph Plotter 33 Hình 1.8: Dạng đồ thị sóng sợi dây .34 Hình 1.9: Biểu tượng giao diện phần mềm Graphical 35 Hình 1.10: Giao diện phần mềm chỉnh tần số có CH Play 36 Hình 1.11: Biểu tượng phần mềm Frequency Maker3 điện thoại 36 Hình 1.12: Giao diện phần mềm Frequency Maker3 điện thoại 37 Hình 2.1: Thí nghiệm giao thoa sóng mặt nước .44 Hình 2.2: Thí nghiệm sóng dừng sợi dây 45 Hình 2.3: Hệ thống cảm biến hồng ngoại (trước đóng hộp nhựa mica) 47 Hình 2.4: Hệ thống cảm biến hồng ngoại (sau đóng hộp nhựa mica) 47 Hình 2.5: Bộ phận liên kết hệ thống cảm biến với thước thí nghiệm Sóng dừng (ốc vít có gắn nam châm) 48 Hình 2.6: Hai hệ thống cảm biến hồng ngoại (sau đóng hộp nhựa mica) 48 Hình 2.7: Sơ đồ mạch thu hệ thống cảm biến hồng ngoại .49 Hình 2.8: Hệ thống xử lí tín hiệu 50 Hình 2.9: Hệ thống xử lí tín hiệu, thu nhận liệu HC-05 50 Hình 2.10: Giao diện phần mềm thu thập số liệu từ cảm biến 51 Hình 2.11: Sơ đồ nguyên lí mạch thu gửi liệu qua Bluetooth (mạch chính) 52 Hình 2.12: Bản vẽ mạch PCB sơ đồ nguyên lí Mạch thu gửi liệu qua Bluetooth (mạch chính) 52 Hình 2.13: Bản vẽ PCB mạch thu tín hiệu 53 Hình 2.14: Sơ đồ nguyên lí mạch phát tín hiệu .53 PL4  Thỉnh thoảng  Thường xuyên - Thực suy luận lơgic để tìm hệ cần kiểm nghiệm  Không  Thỉnh thoảng  Thường xuyên - Xác định dụng cụ thí nghiệm cần sử dụng  Khơng  Thỉnh thoảng  Thường xuyên - Dự kiến bước tiến hành thí nghiệm  Khơng  Thỉnh thoảng  Thường xuyên Câu 10 Theo thầy cô nguyên nhân dẫn đến việc NLTN HS phát triển chưa tốt?  Do HS chưa nắm vững kiến thức  Do thói quen ỷ lại, lười suy nghĩ HS  Do GV chưa vận dụng tốt phương án dạy học  Do yếu tố bên ngồi tác động (mơi trường học tập, sở vật chất, ) PL5 PHỤ LỤC 2: PHIẾU ĐIỀU TRA Ý KIẾN HỌC SINH PHIẾU ĐIỀU TRA Ý KIẾN HỌC SINH Câu 1: Các em có thích tiến hành thí nghiệm tiết học Vật lí khơng?  Rất thích  Khá thích  Khơng thích Câu Khi dạy học phần Sóng, thầy có tiến hành thí nghiệm khơng?  Thường xuyên  Thỉnh thoảng  Chưa Câu Khi học phần Sóng, em có tham gia thiết kế, chế tạo, lắp ráp tiến hành thí nghiệm khơng?  Thường xun  Thỉnh thoảng  Chưa Câu Theo em, mục đích việc học nội dung kiến thức Sóng dừng để làm gì?  Bắt buộc phải học theo chương trình mơn học  Các kiến thức có liên quan đến thực tế, đời sống  Để làm tập đề thi Đại học  Mục đích khác: Câu Em cần tổ chức lớp học theo hình thức học kiến thức này?  Tập trung lớp  Làm việc theo nhóm  Làm việc cá nhân Câu Em nghĩ việc sử dụng TN học Sóng dừng hỗ trợ cho việc tiếp nhận kiến thức mức độ nào?  Khơng cần thiết  Rất cần thiết  Có được, khơng  Có, khơng phải tất PL6 PHỤC LỤC 3: CODE CẢM BIẾN SỬ DỤNG Code cho mạch //thuật tốn xác định thời điểm vị trí dây dây cắt qua cảm biến //có khu vực: nửa dương (5 cảm biến), nửa âm (5 cảm biến), vị trí cân (1 cảm biến) //khi dây cắt qua cảm biến (khiến biến đếm thay đổi giá trị), hệ thống báo lại cho ứng dụng Bluetooth Graph Plotter biết dây nửa dương, hay nửa âm, hay vị trí cân if (dem_vtcb_B != dem_vtcb_B_old) // (biến đếm thay đổi giá trị, báo hiệu dây cắt qua) { dem_vtcb_B_old = dem_vtcb_B; time_vtcb_B = x_time_vtcb_B; Serial2.print("#vtcbB"); // (gửi thông tin vị trí thời gian cho ứng dụng qua bluetooth) Serial2.print(time_vtcb_B); Serial2.println("#"); } if (dem_duong_B != dem_duong_B_old) { time_duong_B = x_time_duong_B; Serial2.print("#duongB"); Serial2.print(time_duong_B); Serial2.println("#"); dem_duong_B_old = dem_duong_B; } if (dem_am_B != dem_am_B_old) { time_am_B = x_time_am_B; Serial2.print("#amB"); PL7 Serial2.print(time_am_B); Serial2.println("#"); dem_am_B_old = dem_am_B; } if (dem_vtcb_A != dem_vtcb_A_old) { dem_vtcb_A_old = dem_vtcb_A; time_vtcb_A = x_time_vtcb_A; Serial2.print("#vtcbA"); Serial2.print(time_vtcb_A); Serial2.println("#"); } if (dem_duong_A != dem_duong_A_old) { time_duong_A = x_time_duong_A; Serial2.print("#duongA"); Serial2.print(time_duong_A); Serial2.println("#"); dem_duong_A_old = dem_duong_A; } if (dem_am_A != dem_am_A_old) { time_am_A = x_time_am_A; Serial2.print("#amA"); Serial2.print(time_am_A); Serial2.println("#"); dem_am_A_old = dem_am_A; } // Các hàm chạy dây cắt qua cảm biến khu vực tương ứng (vtcb, nửa âm, nửa dương) // Mỗi dây cắt qua cảm biến, biến đếm hàm tương ứng tăng lên +1, đồng thời lưu lại thời điểm // Ta dùng biến đếm để xác định xem dây vị trí PL8 // Ví dụ: lần dây cắt qua cảm biến vtcb, biến đếm nửa dương đếm lần, // lần thứ dây vị trí 0.6mm, lần thứ vị trí 1.2mm, lần thứ vị trí 0.6mm void vtcb_A() { x_dem_vtcb_A++; x_time_vtcb_A = millis(); } void nua_duong_A() { x_dem_duong_A++; x_time_duong_A = millis(); } void nua_am_A() { x_dem_am_A++; x_time_am_A = millis(); } void vtcb_B() { x_dem_vtcb_B++; x_time_vtcb_B = millis(); } void nua_duong_B() { x_dem_duong_B++; x_time_duong_B = millis(); } void nua_am_B() { x_dem_am_B++; x_time_am_B = millis(); } PL9 Code app Bluetooth Graph Plotter // Hàm xử lí liệu nhận từ mạch thơng qua bluetooth fun process_data(writeMessage: String) { if (writeMessage.contains("duongB")) { if ((dem_duong_B < 10) && start_counting_B == true) { time_duong_B.set(dem_duong_B, (writeMessage.substring(6).toFloat() / 1000f)) // Log.i("my mes1", "${time_duong_B.get(dem_duong_B)}") dem_duong_B++ } else { dem_duong_B = start_counting_B = false } } else if (writeMessage.contains("amB")) { if ((dem_am_B < 10) && start_counting_B == true) { time_am_B.set(dem_am_B, (writeMessage.substring(3).toFloat() / 1000f)) // Log.i("my mes2", "${time_am_B.get(dem_am_B)}") dem_am_B++ } else { dem_am_B = start_counting_B = false } } else if (writeMessage.contains("vtcbB")) { start_counting_B = true; if (dem_duong_B != 0) { time_duong_B.set(dem_duong_B, (writeMessage.substring(5).toFloat() / 1000f)) vitri_B.set(dem_duong_B, 0f) // Log.i("vtcb", "${time_duong_B.get(dem_duong_B)}") val limit_B: Int = round(dem_duong_B / 2f) PL10 for (i in until limit_B) { vitri_B.set( dem_duong_B - - i, (vitri_B.get(dem_duong_B - i) + 0.6).toFloat() ) vitri_B.set(i, vitri_B.get(dem_duong_B - - i)) } for (i: Int in until (dem_duong_B + 1)) { add_dataB_to_graph(time_duong_B.get(i), vitri_B.get(i)) LogData(time_duong_B.get(i).toString(), "", vitri_B.get(i).toString(), "") } dem_duong_B = } else if (dem_am_B != 0) { time_am_B.set(dem_am_B, (writeMessage.substring(5).toFloat() / 1000f)) vitri_B.set(dem_am_B, 0f) // Log.i("vtcb", "${time_am_B.get(dem_am_B)}") val limit_B = round(dem_am_B / 2.0f) for (i in until limit_B) { vitri_B.set(dem_am_B - - i, (vitri_B[dem_am_B - i] - 0.6).toFloat()) vitri_B.set(i, vitri_B[dem_am_B - - i]) } for (i: Int in until (dem_am_B + 1)) { add_dataB_to_graph(time_am_B.get(i), vitri_B.get(i)) LogData(time_am_B.get(i).toString(), "", vitri_B.get(i).toString(), "") } PL11 dem_am_B = } } else if (writeMessage.contains("duongA")) { if ((dem_duong_A < 10) && start_counting_A == true) { time_duong_A.set(dem_duong_A, (writeMessage.substring(6).toFloat() / 1000f)) // Log.i("duong A", "${time_duong_A.get(dem_duong_A)}") dem_duong_A++ } else { dem_duong_A = start_counting_A = false } } else if (writeMessage.contains("amA")) { if ((dem_am_A < 10) && start_counting_A == true) { time_am_A.set(dem_am_A, (writeMessage.substring(3).toFloat() / 1000f)) // Log.i("am A", "${time_am_A.get(dem_am_A)}") dem_am_A++ } else { dem_am_A = start_counting_A = false } } else if (writeMessage.contains("vtcbA")) { start_counting_A = true; if (dem_duong_A != 0) { time_duong_A.set(dem_duong_A, (writeMessage.substring(5).toFloat() / 1000f)) vitri_A.set(dem_duong_A, 0f) // Log.i("vtcb_A", "${time_duong_A.get(dem_duong_A)}") PL12 val limit_A: Int = round(dem_duong_A / 2f) for (i in until limit_A) { vitri_A.set( dem_duong_A - - i, (vitri_A.get(dem_duong_A - i) + 0.6).toFloat() ) vitri_A.set(i, vitri_A.get(dem_duong_A - - i)) } for (i: Int in until (dem_duong_A + 1)) { add_dataA_to_graph(time_duong_A.get(i), vitri_A.get(i)) LogData(time_duong_A.get(i).toString(), vitri_A.get(i).toString(), "", "") } dem_duong_A = } else if (dem_am_A != 0) { time_am_A.set(dem_am_A, (writeMessage.substring(5).toFloat() / 1000f)) vitri_A.set(dem_am_A, 0f) // Log.i("vtcb_A", "${time_am_A.get(dem_am_A)}") val limit_A = round(dem_am_A / 2.0f) for (i in until limit_A) { vitri_A.set(dem_am_A - - i, (vitri_A[dem_am_A - i] - 0.6).toFloat()) vitri_A.set(i, vitri_A[dem_am_A - - i]) } for (i: Int in until (dem_am_A + 1)) { add_dataA_to_graph(time_am_A.get(i), vitri_A.get(i)) LogData(time_am_A.get(i).toString(), vitri_A.get(i).toString(), "", "") PL13 } dem_am_A = } } else if (writeMessage.contains("F")){ var force = writeMessage.substring(1) receivedBT2.setText("Lực căng dây: $force N") } else if (writeMessage.contains("Time")){ var parts = writeMessage.split("Time",",") var time = parts.get(1) var position = parts.get(2) add_dataA_to_graph(time.toFloat(),position.toFloat()) LogData(time, position,"","") } // difference = SystemClock.elapsedRealtime() - time1 // Log.i("time execution", "$difference") } // Hàm lưu liệu vào file fun LogData(x1: String, y1: String, y2: String, f: String) { data = "$x1,$y1,$y2,$f\n" try { //out = openFileOutput("data.csv", Context.MODE_PRIVATE) out?.write(data!!.toByteArray(US_ASCII)) data = "" } catch (e: Exception) { } PL14 } // Hàm vẽ đồ thị từ liệu xử lí fun add_dataA_to_graph(x: Float, y: Float) { log_data.addEntry(Entry(x, y), 0) log_data.notifyDataChanged() graph.notifyDataSetChanged(); // graph.setMaxVisibleValueCount(20) graph.moveViewTo(x, 0f, AxisDependency.LEFT) // graph.moveViewToX(log_data.entryCount.toFloat()) // graph.invalidate() } Code app FrequencyMaker3 // Hàm phát hành động chạm vào hình override fun onTouchEvent(event: MotionEvent): Boolean { touchEvent(event.action) return super.onTouchEvent(event) } // Hàm phát âm chạm vào hình extern "C" { JNIEXPORT void JNICALL Java_com_example_frequencymaker3_MainActivity_touchEvent(JNIEnv *env, jobject obj, jint action) { switch (action) { case AMOTION_EVENT_ACTION_DOWN: state = !state; audioEngine->setToneOn(state); break; PL15 default: break; } } / Hàm phát hành động bấm nút "tăng" increaseBtn.setOnClickListener { v -> var strnum = textview.text.toString() var strlength = strnum.length if (textview.text.toString().substring(0, strlength - 2).toFloat() < 497) { var num = textview.text.toString().substring(0, strlength - 2).toFloat() + changeFrequency(num) Slider1.setValue(num) textview.setText("${num}Hz") } } } / Hàm phát hành động nhập số vào ô số textview.setOnEditorActionListener { v, actionId, event -> val handled = false if (actionId == EditorInfo.IME_ACTION_DONE) { val strnum = textview.text.toString() val strlength = strnum.length var num = 0f try { num = textview.text.toString().substring(0, strlength - 2).toFloat() } catch (e: Exception) { PL16 textview.setText("0Hz") } if (num < 500) { changeFrequency(num) Slider1.setValue(num) } else { Toast.makeText(this, "Tần số cao", Toast.LENGTH_SHORT).show() } } handled } //Hàm phát hành động kéo trượt Slider1.addOnChangeListener { slider: Slider, value: Float, _ -> changeFrequency(value) textview.setText("${value}Hz") } PL17 PHU LỤC 4: HÌNH ẢNH THỰC NGHIỆM Hình PL4.1 HS trường THPT Lý Thái Tổ tiến hành thí nghiệm PL18 Hình PL4.2: HS trường THPT Thạnh Lộc tiến hành thí nghiệm

Ngày đăng: 31/08/2023, 15:31

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

TÀI LIỆU LIÊN QUAN

w