Babel-USB: Biến ESP32-S3 thành ổ USB chứa mọi tệp tin có thể tưởng tượng
Babel-USB là một dự án thú vị biến bảng phát triển ESP32-S3 thành một hệ thống tệp vô hạn, nơi chứa mọi tệp tin có thể tồn tại. Dựa trên ý tưởng của Thư viện Babel kỹ thuật số, dự án này cho phép người dùng tìm kiếm và khôi phục bất kỳ dữ liệu nào từ một thiết bị phần cứng nhỏ gọn.

Babel-USB: Biến ESP32-S3 thành ổ USB chứa mọi tệp tin có thể tưởng tượng
Babel-USB là một dự án mã nguồn mở độc đáo, biến bảng phát triển ESP32-S3 thành một hệ thống tệp vô hạn lấy cảm hứng từ Thư viện Babel kỹ thuật số. Về mặt lý thuyết, dự án này cho phép truy cập mọi tệp tin có thể tồn tại thông qua việc tính toán thuật toán thay vì lưu trữ vật lý thực tế.
Giới thiệu về dự án
Dự án này áp dụng khái niệm "Thư viện Babel" vào thế giới kỹ thuật số, nơi mọi sự kết hợp ký tự đều có thể tạo ra một văn bản hoặc tệp tin. Thay vì lưu trữ dữ liệu theo cách truyền thống, Babel-USB sử dụng sức mạnh xử lý của ESP32-S3 để tạo ra hệ thống tệp "vô hạn" này.
Yêu cầu phần cứng
Để thực hiện dự án, bạn cần chuẩn bị những thiết bị sau:
- Một bảng phát triển ESP32-S3: Tác giả khuyến nghị chọn loại có hình dạng giống như chiếc USB để tăng tính thực tế và gây ấn tượng. Đây là phiên bản đã được kiểm thử kỹ lưỡng nhờ hỗ trợ USB phần cứng. Các phiên bản khác như ESP32-S2 có thể hoạt động nhưng không được đảm bảo.
Hướng dẫn cài đặt
Quá trình cài đặt yêu cầu người dùng có kiến thức cơ bản về lập trình nhúng và sử dụng dòng lệnh:
- Cài đặt Visual Studio Code và thiết lập PlatformIO.
- Clone repository từ GitHub (bao gồm cả các submodule).
- Mở dự án trong VS Code và đợi quá trình thiết lập hoàn tất.
- Giữ nút "BOOT" và cắm vi điều khiển vào máy tính.
- Nhấn biểu tượng mũi tên trong VS Code để biên dịch và nạp (flash) dự án. Sau khi hoàn tất, hãy ngắt kết nối và kết nối lại thiết bị.
Cách sử dụng và tìm kiếm tệp
Sau khi nạp firmware, thiết bị sẽ xuất hiện trên máy tính như một ổ USB sử dụng giao thức MTP (Media Transfer Protocol). Bạn có thể duyệt qua hệ thống tệp, tuy nhiên hầu hết các chương trình sẽ yêu cầu bạn sao chép tệp tin ra ổ cứng cục bộ trước khi có thể đọc được.
Để tìm một tệp cụ thể, dự án cung cấp một công cụ hỗ trợ:
- Cài đặt Bun (một runtime JavaScript).
- Điều hướng đến thư mục dự án và chạy lệnh
bun run file-to-path.js <đường_dẫn_tệp>. - Công cụ này sẽ trả về đường dẫn đến tệp đó trong hệ thống Babel-USB. Lưu ý rằng việc tạo đường dẫn cho các tệp lớn hơn vài trăm byte sẽ tốn khá nhiều thời gian xử lý.
Cuối cùng, bạn chỉ cần dán đường dẫn nhận được vào trình duyệt tệp tại thư mục disk/, sao chép tệp ra ngoài và xác minh rằng đó chính là tệp bạn cần.
Ghi nhận
Phần cứng của dự án được xây dựng dựa trên công việc của RigoLigoRLC về esp32s3-tusb-mtp và bản fork của họ cho espressif-tinyusb-component.
