Làm thế nào để xây dựng một robot tại nhà (có hình ảnh)

Mục lục:

Làm thế nào để xây dựng một robot tại nhà (có hình ảnh)
Làm thế nào để xây dựng một robot tại nhà (có hình ảnh)

Video: Làm thế nào để xây dựng một robot tại nhà (có hình ảnh)

Video: Làm thế nào để xây dựng một robot tại nhà (có hình ảnh)
Video: Bài 1- Làm quen với phần mềm Sketchup 2021. 2024, Tháng tư
Anonim

Bạn có muốn học cách chế tạo robot của riêng mình không? Có rất nhiều loại robot khác nhau mà bạn có thể tự chế tạo. Hầu hết mọi người đều muốn xem rô bốt thực hiện các nhiệm vụ đơn giản là di chuyển từ điểm A đến điểm B. Bạn có thể chế tạo rô bốt hoàn toàn từ các thành phần tương tự hoặc mua một bộ khởi động từ đầu! Xây dựng robot của riêng bạn là một cách tuyệt vời để tự học cả điện tử cũng như lập trình máy tính.

Các bước

Phần 1/6: Lắp ráp Robot

1123333 1
1123333 1

Bước 1. Thu thập các thành phần của bạn

Để chế tạo một robot cơ bản, bạn sẽ cần một số thành phần đơn giản. Bạn có thể tìm thấy hầu hết, nếu không phải tất cả, các thành phần này tại cửa hàng bán đồ điện tử tại địa phương hoặc một số nhà bán lẻ trực tuyến. Một số bộ dụng cụ cơ bản cũng có thể 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 Servos quay liên tục
  • 2 bánh xe phù hợp với servo
  • 1 tàu lượn siêu tốc
  • 1 breadboard nhỏ không hàn (tìm breadboard có hai đường âm và dương ở mỗi bên)
  • 1 cảm biến khoảng cách (với cáp kết nối bốn chân)
  • 1 công tắc nút nhấn mini
  • 1 điện trở 10kΩ
  • 1 cáp USB A đến B
  • 1 bộ tiêu đề ly khai
  • 1 hộp đựng pin 6 x AA với giắc cắm nguồn DC 9V
  • 1 gói dây nhảy hoặc dây móc 22 khổ
  • Băng keo hai mặt mạnh hoặc keo nóng
1123333 2
1123333 2

Bước 2. Lật bộ pin để mặt sau phẳng hướng lên trên

Bạn sẽ xây dựng cơ thể của robot bằng cách sử dụng bộ pin làm cơ sở.

1123333 3
1123333 3

Bước 3. Căn chỉnh hai servo ở phần cuối của bộ pin

Đây phải là điểm kết thúc khi dây của bộ pin sắp ra khỏi Servos phải chạm vào đáy và các cơ cấu xoay của mỗi bộ phải hướng ra ngoài các mặt của bộ pin. Các servo phải được căn chỉnh phù hợp để các bánh xe đi thẳng. Các dây cho servo phải được nối ra khỏi mặt sau của bộ pin.

1123333 4
1123333 4

Bước 4. Dán các servo bằng băng dính hoặc keo của bạn

Đảm bảo rằng chúng được gắn chắc chắn vào bộ pin. Mặt sau của servo phải thẳng hàng với mặt sau của bộ pin.

Servos bây giờ sẽ chiếm một nửa sau của bộ pin

1123333 5
1123333 5

Bước 5. Dán vuông góc breadboard trên không gian mở trên bộ pin

Nó sẽ treo qua mặt trước của bộ pin chỉ một chút và sẽ mở rộng ra mỗi bên. Đảm bảo rằng nó được gắn chặt trước khi tiếp tục. Hàng "A" phải gần với servos nhất.

1123333 6
1123333 6

Bước 6. Gắn vi điều khiển Arduino vào đỉnh của Servos

