Synchronizace 10 desek
Napsal: 21 kvě 2018, 15:37
Ahoj,
uvažuji, že ve výsledku budu mít 10 desek ArduinoUno. Zatím mám pro test 2 kusy.
Každá deska obsahuje strukturu, ve které je byte ID a bool POVOLENO.
Jde mi o to, aby jednotlivé desky o sobě navzájem věděly, na které je bool POVOLENO true a na které false.
Potřebuji tedy, aby se bezdrátově synchronizovaly.
Zatím jsem šel myšlenkou 433 Mhz broadcastu, kdy mám jednotlivé desky synchronizované v čase a interval jedné sekundy mám rozdělen na 10 "oken". Každá Ntá deska vysílá o sobě informaci v Ntém okně, ve zbývajícím čase naslouchá ostatním.
Tím se vyhýbám zahlcení přijímače a častým konfliktům. Na komunikace používám knihovnu VirtualWire.
Problém, na který jsem narazil, je, že na jedné desce jakoby nemohl být vysílač a přijímač zároveň. Pokud jsem pouze posílal strukturu z jedné desky na druhou, šlo to výborně. Pokud bych chtěl zpět poslat strukturu z druhé na první, už to neprojde.
Řešení nepřináší ani funkce rx_start() a rx_stop(), že bych před započetím vysílání zhazoval a po odeslání zprávy opět nahazoval přijímač.
Druhá myšlenka byla, že bych jak přijímač, tak vysílač napájel z digitálního pinu 5 V. Ani to nevedlo k úspěchu.
Třetí myšlenka byla, že bych přijímač i vysílač napájel přes tranzistor a z digitálního pinu určoval, které "zařízení bude aktivní" podle potřeby. Ani to nevedlo k úspěchu.
Takže už moc nevím. Je pak možnost využít i úplně jinou technologii, podmínka ale je, aby synchronizace probíhala broadcastově, aspoň na 20 metrů, přes překážky.
U WiFi bych musel postupně komunikovat vždy jen "jeden s jedním", že? U toho rádia je sympatické, že jeden vysílá a všichni poslouchají...
uvažuji, že ve výsledku budu mít 10 desek ArduinoUno. Zatím mám pro test 2 kusy.
Každá deska obsahuje strukturu, ve které je byte ID a bool POVOLENO.
Jde mi o to, aby jednotlivé desky o sobě navzájem věděly, na které je bool POVOLENO true a na které false.
Potřebuji tedy, aby se bezdrátově synchronizovaly.
Zatím jsem šel myšlenkou 433 Mhz broadcastu, kdy mám jednotlivé desky synchronizované v čase a interval jedné sekundy mám rozdělen na 10 "oken". Každá Ntá deska vysílá o sobě informaci v Ntém okně, ve zbývajícím čase naslouchá ostatním.
Tím se vyhýbám zahlcení přijímače a častým konfliktům. Na komunikace používám knihovnu VirtualWire.
Problém, na který jsem narazil, je, že na jedné desce jakoby nemohl být vysílač a přijímač zároveň. Pokud jsem pouze posílal strukturu z jedné desky na druhou, šlo to výborně. Pokud bych chtěl zpět poslat strukturu z druhé na první, už to neprojde.
Řešení nepřináší ani funkce rx_start() a rx_stop(), že bych před započetím vysílání zhazoval a po odeslání zprávy opět nahazoval přijímač.
Druhá myšlenka byla, že bych jak přijímač, tak vysílač napájel z digitálního pinu 5 V. Ani to nevedlo k úspěchu.
Třetí myšlenka byla, že bych přijímač i vysílač napájel přes tranzistor a z digitálního pinu určoval, které "zařízení bude aktivní" podle potřeby. Ani to nevedlo k úspěchu.
Takže už moc nevím. Je pak možnost využít i úplně jinou technologii, podmínka ale je, aby synchronizace probíhala broadcastově, aspoň na 20 metrů, přes překážky.
U WiFi bych musel postupně komunikovat vždy jen "jeden s jedním", že? U toho rádia je sympatické, že jeden vysílá a všichni poslouchají...