Mục lục:

Robot Servo điều khiển Arduino (SERB): 7 bước (có hình ảnh)
Robot Servo điều khiển Arduino (SERB): 7 bước (có hình ảnh)

Video: Robot Servo điều khiển Arduino (SERB): 7 bước (có hình ảnh)

Video: Robot Servo điều khiển Arduino (SERB): 7 bước (có hình ảnh)
Video: A4988 + Step 42, có phải combo kinh điển cho người mới??? 2024, Tháng bảy
Anonim
Robot Servo điều khiển Arduino (SERB)
Robot Servo điều khiển Arduino (SERB)
Robot Servo điều khiển Arduino (SERB)
Robot Servo điều khiển Arduino (SERB)
Robot Servo điều khiển Arduino (SERB)
Robot Servo điều khiển Arduino (SERB)
Robot Servo điều khiển Arduino (SERB)
Robot Servo điều khiển Arduino (SERB)

Còn cách nào tốt hơn để bắt đầu thử nghiệm với bộ điều khiển vi mô mã nguồn mở (Arduino) sau đó bằng cách xây dựng rô bốt mã nguồn mở (CC (SA-BY)) của riêng bạn? Làm gì với SERB của bạn?

  • (tại đây) - Cách kết nối SERB của bạn với internet và điều khiển nó qua cuộc gọi video Skype.
  • (tại đây) - Cách kiểm soát SERB của bạn bằng máy đo gia tốc của Wii nunchuck
  • (tại đây) - Cách thêm râu phát hiện chướng ngại vật vào robot của bạn
  • (tại đây) - Cách làm 30 bộ dụng cụ (Chế tạo mở)

Đặc trưng:

  • Hoàn toàn có thể lập trình bằng bộ điều khiển vi mô Arduino Duemilanove (hoặc bộ điều khiển vi mô khác mà bạn chọn).
  • Không cần hàn.
  • Lựa chọn các phương án cắt cho miếng acrylic. (cưa cuộn, truy cập vào máy cắt laser, mua các miếng cắt sẵn)
  • Dễ dàng mở rộng và sửa đổi với các lỗ bu lông bổ sung và breadboard đi kèm.
  • Bánh sau ổ bi kép.
  • Lên và chạy trong 1-2 giờ. (từ bộ)
  • Thiết kế mã nguồn mở (xây dựng bao nhiêu tùy thích)

(Shameless Plug) Ở Vương quốc Anh và thích công cụ Arduino? xem qua cửa hàng web mới mở của chúng tôi oomlout.co.ukMột video nhanh về rô bốt servo điều khiển Arduino đã hoàn chỉnh - (SERB) đang chạy chương trình thử nghiệm đi kèm (bước 6) Cách tạo Robot Servo điều khiển bằng Arduino - (SERB)

Bước 1: Bộ phận & Công cụ

Bộ phận & Công cụ
Bộ phận & Công cụ

Tất cả các bu lông có thể được tìm thấy tại Home Depot địa phương của bạn. Các bộ phận khác có thể được tìm thấy trực tuyến (tôi đã bao gồm một liên kết đến nguồn yêu thích của tôi cho mỗi bộ phận). Danh sách bộ phận: Một gói chứa tất cả các mặt hàng phần cứng có thể được mua tại cửa hàng của oomlout.com (tại đây) ($ 120).

  • Chốt 3mm x 15mm (x20)
  • Chốt 3mm x 10mm (x12)
  • Đai ốc 3mm (x34)
  • Vòng đệm 3mm (x12)
  • Chốt 8mm x 25mm (x2)
  • Đai ốc 8mm (x2)
  • Vòng bi trượt (x2) (VXB) (đây là những vòng bi trượt tiêu chuẩn để chúng có thể được tận dụng từ một cặp lưỡi lăn hoặc ván trượt)

Lốp xe

  • Vòng chữ O lớn (4,5 "ID 3/16" Hạt Dash # 349) (x2) (Sản phẩm McMaster-Carr # 9452K407)
  • Vòng chữ O nhỏ (3/4 "ID 3/16" Hạt Dash # 314) (x1) (Sản phẩm McMaster-Carr # 9452K387)

Thiết bị điện tử

  • Arduino Duemilanove (x1) (Maker Shed)
  • Servo quay liên tục (x2) (Thị sai)
  • 400 Contact Breadboard (x1) (Tất cả các thiết bị điện tử))
  • Hộp pin tứ AA (x1) (Tất cả các thiết bị điện tử)
  • Kẹp pin 9V (x1) (Tất cả các thiết bị điện tử)
  • Phích cắm 2,1 mm (x1) (Tất cả các thiết bị điện tử)
  • Đầu cắm 3 chân (x2) (Tất cả các thiết bị điện tử)
  • Cáp USB A-B - Kiểu Máy in (x1) (Tất cả các thiết bị điện tử) (không bao gồm trong bộ)

Pin:

  • Pin AA (x4) (không bao gồm trong bộ)
  • Pin 9v (x1) (không bao gồm trong bộ)

Dây: (tất cả dây là 22 AWG rắn, tôi mua qua McMaster-Carr)

  • 15 cm Tím (x2)
  • 15 cm Đen (x1)
  • 5 cm Đen (x2)
  • 5 cm Đỏ (x2)

Công cụ

  • Tua vít (x1) (Philips)
  • Kìm mũi kim (x1)

Bước 2: Cắt miếng

Cắt miếng
Cắt miếng
Cắt miếng
Cắt miếng
Cắt miếng
Cắt miếng
Cắt miếng
Cắt miếng

Vui lòng chọn các bước cần làm theo tùy chọn cắt bạn đã chọn. Tùy chọn 1 (Mua các bộ phận cắt sẵn)

Mua khung xe cắt sẵn từ cửa hàng của oomlout.com (tại đây) ($ 60 bao gồm phí vận chuyển đến Hoa Kỳ và Canada)

Tùy chọn 2 (Sản xuất Kỹ thuật số (ví dụ: Ponoko) / Tiếp cận Máy cắt Laser)

  • Tải xuống bố cục máy cắt laser ("03 SERB Ponoko Cut Layout P2.eps" hoặc "03- (SERB) -Ponoko Cut Layout (P2).cdr")
  • Cắt các tệp bằng Ponoko hoặc trên Máy cắt Laser của riêng bạn (sử dụng acrylic 3mm,.118 "(đôi khi được bán dưới dạng.125")

Tùy chọn 3 (Cưa cuộn và Khoan)

  • Tải xuống và in mẫu PDF (vui lòng chọn tệp tương ứng với khổ giấy của bạn) 03- (SERB) -ScrollSaw Pattern (letter).pdf 03- (SERB) -ScrollSaw Pattern (A4).pdf (điều quan trọng là không chia tỷ lệ bản vẽ trong khi in)
  • Đo thước trên bản in với thước mà bạn tin tưởng, nếu chúng không khớp với mẫu đã được chia tỷ lệ và bạn cần xem lại cài đặt máy in của mình trước khi in lại. Nếu họ trùng khớp, trở đi.
  • Dán mẫu lên tấm acrylic (3mm,.118 "(đôi khi được bán dưới dạng.125").
  • Khoan lỗ.
  • Cắt các mảnh bằng cưa cuộn

Bước 3: Lắp ráp

cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp

Chúc mừng bạn đã hoàn thành đến nay 90% quy trình đã hoàn tất, chỉ cần tải xuống hướng dẫn lắp ráp ở bước này (04- (SERB) -Assembly Guide.pdf) và sau một chút lắp ráp kiểu lego / Mechano, bạn sẽ sẵn sàng nối dây. Để giúp bạn giải trí trong suốt chặng đường, đây là một khoảng thời gian trôi đi trong cuộc họp của tôi:

Bước 4: Đấu dây

Đấu dây
Đấu dây
Đấu dây
Đấu dây

Với tất cả các mảnh lớn cùng thời gian để thêm các tĩnh mạch điện nhỏ sẽ cho phép điều khiển robot của chúng ta. Để thực hiện việc này, hãy tải xuống và in sơ đồ đấu dây (05- (SERB) -Wiring Diagram.pdf). Thoạt nhìn nó có thể khá khó khăn, tuy nhiên nếu bạn thực hiện từng kết nối tuần tự và dành thời gian, nó sẽ kết hợp với nhau nhanh chóng. Vì vậy, hãy kiểm tra lại tất cả mọi thứ, sau đó thêm điện.

Bước 5: Kiểm tra và khắc phục sự cố

Kiểm tra & Khắc phục sự cố
Kiểm tra & Khắc phục sự cố

Nếu bạn đặt hàng một bộ thì Arduino của bạn đã được tải sẵn một chương trình thử nghiệm. Chỉ cần lắp 4 pin AA vào và cắm pin 9v vào Arduino. Và nếu mọi thứ đã được thực hiện một cách chính xác, rô bốt của bạn sẽ bắt đầu di chuyển (nó sẽ quay theo hướng ngẫu nhiên trong khoảng thời gian từ 0,1 đến 1 giây trước khi đi tiếp trong khoảng thời gian ngẫu nhiên từ 1 đến 2 giây rồi tạm dừng 2 giây trước khi bắt đầu lại). Nếu bạn chưa mua một bộ dụng cụ, một bước bổ sung là bắt buộc. Tải xuống tệp zip đính kèm (07- (SERB) - SERB-Test Arduino Program.zip). Sau đó giải nén nó trong thư mục phác thảo Arduino của bạn (mặc định "My Documents / Arduino \") và tải nó xuống bảng arduino của bạn. (nếu bạn chưa quen với Arduino, hãy nhảy lên trước một bước nơi có các liên kết đến các hướng dẫn bắt đầu tuyệt vời) Các vấn đề thường gặp: SERB của tôi di chuyển chậm khi cần dừng lại. Đây là kết quả của việc Servo của bạn không được hiệu chuẩn đúng cách, để hiệu chỉnh Servo của bạn, hãy đợi cho đến khi chương trình của bạn ngừng Servo sau đó dùng một tuốc nơ vít nhỏ vặn chiết áp bên trong servo (lỗ hở nhỏ trong vỏ servo ngay phía trên nơi có dây dẫn). Xoay nó sang trái hoặc phải cho đến khi servo thực sự dừng lại. Mọi thứ không hoạt động bình thường. Gửi cho chúng tôi e-mail với các triệu chứng của bạn và chúng tôi sẽ cố gắng giúp bạn, trong khi bạn đang chờ trả lời, hãy kiểm tra kỹ tất cả các dây của bạn với sơ đồ đấu dây từ bước 4. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng thêm nhận xét vào mục Có thể hướng dẫn này hoặc gửi e-mail đến [email protected] và chúng tôi sẽ cố gắng hết sức để giúp bạn làm cho SERB của mình hoạt động

Bước 6: Lập trình

Lập trình
Lập trình

Trước khi chúng ta tìm hiểu chi tiết về lập trình Robot Servo điều khiển bằng Arduino - (SERB) - một vài liên kết đến một số tài nguyên lập trình Arduino tuyệt vời trên internet. để giúp bạn bắt đầu với Arduinos, từ việc tải xuống môi trường lập trình để viết chương trình đầu tiên của bạn. - Thư viện Arduino Servo hoạt động như thế nào (cách chúng tôi kiểm soát các Servo của mình). Có ba cách để bắt đầu lập trình Robot Servo điều khiển Arduino của bạn - (SERB). Tùy chọn 1: (Sửa đổi SERB_Test.pde) Đôi khi khi lập trình, điều dễ dàng nhất là lấy một chương trình đang hoạt động và bắt đầu thêm mã của riêng bạn vào đó. Để thực hiện việc này, hãy tải xuống chương trình nén SERB_Test (07- (SERB) - SERB-Test Arduino Program.zip). Tiến hành giải nén nó trong thư mục phác thảo Arduino của bạn (mặc định là "My Documents / Arduino \"). Cuối cùng mở môi trường lập trình Arduino và tải xuống Arduino của bạn. Mã được nhận xét tốt. (Hoặc sao chép và dán mã từ phụ lục ở bước này vào Phác thảo Arduino mới) Tùy chọn 2: (Thêm Quy trình SERB vào chương trình của bạn) Thêm một số quy trình đơn giản vào chương trình có sẵn của bạn (như goForward (), setSpeed (int), v.v.). Để thực hiện việc này, hãy tải xuống các quy trình trong tệp văn bản (07- (SERB) - Simple Routines Text.txt). 1. Sao chép và dán phần mở đầu vào đầu chương trình của bạn. Sao chép và dán phần quy trình vào phần nội dung chương trình của bạn. Thêm lệnh gọi tới serbSetup (); vào quy trình setup () của bạn. Tùy chọn 3: (Tạo chương trình của riêng bạn từ đầu) Điều này không quá khó. Tất cả những gì được yêu cầu là tự làm quen với Thư viện Servo Arduino. Sau đó, servo bên phải được kết nối với chân số 9 và servo bên trái với chân số 10. lưu ý: Các chương trình bổ sung sẽ được thêm vào đây khi chúng được phát triển; hoặc nếu bạn phát triển một cái gì đó và muốn nó nổi bật, hãy gửi cho tôi một tin nhắn riêng và nó có thể được thêm vào. Phụ lục: (Mã SERB_Test.pde)

/ * * Robot Servo điều khiển bằng Arduino (SERB) - Chương trình thử nghiệm * Để biết thêm chi tiết, hãy truy cập: https://www.oomlout.com/serb * * Hành vi: Một chương trình thử nghiệm đơn giản khiến SERB * quay ngẫu nhiên sang trái hoặc phải trong khoảng thời gian * ngẫu nhiên từ 0,1 đến 1 giây. * SERB sau đó sẽ chuyển động về phía trước trong một khoảng thời gian * ngẫu nhiên từ 1 đến 2 giây. Cuối cùng * tạm dừng 2 giây trước khi bắt đầu lại. * * Đấu dây: Tín hiệu Servo phải - chân 9 * Tín hiệu Servo trái - chân 10 * * Giấy phép: Tác phẩm này được cấp phép theo Giấy phép không được báo cáo của Creative Commons * Attribution-Share Alike 3.0. Để * xem bản sao của giấy phép này, hãy truy cập * https://creativecommons.org/licenses/by-sa/3.0/ * hoặc gửi thư đến Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * HOA KỲ. * * / // --------------------------------------------- ----------------------------- // BẮT ĐẦU CỦA ROBOT SERVO ĐƯỢC ĐIỀU KHIỂN ARDUINO (SERB) PREAMBLE # bao gồm #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo tráiServo; Servo rightServo; int speed = 100; // đặt tốc độ của rô bốt (cả hai servos) // phần trăm từ 0 đến 100 // KẾT THÚC CỦA ROBOT SERVO ĐƯỢC ĐIỀU KHIỂN ARDUINO (SERB) PREAMBLE // ---------------- -------------------------------------------------- -------- / * * đặt các chân ở trạng thái thích hợp và gắn các servo. Sau đó tạm dừng * trong 1 giây trước khi chương trình bắt đầu * / void setup () {serbSetup (); // thiết lập trạng thái của tất cả các chân // cần thiết và thêm servos vào bản phác thảo của bạn randomSeed (analogRead (0)); // đặt hạt giống số ngẫu nhiên với // độ trễ ngẫu nhiên nhẹ (1000);} / * * quay rô bốt sang trái hoặc phải (ngẫu nhiên) trong khoảng thời gian từ * 0,1 đến 1 giây. Trước khi tiếp tục trong một khoảng thời gian ngẫu nhiên * từ 1 đến 4 giây. Trước khi tạm dừng hai giây rồi bắt đầu lại *. * / Void loop () {turnRandom (100, 1000); // Quay ngẫu nhiên sang trái hoặc phải trong một // khoảng thời gian ngẫu nhiên giữa.1 giây // và một giây goForwardRandom (1000, 2000); // Tua đi trong một khoảng thời gian ngẫu nhiên // từ // 1 đến 2 giây goStop (); // Dừng độ trễ của robot (2000); // tạm dừng trong 2 giây (trong khi dừng)} / * * quay rô bốt ngẫu nhiên sang trái hoặc phải trong một khoảng thời gian ngẫu nhiên giữa * minTime (mili giây) và maxTime (mili giây) * / void turnRandom (int minTime, int maxTime) {int lựa chọn = ngẫu nhiên (2); // Số ngẫu nhiên để quyết định // giữa left (1) và right (0) int turnTime = random (minTime, maxTime); // Số ngẫu nhiên cho khoảng thời gian tạm dừng // if (choice == 1) {goLeft ();} // If random number = 1 then turn // left else {goRight ();} // If random number = 0 then rẽ // phải delay (turnTime); // trì hoãn cho thời gian ngẫu nhiên} / * * chuyển tiếp trong một khoảng thời gian ngẫu nhiên giữa minTime (mili giây) * và maxTime (mili giây) * / void goForwardRandom (int minTime, int maxTime) {int forwardTime = random (minTime, maxTime); // xác định thời gian ngẫu nhiên để // đi tiếp goForward (); // đặt độ trễ chuyển tiếp SERB (forwardTime); // độ trễ trong khoảng thời gian ngẫu nhiên} // ---------------------------------------- -------------------------------- // BẮT ĐẦU CỦA ARDUINO ROBOT ROBOT (SERB) ĐƯỢC ĐIỀU KHIỂN CỦA ARDUINO / * * thiết lập arduino để giải quyết SERB của bạn bằng cách sử dụng các quy trình đi kèm * / void serbSetup () {setSpeed (speed); pinMode (LEFTSERVOPIN, OUTPUT); // đặt chân tín hiệu servo bên trái // để xuất pinMode (RIGHTSERVOPIN, OUTPUT); // đặt chân tín hiệu servo bên phải // để xuất ra leftServo.attach (LEFTSERVOPIN); // đính kèm bên trái servo rightServo.attach (RIGHTSERVOPIN); // gắn servo bên phải goStop ();} / * * đặt tốc độ của robot từ 0- (dừng) đến 100- (tốc độ đầy đủ) * LƯU Ý: tốc độ sẽ không thay đổi tốc độ hiện tại, bạn phải thay đổi tốc độ * sau đó gọi một của các phương thức go trước khi thay đổi xảy ra. * / void setSpeed (int newSpeed) {if (newSpeed> = 100) {newSpeed = 100;} // nếu tốc độ lớn hơn 100 // đặt nó là 100 nếu (newSpeed <= 0) {newSpeed = 0;} // nếu tốc độ nhỏ hơn 0 thì // nó là 0 speed = newSpeed * 0.9; // chia tỷ lệ tốc độ thành // trong khoảng từ 0 đến 90} / * * gửi robot chuyển tiếp * / void goForward () {leftServo.write (90 + speed); rightServo.write (90 - tốc độ);} / * * gửi ngược rô bốt * / void goBackward () {leftServo.write (90 - tốc độ); rightServo.write (90 + tốc độ);} / * * gửi robot sang phải * / void goRight () {leftServo.write (90 + tốc độ); rightServo.write (90 + tốc độ);} / * * gửi robot sang trái * / void goLeft () {leftServo.write (90 - tốc độ); rightServo.write (90 - speed);} / * * dừng robot * / void goStop () {leftServo.write (90); rightServo.write (90);} // KẾT THÚC CÁC TUYẾN ROBOT (SERB) SERVO ĐƯỢC KIỂM SOÁT ARDUINO // ---------------------------- -----------------------------------------------

Bước 7: Đã hoàn thành, những người khác đã hoàn thành và tương lai

Đã hoàn thành, những người khác đã hoàn thành và tương lai
Đã hoàn thành, những người khác đã hoàn thành và tương lai
Đã hoàn thành, những người khác đã hoàn thành và tương lai
Đã hoàn thành, những người khác đã hoàn thành và tương lai
Đã hoàn thành, những người khác đã hoàn thành và tương lai
Đã hoàn thành, những người khác đã hoàn thành và tương lai
Đã hoàn thành, những người khác đã hoàn thành và tương lai
Đã hoàn thành, những người khác đã hoàn thành và tương lai

Chúc mừng bạn đã đạt được điều này và tôi hy vọng bạn đang vui vẻ với Robot Servo điều khiển Arduino - (SERB). SERB của Michael Beck -Michael đã tìm thấy kế hoạch cho SERB tại Thingiverse.com và cắt bỏ màu vàng và đỏ acrylic. Tôi nghĩ nó trông rất tuyệt. SERB củaike - Mike (của câu lạc bộ robot ROBOMO ở St. Louis Area) đã nhờ một người bạn cắt laser khung xe SERB và sử dụng bí quyết robot của riêng anh ấy để thiết lập và vận hành nó. Tôi nghĩ rằng nó trông tuyệt vời được thực hiện bằng màu xanh lam. (hãy xem trang web của anh ấy để biết thông tin chi tiết về điều này cũng như các robot khác của anh ấy (tại đây) Phần này sẽ có thông tin chi tiết về các phát triển và tệp đính kèm trong tương lai (chúng sẽ được giới thiệu ở đây trước khi chúng được ghi lại chính xác). Nhưng tôi cũng muốn giới thiệu hình ảnh của những người khác SERB's Vì vậy, nếu bạn đã gửi cho tôi một tin nhắn riêng với một bức ảnh và một vài từ (có thể là mô tả hoặc liên kết đến trang web của bạn) và tôi sẽ thêm nó vào đây. (Shameless Plug) Nếu bạn thích hướng dẫn này hãy xem oomlout.com để biết các dự án mã nguồn mở thú vị khác.

Giải Nhất trong Cuộc thi chạy bằng pin SANYO thụt vào trong

Đề xuất: