• Ten serwis używa "ciasteczek" (cookies). Korzystając z niego, wyrażasz zgodę na użycie plików cookies. Learn more.
  • Szanowny Użytkowniku, serwisy w domenie modelarstwo.info wykorzystują pliki cookie by ułatwić korzystanie z naszych serwisów. Jeśli nie chcesz, by pliki cookies były zapisywane na Twoim dysku zmień ustawienia swojej przeglądarki.

DCC samoróbka oparta na Arduino

bojleros

Nowy użytkownik
Reakcje
2 0 0
#81
Cześć,

Na płycie fabrycznie jest 220R. Według noty aplikacyjnej dopuszczalna wartość rezystancji jest ograniczona w pewnym zakresie. Po za nim charakterystyka FB staje się nieliniowa. Dwa (popraw mnie śmiało jeżeli jestem w błędzie) ale z tego co rozumiem to FB jest wyjściem prądowym tak więc jeżeli potrzeba wyższego napięcia do ADC to rezystancję należy zwiększać.

Tak czy siak sprawdzę i dam znać. Na razie sprawdzałem pobieżnie obciążając rezystorem i nie odnotowałem pomiarów żeby powiedzieć precyzyjnie.

Pozdrawiam,
 

PiotrK

Aktywny użytkownik
FREMO Polska
Reakcje
303 0 0
#82
Pytanie brzmi, czy napięcie nie jest zbyt duże i dlatego arduino nie rozpoznaje sygnału?
Kolejna sprawa to czy generowana zmiana prądu będzie wystarczająca by wywołać odpowiednią reakcję.
Pomiary powinny odpowiedzieć na wszystko.
 

Miqi

Nowy użytkownik
Reakcje
1 0 0
#83
WItam,

Pololu vs. Motorshield

- Pololu - zasilane - 19,5 V DC 4,6 A (zasilacz komputerowy DELL)
- Motorshield - zasilanie - 18 V DC - chwilowo 1 A (w oczekiwaniu na zasilacz 3A)

Jazda i programowanie działa bez zarzutu - jednakże stwierdziłem że zasilanie napięciem 12V DC jest zbyt niskie i powoduje problemy z programowaniem i sterowaniem zwrotnic.

P.s. Jakie jest bezpieczne napięcie na torach dla dekoderów?
 

Załączniki

Miqi

Nowy użytkownik
Reakcje
1 0 0
#86
Zaobserwowałem, że mam możliwość nastawienia CV ale nie mam możliwości ich odczytania. Nie wiesz może czy to przypadłość DCC++ albo może mam jakiś problem do zwalczenia? Nie jestem pewny czy pomiar prądu działa prawidłowo...

Z góry dziękuję!
Zastanówmy się nad problemem - czym zasilasz shielda?
- napięcie ?
- prąd ?
- na ile ustawiłeś max obciążenie shielda?
- czy w przypadku zwarcia na torach reaguje sam shield, czy shield + JMRI?

Pzdr

Miqi
 

r-mik

Pan Chlewik
Reakcje
145 30 0
#89
Dla poeksperymentowania warto.
Ale w sensie takim, że Arduino jest nic nie warte?
Oglądałem funkcje odbioru DCC na Arduino. Tragedia! Czego tam nie ma! Potrzebny jakiś Pentium 3GHz aby to w miarę sensownie działało. U mnie te funkcje są krótkie i przejrzyste. Wykonują się szybko, aktualnie w przerwaniach, niewiele obciążając CPU. To co widziałem na Arduino, nie ma szans, aby nawet na ARM kilkadziesiąt MHZ współdziałały z odtwarzaniem dźwięku w zaawansowany sposób, bo zwyczajnie zabraknie czasu CPU.
 

PiotrK

Aktywny użytkownik
FREMO Polska
Reakcje
303 0 0
#90
Ale w sensie takim, że Arduino jest nic nie warte?
Oglądałem funkcje odbioru DCC na Arduino. Tragedia! Czego tam nie ma! Potrzebny jakiś Pentium 3GHz aby to w miarę sensownie działało. U mnie te funkcje są krótkie i przejrzyste. Wykonują się szybko, aktualnie w przerwaniach, niewiele obciążając CPU. To co widziałem na Arduino, nie ma szans, aby nawet na ARM kilkadziesiąt MHZ współdziałały z odtwarzaniem dźwięku w zaawansowany sposób, bo zwyczajnie zabraknie czasu CPU.
Chyba pomyliłeś wątki. ;) Ten wątek nie dotyczy dekodera, tym bardziej dźwiękowego..
Przeczytaj uważnie, to jet wątek o centralce opartej o protokół DCC++. Ona nie czyta DCC, tylko je generuje i nie odtwarza dźwięków.
Nie wiem więc po co to tu piszesz....
 

r-mik

Pan Chlewik
Reakcje
145 30 0
#91
Tytuł nie stwierdza, że chodzi o centralkę tylko o DCC.
Kodu centralki nie oglądałem ale znając arduinowe wybryki, pewnie jest kiepski. W 99% kodu na arduino nie jest używany watchdog. Czy to oznacza, ze kod jest taki genialny, że nigdy nie zawiesza się czy oznacza, że jest kiepski?

EDIT
Zerknąłem na kod https://github.com/DccPlusPlus/BaseStation/tree/master/DCCpp_Uno i nie widzę sumy kontrolnej eeprom oraz podwójnej kopi. Jeśli tak jest, wartość kodu = 0.
kod dla AVR i liczby zmiennoprzecinkowe tam gdzie można ich nie użyć. Warośś kodu = -1.
Chyba szkoda mojego czasu na oglądanie tego "kodu". Pewnie znajdę dynamiczna allokację pamięci gdzie nie jest to wymagane, typ int gdzie wystarcza bajt i inne błędy poczatkujacych a raczej źle uczonych. jeszcze nie sprawdzałem ale na 90% kod transmisji danych nie jest realizowany na przerwaniach tylko w pętli głównej.
 
Ostatnio edytowane:

PiotrK

Aktywny użytkownik
FREMO Polska
Reakcje
303 0 0
#92
Nikt nie ocenia tu jakości kodu, ale to czy on działa. Dla wielu użytkowników to jest najważniejsze.
Kod jest otwarty więc, jak ktoś chce może go sobie poprawić.
Użycie sprzętowego watchdog'a podnosi odporność na nieprzewidziane sytuacje. Rzeczywiście nie jest on zbyt często stosowany przez programistów bawiących się na arduino, ale pamiętajmy, że większość z nich się na tej platformie dopiero uczy programowania.
Nie miejmy zbyt dużych wymagań co do konstrukcji DIY.
 

r-mik

Pan Chlewik
Reakcje
145 30 0
#93
Nikt nie ocenia tu jakości kodu, ale to czy on działa.
Działa po japońsku (jako-tako). Jak wszystko jest dobrze to jest dobrze, cokolwiek nie tak i ZONK.
Po co mi kod, który z byle powodu zawiesi się jak Windows?

Kod jest otwarty więc, jak ktoś chce może go sobie poprawić.
Poprawianie kiepskiego kodu zajmuje więcej czasu niż napisanie go porządnie od nowa. Kiedys znalazłem kod obsługi 1-Wire dla AVR. To sie praktycznie do niczego nie nadaje. Zwieram magistralę do masy a program stwierdza, że slave odpowiedział, odczytuje temperaturę z DS18B20 i wyświetla 0 stopni.
Podobnie kod do I2C, nieodporny na słynny status F8 opisany w nocie (jeszcze) Atmela.

Ten kod DCC jest praktycznie bez wartości i nie warto się na nim wzorować.
 

PiotrK

Aktywny użytkownik
FREMO Polska
Reakcje
303 0 0
#94
No, tak, tylko, ze ten wątek nie jest o eleganckim, efektywnym programowaniu, tylko o tym jak łatwo z użyciem Arduino zrobić sobie prosta centralkę DCC.
 

r-mik

