Parlaklıklarını ayarlayarak LED işaretleyicileri nasıl tanımlanır?


11

Benim bir projem için stereovision algoritmaları ve çoklu IR kameralarla uzayda noktaların yerlerini belirlemek için kızılötesi LED işaretleyicileri kullanmam gerekiyor. Ayrıca şu anki sorunum olan benzersiz bir tanınabilir kimliğe sahip olmak için her bir LED işaretleyiciye ihtiyacım var.

Benim düşüncem, her bir LED'in iki parlaklık durumu arasında (bu mümkün mü?) Tanınabilir bir sırada yanıp sönmesi, ancak yine de daha düşük parlaklık durumunda izlenecek kadar parlak olmasıydı.

Bunu nasıl uygulayacağımı veya gerçekten nereden bakmaya başlayacağımı bilmiyorum. Ben bir programcıyım ama daha önce hiç gerçek devrelerle çalışmadım. Başlamama yardım edebilir misin?

led 

Yanıtlar:


11

tüm LED'leriniz aynı kaynaktan kontrol ediliyorsa, mikrodenetleyici + diferansiyel Manchester kodlaması + yüksek / düşük LED durumlarınızı aşağıdaki gibi tekrar eden dizilerin bit dizilerini kodlamak için kullanmayı düşünün:

id #0: 1000000000000000[10000000000000001000000000000000....]
id #1: 1000000000000001[10000000000000011000000000000001....]
id #2: 1000000000000010
id #3: 1000000000000011
id #4: 1000000000000100

Kimlik numaralarını 1, sonra 7 sıfır ve 8 bitlik ID # içeren 16 bitlik bir bit dizisi olarak kodlamak. Sonra kodu çözerken, önce 1 ardından 7 sıfır olup olmadığına bakın, ardından sonraki bitleri alın. Bu, tüm 8-bit ID #'leri için çalışır (hatta düzgün bir şekilde senkronize edilemeyen 1000000010000000 olarak kodlanan # 128 = 10000000 bile, ancak bu sayı için önemli değildir).

(Daha az potansiyel LED'iniz varsa, daha az bit kullanın; bu şema oldukça basittir ve 1 + (N-1) sıfırlar + N-bit sayısına genelleme yapar)

Manchester kodlaması kendinden saatlidir, bu nedenle bir alıcıyı senkronize edebilmeniz gerekir (frekanstan emin olmayan başka bir mikrodenetleyici olsa bile, kilitli kalabilmeniz için bit başına birkaç kez örnekleyin).


4

Her bir LED'i farklı bir frekansta açıp kapatabilseydiniz, her şeyi gerekli frekansta flaşlamak için 555 tabanlı devreleri kullanabileceğinizden, bu muhtemelen işleri çok basitleştirecektir.


2
vericiyi basitleştirir, ancak alıcıyı karmaşıklaştırır
Jason S

Çok fazla puan izliyorsa, muhtemelen bir Arduino veya başka bir mikrodenetleyici kullanmayacaktır.
Amos

.. alıcı için, artı bu sorun programlama değil devreler yani devre ne kadar basit o kadar iyi.
Amos

4

Bugünlerde herkes Arduinos ile kapalı başlayarak gibi görünüyor, bu nedenle böyle bir şey bu sizin aradığınızı olasılıkla gerçek değildir. Ancak sanki çok kullanmak istiyormuşsunuz gibi görünüyorbir arduino ile zor olacak bu projede LED'lerin. Bunların hepsi başımın üstünden * burada, ancak paralel olarak bir transistör ve büyük bir direnç kullanmak mümkün olabilir, böylece transistör kapalıyken, akım büyük dirençten akar ve loş bir ışık alırsınız. Yine de açtığınızda, düşük direnç nedeniyle akım transistörden akar ve daha parlak bir hal alırsınız. Bunun işe yaradığı varsayılarak, transistörleri kontrol etmek ve ihtiyacınız olan yanıp sönmeyi elde etmek için mikrodenetleyiciler gibi dijital bileşenler kullanabilirsiniz. Ekli, ne demek istediğimin bir şemasıdır (değerler keyfidir, muhtemelen devreniz için onları değiştirmeniz gerekecektir):

Transistör devresinin şeması

Hangi yolu yaparsanız yapın, çok fazla elektronik yapmamanız oldukça zor olacaktır. İyi şanslar!

*geç oldu; bu tamamen yanlış olabilir ve hiç işe yaramayabilir. YMMV.


1
Temel olarak Tamam, ancak parlak durum için akımı ayarlamak için LED ve transistörlü seri olarak başka bir dirence ihtiyacınız var, aksi takdirde LED'iniz ölecektir.
starblue

Evet bu doğru. Zımni olduğunu düşündüm ama yine de bahsetmeliydim.
jeremy

3

Penjuin'in fikrinin bir varyasyonunu yapardım. İki seviyeyi oluşturmak için bir açık ve kapalı durumu kullanırdım. LED'i kapalı durumda (veya düşük durumda) izlemeye çalışmak yerine kapalı durumu kısa yapın ve sadece açık durumda takip edin.

Ayrıca kaç tane LED izlemeniz gerektiğinden ve ne kadar hızlı hareket ettiklerinden de bahsetmediniz.


1

Evet, iki durumlu "loş" ve "parlak" kolaydır. Verilen herhangi bir transistor ile açılıp sert LED yanıp devreyi, o transistör üzerinde bir direnç ekleyin. Daha sonra transistör tamamen kapandığında, direnç loş bir ışıltıya izin verir. LED'e zaten bağlı olan akım sınırlama direnci ile tam olarak aynı değere sahip bir dirençle başlardım. (Her LED'in akım sınırlayıcı bir direnci olması gerekir).

