.5 với Raspberry Pi 4

Một phần của tài liệu Hệ thống giám sát tự động đường dây tải điện sử dụng uav và xử lý ảnh nhiệt (Trang 48 - 51)

Chức năng Lepton Pin Pi Pin

GND Pin 1 Pin 6

Power 3 – 5.5V Pin 2 Pin 4

I2C SDA Pin 5 Pin 3

I2C SCL Pin 8 Pin 5

SPI CS Pin 10 Pin 24

SPI CLK Pin 7 Pin 23

SPI MOSI Pin 9 Pin 19

SPI MISO Pin 12 Pin 21

VSYNC Pin 15 Pin 11

GND Pin 19 Pin 25

Sau khi đã thực hiện kết nối xong, ta thực hiện kích hoạt 2 giao tiếp SPI và I2C trên Raspberry Pi 4.

Tại giao diện màn hình chính của Raspberry Pi 4, chọn Menu > Preferences >

Raspberry Pi Configuration - Hình 3.7.

Hình 3.7: Mở giao diện cấu hình Raspberry Pi 4

Tại mục Interfaces, ta thực hiện kích hoạt các giao tiếp SPI, I2C bằng cách chọn

37

Hình 3.8: Kích hoạt giao tiếp SPI và I2C

Ngồi ra, ta kích hoạt thêm giao tiếp SSH để phục vụ kết đối điều khiển

Raspberry Pi 4 qua đường mạng từ máy tính cá nhân, giúp thuận tiện hơn cho

việc phát triển phần mềm.

Nhấn chọn OK và thực hiện khởi động lại Raspberry Pi 4 để hồn thành kích hoạt các giao tiếp - Hình 3.9.

Hình 3.9: Khởi động lại Raspberry Pi 4

Sau khi đã thực hiện thiết lập kết nối xong, dữ liệu thô từ camera sẽđược gửi đến Raspberry Pi 4 thông qua giao tiếp SPI, để điều khiển hay cấu hình các thơng số

cho camera ta thực hiện gửi dữ liệu qua giao tiếp I2C. Chi tiết về các hàm điều khiển qua I2C được mô tả trong tài liệu [19].

Dữ liệu thô của 1 khung hình camera 160 x 120 pixel được chia thành 4 Segment, mỗi Segment sẽ gồm 60 Packet (Hình 3.11), mỗi Packet có cấu trúc gói

tin như Hình 3.10.

ID CRC Payload

2 bytes 2 bytes 160 bytes

Hình 3.10: Cấu trúc một SPI Packet

Ta sẽ thực hiện đọc toàn bộ các Packet của bốn Segment trong một khung hình từ

camera để tiến hành tổng hợp dữ liệu và tạo ra một khung hình 160 x 120 pixel nhằm phục vụ cho việc tính tốn nhiệt độ và hiển thị hình ảnh.

38 Tái tạo ma trận dữ liệu 160 x 120

Hình 3.11: Cấu trúc dữ liệu một khung hình

Với mỗi Packet, phần đầu của gói tin sẽ bao gồm hai trường thơng tin là ID có

kích thước 2 bytes và CRC cũng có kích thước 2 bytes (Hình 3.10). Hai bytes

trường ID mã hóa cho số thứ tự Segment (1, 2, 3 hoặc 4) và số thứ tựPacket để

quyết định vị trí của Packet khi người lập trình tổng hợp dữ liệu và hình thành khung hình 160 x 120 pixel.

Mỗi khung hình 160 x 120 pixel thu được từ camera bao gồm 4 Segment, mỗi Segment gồm 60 Packet. Như vậy, tổng cộng có 240 Packet được sắp xếp lần

lượt từSegment 1 đến Segment 4 với mỗi hàng sẽ gồm 2 Packet như Hình 3.11.

Hình 3.12: Thơng tin được mà hóa ở phần đầu một Packet [18]

Hình 3.12 biểu diễn thơng tin được mã hóa ở phần đầu mỗi Packet với tổng cộng 32 bits. Bit đầu tiên ln ln có giá trị bằng khơng, ba bit tiếp theo được gọi là TTT bits, và theo sau là 12 bits biểu diễn số thứ tự Packet. Lưu ý rằng số thứ

Packet sẽđược đếm từ0 đến 59 cho một Segment và quay lại 0 khi đến Segment tiếp theo. Với tất cả Packet ngoại trừ Packet có số thứ tự 20 thì có thể bỏ qua

TTT bits. Cịn riêng đối với Packet có số thứ tự 20, TTT bits biểu diễn số thứ tự

của Segment (1, 2, 3 hoặc 4) đang được camera truyền đi. Trong một vài trường hợp, camera có thể truyền đi một Segment có số thứ tựlà khơng, điều này này có

nghĩa là Segment này khơng có ý nghĩa, người lập trình hồn tồn có thể bỏ qua Segment này. Theo sau 16 bits mã hóa cho số thứ tự Segment và số thứ tự Packet là 16 bits cho phần CRC, tuy nhiên trong đồ án này, phần tính tốn và kiểm tra

CRC này được bỏqua để giảm khối lượng tính tốn cho Raspberry Pi 4.

Theo quy ước của FLIR Lepton thì dữ liệu cho mỗi pixel là một số 2 bytes (16 bits) lưu giá trị nhiệt độởđơn vị Kelvin và được nhân lên 100 lần, do đó để hình

thành được một hàng 160 pixel ta cần lấy ra phần payload của 2 Packet với tổng cộng 320 bytes dữ liệu rồi ghép lại. Cứnhư vậy, từ 240 Packet cho 4 Segment ta

39 tổng hợp được 120 hàng và tạo được một ma trận dữ liệu 160 x 120 tương ứng với một khung hình.

Lưu ý: Tại những thời điểm camera khởi động và thời điểm nghỉ giữa các khung hình, camera vẫn sẽ truyền đi những Packet, nhưng những Packet này không mang thông tin cần đọc và được bỏ qua. Để cho người lập trình có thể nhận ra những Packet bỏ qua này, FLIR Lepton sẽ mã hóa 2 bytes đầu của các Packet này ở dạng xFxx (trong đó ‘x’ là những dữ liệu “don’t care”) (Hình 3.13).

Hình 3.13: Định dạng một Packet bỏ qua [18]

Đọc d liu cm biến DHT22

Hình 3.14: Cảm biến nhiệt độ, độ ẩm DHT22

Cảm biến nhiệt độ, độ ẩm DHT22 sử dụng giao tiếp 1-wire để giao tiếp với các thiết bịkhác. Để có thể giao tiếp được với DHT22, ta thực hiện kết nối cảm biến với Raspberry Pi 4 theo thứ tự chân như Bảng 3.5.

Một phần của tài liệu Hệ thống giám sát tự động đường dây tải điện sử dụng uav và xử lý ảnh nhiệt (Trang 48 - 51)

Tải bản đầy đủ (PDF)

(70 trang)