Arduino světelná závora

v

Re:Arduino světelná závora
« Odpověď #15 kdy: 06. 09. 2016, 12:36:55 »
Otázka je, co tím filtrem chceš stabilizovat.

Přijímač IR si amplitudu stabilizuje interně, dostaneš obdélníky zhruba ve fázi s buzením LEDky. Vlnovou délku  a frekvenci si to taky ohlídá.

Jako demodulátor stačí hradlo XOR, vstupy na LEDku a přijímač. Pokud je tam stabilní hodnota, paprsek je nepřerušený, pokud je tam frekvence z PWMka, paprsek je přerušený. Stačí ověřovat periodu druhým čítačem v capture režimu a počet zachycených/chybějících hran odpovídá rychlosti reakce na přerušení.
jestli přijímačem myslíte ten pro dálkové ovládání tv, tak ani v nejmenším nechápu smysl posledního odstavce


Mirek

Re:Arduino světelná závora
« Odpověď #16 kdy: 06. 09. 2016, 12:41:38 »
Ještě doplním - signál je nutné modulovat a na příjmu opět filtrovat kvůli odolnosti proti dennímu a jinému světlu (většinou DC).
Záleží na provedení, pokud bude svítit laserem do černé trubičky, tak to podle mě půjde i bez toho. Kdyžtak může zkoušet tu modulaci softwarově na tom Arduinu, kilohertz by to dát mohlo a rychlejší to nepotřebuje.
A to je přesně to, co miluji na všech diskuzích zahrnujících Arduino. Člověk má na stole krabičku, kde je procesor s několika HW časovači, která dokonale zvládá HW generování např. PWM signálu. Stačí jen jednoduchá konfigurace časovače.

Akorát pak ten signál musí taky někdo číst, pokud možno synchronně s tím generátorem.

A padne tady návrh na generování signálu SW...
Nepsal jsem nic o tom, jestli to má obsluhovat v nějakém loopu nebo použít časovač.

Takže bych začal laserovým ukazovátkem, fotoodporem (k Arduinu připojí jako součást děliče a bude měřit integrovaným ADCčkem) a trubičkou od černého fixu. To jsou čtyři součástky všeho všudy.

To je opravdu špatná rada. Fotoodpor v žádném případě. Když už, tak fototranzistor a nebo fotodioda.
OK, uznávám, pomalost mi nedošla, pokud šlo o toto.

Ale pro tenhle účel je ideální kombinace IR LED buzená výstupem časovače z Arduina a nebo nějakým oscilátorem, třeba z 555. Oboje naladěné na frekvenci přijímače dálkového ovládání (má rovnou logický výstup a vestavěnou filtraci signálu).
U IR diody bych se bál že se tam signál dostane i nějakým odrazem, ale může ji taky dát do trubičky…

Ano, a proto jsou IR LED pro dálková ovládání s velmi úzkým vyzařovacím úhlem (typicky pod 10 stupňů). A minimálně přijímač je nutné dát do trubičky. A další opatření jsou v přijímači (modulační kmitočet, filtrace, detekce). Funguje to celkem spolehlivě. A pro jistotu je možné dát ještě i vysílač do trubičky.


Detekci bych dělal tak, že bych tam dal dva IIR nebo FIR filtry, jeden pomalý a jeden rychlý, a měřil rozdíl -- když někdo paprsek přeruší, na pomalém se to neprojeví, ale na rychlém ano. Zatímco pomalé změny typu že slunce přechází po obloze se projeví na obou.
Bys dělal a nebo jsi už někdy udělal a spolehlivě to fungovalo? Proč tak složitě a pracně?

Už jsem tímto způsobem dělal detekci zrychlení s akcelerometrem a fungovalo mi to na stole. Ale rád si poslechnu, jak to udělat lépe. Mým cílem bylo odfiltrovat pomalu se měnící věci a chytat rychlé změny.

Mně jde o to, že mi to pro konkrétní použití jako optická závora přijde zbytečně příliš. Proto jsem navrhnul jednoduché řešení, kdy je na výstup časovače MCU připojena pouze IR LED, kterou MCU budí. A na vstupu MCU je potom IC dálkového ovládání, které má na výstupu jen log výstup svítí/nesvítí. A MCU pouze vyhodnotí že přerušení paprsku trvá déle něž nějakou minimální dobu. Hotovo dvacet. Ověřeno v praxi.

Mirek

Re:Arduino světelná závora
« Odpověď #17 kdy: 06. 09. 2016, 12:47:01 »
Přijímač IR si amplitudu stabilizuje interně, dostaneš obdélníky zhruba ve fázi s buzením LEDky. Vlnovou délku  a frekvenci si to taky ohlídá.

