ĐĂ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

Làm bàn cờ tướng điện tử ẩn chứa thông tin bí mật

Đăng lúc: Thứ ba - 29/10/2013 08:18 - 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+
ban co tuong dien tu

ban co tuong dien tu

(Sản phẩm sáng tạo) – Nhằm để tăng thêm tính khiêu chiến cho hai người tham gia trong cờ tướng thì chiếc bàn cờ được thiết kế đặc biệt sau đây sẽ giúp cho họ có thêm động lực thi đấu. Đây là một bàn cờ có một ngăn kéo được điều khiển bởi mạch điện tử Arduino, trong ngăn kéo này có thể chứa một từ khóa bí mật hoặc một vật dụng hoặc một phần thưởng nào đó.
Về cách thức hoạt động là có một công tắc được điều khiển bởi nam châm dán bên dưới mỗi quân cờ. Khi quân cờ được đặt đúng vào vị trí có công tắc từ, công tắc sẽ được mở. Mạch Arduino được lập trình để điều khiển di chuyển của servo gắn với đòn bẩy bên trong hộp cờ và ngăn kéo được mở ra khi công tác mở.
Để khóa lại ngăn kéo, bạn bấm giữ nút bên cạnh hộp bàn cờ tướng rồi đẩy ngăn kéo vào.
Bây giờ, bạn hãy bắt tay vào thực hiện:
Bước 1: Các vật liệu cần chuẩn bị

bàn cờ tướng điện tử mạch arduino
 
(x1) Mạch Arduino uno
(x1) Standard Servo
(x6) Bộ chuyển đổi mạch từ Switch-Magnetic Reed Flange (chi tiết tại đây)
(x1) Nguồn Universal 1000mA AC Adapter (chi tiết tại đây)
(x1) M-type Adaptaplug (chi tiết tại đây)
(x1) Grid-Style PC board
(x1) SPST Normally Open Pushbutton (chi tiết tại đây)
(x1) 75dB Piezo Electric Buzzer
(x32) Round Ceramic Magnet
(x7) Điện trở 10kOhm
(x3) chân Header đực
(x2) 36"x24"x1/4" gỗ plywood (ván ép)
(x1) 1.5"x1.5"x1/8" gỗ plywood (ván ép)
(x1) 2"x2"x1/2" gỗ plywood (ván ép)
(x1) quân cờ
Bước 2: Cắt gỗ

Sử dụng máy cắt laser để cắt các hình dạng tạo nên hộp gỗ. Có thể sử dụng giấy các tông cứng để thay thế trong trường hợp không có gỗ ván ép. Bạn có thể tải mô hình bàn cờ Chess Outer Box.eps, Chess Drawer.eps, mỗi tập tin dung lượng 5MB.

Bước 3: Dán keo các mặt hộp của bàn cờ



Bước 4: Gắn nút bấm Pushbutton vào mặt bên của hộp
Hàn sợi dây màu đỏ vào một nhánh của nút và sợi dây màu xanh vào nhánh còn lại.
Khoan một lỗ trên mặt bên của bàn cờ rồi chèn nút bấm vào, rồi vặn chặt ốc vít để cố định nút bấm.
Bước 5: Prep Servo

pre servo
Bạn gắn chân header đực vào ba socket trên servo.
Bước 6: Gắn bộ chuyển mạch từ (Magnetic Switches)

định vị các servo trên bàn cờ

Bạn lựa chọn một quy tắc cho cuộc chơi trên bàn cờ tướng, rồi xác định khoảng cách của các bộ chuyển mạch từ và vẽ các hình vuông ở mặt dưới của bàn cờ bằng bút chì. Khi xong, bạn bỏ lớp giấy bên dưới bộ chuyển mạch từ rồi dán vào mạch dưới của bàn cờ, nơi mà bạn đã đánh dấu.

Bước 7: Hàn các bộ phận

Hàn các chân của servo vào mạch Grid-Style PC. Hàn dây đến ba chân cắm để gắn vào mạch Arduino (dây màu đỏ 5V, dây màu đen cho ground, dây màu vàng cho pin 8).
Hàn bộ chuyển mạch từ đến mạch PC, một đầu kết nối với dây màu đỏ trên servo, đầu còn lại kết nối với một điện trở 10k, dây màu xanh gắn với chân digital trên mạch Arduino. Sáu công tắc được kết nối với các chân pin 2 đến pin 7 trên Arduino.
Hàn nút bấm Pushbutton đến mạch PC, dây màu đỏ nên hàn vào 5V, dây màu xanh lá cây hàn vào một điện trở rồi dẫn đến chân pin 10 trên mạch Arduino.
Bước 8: Khoan lỗ để lắp đòn bẩy



 
Bạn tiến hành khoan một lỗ bên trong mảnh gỗ dày khoảng 1/2  mũi khoan. Sử dụng các ốc bạc được cung cấp kèm theo servo để gắn bánh xe vào gỗ, giúp hỗ trợ cho hoạt động đóng hoặc mở ngăn.
Bước 9: Gắn servo với đòn bẩy




ban co tuong dien tu bi mat
 
Bước 10: Viết chương trình điều khiển mạch Arduino
 

#include
 
Servo myservo;  // create servo object to control a servo
 
int pos = 0;// variable to store the servo position
 
// Pins for magnetic switches
int switchPin1 = 2;
int switchPin2 = 3;
int switchPin3 = 4;
int switchPin4 = 5;
int switchPin5 = 6;
int switchPin6 = 7;
 
int servoPin = 8; // Pin for servo
int buzzerPin = 9; // Pin for buzzer
int resetPin = 10; // Pin for reset button
 
boolean closed; // keep track of whether the drawer is currently open
boolean switchOn; // keep track of whether all magnetic switches are open
boolean resetOn; // keep track of whether reset button is pressed
 
void setup(){
  Serial.begin(9600);
  myservo.attach(8);  // attaches the servo on pin 8 to the servo object
  myservo.write(pos); // Close drawer on servo by lowering lever to position 0
  pinMode(switchPin1,INPUT);
  pinMode(switchPin2,INPUT);
  pinMode(switchPin3,INPUT);
  pinMode(switchPin4,INPUT);
  pinMode(switchPin5,INPUT);
  pinMode(switchPin6,INPUT);
  pinMode(resetPin,INPUT);
  pinMode(servoPin,OUTPUT);
  pinMode(buzzerPin,OUTPUT);
  closed = true; // drawer is closed initally
  switchOn = false;
  resetOn = false;
}
 
 
void loop(){
  switchCheck();
  resetCheck();
  // If drawer is closed and magnetic switches are open
  // raise servo to open drawer
  if(closed&&switchOn){
    digitalWrite(buzzerPin,HIGH);
    delay(200);
    digitalWrite(buzzerPin,LOW);
    for(pos = 0; pos < 90; pos += 1){   // moves servo lever from 0 degrees to 90 degrees
      myservo.write(pos);               // in steps of 1 degree
      delay(15);                       
    }
    closed = false;
  }
  // If drawer is open and reset is pressed,
  // lower servo to zero position to close drawer
  if(!closed&&resetOn){
    digitalWrite(buzzerPin,HIGH);
    delay(200);
    digitalWrite(buzzerPin,LOW);
    for(pos = 90; pos>=-1; pos-=1){     // moves servo lever from 90 degrees to 0 degrees   
      myservo.write(pos);               // in steps of 1 degree        
      delay(15);                       
    }
    closed = true;
    switchOn = false;
  }
  delay(500);
}
 
// Check if magnetic switches are open
void switchCheck(){
  int switchVal1 = digitalRead(switchPin1);
  int switchVal2 = digitalRead(switchPin2);
  int switchVal3 = digitalRead(switchPin3);
  int switchVal4 = digitalRead(switchPin4);
  int switchVal5 = digitalRead(switchPin5);
  int switchVal6 = digitalRead(switchPin6);
 
  // If all of the magnetic switch pins are high
  if(switchVal1==HIGH&&switchVal2==HIGH&&switchVal3==HIGH&&
    switchVal4==HIGH&&switchVal5==HIGH&&switchVal6==HIGH){
    switchOn = true;
  }
 
  // If all of the magnetic switch pins are low
  if(switchVal1==LOW&&switchVal2==LOW&&switchVal3==LOW&&
    switchVal4==LOW&&switchVal5==LOW&&switchVal6==LOW){
    switchOn = false;
  }

 
// Check if reset button has been pressed
void resetCheck(){
int resetVal = digitalRead(resetPin);
Serial.println(resetVal);
if(resetVal==HIGH){
resetOn = true;
}
if(resetVal==LOW){
resetOn = false;
}
}

 
 
Bước 11: Gắn nam châm vào các quân cờ

Bạn tiến hành gắn các nam châm vào chân của các quân cờ.
Đây là sản phẩm sau khi hoàn tất:
 
Tác giả bài viết: Bùi Thanh Liêm
Nguồn tin: evntel.com
Đánh giá bài viết
Tổng số điểm của bài viết là: 5 trong 1 đá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.