3.3.1. Các module trong hệ thống
3.3.1.1. Main Controller – Mạch điều khiển trung tâm
Hình 3. 11 Main controller
Mô tả tổng quát thiết bị
Thiết bị đóng vai trò mạch điều khiển trung tâm trong dự án của chúng em là board Main Controller như hình trên. Board sử dụng chip VĐK ATmega2560-16au (54 chân digital IO và 16 chân analog IO). Bo mạch với việc được trang bị 3 timer và 6 cổng interrupt hoàn toàn có thể giải quyết được những bài toán hóc búa về điều khiển nhiều loại thiết bị và xử lí song song nhiều luồng dữ liệu số cũng như dư liệu tương tự.
Board mạch được trang bị sẵn 3 cổng giao tiếp UART, một giao tiếp I2C, một giao tiếp SPI. Bên cạnh đó được tích hợp thêm module LoRA, wifi nhằm hỗ trợ các dự án cần giao tiếp dữ liệu từ xa…
ATmega2560-16Au là một vi điều khiển CMOS 8 bit công suất thấp dựa trên kiến trúc RISC nâng cao của AVR. Bằng cách thực hiện các câu lệnh mạnh mẽ trong một chu kỳ đồng hồ duy nhất, ATmega2560 đặt được thông lượng tiếp cận 1 MIPS trên mỗi MHz cho phép nhà thiết kế hệ thống tối ưu hóa năng lượng tiêu thụ so với tốc độ xử lí.
35 Thiết bị được sản xuất bằng cách sử dụng công nghệ bộ nhớ không lưu trữ mật độ Atmel. Bằng cách kết hợp một CPU RISC 8 bit với Flash-Programmable In-System trên chip đơn, Atmel ATmega2560 là một VĐK mạnh mẽ cung cấp một giải pháp rất linh hoạt và tiết kiệm chi phí cho nhiều ứng dụng điều khiển nhúng [12].
Thông số kỹ thuật của chip ATmega2560-16Au Bảng 3. 1 Thông số kỹ thuật ATmega2560-16au
Nhà cung cấp Microchip Technology
Độ phân giải ADC 10 Bit
Độ phân giải DAC N/A
Độ rộng bus dữ liệu 8 Bit
Lõi thiết bị AVR
Kích thước 14x14x1mm
Xung nhịp đồng hồ tối đa 16MHz
Tần suất CPU tối đa 16MHz
Bộ nhớ mở rộng tối đa 64KB Điện áp hoạt động tối đa 5.5V
Nhiệt độ hoạt động -40 to 85 °C Kích thước bộ nhớ chương trình 256KB
Bộ nhớ RAM 8KB
36 Sơ đồ chân chip ATmega2560-16au trên board mạch
Hình 3. 12 Sơ đồ chân chip ATmega2560-16au trên board main controller
Nguồn: Sơ đồ nguyên lí mạch main controller
Vị trí các cổng giao tiếp và nguồn được lấy trên bo mạch
37 Do các cổng giao tiếp trên board mạch chưa được đưa ra giắc kết nối, nhóm chúng em đã xác đình các vị trí các cổng giao tiếp trên board mạch như hình, cụ thể gồm 2 cổng giao tiếp UART để giao tiếp với thiết bị khác, 1 cổng UART để giao tiếp với chương trình máy tính, 1 cổng giao tiếp I2C, một nguồn cung cấp 12V.
3.3.1.2. Module cảm biến
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