Pan Chlewik
Reakcje
145 30 0
#95
No, tak, tylko, ze ten wątek nie jest o eleganckim, efektywnym programowaniu, tylko o tym jak łatwo z użyciem Arduino zrobić sobie prosta centralkę DCC.
Praktycznie nic nie wartą centralkę.
Co to za centralka jak z byle powodu straci ustawienia?
Co to za centralka, jak gdy np włącze odkurzacz zawiesi się?
Z pewnością usłyszę, "Używam od lat i jest ok" a ja odpiszę "Od zawsze przechodzę na czerwonym świetle i jest ok".
Programy na Arduino to demo, niestety demo pokazujące jak nie pisać programów. Nie ma się co dziwić skoro już biblioteki dostarczane z Arduino zawierają błędy.
Te arduinowe zabawki można wykorzystać do sterowania oświetleniem czy semaforami ale już do rozjazdów to duże ryzyko, tym bardziej do centralki czy dekodera.
 

PiotrK

Aktywny użytkownik
FREMO Polska
Reakcje
303 0 0
#96
Myślę, że co użyteczności i pewności działania tych rozwiązań najlepiej jeśli wypowiedzą się osoby, które je ich używają w warunkach realnych tzn. na makiecie, a nie w warunkach testowych.
Wbrew pozorom te "zabawki" cieszą się dużym uznaniem modelarzy nie tylko w Polsce.
Większości użytkowników nie interesuje jakość zaimplementowanego kodu, ale efekt jego działania.
Nie oceniałbym tak krytycznie tego typu projektów.
A to, że programy są takie jakie są, to już w pewnym stopniu urok otwartego oprogramowania i osób go wspierających.
 
Reakcje
3 0 0
#97
To ja napiszę z punktu człowieka który sam sobie złożył, ma i używa.
Do wykonania tej centralki nie potrzeba olbrzymiej wiedzy elektronicznej, znajomości mikrokontrolewrów.
Mając płytkę bazową i płytkę ze wzmacniaczem prądowym można ją złożyć w pół godziny, łącznie
z zaprogramowaniem.
Pozwala sterować jedną lokomotywą z dźwiękiem.
Natomiast bardzo dobra jest do programowania dekoderów. Pozwala odczytać CV-ki, co powoduje
że nie programujemy dekodera w ciemno.
 

r-mik

Pan Chlewik
Reakcje
145 30 0
#98
brew pozorom te "zabawki" cieszą się dużym uznaniem modelarzy nie tylko w Polsce.
Cieszą, dopóki nie poniosą strat. Wielu cieszy się z Windows dopóki efekt kilku lat pracy nie przepadnie albo stracą długie godziny a nawet dni (np ponowna inmstalacja tego pseudosystemu, dużej liczby programów i ich skonfigurowanie). Ileż to razy szukałem błędu nie tam gdzie trzeba bo Window$ zawiódł. Ile godzin tracę na ciągłe restarty.
Z arduinowymi wynalazkami jest podobnie, na stole, u autora, wszystko pięknie działa w realu zawodzi w najmniej oczekiwanym momencie.
Cóż wart jest program, w którym w ciągu 10 minut znalazłem kilka rażących błędów? Błędów, które dyskwalifinują taki program z komercyjnego użytku. Gdybym mu się przyjrzał dokładnie pewnie powstała by długa lista.

A to, że programy są takie jakie są, to już w pewnym stopniu urok otwartego oprogramowania i osób go wspierających.
Po co więc było namawiać mnie na otwarte oprogramowanie dekodera? Aby działał gorzej? Tematem http://forum.modelarstwo.info/threa...emade-projekt-otwartego-oprogramowania.50655/ udowodniłem chyba , że idea otwartego kodu nie ma sensu, a do tego dochodzi problem sprzętu. Kto będzie chętny wyłożyć kasę na kilka iteracji PCB, elementy aby później na tym nie zarobić?

Rozwiązania Arduino to demo, pokazujące możliwości mikrokontrolerów ale nie nadające się do praktycznego użytkowania. Takie demo, które zostało stworzone w np 5 dni, wymaga miesięcy na dopracowanie i testy. Nie sądzę, aby ktoś napracował się, stracił kasę na zakup urządzeń do testu i udostępnił to za free.
W moich i nie tylko moich programach, ok 70% to kontrola błędów i diagnostyka, w kodach arduino kontrola błędów to rzadkość.
Mogę się założyć o co chcesz, że praktycznie wszystkie arduinowe rozwiązania nie zostały sprawdzone w skrajnych warunkach pracy. W efekcie u autora urządzenie działa u innych po japońsku (jako-tako) lub wcale.

