CSC231 Lab 6
Back to CSC231 Weekly Schedule
CSC 231 Lab # 6
© D. Thiebaut, 2008
In this lab we are going to make the Arduino keep on listening to commands it gets from the assembly language on the PC, and execute each command as it receives them.
Getting the Messenger Library for the Arduino
You need a new library for the Arduino called Messenger
- Boot the Ubuntu CD-Rom
- Open a Terminal window and type
sudo su cd cd arduino-0010/hardware/libraries
- download the library file from the Arduino Playground:
wget http://www.arduino.cc/playground/uploads/Code/Messenger.zip
- unzip the file
unzip Messenger.zip
- Remove the archive file
rm Messenger.zip
- Set the ownership of the new library the same ownership as that of the arduino software
chown -R 1000:1000 Messenger
- Open the arduino GUI and create this new sketch
// This example sets all the values of the digital pins with a list through a callback function
#include <Messenger.h>
// Instantiate Messenger object with the default separator (the space character)
Messenger message = Messenger();
// Create the callback function
void messageReady() {
int pin = 0;
// Loop through all the available elements of the message
while ( message.available() ) {
// Set the pin as determined by the message
digitalWrite( pin, message.readInt() );
pin=pin+1;
}
}
void setup() {
// Initiate Serial Communication
Serial.begin(115200);
// Attach the callback function to the Messenger
message.attach(messageReady);
}
void loop() {
// The following line is the most effective way of using Serial and Messenger's callback
while ( Serial.available() ) message.process(Serial.read () );
}
- Compile and download it to your Arduino
Assembly Part
- Open a Terminal window under Ubuntu and type
sudo su cd
- Highlight the contents of the file driver.c and type Control-C to copy it to the clipboard
- In the terminal window type
cat > driver.c
- and then click the middle button of your mouse to paste the code you had highlighted
- Type Control-D to close the file.
- Repeat the same operations for the files