We make sure that we have the name of a serial port on the command line.
Then we create a new
Serial
object in line 10, passing it all the parameters
we’d like to use for serial communication.
After sleeping for two seconds, we start an infinite loop. In the loop, we send
the string “a0” to the serial port calling
write
. We read the result returned by
the Arduino using the
readline
method and output the result to the console.
Here’s what a typical session looks like:
maik> python analog_reader.py /dev/tty.usbmodem24321
a0: 497
a0: 458
a0: 383
^C
Isn’t that code beautiful? With about twenty lines of Python code, you get full
control over your Arduino sketch. So, Python is another excellent choice for
writing Arduino clients.
Perl
Perl is still one of the most widely used dynamic programming languages,
and it has good support for serial communication. Some distributions come
with libraries for programming the serial port, but usually you have to install
a module first.
Windows users should have a look at
Win32::SerialPort
.
6
For the rest,
Device::Seri-
alPort
is a good choice. You can install it as follows:
maik> perl -MCPAN -e 'install Device::SerialPort'
Then use it like this:
SerialProgramming/Perl/analog_reader.pl
use strict;
Line 1
use warnings;
-
use Device::SerialPort;
-
-
my $num_args = $#ARGV + 1;
5
if ($num_args != 1) {
-
die "You have to pass the name of a serial port.";
-
}
-
-
my $serial_port = $ARGV[0];
10
my $arduino = Device::SerialPort->new($serial_port);
-
$arduino->baudrate(9600);
-
$arduino->databits(8);
-
6.
http://search.cpan.org/dist/Win32-SerialPort/
Appendix 3. Advanced Serial Programming • 264
report erratum • discuss
www.it-ebooks.info