Skocz do zawartości

Długość przewodów - podłączenie czujników


AndrzejT

Pomocna odpowiedź

Szanowni,

mam pytanie/prośbę. Z grubsza chodzi o rozwianie wątpliwości dotyczącej długości przewodów, na których podłącza się różne rzeczy do Arduino, ale od początku. Chciałbym zbudować urządzenie, które wyświetlałoby parametry pracy silnika na łódce: temperatura, ciśnienie oleju, obroty. Łódka ma 12 metrów, więc problemem stają się odległości pomiędzy czujnikami, kontrolerem (Arduino) i wyświetlaczem. Z elektroniki jestem bardzo słaby (umiem za to programować), ale zdaję sobie sprawę, że może to mieć znaczenie. Bo czy np. można taki czujnik podłączyć przewodem długości 4m? A wyświetlacz np. 8m? Chciałbym też mieć dwa wyświetlacze (osobne stanowiska wyświetlające to samo) - czy taki ekran OLED komunikujący się przez SPI można po prostu podłączyć przez rozgałęziacz? Czy potrzebna jest raczej jakaś inna sztuczka? Z góry dziękuję za wszelką pomoc.

Poz.

Andrzej

Link do komentarza
Share on other sites

@AndrzejT witam na forum 🙂

Wszystko zależy od rodzaju czujników oraz środowiska, w którym pracują. Czujniki analogowe przy takiej odległości będą łapały sporo zakłóceń. Transmisja cyfrowa np. po 1-wire nie powinna sprawiać jednak problemów. Musisz sprecyzować co dokładnie chcesz do tego Arduino podłączyć.

Link do komentarza
Share on other sites

19 godzin temu, AndrzejT napisał:

Z grubsza chodzi o rozwianie wątpliwości dotyczącej długości przewodów, na których podłącza się różne rzeczy do Arduino, ale od początku. Chciałbym zbudować urządzenie, które wyświetlałoby parametry pracy silnika na łódce: temperatura, ciśnienie oleju, obroty. Łódka ma 12 metrów, więc problemem stają się odległości pomiędzy czujnikami, kontrolerem

Idealny do tego jest CAN.

19 godzin temu, AndrzejT napisał:

Arduino

Jakie Arduino? Jeśli UNO to nie warto z wielu powodów, choćby dlatego, że AVR nie mają CAN.

19 godzin temu, AndrzejT napisał:

A wyświetlacz np. 8m? Chciałbym też mieć dwa wyświetlacze (osobne stanowiska wyświetlające to samo) - czy taki ekran OLED komunikujący się przez SPI można po prostu podłączyć przez rozgałęziacz? Czy potrzebna jest raczej jakaś inna sztuczka?

SPI na 8 metrów to raczej zły pomysł.Co to konkretnie za wyświetlacze bo to też rzutuje na wybór mikrokontrolera zwłaszcza ile RAM ma mieć oraz czy wskazane aby posiadał DMA.

Link do komentarza
Share on other sites

Oczywiście niech autor pytania się wypowie w tej kwestii, ale z pierwszej wiadomości można wywnioskować raczej, że to nie jest układ z zaawansowanymi komponentami. Jest to raczej układ budowany przez osobę początkującą, które chce jakoś w praktyce wykorzystać Arduino. Z dużą dozą prawdopodobieństwa można więc założyć, że chodzi o te najtańsze, najpopularniejsze moduły małych OLEDów. DMA w przypadku Arduino to też raczej temat dość abstrakcyjny 😉

@AndrzejT powiedz coś więcej o tym układzie. To jakiś jednorazowy, hobbystyczny projekt czy ma to jakiś większy, bardziej poważny cel? W tym drugim przypadku może faktycznie będzie trzeba porzucić Arduino i pójść w kierunku czegoś bardziej profesjonalnego. Ciężko jednak doradzić coś w ciemno 🙂

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Hej, dzięki za odpowiedzi. Zaczynając od wyjaśnienia, to tak, jest to projekt czysto hobbystyczny, ale i praktyczny. I tak, jestem zupełnie zielony w temacie. Chciałbym po prostu zastąpić zwykłe zegarowe wyświetlacze elektronicznym i to zdublowanym. Czujniki to standardowe wyposażenie silnika Mercedes OM601, który na łódce już jest. Nie zapoznałem się jeszcze z ich specyfikacją, bo jestem dopiero w fazie rozważania pomysłu, ale naczytawszy się o Arduino stwierdziłem, że jakie by te czujniki nie były, to jakiś sposób na ich podłączenie się znajdzie.

Obecnie jednak oświecił mnie @RFM pisząc "Idealny do tego jest CAN". Otóż będzie na tej łódce (bo jeszcze nie ma) magistrala NMEA 2000 (do innych urządzeń nawigacyjnych), a jest to w gruncie rzeczy CAN. Zatem potrzebowałbym tylko urządzenia, które będzie przetwarzać sygnały czujników i wrzucać do sieci komunikaty NMEA (część programistyczna jest dość łatwa). Wyświetlanie można wtedy dodać do tabletu, który właśnie wyświetla nawigację. Znalazłem nawet stronę, gdzie ktoś opisuje, że to zupełnie możliwe: http://sailboatinstruments.blogspot.com/2016/04/building-your-own-nmea-2000-device.html. I jak widać potrzeba do tego tylko Arduino Due i CAN transceivera. Oczywiście jest jeszcze do opanowania podłączenie czujników, ale tu raczej nie mam co wam głowy zawracać dopóki sam lepiej nie zapoznam się z tematem. Chyba że ktoś mógłby podpowiedzieć jakąś inną platformę/kontroler, który by się lepiej do tego nadawał? Moją uwagę zwrócił np. https://botland.com.pl/pl/stm32-nucleo/4905-stm32-nucleo-f446re-stm32f446re-arm-cortex-m4.html, który ma wbudowany interfejs CAN x 2, ale nie wiem, czy tak samo nie wymaga dodatkowego transceivera.

W każdym razie dziękuję jeszcze raz i czytam dalej 🙂.

  • Lubię! 1
Link do komentarza
Share on other sites

Wybierz STM bo ma on sterownik CAN i wymagany jest tylko zewnętrzny driver. W przypadku Arduino na AVR potrzebujesz dwóch zewnętrznych scalaków co zwiększa cenę urządzenia i zmniejsza niezawodność. Takim, nie bójmy się tego słowa, idiotycznym przykładem wykorzystania AVR jest  nowy projekt kardasia z AT90CAN128. Porównaj cenę tego dinozaura z ceną nowoczesnego ARM.

Arduino z AVR dobre jest do "zamigania diodą", poważniejsze projekty najlepiej realizować na nowoczesnych ARM, które nie dość, że są lepsze to są tańsze niż AVR, które takim projektom podołają.

Dodatkowo, jeśli chcesz użyć wyświetlacza kolorowego o rozdzielczości większej niż jakieś 64x32 a już na pewno 128x64 to AVR się do tego nie nadaje. Wyświetlacz będzie działał wolno, przy rozdzielczościach 320x240 będzie to żółw, większych, żółw z jedną nogą. Testowałem 480x320 z ArduinoMega2560. Wczytanie obrazka z karty SD (BMP więc zero kompresji) trwa chyba 12 sekund (0,07FPS!). Samo czyszczenie ekranu (AVR mają za mało FLASH aby w nich trzymać obrazki, a dekodowanie JPG dla AVR to koszmar) to kilka sekund!. Porównując z  ARM F429, gdzie odświeżenie ekranu trwa 30ms (33FPS) to Trabant vs Merceces przy czym Trabant jest droższy od Mercedesa. Ratunkiem dla AVR może być FT8xx ale to kosztuje.

W Twoim projekcie CAN już sugeruje ARM. Jeśli wyświetlacz ma być kolorowy to już temat przesądzony.

Link do komentarza
Share on other sites

@AndrzejT weź tylko pod uwagę, że programowanie Arduino i STM32 to zupełnie coś innego. Start na STM32 nie będzie tak łatwy. Bez problemu sobie poradzisz, ale na początku na pewno będzie ciężej. Nie będziesz miał też dostępu do licznych bibliotek, które sprawiają, że obsługa różnych peryferiów na Arduino jest bardzo prosta. Zerknij sobie na poniższe dwa kursy, abyś miał jakiś punkt odniesienia:

Link do komentarza
Share on other sites

45 minut temu, Treker napisał:

Start na STM32 nie będzie tak łatwy. Bez problemu sobie poradzisz, ale na początku na pewno będzie ciężej.

Jeśli @AndrzejT chce użyć kolorowego wyświetlacza graficznego to w zasadzie nie ma wyjścia. Widziałem już projekty w Internecie na AVR z kolorowym graficznym gdzie kolejna wersja była na monochromatycznym czasem autor wracał do alfanumerycznego. Wyświetlacz z akceleratorem na FT8xx nie dość, ze drogo wychodzi to jak pokazują fora, arduinowcy nie czuja tematu i nie potrafią ich użyć. O realnych problemach z FT80x, który mam mało ram i sprawia problemy z własną czcionka też należy wspomnieć. O tym, ze gdy ekran zostanie obrócony sprzętowo to tagi ekranu dotykowego nie działają tez należy wiedzieć. Ograniczenie do 2000 obiektów też czasem jest problemem.

