• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Komunikacja 4 modułów arduino Nano z Hostem
#1
Witajcie, potrzebuję porady przy połączeniu kilku modułów arduino.

Docelowo potrzebuję stworzyć sieć 4 modułów arduino które mają się
komunikować z Hostem, którym będzie prawdopodobnie PC + aplikacja na PC.
I teraz pytanie, mam 4 arduino nano połączone przy pomocy Huba USB i są 
one połączone z PC przez UART (wbudowane FTDI w NANO). Nie jest konieczne, aby Nano komunikowały się ze sobą. Chcę uniknąć łączenia ich przez I2C i SPI - sieć docelowo miała być wpięta w HUB(wszystko przy pomocy kabli USB) a potem do PC.
I teraz pytanie, czy będę w stanie komunikować się z każdym modułem poprzez port wirtualny COM z poziomu PC,
czy lepiej stworzyć sieć opartą na RS485 dokupując do każdego arduino osobny moduł RS485? 
Ewentualnie prosiłbym o radę jak w miarę łatwo stworzyć taką sieć w inny sposób.

Najwygodniejsza dla mnie jest opcja 1. Istotna dla mnie jest również akwizycja danych, korzystał będę później zapewne ze środowiska QTCreator i zastanawiam się czy będzie trzeba odwoływać się do każdego portu wirtualnego osobno(bo rozumiem, że tak trzeba robić - każde arduino z poziomu PC jest aktualnie widoczne pod innym portem COM korzystając np z Tera Teram), czy lepiej stworzyć sieć przy użyciu np RS485. 

Z góry dzięki za rady Wink


Załączone pliki Miniatury
   
 
Odpowiedź
#2
Każde urządzenie w sieci posiada swój adres, inaczej przecież nie był byś w stanie się z nim komunikować.
Nie ma znaczenia jaki standard komunikacji wybierzesz.
RS485 jest jest standardem przemysłowym, ze względu na odporność na zakłócenia, sporą długość maksymalną przewodów komunikacyjnych, oraz możliwość komunikacji pewnie ze trzydziestu urządzeń na jednym kablu.
W twoim przypadku powinieneś wybrać rozwiązanie najprostsze, czyli HUB USB.
Do 15 metrów nie będzie zakłóceń.
Pozdrawiam.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#3
To tez zależy jak chcesz by to działało. Przy obecnym układzie hub USB + 4 konwertery USB na czterech niezależnych portach program PC może monitorować niezależnie cztery Arduino i odbierać z nich dane kiedy zostaną nadane przez Arduino natychmiast i niezależnie bo są to logicznie niezależne połączenia 4x(1 do 1). O brak konfliktów sprzętowo dba USB. W RS485 transmisję inicjuje master (PC w tym wypadku) i okresowo sprawdza poszczególne moduły czy mają coś do powiedzenia. Niedopuszczalne jest nadawanie asynchronicznie przez różne moduły slave niezależnie od siebie bo będą się zakłócać jeśli akurat najdzie ich ochota w tym samym czasie. USB może działać jak napisał Robson na 15m, ale standard mówi o 2-5m, zakładając, że masz super ekranowany kabel 5m do aktywnego huba i potem takie same 5m do każdego urządzenia to tyle jest pewne i zgodne ze standardem ( max 4 wzmacniacze po drodze, max 25m). Może zadziałać na większą odległość, gwarancji nie ma. Może też zadziałać i czasami coś nie działać. Protokoły I2C i SPI są z założenia przeznaczone do komunikacji w pudełku urządzenia, do kilkudziesięciu cm. Sam musisz zdecydować czy wolisz większą odległość i tylko odpowiedzi od modułów czy mniejszą odległość ale niezależne nadawanie przez moduły. Jak musi być i daleko i niezależnie to jest kolejne rozwiązanie - na PC serer TCPIP/UDP/TELNET, do niego podłączone 4 moduły ESP8266 i to mogą być ESP jako niezależne sterowniki robiące zamiast nano lub wykorzystane jako mostek UART-WIFI TCPIP podłączony do każdego nano przez UART. RS 485 może być też 4 kanałowy, wtedy odpada problem z wzajemnym zakłócaniem. Do PC podłączasz 4 takie dongle USB/RS485, pojawiają się 4 porty COM, do każdego NANO podłączasz konwertery jak na schemacie i możesz sobie tę sieć poprowadzić na 4x kilkadziesiąt m w 4 różne strony, a na PC dalej działa jak teraz na HUB USB z czterema NANO. Może być i dalej, ale już przy kilkunastu m trzeba pamiętać o zgodności poziomu napięć, najlepiej separować optycznie urządzenia. Teoria mówi o 2000m dla RS485. Przy ESP8266 odpada większość grzebania w kablach i zastanawiania się co kiedy/gdzie się upali.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości