Phát hiện vị trí đối tượng trên lưới


11

Tôi đang làm việc trên một dự án ADK của Android. Tôi đang tìm cách để phát hiện vị trí của các quân cờ trên bàn cờ (8x8). Tôi đã nhìn vào những thứ như NFC nhưng nó có vẻ quá đắt. Có một công nghệ khác nhau mà tôi nên xem xét. Tôi cần một cái gì đó mà thế giới có thể đọc toàn bộ trạng thái của bảng bất cứ lúc nào. Ví dụ, một số mảnh có thể bị lật đổ và một khi chúng được thiết lập lại, tôi cần các vị trí. Để giải thích điều này hơn nữa, trong một ván cờ du lịch nếu các quân cờ bị di chuyển đến vị trí sai và không người chơi nào nhận thấy trò chơi sẽ tiếp tục. Vì vậy, tôi cần ghi lại trò chơi ngay cả khi vị trí là không thể dựa trên các quy tắc trò chơi.

Tôi chỉ muốn được chỉ ra một hướng chung về những gì công nghệ để xem xét.


"Trong một ván cờ giải đấu nếu các quân cờ bị di chuyển đến vị trí sai và không người chơi nào nhận thấy trò chơi sẽ tiếp tục". Tôi tò mò. Luật chơi cờ nói vậy? (Trên thực tế, nó có ý nghĩa, bởi vì -Nếu không có một watching- khác, làm thế nào họ có thể không tiếp tục, nếu không ai trong số họ chú ý đến?)
Telaclavo

@Telaclavo Tôi có thể xác nhận, điều đó đã xảy ra với tôi trong một giải đấu. Không có giải pháp rõ ràng ở cấp độ chơi thấp của tôi.
Stephen Collings

Câu trả lời:


13

Ý tưởng đầu tiên : RFID. Một thẻ (rất rẻ) bên dưới mỗi mảnh. Mỗi thẻ nên xác định loại mảnh nào (trong số {6 trắng} + {6 đen} = 12 loại khác nhau). Một mạch thu phát và bộ ghép kênh 1 đến 64 cho toàn bộ bảng. Ngoài ra, 64 râu nhỏ, mỗi cái bên dưới mỗi vị trí bảng. Bộ thu phát hoạt động ở công suất RF rất thấp (bạn nên tìm công cụ tối ưu, bằng thực nghiệm). Bằng cách thay đổi các kết nối bộ ghép kênh, bạn quét tất cả 64 vị trí và đọc ID của các thẻ (nếu có) xuất hiện trên mỗi một trong số chúng.

Tôi chưa bao giờ sử dụng các IC mà nó nói đến, nhưng tài liệu này có thể giúp bạn triển khai bộ ghép kênh RFID (đây sẽ là phần khó khăn nhất, cùng với bố cục cẩn thận của nó).

Ý tưởng thứ hai : phân biệt từng loại mảnh bằng tính thấm từ tính độc đáo của nó. Với mỗi mảnh, bạn sẽ thêm một khối lượng nhất định ở dưới cùng của nó. Khối lượng tăng thêm này sẽ giống nhau cho tất cả 32 miếng (để người dùng cảm thấy thoải mái với chúng). Mỗi khối lượng thêm sẽ là tổng của hai khối lượng: khối lượng "từ tính", cộng với khối lượng "bù" (không từ tính). Mục đích duy nhất của khối lượng bù sẽ là làm cho tổng khối lượng tăng thêm bằng nhau cho tất cả các loại mảnh. Bạn cần phân biệt 12 loại mảnh khác nhau. Mỗi loại mảnh phải có khối lượng từ tính với độ thấm từ duy nhất, . Bạn có thể sẽ chọn các vật liệu có cao , nhưng có rất nhiều vật liệu bạn có thể chọn, mỗi loại có một khác nhau (xem một bảngμμμđây )

Bên dưới mỗi vị trí bảng, bạn sẽ cần cuộn vài vòng dây (để đường kính gần như cạnh của hình vuông). Bạn sẽ có 64 cuộn dây. Một lần nữa, sử dụng bộ ghép kênh 1 đến 64, để chỉ kết nối một trong số chúng với máy đo điện cảm. Sự khác biệt, bây giờ, là bộ ghép kênh không cần phải xử lý RF. Bạn có thể buộc một nút của tất cả các cuộn dây với nhau và sử dụng 64 công tắc tương tự (rất rẻ), để chỉ đạo, như tôi đã nói, một cuộn dây vào đồng hồ đo điện cảm. Mạch sẽ phải xác định, trong thời gian ngắn nhất, độ tự cảm được đo ở mỗi một trong 64 cuộn dây là gì. Nó không cần nhiều độ chính xác. Nó chỉ cần xác định 13 giá trị khác nhau có thể có cho L (tức là ít hơn 4 bit!). Bạn có thể thử nghiệm các phương pháp trong miền thời gian (ví dụ: đặt điện áp không đổi và đo độ dốc của dòng điện), hoặc trong miền tần số (ví dụ: cố gắng nhanh chóng tìm kiếm tần số cộng hưởng là gì, với một tụ điện được thêm vào nhất định). Để đạt được 12 giá trị khác nhau cho L, bạn có thể chơi với các độ thấm khác nhau và các kích thước khác nhau cho vật liệu từ tính.

Vì bạn phải quét 64 vị trí (đo 64 độ tự cảm) trong một thời gian hợp lý, tôi có thể sẽ đi theo các phương pháp trong miền thời gian. Chẳng hạn, nếu bạn cho phép mình đọc 1 giây để đọc toàn bộ trạng thái của bảng, bạn có 15,6 ms cho mỗi phép đo điện cảm. Thử thách, nhưng có thể làm được.

Nếu tốc độ kết thúc thực sự là nút cổ chai, bạn có thể làm cho hệ thống của mình nhanh hơn 8 lần, nếu bạn bao gồm 8 mặt trước tương tự, thay vì một. Mỗi mặt trước sẽ được dành cho mỗi hàng trong bảng. Bằng cách đó, bạn có thể đo 8 cuộn cảm tự đồng thời (cho bạn 125 ms cho mỗi phép đo và bạn vẫn sẽ có toàn bộ trạng thái bảng trong 1 giây). Tôi chắc chắn rằng một MCU, ngay cả với một ADC (có 8 kênh), là đủ.

Đây có thể là (không có tất cả các chi tiết) sơ đồ cho mỗi mặt trước (có thể là một cho toàn bộ bảng, hoặc một cho mỗi hàng, như đã đề cập), và một cách để nhanh chóng ước tính tự cảm ứng đến (N là 8 hoặc 64). Nút chung cho các cuộn dây sẽ là nút trên cùng và các tín hiệu điều khiển cho các công tắc tương tự không được hiển thị, vì đơn giản. TS sẽ là hằng số và VX được lấy mẫu tại TS sẽ được sử dụng để tính toán độ tự cảm. TG sẽ chỉ dài hơn một chút so với TS.L1LN

Ý tưởng 2

Lợi ích của ý tưởng thứ hai này: không có RF tham gia. Tuy nhiên, bạn cần xây dựng các "thẻ" của riêng mình, với các độ thấm khác nhau.


Cảm ơn bạn. Ý tưởng đầu tiên của bạn dường như là con đường để đi. Tôi thích sự sáng tạo của bạn ý tưởng thứ hai. Nó có thể tốt hơn cho một sản phẩm thương mại nơi các mảnh có thể được tùy chỉnh thực hiện. Tuy nhiên, tôi chỉ làm việc này cho vui.
theJosh