Tych wszystkich problemów nie ma z ARM. Są płytki DISCOVERY z STM, które mają wyświetlacz. Najtańsza jest chyba F429-DISCO w cenie ok 150zł. Poza wyświetlaczem 320x240 z ekranem dotykowym ma jak pamiętam 64MB DRAM, więc jest gdzie "budować" kolejne ekrany. CubeMX daje biblioteki do wyświetlacza, wystarczy zobaczyć demo, co umożliwiają. O tym na AVR można tylko pomarzyć, nawet z wyświetlaczem z FT801, który kosztuje ok 130zł. Oferuje co prawda 480x272 ale nie problem podłączyć wyświetlacz 480x320 za 50zł do jakiejś NUCLEO za ok 80zł. Cenowo wychodzi, że TYKO wyświetlacz z F801 kosztuje tyle samo co wyświetlacz o trochę większej rozdzielczości + płytka NUCLEO z PROGRAMATOREM/DEBUGEREM!

Rachunek jest prosty!

Link do komentarza
Share on other sites

@RFM oczywiście masz rację, ale sam sobie dopowiadasz założenia projektu, których nie znamy. Na hasło OLED masz przed oczami duże wyświetlacze, a może chodzi tutaj o popularne, dwukolorowe wyświetlacze o rozdzielczości 128x64 px, które działają na sterowniku SSD1306. Tutaj Arduino byłoby wystarczające 😉

Link do komentarza
Share on other sites

Ciekawa uwaga z tymi wyświetlaczami i AVR/ARM, ale i tak pierwotnie myślałem o takim małym 100x32. Teraz jednak w ogóle rezygnuje z wyświetlacza, bo jak pisałem wyżej, mój moduł tylko by miał konwertować sygnały czujników na komunikaty NMEA 2000 i pchać je na magistralę. A jak już tam będą, to wyświetlę je sobie na tablecie, na którym mam całą resztę nawigacji. Dodatkowy wyświetlacz mógłby być ewentualnie osobnym użądzeniem, które by też czytało z CAN. To rozwiązuje problem długich przewodów.

Kurs STM32 widziałem, nie odstrasza. A nawet pokazuje kilka przydatnych sztuczek, jak np. automatyczne przekazywanie odczytu z czujników przez DMA do pamięci.

Przy obu modułach - Arduino Due i STM - i tak potrzebny jest dodatkowy CAN tranceiver, więc to też nie kryterium. STM jest prawie 100 pln tańszy (chociaż przy cenach samych kabli do NMEA to pikuś). Za Arduino przemawia jednak gotowa biblioteka https://github.com/ttlappalainen/NMEA2000. Sam jej autor pisze, że Due ma wystarczająco pamięci, a mocy obliczeniowej dużo nie będę potrzebował. Do tego zintegrowane środowisko developerskie open source ze wsparciem dla Linuxa. Dlatego chyba przy tym wariancie zostanę.

  • Lubię! 1
Link do komentarza
Share on other sites

2 godziny temu, AndrzejT napisał:

Za Arduino przemawia jednak gotowa biblioteka

Jesteś świadom tego, ze biblioteki dla Arduino przeważnie są kiepskiej jakości i działają po japońsku (jako tako).

2 godziny temu, AndrzejT napisał:

Arduino Due i STM - i tak potrzebny jest dodatkowy CAN tranceiver, więc to też nie kryterium.

Dla Due dwa scalaki dla STM jeden. Jest jeszcze wiele zalet CAN w STM a nawet trzech bo i takie STMy są.

3 godziny temu, ethanak napisał:

Moduł CAN do Arduino kosztuje 11 PLN

Transiver ok 4zł.

3 godziny temu, Treker napisał:

a może chodzi tutaj o popularne, dwukolorowe wyświetlacze o rozdzielczości 128x64 px, które działają na sterowniku SSD1306. Tutaj Arduino byłoby wystarczające

Zależy jakie. W UNO bufor na taki wyświetlacz pochłonie połowę jego RAM. Nie wiem tylko dlaczego (autor już zrezygnował z wyświetlacza) chciał wersję z SPI? Pewnie dlatego, że po I2C transmisja trwa długo a bezpośrednio w Arduino z uroków przerwań I2C nie da się korzystać. Co gorsza jest ograniczenie jednej transmisji do 32 bajtów danych. Naciąłem się na to podczas pisania biblioteki do Arduino, w konsekwencji trzeba pisać swoje funkcje a prosto nie jest zwłaszcza dla początkującego.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.