Permalink
Please
sign in to comment.
Browse files
added script to send gcode to controller and example gcode
- Loading branch information...
Showing
with
49 additions
and 0 deletions.
- +2 −0 modules/g1.gcode
- +47 −0 modules/send.pl
@@ -0,0 +1,2 @@ | ||
G28 Z | ||
G1 Z30 F30 |
@@ -0,0 +1,47 @@ | ||
#!/usr/bin/perl | ||
use Device::SerialPort; | ||
use Time::HiRes qw/sleep/; | ||
use Slurp; | ||
|
||
#Slup each file into a command list | ||
my @command_list; | ||
for my $file ( @ARGV ){ | ||
push @command_list, split('\n',slurp $file); | ||
} | ||
|
||
#If your board autoresets when talked to ( like a Sanguino ), you can uncomment the line bellow to get the machine to home position before sending the actual gcode | ||
#send_commands('G21','G91','G1 X-150 Y-150','G1 X-150 Y-150','G1 X-150 Y-150','G1 X-150 Y-150'); | ||
|
||
send_commands(@command_list); | ||
|
||
sub send_commands{ | ||
my @command_list = @_; | ||
|
||
#Open port | ||
my $port = Device::SerialPort->new("/dev/ttyACM0"); | ||
|
||
# 19200, 81N on the USB ftdi driver | ||
$port->baudrate(115200); | ||
$port->databits(8); | ||
$port->parity("none"); | ||
$port->stopbits(1); | ||
|
||
while (1) { | ||
# Poll to see if any data is coming in | ||
if ( my $char = $port->lookfor() ) { | ||
$char =~ s/\r//; | ||
print "$char\n"; | ||
if( $char =~ m/^(ok|start)$/){ | ||
#Send next command | ||
my $next_command = shift @command_list; | ||
print "$next_command\n"; | ||
$port->write("$next_command\n"); | ||
}else{ | ||
print "unknown: $char\n"; | ||
} | ||
} | ||
sleep 0.01; | ||
unless(@command_list){last; } | ||
} | ||
} | ||
|
0 comments on commit
18a3c68