- Vật liệu cần thiết
- Mô-đun Bluetooth HC-06
- Sơ đồ mạch
- Cấu hình ứng dụng Roboremo để điều khiển Servo:
- Mã và giải thích
- Hoạt động của Điều khiển động cơ Servo bằng Bluetooth:
Sử dụng động cơ Servo phổ biến trong Robotics để điều khiển chính xác. Ở đây, trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng động cơ Servo không dây với Arduino UNO và thiết bị Android qua kết nối Bluetooth. Chúng tôi đã điều khiển servo bằng Arduino, lần này chúng tôi đang Điều khiển động cơ Servo bằng Arduino và Bluetooth.
Vật liệu cần thiết
- Arduino UNO
- Mô-đun Bluetooth HC-05 hoặc HC-06
- Động cơ Servo
- Ứng dụng Roboremo từ Playstore
- Breadboard
- Kết nối dây
Mô-đun Bluetooth HC-06
Bluetooth có thể hoạt động ở hai chế độ sau:
- Chế độ lệnh
- Chế độ hoạt động
Trong Chế độ lệnh, chúng ta sẽ có thể định cấu hình các thuộc tính Bluetooth như tên của tín hiệu Bluetooth, mật khẩu của nó, tốc độ truyền hoạt động, v.v. Chế độ Điều hành là chế độ mà chúng ta có thể gửi và nhận dữ liệu giữa Vi điều khiển PIC và mô-đun Bluetooth. Do đó, trong hướng dẫn này, chúng tôi sẽ chỉ đùa giỡn với Chế độ vận hành. Chế độ Lệnh sẽ được để ở cài đặt mặc định. Tên Thiết bị sẽ là HC-05 (Tôi đang sử dụng HC-06) và mật khẩu sẽ là 0000 hoặc 1234 và quan trọng nhất là tốc độ truyền mặc định cho tất cả các mô-đun Bluetooth sẽ là 9600.
Mô-đun hoạt động trên nguồn cung cấp 5V và các chân tín hiệu hoạt động trên 3.3V, do đó, bộ điều chỉnh 3.3V có trong chính mô-đun. Do đó chúng ta không cần phải lo lắng về nó. Trong số sáu chân chỉ có bốn chân sẽ được sử dụng trong Chế độ vận hành. Bảng kết nối pin được hiển thị bên dưới
S. không | Ghim trên HC-05 / HC-06 | Ghim tên trên MCU | Số pin trong PIC |
1 | Vcc | Vdd | Chốt thứ 31 |
2 | Vcc | Gnd | Chân thứ 32 |
3 | Tx | RC6 / Tx / CK | Chốt thứ 25 |
4 | Rx | RC7 / Rx / DT | Chốt thứ 26 |
5 | Tiểu bang | NC | NC |
6 | EN (Bật) | NC | NC |
Kiểm tra các dự án khác của chúng tôi để tìm hiểu thêm về mô-đun Bluetooth HC-05 với các bộ vi điều khiển khác:
- Ô tô đồ chơi điều khiển bằng Bluetooth sử dụng Arduino
- Hệ thống tự động hóa gia đình được điều khiển bằng Bluetooth sử dụng 8051
- Đèn điều khiển bằng giọng nói sử dụng Raspberry Pi
- Đài FM được điều khiển trên điện thoại thông minh bằng Arduino và Xử lý
- Giao tiếp Mô-đun Bluetooth HC-06 với Bộ vi điều khiển PIC
Cũng kiểm tra tất cả các dự án liên quan đến bluetooth tại đây.
Sơ đồ mạch
Sơ đồ mạch cho dự án Điều khiển động cơ Servo Bluetooth Arduino này được đưa ra dưới đây:
Cấu hình ứng dụng Roboremo để điều khiển Servo:
Bước 1: - Tải xuống ứng dụng Roboremo từ Cửa hàng Play của Android và cài đặt nó vào điện thoại thông minh của bạn. Sau khi cài đặt nó, bạn sẽ thấy cửa sổ ứng dụng như trong hình 1 và bằng cách nhấp vào nút 'Menu', bạn sẽ thấy cửa sổ hiển thị trong hình 2 bên dưới:
Bước 2: - Sau đó nhấp vào nút kết nối và bạn sẽ thấy cửa sổ hiển thị trong hình 3 bên dưới, bạn phải chọn ' Bluetooth RFCOMM' và sau đó bạn sẽ có thể kết nối mô-đun bluetooth HC-06 của mình với ứng dụng Android 'Roboremo'.
Bước 3: - Sau khi kết nối với module bluetooth HC-06, quay trở lại cửa sổ hình 2 sau đó nhấp vào ' chỉnh sửa ui ' để tạo giao diện người dùng theo nhu cầu của bạn.
Khi nhấp vào 'chỉnh sửa ui', bạn sẽ lại thấy cửa sổ hiển thị trong hình1 sau đó nhấp vào bất kỳ đâu trên màn hình, bạn sẽ thấy cửa sổ ứng dụng như hình4 và chọn ' Nút ' để lấy cấu trúc nút.
Bước 4: - Sau khi chọn nút bạn sẽ nhận được cấu trúc nút trên màn hình để chỉnh sửa. Bạn có thể thay đổi kích thước và di chuyển cấu trúc ở bất kỳ đâu trên màn hình. Bây giờ, để thiết lập giá trị được gửi khi nhấp qua Bluetooth, bạn có 'thiết lập hành động nhấn' (như thể hiện trong hình 6) và nhập giá trị bạn muốn gửi từ nút cụ thể đó. Giống như, chúng tôi đang gửi '1' để xoay servo bằng cách nhấn nút 'Bắt đầu' trong ứng dụng Roboremo android.
Bạn có thể kiểm tra tất cả các giá trị, được gửi khi nhấp vào các nút khác nhau, trong bảng đưa ra phần sau.
Bước 5: - Cuối cùng chúng ta có Giao diện người dùng để điều khiển động cơ servo bằng Smartphone.
Mã và giải thích
Mã hoàn chỉnh cho Động cơ Servo điều khiển Arduino Qua Bluetooth được đưa ra ở cuối.
Arduino có thư viện cho Servo Motors và nó xử lý tất cả những thứ liên quan đến PWM để xoay servo, bạn chỉ cần nhập góc mà bạn muốn xoay và có chức năng servo1.write (angle); sẽ xoay servo theo góc mong muốn.
Vì vậy, ở đây chúng ta bắt đầu bằng cách xác định thư viện cho động cơ Servo và thư viện Phần mềm Serial được sử dụng để xác định chân Rx và Tx.
#include
Trong đoạn mã dưới đây, chúng tôi đang khởi tạo các chân Arduino cho Rx và Tx, xác định các biến cho servo và những thứ khác .
Servo myServo; int TxD = 11; int RxD = 10; int servoposition; int servopos; int new1; Phần mềm bluetooth trên không (TxD, RxD);
Bây giờ, thiết lập tất cả các biến và các thành phần ở giai đoạn ban đầu. Ở đây chúng tôi đã gắn servo vào chân thứ 9 của Arduino và đặt vị trí ban đầu của servo về 0 độ. Tốc độ truyền cho giao tiếp nối tiếp và Bluetooth cũng đã được đặt thành 9600.
void setup () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // bắt đầu giao tiếp nối tiếp ở 9600bps bluetooth.begin (9600); }
Trong chức năng vòng lặp vô hiệu , Arduino sẽ luôn kiểm tra các giá trị đến và xoay servo theo giá trị nhận được từ Điện thoại thông minh. Tất cả các giá trị sẽ được nhận bằng Giao tiếp nối tiếp.
Nếu giá trị là 0, servo sẽ xoay về 0 độ. Tương tự nếu chúng tôi gửi 45, 90, 135 và 180 từ ứng dụng Bluetooth, servo sẽ xoay theo góc tương ứng 45, 90, 135 và 180 độ.
void loop () { if (bluetooth.available ()) { Giá trị chuỗi = bluetooth.readString (); servoposition = value.toInt (); if (value.toInt () == 0) { Serial.println (servoposition); myServo.write (0); } if (value.toInt () == 45) { Serial.println (servoposition); myServo.write (45); } if (value.toInt () == 90) { Serial.println (servoposition); myServo.write (90); } if (value.toInt () == 135) { Serial.println (servoposition); myServo.write (135); } if (value.toInt () == 180) { Serial.println (servoposition); myServo.write (180); }
Nếu chúng tôi gửi giá trị '1' bằng cách nhấn nút Bắt đầu thì servo sẽ quay liên tục cho đến khi nhấn nút dừng . Ở đây chúng ta đang gửi '2' trên nhấn stop nút, mà sẽ được đọc bởi Arduino và nó sẽ phá vỡ trong khi vòng lặp và servo sẽ được dừng lại.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (giá trị); if (value.toInt () == 2) {Serial.println ("YYY"); phá vỡ; }} servopos ++; chậm trễ (30); Serial.println (servopos); myServo.write (servopos); if (servopos == 180) {servopos = 0; break;}}}}
Hoạt động của Điều khiển động cơ Servo bằng Bluetooth:
Trong dự án này, chúng tôi đang điều khiển Servo Motor bằng ứng dụng Android “Roboremo”. Trong giao diện của ứng dụng này, chúng tôi đã tạo 5 nút để điều khiển động cơ Servo như đã giải thích trước đó. Hoạt động của mọi nút được đưa ra trong bảng dưới đây:
Không. |
Tên nút |
Gửi giá trị |
Sự miêu tả |
1. |
Khởi đầu |
1 |
Nút này được sử dụng để bắt đầu xoay servo từ 0⁰ đến 180⁰. |
2. |
Dừng lại |
2 |
Nút này được sử dụng để dừng servo tại bất kỳ thời điểm nào. |
3. |
0⁰ |
0 |
Nút này được sử dụng để xoay servo về 0⁰. |
4. |
90⁰ |
90 |
Nút này được sử dụng để xoay servo đến 90⁰. |
5. |
180⁰ |
180 |
Nút này được sử dụng để xoay servo đến 180⁰. |
Vì vậy, bằng cách nhấn các nút này trên ứng dụng Android Roboremo của bạn, dữ liệu sẽ được gửi qua mô-đun Bluetooth của điện thoại thông minh đến HC-06. Từ đó, dữ liệu mô-đun HC-06 được Arduino nhận và Arduino quay Servo theo góc được xác định trong mã cho nút cụ thể. Chúng tôi cũng đã mã hóa cho góc 45 và 135, nhưng do giới hạn của ứng dụng Roboremo, bạn chỉ có thể tạo 5 nút, vì vậy chúng tôi đã bỏ qua hai nút.
Vì vậy, đây là cách bạn có thể gửi dữ liệu từ Điện thoại thông minh đến Arduino bằng Bluetooth để điều khiển servo không dây. Điều này có thể được sử dụng trong nhiều ứng dụng như ô tô đồ chơi, robot, v.v.