ArduiBlock: Không cần viết code - Điều khiển motor qua bluetooth

I. Dẫn nhập

Tôi là một gà mờ về điện điện tử, chả biết tý gì ^^. Tuy thế nhìn những lúc thằng con chơi xe điều khiển lại nảy ra ý tưởng : ít ra mình cũng biết lập trình, sao không làm cái gì đó hay hay cho nó. Thế ròi giờ ở cái tuỏi U40 lại lọ mọ tìm kiếm và cuối cùng dc cái kết quả arduino.vn và bài viết trên, vui, sung sướng. Thế là bắt đầu tìm hiểu.

Thú thật là cho đến tận bây giờ trên tay mình vẫn chưa có 1 sản phẩm arduino nào cả. Tất cả đến từ việc tìm kiếm: công cụ lập trình thích hợp, công cụ mô phỏng thích hợp, làm sao cho nó đơn giản hơn với mình và ai đó có hứng thú.

Thế là lục ra được ArduBlock và vài dòng code "made in tự tui": với các bạn có lẽ là không khó khăn gì với đại đa số người, nhưng với tôi là 1 sự khởi đầu tốt.

II. Chiến nào

1. Công cụ

2. Bắt tay làm thôi

Vệc nối mach nhu thế nào, tôi nghĩ chắc các bạn cũng đã tham khảo nhièu bài viết rồi hoặc là có thể tụ nghiên cứu thêm dc. Tôi giới thiệu đến cách tiếp cận qua ArduBlock thôi nhé, còn có khúc mắc thì post lên, chúng ta cùng nghiên cứu ^^

Việc cài đặt ArduBlock thì các bạn làm theo hướng dẫn sau : http://blog.ardublock.com/engetting-started-ardublockzhardublock/

3. Code

#include <SoftwareSerial.h>
#include <AFMotor.h>

SoftwareSerial bleShield(2, 3);
bool _ABVAR_1_var= false ;
AF_DCMotor motor_dc_1(1, MOTOR12_64KHZ);
char _ABVAR_2_blvar = ' ' ;

void setup()
{
  pinMode( 1 , INPUT);
  pinMode( 2 , INPUT);
  bleShield.begin(19200);

  _ABVAR_1_var = HIGH ;

  motor_dc_1.setSpeed(255);
  motor_dc_1.run(RELEASE);

}

void loop()
{
  if (( ( digitalRead(1) ) == ( _ABVAR_1_var ) ))
  {
    motor_dc_1.setSpeed(255);
    motor_dc_1.run(FORWARD);
  }
  else
  {
    if (( ( digitalRead(2) ) == ( _ABVAR_1_var ) ))
    {
      motor_dc_1.setSpeed(255);
      motor_dc_1.run(BACKWARD);
    }
  }
  while ( bleShield.available() )
  {
    _ABVAR_2_blvar = bleShield.read();
    if (( ( _ABVAR_2_blvar ) == ('1') ))
    {
      motor_dc_1.setSpeed(255);
      motor_dc_1.run(FORWARD);
    }
    if (( ( _ABVAR_2_blvar ) == ('2') ))
    {
      motor_dc_1.setSpeed(255);
      motor_dc_1.run(BACKWARD);
    }
  }

}

Chưa hiểu lắm về tính năng viết bài trên web này, thấy nó hơi rắc rối. Bản này mình test với 2 nút bấm điều khiển motor thư viện AFMotor.h 

Sau đó là test với module Bluetooth tính năng tín hiệu thông qua điện thoại android có cài app dk, đã có bạn viết bài này rồi, mọi người tham khảo:

  • http://arduino.vn/bai-viet/654-lam-xe-dieu-khien-tu-xa-bang-bluetooth-dieu-khien-bang-android-voi-app-inventor ,
  • http://arduino.vn/bai-viet/657-huong-dan-su-dung-appinventor-lap-trinh-ung-dung-dieu-khien-xe-qua-bluetooth-ma-khong

Cám ơn đã xem bài

p/s : trong bài có một số pin tui để nhầm : pin 1, pin 2, pin của BLE : ae test trên mạch thực tế thì chỉnh lại nhé. vì tui mô phỏng arduino code nó chạy bình thường ^^

Link file thiết kế của ardublock https://drive.google.com/file/d/0Bz0oKsQSelRVa0FZNUZkNzY0Rms/view?usp=sharing (mirror)

Những hình ảnh về dự án: 
lên
10 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ả

ArduiBlock: Lập trình Arduino Không cần code - xe tăng cơ bản

Tiếp nối bài viết trước, bài viết này cho cái nhìn sâu hơn về các tính năng của ArduBlock mình viết full code cho xe tăng điều khiển cơ bản, làm cho con chơi ^^

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