Giới thiệu về MPU-6050

Một phần của tài liệu Thiết kế và thi công vòng đeo tay đếm bước chân dựa trên thuật toán DECSION TREE (Trang 41)

Sensor MPU-6050 là dịng cảm biến tích hợp theo dõi chuyển động 6 trục, bao gồm con quay hồi chuyển 3 trục, cảm biến gia tốc 3 trục và một xử lý chuyển động số (DMP) nằm trong một sensor kích thước 4x4x0.9mm. Với bus giao tiếp I2C, cảm biến nhận dữ liệu trực tiếp từ la bàn ngồi để cung cấp ngõ ra cảm biến chuyển động 9 trục. MPU-6050 tích hợp 6 trục, board điều khiển tích hợp, firmware hiệu chuẩn cho phép nhà sản xuất loại bỏ các thành phần riêng rẽ phức tạp và tốn kém của hệ thống, đảm bảo hiệu suất tối ưu cho người dùng. MPU-6050 cũng được thiết kế để giao tiếp với nhiều cảm biến số khơng quán tính như cảm biến áp suất trên các port I2C phụ trợ.

MPU-6050 cĩ ba bộ ADC 16 bit để số hĩa ngõ ra của con quay hồi chuyển và ba ADC dùng để số hĩa ngõ ra cảm biến gia tốc. Để theo dõi chính xác cả chuyển động nhanh và chậm, MPU sử dụng một con quay hồi chuyển khả trình với các khoảng 250, 500, 1000 và 2000o/sec (dps) và một bộ đo gia tốc khả trình ±2g, ±4g, ±8g, and ±16g.

Một bộ đệm FIFO on-chip 1024 bytes giúp giảm tổn hao cơng suất hệ thống bằng cách cho phép bộ xử lý đọc dữ liệu từ cảm biến theo xung và vào chế độ cơng suất thấp khi MPU thu thập nhiều dữ liệu hơn. Việc cần thiết của xử lý on-chip và các thành phần cảm biến cần thiết cho nhiều ứng dụng dựa trên cảm biến chuyển động, MPU-6050 cho phép ứng dụng MotionInterface cơng suất thấp trong các ứng dụng di động với yêu cầu xử lý được giảm cho bộ xử lý hệ thống. Bằng cách cung cấp ngõ ra tích hợp MotionFusion, DMP trong MPU-6050 giúp giảm việc tính tốn cho bộ xử lý, giảm thiểu việc thường xuyên phải kiểm tra ngõ ra cảm biến chuyển động. Giao tiếp với các thanh ghi thiết bị thơng qua chuẩn giao tiếp I2C với tần số 400kHz. Cĩ thêm các tính năng bao gồm cảm biến nhiệt và bộ giao động on-chip với dung sai 1% trên khoảng nhiệt độ hoạt động.

InvenSense đã giảm kích thước MPU-6050 xuống cịn 4x4x0.9mm trong khi vẫn cung cấp được cơng suất nhất, nhiễu ít hơn và giá thành thấp hơn. Cảm biến MPU- 6050 cĩ khả năng chống shock mạng mẽ lên đến 10,000g và các bộ lọc thơng thấp khả trình cho con quay hồi chuyển, cảm biến gia tốc và cảm biến nhiệt.

MPU-6050 cĩ khả năng hoạt động với khoảng nguồn cung cấp rộng từ 2.375V- 3.46V. Hơn nữa, MPU-6050 cịn cung cấp chân VLOGIC (bên cạnh chân VDD) để cài đặt mức logic trên giao tiếp I2C. Điện áp VLOGIC cĩ thể là 1.8V 5% hoặc VDD.

2.7.2. Cá ính năng a MPU-6050

Con quay hồi chuyển

Con quay hồi chuyển ba trục MEMS trong MPU-6050 bao gồm các đặc điểm sau:

- Bộ cảm biến gĩc quay ngõ ra số trục x, trục y và trục z (con quay hồi chuyển) với các khoảng lập trình được ±250, ±500, ±1000, and ±2000°/sec

- Tín hiệu đồng bộ bên ngồi được kết nối với chân FSYNC hỗ trợ đồng bộ hĩa hình ảnh, video và GPS.

- Bộ ADC 16-bit tích hợp cho phép lấy mẫu đồng thời con quay hồi chuyển.

- Độ ổn định về độ nhạy và ngưỡng nhiệt độ giúp giảm việc phải canh chỉnh.

- Cải thiệt việc hoạt động ở nhiễu tần số thấp.

- Bộ lọc thơng thấp khả trình.

- Dịng hoạt động con quay hồi chuyển: 3.6mA.

- Dịng standby: 5µA.

- Hệ số cân chỉnh khoảng độ nhạy của nhà máy.

- Tự kiểm tra bởi người sử dụng.  Cảm biến gia tốc

- Cảm biến gia tốc ba trục MEMS trong MPU-6050 bao gồm các đặc tính sau:

- Bộ cảm biến gĩc quay ngõ ra số trục x, trục y và trục z (con quay hồi chuyển) với các khoảng lập trình được ±2g, ±4g, ±8g and ±16g.

- Bộ ADC 16-bit tích hợp cho phép lấy mẫu đồng thời mà khơng cần bộ ghép kênh ngồi.

- Dịng hoạt động bình thường: 500µA.

- Chế độ dịng tiêu thụ thấp: 10μA tại 1.25Hz, 20μA tại 5Hz, 60μA tại 20Hz, 110μA tại 40Hz.

- Định vị và phát hiện định hướng.

- Phát hiện chạm.

- Ngắt khả trình.

- Ngắt high-G.

- Tự kiểm tra bởi người sử dụng.  Cá ính năng hêm

- MPU-6050 bao gồm các tính năng thêm:

- MotionFusion 9 trục thực hiện bởi DMP (Digital Motion Processor) on-chip.

- Dịng hoạt động 3.9mA khi cảm biến cả 6 trục và DMP được kích hoạt. (adsbygoogle = window.adsbygoogle || []).push({});

- Khoảng điện áp cung cấp 2.375-3.46V.

- Điện áp tham chiếu VLOGIC hỗ trợ điện áp giao tiếp I2 C.

- Kích thước nhỏ gọn: 4x4x0.9mm.

- Độ nhạy chéo giữa trục gia tốc và trục con quay nhỏ nhất.

- Bộ đệm FIFO 1024 bytes giúp giảm cơng suất tiêu thụ bằng cách cho phép các chip xử lý chính đọc dữ liệu trong các xung và sau đĩ chuyển qua chế độ cơng suất thấp khi MPU đọc nhiều dữ liệu hơn.

- Cảm biến nhiệt độ ngõ ra số.

- Bộ lọc số khả trình cho con quay hồi chuyển, cảm biến gia tốc và cảm biến nhiệt độ.

- Khả năng chống shock 10,000g.

- Fast mode I2C 400kHz để giao tiếp với các thanh ghi.  Xử lý chuyển ộng

- Bộ xử lý chuyển động số nội (DMP) hỗ trợ thuật tốn nhận dạng cử chỉ và xử lý chuyển động 3-D.

- MPU-6050 thu thập dữ liệu của con quay hồi chuyển và cảm biến gia tốc trong khi đồng bộ tốc độ lấy mẫu với tốc độ định trước của người sử dụng. Tồn bộ dữ liệu thu thập được của MPU-6050 bao gồm dữ liệu con quay ba trục, dữ liệu gia tốc ba trục và dữ liệu nhiệt độ.

- FIFO đệm các dữ liệu hồn chỉnh, giảm thời gian cần để xử lý trện bộ xử lý hệ thống, cho phép bộ xử lý đọc dữ liệu từ FIFO nhanh hơn. Sauk hi đọc dữ liệu từ FIFO, bộ xử lý cĩ thể tiết kiệm năng lượng bằng cách chuyển qua chế độ ngủ đơng tiết kiệm năng lượng, trong khi MPU tiếp tục thu thập dữ liệu.

- Các thanh ghi ngắt hỗ trợ các tính năng như nhận diện cử chỉ, lướt, phĩng to, cuộn, phát hiện chạm và phát hiện rung.

- Bộ lọc thơng thấp lập trình số.

- Chức năng đếm bước cơng suất thấp cho phép bộ xử lý ngủ đơng trong khi DMP vẫn tiếp tục đếm.

