Cảm biến gia tốc dịch chuyển thẳng đứng – MPU6050
Có nhiều loại cảm biến gia tốc trên thị trường, do đó việc lựa chọn cảm biến gia tốc phù hợp là điều cần thiết. Cảm biến gia tốc được lựa chọn dưa trên một số tiêu chí sau: số trục gia tốc, độ nhạy, loại dữ liệu output, độ chính xác. Theo đó, nhóm chúng em lặp được bảng so sánh một số loại cảm biến như sau:
Bảng 3. 2 So sánh một số cảm biến gia tốc
Loại cảm biến Số trục Độ nhạy Loại dữ liệu Giá Độ chính xác
MiniSense Piezo 1 ±1𝑔 Analogue Thấp Thấp
IEPE accelerometer 1 1V/g Analogue Thấp Thấp
ADXL - 203 2 ±5𝑔 Analogue Cao TB
ADXL - 335 3 ±3𝑔 Analogue Thấp Thấp
Hitachi Metal 3 ±3𝑔 Analogue TB Thấp
MPU - 6050 3 ±16𝑔 Digital Thấp Cao
Nguồn: Internet Từ các so sánh trên, nhóm chúng em quyết định sử dụng cảm biến MPU – 6050 cho dự án của mình vì các ưu điểm của nó so với các cảm biền khác.
Nguồn: Internet
38 Cảm biến GY- 521 6DOF IMU MPU6050 là cảm biến của hang InvenSense. Cảm biến được sử dụng để đo 6 thông số trên 3 trục được tích hợp trong 1 chip duy nhất, bao gồm 3 giá trị góc quay Gyro quanh 3 trục và 3 giá trị gia tốc hướng (accelerometer). MPU-6050 sử dụng công nghệ độc quyền MotionFusion của InvenSense có thể chạy trên các thiết bị di dộng, tay điều khiển.
MPU-6050 còn có một đơn vị tăng tốc phần cứng chuyên xử lí tín hiệu (Digital Motion Processor – DSP) do cảm biến thu thập và thực hiện các tín toán cần thiết. Điều này giúp giảm bớt đáng kể phần xử lí, tính toán của VĐK, cải thiện tốc độ xử lí và cho ra phản hồi nhanh hơn. Đây chính là một điểm khác biệt đáng kể của MPU-6050 so với các cảm biến gia tốc và gyro khác.
Các cảm biến bên trong MPU-6050 sử dụng bộ chuyển đổi tương tự (ADC- Analogue to Digital Converter ) 16 bit cho ra kết quả chi tiết về góc quay, tọa độ. Với 16 bit ta có 216=65536 giá trị cho một cảm biến. Tùy thuộc vào yêu cầu của người dùng mà có thể sử dụng cảm biến ở chế độ tốc độ xử lí cao hoặc độ chính xác cao
MPU-6050 còn có thể kết hợp với cảm biến từ trường (bên ngoài) để tạo thành bộ cảm biến 9 góc đầy đủ thông qua giao tiếp I2C [11].
Đây là loại cảm biến gia tốc phổ biến nhất trên thị trường ngày nay. Có nhiều ví dụ và dự án liên quan hoặc sử dụng đến cảm biến này. Một số dự án điển hình như con lắc động, xe tự cân bằng, flycam, tay cầm chơi game…
Thông số kỹ thuật
Chip: MPU-6050 (16bit ADC, 16bit data out).
Giá trị Gyroscapes trong khoảng: ±250, ±500, ±1000, ±2000 độ/giây. Giá trị gia tốc trong khoảng : ±2𝑔, ±4𝑔, ±8𝑔, ±16𝑔.
Giao tiếp: I2C.
Nguồn sử dụng: 3 – 5V(DC). Điện áp giao tiếp: 3 – 5V(DC).
39
Sơ đồ nguyên lí cảm biến GY- 521 6DOF IMU MPU6050
Hình 3. 15 Sơ đồ nguyên lí cảm biến MPU6050
Nguồn: Datasheet MPU6050
Chức năng các chân trên cảm biến
Bảng 3. 3 Chức năng các chân trên cảm biến MPU6050
Chân Mô tả
VCC Cấp nguồn hoạt động cho module, nguồn cấp: 3.3 – 5V GND Nối GND của nguồn
SCL Nối với chân SCL của VĐK SDA Nối với chân SDA của VĐK
XDA Chân dữ liệu( kết nối với cảm biến khác XCL Chân xung( kết nối với cảm biến khác AD0 Bit 0 của địa chỉ I2C
INT Ngắt lặp trình theo yêu cầu( programmable interrupt).
40 Cảm biến góc quay Gyro
Hình 3. 16 Cảm biến gyro ba trục L3G4200D
Nguồn: Internet
Mặc dù cảm biến MPU-6050 cũng hỗ trợ đọc giá trị các góc gyro, nhưng qua nhiều lần thảo luận cùng nhau và được gợi ý từ GVHD, nhóm chúng em quyết định sự dụng một cảm biến đặc thù đo giá trí các góc roll, pitch, yaw. Cảm biến được lựa chọn là L3G4200D. Cảm biến Gyro 3 trục L3G4200D được sử dụng để đo góc quay của vật thể gắn cảm biến theo ba trục x, y, z, cảm biến có độ phân giải rất cao (16bit) có thể đo ở tốc độ 2000 độ/giây (dps) ổn định mà không bị ảnh hưởng bởi nhiệt độ hơn nhiều loại cảm biến có sẵn trên thị trường ngày nay [13]
Cảm biến có thể giao tiếp qua chuẩn giao tiếp I2C hoặc SPI. Cảm biến còn tích hợp them 32 thanh ghi buffer FIFO giúp người dùng có thể truy xuất dữ liệu nhanh và thuận tiện hơn, làm giảm khối lượng xử lí cho VĐK.
Thông số kĩ thuật
Bảng 3. 4 Thông số kỹ thuật L3G4200D
Nguồn điện áp 3 – 5V (DC) Điện áp giao tiếp 3 - 5V (DC)
Giao tiếp I2C hoặc SPI
Độ phân giải ±250, ±500, ±2000
Kích thước 24mm x 23mm x 2mm
41
Sơ đồ nguyên lí mạch L3G4200D
Hình 3. 17 Sơ đồ nguyên lí cảm biến L3G4200D
Nguồn: Internet
Chức năng các chân trên cảm biến
Bảng 3. 5 Chức năng các chăn trên L3G4200D
Chân Mô tả
VCC Cấp nguồn hoạt động cho module, nguồn cấp: 3.3 – 5V GND Nối GND của nguồn
SCL/SCK Nối với chân SCL của VĐK nếu dùng giao tiếp I2C, nối với chân SCK(xung clock SPI, chân 13 trên Arduino Uno) nếu dùng giao tiếp SPI
SDA/MOSI Nối chân SDA của VĐK nếu dùng giao tiếp I2C, nối chân MOSI( chân 11 trên Arduino Uno) nếu dùng SPI
SDO Nối với chân MISO ( chân 12 trên Arduino Uno) nếu dùng giao tiếp SPI
CS Chân chip select dùng với giao thức SPI, mặc dịnh được kéo lên 3.3V, kéo xuống mức LOW để thực hiện qua giao tiếp SPI
42 DR Chân dữ liệu sẵn sang (Data ready indicator). Mức HIGH (3.3 V) cho
biết dữ liệu đã sẵn sang, có thể đọc cảm biến. Có thể được cài đặt làm ngắt FIFO interrupt.
INT Ngắt lặp trình theo yêu cầu( programmable interrupt).
Nguồn: Datasheet L3G4200D 3.3.1.3. Module TCA-9548A
Xung đột địa chỉ trong giao tiếp I2C
Hình 3. 18 Xung đột địa chỉ trong giao tiếp I2C
Nguồn: Internet
Mỗi thiết bị Slave được gán một địa chỉ duy nhất dùng trong giao tiếp I2C. Nếu có bất kì hai thiết bị nào giống nhau (cùng địa chỉ) sẽ xảy ra lỗi trong quá trình giao tiếp gọi là lỗi “Xung đột địa chỉ”. Đây cũng là một hạn chế lớn trong phương thức giao tiếp I2C. Trong mô hình của nhóm chúng em, việc sử dụng bốn cảm biến MPU-6050 có địa chỉ trong giao tiếp I2C là b110100X (X =1 nếu chân AD0 ở mức HIGH, X=0 nếu chân AD0 ở mức LOW) đã làm xuất hiện vấn đề xung đột địa chỉ theo cách truyền dữ liệu thông thường [22].
Module TCA-9548A- Mạch mở rộng giao tiếp I2C
43
Nguồn: Internet
Thiết bị TCA9548A là thiết bị với 8 công tắc dịch chuyển hai chiều được điều khiển bằng bus I2C. Cặp dây SCL/SDA được chia đến 8 kênh (channels) của thiết bị. bất kì thiết bị nào với giao tiếp I2C khi kết nối đến kênh SCn/SDn sẽ được lựa chọn thông qua chương trình do người lập trình quyết định. Những kênh này sẽ giải quyết vấn đề xung đột địa chỉ trong giao tiếp I2C. Ví dụ, chúng ta có thể kết nối 8 cảm biến gia tốc cùng loại đến 8 kênh của thiết bị SCn/SDn [14].
Trong trường hợp bị sự cố Time-out hay thiết bị hoặc động không đúng thì tín hiệu đầu vào của chân RESET được kéo về mức LOW. Tương tự như vậy, việc thiết lập lại nguồn sẽ bỏ chọn tất cả các kênh và chạy thiết bị ở trạng thái I2C/SMBUS. Việc RESET sẽ gây ra hiện tượng thiết lập lại và khởi tạo xảy ra mà không cần nguồn. Điều này cho phép phục hồi khi một trong các kênh bị kẹt ở mức LOW.
Các cổng thông qua của các công tắt được xây dựng để có thể sử dụng chân VCC để hạn chế điện áp cao tối đa-điện áp đi qua TCA9548A. Giới hạn điện áp cao tối đa cho phép sử dụng các điện áp bus khác nhau trên mỗi cặp, do đó các phần 1.8V, 2.5V, 3V có thể giao tiếp với các phần 5V mà không cần bảo vệ them. Các điện trở pullup bên ngoài kéo điện áp lên mức mong muốn. Tất cả các chân I/O đều chịu được mức điện áp 5V.
44
Hình 3. 20 Sơ đồ ứng dụng đơn giản hóa của TCA-9548A
Nguồn: Datasheet TCA-9548A
Cấu hình và chức năng các chân của TCA9548A
Nguồn: Datasheet TCA-9548A
45
Bảng 3. 6 Chức năng các chân trên TCA-9548A
Tên
chân Loại Mô tả
A0 I Đầu vào địa chỉ 0. Kết nối trực tiếp với VCC hoặc Ground
A1 I Đầu vào địa chỉ 1. Kết nối trực tiếp với VCC hoặc Ground
A2 I Đầu vào địa chỉ 2. Kết nối trực tiếp với VCC hoặc Ground
GND — Chân nối đất
RESET
I Đầu vào thiết lập lại. Kết nối vơi VCC hoặc VDPUM bằng điện trở kéo lên
SDn I/O Dữ liệu Serial kênh n. Kết nối với VDPUM thông qua điện trở kéo lên
SCn I/O Đồng hồ nhịp xung kênh n. Kết nối trực tiếp với VDPUM thông qua điện trỡ kéo lên
SCL I/O Dữ liệu Serial. Kết nối trực tiếp với VDPUM thông qua điện trở kéo lên
SDA I/O Đồng hồ nhịp xung. Kết nối trực tiếp với VDPUM thông qua điện trỡ kéo lên
VCC Power Nguồn cung cấp
46
Sơ đồ các khối chức năng trên TCA9548A
Hình 3. 22 Sơ đồ các khối chức năng trên TCA-9548A
Nguồn: Datasheet TCA-9548A
Địa chỉ I2C cuả TCA9548A
Hình 3. 23 Các thành phần trong byte địa chỉ của TCA-9548A
Nguồn: Datasheet TCA-9548
47
Bảng 3. 7 Các địa chỉ khác nhau của TCA9548A
Nguồn: Datasheet TCA-9548A
Tác vụ kiểm soát đăng kí.
Sau khi xác nhận thành công byte địa chỉ, bus master sẽ gửi một byte lệnh được lưu trong thanh ghi điều khiển của TCA9548A. Việc đăng kí này được viết hoặc đọc thông qua bus I2C. mỗi bit trong byte lệnh sẽ tương ứng với một kênh SCn/SDn và mức HIGH để lựa chọn kênh đó. Có thể lựa chọn nhiều kênh SCn/SDn cùng một lúc. Sau khi một kênh được lựa chọn, kênh này sẽ được kích hoạt sau điều kiện dùng( Stop Condition) trên bus I2C. Điều này đảm bảo tất cả các kênh luôn trong trạng thái mức HIGH khi kích hoạt, do đó sẽ không có điều kiện nào bị lỗi tại thời điểm kết nối. Luôn xảy ra điều kiện dừng ngay sau chu kì xác nhận. Nếu TCA9548A nhận được nhiều byte, nó sẽ lưu byte cuối cùng nhận được [14].
Hình 3. 24 Bit lựa chọn kênh trên Control register
48
Bảng 3. 8 Định nghĩa các byte lệnh
Nguồn: Datasheet TCA-9548A
3.3.1.4. Module GPS EVK-6PPP u-blox
Mô tả thiết bị
Hình 3. 25 Hai mặt thiết bị GPS
Nguồn: Sách hướng dẫn EVK-6 UserGuide
Module GPS EVK-6PPP u-blox được đi kèm với một ăng-ten GPS hoạt động ANN- MS u-blox độ dài 5m. Có thể kết nối các ăng-ten GPS chủ động và thụ động khác nhau với đầu nối SMA với Evaluation Box. Dòng điện tối đa cho Ăng-ten hoạt động là 30mA.
Giắc kết nối của Ăng-ten nằm trên mặt trước của Evaluation Box là loại giắc SMA cái để kết nối chủ động hoặc bị động với Ăng-ten. Điện áp một chiều ở đầu vào RF là 3.0 V và dòng điện được giới hạn ở 30 mA.
Một pin dự phòng được kết nối với mô-đun u-blox 6 để cung cấp năng lượng dự phòng. Điều này là cần thiết để lưu trữ thông tin quỹ đạo giữa các hoạt động và cho phép khởi động nhanh hơn. Pin là loại oxit bạc 1,55 V loại SR1154W (SR44), công suất 190 mA, điều này sẽ kéo dài khoảng 1 năm.
49 Trên bảng mặt trước của Evaluation Box có một đèn LED duy nhất cho biết hoạt động của tín hiệu Timepulse 1PPS.
Hộp đánh giá bao gồm một cổng RS232 để giao tiếp nối tiếp tương thích với các cổng nối tiếp máy tính. Kết nối bằng cáp nối tiếp RS232 thẳng với đầu nối đực và cái với cổng trên máy tính. Nếu đang sử dụng bộ cáp chuyển đổi USB sang RS232, bạn có thể kết nối trực tiếp với cổng bộ công cụ đánh giá RS232 này [15].
Cổng nối tiếp tương thích USB V2.0 được thiết kế để truyền dữ liệu và cấp nguồn.
Hình 3. 26 Mô tả các chân trong cổng giao tiếp RS232 của GPS
Nguồn: Sách hướng dẫn EVK-6 UserGuide
Sơ đồ bố trí trên GPS EVK-6A
Hình 3. 27 Sơ đồ bố trí các chi tiết linh kiện trên GPS
50
Sơ đồ khối thiết bị
Hình 3. 28 Sơ đồ các khối thiết bị của GPS
Nguồn: Sách hướng dẫn EVK-6 UserGuide
3.3.1.5. Module Bluetooth HC-06
Giới thiệu tổng quát về module Bluetooth HC-06
Module Bluetooth HC-06 giúp người dùng kết nối các thiết bị có hỗ trợ Bluetooth với VĐK ta có thể gửi hoặc nhận dữ liệu giữa hai thiết bị module sử dụng chuẩn giao tiếp UART giúp dễ dàng giao tiếp với VĐK tốc độ baud, tên module, mật khẩu được cài đặt bởi tập lệnh AT. Module Bluetooth HC 06 được cài đặt mặc định là slave nên chỉ có thể giao tiếp với các thiết bị Bluetooth ở dạng master.
Hình 3. 29 Module Bluetooth HC-06
51 Mạch thu phát Bluetooth HC-06 đã ra chân giúp dễ dàng kết nối để thực hiện các thí nghiệm, module được thiết kế để cho thể hoạt động từ mức điện áp 3.3 ~ 5VDC. Khi kết nối với máy tính, HC-06 được sử dụng như 1 cổng COM ảo, việc truyền nhận với COM ảo sẽ giống như truyền nhận dữ liệu trực tiếp với UART trên module.
Khi thay đổi Baudrate cho COM ảo không làm thay đổi baudrate của UART, baudrate UART chỉ có thể thay đổi bằng AT command trên module. Module HC-06 được setup mặc định là Slave không thể thay đổi được nên chỉ có thể giao tiếp với các thiết bị bluetooth ở dạng master như Smart phone, HC-05 master... hai module bluetooth được set là Slave không thể giao tiếp với nhau.
Thông số kỹ thuật:
Bảng 3. 9 Các thông số của module bluetooth HC-06
Điện áp hoạt động 3.3~5VDC
Điện áp giao tiếp TTL tương thích 3.3~5VDC
Baudrate UART 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
Dãi tần sóng hoạt động Bluetooth 2.4GHz
Chip lõi CSR mainstream Bluetooth, chuẩn giao
thức Bluetooth V2.0 Dòng điện khi hoạt động Dòng Pairing:30mA
Sauk khi pairing: 8mA
Kích thước 28x15x2.35mm
Nguồn: Datasheet HC-06
Các thiết lập mặc định Baud rate: 9600, N, 8, 1. Pairing code: 1234.
52
Sơ đồ nguyên lí module HC-06
Nguồn: Datasheet HC-06
3.3.1.6. Module SD card - Arduino Micro SD Shield Module SPI SD
Nguồn: Internet
Mini SD Card Module là một thiết bị hỗ trợ người dùng ghi nhận dữ liệu và lưu dưới định dạng nhất định. Board mạch dễ dàng giao tiếp như một thiết bị ngoại vi để có thể kết nối đến vi điều khiển. Qua chương trình bạn có thể đọc và viết trực tiếp lên SD Card. Có thể sử dụng cho phát nhạc MP3, các hệ thống vi điều khiển thông qua chuẩn giao tiếp SPI. Module (Bộ điều hợp thẻ MicroSD) đọc thẻ Micro SD để đọc và ghi thông qua hệ thống tệp và trình điều khiển giao diện SPI, hệ thống SCM có thể được hoàn thành trong một tệp thẻ MicroSD.
Các ngõ ra của module: 3.3V, CS, MISO, MOSI, CLK, GND. Kích thước: 18.5 x 17.5mm
3.3.1.7. Một số module khác
Hình 3. 30 Sơ đồ nguyên lí HC-06
53 Module chuyển đổi giao tiếp USB-UART CP2102
Mô tả tổng quát
Mạch chuyển USB UART CP2102 sử dụng chip CP2102 của hãng SILICON LABS được dùng để chuyển giao tiếp từ USB sang UART TTL và ngược lại. CP2102 có kích thước nhỏ gọn và yêu cầu rất ít thành phần bên ngoài để hoạt động được ngay. CP2102 không sử dụng thạch anh ngoài như các chip PL2303.
Mạch chuyển USB UART CP2102 có thể nhận trên tất cả các hệ điều hành Windows, Mac, Linux, Android... rất dễ sử dụng và giao tiếp. Dễ dàng kết nối để lập trình Arduino hoặc ESP-12 hoạt động ở mức 3.3V UART. LED nguồn sáng khi gắn vô máy tính và LED báo hiệu Tx / Rx, LED này sẽ sáng khi module nhận, gửi dữ liệu.