Bluetooth Module

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.

As per the docs:
arcbotics.com/products/sparki/pa … th-module/

woops RTFM - sorry for that. works like a charm :slight_smile:

I will update my code above in this post to reflect that.

thanks!