@theJosh Ngay cả sau khi trả lời, có một câu trong câu hỏi của bạn vẫn làm tôi bối rối. Câu "Ví dụ: một số mảnh có thể bị lật và một khi chúng được thiết lập lại, tôi cần các vị trí" không có ý nghĩa gì với tôi, bởi vì nếu các mảnh bị lật đổ, thì đó sẽ là bộ nhớ của hệ thống của bạn. nên nói với người dùng nơi đặt các mảnh, và không phải là cách khác. Tôi đã giải thích câu đó là: bạn muốn hệ thống có thể đọc bất kỳ trạng thái nào của hội đồng tùy ý, mà không cần dựa vào lịch sử và tôi đã bỏ qua các câu trả lời đơn giản hơn trong đầu.
Telaclavo

@theJosh (tiếp theo). Nếu đó không phải là trường hợp, giải pháp của davidcary sẽ đơn giản hơn.
Telaclavo

Vấn đề với ý tưởng đầu tiên là nó đòi hỏi một phạm vi khá ngắn cho RFID. Nếu phạm vi quá nhiều (hơn một hình vuông) thì việc cảm nhận vị trí thích hợp của mảnh sẽ trở nên khó khăn hơn. Không phải là không thể (tôi hy vọng), chỉ là khó khăn hơn nhiều.

@DavidKessner Phải, đó là lý do tại sao tôi nói rằng anh ấy sẽ cần tìm công suất RF tối ưu bằng thực nghiệm. Khoảng cách từ ăng-ten đến thẻ ngắn hơn nhiều so với khoảng cách giữa hai hình vuông liền kề, vì vậy cần có thể thực hiện được.
Telaclavo

4

Tôi đã nhìn thấy nhiều bàn cờ điện tử có một lỗ được khoan ở giữa của mỗi 64 ô vuông, với một bộ tách sóng quang đơn giản dưới mỗi lỗ, chỉ cho 1 bit - "không có gì ở đây", hoặc "một loại nào đó là che máy dò ". Điều này đòi hỏi (a) một số bộ nhớ và mã để ghi nhớ cấu hình cũ của bảng và để theo dõi phần nào được di chuyển ở đâu và (b) một cái gì đó đặc biệt để xử lý khuyến mãi cầm đồ. Điều này có thể phát hiện những ô vuông nào bị chiếm và những ô vuông nào được mở bất cứ lúc nào, nhưng không phải là trạng thái đầy đủ của bảng.


1
Tài giỏi! Phần cứng rất đơn giản được hỗ trợ bởi logic!
clabacchio

Điều đó hoạt động miễn là chỉ có một mảnh được di chuyển tại một thời điểm. Nó không hoạt động trong trường hợp OP đề cập đến việc một vài mảnh bị lật đổ và sau đó được đặt lại. Mặt khác, nó là một giải pháp tốt.

1

GlyphChess giải quyết điều này bằng cách sử dụng bàn cờ trong suốt. Một máy quét bên dưới đọc mã vạch duy nhất được dán ở dưới cùng của mỗi mảnh để tìm ra mảnh nào được đặt ở đâu. "Mã bí mật của PARC" Slashdot: Chơi cờ vua GNU trên máy quét của bạn Điều này có thể đọc lại toàn bộ trạng thái của bảng bất cứ lúc nào. Vì có ít hơn 18 loại quân cờ duy nhất trên bàn cờ, có lẽ sẽ tốt hơn nếu sử dụng các fiducials dễ nhận biết như dấu d-touch hơn là mã vạch có độ phân giải cao có khả năng phân biệt hàng triệu vật thể.


Chỉ tò mò thôi. Là bảng trong suốt, làm thế nào để họ hiển thị hình vuông đen trắng cho người dùng? Có thể với một số minh bạch trung gian? Và, người dùng không nhìn thấy đèn sao?
Telaclavo

@Telaclavo: Tôi không biết - có lẽ hình vuông gần như trong suốt nhuốm màu xanh lá cây và màu xanh lá cây truyền thống? Nếu tôi đang xây dựng cái này ngày hôm nay, tôi sẽ làm cho phần bên trong của hộp màu trắng, sau đó đặt một máy ảnh ở phía dưới và đặt bàn cờ thủy tinh lên trên. Nếu có đủ ánh sáng để con người nhìn thấy các mảnh, thì có quá nhiều ánh sáng bật ra bên trong màu trắng và chiếu sáng mã vạch ở dưới cùng của mỗi mảnh để camera có thể đọc được - không cần đèn.
davidcary