Jako demodulátor stačí hradlo XOR, vstupy na LEDku a přijímač. Pokud je tam stabilní hodnota, paprsek je nepřerušený, pokud je tam frekvence z PWMka, paprsek je přerušený. Stačí ověřovat periodu druhým čítačem v capture režimu a počet zachycených/chybějících hran odpovídá rychlosti reakce na přerušení.
Přijímač IR nemá na výstupu signál odpovídající buzení LED na nosné frekvenci (36-39 KHz). Ale signál odpovídající tomu, jestli modulace běží a nebo ne. Doporučuji přečíst datasheet.

Jenda

Re:Arduino světelná závora
« Odpověď #18 kdy: 06. 09. 2016, 12:54:44 »
A proto píšu výše, modulovat cca 36-39kHz a přijímat integrovaným přijímačem dálkového ovládání (cca 30 Kč). Dal jsem tam i odkazy.

Potom všechny starosti tohohle typu odpadají.
Z přijímače DO poleze jestli to vidí/nevidí, ale nepůjde nijak nastavit citlivost. (což by asi šlo řešit snížením výkonu vysílací ledky)


A jak si mám vysvětlit tuto větu: "Kdyžtak může zkoušet tu modulaci softwarově na tom Arduinu, kilohertz by to dát mohlo a rychlejší to nepotřebuje."

Na použití časovače to rozhodně nevypadá.
Nastavím si časovač aby generoval interrupty a a handleru vždycky změním stav laseru a přečtu sample.

Mirek

Re:Arduino světelná závora
« Odpověď #19 kdy: 06. 09. 2016, 13:37:23 »
A proto píšu výše, modulovat cca 36-39kHz a přijímat integrovaným přijímačem dálkového ovládání (cca 30 Kč). Dal jsem tam i odkazy.

Potom všechny starosti tohohle typu odpadají.
Z přijímače DO poleze jestli to vidí/nevidí, ale nepůjde nijak nastavit citlivost. (což by asi šlo řešit snížením výkonu vysílací ledky)

A to je u hlídání průchodu dveřmi vada?

A jak si mám vysvětlit tuto větu: "Kdyžtak může zkoušet tu modulaci softwarově na tom Arduinu, kilohertz by to dát mohlo a rychlejší to nepotřebuje."

Na použití časovače to rozhodně nevypadá.
Nastavím si časovač aby generoval interrupty a a handleru vždycky změním stav laseru a přečtu sample.

Modulační kmitočet 1 kHz je docela nanic pro eliminaci vlivů z různých zářivek a pod. Proč nepoužít něco hotového a stovkami miliónů instalací ověřeného? Beru to tak, že tazatel o dané problematice skoro nic neví (i podle formulace dotazů) a chce jednoduché řešení, které mu bude fungovat.

Možností realizace je samozřejmě mnoho, každá má nějaké výhody a nevýhody. Svůj pohled na optimální řešení vzhledem k podaným informacím jsem napsal.


Mirek

Re:Arduino světelná závora
« Odpověď #20 kdy: 18. 09. 2016, 17:32:57 »
Díky, zajímavé.
Ale nebylo by něco jednoduššího? Myslím tím bez navrhování obvodů? Chtěl  bych jen využít Arduino a světělný paprsek mít jen jako "spínač". Spíš to dokážu naprogramovat, než navrhnout a vyrobit celé nové zapojení elektroniky...
Jinak v prvním příspěvku píšu, že tam mám DIP senzor. Blbost, samozřejmě jsem myslel PIR senzor, ale když u toho zrovna snídáte... :-D
Takto to mám řešeno aktuálně. A chtěl bych vyměnit PIR za paprsek a diodu za reproduktor.
https://circuits.io/circuits/2646978-mydoorgate

Děkuji
Už to máš vyřešené? Pro co jsi se rozhodl a jak to dopadlo?

Ujo

Re:Arduino světelná závora
« Odpověď #21 kdy: 20. 09. 2016, 17:15:59 »
Zatím to vyřešené nemám. Čekám až mi v půlce října dorazí Arduino. A vypadá to tak, že koupím hromadu součástek pro různé způsoby řešení a budu si hrát.
Ostatně na to se těším nejvíce.
Poté poreferuji. :-)
Další návrhy ovšem vítám.

Ujo

Re:Arduino světelná závora
« Odpověď #22 kdy: 20. 09. 2016, 17:34:53 »
Jinak tazatel o tom opravdu nic moc neví a chce jakékoliv řešení, které bude fungovat (ne hotové) protože se to chce naučit.  ;)