1. Trang chủ
  2. » Kinh Doanh - Tiếp Thị

NGHIÊN CỨU THIẾT KẾ, CHẾ TẠO BỘ CẢM BIẾN GIA TỐC VÀ LỰC SỬ DỤNG TRONG DẠY HỌC VẬT LÍ TRUNG HỌC PHỔ THÔNG

78 630 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 78
Dung lượng 3,48 MB

Nội dung

Header Page of 161 BỘ GIÁO DỤC ĐÀO TẠO TRƯỜNG ĐẠI HỌC PHẠM THÀNH PHỐ HỒ CHÍ MINH KHOA VẬT NGÔ MINH NHỰT NGHIÊN CỨU THIẾT KẾ, CHẾ TẠO BỘ CẢM BIẾN GIA TỐC LỰC SỬ DỤNG TRONG DẠY HỌC VẬT TRUNG HỌC PHỔ THÔNG LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC Thành phố Hồ Chí Minh – 2016 Footer Page of 161 Header Page of 161 BỘ GIÁO DỤC ĐÀO TẠO TRƯỜNG ĐẠI HỌC PHẠM THÀNH PHỐ HỒ CHÍ MINH KHOA VẬT NGÔ MINH NHỰT NGHIÊN CỨU THIẾT KẾ, CHẾ TẠO BỘ CẢM BIẾN ĐO GIA TỐC LỰC SỬ DỤNG TRONG DẠY HỌC VẬT TRUNG HỌC PHỔ THÔNG Ngành: PHẠM VẬT Mã số: 102 NGƯỜI HƯỚNG DẪN KHOA HỌC ThS MAI HOÀNG PHƯƠNG Thành phố Hồ Chí Minh – 2016 Footer Page of 161 Header Page of 161 LỜI CẢM ƠN Trên thực tế thành công mà không gắn liền với hỗ trợ, giúp đỡ dù hay nhiều, dù trực tiếp hay gián tiếp người khác Trong suốt thời gian từ bắt đầu học tập giảng đường đại học đến nay, em nhận nhiều quan tâm, giúp đỡ quý Thầy Cô, gia đình bạn bè Bằng tất lòng biết ơn sâu sắc, em xin gửi lời cảm ơn đến quý Thầy Cô Khoa Vật Trường Đại Học Phạm Thành Phố Hồ Chí Minh, người tận tình truyền đạt kiến thức quý báo cho em suốt thời gian em học trường Em xin gửi lời cảm ơn chân thành đến Thầy Mai Hoàng Phương, người nhiệt tình, tận tâm, chu đáo, cung cấp kiến thức hướng dẫn em thực đề tài Thầy người truyền cho em niềm đam mê, yêu thích khám phá Vật lí, truyền cho em lòng yêu nghề giáo cao quí mà theo đuổi Bên cạnh đó, em xin gửi lời cảm ơn đến Thầy Nguyễn Lâm Duy, người tận tình hướng dẫn mặt kỹ thuật để em hoàn thành tốt luận văn Em xin cảm ơn Thầy Nguyễn Huỳnh Duy Khang Thầy Nguyễn Tấn Phát, người bên cạnh động viên, hướng dẫn hỗ trợ lúc em gặp khó khăn thực luận văn Em xin gửi lời cảm ơn đến Thầy, Cô giảng viên Khoa Vật Lý, trường Đại học Phạm Thành phố Hồ Chí Minh – người trang bị cho em kiến thức hữu ích giúp em hoàn thành luận văn Cuối cùng, em xin gửi lời cảm ơn đến gia đình, bạn bè – người động viên, chia sẽ, giúp đỡ đóng góp ý kiến quí báu suốt trình thực luận văn Em xin chân thành cảm ơn! TP Hồ Chí Minh, ngày 15 tháng 04 năm 2016 Sinh viên Ngô Minh Nhựt Footer Page of 161 Header Page of 161 I MỤC LỤC MỤC LỤC I DANH MỤC CÁC BẢNG VI DANH MỤC CÁC CHỮ VIẾT TẮT VII MỞ ĐẦU 1 Tổng quan tình hình nghiên cứu .1 Mục tiêu nghiên cứu Phương pháp nghiên cứu Đối tượng phạm vi nghiên cứu Nhiệm vụ nghiên cứu Những đóng góp đề tài .3 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 TÍNH TÍCH CỰC SÁNG TẠO CỦA HỌC SINH TRONG HỌC TẬP 1.1.1 Tính tích cực HS học tập .4 1.1.2 Tính sáng tạo HS học tập 1.1.3 Phát huy tính tích cực lực sáng tạo dạy học vật dựa phương pháp dạy học giải vấn đề 1.2 THÍ NGHIỆM TRONG DẠY HỌC VẬT 1.2.1 Thí nghiệm vật 1.2.2 Vai trò thí nghiệm tiến trình dạy học vật 1.2.3 Quy trình xây dựng sử dụng thí nghiệm dạy học vật 1.3 GIỚI THIỆU VỀ BỘ THÍ NGHIỆM KẾT NỐI MÁY TÍNH 14 1.3.1 Vi điều khiển Atmega328P 14 1.3.2 Board Arduino 16 1.3.3 Chuẩn phát sóng radio 17 1.4 TỔNG QUAN VỀ CẢM BIẾN 19 1.4.1 Cảm biến đo lực 19 1.4.2 Cảm biến đo gia tốc 20 1.4.3 Kỹ thuật lập trình ngôn ngữ Labview 23 Footer Page of 161 Header Page of 161 II CHƯƠNG 2: THIẾT KẾ CHẾ TẠO PHẦN CỨNG CỦA BỘ THÍ NGHIỆM 26 2.1 CẢM BIẾN ĐO LỰC 26 2.1.1 Yêu cầu chế tạo 26 2.1.2 Chế tạo 26 2.2 CẢM BIẾN ĐO GIA TỐC 29 2.2.1 Yêu cầu chế tạo 29 2.2.2 Chuẩn cảm biến 29 2.3 THIẾT KẾ MẠCH PHÁT SÓNG RADIO TRUYỀN DỮ LIỆU 32 2.3.1 Khối nguồn 33 2.3.2 Khối xử tín hiệu từ cảm biến 34 2.3.3 Vi điều khiển phát sóng radio truyền liệu 34 2.4 MẠCH GIAO TIẾP MÁY TÍNH BỘ THÍ NGHIỆM HOÀN CHỈNH 35 CHƯƠNG 3: THIẾT KẾ GIAO DIỆN DẠY HỌC 37 3.1 THIẾT KẾ GIAO DIỆN DẠY HỌC BẰNG NGÔN NGỮ LẬP TRÌNH LABVIEW 37 3.1.1 Đọc liệu từ phần cứng thông qua chuẩn giao tiếp nối tiếp 38 3.1.2 Kiểm tra xử tương tác người dùng giao diện dạy học 38 3.2 KẾT QUẢ THIẾT KẾ GIAO DIỆN DẠY HỌC 38 3.2.1 Thanh công cụ 39 3.2.2 Bảng biểu đồ thị 40 3.2.3 Thiết lập thông số đọc liệu 41 3.2.4 Các bước thu thập liệu từ phần cứng 41 CHƯƠNG 4: KHẢO SÁT ĐÁNH GIÁ ĐỘ CHÍNH XÁC CỦA BỘ THÍ NGHIỆM 43 4.1 THÍ NGHIỆM CÁC ĐỊNH LUẬT CƠ HỌC 43 4.1.1 Mục đích thí nghiệm 43 4.1.2 Các bước tiến hành thí nghiệm 44 4.2 BÀN LUẬN KẾT QUẢ CÁC Ý TƯỞNG KHAI THÁC BỘ THÍ NGHIỆM TRONG DẠY HỌC VẬT 56 KẾT LUẬN 57 TÀI LIỆU THAM KHẢO 60 PHỤ LỤC 62 Chức chân vi điều khiển Atmega328P 62 Footer Page of 161 Header Page of 161 III Chương trình nạp cho arduino uno 64 Chương trình nạp vi điều khiển Atmega328P 67 Footer Page of 161 Header Page of 161 IV DANH MỤC CÁC HÌNH VẼ Hình 1 Sơ đồ cảm biến kết nối máy tính 14 Hình Vi điều khiển Atmega328P 15 Hình Sơ đồ chân Atmega328P 15 Hình Board Arduino uno 17 Hình Module nRFL01 sơ đồ chân 18 Hình Sơ đồ kết nối module nRFL01 với vi điều khiển Atmega 328P 18 Hình Mạch cầu Wheastone strain gauge 19 Hình Mạch cầu Wheastone strain gauge bị biến dạng 20 Hình Nguyên lý đo gia tốc cảm biến công nghệ MEMS 21 Hình 10 Cảm biến đo gia tốc ADXL335 22 Hình 11 Front Panel (a) Block Diagram (b) chương trình 24 Hình 12 Khối Block Diagram chương trình đọc liệu thông qua cổng COM 25 Hình Sơ đồ thí nghiệm kết nối máy tính sóng radio 26 Hình 2 Cảm biến đo lực (Loadcell) 26 Hình Sơ đồ nguyên mạch khếch đại dùng IC INA125 27 Hình Đường cong chuẩn cảm biến lực đoạn thẳng tuyến tính 28 Hình Gia tốc trọng trường đặt cảm biến xoay theo hướng khác 30 Hình Chuẩn cảm biến gia tốc 30 Hình Đường cong chuẩn cảm biến gia tốc theo trục Ox 31 Hình Đường cong chuẩn cảm biến gia tốc theo trục Oy 32 Hình Sơ đồ nguyên mạch xử tín hiệu cảm biến phát sóng radio tần số 2.4 GHz 33 Hình 10 Sơ đồ kết nối nRFL01 với vi điều khiển 34 Hình 11 Sơ đồ kết nối nRFL01 với Ardunio uno 35 Hình 12 Bộ cảm biến đo gia tốc lực 35 Hình 13 Bộ thu sóng radio 35 Hình Sơ đồ thuật toán chương trình giao diện máy tính 37 Hình Giao diện dạy học 39 Hình 3 Chức tìm hàm tuyến tính 40 Hình Hộp thoại xuất file JPEG 40 Hình Sao chép liệu từ bảng biểu sang chương trình bảng tính Excel 41 Footer Page of 161 Header Page of 161 V Hình Bố trí thí nghiệm 45 Hình Đồ thị vận tốc – thời gian (v – t) chuyển động thẳng 46 Hình Bố trí thí nghiệm 2.1 47 Hình 4 Đồ thị gia tốc – thời gian (a – t) thí nghiệm 2.1 48 Hình Bố trí thí nghiệm 2.2 49 Hình Đồ thị gia tốc – thời gian (a – t) thí nghiệm 2.2 49 Hình Đồ thị lực – thời gian (F – t) chuyển động nhanh dần 50 Hình Thí nghiệm dao động điều hòa 51 Hình Đồ thị F – t giao động điều hòa 51 Hình 10 Đồ thị gia tốc – thời gian (a – t) dao động điều hòa 52 Hình 11 Đồ thị lựcgia tốc (F – a) dao động điều hòa 52 Hình 12 Bố trí thí nghiệm 53 Hình 13 Bố trí thí nghiệm va chạm đàn hồi 55 Hình 14 Đồ thị vận tốc – thời gian (v – t) va chạm đàn hồi 55 Footer Page of 161 Header Page of 161 VI DANH MỤC CÁC BẢNG 1.1 Các đặc tính bậc vi điều khiển Atmega328P ……………………………15 1.2 Chức chân cảm biến ADXL335 ………………………………………22 4.1 So sánh kết đo vận tốc cảm biến phương pháp dùng cổng quang điện………………………………………………… ………………………………… 46 4.2 So sánh cảm biến lực chế tạo với lực kế lò xo cảm biến lực hãng Vernier …………………………………………………………………….…………………… 53 Footer Page of 161 VII Header Page 10 of 161 DANH MỤC CÁC CHỮ VIẾT TẮT ADC : Analog Digital Converter – chuyển đổi tương tự sang số DC : Direct Current – dòng điện chiều GV : Giáo viên HS : Học sinh IC : Integrated Circuit – mạch tích hợp LabVIEW: Laboratory Virtual Instrumentation Engineering Workbench - Phòng thiết bị thí nghiệm ảo SGK : Sách giáo khoa THPT : Trung học phổ thông TN : Thí nghiệm SPI: Serial Peripheral Interface Footer Page 10 of 161 54 Header Page 64 of 161 0.5 0.49 2.0 1.12 1.05 6.67 1.0 1.05 5.0 1.52 1.50 1.33 1.5 1.47 3.0 1.52 1.62 6.17 2.0 2.0 2.0 1.82 1.84 1.09 2.5 2.54 1.6 2.44 2.54 3.94 3.0 3.06 2.0 2.79 2.69 3.72 3.5 3.48 0.6 2.98 2.94 1.36 4.0 4.02 0.5 3.70 3.56 3.93 4.5 4.53 0.7 3.80 3.76 1.06 5.0 5.04 0.8 3.73 3.81 2.10 7.02 6.92 1.45 7.73 7.78 0.64 8.3 8.23 0.85 Trung 1.82 2.64 bình Như vậy, cảm biến lực cho kết đo tương đối xác ta so sánh với kết đo từ lực kế lò xo cảm biến Vernier Sự sai lệch kết đo giảm dần ta đo giá trị lớn, nguyên nhân mạch xử tín hiệu cảm biến lực sử dụng chuyển đổi ADC 10 bit để chuyển đổi tín hiệu điện áp thành tín hiệu số với 210 = 1024 giá trị phân giải Trong thí nghiệm Vernier sử dụng chuyển đổi ADC 12 bit 16 bit nên sai số dụng cụ nhỏ hơn.Vì thang đo nhỏ, thí nghiệm Vernier xác 4.1.2.5 Thí nghiệm – Kiểm chứng va chạm đàn hồi Footer Page 64 of 161 55 Header Page 65 of 161 Bố trí thí nghiệm hình 4.13 Cảm biến đặt xe Dùng tay cung cấp cho xe vận tốc để chuyển động đến va chạm vào điểm cuối ray (1) Sau va chạm, nhờ vào lò xo (2) gắn phía trước mà xe bị đổi chiều chuyển động chuyển động thẳng phía sau Ta khảo sát vận tốc xe trước va chạm sau va chạm Hình 13 Bố trí thí nghiệm va chạm đàn hồi Hình 14 Đồ thị vận tốc – thời gian (v – t) va chạm đàn hồi Trên đồ thị v – t, trước va chạm (từ 0.8 s đến 1.5 s) xe chuyển động thẳng với vận tốc 0.8 m/s Sau va chạm (từ 1.6 đến 2.8 s) vận tốc âm chứng tỏ xe đổi chiều có giá trị không đổi gần 0.7 m/s Độ lớn vận tốc xe sau va chạm không đổi chứng Footer Page 65 of 161 Header Page 66 of 161 56 tỏ sau va chạm xe chuyển động thẳng đều, nhiên nhỏ vận tốc lúc đầu Nguyên nhân va chạm chưa hoàn toàn đàn hồi lực ma sát xe ray làm mát lượng sau va chạm 4.2 BÀN LUẬN KẾT QUẢ CÁC Ý TƯỞNG KHAI THÁC BỘ THÍ NGHIỆM TRONG DẠY HỌC VẬT Từ thí nghiệm 1-2-3, ta thấy cảm biến cho kết tốt việc đo gia tốc chuyển động đối tượng cần khảo sát với sai số nhỏ 5%, đồng thời việc thu thập xử số liệu nhanh chóng, đơn giản so với phương pháp dùng cần rung điện dùng cổng quang đồng hồ số Tuy nhiên, cảm biến lực có sai số tương đối lớn, điều xuất phát từ việc thiết kế mạch xử tín hiệu chưa tốt Ngoài sử dụng để khảo sát định luật Newton, cảm biến sử dụng khảo sát dạng chuyển động học như: chuyển động thẳng đều, chuyển động thẳng biến đổi đều, chuyển động tròn Ta bố trí thí nghiệm đo gia tốc hướng tâm cách đặt cảm biến lên đĩa tròn nằm ngang xoay quanh trục với vận tốc góc chỉnh Xét hệ quy chiếu gắn với đất, đĩa xoay coi cảm biến chuyển động tròn Tiến hành thay đổi tốc độ quay đĩa đo giá trị gia tốc hướng tâm tương ứng, từ ta khảo sát mối quan hệ a ht -ω Footer Page 66 of 161 Header Page 67 of 161 57 KẾT LUẬN Bộ cảm biến chế tạo đạt số thông số sau: − Kích thức nhỏ gọn cm x 11.5 cm x cm, khối lượng 230 g (tính pin 9V) − Đo gia tốc khoảng từ -30 m/s2 đến 30 m/s2 với sai số ±0.06 m/s2 − Cảm biến lực đo theo chiều nén kéo: F keo < 43 N, F nen < N Sai số 0.05 N − Tốc độ lấy mẫu tối đa 50 mẫu/giây − Khoảng cách tối đa mà máy tính nhận liệu từ cảm biến: 10 m môi trường có vật cản, 20 m môi trường không vật cản − Thời lượng pin: đến sử dụng liên tục Bộ cảm biến cho kết đo gia tốc xác với sai số nhỏ, rút ngắn thời gian đo đạc thu nhận số liệu Với giao diện đơn giản, dễ sử dụng, người dùng dễ dàng thao tác với chương trình việc đo đạc xử kết thí nghiệm Ngoài chương trình cung cấp chức toán học giúp tiết kiệm thời gian cho việc xử số liệu vẽ đồ thị nhanh hơn, tăng tính chủ động tích cực giáo viên học sinh dạy thực hành thí nghiệm vật Bộ thí nghiệm dùng để dạy thí nghiệm phần động học, động lực học, định luật bảo toàn, dao động chương trình vật phổ thông Với ưu điểm nối bậc truyền nhận liệu không dây (khoảng cách xa có mà máy tính nhận liệu từ cảm biến 10 m môi trường có vật cản), giúp cho việc bố trí tiến hành thí nghiệm đơn giản hiệu Tuy nhiên cảm biến lực có độ nhạy chưa cao dẫn đến kết đo có sai số lớn, nên cần phải thiết kế chỉnh sửa lại mạch xử tín hiệu từ cảm biến lực Footer Page 67 of 161 Header Page 68 of 161 58 Nếu khắc phục nhược điểm tồn cải tiến, nâng cấp chương trình giao tiếp, thí nghiệm triển khai, ứng dụng trường trung học phổ thông khoa Vật Lý, trường Đại học phạm thành phố Hồ Chí Minh nói riêng trường Đại học toàn quốc nói chung Footer Page 68 of 161 59 Header Page 69 of 161 DANH MỤC CÔNG TRÌNH CỦA TÁC GIẢ Ngô Minh Nhựt (2015), Xây dựng số thí nghiệm chương Động họcVật 10 với cảm biến siêu âm phần mềm Labview, Kỉ yếu Hội nghị sinh viên nghiên cứu khoa học năm học 2014 – 2015, Trường Đại Học Phạm TP Hồ Chí Minh, tr.163 – 172 Ngô Minh Nhựt, Mai Hoàng Phương (2015), Xây dựng số thí nghiệm chương Động họcVật 10 với cảm biến siêu âm phần mềm Labview, Tạp chí khoa học – Đại Học Phạm TP Hồ Chí Minh, Số 8(74), tr.60 – 69 Footer Page 69 of 161 60 Header Page 70 of 161 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Hoàng Văn Huệ, Phùng việt Hải, Nguyễn Thị Thanh Hương (2012), Nghiên cứu chế tạo cảm biến thí nghiệm ghép nối với máy vi tính dạy học vật trường phổ thông, Đề tài khoa học công nghệ cấp bộ, Trường Đại Học Tây Nguyên [2] Nguyễn Minh Trí (2014), Mạch Khuếch đại strain gauge dùng vi mạch chuyên dụng 1B31AN, Tạp chí khoa học – Trường Đại học Cần Thơ, tr 26 – 29 [3] Nguyễn Văn Tấn (2014), Thiết kế sử dụng số thí nghiệm chương “Động lực học chất điểm” – Vật 10 với cảm biến lực cảm biến siêu âm theo quan điểm dạy học giải vấn đề, Luận Văn Thạc Sĩ Giáo Dục – Trường Đại học Phạm TP Hồ Chí Minh, tr.20 – 23 [4] Nguyễn Bá Hải (2011), Lập trình LabView: Trình độ bản, Đại học Phạm Kỹ Thuật TP Hồ Chí Minh [5] Vũ Trung Kiên (2011), Nghiên cứu thiết kế chế tạo mô hình thiết bị xác định góc đặt góc bánh xe ô tô, Luận văn Thạc sĩ kỹ thuật, Đại Học Đà Nẵng Tiếng Anh [6] Jeffery Travis, Jim Kring (2006), Labview for everyone, Prentice Hall [7] National Intrusment - Malan Shiralker (2007), Labview Graphical Course (2007), Rice University Houston Texas [8] National Instrument (1998), Instrumentation amplifier with Precision Voltage Reference, Texas Tr.13 [9] AnalogDevices (2009), Small, Low Power, 3-Axis ± g Accelerometer, U.S.A, One Technology Way Footer Page 70 of 161 Header Page 71 of 161 61 [10] Atme Corporation (2015), Atme 8-Bit Microcontroller With 4/8/16/32Kbytes In-System program Flash Datasheet, USA, San Jose [11] Nordicn Semiconductor (2008), nRFL01+Singal Chip 2.4GHz Transciver Prelimiary Product Specification v1.0 [12] http://arduino.cc Footer Page 71 of 161 62 Header Page 72 of 161 PHỤ LỤC Chức chân vi điều khiển Atmega328P CHÂN CHỨC NĂNG TÊN PC6/RESET/PCINT14 PC6: Port C, Bit PD0/RXD/PCIN16 PD0: Port D, Bit RXD: USART Input Pin PD1/TXD/PCIN17 PD1: Port D, Bit TXD: USART Output Pin PD2/INTO/PCIN18 PD2: Port D, Bit INT0: External Interrupt Input PD3/INT1/OC2B/PCIN19 PD3: Port D, Bit INT1: External Interrupt Input PD4/T0/XCK/PCIN20 PD4: Port D, Bit XCK: USART External Clock Input/Output T0: Timer/Counter External Counter Input VCC Chân điện áp GND Chân tiếp đất PB6/XTAL1/PCINT6 PB6: Port B, bit XTAL1: Chip Clock Osillator pin1 10 PB7/XTAL2/PCINT7 PB6: Port B, bit XTAL1: Chip Clock Osillator pin1 11 PD5/T1 /PCIN21 PD5: Port D, Bit 12 PD6/AIN0/PCINT22 PD6: Port D, Bit AIN0: Analog Comparator Positive Input Footer Page 72 of 161 Header Page 73 of 161 13 PD7/AIN1/PCINT23 63 PD7: Port D, Bit AIN1: Analog Comparator Positive Input 14 PDO/PCINT0 PD0: Port D, Bit 15 PB1/PCINT1 PB1: Port B, Bit 16 PB2/PCINT2 PB2: Port B, Bit 17 PB3/MOSI/PCINT3 MOSI: SPI Bus Master Output/Slave Input PB3: Port B, Bit 18 PB4/MISO/PCINT4 MOSI: SPI Bus Master Input/Slave Output PB4: Port B, Bit 19 PB5/SCK/PCINT5 SCK: SPI Bus Master Clock Input PB5: Port B, Bit 20 AVCC 21 VREF Điện áp tham chiếu 22 GND Chân tiếp đất 23 PC0/ADC0/PCINT8 PC0; Port C, Bit ADC0: ADC Input Channel 24 PC1/ADC1/PCINT8 PC1; Port C, Bit ADC1: ADC Input Channel 25 PC2/ADC2/PCINT8 PC2; Port C, Bit ADC2: ADC Input Channel 26 PC3/ADC3/PCINT8 PC3; Port C, Bit ADC3: ADC Input Channel 27 PC4/ADC4/SDA/PCINT8 PC4; Port C, Bit ADC4: ADC Input Channel Footer Page 73 of 161 Header Page 74 of 161 64 SDA: Tow wire Serial Bus Data Input/Output Line 28 PC5/ADC5/SCL/PCINT8 PC5; Port C, Bit ADC5: ADC Input Channel SCL: Tow-wire Serial Bus Clock Line 2 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Chương trình nạp cho arduino uno //Code mạch thu sóng radio //Khai báo thư viện sử dụng chương trình************************ #include #include #include const uint64_t pipe = 0xE8E8F0F0E1LL; // Định nghĩa đường truyền liệu RF24 radio(9,10); // Tạo phát sóng Radio //Khai báo biến***************************************************** int cambien[4]; // Tạo mảng phần tử cho việc đọc liệu từ phát String gx, gy, gz, gt; String dulieu; //Khai báo biến chức lọc tín hiệu từ cảm biến.***************** #define filterSamples 13 int sensSmoothArray1 [filterSamples]; // array for holding raw sensor values for sensor1 int sensSmoothArray2 [filterSamples]; // array for holding raw sensor values for sensor2 int sensSmoothArray3 [filterSamples]; // array for holding raw sensor values for sensor3 int sensSmoothArray4 [filterSamples]; // array for holding raw sensor values for sensor4 int rawData1, smoothData1; // variables for sensor1 data int rawData2, smoothData2; // variables for sensor2 data int rawData3, smoothData3; // variables for sensor3 data int rawData4, smoothData4; // variables for sensor4 data //***************************************** void setup() { Serial.begin(9600); //Thiết lập tốc độ truyền liệu với máy tính radio.begin(); radio.setDataRate(RF24_2MBPS); // Thiết lập tốc độ truyền nhận liệu với mạch phát sóng 2MBPS radio.openReadingPipe(1,pipe); Footer Page 74 of 161 Header Page 75 of 161 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 65 radio.startListening(); } //*********************************************** void loop() { if ( radio.available() ) { // Đọc liệu nhận //digitalWrite(led) == HIGH; bool done = false; while (!done) { // Đọc liệu done = radio.read( cambien, sizeof(cambien) ); rawData1 = cambien[0]; rawData2 = cambien[1]; rawData3 = cambien[2]; rawData4 = cambien[3]; } } Else //Nếu không kết nối { rawData1 = 1024; rawData2 = 1024; rawData3 = 1024; rawData4 = 1024; } // xử nhiễu ************************************************************* smoothData1 = digitalSmooth(rawData1, sensSmoothArray1); smoothData2 = digitalSmooth(rawData2, sensSmoothArray2); smoothData3 = digitalSmooth(rawData3, sensSmoothArray3); smoothData4 = digitalSmooth(rawData4, sensSmoothArray4); // Xuất liệu qua máy tính************************************************ if ( smoothData1 < 1000) { gx = String(smoothData1) + " "; } else { gx = String(smoothData1); } if ( smoothData2 < 1000) { gy = String(smoothData2) + " "; } else { gy = String(smoothData2); } if ( smoothData3 < 1000) { gz = String(smoothData3) + " "; Footer Page 75 of 161 Header Page 76 of 161 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 66 } else { gz = String(smoothData3); } if ( smoothData4 < 1000) { gt = String(smoothData4) + " "; } else { gt = String(smoothData4); } dulieu = gx + gy + gz + gt; Serial.println(dulieu); } //*************************************************************** int digitalSmooth(int rawIn, int *sensSmoothArray){ // "int *sensSmoothArray" passes an array to the function - the asterisk indicates the array name is a pointer int j, k, temp, top, bottom; long total; static int i; // static int raw[filterSamples]; static int sorted[filterSamples]; boolean done; i = (i + 1) % filterSamples; // increment counter and roll over if necc - % (modulo operator) rolls over variable sensSmoothArray[i] = rawIn; // input new data into the oldest slot for (j=0; j sorted[j + 1]){ // numbers are out of order - swap temp = sorted[j + 1]; sorted [j+1] = sorted[j] ; sorted [j] = temp; done = 0; } } } // throw out top and bottom 15% of samples - limit to throw out at least one from top and bottom bottom = max(((filterSamples * 15) / 100), 1); top = min((((filterSamples * 85) / 100) + ), (filterSamples - 1)); // the + is to make up for asymmetry caused by integer rounding k = 0; total = 0; Footer Page 76 of 161 Header Page 77 of 161 67 115 for ( j = bottom; j< top; j++){ 116 total += sorted[j]; // total remaining indices 117 k++; 118 } 119 return total / k; // divide by number of samples 120 } 3 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Chương trình nạp vi điều khiển Atmega328P //Code nạp cho arduino //Khai báo thư viện sử dụng chương trình********************** #include #include #include //Khai báo biến****************************************************** int i; float trungbinh; const uint64_t pipe = 0xE8E8F0F0E1LL; // Định nghĩa đường truyền RF24 radio(9,10); // Tạo phát Radio int cambien[4]; // Khai báo mảng phần tử để đọc tín giá trị cảm biến // Khai báo cho biến xử nhiễu #define SensorPin1 #define SensorPin2 #define SensorPin3 #define SensorPin4 //**************************************************************** void setup() { Serial.begin(9600); analogReference(EXTERNAL); // Khai báo điện áp tham chiếu cho Bộ ADC vi điều khiển radio.begin(); radio.setDataRate(RF24_2MBPS); radio.openWritingPipe(pipe); } //*************************************************************** void loop() { float trungbinh; trungbinh = 0; cambien[0] = analogRead(SensorPin1); // Đọc tín hiệu truc X cảm biến ADXl335 cambien[1] = analogRead(SensorPin2); // Đọc tín hiệu truc y cảm biến ADXl335 cambien[2] = analogRead(SensorPin3); // Đọc tín hiệu truc z cảm biến ADXl335 for (i=0; i

Ngày đăng: 08/04/2017, 08:01

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

TÀI LIỆU LIÊN QUAN

w