Dołączył(a): 01 cze 2013 Posty: 137 Lokalizacja: Kraków
Pomógł: 0
Hej ho! Przybywam do Was z kolejnym moim dziwnym projektem . Jest to maszyna służąca pierwotnie do rysowania wykresów na pracownie w szkole, ale ostatnio dodałem też opcję rysowania plików HPGL (np. narysowane w Inkscapie). Rozwiązania, które poniżej zobaczycie, są mocno pozbawione sensu i zdaję sobie z tego sprawę (zauważy to "każden jeden" orientujący się w temacie CNC). Niemniej zapraszam do lektury, bo mimo to uważam że projekt jest niekonwencjonalny i na swój sposób ciekawy.
Wykresiarka ma dość nietypowe założenia. Chciałem zrobić tę maszynkę od początku do końca sam, według własnej koncepcji odnośnie części mechanicznej i elektronicznej, a także sterowania i komunikacji. To przy takich projektach człowiek uczy się najwięcej... W wyniku tego ma ona swój własny sterownik oparty o ATmegę16, własny protokół komunikacyjny i własny program po stronie PC wysyłający komendy sterujące. Dodam jeszcze, że stawiałem przede wszystkim na używanie jedynie najprostszych narzędzi, a także wykorzystanie tego, co i tak zalega w domu. Przejdźmy zatem do opisu...
Część mechaniczna Wykorzystałem silniki krokowe ze starych skanerów ze zintegrowanymi przekładniami i paskami napędowymi. Oprócz tego zwykłe prowadnice szufladowe, a także elektromagnes z jakiejś drukarki laserowej w roli osi Z (podnośnik pisaka). Całość jest zamontowana na normalnej płycie meblowej. Zasilacz też jest "pożyczony" z jakiegoś innego sprzętu, ma 2 napięcia wyjściowe: 16 i 32V.
Sterownik Jak już wspominałem, sterownik to niewielka płytka z ATmegą16 i kwarcem 16MHz na pokładzie. Z komputerem komunikuje się przez FT232RL (wraz z separacją galwaniczną). Jeśli chodzi o sterowanie osiami X i Y, to użyłem tutaj - uwaga uwaga - ULN2803 i L293DD. Może o efektach ubocznych napisze trochę niżej . Elektromagnes (oś Z) jest wysterowany przez jakiegoś MOSFETa przystosowanego do logiki 5V. Poza tym sterownik obsługuje krańcówki (po 2 na osie X i Y), wyświetlacz LCD i kilka innych rzeczy. Jakiś czas temu pisałem tu na forum odnośnie przechowywania we FLASHu własnej grafiki wektorowej - potrzebowałem jej właśnie do tego projektu. Napisałem kilka dodatkowych funkcji (między innymi wypisywanie prostego tekstu) w celach ćwiczeniowych, ale nie zamierzam z nich korzystać, bo bardziej efektowne jest użycie plików HPGL.
Komunikacja (mopsioCODE) Tak, wiem jak to zabrzmi, ale napisałem sobie własny protokól . Po prostu uznałem że komendy AT są zbyt zasobożerne jak na takie rozwiązanie. Działa to mniej więcej na podobnej zasadzie, ale rozkaz i argumenty są 1-bajtowe, a nie słowne. To tak w uproszczeniu. Zaimplementowałem też kilka fajnych mechanizmów pozwalających np. na zwracanie błędów przez funkcje, czy obsługę danych idących poza ramkami protokołu. Oczywiście wszystko kontrolowane przez CRC16.
Program sterujący na PC Jest to mój pierwszy program napisany w Visual C# 2010 Express, więc z pewnością aż roi się w nim od kardynalnych błędów. Jestem w stanie to zaakceptować , gdyż program działa tak jak chciałem. Ogólnie jego zadanie polega na ładnym środowisku umożliwiającym projektowanie wykresów, ale pozwala też na komunikację z Wykresiarką na podstawie pojedynczych komend, a także wykonywanie plików w formacie HPGL. Zatem rysując obrazek w Inkscapie, zamieniając go na ścieżki i zapisując jako HPGL będzie można go potem narysować.
Kamera... akcja! Oto filmik prezentujący działającą Wykresiarkę i efekty, jakie można nią uzyskać. No i muzyczka jest niczego sobie!
Podsumowanie Cóż... to z pewnością nie był łatwy projekt. Zapewne wielu z Was słusznie zauważy, że wyważam otwarte drzwi i nieudolnie projektuję od nowa rzeczy już dawno wymyślone i przetestowane. Oczywiście macie rację, ale i tak nie żałuję swojego wyboru, bo przez ten czas nauczyłem się wielu ciekawych rzeczy i mogłem spojrzeć na tematykę CNC z mniej znanej perspektywy - żeby daleko nie szukać: jak generować kroki dla obu osi, by pisak poruszał się pod odpowiednim kątem. To i wiele innych fascynujących zagadnień udało mi się zgłębić własnie przez realizację tego dziwadła . Niemniej nie mogę udawać, że konstrukcja nie ma wad. Oto kilka najważniejszych: 1. Kuuuuupa ciepła na osiach X i Y, co ogranicza czas pracy 2. Okazuje się, że "silniki po 300dpi każdy" mają różne rozdzielczości ^^. 3. Oś Y jest trochę "bezwładna" na większych odległościach od silnika osi X (wynika to z konstrukcji) 4. Osie X i Y nie przecinają się pod idealnym kątem prostym 5. Papier milimetrowy nie jest milimetrowy (zła skala), a drukowanie własnej siatki na zwykłej drukarce wprowadza spore przesunięcia (czasem nawet 0.5mm, zależy od ułożenia papieru), które uniemożliwiają oszukanie nauczyciela. Próbowałem coś zrobić w celu wyeliminowania tych problemów, ale nawet jeśli się to udało, to tylko częściowo.
Załączniki Wrzucam pliki projektowe Wykresiarki, w których znajduje się kod sterownika (w C), jego projekt w Eagle, a także projekt Visual C# i sam plik wykonywalny. Do tego dołączam jeszcze mopsioCODE w nieco przyjemniejszej wersji, gotowej do użycia w projekcie. Opis protokołu, instrukcja obsługi i przykładowe kody powinny przydać się osobom, które na szybko potrzebują pogadać z AVRem w trybie rozkazowym a szkoda im miejsca na obszerną obsługę AT. Kod na AVR napisany jest w C, a na komputer - w Pythonie. Oczywiście mój program z Visual C# również zawiera odpowiedni plik obsługujący protokół (mopsiocode.cs), który można sobie skopiować i użyć we własnym projekcie okienkowym.
Niezła robota!!! Sam już od dłuższego czasu robiłem kilka podejść do podobnego projektu i zawsze spaliło na panewce. No ale po tym co widziałem aż mnie rączki świerzbią.
Dołączył(a): 17 sie 2013 Posty: 3797 Lokalizacja: Grudziądz
Pomógł: 143
Nie no bajka jak to zobaczyłem to pomyślałem ... marker do płytek i jazda nie trzeba prasować itp kurka trzeba będzie o czymś takim pomyśleć nie koniecznie A4 .... może być B5 ... do PCB ale jest nieźle ...
gratki i szacun ... a jak z dokładnością mieści się w odchyłce 0,1mm czy 0,01mm ? bo do pcb przydało by się raczej 0,001 mm
Dołączył(a): 01 cze 2013 Posty: 137 Lokalizacja: Kraków
Pomógł: 0
Dzięki Wam za tak miłe komentarze! Naprawdę miło usłyszeć kilka ciepłych słów ^^. Silniki mają teoretyczną rozdzielczość 0.085mm, ale w praktyce jest ona pewnie sporo gorsza. Muszę kiedyś zrobić test na laminacie lub czymś w tym rodzaju, bo na papierze cienkopis mocno wsiąka przy takich małych odległościach i niezbyt mogę ocenić efekt. Niemniej z tego co widziałem to nie ma tragedii i TQFP44 dałoby radę namalować. Jednak odradzam wzorowanie się na tym projekcie do takich celów . Wszystko tak się grzeje, że nie dałbym rady narysować jakiejś większej płytki. Żeby to miało sens, trzeba by było zastosować cieńszy pisak (standardowy cienkopis ma 0.4mm), co jeszcze bardziej wydłuży czas rysowania. Poza tym, jeśli ktoś nie potrzebuje pola roboczego A4, to zastosowanie całej maszynerii z drukarek + prowadnic mija się z celem - można zastosować jakieś układy pozycjonujące ze stacji dyskietek. Zapewne mają o wiele przyjemniejszą dokładność .
Zresztą nie wiem jak Wam Panowie, ale mi termotransfer zajmuje może z 15 minut, z czego 10 to czekanie na odmoknięcie papieru. Taka mała płyteczka rysowała mi się około 4 minuty, więc tak naprawdę już pokrywa się to z czasem aktywnego uczestniczenia w termotransferze.
Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości
Nie możesz rozpoczynać nowych wątków Nie możesz odpowiadać w wątkach Nie możesz edytować swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników