Skip to main content

Chuẩn bị


  • Linh kiện cần thiết
  • ESP32-C3 SuperMini (ESP32-C3 SuperMini datasheet.pdf). Ban đầu linh kiện này được sử dụng do nhỏ gọnđủ mạnh để có thể nhét vào trong khung in 3D.
  • Module thẻ nhớ TF V474 và thẻ nhớ MicroSD 2GB. Dùng để lưu trữ dữ liệu vì bộ nhớ trong của ESP32 C3 là rất nhỏ (4MB).
  • Module khuếch đại MAX98357A loa 4ohm 3W. Chắc chắn là dùng để phát âm thanh rồi. Nhưng cần dùng MAX98357A vì tín hiệu điện đầu ra của ESP32 là rất nhỏ không đủ để phát âm thanh qua loa.
  • Pin 3.7v và mạch sạc HW-373. Chắc chắn là để cấp nguồn chứ còn làm gì nữa.
  • Cảm biến chạm TTP223. Để người dùng có thể tương tác với robot (pet mà :)))))
  • Màn hình TFT 1.3in 240*240 IC ST7789VW. Để hiển thị biểu cảm của robot. Ban đầu sử dụng màn hình OLED đơn sắc 0.96in nhưng gặp 2 vấn đề:
    • Giao tiếp I2C tốc độ chậm hiển thị hình ảnh không được mượt.
    • Màn hình đơn sắc hiển thị hình ảnh không có chi tiết, xấu.

Phần mềm cần thiết

  • VSCode và plugin PlatformIO. Chắc chắn là dùng để lập trình rồi.
    • VSCode được sử dụng do mình đã quen dùng từ trước
    • Mạnh hơn Ardruino IDE. Có gợi ý code...
    • Nhẹ hơn Clion nhưng vẫn đầy đủ tính năng cần thiết

Một vài kiến thức khác với ESP32

Giao tiếp với ESP32

Tiêu chí

I2C (Inter-Integrated Circuit)

SPI (Serial Peripheral Interface)

UART (Universal Asynchronous Receiver/Transmitter)

Số dây cần

2 (SDA, SCL)

4+ (SCK, MOSI, MISO, CS/SS)

2 (TX/RX)

Kiểu giao tiếp

Đồng bộ (có clock)

Đồng bộ (có clock)

Không đồng bộ (không cần clock)

Số thiết bị

+++ (thiết bị có địa chỉ riêng)

+++ (mỗi thiết bị cần một dây CS riêng)

1 master vs 1 slave

Tốc độ

Thấp (100kHz - vài MHz)

Rất cao (vài MHz đến vài chục MHz)

Thấp (9.6kbps - vài Mbps)

Độ phức tạp

Ít dây => dễ nối

Phức tạp, tốn chân GPIO

Ít dây => dễ nối

Ưu điểm

Tiết kiệm chân
Dễ thêm thiết bị

Tốc độ cao
Truyền được dữ liệu lớn

Đơn giản

Nhược điểm

Tốc độ hạn chế
Dễ xung đột

Thiết kế phức tạp
Tốn chân

Chỉ có thể kết nối 1 - 1

Ứng dụng

Cảm biến, màn hình OLED nhỏ....

Màn hình TFT, thẻ nhớ,...

Giao tiếp với PC, GPS, GSM...

Các chân trên ESP32

Trên ESP32 có nhiều chân sẽ được dùng chung với nhiều thiết bị khác nhau. Nên cân nhắc để hàn chân sao cho hợp lý.

Dùng chung cho tất cả các module

Tất cả các module đều cần sử dụng đến nguồn (có thể trên mạch ESP32 hoặc nguồn cấp ngoài). Cần cân nhắc để nối chung hoặc chọn dây nguồn phù hợp.

  • 5V
  • 3.3V
  • GND
Giao tiếp

Các chân giao tiếp này nằm chung với các chân GPIO có đánh số. Cần check datasheet để biết chính xác nó nằm ở đâu

  • I2C (SDA, SCL)
  • SPI (SCK. MOSI, MISO, CS/SS)
  • UART (RX/TX)