hi,
Did anyone test the Bluetooth module with anything other than Roborealm?
I followed the bluetooth instructions in the Arcbotic website - and the bluetooth device is configured fine. But I cannot communicate with the module.
I would like to share my experience - any help is appreciated.
I assume that if my laptop (mac) is connected to the bluetooth Serial port (and at the right baud rate), I should be able to pick up any data that is being written via sparki like this:
Serial.println(…);
So I am trying to plot a graph (using Processing) of random numbers that I get from Sparki. Here is my Processing Sketch (taken from the Arduino website with some debug messages):
[code]/* Processing code for this example
// Graphing sketch
// This program takes ASCII-encoded strings
// from the serial port at 9600 baud and graphs them. It expects values in the
// range 0 to 1023, followed by a newline, or newline and carriage return
// Created 20 Apr 2005
// Updated 18 Jan 2008
// by Tom Igoe
// This example code is in the public domain.
/
import processing.serial.;
Serial myPort; // The serial port
int xPos = 1; // horizontal position of the graph
void setup () {
// set the window size:
size(400, 300);
// List all the available serial ports
println(Serial.list());
// I know that the first port in the serial list on my mac
// is always my Arduino, so I open Serial.list()[0].
// Open whatever port is the one you’re using.
myPort = new Serial(this, Serial.list()[0], 9600);
// don’t generate a serialEvent() unless you get a newline character:
myPort.bufferUntil(’\n’);
// set inital background:
background(0);
}
void draw () {
// everything happens in the serialEvent()
}
void serialEvent (Serial myPort) {
println("In Serial Event. Got: ");
// get the ASCII string:
String inString = myPort.readStringUntil(’\n’);
if (inString != null) {
// trim off any whitespace:
inString = trim(inString);
println(inString);
// convert to an int and map to the screen height:
float inByte = float(inString);
inByte = map(inByte, 0, 1023, 0, height);
// draw the line:
stroke(127, 34, 255);
line(xPos, height, xPos, height - inByte);
// at the edge of the screen, go back to the beginning:
if (xPos >= width) {
xPos = 0;
background(0);
}
else {
// increment the horizontal position:
xPos++;
}
}
}
[/code]
and here is a little program that runs on Sparki:
[EDIT - per roboalchemist instructions. Now it works!]
#include "Timer.h"
#include <Sparki.h>
Timer t;
void setup(){
Serial1.begin (9600);
t.every(1000, writeToSerial);
randomSeed(analogRead(0));
sparki.clearLCD();
}
void loop(){
t.update();
}
void writeToSerial(){
int num = random(300);
sparki.println(num);
sparki.updateLCD();
Serial1.println(num);
}
BTW -
Once the Processing Sketch is run, the blinking red led on the BT module turns into constant light.
The problem is - I get no data so I must be doing something wrong.
