Nowa drukarka delta 3D

skmskm
Posty: 71
Rejestracja: 21 kwie 2016, 18:22
Kontaktowanie:

Re: Nowa drukarka delta 3D

Postautor: skmskm » 31 maja 2017, 13:56

Ja linuxa nie znam zbytnio za to na windowsie już wiele projektów skończyłem, zaawansowanych:
https://sourceforge.net/projects/universalcncforcomport/
https://warsztat.gd/user/skmskm/projects
Powinienem dać rade napisać program ignorujący opóźnienia(nadrabiający czas itp...).
Oprogramowanie napiszę w C++. A PHP, java i inne nie używam z byt wolne są.
Moja strona na facebooku:
https://www.facebook.com/skmskmrobots

Awatar użytkownika
dziobu
Posty: 353
Rejestracja: 22 wrz 2016, 16:17
Kontaktowanie:

Re: Nowa drukarka delta 3D

Postautor: dziobu » 31 maja 2017, 14:17

Normalne jest że stosuje się jeden wypasiony sprzęt do ogólnej obsługi urządzenia (GUI z ekranem/USB/LAN/bajery) oraz X modułów (interfejs obojętny; przeważnie uart/spi) do prostackiej pracy (jak tu sterowanie silnikami czy pomiar temperatury).

A jeśli chodzi o samą malinkę:
- Dedykowany soft da się bez problemu stworzyć (a jak ktoś ma narzędzia typu DS-5 to w ogóle bajka ;p),
- Drivery są fajne dopóki nie pojawi się inna wersja jądra z jakimiś zmianami. Teoretycznie kompatybilność jest zachowywana. Praktycznie wygląda to już nieco inaczej i walka o zgranie wszystkiego do dupy to czasem kupa czasu,
- Nikt nie zapewni że sprzęt który oferuje malinka da możliwość podpięcia tego co trzeba. To że wychodzi I/O to nie znaczy że na tejże linii jest coś użytecznego jak PWM czy wejście analogowe. (nie uznaję sterowania silnikiem krokowym programowo generując kroki np w pętli; wystarczy zainwestować w oscyloskop żeby wiedzieć jak to wtedy faktycznie wygląda ale to moje zdanie),

I wszystko powyżej ma jedną wspólną wadę: kupa roboty może zostać zniweczona jeśli okaże się że w kolejnej wersji sprzętu (przecież ta malinka nie będzie wieczna) coś będzie inaczej. Końcowego użytkownika nie boli że jest inny procesor czy system. A jak się tworzy coś bezpośrednio na sprzęt to sprawa wygląda nieco inaczej. Projekt zaczyna się rozjeżdżać i robi się z tego "ołpensoursowa" papka.

A koprocesor nie gryzie; lepiej jak jest niż jak go nie ma :)
Do sterowanie frezarką (3 osie) + TFT (800x480x3) + dotyk + kilka I/O + USB + SD wystarcza Cortex M4F@168MHz (tak wysoki zegar to wymóg zewnętrznego SRAMu i TFT).
Pozdrawiam
Paweł

Moje twory w 3D

skmskm
Posty: 71
Rejestracja: 21 kwie 2016, 18:22
Kontaktowanie:

Re: Nowa drukarka delta 3D

Postautor: skmskm » 31 maja 2017, 15:48

Program napisze na urządzenie które kupie, sprzętu nie wymienię, nie będę go udostępniał, jest tylko dla mnie, zmian w oesie nie będzie bo nie będę aktualizował.
OpenSource jest nieopłacalny w programach niszowych, marnowanie czasu.
Moja strona na facebooku:
https://www.facebook.com/skmskmrobots

Garreth
Posty: 978
Rejestracja: 20 kwie 2016, 6:59
Lokalizacja: Katowice
Kontaktowanie:

Re: Nowa drukarka delta 3D

Postautor: Garreth » 31 maja 2017, 17:09

E no, z nami sie chyba podzielisz? :)

Sent from my ONEPLUS A3003 using Tapatalk

Awatar użytkownika
WillingMagic
Posty: 91
Rejestracja: 25 kwie 2016, 20:44
Kontaktowanie:

Re: Nowa drukarka delta 3D

