Merge chamnit/v0_7 with grbl/master

This commit is contained in:
Sonny Jeon
2012-01-17 20:50:53 -07:00
parent 74576a8a0c
commit 9713f9067d
32 changed files with 1558 additions and 1020 deletions

30
doc/planner-maths.txt Normal file
View File

@ -0,0 +1,30 @@
Reasoning behind the mathematics in 'planner' module (in the key of 'Mathematica')
==================================================================================
s == speed, a == acceleration, t == time, d == distance
Basic definitions:
Speed[s_, a_, t_] := s + (a*t)
Travel[s_, a_, t_] := Integrate[Speed[s, a, t], t]
Distance to reach a specific speed with a constant acceleration:
Solve[{Speed[s, a, t] == m, Travel[s, a, t] == d}, d, t]
d -> (m^2 - s^2)/(2 a) --> estimate_acceleration_distance()
Speed after a given distance of travel with constant acceleration:
Solve[{Speed[s, a, t] == m, Travel[s, a, t] == d}, m, t]
m -> Sqrt[2 a d + s^2]
DestinationSpeed[s_, a_, d_] := Sqrt[2 a d + s^2]
When to start braking (di) to reach a specified destionation speed (s2) after accelerating
from initial speed s1 without ever stopping at a plateau:
Solve[{DestinationSpeed[s1, a, di] == DestinationSpeed[s2, a, d - di]}, di]
di -> (2 a d - s1^2 + s2^2)/(4 a) --> intersection_distance()
IntersectionDistance[s1_, s2_, a_, d_] := (2 a d - s1^2 + s2^2)/(4 a)

View File

@ -3,7 +3,7 @@ Allocation of AVR peripherals in Grbl
See config.h for pin allocation.
The UART is handled by 'wiring_serial' and used primarily for streaming gcode
The UART is handled by 'serial' and used primarily for streaming gcode
16 bit Timer 1 and the TIMER1_COMPA interrupt is used by the 'stepper' module to handle step events

View File

@ -3,10 +3,10 @@ The general structure of Grbl
The main processing stack:
'serial_protocol' : Accepts command lines from the serial port and passes them to 'gcode' for execution.
'protocol' : Accepts command lines from the serial port and passes them to 'gcode' for execution.
Provides status responses for each command.
'gcode' : Recieves gcode from 'serial_protocol', parses it according to the current state
'gcode' : Recieves gcode from 'protocol', parses it according to the current state
of the parser and issues commands via '..._control' modules
'spindle_control' : Commands for controlling the spindle.
@ -36,4 +36,6 @@ Supporting files:
'nuts_bolts.h' : A tiny collection of useful constants and macros used everywhere
'wiring_serial' : Low level serial library initially from an old version of the Arduino software
'serial' : Low level serial communications
'print' : Functions to print strings of different formats (using serial)