2.7.3. Sơ ồ chân MPU-6050

Sơ đồ phân bố chân nhìn từ mặt trước của MPU-6050 được mơ tả trong hình 2.8.

Hình 2.13: Sơ đồ phân bố chân của MPU-6050 (top view)

Bảng 2.5: Sơ đồ chân pinout của MPU-6050

Chân Tên chân Mơ tả

1 CLKIN Ngõ vào clock tham chiếu ngồi. Nối với GND nếu khơng sử dụng.

6 AUX_DA Chân dữ liệu nối tiếp Master I

2C, dùng để kết nối sensor ngồi.

7 AUX_CL Clock nối tiếp Master I2C, dùng để kết nối với sensor ngồi. 8 VLOGIC Nguồn cung cấp cho I/O số.

9 AD0 Địa chỉ LSB của slave I2

C (AD0). 10 REGOUT Kết nối lọc điều chỉnh.

11 FSYNC Ngõ vào số đồng bộ frame. Nối với GND nếu khơng sử dụng.

12 INT Ngắt ngõ ra số

13 VDD Nguồn cung cấp và điện áp cấp I/O số

18 GND Nối đất (adsbygoogle = window.adsbygoogle || []).push({});

19,21 RESV Dự phịng. Khơng kết nối. 20 CPOUT Kết nối với tụ nạp

22 RESV Dự phịng. Khơng kết nối. 23 SCL Xung clock cho I2C (SCL) 24 SDA Data cho I2C (SDA)

2,3,4,5, 14,15,

16,17

NC

Khơng kết nối

2.8. Mạch charge pin Lithium TP4056

Mạch charge TP4056 là mạch charge 3.7V cho các dịng pin Lithium, pin Ultrafire cĩ dịng sạc tối đa lên đến 1A. Mạch charge cĩ IC quản lý charge để tự ngắt khi pin yếu dưới 2.4V. Hình 2.9 là mạch TP4056 trong thực tế.

 Thơng số kĩ thuật của mạch:

- Điện áp vào: Micro USB 4.5-5.5V DC.

- Dịng charge tối đa: 1000mA.

- Điện áp ngưỡng tự động ngắt: 4.2V 1%.

- Điện áp ngưỡng cần charge: 2.5V.

- Tích hợp tự động ngắt bảo vệ pin khi pin yếu dưới 2.4V.

- Nhiệt Độ Hoạt Động: -10 -->85 °C

- Kích thước: 2.6 x 1.7cm.

- Trọng lượng: 10g.  Tính năng:

- Sử dụng sạc Pin 3.7V, Pin Ultrafire, Pin Lithium.

- Chế độ đang sạc LED báo màu đỏ.

- Chế độ sạc pin đầy LED báo màu xanh.

- Mạch sạc cĩ chế độ tự ngắt khi sạc đầy pin.

Hình 2.14: Mạch charge TP4056 1A 2.9. Pin Lipo 3.7V 500mA

Pin Lipo, viết tắt của Lithium Polymer, là loại pin cĩ kích thước nhỏ gọn, dịng xả lớn, tuổi thọ cao, pin cĩ điện áp trung bình 3.7V, charge đầy là 4.2V.

Thơng số kỹ thuật:

- Số cell: 01.

- Điện áp trung bình 3.7VDC, charge đầy 4.2VDC.

- Dung lượng: 500mA.

- Kích thước: 20 x 30 x 6 mm.

- Khối lượng: 7.2 g.

Hình 2.15: Pin lipo 3.7V 500mA 2.10. Weka (adsbygoogle = window.adsbygoogle || []).push({});

Weka (Waikato Environment for Knowledge Analysis) là phần mềm machine learning được viết trên nền tảng Java, được phát triển bởi Đại học Waikato, New Zealand. Đây là phần mềm miễn phí được cấp phép bởi GNU (General Public License).

Weka bao gồm các cơng cụ trực quan và thuật tốn cùng với giao diện người dùng (GUI) giúp hỗ trợ phân tích dữ liệu và dự đốn mơ hình. Các ưu điểm của Weka bao gồm:

- Mã nguồn mở.

- Giao diện đồ họa người dùng (GUI): cho phép thực hiện các project machine learning mà khơng cần lập trình.

