Đồ án Khảo sát cảm biến gia tốc

Ngày nay, cảm biến gia tốc là một trong những loại cảm biến được sử dụng rộng rãi trong nhiều thiết bị hiện đại. Do vậy, đề tài thực hiện khảo sát dữ liệu của cảm biến gia tốc nhằm cung cấp cái nhìn khái quát về cảm biến gia tốc, cũng như cung cấp các thông tin hữu ích cho các đề tài khác sử dụng cùng loại hoặc khác loại cảm biến gia tốc, hoặc phát triển các ứng dụng có liên quan (các ứng dụng điều khiển, định hướng trong không gian, ). Để thực hiện đề tài, vi điều khiển MSP430 được sử dụng để đọc dữ liệu rồi truyền đến máy tính để có thể vẽ đồ thị dữ liệu bằng phần mềm Matlab. Dữ liệu thu thập được cập nhật liên tục với độ chính xác khá cao, đáp ứng được yêu cầu của các ứng dụng đòi hỏi độ nhạy cao trong nhiều lĩnh vực như khoa học không gian, y sinh, công nghiệp ô tô, điện tử dân dụng,

pdf11 trang | Chia sẻ: superlens | Lượt xem: 2429 | Lượt tải: 4download
Bạn đang xem nội dung tài liệu Đồ án Khảo sát cảm biến gia tốc, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ĐỒ ÁN KỸ THUẬT ĐIỆN TỬ KHẢO SÁT CẢM BIẾN GIA TỐC Sinh viên thực hiện Cán bộ hướng dẫn Trần Thanh Sang 1101041 TS. Trần Thanh Hùng Cần Thơ, tháng 11 năm 2013 TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ Đồ án kỹ thuật điện tử Trường Đại học Cần Thơ 1 KHẢO SÁT CẢM BIẾN GIA TỐC Trần Thanh Sang1, Trần Thanh Hùng2 ABSTRACT Nowadays, the acceleration sensor is one of many sensors that are popular in many modern devices. Therefore, this project is researched to survey the data of acceleration sensor in order to provide an overview about this sensor, they are useful for other projects which use the same or different type of acceleration sensor, or the development of related applications (such as control applications, orientation in space,). In this project, the MSP430 microcontroller is used to read out data of acceleration sensor and transmit them to a computer for plotting a graph by Matlab software. The collected data are updated continuously with a high accuracy to meet the requirement of applications, which need high sensitivity, in many areas such as space science, biomedical, automotive industry, electronics civil,... Keyword: accleleration sensor, I2C interface, UART, MSP430G2452, Matlab GUI, Title: Survey of Acceleration sensor TÓM TẮT Ngày nay, cảm biến gia tốc là một trong những loại cảm biến được sử dụng rộng rãi trong nhiều thiết bị hiện đại. Do vậy, đề tài thực hiện khảo sát dữ liệu của cảm biến gia tốc nhằm cung cấp cái nhìn khái quát về cảm biến gia tốc, cũng như cung cấp các thông tin hữu ích cho các đề tài khác sử dụng cùng loại hoặc khác loại cảm biến gia tốc, hoặc phát triển các ứng dụng có liên quan (các ứng dụng điều khiển, định hướng trong không gian,). Để thực hiện đề tài, vi điều khiển MSP430 được sử dụng để đọc dữ liệu rồi truyền đến máy tính để có thể vẽ đồ thị dữ liệu bằng phần mềm Matlab. Dữ liệu thu thập được cập nhật liên tục với độ chính xác khá cao, đáp ứng được yêu cầu của các ứng dụng đòi hỏi độ nhạy cao trong nhiều lĩnh vực như khoa học không gian, y sinh, công nghiệp ô tô, điện tử dân dụng, Từ khóa: cảm biến gia tốc, giao tiếp I2C, UART, MSP430G2452, Matlab GUI, 1 GIỚI THIỆU Gia tốc là một đại lượng vật lí quan trọng dùng để mô tả chuyển động. Ngày nay, với sự phát triển vượt bậc của khoa học – công nghệ, việc đo đạc gia tốc trở nên dễ dàng và chính xác hơn nhờ các loại cảm biến gia tốc. Cảm biến gia tốc được ứng dụng rộng rãi trong nhiều thiết bị như các thiết bị y tế hiện đại, bộ phận định hướng và điều khiển vận tốc trong ô tô, bộ phận định vị trên tên lửa, tàu không gian, các thiết bị đo độ rung, độ chấn động,Do đó, đề tài được nghiên cứu nhằm cung cấp những thông tin cơ bản nhất về cảm biến gia tốc, tạo cơ sở cho những nghiên cứu khác. Đề tài chọn cảm biến gia tốc BMA150 của hãng Bosch Sensortec để khảo sát. Nguồn tài liệu tham khảo để thực hiện đề tài bao gồm datasheet của cảm biến gia tốc BMA150 và các thông tin sưu tầm được trên Internet. 1 Sinh viên lớp Kỹ thuật máy tính K36, Mã số SV: 1101041, Số ĐT: 01678767576, email: sang101041@student.ctu.edu.vn 2 Bộ môn Tự động hóa, Khoa Công Nghệ, ĐH Cần Thơ Đồ án kỹ thuật điện tử Trường Đại học Cần Thơ 2 Kết quả mong muốn khi thực hiện đề tài là khảo sát được dữ liệu của cảm biến bằng cách vẽ được đồ thị dữ liệu một cách trực tiếp trên máy tính. 2 PHƯƠNG PHÁP THỰC HIỆN 2.1 Sơ đồ khối tổng quát Để thực hiện khảo sát dữ liệu của cảm biến gia tốc BMA150, đề tài đã sử dụng các khối chức năng sau: Hình 1: Sơ đồ khối tổng quát phần cứng của đề tài ‒ Khối cảm biến gia tốc: Sử dụng cảm biến gia tốc BMA150 để thu thập dữ liệu gia tốc sau đó gửi dữ liệu này đến vi điều khiển. ‒ Khối vi điều khiển: Sử dụng vi điều khiển MSP430G2452 để giao tiếp với cảm biến và máy tính. ‒ Khối máy tính: Sử dụng UART của máy tính cá nhân và phần mềm Matlab để vẽ đồ thị dữ liệu. 2.1.1 Giới thiệu về cảm biến gia tốc BMA150 [1]  BMA150 là cảm biến gia tốc 3 trục có tầm đo thấp với ngõ ra số, được chế tạo theo công nghệ MEMS (Micro Eletro Mechanical Systems), do hãng Bosch Sensortec sản xuất.  BMA150 được chế tạo theo kiểu tụ, cho phép đo gia tốc 3 trục trực giao X, Y, Z, hoặc ứng dụng để đo độ nghiêng, hoặc đo các chuyển động hoặc các rung động. Trên cảm biến còn được tích hợp sẵn một cảm biến nhiệt độ.  Nguyên tắc hoạt động: Để đo được giá trị gia tốc, bên trong cảm biến tích hợp 3 cảm biến con bao gồm cảm biến X (đo trục X), cảm biến Y (đo trục Y) và cảm biến Z (đo trục Z) hoạt động theo nguyên tắc thay đổi điện dung. Cấu tạo của mỗi cảm biến con là một hệ khối lượng – lò xo như Hình 2(a), trong đó khối m gắn với bản tụ nằm giữa hệ 2 tụ điện mắc nối tiếp có khoảng cách giữa hai bản tụ có thể thay đổi được, như Hình 2(b). (a) (b) Hình 2: Hệ khối lượng – lò xo để đo gia tốc (a) và mô hình hai tụ mắc nối tiếp (b) CẢM BIẾN GIA TỐC MÁY TÍNH VI ĐIỀU KHIỂN Đồ án kỹ thuật điện tử Trường Đại học Cần Thơ 3 Dưới tác động của lực bên ngoài làm điện dung của hai tụ điện này thay đổi (∆C = CA – CB), có thể tính được độ dịch chuyển của bản tụ trung gian dựa vào công thức (với x nhỏ): Trong đó: x là độ dịch chuyển, x0 là khoảng cách giữa 2 bản tụ, C là điện dung của tụ. Tính được độ dịch chuyển x, ta có thể suy ra gia tốc qua công thức: Trong đó: a là gia tốc, k là hệ số tỉ lệ, m là khối lượng cảm biến. Do đó, chỉ cần đo sự biến thiên điện dung của tụ là có thể tính được gia tốc. Cảm biến X, Y, Z có ngõ ra là giá trị điện dung của tụ bên trong. Giá trị này được đưa vào một mạch chuyên biệt (ASIC) để xử lí. Quá trình này đi qua nhiều mạch như mạch dồn kênh, bộ lọctrước khi được đưa vào bộ biến đổi ADC 10 bit để đưa vào mạch logic điều khiển và phục vụ ngắt, cuối cùng là mạch phục vụ các chuẩn giao tiếp I2C và SPI (xem Hình 3). Đơn vị của gia tốc ở ngõ ra được ước lượng theo gia tốc trọng trường g (1g ≈ 9.81m/s2).  Đặc điểm kĩ thuật của cảm biến gia tốc BMA150: ˗ Sử dụng nguồn thấp từ 1.62 – 3.6V, dòng điện khoảng 200μA. ˗ Dữ liệu gia tốc 3 trục X, Y, Z được là một số nhị phân 10 bit được biểu diễn dưới dạng số bù 2, bao gồm 3 thang đo là ±2g (độ nhạy 256 LSB/g), ±4g (độ nhạy 128 LSB/g) và ±8g (độ nhạy 64 LSB/g), với g là gia tốc trọng trường. Dữ liệu cập nhật liên tục với tần số 3KHz, độ phân giải là 4 mg (±2g), có thể chọn băng thông từ 25Hz đến 1500Hz. ˗ Tích hợp cảm biến nhiệt độ có với bộ biến đổi ADC 8 bit, đo nhiệt độ trong khoảng từ -30 oC đến 97.5 oC, có thể thay đổi thang đo theo yêu cầu sử dụng. ˗ Hỗ trợ các chuẩn giao tiếp bao gồm I2C, SPI với các phím ngắt có thể lập trình để thông báo dữ liệu mới đã được cập nhật. ˗ Hỗ trợ nhiều loại ngắt có thể được lập trình để đo sự chuyển động hoặc nâng cao tầm đo của cảm biến hoặc để thiết lập các chức năng nâng cao. ˗ Hỗ trợ 2 chế độ hoạt động là normal mode (chế độ bình thường) và sleep mode (chế độ ngủ) để tối ưu năng lượng tiêu thụ.  Sơ đồ các khối chức năng, sơ đồ chân và chức năng các chân của cảm biến BMA150 được hiển thị lần lượt trong Hình 3, Hình 4 và Bảng 1. Đồ án kỹ thuật điện tử Trường Đại học Cần Thơ 4 Hình 3: Sơ đồ các khối chức năng bên trong cảm biến gia tốc BMA150 Hình 4: Sơ đồ chân cảm biến gia tốc BMA150 Bảng 1: Chức năng các chân của BMA150 PIN Tên Chức năng 1 Chân dành riêng Không kết nối 2 VDD Nguồn cung cấp 3 GND Ground 4 INT Interrupt 5 CSB Chọn chip 6 SCK Ngõ vào xung clock (giao tiếp I2C, SPI) 7 SDO Ngõ ra dữ liệu nối tiếp 8 SDI Ngõ vào/ra dữ liêu nối tiếp 9 VDDIO Nguồn cung cấp cho giao tiếp số (I2C, SPI) 10,11,12 Chân dành riêng Không kết nối  BMA150 được thiết kế bao gồm 127 thanh ghi (có địa chỉ từ 00h-7Fh), được chia làm 7 loại: thanh ghi dữ liệu, thanh ghi trạng thái, thanh ghi điều khiển, thanh ghi cài đặt, thanh ghi kèm theo (tăng offset của thanh ghi dữ liệu), thanh ghi dành riêng và một số thanh ghi không sử dụng. Bảng 2 trình bày một số thanh ghi thông dụng sử dụng trong đề tài. Đồ án kỹ thuật điện tử Trường Đại học Cần Thơ 5 Bảng 2: Một số thanh ghi quan trọng của BMA150 Địa chỉ Loại thanh ghi Chức năng 02h Dữ liệu Byte thấp trục X, new_data_x 03h Dữ liệu Byte cao trục X 04h Dữ liệu Byte thấp trục Y, new_data_y 05h Dữ liệu Byte cao trục Y 06h Dữ liệu Byte thấp trục Z, new_data_z 07h Dữ liệu Byte cao trục Z 08h Dữ liệu Nhiệt độ 14h Điều khiển Thang đo, băng thông  Đề tài sử dụng cảm biến gia tốc BMA150 được tích hợp trên board Inertial One Sensors Xplained [2], vị trí của cảm biến và các chân phục vụ giao tiếp I2C được xác định như Hình 5. Board Inertial One Sensors Xplained được tích hợp 3 loại cảm biến 3 trục, bao gồm cảm biến gia tốc BMA150, cảm biến con quay hồi chuyển ITG3200 và cảm biến la bàn AK9875. Board hỗ trợ giao tiếp I2C giữa các cảm biến với vi điều khiển qua các chân SCL và SDA. Trong board Inertial One Sensors Xplained, địa chỉ để giao tiếp I2C (slave address) của BMA150 là 38h. Hình 5: BMA150 trên board Inertial One Sensors Xplained 2.1.2 Giới thiệu về vi điều khiển MSP430G2452[3] và kit Launchpad  Vi điều khiển MSP430G2452 thuộc họ vi điều khiển MSP430 do Texas Instrument (TI) sản xuất, có các đặc điểm chung của họ MSP430 như: thiết kế theo cấu trúc RISC 16-bit, là dòng vi điều khiển siêu tiết kiệm năng lượng, công suất tiêu thụ cực thấp, điện áp nguồn khoảng 1.8V – 3.6V và một số tính năng khác. Đề tài sử dụng module USI được hỗ trợ trong MSP430G2452 để giao tiếp I2C với cảm biến gia tốc BMA150.  Kit Launchpad (Hình 6) là một kit ứng dụng nhỏ do TI sản xuất, hỗ trợ nhiều loại MSP430 nạp chương trình và giao tiếp dữ liệu. Đề tài dùng kit Launchpad sử dụng vi điều khiển MSP430G2452 để tiến hành giao tiếp I2C với cảm biến, sau đó gửi dữ liệu nhận được lên máy tính bằng giao tiếp UART được giả lập (do MSP430G2452 không hỗ trợ UART). BMA150 SCL VCC GND SDA Đồ án kỹ thuật điện tử Trường Đại học Cần Thơ 6 Hình 6: Kit Launchpad sử dụng MSP430G2452 2.2 Thiết kế phần cứng, phần mềm 2.2.1 Phần cứng  Thành phần sử dụng: Đề tài sử dụng các phần cứng sẵn có bao gồm cảm biến gia tốc BMA150 tích hợp trên board Inertial One Sensors Xplained, MSP430G2452 trên kit Lauchpad và máy tính cá nhân.  Kết nối chi tiết: Các chân VCC, GND, SCL, SDA của board Inertial One Sensors Xplained lần lượt kết nối với các chân VCC, GND, P1.6, P1.7 trên kit Launchpad; kit Lauchpad được kết nối với máy tính qua cổng USB. Kết nối phần cứng thực tế được thể hiện qua Hình 7. Hình 7: Kết nối phần cứng chi tiết 2.2.2 Phần mềm  Phần mềm IAR Embedded Workbench: Sử dụng để lập trình và nạp chương trình vào MSP430G2452 thông qua kit Launchpad. Lưu đồ giải thuật của chương trình đọc dữ liệu cảm biến và truyền lên máy tính được thể hiện ở Hình 8. Có thể chia giải thuật này làm 2 phần: Vi điều khiển đọc dữ liệu cảm biến và Vi điều khiển truyền dữ liệu nhận được đến máy tính để vẽ đồ thị. ˗ Vi điều khiển đọc dữ liệu cảm biến: Đầu tiên, MSP430G2452 tiến hành giao tiếp I2C với BMA150 để thiết lập thanh ghi chọn thang đo và băng thông (địa chỉ 14h) để chọn độ rộng thang đo và băng thông mong muốn (có thể để mặc MSP430G2452 Đồ án kỹ thuật điện tử Trường Đại học Cần Thơ 7 định). Sau đó, việc đọc các thanh ghi chứa giá trị gia tốc 3 trục X, Y, Z và nhiệt độ được thực hiện lặp lại với tần số ( < 3). Đề tài tiến hành đọc dữ liệu này với tần số 20Hz. ˗ Vi điều khiển truyền dữ liệu nhận được đến máy tính để vẽ đồ thị: Sau khi nhận được dữ liệu từ cảm biến, vi điều khiển sẽ tiến hành gửi từng byte dữ liệu này đến máy tính thông qua giao tiếp UART nếu nhận được yêu cầu nhận dữ liệu từ máy tính (do Matlab GUI gửi qua cổng COM). Dữ liệu này sẽ được hiển thị hoặc vẽ đồ thị trực tiếp trong Matlab GUI. Hình 8: Lưu đồ giải thuật khảo sát cảm biến BMA150  Phần mềm Matlab: ˗ Phiên bản sử dụng: Matlab R2010a của hãng MathWorks. ˗ Thiết kế giao diện: Đề tài sử dụng chức năng tạo giao diện GUI của Matlab để vẽ đồ thị dữ liệu (sau đây gọi ngắn gọn là Matlab GUI). Giao diện Matlab Định nghĩa địa chỉ các thanh ghi trong BMA150 Định nghĩa các chân và các biến thiết lập I2C (SCL, SDA), UART (TXD, RXD) Begin Khai báo biến toàn cục được sử dụng Khai báo chương trình con Khởi tạo I2C và UART Chọn giới hạn đo (thang đo), băng thông ĐÚNG SAI Nhận được tín hiệu yêu cầu đọc dữ liệu từ máy tính? Gọi hàm truyền các byte dữ liệu gia tốc và nhiệt độ lên máy tính thông qua UART Đọc giá trị gia tốc 3 trục X, Y, Z và giá trị nhiệt độ Đồ án kỹ thuật điện tử Trường Đại học Cần Thơ 8 GUI được thiết kế như Hình 9, bao gồm: 1 toggle button “ON/OFF” để điều khiển việc mở/tắt chức năng vẽ đồ thị; 1 static text hiển thị tên đồ thị là “ACCELERATION DATA”; 2 panel để hiển thị 2 nhãn “ON/OFF READ” và “TEMPERATURE”; 1 edit text để hiển thị dữ liệu nhiệt độ; 3 đồ thị dữ liệu tương ứng với 3 trục X, Y, Z. Khi nhấn nút ON/OFF, việc nhận dữ liệu được kích hoạt và Matlab GUI sẽ vẽ đồ thị dữ liệu này cho đến khi nút ON/OFF được nhấn lần nữa. Hình 9: Giao diện GUI trong Matlab để vẽ đồ thị dữ liệu 3 KẾT QUẢ VÀ ĐÁNH GIÁ Dữ liệu cảm biến được đọc một cách liên tục và truyền lên máy tính với tần số 96Hz, sau đó hiển thị trực tiếp lên đồ thị trong Matlab GUI như Hình 10. Hình 10: Đồ thị biểu diễn dữ liệu gia tốc 3 trục theo thời gian thay đổi trục Y thay đổi trục Z thay đổi trục X thay đổi cả 3 trục X,Y,Z Đồ án kỹ thuật điện tử Trường Đại học Cần Thơ 9 Theo đó, giá trị gia tốc trục X được thay đổi trong khoảng thời gian từ 3.7s – 6.6s. Để làm được điều này, dựa vào định hướng của board Inertial One Sensors Xplained trên Hình 11, ta đặt board ở vị trí sao cho trục Z vuông góc với mặt phẳng nằm ngang, tiến hành di chuyển qua lại theo phương trục X. Tương tự, giá trị trục Y thay đổi trong khoảng từ 8.7s – 11.4s và trục Z thay đổi trong khoảng từ 13.7s – 16.3s. Để làm được điều này, định hướng tương tự trục X, ta di chuyển board theo phương của Y (nếu muốn thay đổi Y) hoặc Z (nếu muốn thay đổi Z). Trong khoảng thời gian từ 17.6s – 21.4s, giá trị cả 3 trục đều thay đổi do board được thay đổi theo cả 3 phương X, Y, Z trong không gian. (Ghi chú: giá trị thời gian trên 3 đồ thị được chia 10 nếu tính theo đơn vị giây). Hình 11: Định hướng 3 trục X, Y, Z trong không gian Nhận xét:  Tần số truyền nhận dữ liệu trên cổng COM: Do tần số baurd là 9600, khung truyền là 10 bit nên số khung truyền hay số byte truyền nhận trong 1 giây là 9600/10 = 960 byte. Mặt khác, mỗi lần truyền nhận 10 byte dữ liệu, bao gồm 1 byte yêu cầu nhận dữ liệu, 2 byte báo nhận, 6 byte giá trị gia tốc 3 trục và 1 byte giá trị nhiệt độ. Từ đó suy ra tần số truyền nhận là 960/10 = 96 Hz.  Giá trị gia tốc trên 3 trục độc lập với nhau, khi di chuyển board theo phương của một trục nào đó không làm ảnh hưởng đến giá trị gia tốc của hai trục còn lại. Ở vị trí cân bằng, giá trị gia tốc của một trục bằng g (giá trị vector gia tốc trọng trường) nếu cùng hướng với vector gia tốc trọng trường g (phương thẳng đứng và hướng từ dưới lên) và bằng -g nếu ngược hướng.  Giá trị tuyệt đối của gia tốc trên một trục càng lớn khi di chuyển board với vận tốc thay đổi càng nhanh (hay vận tốc biến thiên càng nhanh), giá trị này dương khi di chuyển cùng hướng và âm khi di chuyển ngược hướng với trục đã chọn. 4 KẾT LUẬN VÀ ĐỀ NGHỊ Đề tài đã ứng dụng vi điều khiển MSP430G2452 giao tiếp với cảm biến gia tốc BMA150 theo chuẩn truyền thông I2C để đọc dữ liệu sau đó truyền UART lên máy tính và sử dụng chức năng GUI trong Matlab để vẽ đồ thị dữ liệu. Kết quả đã đọc và vẽ được đồ thị dữ liệu một cách liên tục, đáp ứng được yêu cầu đề tài. Ưu điểm của đề tài là đã đọc và vẽ được dữ liệu một cách liên tục, việc đồng bộ giữa các phần cứng khác nhau khá tốt, dữ liệu trả về có độ ổn định và tính chính xác khá cao. Tuy vậy, giao diện GUI vẫn còn khá đơn điệu; việc khai thác thêm các chức năng cũng như việc ứng dụng ngắt để đồng bộ dữ liệu còn nhiều hạn chế. Y X Z Đồ án kỹ thuật điện tử Trường Đại học Cần Thơ 10 Đề tài có thể cải tiến thêm để đo độ nghiêng, hoặc kết hợp thêm các chức năng được hỗ trợ từ cảm biến để việc đọc dữ liệu được chính xác nhất. Với những gì đã thực hiện, đề tài là cơ sở cho những nghiên cứu và ứng dụng cụ thể sử dụng cùng hoặc khác loại cảm biến gia tốc đã thực hiện. CÁM ƠN Xin cảm ơn thầy Trần Thanh Hùng đã tận tình hướng dẫn và giúp đỡ cũng như hỗ trợ cho em board Inertial One Sensors Xplained; cảm ơn các bạn trên các diễn đàn đã giúp đỡ em hoàn thành đề tài. TÀI LIỆU THAM KHẢO [1] Bosch Sensortec, 2008. Datasheet BMA150. bst.resource.bosch.com/media/products/dokumente/bma150/BST-BMA150-DS000- 07.pdf, truy cập ngày 3/9/2013. [2] Atmel, 2011. Sensor Xplain Board. truy cập ngày 3/9/2013 [3] Texas Instruments, 2004. MSP430x2xx Family User’s Guide. truy cập ngày 19/9/2013 [4] Pay It Forward Club, 2012. Giao tiếp I2C MSP430. d%E1%BB%A5ng-v%E1%BB%9Bi-DS1307-v%C3%A0-C%E1%BA%A3m- bi%E1%BA%BFn-nhi%E1%BB%87t-TMP100, truy cập ngày 15/10/2013 [5] Texas Instruments, 2010. Msp430g2xx2_ta_uart9600.c. 2xx2%20Code%20Examples/C/msp430g2xx2_ta_uart9600.c
Luận văn liên quan