Liczba postów: 6
Liczba wątków: 1
Dołączył: Dec 2018
Reputacja:
0
28-12-2018, 12:23
(Ten post był ostatnio modyfikowany: 28-12-2018, 12:25 przez owerel209.)
Witam, dostałem projekt na studiach związany z Arduino. Moją częścią projektu jest zaimplementowanie komunikacji pomiędzy Arduino Mega, a Arduino Nano. Arduino Mega ma zadawać prędkość obrotową silnika, a Arduino Nano ma wysterować silnik i poprzez sprzężenie zwrotne odczytywać informację o stanie prędkości obrotowej po czym wysyłać spowrotem informację do Mega.
Komunikację chciałem oprzeć na I2C ale nie jestem znawcą tematu i zastanawiam się czy jest to możliwe. Końcowo Arduino Mega ma za zadanie przesyłać informację o prędkości do 6 Arduino Nano. Czy nie lepszy będzie tryb 1-wire? Chciałbym wybrać tryb komunikacji, który byłby w stanie to obsłużyć. Informacja ma zostać wysłana w zakresie od np 0 - 10000 obr/min.
Liczba postów: 856
Liczba wątków: 2
Dołączył: Nov 2017
28-12-2018, 14:44
(Ten post był ostatnio modyfikowany: 28-12-2018, 14:48 przez es2.)
(28-12-2018, 12:23)owerel209 napisał(a): Komunikację chciałem oprzeć na I2C ale nie jestem znawcą tematu i zastanawiam się czy jest to możliwe. Końcowo Arduino Mega ma za zadanie przesyłać informację o prędkości do 6 Arduino Nano. Czy nie lepszy będzie tryb 1-wire? Chciałbym wybrać tryb komunikacji, który byłby w stanie to obsłużyć. Informacja ma zostać wysłana w zakresie od np 0 - 10000 obr/min.
I2C jest wolne, 1-Wire jeszcze wolniejsze. Ponadto, 1-Wire chyba jeszcze nada wymaga licencji na slave.
Jak często mają być odczytywane informacje z NANO?
Użyj Bluetooth 4.0 ? Uart ?
Liczba postów: 71
Liczba wątków: 2
Dołączył: Oct 2018
Reputacja:
1
A czemu nie wifi?
Udp jak chcesz szybko..
Wysłane z mojego SM-G950F przy użyciu Tapatalka
Liczba postów: 856
Liczba wątków: 2
Dołączył: Nov 2017
29-12-2018, 13:50
(Ten post był ostatnio modyfikowany: 29-12-2018, 13:51 przez es2.)
(29-12-2018, 13:27)wchpikus napisał(a): A czemu nie wifi?
Udp jak chcesz szybko..
Co da Wi-Fi, USP jak 2,5Mb/s dla AVR to szczyt szczytów?
Tyle to sobie po RS485/422 zrobi płaca 1zł za driver a nie np 13zł za ESP.
Liczba postów: 856
Liczba wątków: 2
Dołączył: Nov 2017
29-12-2018, 20:56
(Ten post był ostatnio modyfikowany: 29-12-2018, 20:59 przez es2.)
(29-12-2018, 16:26)owerel209 napisał(a): Problem polega na tym, że dron już jest. Zrobiony na Arduino MEGA - lata ale jest niestabilny. Według założenia wykładowcy pojedyńczy mikrokontroler nie jest w stanie ogarnąć sześciu silników jednocześnie, stąd koncepcja przerzucenia sterowania silnikami do sześciu osobnych mikrokontrolerów zarządzanych przez jednego Mastera - który ma za zadanie tylko zadawać i kontrolować prędkość. Temat został mi narzucony więc nie mam zbytnio pola manewru.
Co to za silniki? Mega2560 ma sporo PWM powinno wystarczyć, jeśli nie to źle został wybrany uC.
Może PWM zrealizowano programowo? Jeśli tak to źle napisany program. Może funkcje programu sa blokujące? Pokaż program, schemat.
(29-12-2018, 16:26)owerel209 napisał(a): Konkluzja jest taka, że jeżeli zostanę przy tej koncepcji to najlepszy rozwiązaniem pozostaje I2c tak ?
I2C ma tą zaletę, że wymaga tylko 2 drutów ale jest wolny co w tym przypadku jest bez znaczenia.
(29-12-2018, 16:26)owerel209 napisał(a): moje pytanie jest jednak takie czy klon MEGA jest w stanie ogarnac 6x I2c na raz.
Po co 6 I2C? Tylko nieliczne ARM maja tyle.
Kolejne możliwości to SPI ale wymaga aż 3 drutów + po jednym na każdego slave czyli razem 9.
UART i RS485, tylko dwa druty.
Liczba postów: 6
Liczba wątków: 1
Dołączył: Dec 2018
Reputacja:
0
30-12-2018, 02:26
(Ten post był ostatnio modyfikowany: 30-12-2018, 02:27 przez owerel209.)
Silniki to BLDC Redoxa wysterowane przez sygnały PWM przenikające przez regulatory ESC dedykowane do tego typu silników. Również wydaje mi się że problemem jest jądro platformy sterującej jednakże nic nie da, że się wychylę z moją teorią. Niejeden dron lata na armi'e ale niestety moim zadaniem jest doprowadzenie do tego aby AVR ogarnął. Mógłbym się długo rozpisywać o problemie bo temat jest szeroki, luzy na utwierdzeniach silników, różnice w rzeczywistym ciągu każdego z silników i wiele wiele innych niewiadomych. Chciałbym zrobić po prostu coś w kierunku który wskazał mi wykładowca czy to będzie działać czy nie o mnie za mnie. Dlatego ostatecznie zadaję pytanie w który interfejs komunikacyjny powinienem się skierować?
Mając na uwadze możliwości komunikacyjne platformy A Mega i Nano (klon) - musi być opcja obsłużenia 6 slave'ów.
Ilość drutów nie ma znaczenia, liczy się możliwość podłączenia całego układu, nawet jak to nie jest możliwe do obsłużenia chciałbym, aby z mojej strony komunikacja była optymalna i na miarę możliwości najszybsza ze wszystkich możliwych opcji.