Birkaç işaretçi için, her birinde bağımsız bir pil ve 555 zamanlayıcı en basit işaretleyici donanımı olacaktır. (artı birkaç direnç ve kapasitör).

LED'leri senkronize edebiliyorsanız genel sistem daha basittir: döngünün başlangıcında tüm işaretleyicileri açın, sonra hepsi kapanıncaya kadar bir kerede bir işaretleyiciyi kapatın, ardından hepsini tekrar açın ve döngüyü yeniden başlatın. Birkaç LED'in birkaç saat yanıp sönmesi için gereken enerji miktarı, LED başına bir pil yerine bir veya iki merkezi pil biçiminde çok daha azdır. (Bu, her LED'de bir karşılaştırıcı IC veya birkaç vardiya kaydı veya bazı vardiya kayıtlarını merkezi bir konumda taklit eden bir Arduino gerektirir). (Bu, bir işaretleyiciden diğerine veya her bir işaretleyiciden bir merkez noktaya kadar çok sayıda tel gerektirir - böylece uygulamanız için mümkün olmayabilir.)

PC LED'leri doğrudan kontrol edebiliyorsa, görüntü tanıma yazılımınızı çok daha basit hale getirir. Sonra PC LED_5'i ararken LED_5'i kapatıp açabilir ve yanıp sönen LED'in LED_5 olması gerektiğinden emin olabilirsiniz. Belki de USB'den 8 bitlik paralel port dönüştürücüye (8 dirençle, LED başına bir tane) doğrudan 8 LED'i veya (4 dirençle, her sütun için bir tane) 16 LED'lik 4x4 matrisi kontrol edebilirsiniz. (Bu da başka bir kablo, bilgisayardan dönüştürücüye bir USB kablosu gerektirir, ancak herhangi bir pil veya transistör veya ek yonga gerektirmez - bu, elektronik olmayan bir programcının çalışması için en basit olabilir).


1

Kameranın kare hızı LED'lerin hareket hızına göre yeterince yüksek değilse, şeylerin görüş tarafında sorun yaşayabileceğinizi düşünüyorum.

LED'lerin kameranın kare hızının makul bir katında yüksek ile alçak arasında geçiş yapması gerekecektir, bazı karelerin iki durumdan karışık yerine yalnızca bir durumdan ışık aldığından emin olmak için durum değişikliği başına en az 2 kare, Bu da, hangi işaretleyici olduğunu belirlemek için LED'ler tarafından yanıp sönen her veri biti için iki kareye ihtiyacınız olduğu anlamına gelir. açıkçası kısa bir kod bunun için en iyisi olacaktır.

İşaretçiler, çerçevede birbirinden olan mesafeyle aynı sırada olan bir mesafeyi hareket ettiriyorsa, görüş sistemi hangi flaşların hangi işaretçiye ait olduğunu doğru bir şekilde belirleme konusunda güvenini kaybedebilir.


0

şematik

bu devreyi simüle et - CircuitLab kullanılarak oluşturulan şematik

Şekil 1, 2 ve 3 LED şemaları.

  • Çift LED çok basit kontrol sağlar. R2 her zaman açık LED'in parlaklığını ayarlar. R1, darbeli LED'in parlaklığını ayarlar.
  • Tek LED, çift parlaklık başka bir basit şemadır. D3 daima R4'ten geçen akım ile yanar. BUF2 düşük olduğunda R3'ü GND'ye bağlar ve D3'ten geçen akım artar, LED'in daha parlak yanmasına neden olur.
  • PWM parlaklık kontrolü , donanım açısından en basit olanıdır, ancak yazılımın LED parlaklığını kontrol etmesi gerekir.

resim açıklamasını buraya girin

Şekil 2. PWM kodlaması.

Darbe genişliği modülasyonunu (PWM) kullanarak açma-kapama oranını değiştirerek görünen parlaklığı değiştirebilirsiniz. Şekil 2, yüksek güçlü, düşük güçlü, yüksek güçlü bir sekansı göstermektedir.

Uygulamanız için PWM frekansını kamera sensörünün titreşim görmeyecek kadar yüksek ayarlamanız gerekir. Veri modülasyonu veya yüksek ve düşük parlaklık arasında geçiş oranının, kare hızının en fazla yarısı ve kare hızının onda biri kadar olması gerekir.

LED'lerden gelen ışın açısını da ele almanız gerekebilir. Kameranız her zaman eksende olmayacak gibi geliyor.

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.