(Tiểu luận) bài tập lớn môn đo lường và điều khiển bằng máy tính đề tài mạch đo gia tốc • tín hiệu gia tốc từ module cảm biến được đưa vào arduino

24 0 0
(Tiểu luận) bài tập lớn môn đo lường và điều khiển bằng máy tính đề tài mạch đo gia tốc • tín hiệu gia tốc từ module cảm biến được đưa vào arduino

Đ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

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ VIỄN THÔNG BÀI TẬP LỚN MƠN ĐO LƯỜNG VÀ ĐIỀU KHIỂN BẰNG MÁY TÍNH TÊN ĐỀ TÀI Mạch đo gia tốc • Tín hiệu gia tốc từ module cảm biến đưa vào arduino • Lập trình C# gia tốc đo hiển thị PC • Thiết lập mức cảnh báo gia tốc nguy hiểm PC GIÁO VIÊN: THS LÊ MẠNH THẮNG NHÓM 17 SINH VIÊN THỰC HIỆN: Nguyễn Sĩ Phi Long Trần Đức Lưu Võ Văn Minh 2051050140 2051050143 2051050145 h LỜI MỞ ĐẦU Ngày nay, cảm biến gia tốc loại cảm biến sử dụng rộng rãi nhiều thiết bị đại Do vậy, đề tài thực khảo sát liệu cảm biến gia tốc nhằm cung cấp nhìn khái quát cảm biến gia tốc, cung cấp thông tin hữu ích cho đề tài khác sử dụng loại khác loại cảm biến gia tốc, phát triển ứng dụng có liên quan (các ứng dụng điều khiển, định hướng không gian,…) Để thực đề tài, vi điều khiển MSP430 sử dụng để đọc liệu chuyển đến máy tính để vẽ đồ thị liệu phần mềm Dữ liệu thu thập cập nhật liên tục với độ xác cao, đáp ứng yêu cầu cảu ứng dụng đòi hỏi độ nhạy cao nhiều lĩnh vực khoa học không gian, y sinh, công nghiệp ô tô,… Gia tốc đại lượng vật lí quan trọng dùng để mơ tả chuyển động Ngày nay, với phát triển vượt bậc khoa học – công nghệ, việc đo đạc gia tốc trở nên dễ dàng xác nhờ loại cảm biến gia tốc Cảm biến gia tốc ứng dụng rộng rãi nhiều thiết bị thiết bị y tế đại, phận định hướng điều khiển vận tốc ô tô, phận định vị tên lửa, tàu không gian, thiết bị đo độ rung, độ chấn động, Do đó, đề tài nghiên cứu nhằm cung cấp thông tin cảm biến gia tốc, tạo sở cho nghiên cứu khác Đề tài chọn cảm biến gia tốc MCP6050 h PHẦN I NGHIÊN CỨU LÝ THUYẾT CHUNG VỀ CẢM BIẾN Khái niệm cảm biến Cảm biến thiết bị dùng để cảm nhận thay đổi trạng thái vật lý hay hóa học mơi trường cần khảo sát, thay đổi biến thành tín hiệu để thu thập thơng tin trạng thái hay q trình Thơng tin tín hiệu thu thập xử lý để rút tham số định tính định lượng môi trường, phục vụ nhu cầu nghiên cứu khoa học kỹ thuật hay dân sinh gọi ngắn gọn đo đạc, phục vụ truyền xử lý thơng tin, hay điều khiển q trình khác Cảm biến đặt vỏ bảo vệ, tạo thành đầu thu đầu dị, có kèm mạch điện hỗ trợ… Cấu tạo cảm biến :Hiện thị trường có hàng trăm ngàn cảm biến phục vụ mục đích khác Nhưng có mẫu số chung làm từ sensor phần tử điện thay đổi tính chất theo biến đổi mơi trường gọi đầu dị Cấu tạo gồm phần tử mạch điện tạo thành hệ thống hồn chỉnh Được đóng gói nhỏ gọn vỏ hộp Các tín hiệu phát quy chuẩn theo mức điện áp Và dịng điện thơng dụng phù hợp với điều khiển  Các đặc trưng  Độ nhạy: Gia số nhỏ phát  Dải biến đổi: Khoảng giá trị biến đổi sử dụng h  Độ trễ: Độ đáp ứng với thay đổi trình  Độ tin cậy: Khả làm việc ổn định, uy tín, chịu biến động lớn mơi trường : nước dầu, ăn mịn  Mức tuyến tính: Khoảng giá trị biến đổi có hệ số biến đổi cố định  Ảnh hưởng ngược: Khả gây thay đổi môi trường  Mức nhiễu ồn: Tiếng ồn riêng ảnh hưởng tác nhân khác lên kết  Sai số xác định: Phụ thuộc độ nhạy mức nhiễu  Độ trôi: Sự thay đổi tham số theo thời gian phục vụ thời gian tồn (date)  Điều kiện môi trường: Dải nhiệt độ, độ ẩm, áp suất,… làm việc 1.1 Thiết bị cảm biến Thiết bị cảm biến loại thiết bị giúp chuyển đổi tín hiệu từ nguồn lượng sang miền điện Một ví dụ cảm biến Điện trở phụ thuộc vào ánh sáng (LDR) Trong LDR, điện trở thay đổi tùy theo cường độ ánh sáng Khi cường độ ánh sáng nhiều điện trở nhỏ cường độ ánh sáng nhỏ điện trở caoCác thiết bị cảm biến sử dụng thiết bị gia dụng, công nghiệp lĩnh vực khác Thiết kế thiết bị cảm biến phụ thuộc mục đích sử dụng chúng giúp việc điều khiển hệ thống hay thiết bị dễ dàng tiện lợi 1.2 Phân loại cảm biến h Trên thực tế có vơ vàn loại cảm biến khác chia cảm biến thành hai nhóm chính:  Cảm biến vật lí: kể đến vài ví dụ dễ hình dung sóng điện từ, ánh sáng, hồng ngoại, tia X, hạt xạ, nhiệt độ, áp suất, âm thanh, từ trường, gia tốc,…  Cảm biến hóa học: thường thấy độ ẩm, độ PH, ion, khói, … Ngồi ta phân loại theo ngun lí hoạt động, kể đến loại cảm biến bật như:  Cảm biến điện trở: hoạt động dựa theo di chuyển chạy góc quay biến trở, thay đổi điện trở co giãn vật dẫn  Cảm biến cảm ứng: cảm biến biến áp vi phân, cảm biến cảm ứng điện từ, cảm biến dịng xốy, cảm biến cảm ứng điện động, cảm biến điện dung, …  Cảm biến điện trường: cảm biến từ giảo, cảm biến áp điện, …  Và số cảm biến bật khác như: cảm biến quang, cảm biến huỳnh quang nhấp nháy, cảm biến điện hóa đầu dị ion độ pH, cảm biến nhiệt độ, … 1.3 Phân loại theo dạng kích thích : 1.4 Phân loại theo tính cảm biến h 1.5 Phân loại theo phạm vi sử dụng: Cơng nghiệp, Nghiên cứu khoa học, Mơi trường, khí tượng, Thông tin, viễn thông, Nông nghiệp, dân dụng, giao thông, vũ trụ, qn 1.6 Phân tích theo thơng số mơ hình mạch thay  Cảm biến tích cực có đầu nguồn áp nguồn dịng  Cảm biến thụ động đặc trưng thơng số R, L, C, M tuyến tính phi tuyến  Một số ứng dụng phổ biến số loại cảm biến :  Cảm biến hồng ngoại việc chống trộm  Cảm biến hồng ngoại đo nhiệt độ  Việc bật tắt đèn trở nên đơn giản  Cảm biến hồng sản xuất  Sử dụng quân sự, quốc phòng  Đo nhiệt độ nước  Giám sát nhiệt độ lị  Kiểm sốt nhiệt độ lị sấy, lị đốt h Giới thiệu cảm biến gia tốc Để khảo sát trạng thái chuyển động vật, cần biết thông số động học: vị trí, vận tốc, gia tốc Các thơng số biến đổi qua lại cho phép tốn đạo hàm tích phân Tuy nhiên thực tế, người ta thường sử dụng rộng rãi phép toán tích phân đem lại kết tốt có nhiễu tát dần Chính vậy, người ta thường xác định gia tốc để khảo sát chuyển động vật Để máy hiểu thơng số gia tốc sử dụng tốn Tự động hóa ta cần cảm biến gia tốc h 2.1 Gia tốc kế (Accelerometer) Hãy nhìn vào khoang chứa hình trụ có chứa bóng gắn lị xo Đây mơ hình cảm biến gia tốc Khoang chứa hình trụ gắn liền vào vật thể mà bạn cần đo gia tốc, cịn bóng vật di chuyển chiều bên khoang chứa Khi bạn di chuyển khoang chứa, bóng di chuyển bên khoang chứa, khiến lò xo co dãn Dựa vào độ co dãn lị xo, bạn đoán biết lực gia tốc chuyển động Nếu sử dụng cảm biến gia tốc đơn giản phía đặt chiều X, Y, Z, bạn dễ dàng đo chuyển động vật thể không gian h 2.2 Con quay hồi chuyển (Gyroscope) Con quay hồi chuyển thiết bị dùng để đo trì định hướng Khi đĩa xoay với vận tốc cao, chuyển hướng theo moment ngoại lực giảm thiểu giúp gyroscope trì độ nghiêng Hiện tượng ứng dụng để giám sát độ nghiêng Gia tốc kế đo gia tốc tuyến tính thiết bị, quay hồi chuyển có nhận biết hướng thiết bị, hệ thống dễ dàng ghi nhận chuyển động theo phương thẳng đứng Cảm biến hoạt động dựa hiệu ứng Coriolis 2.3 Ứng dụng Cảm biến gia tốc có khả ứng dụng to lớn thực tế: a) Kỹ thuật: Cảm biến gia tốc đo gia tốc phương tiện, đo dao động ô tô, máy móc, nhà cửa, hệ thống tự động hóa lắp đặt an tồn Nó dùng để đo hoạt động địa chất, đo độ dốc, vị trí tốc độ động học với ảnh hưởng không ảnh hưởng trọng lực Một ứng dụng quan trọng cảm biến gia tốc đo gia tốc trọng trường b) Sinh học: Cảm biến gia tốc sử dụng nhiều công nghệ sinh học Dữ liệu với tần số cao cảm biến gia tốc trục hay trục giúp nhà khoa học quan sát tốt hoạt động vật chúng tự nhiên Ngoài ra, liệu gia tốc cho phép nhà khoa học xác định tỉ lệ chuyển hóa lượng lồi động vật hoang dã h c) Cơng nghiệp: Cảm biến gia tốc sử dụng việc bảo quản máy móc để báo cáo dao động biến đổi trục quay, ổ bi, kịp thời, Được dùng nhiều thiết bị tua bản, máy bơm, quạt, lăn, máy nén, thiết bị không phát lỗi kịp thời dẫn đến sửa chữa tốn Dữ liệu dao động máy móc giúp người sử dụng theo dõi phát lỗi trước thiết bị quay bị hỏng d) Giám sát xây dựng kết cấu: Cảm biến gia tốc sử dụng để đo chuyển động dao động cấu trúc chịu ảnh hưởng hệ thống chuyển động Các hệ thống chuyển động bắt nguồn từ vô số nguồn khác như: - Hoạt động người: lại, chạy, nhảy, khiêu vũ - Cơng việc xây dựng: đóng cọc, phá dỡ, khoan, đào - Các máy làm việc: bên tòa nhà hay khu vực lân cận - Vận chuyển hàng hóa nặng cầu - Va chạm xe cộ - Áp suất khơng khí Việc theo dõi cấu trúc phản hồi với tác động bên quan trọng để đánh giá độ an tồn tính bền cấu trúc e) Định vị: Cảm biến gia tốc kết hợp với số thiết bị khác vài thuật toán sử dụng la bàn để xác định vị trí, hướng vận tốc vật mà không cần thông số bên ngồi g) Giao thơng: Cảm biến gia tốc sử dụng để phát điểm cao chuyển động loại tên lửa Một ứng dụng thông dụng cảm biến gia tốc hệ thống túi khí an tồn xe đại Các cảm biến gia tốc xác định thay đổi đột ngột gia tốc phương tiện để xác định có va chạm xảy mức độ nghiêm trọng va chạm PHẦN II XÂY DỰNG MƠ HÌNH VẬT LÝ ỨNG DỤNG CẢM BIẾN MPU6050 h 2.1 Sơ đồ khối tổng quát Để thực khảo sát liệu cảm biến gia tốc MPU6050, đề tài dùng khối chức sau: Hình Sơ đồ khối tông quát - Khối cảm biến gia tốc: Sử dụng cảm biến gia tốc MPU6050 để thu thập liệu gia tốc sau gửi liệu đến vi điều khiển - Khối vi điều khiển: Sử dụng vi điều khiển Arduino UNO R3 để giao tiếp với máy tính cảm biến - Khối máy tính: Sử dụng máy tính phần mềm Visual Studio 2.1.1 Cảm biến MPU6050 + Giới thiệu MPU-6050 cảm biến hãng InvenSense MPU-6050 giải pháp cảm biến chuyển động giới có tới (mở rộng tới 9) trục cảm biến bao gồm 3- axis gyroscope, 3-axis accelerometer Digital Motion Processor (DMP) tích hợp chip có kích thước nhỏ (4x4x0.9mm) Với bus cảm biến I2C dành riêng, trực tiếp chấp nhận đầu vào từ la bàn bên trục để cung cấp kết MotionFusion TM trục hoàn chỉnh MPU-6050 có ba chuyển đổi ADC (analog-to-digital) 16-bit để số hóa đầu quay hồi chuyển ba ADC 16-bit để số hóa đầu gia tốc kế Để theo dõi xác chuyển động nhanh chuyển động chậm, phận có thang đo quy lập trình cho người sử dụng với phạm vi ± 250, ± 500, ± 1000, ± 2000 ° /giây (dps) máy gia tốc kế lập trình dải ± 2g, ± 4g, + 8g, + 16g + Sơ đồ nguyên lý h 2.1.2 Arduino UNO R3 Nhắc tới dịng mạch Arduino dùng để lập trình, mà người ta thường nói tới dịng Arduino UNO Hiện dòng mạch phát triển tới hệ thứ (R3) Bạn bắt đầu đến với Arduino qua thứ Bạn dùng Arduino Nano khuyên bạn nên dùng Hình Arduino UNO R3 + Một vài thơng số Arduino UNO R3 h Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ cấp qua cổng USB) Tần số hoạt động 16 MHz Dòng tiêu thụ khoảng 30mA Đ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 (độ phân giải 10bit) Dòng tối đa chân I/O 30 mA Dòng tối đa (5V) 500 mA Dòng tối đa (3.3V) 50 mA Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bootloader SRAM KB (ATmega328) EEPROM KB (ATmega328) h + Vi điều khiển Arduino UNO sử dụng vi điều khiển họ 8bit AVR ATmega8, ATmega168, ATmega328 Bộ não xử lí tác vụ đơn giản đ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 trạm đo nhiệt độ - độ ẩm hiển thị lên hình LCD,… Thiết kế tiêu chuẩn Arduino UNO sử dụng vi điều khiển ATmega328 với giá khoảng 90.000đ Tuy nhiên yêu cầu phần cứng bạn không cao túi tiền khơng cho phép, bạn sử dụng loại vi điều khiển khác có chức tương đương rẻ ATmega8 (bộ nhớ flash 8KB) với giá khoảng 45.000đ ATmega168 (bộ nhớ flash 16KB) với giá khoảng 65.000đ Ngoài việc dùng cho board Arduino UNO, bạn sử dụng IC điều khiển cho mạch tự chế Vì ? Vì bạn cần board Arduino UNO để lập trình cho vi điều khiển Trên thực tế, bạn khơng cần phải dụng Arduino UNO sản phẩm mình, thay vào mạch tự chế để giảm chi phí hình đây: Chế tạo thủ cơng Sử dụng mạch in h Arduino UNO cấp nguồn 5V thông qua cổng USB cấp nguồn với điện áp khuyên dùng 7-12V DC giới hạn 6-20V Thường cấp nguồn pin vng 9V hợp lí bạn khơng có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt ngưỡng giới hạn trên, bạn làm hỏng Arduino UNO + Các chân lượng  GND (Ground): cực âm nguồn điện cấp cho Arduino UNO Khi bạn dùng thiết bị sử dụng nguồn điện riêng biệt chân phải nối với  5V: cấp điện áp 5V đầu Dòng tối đa cho phép chân 500mA  3.3V: cấp điện áp 3.3V đầu Dòng tối đa cho phép chân 50mA  Vin (Voltage Input): để cấp nguồn cho Arduino UNO, bạn nối cực dương nguồn với chân cực âm nguồn với chân GND  IOREF: điện áp hoạt động vi điều khiển Arduino UNO đo chân Và dĩ nhiên ln 5V Mặc dù bạn không lấy nguồn 5V từ chân để sử dụng chức khơng phải cấp nguồn  RESET: việc nhấn nút Reset board để reset vi điều khiển tương đương với việc chân RESET nối với GND qua điện trở 10KΩ + Lưu ý:  Arduino UNO khơng có bảo vệ cắm ngược nguồn vào Do bạn phải cẩn thận, kiểm tra cực âm – dương nguồn trước cấp cho Arduino UNO Việc làm chập mạch nguồn vào Arduino UNO biến thành miếng nhựa chặn giấy khuyên bạn nên dùng nguồn từ cổng USB  Các chân 3.3V 5V Arduino chân dùng để cấp nguồn cho thiết bị khác, chân cấp nguồn vào h Việc cấp nguồn sai vị trí làm hỏng board Điều không nhà sản xuất khuyến khích  Cấp nguồn ngồi khơng qua cổng USB cho Arduino UNO với điện áp 6V làm hỏng board  Cấp điện áp 13V vào chân RESET board làm hỏng vi điều khiển ATmega328  Cường độ dòng điện vào/ra tất chân Digital Analog Arduino UNO vượt 200mA làm hỏng vi điều khiển  Cấp điệp áp 5.5V vào chân Digital Analog Arduino UNO làm hỏng vi điều khiển  Cường độ dòng điện qua chân Digital Analog Arduino UNO vượt 40mA làm hỏng vi điều khiển Do khơng dùng để truyền nhận liệu, bạn phải mắc điện trở hạn dịng Khi nói bạn “có thể làm hỏng”, điều có nghĩa chưa hỏng thông số kĩ thuật linh kiện điện tử ln có tương đối định Do tn thủ theo thơng số kĩ thuật nhà sản xuất bạn không muốn phải mua board Arduino UNO thứ 2.Khi nói bạn “có thể làm hỏng”, điều có nghĩa chưa hỏng thông số kĩ thuật linh kiện điện tử ln có tương đối định Do tuân thủ theo thông số kĩ thuật nhà sản xuất bạn không muốn phải mua board Arduino UNO thứ + Bộ nhớ  Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:  32KB nhớ Flash: đoạn lệnh bạn lập trình lưu trữ nhớ Flash vi điều khiển Thường có khoảng vài KB số dùng cho bootloader đừng lo, bạn cần 20KB nhớ đâu  2KB cho SRAM (Static Random Access Memory): giá trị biến bạn khai báo lập trình lưu Bạn khai báo nhiều biến cần nhiều nhớ RAM Tuy vậy, thực h nhớ RAM lại trở thành thứ mà bạn phải bận tâm Khi điện, liệu SRAM bị  2KBchoEEPROM (Electrically Eraseble Programmable Read Only Memory):đây giống ổ cứng mini – nơi bạn đọc ghi liệu vào mà khơng phải lo bị cúp điện giống liệu SRAM  Các cổng vào/ra Arduino UNO có 14 chân digital dùng để đọc xuất tín hiệu Chúng có mức điện áp 0V 5V với dòng vào/ra tối đa chân 40mA Ở chân có điện trở pull-up từ cài đặt vi điều khiển ATmega328 (mặc định điện trở khơng kết nối)  Một số chân digital có chức đặc biệt sau:  chân Serial: (RX) (TX): dùng để gửi (transmit – TX) nhận (receive – RX) liệu TTL Serial Arduino Uno giao tiếp với thiết bị khác thông qua chân Kết nối bluetooth thường thấy nói nơm na kết nối Serial không dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng chân không cần thiết h  Chân PWM (~): 3, 5, 6, 9, 10, 11: cho phép bạn xuất xung PWM với độ phân giải 8bit (giá trị từ → 8-1 tương ứng với 0V → 5V) hàm analogWrite() Nói cách đơn giản, bạn điều chỉnh điện áp chân từ mức 0V đến 5V thay cố định mức 0V 5V chân khác  Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngồi chức thơng thường, chân dùng để truyền phát liệu giao thức SPI với thiết bị khác  LED 13: Arduino UNO có đèn led màu cam (kí hiệu chữ L) Khi bấm nút Reset, bạn thấy đèn nhấp nháy để báo hiệu Nó nối với chân số 13 Khi chân người dùng sử dụng, LED sáng Arduino UNO có chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp khoảng 0V → 5V Với chân AREF board, bạn để đưa vào điện áp tham chiếu sử dụng chân analog Tức bạn cấp điện áp 2.5V vào chân bạn dùng chân analog để đo điện áp khoảng từ 0V → 2.5V với độ phân giải 10bit Đặc biệt, Arduino UNO có chân A4 (SDA) A5 (SCL) hỗ trợ giao tiếp I2C/TWI với thiết bị khác 2.2 Ghép nối phần cứng h 2.2.1 Mơ hình thực tế h 2.3 Thiết kế phần mềm h h h CODE ARDUINO #include #include #include MPU6050 mpu6050(Wire); float accX, accY, accZ; void setup() { Serial.begin(9600); Wire.begin(); 10.mpu6050.begin(); 11.mpu6050.calcGyroOffsets(true); 12.} 13.void loop() 14.{ h 15.mpu6050.update(); 16.unsigned long currentMillis = millis(); // Lấy thời gian 17.static unsigned long previousMillis = currentMillis; // Khởi tạo giá trị lần 18.// Kiểm tra xem đủ giây chưa 19.if (currentMillis - previousMillis >= 1000) { 20.// Cập nhật giá trị cho previousMillis 21.previousMillis = currentMillis; 22.// Thực xuất liệu 23.accX = mpu6050.getAccX(); // lấy giá trị trục X lưu vào biến accX 24.accY = mpu6050.getAccY(); // 25.accZ = mpu6050.getAccZ(); // 26.Serial.print("accX : "); 27.Serial.print(mpu6050.getAccX()); 28.Serial.print(" , "); 29.Serial.print("accY : "); 30.Serial.print(mpu6050.getAccY()); 31.Serial.print(" , "); 32.Serial.print("accZ : "); 33.Serial.println(mpu6050.getAccZ()); 34.} 35.} h

Ngày đăng: 10/05/2023, 15:22

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan