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 Starter — Tự tay lắp và lập trình robot đầu tiên

C02 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 chassis robot 2WD, 2 motor DC giảm tốc, 2 bánh xe và 1 bánh tự do/caster.
- 1 Arduino Uno R3 hoặc board tương thích.
- 1 driver TB6612FNG, breadboard hoặc shield nối dây.
- 1 hộp pin hoặc pack pin phù hợp, công tắc nguồn, dây nguồn.
- 1 cảm biến khoảng cách HC-SR04, 1 cụm cảm biến line cơ bản.
- Ốc, trụ đồng, tua vít nhỏ, dây rút hoặc băng dính cố định dây.
- Cáp USB data, máy tính có Arduino IDE hoặc Arduino CLI.
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 Starter — Tự tay lắp và lập trình robot đầu tiên:
- 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ện | Cách nhận diện | Vai trò | Lỗi hay gặp |
|---|---|---|---|
| Board điều khiển | Có cổng USB và dãy chân GPIO/digital/analog | Chạy code và đọc cảm biến | Dùng nhầm cáp chỉ sạc, chọn sai board/port |
| Nguồn/pin | Hộp pin, pack lithium hoặc nguồn USB | Cấp năng lượng cho logic và motor | Đảo cực, pin yếu, thiếu công tắc |
| Driver/actuator | Module có chân IN/PWM/VM/GND hoặc cụm motor/servo | Điều khiển chuyển động | Thiếu GND chung, motor quay ngược |
| Cảm biến/module chính | Module tạo dữ liệu cho khóa học | Tạo dữ liệu đầu vào thật | Cắm sai VCC, sai SDA/SCL hoặc sai chân analog |
| Dây và gá lắp | Jumper, ốc, trụ đồng, băng dính/cố định dây | Làm hệ thống chắc và dễ debug | Dâ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ăng | Chân đề xuất | Điện áp/tín hiệu | Ghi chú kiểm tra |
|---|---|---|---|
| LED trạng thái | GPIO2 hoặc D13 | Digital output | Nháy để biết code đang chạy |
| Buzzer hoặc tín hiệu lỗi | GPIO15 hoặc chân digital trống | Digital output | Chỉ dùng dòng nhỏ hoặc qua transistor nếu cần |
| Motor trái | PWM/IN1/IN2 theo kit | Driver motor | Test khi robot được kê bánh |
| Motor phải | PWM/IN1/IN2 theo kit | Driver motor | Đổi chiều trong code nếu bánh quay ngược |
| Cảm biến analog | ADC/A0-A5 hoặc GPIO analog | Analog input | In raw data trước khi đặt ngưỡng |
| Cảm biến I2C/camera/mic | SDA/SCL hoặc chân module riêng | 3.3V/5V tùy module | Khô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
- 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.
- 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í.
- 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.
- Gắn board điều khiển ở vị trí dễ cắm USB và dễ nhìn LED trạng thái.
- Nối nguồn logic, chưa cấp nguồn motor/actuator vội.
- Nối GND chung giữa các module cần giao tiếp.
- Gắn cảm biến hoặc module chính theo pin map.
- 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.
- 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.
- 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ự | Test | Cách làm | Dấu hiệu đạt |
|---|---|---|---|
| 1 | Nguồn logic | Cắm USB hoặc bật nguồn logic | Board sáng LED nguồn, không nóng bất thường |
| 2 | Upload code | Chọn đúng board/port và upload sketch Module 0 | Serial Monitor có dòng hardware check ready |
| 3 | LED trạng thái | Quan sát LED nháy | LED đổi trạng thái theo chu kỳ |
| 4 | Cảm biến/module chính | Tác động nhẹ vào cảm biến hoặc module | Raw/log thay đổi hợp lý |
| 5 | Motor/actuator nếu có | Kê robot, chạy tốc độ thấp | Chuyển động ngắn, dừng đúng, không kẹt dây |
| 6 | Bằng chứng | Ghi bảng test hoặc quay video 15-30 giây | Có 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: C02 KIT 00 - Chuẩn bị kit, lắp phần cứng và kiểm tra trước khi học
Board: Arduino Uno R3 + TB6612FNG + 2WD chassis
Purpose: Module 0 robot starter bring-up
*/
const int STBY = 4;
const int AIN1 = 7;
const int AIN2 = 8;
const int PWMA = 5;
const int BIN1 = 9;
const int BIN2 = 10;
const int PWMB = 6;
const int LED_STATUS = 13;
void setMotor(int in1, int in2, int pwm, int speed) {
speed = constrain(speed, -255, 255);
digitalWrite(in1, speed >= 0 ? HIGH : LOW);
digitalWrite(in2, speed >= 0 ? LOW : HIGH);
analogWrite(pwm, abs(speed));
}
void stopRobot() {
setMotor(AIN1, AIN2, PWMA, 0);
setMotor(BIN1, BIN2, PWMB, 0);
}
void setup() {
Serial.begin(115200);
pinMode(STBY, OUTPUT);
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWMA, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
pinMode(PWMB, OUTPUT);
pinMode(LED_STATUS, OUTPUT);
digitalWrite(STBY, HIGH);
stopRobot();
Serial.println("C02 KIT 00 2WD hardware check ready");
}
void loop() {
digitalWrite(LED_STATUS, HIGH);
Serial.println("test=LEFT_MOTOR speed=90");
setMotor(AIN1, AIN2, PWMA, 90);
setMotor(BIN1, BIN2, PWMB, 0);
delay(800);
stopRobot();
delay(400);
Serial.println("test=RIGHT_MOTOR speed=90");
setMotor(AIN1, AIN2, PWMA, 0);
setMotor(BIN1, BIN2, PWMB, 90);
delay(800);
stopRobot();
digitalWrite(LED_STATUS, LOW);
Serial.println("kit_ok=YES wheels_should_be_lifted");
delay(1600);
}
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ỗi | Nguyên nhân hay gặp | Cách kiểm tra | Cách sửa |
|---|---|---|---|
| Không upload được code | Sai board, sai port hoặc cáp chỉ sạc | Đổi cáp USB data, chọn lại port | Dùng cáp data, reset board nếu cần |
| Serial Monitor không có log | Sai baud hoặc code chưa chạy | Kiểm tra baud 115200 | Upload lại sketch Module 0 |
| Board nóng nhanh | Chập nguồn hoặc cắm sai VCC/GND | Tắt nguồn ngay, nhìn lại dây | Sửa dây trước khi cấp nguồn lại |
| Motor không quay | Thiếu nguồn motor hoặc GND chung | Đo nguồn VM, kiểm tra STBY/enable | Nối GND chung, bật nguồn motor |
| Motor quay ngược | Dây motor hoặc logic chiều đảo | Test 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ỏng | In raw data từng chân | Sửa pin map, thay dây, test module riêng |
| Dây bung khi robot chạy | Dây quá căng hoặc chưa cố định | Lắc nhẹ robot khi tắt nguồn | Cố đị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 RS 00. 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.