Đ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

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Cách chế một Camera Stream cho robot không cần Raspberry Pi hay Intel Galileo

Có nhiều bạn đang tìm cách nào đó để robot của bạn có camera mà lo lắng chi phí quá cao, hay lo lắng rằng nó quá khó để thực hiện điều đó. Giải pháp đã có! Hôm nay mình xin giới thiệu một cách mới để có thể sử dụng một cái điện thoại cũ chạy hệ điều hành Android thành camera quan sát cho Robot của bạn hay làm điều gì đó cao cả hơn theo trí tưởng tượng của bạn! 

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

Bật tắt đèn bằng giọng nói với Arduino

Đã có nhiều bài viết về sử dụng bluetooth để bật tắt thiết bị từ xa, hay là những cách điều khiển khác bằng button nhưng liệu bạn có nghĩ bạn có thể bật tắt thiết bị (Ví dụ ở đây là một đèn LED, nếu muốn bật tắt thiết bị 220V bạn tham khảo thêm bài này) từ xa bằng giọng nói hay không? Có vẻ có gì đó không ổn đúng không nào, nhưng nó không khó và không có gì là không ổn cả. Với bài viết này tác giả muốn giúp mọi người có thể làm được điều này một cách dễ dàng và ứng dụng nó làm điều mình thích!

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