Nếu bạn gắn các Servos đúng cách, sẽ có một không gian bằng phẳng để chúng chạm vào nhau. Dán bảng Arduino vào không gian phẳng này sao cho các đầu nối USB và Nguồn của Arduino hướng về phía sau (cách xa bảng mạch). Mặt trước của Arduino phải vừa đủ chồng lên breadboard.

1123333 7
1123333 7

Bước 7. Đặt các bánh xe trên Servos

Nhấn chặt các bánh xe vào cơ cấu quay của servo. Đ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ế để vừa khít nhất có thể để có độ bám đường tốt nhất.

1123333 8
1123333 8

Bước 8. Gắn bánh xe vào đáy của breadboard

Nếu bạn lật khung máy lên, bạn sẽ thấy một chút bảng mạch mở rộng qua bộ pin. Gắn bánh xe vào phần mở rộng này, sử dụng các thanh nâng nếu cần thiết. Bánh xe hoạt động như bánh trước, cho phép robot dễ dàng quay theo bất kỳ hướng nào.

Nếu bạn đã mua một bộ dụng cụ, bánh xe có thể đã đi kèm với một vài thanh nâng mà bạn có thể sử dụng để đảm bảo bánh xe tiếp đất. tôi

Phần 2/6: Nối dây cho Robot

1123333 9
1123333 9

Bước 1. Ngắt hai đầu 3 chân

Bạn sẽ sử dụng những thứ này để kết nối các servos với breadboard. Đẩy các ghim xuống qua tiêu đề để các ghim đi ra với khoảng cách bằng nhau ở cả hai bên.

1123333 10
1123333 10

Bước 2. Chèn hai tiêu đề vào các ghim 1-3 và 6-8 trên hàng E của bảng mạch

Đảm bảo rằng chúng được lắp chắc chắn.

1123333 11
1123333 11

Bước 3. Kết nối cáp servo với đầu cắm, với cáp màu đen ở phía bên trái (chân 1 và 6)

Điều này sẽ kết nối các servos với breadboard. Đả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 với tiêu đề bên phải.

1123333 12
1123333 12

Bước 4. Nối dây jumper màu đỏ từ chân C2 và C7 vào chân ray (dương) màu đỏ

Đảm bảo rằng bạn sử dụng thanh ray màu đỏ ở mặt sau của breadboard (gần phần còn lại của khung).

1123333 13
1123333 13

Bước 5. Kết nối dây jumper màu đen từ chân B1 và B6 đến chân ray màu xanh lam (mặt đất)

Đảm bảo rằng bạn sử dụng thanh ray màu xanh ở mặt sau của breadboard. Không cắm chúng vào các chân đường sắt màu đỏ.

1123333 14
1123333 14

Bước 6. Kết nối 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 các servo và quay các bánh xe.

1123333 15
1123333 15

Bước 7. Gắn cảm biến vào mặt trước của breadboard

Nó không được cắm vào các thanh nguồn bên ngoài trên breadboard, mà thay vào đó là vào hàng đầu tiên của các chân có chữ (J). Đảm bảo rằng bạn đặt nó ở chính giữa, với số lượng ghim bằng nhau ở mỗi bên.

1123333 16
1123333 16

Bước 8. Kết nối dây jumper màu đen từ chân I14 với chân đường sắt màu xanh đầu tiên có sẵn ở bên trái của cảm biến

Điều này sẽ nối đất cảm biến.

1123333 17
1123333 17

Bước 9. Kết nối dây nhảy màu đỏ từ chân I17 đến chân đường sắt màu đỏ có sẵn đầ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.

1123333 18
1123333 18

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 bộ vi điều khiển.

Phần 3/6: Đấu dây nguồn

1123333 19
1123333 19

Bước 1. Lật nghiêng rô-bốt để bạn có thể nhìn thấy pin trong gói

Hướng nó sao cho cáp bộ pin đi ra bên trái ở phía dưới.

1123333 20
1123333 20

