Merge chamnit/v0_7 with grbl/master
This commit is contained in:
30
doc/planner-maths.txt
Normal file
30
doc/planner-maths.txt
Normal 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)
|
@ -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
|
||||
|
||||
|
@ -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)
|
Reference in New Issue
Block a user