QUAY LẠI TÀI LIỆU KỸ THUẬT
Robotics•12 phút•28/09/2026

T-Rax: Hướng dẫn lắp ráp robot, đấu nối CAN-Bus và hiệu chỉnh PID encoder

Biên soạn bởi: Robotics Engineer CHOTDIY
TỔNG QUAN TÀI LIỆU

Hướng dẫn chi tiết lắp ráp bo mạch T-Rax vào khung robot: Đấu nối 4 động cơ DC, kết nối encoder xung pha A/B, cấu hình CAN-Bus với Jetson Nano/Raspberry Pi và hiệu chỉnh tham số PID cho vòng kín tốc độ.

1. Cơ sở lý thuyết và Nguyên lý hoạt động

Trong các hệ thống nhúng thời gian thực, tính ổn định và khả năng tái lập tín hiệu phụ thuộc trực tiếp vào cách cấu hình ngoại vi phần cứng. Thay vì sử dụng phương pháp bit-banging hoặc ngắt phần mềm (vốn dễ bị trễ do các task ưu tiên cao hơn của hệ điều hành), chúng ta sử dụng ngoại vi chuyên dụng như RMT (Remote Control) hoặc TWAI (CAN-Bus) tích hợp sẵn trong silicon của ESP32.

esp_idf_rmt_config.cESP-IDF v5.5 Native
#include "driver/rmt_rx.h"
#include "esp_log.h"

#define IR_RX_GPIO_NUM      5
#define IR_RESOLUTION_HZ    1000000 // 1MHz resolution (1 tick = 1us)

rmt_channel_handle_t rx_channel = NULL;
rmt_rx_channel_config_t rx_config = {
    .clk_src = RMT_CLK_SRC_DEFAULT,
    .resolution_hz = IR_RESOLUTION_HZ,
    .mem_block_symbols = 64, // 64 words hardware ringbuffer
    .gpio_num = IR_RX_GPIO_NUM,
};

ESP_ERROR_CHECK(rmt_new_rx_channel(&rx_config, &rx_channel));
ESP_LOGI("CHOTDIY_IR", "RMT Rx Channel initialized with 1us resolution.");

2. Kiểm tra tính toàn vẹn và Phục hồi lỗi

Trước khi lưu trữ bất kỳ dữ liệu cấu hình hoặc lệnh IR nào vào bộ nhớ không bay hơi (NVS), hệ thống luôn tính toán mã kiểm tra CRC-32. Nếu phát hiện sai lệch dữ liệu do mất điện đột ngột trong chu kỳ ghi Flash, hệ thống sẽ tự động chuyển về cấu hình an toàn mặc định (Fail-safe State).

THỬ NGHIỆM TRỰC TIẾP TRÊN PHẦN CỨNG?
Cắm thiết bị NexusIR S3 vào máy tính và nạp ngay firmware mẫu.
MỞ WEB FLASHER