Strona 1 z 1

Maszyna do rysowania w czasie rzeczywistym

: 28 gru 2011, 16:22
autor: stos
Witam. Wpadłem na pomysł zrobienia maszyny do rysowania w czasie rzeczywistym. Ma to wyglądać następująco: pisak, który przemiesza się nad kartką w 2 osiach. Czyli coś takiego: http://www.youtube.com/watch?feature=pl ... k-LXopLEls. Sterowanie pisakiem ma się odbywać początkowo za pomocą 2 przycisków, następnie za pomocą komputera podłączonego do maszyny, później za pomocą rysowania w jakimś edytorze na komputerze i na sam koniec kontrolowane za pomocą urządzenia, np. z Androidem. Mam praktycznie zerowe doświadczenie w robieniu czegoś takiego, dlatego chciałbym zadać kilka pytań osobą, które się na tym znają.
Czy jest możliwe w ogóle osiągnięcie zamierzonego celu? Czy da się w czasie zbliżonym jak najbardziej do rzeczywistego kontrolować silnikami (tak, że rysuję kreskę na ekranie tabletu, a 2 silniki krokowe (czy też serwonapędy) wykonują ruchy pisakiem rysując to samo na kartce)?
Czy lepiej spisały by się tutaj silniki krokowe czy serwonapędy? Chodzi o szybkość reakcji i pracy.
Czy ktoś już widział takie coś? Mógłby podać jakieś źródła, które by mnie naprowadziły i pomogły tego dokonać?
W jaki sposób najłatwiej przekształcać krzywą z tabletu na polecenia do sterownika obsługującego silniki? Czy też może na początek rysowanie obrazka jaki podam mu na komputerze.
Jakie sterowniki i napędy polecacie?

: 28 gru 2011, 17:12
autor: zibi
Myślę że nie musisz się martwić o napędy bo to standardowy ploter 2d, choćby na paskach zębatych jak w skanerze czy drukarce. Problemem mogą być dalsze kroki czyli soft zmieniający ruchy pisaka na G kod. Swobodne ruchy pisaka to splajn, krzywa gładka więc trzeba tu chyba odwzorować je na zasadzie serwa xy z przełożeniem np. 5:1. Podobnie realizuje się odczyt współrzędnych z myszki i graficzny ślad na ekranie. Tak chyba łatwiej będzie to zrealizować. Jako urządzenie wskazujące użyć myszki a napędy mogły by korzystać z przetworzonego sygnału. Ale to tylko takie moje przemyślenia.

: 28 gru 2011, 17:26
autor: stos
Piszesz o gcode. Czy posiadając tylko sterowniki PLC pomysł jest nadal osiągalny? Czy to troszkę mijani się z celem?

: 28 gru 2011, 21:55
autor: Zienek
Stos.

Zadanie jest proste, jeśli umiesz programować w C++ z trybami graficznymi. Ja na Twoim miejscu starałbym się poczytać o:

1. C++ oraz biblotece/frameworku QT.

http://qt.nokia.com/products/

QGraphicsSceneMouseEvent
http://doc.qt.nokia.com/4.6/qgraphicssc ... event.html

QGraphicsLineItem
http://doc.qt.nokia.com/4.6/qgraphicslineitem.html

Lub w inny sposób zapisujesz wektory ruchu myszy. Wektory oczywiście będą w płaszczyźnie 2d. (x,y). Który będzie tłumaczony na kroki silników krokowych.

2. Sterowanie LPT to kolejny kamień milowy. Czy będziesz aplikację pisał na Windowsa czy Linuxa?

To co napisałem, to dość głęboka woda jeśli chodzi o programowanie, ale C++ wraz z QT mi osobiście zdaje się być najfajniejszym rozwiązaniem.

Miałeś już jakieś inne pomysły? Jakie masz doświadczenia z komputerami i językami programowania?

: 29 gru 2011, 11:36
autor: stos
Programowanie w C/C++ nie jest dla mnie obce. Nie pisałem nigdy w QT ale zapoznanie się z tą biblioteką chyba nie powinno być dla mnie problemem. Aplikacja miała by być multiplatformowa, czyli Windows, Linux, a może nawet Mac (tutaj troszkę się orientuje, że QT właśnie pasuje dla takiego czegoś). Dodatkowo miała by być też na Androidzie, który będzie łączyć się z aplikacją na komputerze i ta z kolei będzie obsługiwała maszynę.

Mam doświadczenie z programowaniem, lecz takiego sprzętu nigdy nie miałem w ręku. I to moje ostatnie pytanie. Chciałem bawić się sterownikami PLC. Czy nie będę ładował ich tutaj na siłę? Czy nie będzie to zbędne i niepotrzebne?

: 29 gru 2011, 12:05
autor: Zienek
Najłatwiej będzie CI to zrobić przez port LPT, któego Maczki nie mają. Ja w początkowej fazie bym sobie je odpuścił. Tak samo sterowniki PLC.

Możesz też spróbować przesyłać dane do Arduino przez USB jakimś protokołem serialowym, co powoduje brak korzystania z LPT i otwiera Ci szansę sterowania urządzeniem z nowszych komputerów (laptopy) i Maczków.

Jak zacząć korzystać z komunikacji poprzez USB?
http://www.ladyada.net/learn/arduino/lesson4.html

Do tego aplikacja na wybraną platformę z obsługą transmisji szeregowej i lecisz.

Aha. Arduino bardzo łatwo steruje silniczkami krokowymi.
Na Nettigo są dodatkowe moduły do silniczków o małych prądach, ale możesz zastosować jakikolwiek sterownik sterowany logiką 5V.
http://nettigo.pl/products/191

Od Nettigo powinienem dostać kasę za promowanie tego sklepu :)