- Java API: Weka được viết bằng ngơn ngữ Java do đĩ nĩ cĩ thể trên hầu hết các nền tảng máy tính hiện tại.

2.10.1. Giới thiệu giao diện c a Weka

Hình 2.16 là giao diện của chương trình Weka khi khởi động, bao gồm:

- Explorer: xử lý dữ liệu và thuật tốn muốn sử dụng trong Experimenter.

- Experimenter: giao diện để thí nghiệm với tập dữ liệu và thuật tốn đã xử lý

trong Explorer.

- Knowledge Flow: Giao diện giúp theo dõi quá trình huấn luyện và chạy các

mơ hình đã tạo bao gồm: load và xử lý dữ liệu ngõ vào, chạy thuật tốn và trình bày kết quả.

Hình 2.16: Giao diện Weka version 3.8.1

Explorer bao gồm 5 tab :

- Preprocess: load tập dữ liệu và biến đổi về dạng mong muốn.

- Classify: Chọn và chạy các thuật tốn phân loại và hồi quy.

- Cluster: Chọn và chạy các thuật tốn phân loại nhĩm.

- Associate: Chạy các thuật tốn liên kết để trích xuất đặc trưng của tập dữ liệu.

- Select Attributes: Chạy các thuật tốn thuộc tính trên tập dữ liệu để chọn ra các thuộc tính liên quan đến tính năng mong muốn dự đốn.

- Visualize: Biểu diễn mối quan hệ giữa các thuộc tính.

- Current relation cho biết các thơng số của file dữ liệu bao gồm tên của file (Relation), số mẫu (instances) và số thuộc tính (attributes).

Hình 2.17: Giao diện của Explorer trong Weka

Weka Experimenter

Hình 2.18: Giao diện Weka Experimenter

Giao diện cho phép thử nghiệm trên các thuật tốn và tập dữ liệu, chạy thử nghiệm và phân tích kết quả.

Knowledge Flow

Hình 2.19: Giao diện Knowledge Flow

Giao diện cho phép theo dõi quá trình huấn luyện dưới dạng hình ảnh đồ thị và chạy các mơ hình đã tạo ra, bao gồm load và biến đổi dữ liệu ngõ vào, chạy thuật tốn và trình bày kết quả.

2.10.2. Chuẩn bị dữ liệu cho Weka

Weka chấp nhận các dữ liệu dưới dạng file “.arff”. File ARFF (Attribute-Relation File Format – kiểu file dữ liệu dạng quan hệ - thuộc tính) là kiểu file text ASCII liệt kê danh sách các trường hợp chia sẻ một tập thuộc tính. File ARFF cĩ hai phần riêng biệt. Phần đầu tiên là phần chứa thơng tin tiêu đề, phần hai là thơng tin dữ liệu. (adsbygoogle = window.adsbygoogle || []).push({});

Phần tiêu đề chứa khái báo tên của mối quan hệ giữa danh sách các thuộc tính (các cột trong tập dữ liệu) và kiểu của nĩ, bao gồm các khai báo dạng @relation, @attribute, @data.

Các khai báo @relation, @attribute, @data khơng phân biệt chữ hoa chữ thường. Dịng bắt đầu với % là các comments.

Khai báo @relation

Tên mối quan hệ được khai báo dịng đầu tiên trong file ARFF. Cấu trúc của khai báo @relation là: “@relation <tên mối quan hệ>”. <tên mối quan hệ> là một chuỗi. Chuỗi phải được trích dẫn nếu bao gồm các khoảng trắng.

Khai báo @attribute

Khai báo thuộc tính bao gồm các câu lệnh theo thứ tự. Mỗi thuộc tính trong tập dữ liệu đều cĩ một câu lệnh khai báo @attribute của riêng nĩ, quy định tên duy nhất của thuộc tính đĩ và kiểu dữ liệu. Thứ tự của các thuộc tính được khai báo tương ứng với vị trí các cột trong phần dữ liệu của file. Ví dụ, nếu một thuộc tính được khai báo thứ ba thì tất cả các giá trị thuộc tính sẽ nằm ở cột phân cách bằng dấu phẩy thứ ba trên Weka.

