Bagaimana cara mengidentifikasi penanda LED dengan memodulasi kecerahannya?


11

Untuk proyek saya, saya perlu menggunakan penanda LED inframerah untuk mengidentifikasi lokasi titik di ruang angkasa dengan algoritma stereovision dan beberapa kamera IR. Saya juga membutuhkan setiap penanda LED untuk memiliki ID unik yang dapat dikenali, yang merupakan masalah saya saat ini.

Pikir saya adalah untuk memiliki setiap LED flash antara dua keadaan kecerahan (apakah ini mungkin?) Dalam urutan yang dapat dikenali tetapi masih cukup terang untuk dilacak dalam keadaan kecerahan yang lebih rendah.

Saya tidak tahu bagaimana menerapkan ini atau benar-benar harus mulai mencari. Saya seorang programmer tetapi belum pernah bekerja dengan rangkaian aktual sebelumnya. Bisakah Anda membantu saya memulai?

led 

Jawaban:


11

jika semua LED Anda dikendalikan dari sumber yang sama, pertimbangkan untuk menggunakan mikrokontroler + diferensial pengkodean Manchester + status LED tinggi / rendah Anda untuk menyandikan bitstrings dari urutan berulang seperti:

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

untuk menyandikan nomor ID sebagai bit-bit 16-bit yang terdiri dari 1, kemudian 7 nol, dan 8-bit ID #. Kemudian ketika decoding, cari 1 diikuti oleh 7 nol, lalu ambil bit berikutnya berikutnya. Ini berfungsi untuk semua ID 8-bit # (bahkan # 128 = 10000000 yang disandikan sebagai 1000000010000000 yang tidak dapat disinkronkan dengan benar tetapi untuk nomor itu tidak masalah).

(Jika Anda memiliki lebih sedikit LED potensial, gunakan bit lebih sedikit; skema ini cukup sederhana dan digeneralisasikan ke angka 1 + (N-1) nol + angka N-bit)

Pengkodean Manchester adalah pencatatan otomatis sehingga Anda harus dapat menyinkronkan penerima ke penerima (bahkan jika itu mikrokontroler lain yang tidak yakin akan frekuensinya, sampel beberapa kali per bit sehingga Anda dapat tetap terkunci).


4

Jika Anda dapat menyalakan dan mematikan setiap LED pada frekuensi yang berbeda, ini mungkin akan menyederhanakan banyak hal karena Anda dapat menggunakan sirkuit berbasis 555 untuk mem-flash masing-masing pada frekuensi yang diperlukan.


2
menyederhanakan pemancar, tetapi menyulitkan penerima
Jason S

Jika dia melacak banyak poin, dia mungkin tidak akan menggunakan Arduino atau mikrokontroler lainnya.
Amos

..untuk penerima itu, plus itu bukan pemrograman itu masalahnya itu sirkuit sehingga semakin sederhana sirkuit semakin baik.
Amos

4

Semua orang tampaknya mulai dengan Arduino akhir-akhir ini, jadi sesuatu seperti ini mungkin yang Anda cari. Namun sepertinya Anda berniat menggunakan banyakLED dalam proyek ini yang akan sulit dengan Arduino. Ini semua di atas kepala saya * di sini, tetapi dimungkinkan untuk menggunakan transistor dan resistor besar secara paralel sehingga ketika transistor dimatikan, arus mengalir melalui resistor besar dan Anda mendapatkan cahaya redup. Ketika Anda menyalakannya, arus mengalir melalui transistor karena resistansi yang lebih rendah dan Anda mendapatkan status yang lebih cerah. Dengan asumsi ini berfungsi, Anda dapat menggunakan komponen digital seperti mikrokontroler untuk mengontrol transistor dan mencapai flashing yang Anda butuhkan. Terlampir adalah skema dari apa yang saya maksud (nilainya berubah-ubah, Anda mungkin harus mengubahnya untuk sirkuit Anda):

Skema rangkaian transistor

Apapun cara Anda melakukannya, itu akan sangat sulit mengingat Anda belum melakukan banyak hal elektronik. Semoga berhasil!

* sudah terlambat; ini bisa sepenuhnya salah dan tidak berfungsi sama sekali. ymmv.


1
Pada dasarnya OK, tetapi Anda perlu resistor lain secara seri dengan LED dan transistor untuk mengatur arus ke kondisi cerah, jika tidak LED Anda akan mati.
starblue

ya ini benar. Saya pikir itu tersirat tetapi saya harus tetap menyebutkannya.
Jeremy

3

Saya akan melakukan variasi dari ide penjuin. Saya akan menggunakan keadaan on dan off untuk menghasilkan dua level. Alih-alih mencoba melacak LED dalam keadaan tidak aktif (atau dalam kondisi rendah) menjadikan status tidak aktif menjadi singkat dan hanya melacak dalam kondisi aktif.

Anda juga tidak menyebutkan berapa banyak LED yang perlu Anda lacak dan seberapa cepat mereka bergerak.