Bước 2. Nối một sợi dây màu đỏ vào lò xo thứ hai từ bên trái trên dưới

Đảm bảo rằng bộ pin được định hướng chính xác.

1123333 21
1123333 21

Bước 3. Nối một sợi dây màu đen vào lò xo cuối cùng ở phía dưới bên phải

Hai loại cáp này sẽ giúp cung cấp điện áp chính xác cho Arduino.

1123333 22
1123333 22

Bước 4. Kết nối các dây màu đỏ và đen với các ghim màu xanh và đỏ ở ngoài cùng bên phải ở mặt sau của breadboard

Cáp màu đen phải được cắm vào chân ray màu xanh ở chân 30. Cáp màu đỏ nên được cắm vào chân ray màu đỏ ở chân số 30.

1123333 23
1123333 23

Bước 5. Kết nối dây màu đen từ chân GND trên Arduino với thanh ray màu xanh lam phía sau

Kết nối nó tại chốt 28 trên thanh ray màu xanh lam.

1123333 24
1123333 24

Bước 6. Nối dây màu đen từ thanh ray màu xanh sau với thanh ray màu xanh lam phía trước tại chốt 29 cho mỗi dây

Không kết nối các thanh ray màu đỏ, vì bạn có thể sẽ làm hỏng Arduino.

1123333 25
1123333 25

Bước 7. Kết nối dây màu đỏ từ thanh ray màu đỏ phía trước ở 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.

1123333 26
1123333 26

Bước 8. Chèn công tắc nút nhấn vào khoảng trống giữa các hàng trên 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 rút nguồn.

1123333 27
1123333 27

Bước 9. Kết nối dây màu đỏ từ H24 với đường sắt màu đỏ ở chân có sẵn tiếp theo ở bên phải của cảm biến

Thao tác này sẽ cấp nguồn cho nút.

1123333 28
1123333 28

Bước 10. Sử dụng đ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 đã kết nối vài bước trước.

1123333 29
1123333 29

Bước 11. Kết nối một dây màu trắng từ G26 đến chân 2 trên Arduino

Điều này sẽ cho phép Arduino đăng ký nút nhấn.

Phần 4/6: Cài đặt phần mềm Arduino

1123333 30
1123333 30

Bước 1. Tải xuống và giải nén Arduino IDE

Đây là môi trường phát triển Arduino 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 bên trong đế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ừ thư mục đã giải nén bằng cách nhấp đúp vào arduino.exe.

1123333 31
1123333 31

Bước 2. Kết nối bộ pin với Arduino

Cắm giắc cắm lại của pin vào đầu nối trên Arduino để cung cấp năng lượng cho nó.

1123333 32
1123333 32

Bước 3. Cắm Arduino vào máy tính của bạn qua USB

Windows có thể sẽ không nhận ra thiết bị.

1123333 33
1123333 33

Bước 4. Nhấn

⊞ Thắng + R và gõ devmgmt.msc.

Thao tác này sẽ khởi chạy Trình quản lý thiết bị.

1123333 34
1123333 34

Bước 5. Nhấp chuột phải vào "Thiết bị không xác định" trong phần "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 nhấp vào "Thuộc tính" thay vào đó, chọn tab "Trình điều khiển", sau đó nhấp vào "Cập nhật trình điều khiển".

1123333 35
1123333 35

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 trình điều khiển đi kèm với Arduino IDE.

1123333 36
1123333 36

Bước 7. Nhấp vào "Duyệt qua" sau đó điều hướng đến thư mục mà bạn đã giải nén trước đó

Bạn sẽ tìm thấy một thư mục "trình điều khiển" bên trong.

1123333 37
1123333 37

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/6: Lập trình Robot

1123333 38
1123333 38

Bước 1. Khởi động 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.

1123333 39
1123333 39

Bước 2. Dán đoạn mã sau để làm cho rô bốt của bạn đi thẳng

Đoạn mã dưới đây sẽ làm cho Arduino của bạn liên tục tiến lên.

