Điều khiển động cơ Servo bằng điện thoại

1.Giới thiệu

Sơ lượt lại một chút về động cơ servo và module HC-06

a. Động cơ Servo

Servo là một dạng động cơ điện đặc biệt. Không giống như động cơ thông thường cứ cắm điện vào là quay liên tục, servo chỉ quay khi được điều khiển (bằng xung PPM) với góc quay nằm trong khoảng bất kì từ 0o - 180o. Mỗi loại servo có kích thước, khối lượng và cấu tạo khác nhau. Có loại thì nặng chỉ 9g (chủ yếu dùng trên máy bay mô mình), có loại thì sở hữu một momen lực bá đạo (vài chục Newton/m), hoặc có loại thì khỏe và nhông sắc chắc chắn,...

Hình 1: Động cơ servo Futaba

b. Module HC-06

Module này gồm 4 chân GND, VCC, TX, RX Khi kết nối bạn chỉ cần nối chân TX với chân 0 và chân RX nối với chân 1 trên Arduino sau đó bạn có thể lập trình gửi và nhận dữ liệu như 1 cổng Serial thông thường. Module này có 3 loại: Master, Slave và loại chạy được cả 2 chế độ Master và Slave, ở ví dụ này tôi sử dụng loại Slave, khi kết nối với điện thoại bạn điền mật khẩu mặc định là: 1234

.

Hình 2 : Module Bluetooth HC-06

Nhiêu đó thôi để hiểu kỹ hơn mời các bạn quay lại các bài trước về HC-06 và Servo

2. Tại sao có bài viết này

Với tinh thần chia sẻ những kiến thức đã có và cùng nhau chế tạo ROBOT sau bài viết này hứa hẹn sẽ có nhiều bài viết nữa, có thể nói là toàn bộ quá trình làm nên dự án của mình. Cùng với đó nhằm tham gia cuộc thi CCA do cộng động Arduino tổ chức mong các bạn góp ý và ủng hộ qua những comemnt góp ý bên dưới.

3. Chuẩn bị

Cách nối dây module HC-06

Hình 3: Cách nối dây Module HC-06

Cách nối dây module LM-2596 và Servo

Ở bài viết này mình xin hướng dẫn các bạn cách cấp nguồn riêng cho động cơ servo dùng module LM2596. Vì động cơ Servo Futaba không thể lấy nguồn trực tiếp từ Arduino. Nếu lấy nguồn trực tiếp dễ gây sụt áp và cháy board điều này chả ai muốn.

Hình 4: Cách nối dây động cơ servo và cấp nguồn cho Servo thông qua LM2596

Lưu ý:

Để cấp nguồn ngoài cho động cơ servo ta cần phải nối chân GND (-) của động cơ servo với Arduino thì động cơ mới hoạt động được.

Ở đây khi ta cấp nguồn cho LM2596 ta tiến hành vặn biến trở trên module để hiệu điện thế đầu ra về đúng 5V hoặc giao động từ 5V ~ 6V rồi mới lắp vào mạch. 

Cách cấp - lấy nguồn từ module này.  Trên board đã ghi sẵn chân OUT và IN chân IN có nghĩa là đầu vào và OUT là đầu ra các bạn tránh nhầm lẫn và lắp sai cực dẫn đến làm hỏng nó

Hình 5: Module LM2596

4. Lập trình

#include <Servo.h>// Khai báo thư viện điều khiển
byte bluetoothByte = 0;
Servo servo;
// Khai báo động cơ servo
int servopos= 0;
void setup()
{
    servo.attach(9);
    // Khởi chạy động cơ servo chân ở 9
    Serial.begin(9600);
}
void loop()
{
    if (Serial.available() > 0)
    {
        bluetoothByte = Serial.read();
    }
    /////////////////Tay robot///////////////////////////////////
    if (bluetoothByte == 1)// khi nhận tính hiệu từ ứng dụng điều khiển
    {
        servopos++ ;
        // làm quay góc của servo
        if(servopos == 181)
        {
            servopos = 180;
        }
        servo.write(servopos);
        delay(5);
    }
    ////////////////////////////////
    else if (bluetoothByte == 2)
    {
        servopos-- ;
        if(servopos == -1)
        {
            servopos = 0;
        }
        servo.write(servopos);
        delay(5);
    }
}

5. Điều khiển nó

Ở đây để điều khiển được động cơ servo thì bạn cần có một ứng dụng riêng để điều khiển bạn có thể bạn về bằng đường link hoặc quét QR code bên dưới để tải ứng dụng về điện thoại.

Để có thể tự thiết kế một ứng dụng điều khiển bạn có thể sử dụng trang web http://ai2.appinventor.mit.edu/ công việc lập trình ứng dụng rất đơn giản chỉ với thao tác kéo thả. Sau bài viết này mình sẽ hướng dẫn các bạn tự viết một ứng dụng cho riêng mình sử dụng công cụ của trang web này. Hoặc bạn có thể tìm hiểu trên những trang nước ngoài đều có sẵn

Link : https://drive.google.com/file/d/0B7C7VugAcvwJcERhT052TFZITUk/ (mirror)

Hình 6: QR code để tải ứng dụng về

Dưới đây là giao diện ứng dụng điều khiển mọi nút ấn đề có tên sẵn bạn có thể dễ dàng sử dụng

Hình 7: Giao diện chương trình điều khiển

Từ bài viết này bạn có thể sử dụng nó để tạo ra nhưng ứng dụng hay hơn từ động cơ servo, nó có rất nhiều ứng dụng đấy bạn hãy tìm hiểu nhé. Với tôi, tôi đã dùng nó vào việc điều khiển cánh tay ROBOT cho dự án của mình.

Nó hơi xấu phải không vì được làm thủ công mà.

Hình 8. Cánh tay TBOT

Bài viết của mình đến đây là hết hẹn gặp lại các bạn trong bài viết tiếp theo hướng dẫn làm RoBot. Vui lòng để lại coment dưới bài viết!

lên
17 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Bộ điều khiển PID - ứng dụng phần 2 - xe dò line dùng thuật toán PID

Tiép nối bài viết về xe dò line cảm ơn Đỗ Hữu Toàn đã viết hộ mình phần 4. hôm nay mình sẽ làm cho chiếc xe dò line đi mượt và có hồn hơn 

lên
34 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Điều khiển động cơ Servo từ xa bằng biến trở - Sử dụng module nRF24L01

Nhiều bạn đã và đang tìm hiểu những ứng dụng của module nRF24L01 và đang gặp rắc rối, hay không biết liệu nó có làm được gì hay hơn không. Ở bài viết này tôi xin hướng dẫn một cách tiếp theo để điều khiển động cơ Servo thông qua module nRF24L01 và biến trở. Nó làm được gì không? Ở đây tác giả tạm giữ bí mật về ứng dụng của nó trên dự án của mình. Nhưng với bài viết này hoàn toàn bạn có thể nghĩ ra ứng dụng cho nó chẳng hạn tăng tốc độ máy quạt từ xa, điều chỉnh van nước,... Chả có gì khó cả, ta bắt đầu thôi nào!

lên
25 thành viên đã đánh giá bài viết này hữu ích.

Loạt bài viết về cảm biến vân tay R308

Đã lâu không viết vài và củng không khai thác được module gì mới vì những thành viên của arduino.vn quá tích cực đã khai thác hầu hết các module Một Rate cho bài này nào laugh. Hoan hô tinh thần của cộng đồng . Và hôm nay tôi quay trở lại với loạt bài cảm biến vân tay bao gồm về hướng dẫn sử dụng , thêm, xóa, đọc dấu vân tay với module cảm biến vân tay. Sau loạt bài này tôi tin bạn có thể dùng nó cho những dự án bảo mật cho căn nhà bạn hay ... cái đó bạn tự nghĩ thêm nha hết ý tưởng rồi cheeky

lên
4 thành viên đã đánh giá bài viết này hữu ích.