1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
/*
Single_Sanguino_SNAP.pde - Combined cartesian bot + extruder firmware.
History (Arduino):
* (0.1) Created initial version by Zach Smith.
* (0.2) Updated to work with the various optimizations and extruder emulation by Zach Smith
* (0.3) Updated with new library changes by Zach Smith.
History (Sanguino):
* (0.4) Converted to Sanguino version by Adrian Bowyer
License: GPL v2.0
*/
//our config file
#include "init.h"
//our library includes.
#include "HardwareSerial.h"
#include "SNAP.h"
#include "RepStepper.h"
#include "LinearAxis.h"
#include "CartesianBot.h"
#include "ThermoplastExtruder.h"
#include "ThermoplastExtruder_SNAP_v1.h"
#include "CartesianBot_SNAP_v1.h"
ThermoplastExtruder extruder(EXTRUDER_MOTOR_DIR_PIN, EXTRUDER_MOTOR_SPEED_PIN, EXTRUDER_HEATER_PIN,
EXTRUDER_FAN_PIN, EXTRUDER_THERMISTOR_PIN, VALVE_DIR_PIN, VALVE_ENABLE_PIN);
CartesianBot bot = CartesianBot(
'x', X_MOTOR_STEPS, X_DIR_PIN, X_STEP_PIN, X_MIN_PIN, X_MAX_PIN, X_ENABLE_PIN,
'y', Y_MOTOR_STEPS, Y_DIR_PIN, Y_STEP_PIN, Y_MIN_PIN, Y_MAX_PIN, Y_ENABLE_PIN,
'z', Z_MOTOR_STEPS, Z_DIR_PIN, Z_STEP_PIN, Z_MIN_PIN, Z_MAX_PIN, Z_ENABLE_PIN
);
void setup()
{
// Added by AB - seems to make things more stable
for(int i = 1; i < 32; i++)
{
pinMode(i, OUTPUT);
digitalWrite(i, LOW);
}
pinMode(8, INPUT);
snap.begin(19200);
//run any setup code we need.
setup_cartesian_bot_snap_v1();
setup_extruder_snap_v1();
//snap.debug();
//Serial.println("BEGIN");
}
void loop()
{
//do the loop commands.
cartesian_bot_snap_v1_loop();
extruder.manageTemperature();
//process our commands
if (snap.packetReady())
{
//who is it for?
byte dest = snap.getDestination();
//route the command to the proper object.
if (dest == EXTRUDER_ADDRESS)
process_thermoplast_extruder_snap_commands_v1();
else if(dest == X_ADDRESS || dest == Y_ADDRESS || dest == Z_ADDRESS)
process_cartesian_bot_snap_commands_v1();
snap.releaseLock();
}
else
snap.receivePacket();
}
|