Prusa MINI Firmware overview
scara.h
Go to the documentation of this file.
1 /**
2  * Marlin 3D Printer Firmware
3  * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4  *
5  * Based on Sprinter and grbl.
6  * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
7  *
8  * This program is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program. If not, see <http://www.gnu.org/licenses/>.
20  *
21  */
22 #pragma once
23 
24 /**
25  * scara.h - SCARA-specific functions
26  */
27 
28 #include "../core/macros.h"
29 
30 extern float delta_segments_per_second;
31 
32 // Float constants for SCARA calculations
33 float constexpr L1 = SCARA_LINKAGE_1, L2 = SCARA_LINKAGE_2,
34  L1_2 = sq(float(L1)), L1_2_2 = 2.0 * L1_2,
35  L2_2 = sq(float(L2));
36 
37 void scara_set_axis_is_at_home(const AxisEnum axis);
38 
39 void inverse_kinematics(const xyz_pos_t &raw);
40 void forward_kinematics_SCARA(const float &a, const float &b);
41 
planner.h
XYZval::z
T z
Definition: types.h:286
delta_segments_per_second
float delta_segments_per_second
L1_2_2
constexpr float L1_2_2
Definition: scara.h:34
sq
#define sq(x)
Definition: wiring_constants.h:83
XYZEval::z
T z
Definition: types.h:383
ATAN2
#define ATAN2(y, x)
Definition: macros.h:279
L1
constexpr float L1
Definition: scara.h:33
L2_2
constexpr float L2_2
Definition: scara.h:35
scara.h
inverse_kinematics
void inverse_kinematics(const xyz_pos_t &raw)
HYPOT2
#define HYPOT2(x, y)
Definition: macros.h:100
i
uint8_t i
Definition: screen_test_graph.c:72
L1_2
constexpr float L1_2
Definition: scara.h:34
delta_segments_per_second
float delta_segments_per_second
AxisEnum
AxisEnum
Definition: types.h:36
forward_kinematics_SCARA
void forward_kinematics_SCARA(const float &a, const float &b)
motion.h
XYZval::set
FI void set(const T px)
Definition: types.h:290
RADIANS
#define RADIANS(d)
Definition: macros.h:98
current_position
xyze_pos_t current_position
Definition: motion.cpp:102
cartes
xyz_pos_t cartes
Definition: motion.cpp:152
scara_set_axis_is_at_home
void scara_set_axis_is_at_home(const AxisEnum axis)
LOOP_XYZ
#define LOOP_XYZ(VAR)
Definition: types.h:60
SERIAL_ECHOLNPAIR
#define SERIAL_ECHOLNPAIR(V...)
Definition: serial.h:144
XYval
Definition: types.h:99
createSpeedLookupTable.a
list a
Definition: createSpeedLookupTable.py:29
scara_report_positions
void scara_report_positions()
SQRT
#define SQRT(x)
Definition: macros.h:281
XYval::x
T x
Definition: types.h:185
DEGREES
#define DEGREES(r)
Definition: macros.h:99
update_software_endstops
void update_software_endstops(const AxisEnum axis)
Definition: motion.cpp:503
inverse_kinematics
void inverse_kinematics(const xyz_pos_t &raw)
Z_AXIS
Definition: types.h:39
A_AXIS
Definition: types.h:37
SERIAL_EOL
#define SERIAL_EOL()
Definition: serial.h:181
XYval::y
T y
Definition: types.h:185
XYZval< float >
B_AXIS
Definition: types.h:38
createSpeedLookupTable.b
list b
Definition: createSpeedLookupTable.py:30
Z_HOME_POS
#define Z_HOME_POS
Definition: Conditionals_post.h:179
L2
constexpr float L2
Definition: scara.h:33
planner
Planner planner
Definition: planner.cpp:111