Postautor: WillingMagic » 31 maja 2017, 20:34

@skmskm

Dlaczego uważasz, że OpenSource nie ma sensu w przypadku małych projektów? Nie raz tak małe i teoretycznie nie przydatne narzędzia naskrobane na wewnętrzne potrzeby mocno się rozrastają dzięki społeczności. Prócz tego, że udostępniasz źródła nikt nie wymaga abyś rozwijał projekt, jak ktoś chce rozwijać to niech bierze i robi z tym co chce ;-)
No chyba, że wstydzisz się swego kodu, albo wolisz pisać do szuflady.

skmskm
Posty: 71
Rejestracja: 21 kwie 2016, 18:22
Kontaktowanie:

Re: Nowa drukarka delta 3D

Postautor: skmskm » 01 cze 2017, 13:54

Z doświadczenia wiem że opensource niema sensu, nigdy mi nie przyniosło efektu...Aktualnie analizuje jak napisać program i znalazłem metodę wysyłania dokładnych sygnałów z bardzo dobrymi timingiem, użycie DMA(Direct memory Access), można używać z portami i trzymać sekwencje sygnałów w ramie, może uzyskać nawet 250000 sygnałów na sekunde, przy +/-2 mikrosekundy i działa niezależnie do procesora.
Moja strona na facebooku:
https://www.facebook.com/skmskmrobots

Awatar użytkownika
WillingMagic
Posty: 91
Rejestracja: 25 kwie 2016, 20:44
Kontaktowanie:

Re: Nowa drukarka delta 3D

Postautor: WillingMagic » 01 cze 2017, 14:35

Nigdy nie korzystałeś z stackoverflow albo z opensourcowych narzędzi? Owszem może nie miałeś szczęścia i nikt Ci nie pomógł z twoją aplikacją, ale to nieznaczy że sama idea jest zła, bo przez ten "nie przynoszący efektu" opensource tak bardzo rozwinęły się drukarki 3d i wszystko zbudowane wokół reprapów.

Poza tym zastanów czy potrzebny jest Ci wogóle potrzebny duży OS? Sprzęt jest już wstępnie zainicjalizowany w uboocie który jest dużo mniej złożony od kernela linuksa i na jego poziomie dałbyś radę sterować silnikami.

Awatar użytkownika
dziobu
Posty: 353
Rejestracja: 22 wrz 2016, 16:17
Kontaktowanie:

Re: Nowa drukarka delta 3D

Postautor: dziobu » 01 cze 2017, 16:59

skmskm pisze:Z doświadczenia wiem że opensource niema sensu, nigdy mi nie przyniosło efektu...

Zabrzmi to głupio ale nareszcie ktoś normalny ;p
Jedyne co mi dało open source to świadomość że jak coś ma być zrobione dobrze to trzeba wybrać rozwiązania sprawdzone (czyli przeważnie komercyjne) albo zrobić samemu.
skmskm pisze:Aktualnie analizuje jak napisać program i znalazłem metodę wysyłania dokładnych sygnałów z bardzo dobrymi timingiem, użycie DMA(Direct memory Access), można używać z portami i trzymać sekwencje sygnałów w ramie, może uzyskać nawet 250000 sygnałów na sekunde, przy +/-2 mikrosekundy i działa niezależnie do procesora.

Nawet 250kHz? A niczego nie pomyliłeś? Malinka ma tylko tyle na GPIO? Trochę to nie za dużo.

DMA do generowania przebiegu dla silnika wcale nie jest dobre. Leży rozpędzanie i hamowanie. Nie wiem jak wyobrażasz sobie jazdę kilkoma osiami jednocześnie(wspólna częstotliwość). I tak musisz mieć przerwania po każdym zboczu żeby liczyć kroki (lub licznik jak jakiś dopasujesz). Można użyć DMA w buforze okrężnym który da równość sterowania liniami (przy założeniu że wrzucasz dane na ten sam port) ale wtedy musisz za nim nadążać. Bufor nie może mieć nieskończenie wielkiej długości (ilość RAMu vs opóźnienie w pracy). Ludzie rozwiązali ten problem robiąc PWMa i tak też się silnikami steruje.
Aha - malinka to raczej spory sprzęt niemniej upewnij się czy ktoś już nie używa gdzieś tego DMA lub w inny sposób go nie blokuje. To że procesor ma 10 UARTów, 8 SPI i 20 TIMerów to nie znaczy że wszystko może działać jednocześnie. Z DMA jest podobnie.

Mnie tam nic do tego; często używam narzędzi niezgodnie z przeznaczeniem i nie widzę problemu jak inni też tak robią. Tylko chcę Ci zaoszczędzić masy czasu który zmarnujesz zwiedzając bezsensownie kolejne ślepe uliczki. Do zadanie które chcesz zrobić wybrany sprzęt nadaje się grubo średnio i tylko niepotrzebnie się narobisz.
Ale to tylko moje zdanie, co zrobisz jest mi obojętne :)

To do kolekcji podrzucę Ci inny pomysł, sprawdzony na Win (do Linuxa są sterowniki i wiem że na malince też FTDI działa):
- robisz (lub kupujesz, bo są) konwerter USB-linie równoległe (na FT4232 lub czymś nowszym),
- wszystkie porty które robisz OUT zwierasz też z drugim portem IN (scalak ma 4x8 wyjść więc jest na to miejsce),
(są w nim 4 porty szeregowe które w trybie bit-bang mają po 8 I/O; kierunek każdej linii określasz sam programowo, a sterowanie nimi odbywa się poprzez wysłanie bajtu do portu; każdy bit odpowiada jednej nóżce - prościej się nie da),
- piszesz program korzystający z portu szeregowego (ale nie standardowo tylko z ich biblioteki; obsługa jest bardzo podobna),
- ustawiasz tryb bit-bang (synchroniczny) i wybierasz które linie są in/out,
- ustawiasz szybkość portu (co odpowiada częstotliwości wyrzucania danych na port przez scalaka),
- generujesz kroki i na głupa wpisujesz je do portu; scalak ma 64kB pamięci na bufor a resztę bufora zapewnia system (Linux w tym wypadku),
- nie ważne ile wysłałeś, tyle ile fizycznie wyszło dostajesz na liniach IN które sobie zwarłeś więc w każdej chwili wiesz dokładnie gdzie jesteś (też nie musisz pamiętać co wysłałeś bo to samo CI przychodzi).
Z zalet tego rozwiązania: timingi nie mają żadnego znaczenia i nie babrasz się w sprzęcie.
(dokładnie takie rozwiązanie mam w pierwszej wersji mojej frezarki)
Pozdrawiam
Paweł

Moje twory w 3D

skmskm
Posty: 71
Rejestracja: 21 kwie 2016, 18:22
Kontaktowanie:

Re: Nowa drukarka delta 3D

Postautor: skmskm » 01 cze 2017, 18:31

W DMA można przełączać jednocześnie wszystkie piny(potrzebuje 8(4 silniki) enable i resztę na stałe).
Pomiędzy ramkami w DMA jest odstęp czasowy który można ustalić przez dzielnik.
DMA ma zegar 500MHz. Realna prędkość portów to około 22MHz(przy dma da się więcej). Czyli odpowiedni dzielnik i wypełniony bufer zadaniem na całą linie lub kawałek druku na wszystkie siniki. DMA poda równo a CPU będzie w trakcie wysyłki wolne, będzie mogło przygotować następną linie/kawałek lini i tak dalej...
Przy 1MHz to 32 bajty(ramka)*1000000 czyli 32 MB na sekundę, plus druki buffor 32MB na następny kawałek linii. Timingi około 1microsekunda.
Moja strona na facebooku:
https://www.facebook.com/skmskmrobots

Awatar użytkownika
dziobu
Posty: 353
Rejestracja: 22 wrz 2016, 16:17
Kontaktowanie:

Re: Nowa drukarka delta 3D

Postautor: dziobu » 01 cze 2017, 19:07

Zmieniłem zdanie: rób na tym sprzęcie. Uczenie się na błędach daje najlepsze efekty ;)
(i nie jest to złośliwość)
Pozdrawiam
Paweł

Moje twory w 3D


Wróć do „Drukarki 3D”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 3 gości