Przepraszam z góry że (znowu) napiszę na forum, ale winne jest temu
nie wytrzymanie moje.
Zacznę od końca:
Urządzenia które wymagają więcej operacji w kodzie, tym samym zajmują więcej pamięci, a są nimi na przykład silniki krokowe - najlepiej podpinać do mastera a nie po i2c.
Nie potrafię sobie wyobrazić, jak bardzo musi być zaśmiecony kod sterowania silnikami krokowymi, żeby zapchać pamięć takiego uC jak ATMega 2560 (8kB).
Ja mam pulpit zbudowany na bazie 1xRaspberry PI + 6xArduino Nano. Raspberry komunikuje się z PC po UART, a z Arduinami po I2C.
Zbyt przewymiarowany. Malinę widziałbym w znacznie bardziej wymagających scenariuszach, jak symulacja samego pulpitu, czy komunikacja przez LAN.
Ale jak działa i zbytnio się nie grzeje, to pół biedy.
Na razie zmieniłem koncepcje i robię prawie tak jak mówisz tylko zamiast arduino jako slave będę korzystał z MCP23017.
Pora nauczyć się czegoś innego już parchate 8-bitowe ATMega.
Ja nie piszę że się nie nada, ale nakładka w postaci Arduino nie nadaje się do czegokolwiek innego niż proste mruganie diodą czy sterowanie silnikiem krokowym. W szczególności brak dostepu do
timerów,
przerwań.
Z kolei za czyste AVR C trzeba od firmy-dziad nazywającej się "Microchip" zapłacić. I jeszcze dostanie się kompilator na bazie GCC, nie wspominając że optymalizacje też są płatne...
Mogę polecić uC od STMicroelectronics, do wyboru do koloru. Może i płytki dev są droższe (niż tłuczone masowo u Chińczyka klony Arduino), ale możliwości to niebo a ziemia. Ceny za chipy w hurcie porównywalne.
"Dodatkowo dzisiaj doszły kombinacje przycisków na pulpicie, do wymuszenia resetu"
Watchdog powinnen rowiązać problem, ale to niestety też nie ma tego Arduino... Czysty AVR ma, ale nie pamiętam już jak biedny jest on.
Techniki podpatrzone u pewnego producenta z nad Dunajca ;)
Zdrowaś Maryjo dla tego producenta. No ale, rynek makiet nie lepszy...
Po UART to jak zgubi jeden to lubią się przesunąć.
Ramka danych. Jeżeli zaczyna się jakąś sekwencją danych, to do "synchronizacji" wystarczy odpowiednie parsowanie.
co budowniczowie uważają o korzystaniu z kilku kontrolerów arduino zamiast ekspanderów?
Jak jest zrobione
zgodnie ze sztuką, to nie ma przeciwskazań.
wprowadza swego rodzaju wielowątkowość pulpitu
realizuje niezależnie od odświeżania danych na serial porcie.
Przerwania. Słyszał Pan o czymś takim? Na bibliotece Arduino to nie możliwe, ale na czystym AVR C jak najbardziej.
Jeśli ktoś poszukuje rozwiązania do sterowania haslerem to załączam tutaj link do falownika.
Układ fajny, ale ja już ci pisałem że za drogo i że nieco przewymiarowany.
Ale zdjęcie okropne, cała płytka w kalafonii i opryskane nią obudowy tranzystorów.
A teraz coś od siebie:
Przede wszystkim róbcie z głową. Nie używajcie sleep(), delay(), broń boże od tego. Prędkość transmisji 115200 bps nie ma znaczącego wpływu na dzisiejsze uC, a mniejsza prędkość to wolniej otrzymuje dane.
No i
porzućcie 30-letni parch AVR. Jest tyle lepszych współczesnych mikrokontrolerów, trzeba nadążać z duchem czasu. Rodzina STM32, ESP, NXP. A jak ktoś się odważy to może wyklepie coś z FPGA ;)
W poście zawarłem wskazówki, które
wytłuściłem.
Powodzenia.