Trung cấp 90-120 phút practiceMiễn phí

Chuẩn bị kit, lắp phần cứng và kiểm tra trước khi học

Bài 1 trong khóa Robot Thế hệ 2 — Cảm nhận môi trường và kết nối IoT

Chuẩn bị kit, lắp phần cứng và kiểm tra trước khi học

C04 KIT 00 - Chuẩn bị kit, lắp phần cứng và kiểm tra trước khi học

1. Linh kiện cần chuẩn bị

  • 1 ESP32-S3 DevKit.
  • 1 robot base Gen 1 có vị trí gắn cảm biến phía trên thân robot.
  • 1 cảm biến SHT31 I2C, 1 LDR và điện trở 10 kOhm, 1 module MQ-135 analog.
  • 1 OLED/TFT I2C hoặc SPI dùng cho các bài sau, 1 buzzer, 1 LED trạng thái.
  • 1 module đo pin hoặc mạch chia áp đo pin dùng ở các bài sau.
  • Breadboard/shield nối dây, dây jumper, cáp USB data, pin/nguồn ổn định.
  • Bảng ghi dữ liệu môi trường: thời gian, nhiệt độ, độ ẩm, ánh sáng, khí raw.

Nguyên tắc của Module 0: nếu phần code hoặc pin map nhắc tới linh kiện nào, linh kiện đó phải có trong danh sách trên. Bài này không yêu cầu đọc bài lắp ráp bên ngoài; mọi bước chuẩn bị tối thiểu nằm ngay trong bài.

2. Sau bài này bạn có gì?

Bạn sẽ có một bộ phần cứng đã sẵn sàng cho khóa Robot Thế hệ 2 — Cảm nhận môi trường và kết nối IoT:

  • Kit đã được kiểm kê đủ linh kiện quan trọng.
  • Nguồn, dây, board điều khiển và module chính đã được kiểm tra riêng.
  • Robot hoặc bàn thực hành đã được lắp đủ để học bài 1 mà không bị vướng lỗi cơ bản.
  • Serial Monitor in được log kiểm tra phần cứng.
  • Nhóm có ảnh, video ngắn hoặc bảng kiểm chứng minh phần cứng đã sẵn sàng.

Kết quả cuối bài: Kit đã được lắp, kiểm tra nguồn, upload code bring-up và có log Serial chứng minh phần cứng sẵn sàng.

3. Quy tắc an toàn trước khi lắp

  • Tắt nguồn trước khi cắm, rút hoặc đổi dây.
  • Không để dây nguồn đỏ/đen chạm nhau.
  • Không cấp motor trực tiếp từ chân GPIO hoặc chân digital của board.
  • Luôn nối GND chung giữa board điều khiển, driver, cảm biến và nguồn phụ.
  • Kiểm tra điện áp logic trước: Arduino Uno thường dùng 5V, ESP32/ESP32-S3 dùng 3.3V.
  • Khi test motor, kê robot lên để bánh xe không chạm mặt bàn.
  • Nếu robot chạy bất ngờ, tắt nguồn motor trước rồi mới sửa code hoặc dây.

4. Nhận diện linh kiện

Nhóm linh kiệnCách nhận diệnVai tròLỗi hay gặp
Board điều khiểnCó cổng USB và dãy chân GPIO/digital/analogChạy code và đọc cảm biếnDùng nhầm cáp chỉ sạc, chọn sai board/port
Nguồn/pinHộp pin, pack lithium hoặc nguồn USBCấp năng lượng cho logic và motorĐảo cực, pin yếu, thiếu công tắc
Driver/actuatorModule có chân IN/PWM/VM/GND hoặc cụm motor/servoĐiều khiển chuyển độngThiếu GND chung, motor quay ngược
Cảm biến/module chínhModule tạo dữ liệu cho khóa họcTạo dữ liệu đầu vào thậtCắm sai VCC, sai SDA/SCL hoặc sai chân analog
Dây và gá lắpJumper, ốc, trụ đồng, băng dính/cố định dâyLàm hệ thống chắc và dễ debugDây chạm bánh xe, dây lỏng khi robot chạy

5. Sơ đồ khối phần cứng

Nguồn logic/pin
  -> Board điều khiển
       -> Serial Monitor để xem log
       -> LED/buzzer hoặc tín hiệu trạng thái
       -> Cảm biến/module chính của khóa
       -> Driver/motor/actuator nếu khóa có robot di chuyển
Nguồn motor/actuator
  -> Driver hoặc cụm chấp hành
GND chung
  -> Nối tất cả khối lại với nhau

6. Pin map đề xuất

Chức năngChân đề xuấtĐiện áp/tín hiệuGhi chú kiểm tra
LED trạng tháiGPIO2 hoặc D13Digital outputNháy để biết code đang chạy
Buzzer hoặc tín hiệu lỗiGPIO15 hoặc chân digital trốngDigital outputChỉ dùng dòng nhỏ hoặc qua transistor nếu cần
Motor tráiPWM/IN1/IN2 theo kitDriver motorTest khi robot được kê bánh
Motor phảiPWM/IN1/IN2 theo kitDriver motorĐổi chiều trong code nếu bánh quay ngược
Cảm biến analogADC/A0-A5 hoặc GPIO analogAnalog inputIn raw data trước khi đặt ngưỡng
Cảm biến I2C/camera/micSDA/SCL hoặc chân module riêng3.3V/5V tùy moduleKhông đổi dây khi đang cấp nguồn

Nếu kit của bạn dùng board phiên bản khác, giữ nguyên tinh thần: một chân có một vai trò rõ ràng, ghi lại pin map thật của nhóm trước khi upload code.

7. Các bước lắp ráp từ con số không

  1. Dọn bàn lắp: chỉ để đúng linh kiện của bài, tua vít, dây USB data và pin đã sạc.
  2. Phân loại linh kiện theo nhóm: nguồn, board, driver, cảm biến/module chính, dây, cơ khí.
  3. Lắp phần cơ khí trước: chassis, gá board, gá cảm biến, bánh xe hoặc cụm module cần cố định.
  4. Gắn board điều khiển ở vị trí dễ cắm USB và dễ nhìn LED trạng thái.
  5. Nối nguồn logic, chưa cấp nguồn motor/actuator vội.
  6. Nối GND chung giữa các module cần giao tiếp.
  7. Gắn cảm biến hoặc module chính theo pin map.
  8. Cố định dây để không chạm bánh xe, cánh tay gắp, cụm servo hoặc cạnh sắc.
  9. Kiểm tra bằng mắt: không có dây lỏng, không có dây nguồn chạm nhau, không có module bị cắm lệch hàng chân.
  10. Chụp một ảnh phần cứng trước khi cấp nguồn để sau này dễ so sánh khi debug.

8. Test từng phần trước khi chạy

Thứ tựTestCách làmDấu hiệu đạt
1Nguồn logicCắm USB hoặc bật nguồn logicBoard sáng LED nguồn, không nóng bất thường
2Upload codeChọn đúng board/port và upload sketch Module 0Serial Monitor có dòng hardware check ready
3LED trạng tháiQuan sát LED nháyLED đổi trạng thái theo chu kỳ
4Cảm biến/module chínhTác động nhẹ vào cảm biến hoặc moduleRaw/log thay đổi hợp lý
5Motor/actuator nếu cóKê robot, chạy tốc độ thấpChuyển động ngắn, dừng đúng, không kẹt dây
6Bằng chứngGhi bảng test hoặc quay video 15-30 giâyCó dữ liệu để giáo viên kiểm tra

9. Code kiểm tra phần cứng

Code này chỉ dùng để kiểm tra kit trước khi học bài 1. Chưa thêm thuật toán nâng cao, chưa chạy mission, chưa bật tốc độ cao.

/*
  HocLapTrinhRobot scaffold: C04 KIT 00 - Chuẩn bị kit, lắp phần cứng và kiểm tra trước khi học
  Board: ESP32-S3 DevKit + I2C/analog sensor pack
  Purpose: Module 0 environment robot bring-up
*/

#include <Wire.h>

const int PIN_SDA = 8;
const int PIN_SCL = 9;
const int LED_STATUS = 2;
const int BUZZER_PIN = 15;
const int ANALOG_A = 4;
const int ANALOG_B = 6;

void scanI2c() {
  int count = 0;
  for (uint8_t address = 1; address < 127; address++) {
    Wire.beginTransmission(address);
    if (Wire.endTransmission() == 0) {
      Serial.print("i2c_found=0x");
      if (address < 16) Serial.print("0");
      Serial.println(address, HEX);
      count++;
    }
  }
  Serial.print("i2c_count=");
  Serial.println(count);
}

void setup() {
  Serial.begin(115200);
  pinMode(LED_STATUS, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  Wire.begin(PIN_SDA, PIN_SCL);
  delay(200);
  Serial.println("C04 KIT 00 I2C and analog hardware check ready");
  scanI2c();
}

void loop() {
  int analogA = analogRead(ANALOG_A);
  int analogB = analogRead(ANALOG_B);
  digitalWrite(LED_STATUS, (millis() / 500) % 2);
  Serial.printf("kit_ok=YES analog_a=%d analog_b=%d\n", analogA, analogB);
  delay(1000);
}

10. Log Serial mong đợi

Log đúng thường có dạng:

hardware check ready
kit_ok=YES ...

Nếu thấy kit_ok=NO, log không xuất hiện, board reset liên tục hoặc module nóng bất thường, dừng lại và kiểm tra theo thứ tự: nguồn -> cáp USB -> board/port -> GND chung -> dây tín hiệu -> code -> cơ khí.

11. Bảng kiểm tra trước khi vào bài 1

Mục kiểm traĐạt?Ghi chú
Linh kiện đủ theo danh sách
Board upload được code Module 0
Serial Monitor đúng baud và có log
Nguồn logic ổn định
Nguồn motor/actuator an toàn nếu có
Cảm biến/module chính có tín hiệu
Dây được cố định, không chạm phần chuyển động
Có ảnh/video/bảng test phần cứng

12. Lỗi thường gặp và cách sửa

LỗiNguyên nhân hay gặpCách kiểm traCách sửa
Không upload được codeSai board, sai port hoặc cáp chỉ sạcĐổi cáp USB data, chọn lại portDùng cáp data, reset board nếu cần
Serial Monitor không có logSai baud hoặc code chưa chạyKiểm tra baud 115200Upload lại sketch Module 0
Board nóng nhanhChập nguồn hoặc cắm sai VCC/GNDTắt nguồn ngay, nhìn lại dâySửa dây trước khi cấp nguồn lại
Motor không quayThiếu nguồn motor hoặc GND chungĐo nguồn VM, kiểm tra STBY/enableNối GND chung, bật nguồn motor
Motor quay ngượcDây motor hoặc logic chiều đảoTest từng motor riêngĐổi dây motor hoặc đổi chiều trong code
Cảm biến không đổi giá trịSai chân, sai nguồn hoặc module hỏngIn raw data từng chânSửa pin map, thay dây, test module riêng
Dây bung khi robot chạyDây quá căng hoặc chưa cố địnhLắc nhẹ robot khi tắt nguồnCố định dây bằng dây rút/băng dính

13. Thử thách nhỏ

Tạo một video 30 giây gồm 3 cảnh: phần cứng đã lắp, Serial Monitor có log, và một test nhỏ cho LED/cảm biến/motor/module chính. Video không cần đẹp; điều quan trọng là chứng minh kit đã sẵn sàng học bài 1.

14. Checklist hoàn thành

  • Bạn có thể chỉ ra từng linh kiện chính và vai trò của nó.
  • Bạn có pin map thật của nhóm.
  • Board upload được code Module 0.
  • Serial Monitor có log kiểm tra phần cứng.
  • Không có dây nguy hiểm hoặc module nóng bất thường.
  • Giáo viên hoặc bạn học có thể nhìn bảng test và xác nhận kit sẵn sàng.

15. Bài tiếp theo

Sau khi Module 0 đạt checklist, bạn chuyển sang G2 01. Bài tiếp theo sẽ bắt đầu dùng bộ phần cứng đã kiểm tra để học nội dung chính của khóa.