Ja bym pomyślał o jakiejś luźnej interpretacji algorytmu Bresenhama.
Z tym, że nie do rysowania linii (przestrzeń x,y), tylko do znajdowania najodpowiedniejszego kwantu w czasie (przestrzeń f,t).
Do przemyślenia.
Znaleziono 4 wyniki
Wróć do „Arduino steruje ploterem.”
- 10 wrz 2013, 19:04
- Forum: Arduino, Raspberry pi i inne systemy mikroprocesorowe
- Temat: Arduino steruje ploterem.
- Odpowiedzi: 49
- Odsłony: 20106
- 09 wrz 2013, 22:23
- Forum: Arduino, Raspberry pi i inne systemy mikroprocesorowe
- Temat: Arduino steruje ploterem.
- Odpowiedzi: 49
- Odsłony: 20106
Interpreter jeszcze na komputerze to może być dobry pomysł.
Z komputera do kontrolera przychodziły by instrukcje nie w formie gkodu, a ilości kroków do wykonania dla każdej osi w danym interwale czasowym i ich zwroty.
Np. teraz przez 100ms:
X+ 50 kroków
Y- 25 kroków
Z+ 10kroków.
Wtedy sterownik ustawiłby polaryzację dla DIR, oraz:
co drugą milisekundę sterownik 'pikałby' na plus dla STEP X,
co czwartą na minus dla STEP Y
co dziesiątą dla STEP Z.
Z komputera do kontrolera przychodziły by instrukcje nie w formie gkodu, a ilości kroków do wykonania dla każdej osi w danym interwale czasowym i ich zwroty.
Np. teraz przez 100ms:
X+ 50 kroków
Y- 25 kroków
Z+ 10kroków.
Wtedy sterownik ustawiłby polaryzację dla DIR, oraz:
co drugą milisekundę sterownik 'pikałby' na plus dla STEP X,
co czwartą na minus dla STEP Y
co dziesiątą dla STEP Z.
- 08 wrz 2013, 16:47
- Forum: Arduino, Raspberry pi i inne systemy mikroprocesorowe
- Temat: Arduino steruje ploterem.
- Odpowiedzi: 49
- Odsłony: 20106
Winszować 
Pisanie fajnego kodu polega na tym, żeby wyczuwać "code smells" tzw miejsca, gdzie "coś śmierdzi" w kodzie.
Najprostszym zapachem do wyniuchania są powtórzenia.
Po napisaniu kodu, który działa niezbędnie, później jest czas na refactoring. To jest właśnie usuwanie code smells.
Fajnym wyzwaniem na teraz przed kolejnym dopisywaniem funkcjonalności będzie przeniesienie powtarzalnych elementów kodu do oddzielnych funkcji.
http://arduino.cc/en/Reference/FunctionDeclaration
Pierwszy lepszy przykład
Żeby kod nie był ciurkiem także parsowanie wejścia serial możesz wydzielić do osobnej funkcji.
A to co powtarzasz dla każdej osi, jako funkcję, gdzie podajesz jako parametr char S - znak który wzkazuje, jaką osią w tym wywołaniu dana funkcja się zajmuje.

Pisanie fajnego kodu polega na tym, żeby wyczuwać "code smells" tzw miejsca, gdzie "coś śmierdzi" w kodzie.
Najprostszym zapachem do wyniuchania są powtórzenia.
Po napisaniu kodu, który działa niezbędnie, później jest czas na refactoring. To jest właśnie usuwanie code smells.
Fajnym wyzwaniem na teraz przed kolejnym dopisywaniem funkcjonalności będzie przeniesienie powtarzalnych elementów kodu do oddzielnych funkcji.
http://arduino.cc/en/Reference/FunctionDeclaration
Pierwszy lepszy przykład
Kod: Zaznacz cały
void wyswietl_koordynaty(float G, float X, float Y, float Z){
lcd.setCursor(0,0);lcd.print(" ");lcd.setCursor(0,0);lcd.print("G "); lcd.print(G);
lcd.setCursor(8,0);lcd.print(" ");lcd.setCursor(8,0);lcd.print("X "); lcd.print(X);
lcd.setCursor(0,1);lcd.print(" ");lcd.setCursor(0,1);lcd.print("Y "); lcd.print(Y);
lcd.setCursor(8,1);lcd.print(" ");lcd.setCursor(8,1);lcd.print("Z "); lcd.print(Z);
}
A to co powtarzasz dla każdej osi, jako funkcję, gdzie podajesz jako parametr char S - znak który wzkazuje, jaką osią w tym wywołaniu dana funkcja się zajmuje.
- 08 wrz 2013, 14:20
- Forum: Arduino, Raspberry pi i inne systemy mikroprocesorowe
- Temat: Arduino steruje ploterem.
- Odpowiedzi: 49
- Odsłony: 20106
O boże 300 linii w jednej funkcji
Mimo wszystko respect.
Podpatrywałeś GRBL?
https://github.com/grbl/grbl
Pozdrawiam,
Zienek

Mimo wszystko respect.
Podpatrywałeś GRBL?
https://github.com/grbl/grbl
Pozdrawiam,
Zienek