Izgaradaki nesne yerleşimini algılama


11

Bir Android ADK projesi üzerinde çalışıyorum. Satranç tahtasındaki satranç taşlarının yerlerini tespit etmenin bir yolunu arıyorum (8x8). NFC gibi şeylere bakıyordum ama çok pahalı görünüyor. Dikkate almam gereken farklı bir teknoloji var mı? Dünyanın her zaman yönetim kurulu durumunu okuyabileceği bir şeye ihtiyacım var. Örneğin, bazı parçalar devrilebilir ve bir kez kurulduktan sonra yerlere ihtiyacım var. Bunu daha da açıklamak gerekirse, bir touroment satranç oyununda, parçalar yanlış yere taşınırsa ve iki oyuncu da oyunun devam edeceğini fark eder. Bu yüzden, oyun kurallarına göre pozisyon imkansız olsa bile oyunu kaydetmem gerekiyor.

Sadece hangi teknolojiye bakılacağına dair genel bir yöne işaret etmek istiyorum.


"Bir turnuvada satranç oyununda parçalar yanlış yere taşınırsa ve iki oyuncu da oyunun devam edeceğini fark eder." Merak ediyorum. Satranç kuralları böyle mi diyor? (Aslında, mantıklı, çünkü eğer izleyen başka kimse yoksa, hiçbiri fark etmezse nasıl devam
edemezler

@Telaclavo Onaylayabilirim, bu benim bir turnuvada oldu. Düşük oyun seviyemde belirgin bir çözüm yoktu.
Stephen Collings

Yanıtlar:


13

İlk fikir : RFID. Her parçanın altında bir etiket (çok ucuz). Her etiket hangi tür parçanın olduğunu belirlemelidir ({6 beyaz} + {6 siyah} = 12 farklı türden). Tüm kart için bir alıcı-verici devresi ve 1 ila 64 çoklayıcı. Ayrıca, her biri her tahta konumunun altında 64 küçük anten. Telsiz çok düşük bir RF gücünde çalışır (deneysel olarak en uygun olanı bulmalısınız). Çoklayıcı bağlantılarını değiştirerek, 64 konumu da tarar ve her birinin üzerinde bulunan etiketlerin (varsa) kimliklerini okursunuz.

Bahsettiği IC'leri hiç kullanmadım, ancak bu belge RFID çoklayıcıyı (dikkatli düzeniyle birlikte en zorlu bölüm olacak) uygulamanıza yardımcı olabilir.

İkinci fikir : her bir parça tipini benzersiz manyetik geçirgenliği ile ayırt edin. Her parçaya, altına belirli bir kütle ekleyeceksiniz. Bu ekstra kütle 32 parçanın tümü için aynı olacaktır (böylece kullanıcılar onlarla rahat hissedeceklerdir). Her ekstra kütle iki kütlenin toplamı olacaktır: "manyetik" kütle, artı "dengeleme" (manyetik olmayan) kütle. Tazminat kütlesinin tek amacı, toplam ekstra kütleyi her tür parça için eşit yapmaktır. 12 farklı parçayı ayırt etmeniz gerekir. Her parça tipi, benzersiz bir manyetik geçirgenliğe sahip bir manyetik kütleye sahip olmalıdır, . Muhtemelen yüksek μ'ye sahip malzemeleri seçeceksiniz , ancak her biri farklı μ'ye sahip birçok malzeme arasından seçim yapabilirsiniz (bir tabloya bakınμμμ burada).

Her tahta pozisyonunun altında, birkaç tur tel sarmanız gerekir (böylece çap neredeyse karenin kenarı olur). 64 bobininiz olacak. Yine, bunlardan sadece birini bir endüktans ölçere bağlamak için 1 ila 64 çoklayıcı kullanın. Fark, şimdi, çoklayıcının RF ile uğraşmasına gerek olmamasıdır. Tüm bobinlerin bir düğümünü birbirine bağlayabilir ve dediğim gibi bir bobini endüktans ölçere yönlendirmek için 64 analog anahtar (çok ucuz) kullanabilirsiniz. Devrenin, mümkün olan en kısa sürede, 64 bobinin her birinde ölçülen öz endüktansın ne olduğunu belirlemesi gerekecektir. Çok fazla kesinlik gerektirmez. Sadece L için 13 farklı olası değer belirlemesi gerekir (bu 4 bitten az!). Zaman alanındaki yöntemleri deneyebilirsiniz (örn. Sabit bir voltaj uygulamak ve akımın eğimini ölçmek), veya frekans alanında (örneğin, belirli bir ilave kapasitör ile rezonans frekansının ne olduğunu hızlı bir şekilde aramaya çalışmak). L için bu 12 farklı değere ulaşmak için, farklı geçirgenliklerle ve manyetik malzeme için farklı boyutlarla oynayabilirsiniz.

64 konumu (64 öz endüktansı ölçün) makul bir süre içinde taramanız gerektiğinden, muhtemelen zaman alanı yaklaşımları için giderdim. Örneğin, kartın tüm durumunu okumak için kendinize 1 saniye izin verirseniz, her bir endüktans ölçümü için 15,6 msniz olur. Zorlu ama yapılabilir.

Hız gerçekten darboğaz haline gelirse, biri yerine 8 analog ön uç eklerseniz, sisteminizi 8 kat daha hızlı yapabilirsiniz. Her ön uç, karttaki her satır için ayrılır. Bu şekilde, aynı anda 8 öz endüktansı ölçebilirsiniz (her ölçüm için size 125 ms verir ve 1 saniyede tüm bir tahta durumuna sahip olursunuz). Bir MCU'nun, tek bir ADC ile bile (8 kanallı) yeterli olacağından eminim.

L1LN-

Fikir 2

Bu ikinci fikrin faydası: RF içermez. Ancak, farklı geçirgenliklerle kendi "etiketlerinizi" oluşturmanız gerekir.


Teşekkür ederim. İlk fikriniz gidilecek yol gibi görünüyor. İkinci fikrinizin yaratıcılığını seviyorum. Parçaların özel olarak üretilebileceği ticari bir ürün için daha iyi olabilir. Ancak bunu sadece eğlence için yapıyorum.
Yeşu

@theJosh Yanıt verdikten sonra bile, sorunuzda hala beni şaşırtan bir cümle var. Biri "Örneğin, bazı parçalar devrilebilir ve bir kez kurulduktan sonra yerlere ihtiyacım var" benim için çok mantıklı değil, çünkü parçalar devirilirse, sisteminizin hafızası olmalı kullanıcıya parçaları nereye yerleştireceğini söylemeli, tersi değil. Bu cümleyi şöyle yorumladım: sistemin tarihe dayanmadan herhangi bir keyfi tahtanın durumunu okuyabilmesini istiyorsunuz ve bunu akılda tutarak daha basit cevapları attım.
Telaclavo

@TheJosh (devam). Durum böyle olmasaydı, davidcary'nin çözümü daha basit olurdu.
Telaclavo

İlk fikirdeki sorun, RFID için oldukça kısa bir aralık gerektirmesidir. Aralık çok fazlaysa (bir kareden fazla), o zaman parçanın doğru pozisyonunu hissetmek zorlaşır. İmkansız değil (umarım), çok daha zor.

@DavidKessner Doğru, bu yüzden deneysel olarak optimum RF gücünü bulması gerektiğini söyledim. Antenden etikete kadar olan mesafe, iki bitişik kare arasındaki mesafeden çok daha kısadır, bu nedenle yapılabilir olmalıdır.
Telaclavo

4

Her bir deliğin altında basit bir fotodetektör bulunan, sadece 1 bit - "burada hiçbir şey" veya "bir çeşit parça" olan 64 karenin ortasında bir delik açılan birçok elektronik satranç tahtası gördüm msgstr "dedektör örtme". Bu, (a) kartın eski yapılandırmasını hatırlamak ve hangi parçanın nereye taşındığını izlemek için bir miktar bellek ve kod ve (b) piyon tanıtımını işlemek için özel bir şey gerektirir. Bu, hangi karelerin işgal edildiğini ve hangi karelerin herhangi bir zamanda açık olduğunu tespit edebilir, ancak tahtanın tam durumunu belirleyemez.


1
Zeki! Mantık tarafından desteklenen çok basit bir donanım!
clabacchio

Bu, aynı anda yalnızca bir parça hareket ettirildiği sürece işe yarar. Birkaç parçanın devirildiği ve sonra tekrar takıldığı belirtilen OP için çalışmaz. Aksi takdirde, iyi bir çözümdür.

1

GlyphChess bunu şeffaf bir satranç tahtası kullanarak çözer. Altındaki tarayıcı, hangi parçanın nerede olduğunu bulmak için her parçanın altına yapışmış benzersiz barkodu okur. "PARC'ın Gizli Kodu" Slashdot: Tarayıcınızda GNU Satranç Oynayın Bu, tahtanın tam durumunu istediğiniz zaman yeniden okuyabilir. Satranç tahtasında 18'den az eşsiz parça bulunduğundan, milyonlarca nesneyi ayırt edebilen yüksek çözünürlüklü barkodlardan ziyade , d-touch işaretleyicileri gibi tanınması kolay referansları kullanmak daha iyi olurdu .


Sadece merak. Tahta şeffaf olduğundan, kullanıcıya siyah beyaz kareleri nasıl gösterirler? Belki ara şeffaflıkla? Ve kullanıcı ışıkları görmüyor mu?
Telaclavo

@Telaclavo: Bilmiyorum - belki de neredeyse saydam kareler geleneksel yeşil ve devetüyü renklendirdi? Bugün bunu yapsaydım, kutunun iç kısmını beyaz yapar, daha sonra alta bir kamera koyar ve cam satranç tahtasını üstüne yerleştirirdim. İnsanların parçaları görmesi için yeterli ışık varsa, beyaz iç kısımdan seken ve her bir parçanın altındaki barkodu bir kameranın okuması için aydınlatmak için fazlasıyla yeterli ışık vardır - ışık gerekmez.
davidcary

1

Bunu her kare için bir renk sensörü yaparak ve parçanın altına farklı bir renk etiketi koyarak yapardım.

Renk sensörü üç LED (muhtemelen Kırmızı, Yeşil ve Mavi) ve tüm görünür ışığa duyarlı bir foto-transistör kullanılarak yapılacaktı. LED'leri sırayla açın ve fototransistörün satranç parçasından ne yansıttığını ölçün.

Beyaz bir LED ve farklı renklere duyarlı üç farklı fototransistörün olduğu ters yönde yapabilirsiniz. Ama bunu yapmak daha zor. Çoğu fototransistör o renk seçici değildir. Filtreleri kullanabilirsiniz, ancak farklı renkli LED'leri kullanmak daha kolaydır.

LED'ler yeterince kısa bir süre yanarsa "çok fazla" göremezsiniz. Ayrıca, LED'ler, oyunu kazandığında kartı işaretlemek veya havalı küçük ışık gösterileri yapmak gibi diğer şeyler için de kullanılabilir.

Bunun için biraz hile var, bu da her şeyi kablolamayı ve inşa etmeyi kolaylaştırıyor. Avago, I2C çiplerine ortam ışığını kolaylaştırır. Diğer şirketlerin benzer şeyleri var.

Bir sonraki numara, her parça için benzersiz bir renge sahip olmanız için yeterince farklı renkli etiketler yapmaktır. Çeşitli yazıcı mürekkep / toner pigmentlerinin tam spektrumunu bilmediğimiz için bu sadece deneme yanılma gerektirir. Yine de, ışık sensöründen belki 6 bit çözünürlük alabilmeniz şartıyla çok zor olmamalıdır. (6 bit size bol miktarda gürültü payı verecektir.)


1

rengi tespit etmeye gerek yok, sadece gri tonları. Her parça altta gri bir gölgeye sahiptir ve panoya yerleştirilmiş basit bir IR verici / dedektör çifti analog değeri okur.


0

"Zowie" adlı bir şirket bir zamanlar "Ellie'nin Büyülü Bahçesi" de dahil olmak üzere bir bilgisayara bağlanacak ve oyun yüzeyinde birkaç jetonun konumunu algılayabilecek birkaç oyun seti üretti. Her token bir kapasitör ve bir tel bobininden oluşuyordu ve oyun yüzeyinde bir tel ızgarası vardı; bir bobin kapağı düzeneğinin LC frekansıyla eşleşen bir frekansa yatay bir telden bir akım koymak, bu frekansın dikey tellerde görünmesine neden olur. Tel ızgara her iki yönde yaklaşık altı tel / inç idi ve görünür konumlandırma çözünürlüğü muhtemelen yaklaşık 0.05 "idi, ancak CPU kartına bağlanan sadece yaklaşık 16 kablo vardı; Sanırım kablolar her token olacak şekilde düzenlenmişti iki veya daha fazla yatay kabloya tepki verir ve en az iki dikey kabloyu uyarır; CPU, hangi kablo kombinasyonunun uyaranlara tepki vereceğini belirterek, jetonun nerede olduğunu bulabilir. Zowie'nin patentlerinde ne iddia ettiğini veya önceki tekniğin ne gösterdiğini hatırlamıyorum, ancak önceki tekniğin, amaçlarınız için yeterli olacak bir kamuya açık alan yaklaşımı içermesi tamamen mümkündür.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.