Arduino điều khiển tốc độ và hướng của động cơ

45 3.3K 23
Arduino điều khiển tốc độ và hướng của động cơ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 3: ROBOT KỸ THUẬT VỚI YÊU CẦU : Kiểm soát chuyển động Vâng, bạn cuối cùng đã có thể làm cho nó trở thành những thứ tốt hơn. Trong chương này, chúng ta sẽ thảo luận về điều khiển động cơ, một phần rất quan trọng của thiết kế robot sẽ được dùng trong cuốn sách này. Điều khiển động cơ cho phép chúng ta cung cấp cho cuộc sống robot, nhưng chúng tôi sẽ không chỉ đơn giản được nhấn nhím để điều khiển ra robot. Thay vào đó, theo yêu cầu của một khách hàng giả định, chúng tôi sẽ kiểm soát tốc độ động cơ và định hướng qua truyền thông nối tiếp. Chúng ta có thể thực hiện điều này bằng cách sử dụng một H-bridge và một biến tần hex. Các H-bridge sẽ được sử dụng để điều khiển hai động cơ và biến tần hex sẽ được sử dụng để chuyển đổi một tín hiệu từ 0 sang 1 (từ 1 sang 0). Công ty muốn từng tham số được tách để đi đến những chân cụ thể. Một yêu cầu nữa công ty đó là các mẫu thử nghiệm cuối cùng cần phải được cấu hình trên một khung- nhưng không phải cho đến khi các phần cứng và phần mềm đã được thử nghiệm. Để tận dụng tối đa trong dự án này, bạn sẽ cần một sự hiểu biết cơ bản của tiến trình kỹ thuật và ngôn ngữ lập trình Arduino như đã nói trong hai chương đầu tiên. Nếu bạn chưa đọc bài viết nào, xin vui lòng làm điều đó trước khi tiếp tục. Trước khi giải quyết yêu cầu của khách hàng, tuy nhiên, bạn sẽ cần một số thông tin cơ bản cung cấp cho bạn những cơ sở cần thiết để tạo ra các dự án cuối cùng. Để bắt đầu mọi thứ, chúng ta sẽ thảo luận về H-bridge và mục đích sử dụng khác nhau của nó tiếp theo là một đánh giá về phần cứng cần dùng trong chương này. Sau đó chúng ta sẽ tạo ra 4 dự án nhỏ mà sẽ dạy bạn làm thế nào để bật và tắt một động cơ với một nút bấm. Tiếp theo, bạn sẽ tìm hiểu làm thế nào để sử dụng một chiết áp để kiểm soát tốc độ trên một động cơ. Sau đó, bạn sẽ học cách điều khiển nhiều động cơ với H-bridge và làm thế nào để kiểm soát cả tốc độ và hướng với một chiết áp và một nút bấm. Trang bị kiến thức mới học của bạn, bạn sẽ tạo ra một robot có sử dụng H-bridge để điều khiển chuyển động của nó. Giải thích phần cứng: Các H-bridge Các H-bridges là mạch tích hợp rất hữu dụng (IC); chúng cho phép điện áp cao hơn để được kết nối với động cơ mà không cần sử dụng nguồn 5V yếu của Arduino. Với một số Các H-cầu, bạn có thể sử dụng lên đến 30V. Hình 3-1 cho thấy ba ví dụ về một H-bridge; cho chương này, chúng ta sẽ dùng lá chắn động cơ từ Spark Fun được hiển thị phía trên bên phải. Hình 3-1. Một vài H-bridges (từ trái sang phải: bề mặt gắn kết H-bridge, thông qua hố H-bridge, và động cơ từ lá chắn SparkFun) Các motor Sparkfun lá chắn có hai cổng motor, cổng A và cổng B; các cổng tương ứng với bốn chân trên lá chắn động cơ từ Sparkfun. Chúng là chân digital 3: PWMA, cái mà kiểm soát tốc độ của motor A, chân digital 12: DIRA, cái mà điều khiển hướng của motor A, chân digital 11: PWMB, cái mà kiểm soát tốc độ của motor A, và chân digital 13: DIRB , cái mà điều khiển hướng của motor B. Chúng ta sẽ dùng một H-bridge để điều khiển tốc độ và hướng của động cơ. Các lá chắn động cơ từ Sparkfun có được xây tích hợp trong L298P H-bridge, có thể xử lý lên đến 18V và sử dụng các chân digital 3, 11, 12, và 13 để điều khiển tốc độ và hướng. Bạn cũng có thể sử dụng một H-bridge độc lập như L293D, thiết bị có một điện áp đầu vào lên tới 37V. Trong chương này, chúng ta sẽ sử dụng trình điều khiển motor để điều khiển động cơ với một chiết áp và một nút bấm, kiểm soát tốc độ và hướng điều khiển những thứ khác. Tập hợp các phần cứng cho Chương này Chúng ta sẽ sử dụng Dagu 2WD Beginner Robot Chassis V2 từ Robotshop.com. Sau đó trong chương này, các yêu cầu tài liệu trình bày sẽ có một chuẩn cho khung này. Phần này của phần cứng sẽ được sử dụng để giữ mạch, chẳng hạn như Arduino và lá chắn motor. Bạn có thể tìm thấy khung này ở www.robotshop.com/dagu-2wd-beginner-robot-chassis-v2-2.html. Tôi đã chọn khung này cho thiết kế hai bánh xe của nó và không gian rộng rãi trên đó nó có mẫu thử nghiệm. Nếu bạn đã có một khung hoặc bạn muốn mua một cái khác, chỉ cần đảm bảo nó là một khung xe hai bánh, như chúng ta sẽ dùng hệ thống hai bánh suốt phần còn lại của cuốn sách này. Hình 3-2. Trong chương này, chúng ta sẽ sử dụng Dagu 2WD Beginner Robot Chassis V2. Sự hiểu biết các vấn đề cơ bản của điều khiển động cơ Trong phần này, chúng ta sẽ thảo luận về các vấn đề cơ bản của điều khiển động cơ trong bốn dự án riêng biệt: bật một động cơ với một nút bấm, kiểm soát tốc độ của một động cơ với chiết áp, kiểm soát nhiều động cơ với Arduino, và cuối cùng, kiểm soát tốc độ và hướng . Những điều này sẽ tạo nên nền tảng chúng ta dùng để xây dựng dự án chúng ta khi chúng ta có các tài liệu yêu cầu cho một robot sau chương này. Dự án 3-1: Bật một động cơ với một Switch Dự án này sẽ chủ yếu tập trung vào các chân digital và sẽ sử dụng một H-bridge vì vậy chúng ta có thể sử dụng điện áp cao hơn để chạy các động cơ với Arduino. Dự án 3-1 sẽ cho phép chúng tôi bật một động cơ trên chuyển động theo một chiều kim đồng hồ. Tập hợp các phần cứng Hình 3-3 cho thấy phần cứng cho dự án này, trừ pin 9V, kết nối 9V, và solderless breadboard: • Arduino Duemilanove (hoặc UNO) • lá chắn động cơ từ Sparkfun • nút bật / tắt • motor 6V • bảng Solderless • pin 9V • đầu nối pin 9V • Hai khối thiết bị đầu cuối từ Sparkfun • Dây phụ Hình 3-3. Phần cứng cho dự án này Cấu hình phần cứng Đầu tiên, hàn các header cái vào lá chắn motor và nối lá chắn động cơ đến header cái trên Arduino Duemilanove. Tiếp theo, cắm đầu cuối trên một lá chắn motor cho động cơ 6V bằng cách hàn một khối đầu cuối để lá chắn motor và động cơ của bạn kết nối với khối đầu cuối (Hình 3-4 cho thấy cấu hình này). Cuối cùng, kết nối bật / tắt chuyển đổi từ chân nối đất đến digital 10 trên Arduino, như Hình 3-5 cho thấy. Hình 3-6 và 3-7 minh họa cho cấu hình phần cứng cho dự án này. Hình 3-4. Khối đầu cuối thêm vào lá chắn motor Hình 3-5. Công tắc được kết nối với chân digital 10 và nối đất trên Arduino. Hình 3-6. Động cơ được kết nối với cổng motor A trên lá chắn motor, và chuyển đổi được kết nối với chân digital 10 và nối đất trên Arduino. Hình 3-7. Các sơ đồ cho dự án này Bây giờ bạn đã kết nối các nút nhấn và động cơ, bạn cần phải kết nối Arduino của bạn để máy tính của bạn để cho phần mềm có thể được upload vào Arduino. Chúng tôi sẽ viết chương trình cho dự án này trong phần tiếp theo. Viết phần mềm Các phần mềm cho dự án này sẽ tương tự như các dự án LED nhấp nháy mà chúng ta tạo ra trong Chương 1. Nó sẽ có một đầu vào digital, một đầu ra digital, và một câu lệnh có điều kiện kiểm soát đầu ra. Listing 3-1 cung cấp mã cho dự án này. Listing 3-1. Turning on a Motor const int buttonPin = 10; // Sets buttonPin to digital pin 10 const int motorPin = 3; // Sets motorPin to digital pin 3 int buttonVal = 0; // Will pass button value here void setup() { pinMode(buttonPin, INPUT); // Makes buttonPin an input pinMode(motorPin, OUTPUT); // Makes motorPin an output digitalWrite(buttonPin, HIGH); // Activates the pull up resistor // If we did not have this, the switch // would not work correctly. } void loop() { buttonVal = digitalRead(buttonPin); // Whatever is at buttonPin is // sent to buttonVal if (buttonVal == 1) { digitalWrite(motorPin, HIGH); // Turn motor on if buttonVal equals one } else { digitalWrite(motorPin, LOW); // Turns motor off for all other values } } Mã này đầu tiên khởi buttonPin vào pin 10, motorPin vào pin 3, và buttonVal vào 0 (không phải chân 0, chỉ là số 0). Tiếp theo trong cấu trúc thiết lập, buttonPin được làm một đầu vào; motorPin được làm một đầu ra, và quan trọng nhất, chúng tôi kích hoạt trở kéo lên chân 10 ; đây là một điện trở trên bo mạch có thể gọi trong phần mềm bằng cách sử dụng một hàm digitalWrite (). Ví dụ, đặt digitalWrite (10, HIGH) bên trong cấu trúc thiết lập kích hoạt trở kéo lên chân 10 (chúng ta có thể sử dụng một điện trở bên ngoài thay thế, nhưng cách này dễ dàng hơn). Cuối cùng, khi chúng ta có bên trong cấu trúc vòng lặpchúng ta gán giá trị buttonPin đến buttonVal. Sau đó, chúng ta dùng một câu lệnh if có điều kiện (buttonVal == 1). Nếu là giá trị thực hiện bằng 1, viết HIGH đến motorPin, và cho bất kỳ giá trị khác, viết LOW trên motorPin. Bây giờ, chúng ta có thể chuyển sang một dự án khác sẽ giúp bổ sung kiến thức của bạn về điều khiển động cơ. Phần tiếp theo sẽ thảo luận về kiểm soát tốc độ của một động cơ với chiết áp. Dự án 3-2: Kiểm soát tốc độ của một động cơ với một chiết áp Sử dụng một chiết áp là một kỹ năng cơ bản của điều khiển động cơ, và nó sẽ giúp bạn hiểu làm thế nào để điều khiển tốc độ trong các dự án cuối cùng của chương này. Dự án ví dụ này cũng sẽ giải thích một chức năngchúng ta không đi qua được nêu ra - các chức năng bản đồ. Chúng ta kiểm soát tốc độ của động cơ bằng cách sử dụng các đầu vào analog trên Arduino và nhân rộng các giá trị của một chiết áp (0-1024) đến được sử dụng với điều chế độ rộng xung (PWM) chân lá chắn motor sử dụng để kiểm soát tốc độ của động cơ. Phần tiếp theo sẽ thảo luận về phần cứng chúng ta cần. Tập hợp các phần cứng Hình 3-8 cho thấy các phần cứng được sử dụng cho dự án này, trừ pin 9V, kết nối 9V, và bảng solderless: • Arduino Duemilanove (hoặc UNO) • lá chắn động cơ • motor 6V • Chiết áp 10 kΩm • pin 9V • đầu nối pin 9V • bảng Solderless [...]... kiểm soát cả tốc độ và hướng của một động cơ Dự án 3-4: Điều khiển tốc độ và hướng Trong số các những lý do một cầu H là rất hữu ích là nó cho phép chúng ta chuyển hướng của động cơ và điều khiển tốc độ của động cơ Dự án này sẽ cho bạn thấy làm thế nào để kiểm soát tốc độ và hướng của động cơ với một chiết áp và một nút nhấn Tập hợp các phần cứng Hình 3-11 cho thấy các phần cứng được sử dụng của dự án... với cổng motor A, và chiết áp được kết nối với pin analog 0, pin + 5V, và đất Ngoài ra, công tắc được kết nối với pin digital 10 và đất Hình 3-18 Sơ đồ của dự án này Viết phần mềm Trong dự án này, chúng ta cần phải sử dụng cả hai chân analog và digital Các pin analog sẽ được sử dụng để kiểm soát tốc độ của động cơ, và pin digital để điều khiển hướng của động cơ (thông qua H-bridge và biến tần hex)... mappedPotPin được gửi tới motorPin Cuối cùng, chúng ta điều khiển động cơ với một có điều kiện nếu câu lệnh Nếu switchVal bằng 1, motor sẽ chuyển sang chiều kim đồng hồ; nếu không, động cơ sẽ quay ngược chiều kim đồng Dự án 3-5: Điều khiển Motors với Các lệnh nối tiếp Bây giờ bạn hiểu những điều cơ bản của điều khiển động cơ, chúng ta có thể tham quan công ty thí dụ của chúng tôi để xem nếu có bất kỳ dự án cho... thành yêu cầu sử dụng các Arduino để điều khiển động cơ Nó không! Vì vậy, bước đầu tiên của chúng tôi đang thu thập những yêu cầu và tạo ra các tài liệu theo yêu cầu Tập hợp yêu cầu Các khách hàng đã thành lập một cuộc họp và có một số yêu cầu đối với một robot điều khiển bởi Arduino sử dụng giao tiếp nối tiếp; Arduino sẽ lái hai động cơ với sự giúp đỡ của một lá chắn motor Dự án của khách hàng cũng yêu... tiên và thứ ba trong các giá trị tách bằng dấu phẩy là sự chỉ đạo của mô tơ A và B, và các tham số thứ hai và thứ tư là tốc độ của mô tơ A và B • Màn hình nối tiếp phải in ra dữ liệu theo định dạng này: Motor A 1 255 Motor B 1 255 • Mục đích chung của chương trình này là để kiểm soát tốc độ và hướng của hai mô tơ 6V Bây giờ chúng ta có các yêu cầu phần cứng và phần mềm, chúng ta có thể tạo ra sơ đồ của. .. nối đến lá chắn động cơ đến phía trên cùng của Arduino Tiếp theo, chúng ta cần phải cắm chiết áp để Arduino Dây giữa chiết áp sẽ kết nối với chân analog 0, và các dây đầu tiên và cuối cùng sẽ được kết nối với pin + 5V và nối đất tương ứng Sau khi bạn có chiết áp kết nối, kết nối động cơ đến cổng A trên Motor Shield Cuối cùng, kết nối cáp USB từ máy tính tới các Arduino Xem Hình 3-9 và 3-10 để đảm bảo... trị của nó để kiểm soát tốc độ của động cơ Sau khi mã hóa hoàn tất mở rộng các giá trị chiết áp, các giá trị thu nhỏ được gửi đến PWM pin 3, được khởi tạo như motorPin Phần tiếp theo sẽ thêm vào các dự án đầu tiên mà bạn tạo ra trong chương này Chúng ta sẽ điều khiển nhiều motor với các nút Dự án 3-3: Kiểm soát nhiều Motor với Arduino Trong phần này, chúng ta sẽ thảo luận về việc áp dụng điều khiển. .. 3-21 Sơ đồ luồng cho dự án này Cấu hình phần cứng Các cấu hình của dự án này là đầu tiên kết nối Arduino đến lá chắn motor; tiếp theo, kết nối hai động cơ để cổng A và B trên lá chắn motor Cuối cùng, kết nối USB với Arduino và máy tính Hình 3-22 và 3-23 minh họa cho cấu hình phần cứng Hình 3-22 Các động cơ được kết nối với cổng motor A và B trên lá chắn motor Hình 3-23 Các sơ đồ mạch cho dự án này... mềm cho dự án này Chúng ta cần phải giao tiếp với cả hai chân kỹ thuật số và analog Không giống như trong các dự án trước đây chúng ta, ở đây chúng ta sẽ giao tiếp dữ liệu bằng phương tiện truyền thông, vì vậy chúng ta phải gửi nhiều tập hợp dữ liệu, đặc biệt là hướng của motor A, tốc độ của motor A, hướng của motor B, và tốc độ của motor B Chúng ta cần phải dùng theo kiểu tách bằng dấu phẩy để phân... chắn motor Dự án của khách hàng cũng yêu cầu người dùng gửi các thông số của motor dưới dạng tách bằng dấu phẩy để giám sát nối tiếp (thể hiện trong hình 3-19) như sau: 1,255,1,255 Theo định dạng này, tham số thứ nhất là hướng của motor A; tham số thứ hai là tốc độ của motor A; thứ ba là sự chỉ đạo của motor B, và thứ tư là tốc độ của motor B Màn hình nối tiếp hiển thị thông tin ở định dạng này: Motor . hướng của một động cơ. Dự án 3-4: Điều khiển tốc độ và hướng Trong số các những lý do một cầu H là rất hữu ích là nó cho phép chúng ta chuyển hướng của động cơ và điều khiển tốc độ của động cơ. . vấn đề cơ bản của điều khiển động cơ trong bốn dự án riêng biệt: bật một động cơ với một nút bấm, kiểm soát tốc độ của một động cơ với chiết áp, kiểm soát nhiều động cơ với Arduino, và cuối. giúp bổ sung kiến thức của bạn về điều khiển động cơ. Phần tiếp theo sẽ thảo luận về kiểm soát tốc độ của một động cơ với chiết áp. Dự án 3-2: Kiểm soát tốc độ của một động cơ với một chiết áp Sử

Ngày đăng: 03/11/2014, 04:07

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan