1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO NHẬP MÔN NGÀNH ĐIỆN Đề tài Kết nối Arduinovới thiết bị bên ngoài module VL53L5CX

20 18 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kết nối Arduino với thiết bị bên ngoài: module VL53L5CX
Tác giả Trần Tấn Dương, Nguyễn Tiến Dũng, Nguyễn Tuấn Dương, Lại Nguyễn Đức Giang
Người hướng dẫn Giảng Viên Hướng Dẫn Chu Đức Việt
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Điện
Thể loại Báo cáo nhập môn ngành Điện
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 20
Dung lượng 546,26 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tính năng: • Cảm biến đo khoảng cách đa vùng nhanh và chính xác: - Đầu ra đa vùng khác nhau với các vùng riêng biệt 4x4 hoặc 8x8.. Phát hiện khoảng cách đa vùng và đa đối tượng cho phép

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN

***

BÁO CÁO NHẬP MÔN NGÀNH ĐIỆN

Đề tài: Kết nối Arduino với thiết bị bên ngoài : module VL53L5CX

GVHD: Chu Đức Việt

Nhóm : 2

SVTH: - Trần Tấn Dương 20202741.

- Nguyễn Tiến Dũng 20202786

- Nguyễn Tuấn Dương 20202740

- Lại Nguyễn Đức Giang 20202742

Hà Nội : tháng 2 năm 2022

Trang 2

MỤC LỤC

I GIỚI THIỆU CHUNG 3

1 Tính năng: 3

2 Ứng dụng: 4

3 Mô tả 4

II Thông số kĩ thuật 5

1 Thông số chung 5

2 Trường quan sát 5

3 Trường chiếu sáng 6

4 Sơ đồ khối hệ thống 7

5 Cổng kết nối thiết bị 7

III GIAO TIẾP VỚI MODULE VL53L5CX - SATEL VÀ ARDUINO 9

1 Kết nối module lv53l5cx-satel với arduino 9

2 Lập trình điều khiển module VL53L5CX – SATEL 10

Trang 3

I GIỚI THIỆU CHUNG

MODLUE VL53L5CX - SATEL

1 Tính năng:

• Cảm biến đo khoảng cách đa vùng nhanh và chính xác:

- Đầu ra đa vùng khác nhau với các vùng riêng biệt 4x4 hoặc 8x8

- Chế độ năng lượng thấp tự động với ngưỡng có thể lập trình ngắt để đánh thức máy chủ

- Lên đến 400 cm khác nhau.

- Phát hiện đa mục tiêu và đo khoảng cách trong mỗi khu vực.

- Khả năng tốc độ khung hình 60 Hz.

- Xử lý biểu đồ và bù theo thuật toán giảm thiểu hoặc loại bỏ tác động của nhiễu

xuyên âm kính che

- Chỉ báo chuyển động cho từng khu vực để hiển thị nếu các mục tiêu đã di

chuyển và chúng đã di chuyển như thế nào

• Mô-đun thu nhỏ được tích hợp đầy đủ với trường nhìn rộng (FoV):

- Bộ phát: bề mặt khoang dọc phát ra ánh sáng vô hình 940 nm phát ra tia laser

(VCSEL) và trình điều khiển tương tự tích hợp

- FoV vuông chéo 63 ° sử dụng các phần tử quang học nhiễu xạ (DOE) trên cả

bộ phát và bộ thu

- Nhận mảng điốt tuyết lở photon đơn (SPAD).

- Bộ vi điều khiển công suất thấp chạy Firmware.

- Kích thước: 6.4 x 3.0 x 1.5 mm

• Tích hợp dễ dàng:

- Thành phần có thể chỉnh lại đơn lẻ.

Trang 4

- Các tùy chọn nguồn điện linh hoạt, hoạt động đơn lẻ 3,3 V hoặc 2,8 V hoặc kết

hợp giữa 3,3 V hoặc 2,8 V AVDD với 1,8 V IOVDD

- Tương thích với nhiều loại vật liệu kính che.

2 Ứng dụng:

• Sự hiểu biết về cảnh vật Phát hiện khoảng cách đa vùng và đa đối tượng cho phép lập bản đồ phòng 3D và phát hiện chướng ngại vật cho các ứng dụng robot

