IR Detektor S88: Porovnání verzí

Z ModelWiki
Skočit na navigaci Skočit na vyhledávání
Řádek 1: Řádek 1:
 
[[Kategorie:Elektronika DCC]]
 
[[Kategorie:Elektronika DCC]]
  
Při pokusech o automatizaci posunu jsem vyvinul detektor polohy pracující na principu odrazu (infračerveného) světla od podvozku. Konstrukce je popsaná ve [https://ttodbocna.fandom.com/cs/wiki/IRDetektor starším materiálu na Wikia.com]. HW konstrukci jsem později změnil z důvodu úspory odebíraného proudu - jako kompromis mezi spotřebou (původně 8 IR LED po 30mA = 0,25A / deska) a počtem zabraných "nožiček" Arduina jsem použil spínání LED ve dvojicích, pomocí tranzistorového pole. "Volné" 3 vývody Arduina jsou vyvedené na konektor a integrovaná LED (D13) zůstává pro indikaci provozního stavu. Špičkově tak modul odebírá cca 2x40mA (2x LED) + samotné Arduino.
+
Při pokusech o automatizaci posunu jsem vyvinul detektor polohy pracující na principu odrazu (infračerveného) světla od podvozku. Konstrukce je popsaná ve [https://ttodbocna.fandom.com/cs/wiki/IRDetektor starším materiálu na Wikia.com]<ref name="belgarat">[https://ttodbocna.fandom.com/cs/wiki/IRDetektor IR Detektor], Belgarat 2017</ref>. HW konstrukci jsem později změnil z důvodu úspory odebíraného proudu - jako kompromis mezi spotřebou (původně 8 IR LED po 30mA = 0,25A / deska) a počtem zabraných "nožiček" Arduina jsem použil spínání LED ve dvojicích, pomocí tranzistorového pole. "Volné" 3 vývody Arduina jsou vyvedené na konektor a integrovaná LED (D13) zůstává pro indikaci provozního stavu. Špičkově tak modul odebírá cca 2x40mA (2x LED) + samotné Arduino.
  
 
Podobný IR detektor v podstatě zároveň [https://sites.google.com/site/sidloweb1/home/13-s88-ir-detektor vyvinul Petr Šídlo]<ref name="sidlo">[https://sites.google.com/site/sidloweb1/home/13-s88-ir-detektor S88 IR Detektor], Petr Šídlo</ref>, ten však vyžaduje použití různého firmware pro '''různé druhy osvětlení a neumožňuje kalibraci'''.  
 
Podobný IR detektor v podstatě zároveň [https://sites.google.com/site/sidloweb1/home/13-s88-ir-detektor vyvinul Petr Šídlo]<ref name="sidlo">[https://sites.google.com/site/sidloweb1/home/13-s88-ir-detektor S88 IR Detektor], Petr Šídlo</ref>, ten však vyžaduje použití různého firmware pro '''různé druhy osvětlení a neumožňuje kalibraci'''.  
  
 
=== Provedení ===
 
=== Provedení ===
Podobně jako starší verze, detekor je postavený na platformě Arduino Nano. Deska obsahuje 8 třípinových konektorů (LED, +5V, IN) pro páry IR LED (vysílač) + fototranzistor (přijímač). Arduino LEDkami bliká (zapíná vždy 2 LEDky, postupně vystřídá všechny páry) s frekvencí cca 1kHz - pomocí fototranzistorů pak zjišťuje zda přijímač přijímá "správné světlo".  
+
Podobně jako [https://ttodbocna.fandom.com/cs/wiki/IRDetektor starší verze]<ref name="belgarat"/>, detekor je postavený na platformě https://www.arduino.cc/en/Main/ArduinoBoardNano Arduino Nano]<ref name="nano">[https://www.arduino.cc/en/Main/ArduinoBoardNano Arduino Nano], popis desky</ref>. Deska obsahuje 8 třípinových konektorů (LED, +5V, IN) pro páry IR LED (vysílač) + fototranzistor (přijímač). Arduino LEDkami bliká (zapíná vždy 2 LEDky, postupně vystřídá všechny páry) s frekvencí cca 1kHz - pomocí fototranzistorů pak zjišťuje zda přijímač přijímá "správné světlo".  
  
 
Díky blikání lze odfiltrovat rozptýlené světlo (sluníčko, žárovky, zářivky) - posuzuje se ne přímo úroveň, ale '''změna''' osvětlení přijímače při zhasnutí a rozsvícení LEDky - vysílače. Frekvence měření fototranzistoru je dost "nesoudělná" s frekvencí v napájecí síti (blikání zářivek, žárovek), není třeba měnit firmware v Arduinu při změně typu osvětlení. Detektor '''nefunguje při zahlcení fototranzistoru''': osvětlení přímo namířenou klasickou žárovkou 40W z 50cm nerozchodí.
 
Díky blikání lze odfiltrovat rozptýlené světlo (sluníčko, žárovky, zářivky) - posuzuje se ne přímo úroveň, ale '''změna''' osvětlení přijímače při zhasnutí a rozsvícení LEDky - vysílače. Frekvence měření fototranzistoru je dost "nesoudělná" s frekvencí v napájecí síti (blikání zářivek, žárovek), není třeba měnit firmware v Arduinu při změně typu osvětlení. Detektor '''nefunguje při zahlcení fototranzistoru''': osvětlení přímo namířenou klasickou žárovkou 40W z 50cm nerozchodí.
  
Detektor se nastavuje pomocí MicroUSB kabelu připojeného k PC programem Hyperterminál (MS Windows), nebo minicom (Linux).  
+
Detektor se nastavuje pomocí PC, programem Hyperterminál (MS Windows), nebo minicom (Linux) - připojuje se pomocí MicroUSB kabelu ke konektoru Arduino Nano<ref name="nano"/>.
  
 
== Hlavní funkce ==
 
== Hlavní funkce ==

Verze z 19. 4. 2021, 16:40


Při pokusech o automatizaci posunu jsem vyvinul detektor polohy pracující na principu odrazu (infračerveného) světla od podvozku. Konstrukce je popsaná ve starším materiálu na Wikia.com[1]. HW konstrukci jsem později změnil z důvodu úspory odebíraného proudu - jako kompromis mezi spotřebou (původně 8 IR LED po 30mA = 0,25A / deska) a počtem zabraných "nožiček" Arduina jsem použil spínání LED ve dvojicích, pomocí tranzistorového pole. "Volné" 3 vývody Arduina jsou vyvedené na konektor a integrovaná LED (D13) zůstává pro indikaci provozního stavu. Špičkově tak modul odebírá cca 2x40mA (2x LED) + samotné Arduino.

Podobný IR detektor v podstatě zároveň vyvinul Petr Šídlo[2], ten však vyžaduje použití různého firmware pro různé druhy osvětlení a neumožňuje kalibraci.

Provedení

Podobně jako starší verze[1], detekor je postavený na platformě https://www.arduino.cc/en/Main/ArduinoBoardNano Arduino Nano][3]. Deska obsahuje 8 třípinových konektorů (LED, +5V, IN) pro páry IR LED (vysílač) + fototranzistor (přijímač). Arduino LEDkami bliká (zapíná vždy 2 LEDky, postupně vystřídá všechny páry) s frekvencí cca 1kHz - pomocí fototranzistorů pak zjišťuje zda přijímač přijímá "správné světlo".

Díky blikání lze odfiltrovat rozptýlené světlo (sluníčko, žárovky, zářivky) - posuzuje se ne přímo úroveň, ale změna osvětlení přijímače při zhasnutí a rozsvícení LEDky - vysílače. Frekvence měření fototranzistoru je dost "nesoudělná" s frekvencí v napájecí síti (blikání zářivek, žárovek), není třeba měnit firmware v Arduinu při změně typu osvětlení. Detektor nefunguje při zahlcení fototranzistoru: osvětlení přímo namířenou klasickou žárovkou 40W z 50cm nerozchodí.

Detektor se nastavuje pomocí PC, programem Hyperterminál (MS Windows), nebo minicom (Linux) - připojuje se pomocí MicroUSB kabelu ke konektoru Arduino Nano[3].

Hlavní funkce

Deska IR detekrou obsluhuje až 8 senzorů, párů IR dioda - fototranzistor. Každý senzor může být použitý v režimu

  • odrazu: senzor hlásí "obsazeno", pokud zachytí odraz od nápravy, či spodku vozidla
  • závory: senzor hlásí "obsazeno", pokud se paprsek přeruší - mezi IR diodou a fototranzistorem je vozidlo či jiná překážka.

Režim se po každý senzor nastavuje zvlášť, jeden modul může obsluhovat jak závory, tak odrazky. Detektor je zapojený do sběrnice S88, a stav jednotlivých senzorů hlásí centrále.

Každého senzoru zvlášť modul umožňuje:

  • nastavit funkce závora nebo odraz
  • nastavit citlivost snímání - může záviset na montáži, poloze, vzdálenosti vysílače a přijímače
  • určit dobu "hystereze", než po úspěšné detekci opět přejde do stavu "volno". Potlačí krátké zákmity a může potlačit mezery mezi vagony
  • provést "automatickou kalibraci" - změří odrazy od překážky, určí citlivost

Konfigurace

Nastavení se provádí připojením PC. Detektor obsahuje jednoduchý "příkazový řádek", který umožňuje:

  • nastavovat citlivost senzorů a prodlevy
  • kalibrovat senzory
  • změnit režim senzoru (závora / odrazka)
  • vytvořit virtuální senzor (viz níže)
  • monitorovat stav senzorů
  • vypsat všechna nastavení
  • uložit nastavení do paměti EEPROM, obnovit nastavení z EEPROM

Příkaz pro výpis nastaveni (DMP) vypíše sadu příkazů, která, po zadání do "prázdného" dekodéru (vymazaný příkazem CLR) obnoví původní nastavení - výpis je textový, je možné jej uchovat a archivovat v PC.

Protože je detektor elektricky spojený (S88 sběrnice) s centrálou kolejiště, doporučuji používat notebook bežící z baterie (vyloučení vyrovnání potenciálů mezi centrálou a zdrojem PC přes USB port).

Virtuální senzory

Některé řídící SW (např. RocRail) dokáží pracovat jen s jednoduchými senzory a reagují na stav "obsazeno". Optickou závoru použitou pro zastavení na pravém konci staniční koleji nelze využít zároveň jako senzor, že při vjezdu zprava (to znamená souprava projíždí snímačem hned na začátku koleje) určí, že souprava jej celý minula a už je bezpečně na staniční koleji. V takovém případě se zřizují 2 senzory, na každém konci koleje jeden. V jiných SW (např. JMRI) je možné takto senzor použit, je to však spojené s vytvářením virtuálního senzoru a logiky jeho spínání pro každý takový případ zvlášť, což je pracné.

Modul dokáže také vytvářet virtuální senzory, doplňkově k těm skutečným. Virtuální senzor při spojení se skutečným senzorem (obsazení, závora, odrazka, ...) detekuje přejezd a opuštění monitorovaného úseku (místa). V řídícím software pak vystupuje jako "obyčejný" senzor. Pokud se použijí virtuální senzory, modul přidává na sběrnici S88 16 vstupů (8 skutečných senzorů a 8 virtuálních).

  • Sleduje jeden konkrétní skutečný senzor
  • Je v základním stavu "volno"
  • Je stále ve stavu "volno" (navenek) ale "uvnitř modulu" se změní se na "připraven", jakmile se skutečný senzor změní na "obsazeno".
  • Přejde do stavu "obsazeno", když se skutečný senzor uvolní na déle, než nastavený čas
  • Stav obsazeno singalizuje cca 0,5 sekundy (dá se změnit)-

S pomocí virtuálních senzorů jde snížít na polovinu počet snímačů ve skrytém nádraži. Pozice zastavení v "nesprávném" směru nebude tak přesná, ale to právě ve skrytých nádražích tolik nevadí.

Virtuální senzory pro jiné moduly

Tato funkce vznikla hlavně proto, aby se kvůli 1 virtuálnímu párovému senzoru nezapláclo hned 8 pozic na sběrnici S88: Některé centrály umějí jen 128 vstupů (NanoX), a pozicemi je třeba šetřit.

Díky tomu je ale možné vytvořit Virtuální senzor pro jakýkoliv senzor jehož stav se přečte ze sběrnice S88, která modulem prochází, je tedy možné IR detektor zapojit blíže centrále, a vytvořit virtuální senzory hned pro několik různých detektorů.

Příklady použití IR detektoru

Indikátor pro zastavení

  • Na konci staniční koleje. Může sloužit jako "In" senzor pro RocRail, způsobí zastavení na daném místě
  • Před návěstidlo. Může sloužit k zastavení soupravy při signálu "stůj"

Detekce polohy

  • Před železniční přejezd. Může zapnout, případně uvolnit přejezd.

Detekce jednotlivých vozidel

  • Počitadlo vozidel
  • Automatické rozpojování soupravy - odpočítání vozidel před použitím rozpojovače

  1. 1,0 1,1 IR Detektor, Belgarat 2017
  2. S88 IR Detektor, Petr Šídlo
  3. 3,0 3,1 Arduino Nano, popis desky