Bạn có muốn học cách chế tạo robot của riêng mình không? Có nhiều loại rô bốt khác nhau mà bạn có thể tự chế tạo. Hầu hết mọi người đều muốn thấy một con robot thực hiện công việc dễ dàng di chuyển từ điểm A đến điểm B. Bạn có thể chế tạo một con robot hoàn toàn từ các thành phần tương tự hoặc mua một bộ khởi động. Tự chế tạo rô bốt là một cách tuyệt vời để học lập trình điện tử và máy tính.
Bươc chân
Phần 1/5: Lắp ráp Robot
Bước 1. Lắp ráp các thành phần của bạn
Để xây dựng một robot cơ bản, bạn sẽ cần một vài thành phần đơn giản. Bạn có thể tìm thấy hầu hết hoặc tất cả các thành phần này tại cửa hàng sở thích đồ điện tử tại địa phương hoặc tại một số nhà bán lẻ trực tuyến. Một số bộ dụng cụ bao gồm tất cả các thành phần này. Robot này không yêu cầu bất kỳ mối hàn nào:
- Arduino Uno (hoặc vi điều khiển khác)
- 2 servo 360 độ
- 2 bánh xe phù hợp với servo
- 1 bánh xe miễn phí
- 1 bảng kiểm tra (bảng mạch bánh mì hoặc bảng dự án) chưa được hàn (tìm bảng kiểm tra có hai hàng dương và âm ở mỗi bên)
- 1 cảm biến khoảng cách (với cáp đầu nối bốn chân)
- 1 nút nhấn công tắc
- 1 điện trở 10kΩ
- 1 cáp USB A đến B
- 1 bộ tiêu đề có thể bẻ gãy
- 1 hộp đựng pin 6 x AA với ổ cắm điện 9V DC.
- 1 gói 22. cáp jumper hoặc cáp đơn
- Cách nhiệt qua lại (băng kép) hoặc súng bắn keo
Bước 2. Xoay ngăn chứa pin sao cho mặt sau phẳng của nó hướng lên trên
Bạn sẽ chế tạo cơ thể robot bằng cách sử dụng ngăn chứa pin làm cơ sở.
Bước 3. Sắp xếp hai servo đối mặt với cùng một hướng ở cuối khoang chứa pin
Đầu này là cuối mà cáp ra khỏi pin. Servo phải chạm vào đáy và cơ chế xoay của mỗi servo phải hướng ra ngoài từ các cạnh của ngăn chứa pin. Điều quan trọng là các servo này phải được bố trí chính xác để các bánh xe thẳng hàng. Cáp cho servo phải đi ra khỏi mặt sau của ngăn chứa pin.
Bước 4. Dán các servo bằng keo cách nhiệt hoặc keo của bạn
Đảm bảo rằng servo được gắn chặt vào ngăn chứa pin. Mặt sau của servo phải thẳng hàng với mặt sau của ngăn chứa pin.
Bây giờ, các Servos sẽ chiếm một nửa không gian ở phía sau khoang chứa pin
Bước 5. Dán bảng kiểm tra vuông góc với không gian còn lại trong ngăn chứa pin
Bảng kiểm tra này sẽ hơi treo qua mặt trước của ngăn chứa pin và sẽ mở rộng ra cả hai bên. Đảm bảo rằng bảng kiểm tra được chặt chẽ trước khi tiếp tục. Hàng “A” phải gần với servo nhất.
Bước 6. Gắn vi điều khiển Arduino vào đầu servo
Nếu bạn gắn servo đúng cách, phải có một phần phẳng của hai servo chạm vào nhau. Dán bảng Arduino vào vị trí phẳng này sao cho các đầu nối nguồn USB và Arduino hướng xuống dưới (cách xa bảng kiểm tra). Mặt trước của Arduino sẽ chồng lên bảng kiểm tra.
Bước 7. Cài đặt các bánh xe trên Servos
Nhấn chặt các bánh xe vào cơ cấu servo quay. Điều này có thể đòi hỏi một lực đáng kể vì các bánh xe được thiết kế để có các lỗ khớp chính xác với hình dạng của đầu servo.
Bước 8. Lắp bánh xe tự do vào dưới cùng của bảng kiểm tra
Nếu bạn lật ngược robot, bạn sẽ thấy một bảng kiểm tra nhỏ treo trên ngăn chứa pin. Gắn bánh xe miễn phí vào phần treo này. Sử dụng một cái nêm nếu cần. Bánh xe tự do đóng vai trò là bánh trước cho phép robot quay theo bất kỳ hướng nào một cách dễ dàng.
Nếu bạn đã mua một bộ phụ kiện, bánh xe miễn phí có thể có một số nêm mà bạn có thể sử dụng để đảm bảo rằng bánh xe không chạm đất
Phần 2/5: Nối dây cho Robot
Bước 1. Cắt hai đầu ghim 3 đầu
Bạn sẽ sử dụng điều này để kết nối servo với bảng kiểm tra. Đẩy các ghim xuống qua các tiêu đề để chúng tạo ra khoảng cách bằng nhau ở cả hai bên.
Bước 2. Cắm hai tiêu đề vào chân 1-3 và 6-8 ở hàng E trên bảng kiểm tra
Đảm bảo rằng chúng được lắp chắc chắn hoặc chắc chắn.
Bước 3. Kết nối dây servo với đầu cắm, với dây màu đen ở phía bên trái (chân 1 và 6)
Thao tác này sẽ kết nối servo với bảng kiểm tra. Đảm bảo rằng servo bên trái được kết nối với tiêu đề bên trái và servo bên phải được kết nối với tiêu đề bên phải.
Bước 4. Kết nối dây jumper màu đỏ từ chân C2 và C7 vào chân đường sắt màu đỏ (dương)
Đảm bảo rằng bạn sử dụng thanh ray màu đỏ ở mặt sau của bảng kiểm tra (gần với phần còn lại của cơ thể rô bốt).
Bước 5. Nối dây jumper màu đen từ chân B1 và B6 vào chân ray màu xanh (mặt đất)
Hãy chắc chắn rằng bạn sử dụng thanh ray màu xanh ở mặt sau của bảng kiểm tra. Không gắn cáp vào chốt đường sắt màu đỏ.
Bước 6. Kết nối các dây jumper màu trắng từ chân 12 và 13 trên Arduino với A3 và A8
Điều này sẽ cho phép Arduino điều khiển servo và quay bánh xe.
Bước 7. Gắn cảm biến vào mặt trước của bảng kiểm tra
Cảm biến không được gắn vào thanh nguồn bên ngoài trên bảng thử nghiệm mà được gắn vào hai hàng chân đầu tiên có chữ (J). Hãy chắc chắn rằng bạn đặt nó ngay chính giữa với số lượng ghim trống ở mỗi bên bằng nhau.
Bước 8. Kết nối dây nhảy màu đen từ chân I14 đến chân đường sắt màu xanh đầu tiên ở bên trái của cảm biến
Điều này sẽ nối đất cảm biến.
Bước 9. Kết nối dây jumper màu đỏ từ chân I17 đến chân đường sắt màu đỏ đầu tiên ở bên phải của cảm biến
Điều này sẽ cung cấp năng lượng cho cảm biến.
Bước 10. Kết nối các dây jumper màu trắng từ chân I15 đến chân 9 trên Arduino và từ I16 đến chân 8
Điều này sẽ cung cấp thông tin từ cảm biến đến vi điều khiển.
Phần 3/5: Lắp đặt cáp nguồn
Bước 1. Lật ngược robot để bạn có thể nhìn thấy ngăn chứa pin bên trong
Sắp xếp ngăn chứa pin sao cho cáp thoát ra phía dưới bên trái.
Bước 2. Nối dây màu đỏ với lò xo thứ hai từ bên trái ở phía dưới
Đảm bảo rằng ngăn chứa pin được căn chỉnh đúng hoặc quay về hướng chính xác.
Bước 3. Nối dây đen với lò xo cuối cùng ở phía dưới bên phải
Hai dây này sẽ giúp cung cấp điện áp phù hợp cho Arduino.
Bước 4. Nối dây màu đỏ và đen vào các chân màu xanh và đỏ ở phía bên phải ở mặt sau của bảng kiểm tra
Dây màu đen sẽ đi vào chốt của thanh ray màu xanh trên chốt 30. Dây màu đỏ sẽ đi đến chốt của thanh ray màu đỏ trên chân số 30.
Bước 5. Kết nối dây màu đen từ chân GND trên Arduino vào mặt sau của thanh ray màu xanh lam
Nối dây vào chân 28 trên thanh ray màu xanh lam.
Bước 6. Nối dây màu đen từ mặt sau của thanh ray màu xanh đến mặt trước của thanh ray màu xanh lam trên chốt 29 cho cả hai thanh ray
Không kết nối thanh ray màu đỏ vì bạn có thể làm hỏng Arduino.
Bước 7. Kết nối dây màu đỏ từ mặt trước của thanh ray màu đỏ trên chân 30 với chân 5V trên Arduino
Điều này sẽ cung cấp năng lượng cho Arduino.
Bước 8. Chèn công tắc nút bấm vào khoảng trống giữa các chân 24-26
Công tắc này sẽ cho phép bạn tắt robot mà không cần phải tắt nguồn.
Bước 9. Kết nối dây màu đỏ từ H24 với đường sắt màu đỏ trên chân trống tiếp theo ở bên phải của cảm biến
Điều này sẽ cung cấp năng lượng cho nút.
Bước 10. Sử dụng một điện trở để kết nối H26 với thanh ray màu xanh
Kết nối nó với chốt trực tiếp bên cạnh dây đen mà bạn vừa kết nối ở các bước trước.
Bước 11. Kết nối dây màu trắng từ G26 đến chân 2 trên Arduino
Điều này sẽ cho phép Arduino phát hiện các nút nhấn.
Phần 4/5: Cài đặt phần mềm Arduino
Bước 1. Tải xuống và giải nén Arduino IDE
Đây là nơi Arduino được phát triển và cho phép bạn lập trình các hướng dẫn mà sau đó bạn có thể tải lên vi điều khiển Arduino của mình. Bạn có thể tải xuống miễn phí từ arduino.cc/en/main/software. Giải nén tệp đã tải xuống bằng cách nhấp đúp vào tệp và di chuyển thư mục chứa tệp đến vị trí dễ truy cập. Bạn sẽ không thực sự cài đặt chương trình, thay vào đó bạn sẽ chỉ chạy nó từ một thư mục đã được giải nén bằng cách nhấp đúp vào arduino.exe.
Bước 2. Kết nối ngăn chứa pin với Arduino
Cắm ổ cắm phía sau của pin vào đầu nối trên Arduino để cấp nguồn.
Bước 3. Chèn Arduino vào máy tính của bạn qua USB
Rất có thể, Windows sẽ không nhận ra thiết bị.
Bước 4. Nhấn
Thắng + R và gõ devmgmt.msc.
Lệnh này sẽ mở Trình quản lý thiết bị.
Bước 5. Nhấp chuột phải vào Thiết bị không xác định trong Thiết bị khác và chọn Cập nhật phần mềm trình điều khiển
Nếu bạn không thấy tùy chọn này, hãy bấm Thuộc tính, chọn tab Trình điều khiển, rồi bấm Cập nhật Trình điều khiển.
Bước 6. Chọn Duyệt máy tính của tôi để tìm phần mềm trình điều khiển
Điều này sẽ cho phép bạn chọn các trình điều khiển tích hợp đi kèm với Arduino IDE.
Bước 7. Nhấp vào Duyệt qua, sau đó mở thư mục bạn đã giải nén trước đó
Bạn sẽ tìm thấy thư mục trình điều khiển trong đó.
Bước 8. Chọn thư mục trình điều khiển và nhấp vào OK
Xác nhận rằng bạn muốn tiếp tục nếu bạn được cảnh báo về phần mềm không xác định.
Phần 5/5: Lập trình Robot
Bước 1. Mở Arduino IDE bằng cách nhấp đúp vào tệp arduino.exe trong thư mục IDE
Bạn sẽ được chào đón với một dự án trống.
Bước 2. Dán hoặc dán mã sau để nâng cao rô bốt của bạn
Đoạn mã dưới đây sẽ giúp Arduino của bạn tiếp tục hoạt động.
#include // điều này thêm thư viện “Servo” vào chương trình // lệnh sau tạo hai đối tượng servo Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); // nếu bạn vô tình hoán đổi các số pin cho servo của mình, bạn có thể hoán đổi các số tại đây rightMotor.attach (13); } void loop () {leftMotor.write (180); // với xoay 360 độ (quay liên tục), số 180 hướng dẫn servo di chuyển "về phía trước" ở tốc độ tối đa. rightMotor.write (0); // nếu cả hai giá trị đều là 180, rô bốt sẽ quay theo hình tròn vì servo bị đảo ngược. “0” yêu cầu robot di chuyển “lùi lại” với tốc độ tối đa. }
Bước 3. Tạo và tải lên chương trình
Nhấp vào nút mũi tên bên phải ở góc trên cùng bên trái để tạo và tải chương trình lên Arduino được kết nối.
Bạn có thể muốn nhấc rô-bốt lên khỏi bề mặt vì rô-bốt sẽ tiếp tục đi về phía trước sau khi chương trình được tải lên
Bước 4. Thêm chức năng công tắc dừng (kill switch)
Thêm mã sau vào phần "void loop ()" trong mã của bạn để thêm chức năng chuyển đổi dừng ở trên cùng của hàm "write ()".
if (digitalRead (2) == HIGH) // lệnh này chạy khi nút được nhấn trên chân 2 Arduino {while (1) {leftMotor.write (90); // "90" là vị trí trung lập của servo, vị trí này thông báo cho servo dừng quay phảiMotor.write (90); }}
Bước 5. Tải lên và kiểm tra mã của bạn
Với mã công tắc dừng đã được thêm, bạn có thể tải mã lên và kiểm tra rô bốt. Robot sẽ tiếp tục chuyển tiếp cho đến khi bạn nhấn nút công tắc dừng, điều này sẽ khiến robot dừng lại. Mã đầy đủ sẽ trông như thế này:
#include // lệnh sau tạo hai đối tượng servo Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) {while (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }
Thí dụ
Đoạn mã sau sẽ sử dụng các cảm biến được cài đặt trên robot để làm cho nó rẽ trái bất cứ khi nào robot gặp chướng ngại vật. Xem các bình luận trong mã để biết chi tiết về cách sử dụng từng phần. Đoạn mã dưới đây là toàn bộ chương trình.
#include Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // đoạn mã này đưa ra độ trễ thời gian đầu ra của bảng điều khiển là mỗi 1/4 giây (250 ms) unsigned long timeSerialDelay = 0; const int loopPeriod = 20; // mã này đặt tần số đọc cảm biến là 20 ms, là 50 Hz không dấu lâu dàiLoopDelay = 0; // mã này gán các chức năng TRIG và ECHO cho các chân trên Arduino. Điều chỉnh các số ở đây nếu bạn kết nối chúng theo một cách khác const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // mã này xác định hai trạng thái rô bốt có thể có: tiếp tục tiến hoặc rẽ trái #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = tiếp tục về phía trước (DEFAULT), 1 = rẽ trái void setup () {Serial.begin (9600); // cảm biến này xác định cấu hình chân pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // điều này chỉ định động cơ cho các chân Arduino leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // đoạn mã này phát hiện '' stop '' {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // mã này in thông báo gỡ lỗi tới bảng điều khiển nối tiếp if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // đoạn mã này hướng dẫn cảm biến đọc và lưu trữ dữ liệu về khoảng cách đã đo trạng tháiMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // nếu không có vật cản nào được phát hiện {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // nếu không có gì ở phía trước robot. ultrasonicDistance sẽ là âm đối với một số sóng siêu âm nếu không có vật cản {// lái xe về phía trước rightMotor.write (180); leftMotor.write (0); } else // nếu có một đối tượng ở phía trước chúng ta {state = TURN_LEFT; }} else if (state == TURN_LEFT) // nếu phát hiện chướng ngại vật thì rẽ trái {unsigned long timeToTurnLeft = 500; // mất khoảng 0,5 giây để quay 90 độ. Bạn có thể cần điều chỉnh giá trị này nếu bánh xe của bạn có kích thước khác với kích thước trong ví dụ unsigned long turnStartTime = millis (); // giữ nguyên điều kiện khi rô bốt bắt đầu quay trong khi ((millis () - turnStartTime) <timeToTurnLeft) // giữ chu kỳ này cho đến khi hết timeToTurnLeft (500) {// rẽ trái, hãy nhớ rằng khi cả hai đều là "180", robot sẽ quay. rightMotor.write (180); leftMotor.write (180); } trạng thái = DRIVE_FORWARD; }} void readUltrasonicSensors () {// lệnh này dành cho sóng siêu âm 2. Bạn có thể cần thay đổi lệnh này nếu bạn đang sử dụng một cảm biến khác. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // kéo chân TRIG lên cao ít nhất 10 micro giây digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = xungIn (ultrasonic2EchoPin, CAO); ultrasonic2Distance = (ultrasonic2Duration / 2) / 29; } // phần sau là để gỡ lỗi trong bảng điều khiển. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}