Natomiast bardzo dobra jest do programowania dekoderów. Pozwala odczytać CV-ki, co powoduje
że nie programujemy dekodera w ciemno.
Chyba wszystkie współczesne centralki mają taką możliwość. Nawet historyczne homemade NanoX ma odczyt CV, więc co to za argument?

Pozwala sterować jedną lokomotywą z dźwiękiem.
To akurat istotna wada pokazująca, że arduinowe rozwiązanie to demo, zabawka, nienadająca się do praktycznego użytku. Darmowe NanoX obsługuje 16 lokomotyw.


Podsumowując rozwiązanie na Arduino, dlaczego jest złe?
- Wybór ArduinoUNO z AVRmega328p. AVR jest droższy od setki razy lepszego ARM STM32.
- Kodu nie da się łatwo przenieść na inne niż zgodne z rodzina AVRmega328p mikrokontrolery bo użyto (bez ładu i składu, np w formie jednego pliku dołączanego) bezpośredniego dostępu do rejestrów. Magia przenośności kodu pomiędzy platformami Arduino prysła!
- Rażące błędy w kodzie.
- Przestarzały i drogi driver L298 (pewnie tylko taki autor miał w szufladzie).
Gdybym potestował arduinowe DCC pewnie znalazłbym dziesiątki kolejnych błędów czy niedociągnięć.
 
Ostatnio edytowane:
Reakcje
3 0 0
#99
Chyba wszystkie współczesne centralki mają taką możliwość. Nawet historyczne homemade NanoX ma odczyt CV, więc co to za argument?
No nie wszystkie, chociażby bardzo rozpowszechniony MultiMous z czarnym wzmacniaczem nie pozwala.
To akurat istotna wada pokazująca, ze arduinowe rozwiązanie to demo, zabawka, nienadająca się do praktycznego użytku. Darmowe NanoX obsługuje 16 lokomotyw.
Może i zabawka ale działa. Składa się w pół godziny i nie kosztuje kolosalnych pieniędzy. Jest to centralka zrobiona
dla tych którzy chcą zapoznać się z DCC, a nie do sterowania dużą ilością lokomotyw.
Piszesz o NanoX, ale żeby ją wykonać trzeba wytrawić płytki, zgromadzić części i polutować to wszystko do kupy.
Potem jeszcze zaprogramować i uruchomić.
Natomiast centralkę na Arduino składasz z gotowych komponentów kupionych w sklepie.
Moja centralka sprawdziła się na wielu zlotach TT-owych i działa do tej pory.
 

r-mik

Pan Chlewik
Reakcje
145 30 0
No nie wszystkie, chociażby bardzo rozpowszechniony MultiMous z czarnym wzmacniaczem nie pozwala.
Nie porównuj nowych rozwiązań ze starociem, jak pamiętam, z zeszłego wieku.
Jak już porównujesz, to z nowymi rozwiązaniami, bo nie sztuka wykazać wyższość układów scalonych nad lampami elektronowymi.

Moja centralka sprawdziła się na wielu zlotach TT-owych i działa do tej pory.
Na zlotach wystarcza sterowanie jedną lokomotywą?

Jest to centralka zrobiona
dla tych którzy chcą zapoznać się z DCC, a nie do sterowania dużą ilością lokomotyw.
Szkoda czasu i pieniędzy na składanie czegoś, co steruje jedną lokomotywą. Jedną to mogę sobie w analogu sterować.
Ograniczenie sterowania do jednej lokomotywy nie pozwoli pokazać wszystkich możliwości DCC i może zniechęcić wyższymi kosztami niż rozwiązanie analogowe.

Ile klawiszy funkcyjnych obsługuje arduinowe DCC?
Jaki zakres CV?
Ile akcesoriów?
 
Ostatnio edytowane:
Autor wątku Podobne wątki Forum Odpowiedzi Data
DCC 10
DCC 10
DCC 9
DCC 176
DCC 9

Podobne wątki