Cấu trúc của câu lệnh khai báo @attribute là:

@attribute <tên thuộc tính> <kiểu dữ liệu>

Với <tên thuộc tính> phải bắt đầu bằng kí tự chữ cái. Nếu tên cĩ khoảng trắng thì phỉa được trích dẫn.

<Kiểu dữ liệu> cĩ thể là một trong bốn kiểu dữ liệu được Weka hỗ trợ:

- Kiểu số.

- <Đặc điểm danh định>.

- Kiểu chuỗi.

- Kiểu thời gian.

Thuộc tính kiểu số cĩ thể là số thực hoặc số nguyên.

Thuộc tính danh định được định nghĩa bằng cách cung cấp danh sách <đặc điểm danh định> bao gồm các giá trị cĩ thể: {<danh định 1>, {<danh định 2>,…}. Các giá trị cĩ chứa khoảng trắng phải được trích dẫn.

Thuộc tính kiểu chuỗi cho phép tạo ra các thuộc tính cĩ chứa các kí tự tùy ý. Điều này đặc biệt hữu ích trong các ứng dụng tìm kiếm chữ kí tự.

Thuộc tính kiểu thời gian cĩ dạng: @attribute <tên> thời gian [<kiểu thời gian >]. <tên> chứa tên của thuộc tính và [<kiểu thời gian >] quy định cách ghi thời gian. Kiểu thời gian mặc định là "yyyy-MM-dd'T'HH:mm:ss".

Phần dữ liệu của file ARFF chứa các dịng khai báo và các mẫu dữ liệu thực tế. Khai báo @data là một dịng đơn biểu thị sự bắt đầu của đoạn dữ liệu trong tệp tin. Cấu trúc của khai báo là: @data.

Mỗi mẫu dữ liệu được biểu diễn trên một dịng. Các giá trị thuộc tính của mỗi mẫu được ngăn cách với nhau bởi dấu phẩy. Các giá trị thuộc tính phải tuân theo thứ tự đã khai báo trong phần tiêu đề (ví dụ dữ liệu tương ứng với khai báo thuộc tính thứ n luơn nằm ở trường thứ n của thuộc tính). Giá trị khơng cĩ được biểu diễn bằng một dấu hỏi (?) đơn.

Tổng quát lại, một file dữ liệu dạng ARFF phải cĩ cấu trúc như sau:

@relaltion tên tập dữ liệu

@attribute tên_thuộc_tính_1 kiểu dữ liệu

@attribute tên_thuộc_tính_2 kiểu dữ liệu

@attribute tên_thuộc_tính_3 kiểu dữ liệu

….

@data

a1, a2, a3… b1, b2, b3… …

Hình 2.20 dưới đây là một ví dụ về file ARFF chứa dữ liệu về thời tiết với một số đặc tính.

Hình 2.20: Ví dụ cấu trúc file ARFF (adsbygoogle = window.adsbygoogle || []).push({});

Dịng lệnh bắt đầu với % là các dịng comment chú thích file ARFF chứa dữ liệu về thời tiết với một số đặc tính số.

Dịng lệnh đầu tiên @relation weather: tên của tập dữ liệu là weather.

Dịng lệnh thứ hai @attribute outlook {sunny , overcast , rainy} khai báo tên thuộc tính thứ nhất là outlook, kiểu dữ liệu là danh định.

Dịng lệnh thứ hai @attribute temperature numeric khai báo tên thuộc tính thứ hai là temperature, kiểu dữ liệu là kiểu số.

Dịng lệnh thứ ba @attribute humidity numeric khai báo tên thuộc tính thứ ba là humidity, kiểu dữ liệu là kiểu số.

Dịng lệnh thứ tư @attribute windy {true , false} khai báo tên thuộc tính thứ tư là windy, kiểu dữ liệu là danh định.

Dịng lệnh thứ năm @attribute play? {yes , no} khai báo tên thuộc tính thứ năm là play?, kiểu dữ liệu là danh định.

@data khai báo đánh dấu bắt đầu phần dữ liệu của file ARFF.

Một phần của tài liệu Thiết kế và thi công vòng đeo tay đếm bước chân dựa trên thuật toán DECSION TREE (Trang 41)