1

Tôi sẽ làm điều này bằng cách tạo một cảm biến màu cho mỗi hình vuông, và đặt một nhãn màu khác nhau ở dưới cùng của mảnh.

Cảm biến màu sẽ được chế tạo bằng ba đèn LED (có thể là Đỏ, Xanh lục và Xanh lam) và một bóng bán dẫn nhạy với tất cả các ánh sáng khả kiến. Bật đèn LED theo trình tự và đo những gì phototransistor đo được phản chiếu từ quân cờ.

Bạn có thể làm điều đó ngược lại, nơi bạn có một đèn LED trắng và ba bộ phát quang khác nhau nhạy với các màu khác nhau. Nhưng đó là khó khăn hơn để làm. Hầu hết các phototransistors không phải là màu chọn lọc. Bạn có thể sử dụng các bộ lọc, nhưng sẽ dễ dàng hơn khi chỉ sử dụng các đèn LED màu khác nhau.

Nếu đèn LED bật trong thời gian đủ ngắn thì bạn sẽ không thấy nó "quá nhiều". Ngoài ra, đèn LED có thể được sử dụng cho những việc khác như đánh dấu bảng hoặc thực hiện các chương trình ánh sáng nhỏ thú vị khi trò chơi giành chiến thắng.

Có một mẹo nhỏ để làm điều này, đó là làm cho mọi thứ dễ dàng kết nối và xây dựng. Avago có một số ánh sáng xung quanh với chip I2C có thể làm cho nó dễ dàng hơn. Các công ty khác có những điều tương tự.

Thủ thuật tiếp theo là tạo ra đủ nhãn màu khác nhau để bạn có một màu duy nhất cho mỗi mảnh. Điều này sẽ chỉ yêu cầu một số thử nghiệm và lỗi, vì chúng ta không biết phổ chính xác của các sắc tố mực / mực máy in khác nhau. Mặc dù vậy, không quá khó với điều kiện bạn có thể nhận được độ phân giải có thể là 6 bit từ cảm biến ánh sáng. (6 bit sẽ cung cấp cho bạn nhiều biên độ nhiễu.)


1

không cần phát hiện màu, chỉ cần sắc thái của màu xám. Mỗi mảnh có một màu xám ở phía dưới và một cặp bộ phát / phát hồng ngoại đơn giản được đặt vào bảng đọc giá trị tương tự.


0

Một công ty tên là "Zowie" đã từng sản xuất một vài vở kịch bao gồm "Khu vườn mê hoặc của Ellie" sẽ kết nối với máy tính và có thể cảm nhận được vị trí của một vài thẻ bài trên bề mặt chơi. Mỗi mã thông báo bao gồm một tụ điện và một cuộn dây và bề mặt chơi có một lưới các dây; đặt một dòng điện qua một dây nằm ngang ở tần số phù hợp với tần số LC của cụm nắp cuộn dây sẽ khiến tần số đó xuất hiện trên các dây dọc. Lưới dây có khoảng sáu dây / inch theo cả hai hướng và độ phân giải định vị rõ ràng có thể là khoảng 0,05 ", nhưng chỉ có khoảng 16 dây kết nối với bo mạch CPU; tôi đoán các dây được sắp xếp theo mô hình sao cho mỗi mã thông báo sẽ phản ứng với hai hoặc nhiều dây ngang và kích thích ít nhất hai dây dọc; bằng cách lưu ý tổ hợp dây nào sẽ phản ứng với các kích thích, CPU có thể tìm ra mã thông báo ở đâu. Tôi không nhớ những gì Zowie đã tuyên bố trong bằng sáng chế của họ, hoặc những gì nghệ thuật trước đó đã trích dẫn, nhưng nghệ thuật trước đó hoàn toàn có thể sẽ bao gồm một cách tiếp cận theo phạm vi công cộng phù hợp với mục đích của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.