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 ^^

Phần code bê nguyên cái thư viện AFMotor.h vô, có sẵn cứ dùng thôi :

void sungtruoc();void sungsau(); => nòng súng hướng về trước/sau 

void sungtrai();void sungphai(); => xoay súng sang trái/phải

void lui(); void tien();void retrai();void rephai(); void xoayphai();void xoaytrai();

void battatden();

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

SoftwareSerial bleShield(2, 3);
AF_DCMotor motor_dc_1(1, MOTOR12_64KHZ);
AF_DCMotor motor_dc_2(2, MOTOR12_64KHZ);
AF_DCMotor motor_dc_3(3, MOTOR34_64KHZ);
AF_DCMotor motor_dc_4(4, MOTOR34_64KHZ);
char _ABVAR_1_var = ' ' ;
int _ABVAR_2_dem = 0 ;

void sungtruoc();
void lui();
void xoaytrai();
void sungtrai();
void retrai();
void tien();
void xoayphai();
void battatden();
void sungsau();
void sungphai();
void rephai();

void setup()
{
  bleShield.begin(19200);
  pinMode( 9 , OUTPUT);

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

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

  motor_dc_3.setSpeed(100);
  motor_dc_3.run(RELEASE);

  motor_dc_4.setSpeed(100);
  motor_dc_4.run(RELEASE);

}

void loop()
{
  if (bleShield.available())
  {
    _ABVAR_1_var = bleShield.read();
    if (( ( _ABVAR_1_var ) == ('1') ))
    {
      tien();
    }
    if (( ( _ABVAR_1_var ) == ('2') ))
    {
      lui();
    }
    if (( ( _ABVAR_1_var ) == ('3') ))
    {
      retrai();
    }
    if (( ( _ABVAR_1_var ) == ('4') ))
    {
      rephai();
    }
    if (( ( _ABVAR_1_var ) == ('5') ))
    {
      xoaytrai();
    }
    if (( ( _ABVAR_1_var ) == ('6') ))
    {
      xoayphai();
    }
    if (( ( _ABVAR_1_var ) == ('7') ))
    {
      _ABVAR_2_dem = ( _ABVAR_2_dem + 1 ) ;
    }
    battatden();
    if (( ( _ABVAR_1_var ) == ('a') ))
    {
      sungtrai();
    }
    if (( ( _ABVAR_1_var ) == ('b') ))
    {
      sungphai();
    }
    if (( ( _ABVAR_1_var ) == ('c') ))
    {
      sungsau();
    }
    if (( ( _ABVAR_1_var ) == ('d') ))
    {
      sungtruoc();
    }
  }
}

void sungtrai()
{
  motor_dc_3.setSpeed(255);
  motor_dc_3.run(BACKWARD);
}

void sungtruoc()
{
  motor_dc_4.setSpeed(255);
  motor_dc_4.run(BACKWARD);
}

void battatden()
{
   if ( _ABVAR_2_dem % 2 ) !=  0 ) 
  {
    digitalWrite( 9 , LOW );
  }
  else
  {
    digitalWrite( 9 , HIGH );
  }
}

void sungphai()
{
  motor_dc_3.setSpeed(255);
  motor_dc_3.run(FORWARD);
}

void sungsau()
{
  motor_dc_4.setSpeed(255);
  motor_dc_4.run(FORWARD);
}

void xoayphai()
{
  motor_dc_1.setSpeed(255);
  motor_dc_1.run(BACKWARD);
  motor_dc_2.setSpeed(255);
  motor_dc_2.run(FORWARD);
}

void xoaytrai()
{
  motor_dc_1.setSpeed(255);
  motor_dc_1.run(FORWARD);
  motor_dc_2.setSpeed(255);
  motor_dc_2.run(BACKWARD);
}

void rephai()
{
  motor_dc_1.setSpeed(255);
  motor_dc_1.run(RELEASE);
  motor_dc_2.setSpeed(255);
  motor_dc_2.run(FORWARD);
}

void lui()
{
  motor_dc_1.setSpeed(255);
  motor_dc_1.run(BACKWARD);
  motor_dc_2.setSpeed(255);
  motor_dc_2.run(BACKWARD);
}

void tien()
{
  motor_dc_1.setSpeed(255);
  motor_dc_1.run(FORWARD);
  motor_dc_2.setSpeed(255);
  motor_dc_2.run(FORWARD);
}

void retrai()
{
  motor_dc_1.setSpeed(255);
  motor_dc_1.run(FORWARD);
  motor_dc_2.setSpeed(255);
  motor_dc_2.run(RELEASE);
}

Phần appInventor dk có giao diện đơn sơ như sau:

(Bê nguyên cái style TX đồ chơi tank vô, chứ chả nghĩ gì ^^ ) Bạn nào chơi tank có thể thiết kế thêm bộ phận "khói", "bắn đạn"...

File để các bạn chỉnh theo ý thích của mình https://drive.google.com/open?id=0Bz0oKsQSelRVcVpEdnlYeUVyc00 (mirror)

File ArdunoBlock : https://drive.google.com/open?id=0Bz0oKsQSelRVOWRiX09SQUVIems (mirror)

Cám ơn đã xem cái thú vui nho nhỏ của cha con tui ^^ giờ thì lên kế hoạch "sản xuất" thôi ^^!

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

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

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.

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