• FoV rộng và quét đa vùng cho phép quản lý nội dung (tải trong xe tải, xe tăng, thùng rác)

• Công nhận cử chỉ

• Kiểm soát mức chất lỏng

• Chỉnh sửa keystone cho máy chiếu video

• Tự động lấy nét hỗ trợ bằng laser (LAF) Nâng cao tốc độ và độ mạnh của hệ thống

AF của máy ảnh, đặc biệt là trong các cảnh khó ánh sáng yếu hoặc độ tương phản thấp

• Tăng cường thực tế ảo / thực tế ảo (AR / VR) Máy ảnh kép lập thể và hỗ trợ độ sâu 3D nhờ đo khoảng cách đa vùng

• Tòa nhà thông minh và hệ thống chiếu sáng thông minh (phát hiện người dùng để đánh thức thiết bị)

• IoT (phát hiện người dùng và đối tượng)

• Theo dõi tiêu điểm video Phạm vi 60 Hz cho phép tối ưu hóa thuật toán lấy nét liên tục

3 Mô tả

VL53L5CX là cảm biến hiện đại, Time-of-Flight (ToF), cảm biến đa vùng nâng cao dòng sản phẩm ST FlightSense Nằm trong một gói nhỏ gọn có thể chỉnh lại, nó tích hợp một mảng SPAD, bộ lọc hồng ngoại vật lý và các phần tử quang học nhiễu xạ (DOE) để đạt được hiệu suất khác nhau tốt nhất trong các điều kiện ánh sáng xung quanh khác nhau với nhiều loại vật liệu kính che phủ.

Việc sử dụng DOE phía trên bề mặt khoang thẳng đứng phát ra tia laser (VCSEL) cho phép chiếu một FoV vuông lên hiện trường Sự phản xạ của ánh sáng này được thấu kính thu hội tụ vào một mảng SPAD.

Không giống như các cảm biến IR thông thường, VL53L5CX sử dụng công nghệ ToF trực tiếp thế hệ mới nhất của ST cho phép đo khoảng cách tuyệt đối bất kể màu sắc và độ phản xạ mục tiêu Nó cung cấp phạm vi chính xác lên đến 400 cm và có

Trang 5

thể hoạt động ở tốc độ nhanh (60 Hz), khiến nó trở thành cảm biến ToF thu nhỏ, đa vùng, nhanh nhất trên thị trường.

Có thể đo khoảng cách đa vùng lên đến 8x8 vùng với FoV chéo 63 ° rộng có thể được giảm bớt bằng phần mềm

Nhờ các thuật toán được cấp bằng sáng chế ST Histogram, VL53L5CX có thể phát hiện các đối tượng khác nhau trong FoV Biểu đồ cũng cung cấp khả năng miễn dịch để che phủ nhiễu xuyên âm của thủy tinh ngoài 60 cm.

II Thông số kĩ thuật

1 Thông số chung

Bảng 1 Các thông số vl53l5cx

2 Trường quan sát

Rx (hoặc bộ cảm biến) vùng loại trừ bao gồm tất cả các mô-đun dung sai lắp ráp và được sử dụng để xác định kích thước cửa sổ đo Cửa sổ đo phải bằng hoặc rộng hơn khu vực loại trừ

Khu vực phát hiện đại diện cho việc áp dụng của hệ thống FoV mà mục tiêu đc phát hiện, và khoảng cách đo được nó được xác định bởi ống kính Rx hoạc khẩu độ Rx, và hẹp hơn vùng loại trừ

Hình 1 Mô tả hệ thống FoV và vùng loại trừ (ko theo tỉ lệ)

Kích cỡ 6.4 x 3.0 x 1.5 mm Phạm vi 2 to 400 cm mỗi vùng

Điện áp hoạt động IOVDD: 1.8 hoặc 2.8 V hoặc 3.3 V

AVDD: 2.8 V hoặc 3.3 V Nhiệt độ hoạt động -30 đến 85 °C Tần số mẫu Lên tới 60 Hz

Bộ phát hồng ngoại 940 nm

I2C bus I2C: 400 kHz to 1 MHz serial bus,

address: 0x52 Chế độ hoạt động Liên tục hoặc tự động

Trang 6

Bảng 2 góc FoV

Vùng phát hiện 45 o 45 o 63 o

Tổng vùng loại trừ 55.5 o 61 o 82 o

Note: vùng phát hiện phụ thuộc vào môi trường và cấu hình cảm biến cũng như khoảng cách

mục tiêu, độ phản xạ, mức độ ánh sáng xung quanh, độ phân giải cảm biến, bộ mài, chế độ khác nhau và thời gian tích hợp.

Note: vùng phát hiện Bảng 2 góc FoV được đo lường với mục tiêu vuông góc phản xạ 88%

trong FoV đầy đủ, nằm ở 1 m từ cảm biến, không có ánh sáng xung quanh (điều kiện tối), với độ phân giải 8x8 và bộ làm sắc nét 14% (giá trị mặc định), ở chế độ Liên tục

ở 15 Hz.

3 Trường chiếu sáng

Trường chiếu sáng VCSEL (FoI) được thể hiện trong hình dưới Công suất tín hiệu phát ra tương đối phụ thuộc vào góc Fol và tương ứng với:

• 50 ° x 50 ° xét chùm tia với 75 % tín hiệu tối đa

• 65 ° x 65 ° xét chùm tia với 10 % tín hiệu

Trang 7

Hình 2 VL53L5CX FoI

4 Sơ đồ khối hệ thống

Hình 3 sơ đồ khối VL53L5CX

5 Cổng kết nối thiết bị

Hình dưới đây cho thấy cổng kết nối của VL53L5CX

Trang 8

Hình 4 VL53L5CX pinout (góc nhìn từ dưới lên)

Bảng 3 Mô tả chân kết nối VL53L5CX

Số pin Tên tín hiệu Loại tín hiẹu Mô tả tín hiệu

A1 I2C_RST Digital input

Đặt lại chân I2C, kích hoạt ở trạng thái high Chuyển đổi chân này từ 0 sang 1, rồi trở lại 0 để đặt lại I2C Nối đất GND

qua trở 47 kΩ.

A2 RSVD4 Reserved Nối đất ground

A3 INT Digital input/output

(I/O)

Đầu ra gián đoạn, mặc định là opendrain output (tristate), cần trở 47 kΩ đến

IOVDD A4 IOVDD Power Nguồn 1.8 V, 2.8 V or 3.3 V cấp cho lõi kĩ

thuật số và nguồn I/O

A5 LPn Digital input

Kích hoạt comms Đặt chân này là logic 0

để vô hiệu hóa I2C comms khi thiết bị ở chế độ LP Đặt chán này là logic 1 để kích hoạt I2C comms ở chế độ LP Đặc biệt dùng khi cần thay đổi địa chỉ (adress) I2C trong hệ thống đa thiết bị Cần trở 47 kΩ

đến IOVDD.

A6 RSVD1 Reserved Nối đất (ground)

Trang 9

A7 RSVD2 Reserved Nối đất (ground)

B1 AVDD Power Nguồn 2.8 V or 3.3 V analog nguồn

VCSEL B4 THERMALPAD Ground Nối đất ground để dẫn tản nhiệt tốt hơn B7 AVDD Power Nguồn 2.8 V or 3.3 V analog và VCSEL

C2 RSVD6 Reserved

Chân đa nhiệm I/O, mặc định là opendrain output (tristate), cần trở 47 kΩ

đến IOVDD C3 SDA Digital I/O Data (hai chiều), cần trở 2.2 kΩ đến

IOVDD

C4 SCL Digital input Đồng hồ (đầu vào input), cần trở 2.2 kΩ

đến IOVDD C5 RSVD5 Reserved Không kết nối

C6 RSVD3 Reserved Nối đất (ground)

Trang 10

Note: chân THERMALPAD phải được kết nối với ground

Note: tất cả các tín hiệu kỹ thuật phải được chuyển đến mức IOVDD

Note: bật chân I2C_RST chỉ đặt lại giao tiếp cảm biến I2C không thiết lập lại bản thân cảm

biến đó.

III GIAO TIẾP VỚI MODULE VL53L5CX - SATEL VÀ ARDUINO

1 Kết nối module lv53l5cx-satel với arduino

Trang 11

Hình 5 Sơ đồ kết nối chân vl53l5cx-satel và arduino

VL53L5C

X-SATEL Pin No Pin Name MCU Pin MCU Pin Pin Name Pin No.

VL53L5C X-SATEL

Downloaded by tran quang (quangsuphamhoak35@gmail.com)

Trang 12

- - - - PC5 D15 10 SCL

Bảng 4 Sơ đồ chân kết nối module vl53l5cx-satel và arduino tương ứng

2 Lập trình điều khiển module VL53L5CX – SATEL

Dưới đây là một vài ví dụ về code trong lập trình điều khiển module VL53CX-SATEL:

- Ví dụ 1: Đọc 64 giá trị khoảng cách cùng lúc.

#include <Wire.h>

#include <SparkFun_VL53L5CX_Library.h>

//http://librarymanager/All#SparkFun_VL53L5CX

Downloaded by tran quang (quangsuphamhoak35@gmail.com)

Trang 13

SparkFun_VL53L5CX myImager;

VL53L5CX_ResultsData measurementData; /* Result data class structure, 1356 byes

of RAM */

int imageResolution = 0; /*Used to pretty print output*/

int imageWidth = 0; /*Used to pretty print output*/

void setup(){

Serial.begin(115200);

delay(1000);

Serial.println("SparkFun VL53L5CX Imager Example");

Wire.begin(); /*This resets to 100kHz I2C*/

Serial.println("Initializing sensor board This can take up to 10s Please wait.");

if (myImager.begin() == false){

Serial.println(F("Sensor not found - check your wiring Freezing")); while (1) ;

}

myImager.setResolution(8*8); /*Enable all 64 pads*/

imageResolution = myImager.getResolution(); /*Query sensor for current

resolution - either 4x4 or 8x8*/ imageWidth = sqrt(imageResolution); /*Calculate printing width*/

Downloaded by tran quang (quangsuphamhoak35@gmail.com)

Trang 14

myImager.startRanging();

}

void loop(){

/*Poll sensor for new data*/

if (myImager.isDataReady() == true){

if (myImager.getRangingData(&measurementData)) /*Read distance data

into array*/

{

/*The ST library returns the data transposed from zone mapping shown in datasheet*/

/*Pretty-print data with increasing y, decreasing x to reflect reality*/ for (int y = 0 ; y <= imageWidth * (imageWidth - 1) ; y +=

imageWidth){

for (int x = imageWidth - 1 ; x >= 0 ; x ){

Serial.print("\t");

Serial.print(measurementData.distance_mm[x + y]);

} Serial.println();

} Serial.println();

}

delay(5); /*Small delay between polling*/

Downloaded by tran quang (quangsuphamhoak35@gmail.com)

Trang 15

- Ví dụ 2: Thiết lập bus I2C để giảm thiểu số lượng khoảng thời gian cần thiết để kích hoạt cảm biến.

#include <Wire.h>

#include <SparkFun_VL53L5CX_Library.h>

/*http://librarymanager/All#SparkFun_VL53L5CX*/

SparkFun_VL53L5CX myImager;

VL53L5CX_ResultsData measurementData; /*Result data class structure, 1356 byes

of RAM*/

int imageResolution = 0; /*Used to pretty print output*/

int imageWidth = 0; /*Used to pretty print output*/

void setup()

{

Serial.begin(115200);

delay(1000);

Serial.println("SparkFun VL53L5CX Imager Example");

Wire.begin(); /*This resets I2C bus to 100kHz*/

Wire.setClock(400000); /*Sensor has max I2C freq of 400kHz*/

/*Wire.setClock(1000000)*/; /*Run sensor out of spec*/

/*myImager.setWireMaxPacketSize(128); /*Increase default from 32 bytes to

128 - not supported on all platforms*/

Downloaded by tran quang (quangsuphamhoak35@gmail.com)

Trang 16

Serial.println("Initializing sensor board This can take up to 10s Please wait.");

/*Time how long it takes to transfer firmware to sensor*/

long startTime = millis();

bool startup = myImager.begin();

long stopTime = millis();

if (startup == false){

Serial.println(F("Sensor not found - check your wiring Freezing")); while (1) ;

}

Serial.print("Firmware transfer time: ");

float timeTaken = (stopTime - startTime) / 1000.0;

Serial.print(timeTaken, 3);

Serial.println("s");

myImager.setResolution(8*8); /*Enable all 64 pads*/

imageResolution = myImager.getResolution(); /*Query sensor for current

resolution - either 4x4 or 8x8*/ imageWidth = sqrt(imageResolution); /*Calculate printing width*/

myImager.startRanging();

}

Downloaded by tran quang (quangsuphamhoak35@gmail.com)

Trang 17

void loop(){

/*Poll sensor for new data*/

if (myImager.isDataReady() == true){

if (myImager.getRangingData(&measurementData)) /*Read distance data

into array*/

{

/*The ST library returns the data transposed from zone mapping shown

in datasheet*/

/*Pretty-print data with increasing y, decreasing x to reflect reality*/ for (int y = 0 ; y <= imageWidth * (imageWidth - 1) ; y +=

imageWidth){

for (int x = imageWidth - 1 ; x >= 0 ; x ){

Serial.print("\t");

Serial.println();

}

Serial.println();

}

}

delay(5); /*Small delay between polling*/

}

Downloaded by tran quang (quangsuphamhoak35@gmail.com)

Trang 18

- Ví dụ 3: Tăng tần số đầu ra.

#include <Wire.h>

#include <SparkFun_VL53L5CX_Library.h>

/*http://librarymanager/All#SparkFun_VL53L5CX*/

SparkFun_VL53L5CX myImager;

VL53L5CX_ResultsData measurementData; /* Result data class structure, 1356 byes

of RAM*/

int imageResolution = 0; /*Used to pretty print output*/

int imageWidth = 0; /*Used to pretty print output*/

void setup(){

Serial.println("SparkFun VL53L5CX Imager Example");

Wire.begin(); /*This resets I2C bus to 100kHz*/

Wire.setClock(400000); /*Sensor has max I2C freq of 400kHz*/

Serial.println("Initializing sensor board This can take up to 10s Please wait.");

if (myImager.begin() == false){

Serial.println(F("Sensor not found - check your wiring Freezing"));

while (1) ;

Downloaded by tran quang (quangsuphamhoak35@gmail.com)

Trang 19

myImager.setResolution(8 * 8); /*Enable all 64 pads*/

imageResolution = myImager.getResolution(); /*Query sensor for current

resolution - either 4x4 or 8x8*/ imageWidth = sqrt(imageResolution); /*Calculate printing width*/

/*Using 4x4, min frequency is 1Hz and max is 60Hz*/

/*Using 8x8, min frequency is 1Hz and max is 15Hz*/

if (response == true){

int frequency = myImager.getRangingFrequency();

if (frequency > 0){

Serial.print("Ranging frequency set to ");

Serial.print(frequency);

Serial.println(" Hz.");

else

Serial.println(F("Error recovering ranging frequency."));

Serial.println(F("Cannot set ranging frequency requested Freezing "));

while (1) ;

}

Downloaded by tran quang (quangsuphamhoak35@gmail.com)

Trang 20

void loop(){

/*Poll sensor for new data*/

if (myImager.isDataReady() == true){

if (myImager.getRangingData(&measurementData)) /*Read distance data

into array*/

{

/*The ST library returns the data transposed from zone mapping shown in datasheet*/

/*Pretty-print data with increasing y, decreasing x to reflect reality*/ for (int y = 0 ; y <= imageWidth * (imageWidth - 1) ; y +=

imageWidth){

for (int x = imageWidth - 1 ; x >= 0 ; x ){

Serial.print("\t");

Serial.print(measurementData.distance_mm[x + y]); }

Serial.println();

} Serial.println();

}

delay(5); /*Small delay between polling*/

}

Downloaded by tran quang (quangsuphamhoak35@gmail.com)

Ngày đăng: 09/12/2022, 08:36

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm