IR Detektor S88

Z ModelWiki
Skočit na navigaci Skočit na vyhledávání


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í

Vyrobený detektor

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 či PuTTy (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:

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

Tím, že modulem prochází sběrnice S88 je možné přepracovávat (nebo dokonce upravovat) data, která přes modul prochází k centrále. Ke skutečným senzorům je možné přidávat senzory virtuální, které nějak doplňují chování skutečného snímače tak, aby byl lépe použitelný pro další "úrovně" řízení kolejiště.

Prozatím je naprogramován režim opuštění snímače, který snižuje počet senzorů pro bezpečné zastavení (zejména ve skrytém nádraží).

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ů.

Spínání relé

Na základě aktivace senzoru (až 3, fungují pak jako alternativní "spouštěče") jako je možné sepnout relé. Relé zůstane sepnuto tak dlouho, dokud je senzor aktivní a ještě nastavenou dobu poté. Na jednu desku IR detektoru je možné připojit ovládání až 3 relé - musí být však řízené TTL logikou, nebo se musí použít spínací tranzistory. Možné využití je při řízení smyčky.

Nastavování a komunikace

Modul IR Detektoru používá MicroUSB port na Arduinu pro komunikaci s PC. Není to dekodér příslušenství, nedá se nastavovat pomocí CV, nemá ani vstup z DCC. Pro komunikaci s Arduinem můžeme použít

  • Arduino IDE a v něm Sériový monitor - ale ten je velmi základní, a neumí pořádně zpracovat řídící kódy, takže některé výpisy nebudou fungovat
  • Terminálový emulátor

V obou případech bude IR detektor zpracovávat jednoduché příkazy, které napíšeme a odešleme ENTER, IR detektor bude odpovídat potvrzovacími nebo chybovými hlášeními. Až bude nastavení hotové, dá se příkazem zapsat do paměti EEPROM, která se neztratí při vypnutí napájení. Po zapnutí pak IR detektor začne ihned pracovat podle nastavených pravidel a hodnot. Konfigurace se dá také smazat - IR detektor přejde do továrního nastavení.

Pro lepší diagnostiku IR detektor umí měřit a monitorovat jeden nebo více vstupů - funkce se dá použít pro přesnější nasměrování zářiče nebo senzoru.

Přehled příkazů

Skupina Příkaz Funkce
Senzory a citlivost SEN:senzor:citlivost:prodleva Nastavení citlivosti senzoru a prodlevu při přerušení paprsku
SFT:senzor:prodleva-sepnutí:prodleva-vypnutí Nastavení prodlevy při sepnutí a vypnutí
INV:senzor Změna funkce závora / odraz
VSN:id:senzor Vytvoření virtuálního senzoru k zadanému skutečnému
OTR:senzor Nastavení "hystereze" - při zachycení paprsku stačí slabší intenzita k udržení
Kalibrace a měření CAL:senzor Automatická kalibrace senzoru
CAD:senzor Kalibrace opožděného vypnutí
MSR:senzor Měření intenzity osvětlení senzoru
MON Monitoruje stav všech připojených senzorů
Relé REL Nastaví spínání relé
Údržba SAV Zapíše konfiguraci do EEPROM
DMP Vypíše konfiguraci - zálohování
RST Resetuje detektor
CLR Vymaže EEPROM, tovární nastavení

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

Řízení polarity ve smyčce

  • Autonomní přepínání polarity ve smyčce ve chvíli přejezdu nad rozhraním smyčky

Výroba detektoru

DPS je navržená jako dvojvrstvá, avšak druhá vrstva obsahuje pouze propojky. DPS jde tedy v domácích podmínkách vyrobit jako jednovrstvou, s drátovými propojkami (není jich moc). Schéma zapojení:

Schéma zapojení
  • DPS je navržená pro Arduino Nano, které má vyvedený microUSB konektor.
  • Regulátor napětí je určený pouze pro napájení LED a případně relé, můžete volit variantu podle očekávaného proudu
  • Najednou svítí vždy jen jedna IR LED (typicky: 50mA)
  • Konektory J1..J8 připojují optická čidla
  • Na konektor JP1 jsou vyvedené vývody procesru, dají se použít například k Ovládání relé
  • Neobsahuje ochranu proti přepólování ani vyššímu napájecímu napětí.
  • 1,0 1,1 IR Detektor, Belgarat 2017
  • S88 IR Detektor, Petr Šídlo, 2017
  • 3,0 3,1 Arduino Nano, popis desky