#include // điều này thêm thư viện "Servo" vào chương trình // phần sau tạo hai đối tượng servo Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); // nếu bạn vô tình đổi số pin cho servos của mình, bạn có thể hoán đổi các số ở đây rightMotor.attach (13); } void loop () {leftMotor.write (180); // với vòng quay liên tục, 180 ra lệnh cho servo di chuyển với tốc độ tối đa "về phía trước". rightMotor. ghi (0); // nếu cả hai đều ở mức 180, rô bốt sẽ đi trong một vòng tròn vì các servo bị lật. "0" cho biết nó di chuyển hết tốc độ "lùi". }

1123333 40
1123333 40

Bước 3. Xây dựng 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 bên trái để xây dựng 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ì nó sẽ tiếp tục di chuyển về phía trước sau khi chương trình được tải lên

1123333 41
1123333 41

Bước 4. Thêm chức năng chuyển đổi tiêu diệt

Thêm mã sau vào phần "void loop ()" trong mã của bạn để bật công tắc hủy, phía trên các hàm "write ()".

if (digitalRead (2) == HIGH) // điều này đăng ký khi nút được nhấn trên chân 2 của Arduino {while (1) {leftMotor.write (90); // "90" là vị trí trung lập cho các servos, nó yêu cầu chúng ngừng rẽ phảiMotor.write (90); }}

1123333 42
1123333 42

Bước 5. Tải lên và kiểm tra mã của bạn

Với mã công tắc tiêu diệt được thêm vào, bạn có thể tải lên và kiểm tra rô bốt. Nó sẽ tiếp tục di chuyển về phía trước cho đến khi bạn nhấn công tắc, lúc đó nó sẽ ngừng di chuyển. Mã đầy đủ sẽ trông như thế này:

#include // phần 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); }

Phần 6/6: Ví dụ

Bước 1. Làm theo một ví dụ

Đoạn mã sau sẽ sử dụng cảm biến gắn vào robot để khiến nó quay sang trái bất cứ khi nào gặp chướng ngại vật. Xem các nhận xét trong mã để biết chi tiết về chức năng của 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; // điều này giới hạn đầu ra cho bảng điều khiển ở mức 1/4 giây thời gian dài không được đánh dấu một lầnSerialDelay = 0; const int loopPeriod = 20; // điều này đặt tần suất bộ cảm biến đọc thành 20ms, là tần số 50Hz không dấu trong thời gian dàiLoopDelay = 0; // điều này sẽ gán các chức năng TRIG và ECHO cho các chân trên Arduino. Thực hiện điều chỉnh các số ở đây nếu bạn kết nối khác nhau const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // điều này xác định hai trạng thái có thể xảy ra đối với rô bốt: lái xe về phía trước hoặc rẽ trái #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = drive forward (DEFAULT), 1 = turn left void setup () {Serial.begin (9600); // các cấu hình chân cảm biến này 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) // điều này phát hiện công tắc hủy {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // điều này sẽ 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 (); // điều này ra lệnh cho cảm biến đọc và lưu trữ khoảng cách đo được stateMachine (); 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 phải điều chỉnh điều này nếu bánh xe của bạn có kích thước khác với ví dụ như unsigned long turnStartTime = millis (); // lưu thời gian mà chúng ta bắt đầu quay trong khi ((millis () - turnStartTime) <timeToTurnLeft) // ở trong vòng lặp này cho đến khi hết thời gian {// rẽ trái, hãy nhớ rằng khi cả hai được đặt thành "180", nó sẽ quay. rightMotor.write (180); leftMotor.write (180); } trạng thái = DRIVE_FORWARD; }} void readUltrasonicSensors () {// đây là dành cho sóng siêu âm 2. Bạn có thể cần thay đổi các lệnh này nếu bạn sử dụng một cảm biến khác. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // giữ chân trig cao trong í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 (); }}

Đề xuất: