Skip to content

Omezeni a rozsireni

Svata Dedic edited this page Apr 5, 2018 · 2 revisions

Omezení

Rušení na klávesnicovém vstupu

Největší omezení je vstup z maticové klávesnice. Obávám se, že pod kolejištěm, a na vzdálenost pult - ServoPoint budou dratky vesele indukovat napětí z trakčního vedení. Nicméně - prozatím prototyp funguje. V případě problémů je na konektoru ROWS vyvedeno napájení a linky A3-A5 (mimo jiné SDA/SCL - umožňuje komunikaci pomocí Wire.h). Na konektoru COLS jsou pro změnu vyvedené piny D2, D3 - na kterých je možné HW přerušení. Pomocí "COLS" by měl jít připojit UART nebo alespoň MAX485, a knihovna Keypad by se zaměnila za komunikaci po sběrnici RS485.

Možná rozšíření

"Základní" desku jsem navrhl s tím, že k ní bude možné připojit malé kousky, které doplní a rozšíří funkce - které se třeba na desku nevešly, protože mam Eagle free, který umožňuje jen desky 10x10cm. Nebo protože si nejsem 100% jistý, že (např.) tolik výstupů je vhodných pro každou aplikaci. Pomocné desky jsem zatím nerealizoval - ještě jsem je nepotřeboval použít. Jako první se zřejmě "zhmotní" deska pro rozšíření spínaných výstupů posuvným registrem.

Na hřebínkové konektory jsem se snažil vyvést dost výstupů Arduina, aby se případně daly různé funkce pozměnit (např. za cenu zrušení rozšíření pro serva je možné připojit něco jiného).

Rozšíření spínaných výstupů

Spínané výstupy jsou zařízené posuvným registrem, který se dá řetězit. Na konektoru SHIFT jsou vyvedené všechny řídící signály včetně napájení pro elektroniku - na pomocné desce tedy stačí posuvný registr a tranzistorové pole. Celkový počet výstupů může být až 62 - na víc nestačí datové struktury (pro ID výstupu se používá 6 bitů, z toho jedno číslo je rezervované).

Rozšíření o 8 servo

S tímto rozšířením jsem přímo počítal - na konektoru SERVO je vyvedeno 2x PWM, řídící bity výběru pro demultiplexor 4052 a napájení. Na konektoru SERVO PWR 4x spínané napětí (regulované potenciometrem a regulátorem LM317) pro napájení serva. Obslužný software je napsaný tak, že každý PWM výstup zpracovává jeden "servo procesor", a navzájem si koordinují ovládaná serva tak, aby při konkrétním nastavení demultiplexoru mohla serva pracovat zároveň. Postačí přidat 2 další "procesory" a přidat je k těm stávajícím.

Rozšiřující deska se uplatní nejen v případě, že je třeba řídit 16 servo, ale také když se požaduje současné přestavení až 4 servo.

Rozšíření vstupů

V případě, že by bylo nutné připojit na vstup více přepínačů než 16, nezbývají vstupní piny Arduina. Řešení je dvojí:

  • Připojit ServoPoint na sběrnici pomocí MAX485, pak může mít tolik vstupů, pro kolik stačí EEPROM, nebo
  • Pomocí vstupů D2-4, A1, A4-7 můžeme připojit střadač 4014, který bude sbírat vstupy. Je ale nutné někde "sebrat" jeden výstupní pin navíc. Nabízí se pin D13, který se používá pro data do posuvného registru na spínané výstupy. Nebo lze použít jeden z PWM pinů pro přídavná serva.
  • Alternativně lze použít posuvný registr pro nasouvání 0 do sloupců - v takovém případě ale v tlačítkovém poli musí být diody, jinak by došlo ke zkratování posuvného registru (propojení pinů s hodnotou 0, 1 přes tlačítkovou matici).

Sběrnice I2C

Na výstupní konektory jsou vyvedené piny SDA a SCL. Arduino je možné zapojit na sběrnici I2C, pokyny může namísto maticové klávesnice přijímat ze sběrnice.