ĐĂNG KÍ NHẬN TIN TỰ ĐỘNG

Nhập địa chỉ E-mail vào ô phía trên để nhận tin mới liên tục từ Tự Tay Làm

Tạo mô hình xe tăng bằng giấy có khả năng chuyển động

Đăng lúc: Thứ ba - 17/09/2013 10:03 - Người đăng bài viết: Ban Biên Tập
Chia sẻ lên Facebook Chia sẻ lên Twitter Chia sẻ lên Yahoo Chia sẻ lên Zing Me Chia sẻ lên Yume Chia sẻ lên Link hay Chia sẻ lên Google+
xe tang dieu khien

xe tang dieu khien

(Sản phẩm sáng tạo) – Trong bài viết này, Sangtao24 giới thiệu đến các bạn cách làm một mô hình xe tăng bằng giấy có khả năng di chuyển và điều khiển từ xa. Mô hình xe tăng được làm bằng giấy (không cần đến các vật dụng đắt tiền như máy cắt laser, dụng cụ điện hoặc máy in 3D) và dựa trên hệ thống mạch Arduino.
Sau đây là các bước thực hiện:
Bước 1: Tạo/chọn mô hình
Bạn có thể sử dụng công cụ Google để tìm kiếm một mô hình xe tăng, hoặc có thể vào địa chỉ này. Nếu có thể tự mình thiết kế một mô hình thì bạn sử dụng các loại giấy cứng rồi cắt ghép chúng lại.
mo hinh xe tang bang giay
Bạn có thể tự lựa chọn màu sắc cho chiếc xe tăng mô hình của mình, có thể là màu đỏ, màu trắng, màu xanh lá cây. Bạn có thể tải các thành phần của mô hình tại địa chỉ này.

Bước 2: Chọn tính năng
mo hinh xe tang bang giay
            Một số điều cần lưu ý khi chọn tính năng cho xe tăng mô hình: luôn giữ đơn giản, biết các giới hạn, luôn hoạt động và sáng tạo. Ví dụ, bạn có thể chọn một số tính năng: quay khẩu pháo, di chuyển trên mặt đất, kiểm soát được tốc độ.
Bước 3: Chuẩn bị các vật liệu
            Bạn cần chuẩn bị các vật liệu sau:
vat lieu can thiet cho xe tang
  1. 4 Gear Motors - $24
  2. 4 Wheels - $12
  3. Motor Shield - eBay ($5)
  4. Arduino Uno - eBay ($10)
  5. 5xAA Battery Holder - ($2)
  6. Foam Board - your local dollar store ($1)
  7. Bluetooth Adapter ($8)
  8. 1 Servo - eBay ($3)
  9. Paper
  10. Glue/Tape
Và các dùng cụ cần thiết cho quá trình chế tạo: kéo cắt giấy, dao, bút, thước, thiết bị hàn sắt.
Bước 4: Xây dựng Arduino proptype


mo hinh xe tang dieu khien tu xa

Bước 5: Thiết kế Protoype
xe tang di chuyen
            Sau khi đã chọn và tạo xong mô hình bằng giấy, việc tiếp theo là phải kết dính các mạch sao cho có kích thước gần bằng kích thước của mô hình. Có thể sử dụng băng keo để kết chặt các thành phần lại với nhau.

Bước 6: Cắt ghép mô hình với bộ phận động cơ
xe tang dien khien tu xa
            Đây là một khâu thủ công đòi hỏi sự khéo léo của người thiết kế thì sản phẩm làm ra mới mang tính thẩm mỹ cao.

Bước 7: Có thể thực hiện lại các bước trước cho những tính năng khác



Bước 8: Gắn pin theo mô hình

            Bạn có thể gắn kèm pin bên dưới thân xe để tiện cho việc thay đổi pin khi hết pin. Tốt nhất bạn sử dụng các loại pin sạc dành cho máy ảnh để tiết kiệm chi phí pin.
Bước 9: Tích hợp nút khởi động


Bước 10: Gắn vào bộ phận điều khiển


- Kết nối các động cơ vào chân cắm trên mạch Arduino.
- Kết nối Ground and Power đến thiết bị đầu cuối của pin
- Gắn Servo vào servo socket
- Cắm các bộ phận nhận bluetooth PWR to 5V, GND to GND, Rx to A4, Tx to A5
- Cắm đèn LED - A0 và GND
- Cắm Switch - A1 và GND
Bước 11: Viết chương trình
Bạn có thể sử dụng đoạn code sau đây:

#include
#include //Software Serial Port

#include

Servo myservo;
int mySpeed;
int turretAngle;
char val;
char prevAction;
AF_DCMotor motor_1(1);
AF_DCMotor motor_2(2);
AF_DCMotor motor_3(3);
AF_DCMotor motor_4(4);


#define RED A0
#define SET A1
#define RxD A5 // This is the pin that the Bluetooth (BT_TX) will transmit to the Arduino (RxD)
#define TxD A4

SoftwareSerial blueToothSerial(RxD,TxD);

int switchVal;
bool running;

void setup() {
  Serial.begin(9600); // Allow Serial communication via USB cable to computer (if required)
  pinMode(RxD, INPUT); // Setup the Arduino to receive INPUT from the bluetooth shield on Digital Pin 6
  pinMode(TxD, OUTPUT); // Setup the Arduino to send data (OUTPUT) to the bluetooth shield on Digital Pin 7
  pinMode(13,OUTPUT); // Use onboard LED if required.
  pinMode(RED, OUTPUT);  
  pinMode(SET,INPUT_PULLUP);  

  blueToothSerial.begin(9600);

  turretAngle = 90;
  switchVal = HIGH;


  mySpeed = 255;
  // turn on motor
  SetSpeed ();
  myservo.attach(9);
  Release();
}

void loop() {

  int sensorVal = digitalRead(SET);
  if (sensorVal == LOW)
  {
    running =! running;
    digitalWrite(RED, running? HIGH:LOW);
    delay (400);
  }


  if (true)
  {
    if(blueToothSerial.available())
    {
      val = blueToothSerial.read();
      Serial.print(val); // Print the character received to the Serial Monitor (if required)
      prevAction = val;

      if( val == 'F' ) //fwd         
      {
        SetSpeed();
        Forward();
      }
      else if( val == 'L' ) //left         
      {
        SetSpeed();
        Left();
      }
      else if( val == 'R' ) //right      
      {
        SetSpeed();
        Right();
      }
      else if( val == 'B' ) //reverse       
      {
        SetSpeed();
        Reverse();
      }
      else if( val == 'S' ) // top      
      {
        Release();
      }
      else if( val == 'G' ) // NW
      {
        NorthWest();
      } 
      else if( val == 'I' ) // NE  
      {
        NorthEast();
      } 
      else if( val == 'J' ) // SE
      {
        SouthEast();
      } 
      else if( val == 'H' ) // SW  
      {
        SouthWest();
      } 
      else if( val == '1' ) // speed
      {
        mySpeed = 255/10;
      }
      else if( val == '2' ) // speed
      {
        mySpeed = 255/10*2;
      }
      else if( val == '3' ) // speed
      {
        mySpeed = 255/10*3;
      }
      else if( val == '4' ) // speed 1 
      {
        mySpeed = 255/10*4;
      }
      else if( val == '5' ) // speed 1 
      {
        mySpeed = 255/10*5;
      }
      else if( val == '6' ) // speed 1 
      {
        mySpeed = 255/10*6;
      }
      else if( val == '7' ) // speed 1 
      {
        mySpeed = 255/10*7;
      }
      else if( val == '8' ) // speed 1 
      {
        mySpeed = 255/10*8;
      }
      else if( val == '9' ) // speed 1 
      {
        mySpeed = 255/10 *9;
      }
      else if( val == 'q' ) // speed 1 
      {
        mySpeed = 255;
      }
      else if( val == 'X' || val == 'x'  )
      {
        Reverse();
        delay(50);
        Forward();
        delay(50);
        Release();
      }
       else if( val == 'V' || val == 'v'  )
      {
          running =! running;
    digitalWrite(RED, running? HIGH:LOW);
      }
     
    }
    else
    {
      if( val == 'W'  )
      {
        TurretLeft();
      }
      else if( val == 'U' )
      {
        TurretRight();
      }
    }
  }
  else
  {
    Release();
  }
}

void MoveTurret()
{
  if (turretAngle < 30)
    turretAngle = 30;
  if (turretAngle > 150)
    turretAngle = 150;
  myservo.write(turretAngle);
}

void TurretLeft()
{
  turretAngle +=1;
  MoveTurret();
  delay(10);
}

void TurretRight()
{
  turretAngle -=1;
  MoveTurret();
  delay(10);
}

void Forward()
{
  motor_1.run(FORWARD);
  motor_2.run(FORWARD);
  motor_3.run(FORWARD);
  motor_4.run(FORWARD);
}

void Reverse()
{

  motor_1.run(BACKWARD);
  motor_2.run(BACKWARD);
  motor_3.run(BACKWARD);
  motor_4.run(BACKWARD);
}

void Left()
{
  motor_1.run(FORWARD);
  motor_2.run(BACKWARD);
  motor_3.run(BACKWARD);
  motor_4.run(FORWARD);
}

void Right()
{
  motor_1.run(BACKWARD);
  motor_2.run(FORWARD);
  motor_3.run(FORWARD);
  motor_4.run(BACKWARD);
}

void Release()
{
  motor_1.run(RELEASE);
  motor_2.run(RELEASE);
  motor_3.run(RELEASE);
  motor_4.run(RELEASE);
}


void NorthWest()
{
  SetSpeedLeft();


void NorthEast()
{
  SetSpeedRight();
  Forward();

void SouthEast()
{
  SetSpeedRight();
  Reverse();


void SouthWest()
{
  SetSpeedLeft();
  Reverse();
}

void SetSpeed()
{
  motor_1.setSpeed(mySpeed);
  motor_2.setSpeed(mySpeed);
  motor_3.setSpeed(mySpeed);
  motor_4.setSpeed(mySpeed);
}

void SetSpeedRight()
{
  motor_1.setSpeed(mySpeed/2);
  motor_2.setSpeed(mySpeed);
  motor_3.setSpeed(mySpeed);
  motor_4.setSpeed(mySpeed/2);
}

void SetSpeedLeft()
{
  motor_1.setSpeed(mySpeed);
  motor_2.setSpeed(mySpeed/2);
  motor_3.setSpeed(mySpeed/2);
  motor_4.setSpeed(mySpeed);
}

 
Bước 12: Bluetooth

Có  rất nhiều ứng dụng giúp điều khiển xe thông qua bluetooth, bạn có thể tải mã nguồn này tại chợ ứng dụng Google Play, địa chỉ này Arduino Bluetooth RC Car.
Bước 13: Hoàn thành sản phẩm


Các bạn có thể tham khảo về trình diễn hoạt động của xe tăng mô hình ở chuyên mục Video.

Tác giả bài viết: Bùi Thanh Liêm
Nguồn tin: evntel.com
Từ khóa:

san pham, xe tang, dieu khien

Đánh giá bài viết
Tổng số điểm của bài viết là: 41 trong 9 đánh giá
Click để đánh giá bài viết
 

Thăm dò ý kiến

Tham khảo ý kiến về website Sản phẩm tự chế

Không nên mở thêm website này.

Ý tưởng tốt, tôi thích website này.

Giao diện website đẹp, dễ tương tác.

Giao diện website màu mè, dễ bị phân tán.