1

Ya, dua negara "redup" dan "cerah" itu mudah. Mengingat sirkuit apa pun yang mengedipkan LED yang keras dan mematikan dengan transistor, Anda menambahkan satu resistor di transistor itu. Kemudian ketika transistor sepenuhnya mati, resistor memungkinkan cahaya redup. Saya akan mulai dengan resistor dengan nilai yang persis sama dengan resistor pembatas arus yang sudah terhubung ke LED. (Setiap LED membutuhkan resistor pembatas arus).

Untuk beberapa penanda, baterai independen dan timer 555 di masing-masingnya akan menjadi perangkat keras penanda paling sederhana. (ditambah beberapa resistor dan kapasitor).

Sistem keseluruhan lebih sederhana jika Anda dapat menyinkronkan LED: nyalakan semua penanda di awal siklus, lalu matikan satu penanda pada satu waktu sampai semuanya mati, lalu nyalakan semua kembali dan mulai siklus berulang. Jumlah energi yang dibutuhkan untuk menjaga sekelompok LED berkedip selama beberapa jam biasanya beratnya jauh lebih sedikit dalam bentuk satu atau dua baterai pusat daripada satu baterai per LED. (Ini memerlukan IC pembanding di setiap LED, atau beberapa register geser atau Arduino yang meniru register shift tersebut di beberapa lokasi pusat). (Ini membutuhkan banyak kabel merangkai dari satu penanda ke penanda berikutnya, atau dari setiap penanda ke beberapa titik pusat - sehingga tidak mungkin untuk aplikasi Anda.)

Itu membuat perangkat lunak pengenalan visi Anda jauh lebih sederhana jika PC dapat mengontrol LED secara langsung. Kemudian ketika PC sedang mencari LED_5, ia dapat mematikan dan menyalakan LED_5 dan yakin bahwa satu LED yang berkedip haruslah LED_5. Mungkin menggunakan sesuatu seperti konverter port paralel USB ke 8 bit , yang (dengan 8 resistor, satu per LED) dapat langsung mengontrol 8 LED atau (dengan 4 resistor, satu per kolom) matriks 4x4 dari 16 LED. (Ini memerlukan belum kawat lain, kabel USB dari PC ke converter, tetapi tidak memerlukan setiap baterai atau transistor atau chip tambahan - ini mungkin yang paling sederhana untuk programmer non-elektronik pria untuk mendapatkan kerja).


1

Saya pikir Anda mungkin mengalami kesulitan pada sisi penglihatan hal-hal jika frame rate kamera tidak cukup tinggi relatif terhadap laju gerak LED.

LED akan perlu siklus dari tinggi ke rendah di beberapa kelipatan frame rate kamera, setidaknya 2 frame per perubahan negara untuk memastikan bahwa beberapa frame memiliki cahaya dari hanya satu negara bukan campuran dari dua negara, yang berarti Anda membutuhkan dua frame untuk setiap bit data yang disorot oleh LED untuk mengidentifikasi penanda itu. jelas kode yang lebih pendek akan lebih baik untuk itu.

Jika penanda bergerak jarak dari yang berada pada urutan yang sama dengan jarak mereka satu sama lain dalam bingkai, maka sistem penglihatan mungkin kehilangan kepercayaan diri dalam mengidentifikasi dengan benar kilasan mana yang dimiliki oleh penanda mana.


0

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

Gambar 1, 2 dan 3 skema LED.

  • Dual LED memberikan kontrol yang sangat sederhana. R2 mengatur kecerahan LED yang selalu menyala. R1 mengatur kecerahan LED yang berdenyut.
  • LED tunggal, kecerahan ganda adalah skema sederhana lainnya. D3 selalu menyala dengan arus yang melewati R4. Ketika BUF2 beralih rendah itu menghubungkan R3 ke GND dan arus melalui D3 meningkat menyebabkan LED menyala lebih terang.
  • Kontrol kecerahan PWM adalah yang paling sederhana dari sudut pandang perangkat keras tetapi perangkat lunak perlu mengontrol kecerahan LED.

masukkan deskripsi gambar di sini

Gambar 2. Encoding PWM.

Dengan menggunakan modulasi lebar-pulsa (PWM) Anda dapat memvariasikan kecerahan semu dengan memvariasikan rasio on-off. Gambar 2 menunjukkan urutan daya tinggi, daya rendah, daya tinggi.

Untuk aplikasi Anda, Anda perlu mengatur frekuensi PWM cukup tinggi sehingga sensor kamera tidak akan melihat flicker. Modulasi data atau laju perpindahan antara kecerahan tinggi dan rendah harus paling banyak setengah dari frame rate dan lebih mungkin sekitar sepersepuluh frame rate untuk dapat membedakannya dengan benar.

Anda juga mungkin perlu mengatasi sudut balok dari LED. Kedengarannya seolah-olah kamera Anda tidak akan on-axis sepanjang waktu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.