Message from discussion
Full technical documentation available now
Received: by 10.58.170.6 with SMTP id ai6mr4741397vec.35.1352636253539;
Sun, 11 Nov 2012 04:17:33 -0800 (PST)
X-BeenThere: amarino-toolkit@googlegroups.com
Received: by 10.220.107.208 with SMTP id c16ls6448618vcp.3.gmail; Sun, 11 Nov
2012 04:17:32 -0800 (PST)
Received: by 10.52.97.101 with SMTP id dz5mr3155984vdb.2.1352636252020;
Sun, 11 Nov 2012 04:17:32 -0800 (PST)
Date: Sun, 11 Nov 2012 04:17:31 -0800 (PST)
From: Mats Karlsson <mats.o.karls...@gmail.com>
To: amarino-toolkit@googlegroups.com
Message-Id: <d7551836-dd34-49f3-b73b-d694e48bef14@googlegroups.com>
In-Reply-To: <CAN5U55avCrnWct0r8Ur_qwTmwEztQrtVboGt7bZW0=2B3W-BCA@mail.gmail.com>
References: <15390063.2274.1334494408185.JavaMail.geo-discussion-forums@vbyj26>
<CAN5U55bRxEkoTvGrULBrQtMNVjYLdqEkNaHE_0bBwZOSTCYtsw@mail.gmail.com>
<CAN5U55bz2gY=m-KBgH+EtotwyAyH08y4cph5zbqa1k-D1MJ5NA@mail.gmail.com>
<004d01cd1b1a$136ad300$3a407900$@gmail.com>
<CAELguob6=Z8MP-Zp-JJqAkh7JPQGiuC-EMRawFAgSgbAFEBvSQ@mail.gmail.com>
<b5eef1bd-47fc-4573-b6f5-f8fd726c4082@googlegroups.com>
<CAELguoaTbEZ=RO4QUzvXTaN5is6MThtwnabZA9N0PNTwEvPY9w@mail.gmail.com>
<55d9b40e-895d-4307-8e95-085e3b14ad6d@googlegroups.com>
<CAN5U55bx554zCASn6wdhowXEf-yVca685KzdxQ6AhKHVnWu-kA@mail.gmail.com>
<27e318e9-2bf3-4b92-9279-43c35a96226e@googlegroups.com>
<CAN5U55avCrnWct0r8Ur_qwTmwEztQrtVboGt7bZW0=2B3W-BCA@mail.gmail.com>
Subject: Re: [amarino-toolkit] Full technical documentation available now
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_Part_1371_30621343.1352636251546"
------=_Part_1371_30621343.1352636251546
Content-Type: multipart/alternative;
boundary="----=_Part_1372_4150663.1352636251547"
------=_Part_1372_4150663.1352636251547
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
This is working for me:
*My config: *MultiColorLamp App - Amarino - Android - Bluetooth - Arduino.
First I used "Analyse_MulticolorLamp", that decodes what is received from
the bluetooth serial device.
I use 2 and 3 as SoftSerial for my Bluetooth module.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
Serial.println("send any byte and I'll tell you everything I can about
it");
Serial.println();
}
void loop() {
// get any incoming bytes:
if (mySerial.available() > 0) {
int thisChar = mySerial.read();
// say what was sent:
Serial.print("You sent me: \'");
Serial.write(thisChar);
Serial.print("\' ASCII Value: ");
Serial.print(thisChar);
Serial.print(" ");
// Analyze what was sent:
if(isAlpha(thisChar)) {
Serial.println("it's alphabetic");
}
if(isControl(thisChar)) {
Serial.println("it's a control character");
}
if(isDigit(thisChar)) {
Serial.println("it's a numeric digit");
}
}
}
And then I found some code from the book "Beginning Arduino" that fitted my
purpose nicely.
// Project 10 - Serial controlled RGB Lamp
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
char buffer[18];
int red, green, blue;
int RedPin = 9;
int GreenPin = 10;
int BluePin = 11;
void setup()
{
Serial.begin(9600);
Serial.flush();
mySerial.begin(9600);
pinMode(RedPin, OUTPUT);
pinMode(GreenPin, OUTPUT);
pinMode(BluePin, OUTPUT);
}
void loop()
{
if (mySerial.available() > 0) {
int index=0;
delay(100); // let the buffer fill up
int numChar = mySerial.available();
if (numChar>15) {
numChar=15;
}
while (numChar--) {
buffer[index++] = mySerial.read();
}
splitString(buffer);
}
}
void splitString(char* data) {
Serial.print("Data entered: ");
Serial.println(data);
char* parameter;
parameter = strtok (data, " ,");
while (parameter != NULL) {
setLED(parameter);
parameter = strtok (NULL, " ,");
}
// Clear the text and serial buffers
for (int x=0; x<16; x++) {
buffer[x]='\0';
}
Serial.flush();
}
void setLED(char* data) {
if ((data[0] == 'r') || (data[0] == 'R')) {
int Ans = strtol(data+1, NULL, 10);
Ans = constrain(Ans,0,255);
analogWrite(RedPin, Ans);
Serial.print("Red is set to: ");
Serial.println(Ans);
}
if ((data[0] == 'g') || (data[0] == 'G')) {
int Ans = strtol(data+1, NULL, 10);
Ans = constrain(Ans,0,255);
analogWrite(GreenPin, Ans);
Serial.print("Green is set to: ");
Serial.println(Ans);
}
if ((data[0] == 'b') || (data[0] == 'B')) {
int Ans = strtol(data+1, NULL, 10);
Ans = constrain(Ans,0,255);
analogWrite(BluePin, Ans);
Serial.print("Blue is set to: ");
Serial.println(Ans);
}
}
And now I have a RGB controlled lamp without using the Amarino library that
is using the hardcoded serial port.
/Mats
------=_Part_1372_4150663.1352636251547
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
This is working for me:<div><br></div><div><b>My config: </b>MultiColo=
rLamp App - Amarino - Android - Bluetooth - Arduino.</div><div><br></div><d=
iv>First I used "Analyse_MulticolorLamp", that decodes what is received fro=
m the bluetooth serial device.</div><div><br></div><div>I use 2 and 3 as So=
ftSerial for my Bluetooth module.<br></div><div><br></div><div><div><font f=
ace=3D"courier new, monospace">#include <SoftwareSerial.h></font></di=
v><div><font face=3D"courier new, monospace">SoftwareSerial mySerial(2, 3);=
// RX, TX</font></div><div><font face=3D"courier new, monospace"><br></fon=
t></div><div><font face=3D"courier new, monospace">void setup() {</font></d=
iv><div><font face=3D"courier new, monospace"> Serial.begin(9600);</f=
ont></div><div><font face=3D"courier new, monospace"> mySerial.begin(=
9600);</font></div><div><font face=3D"courier new, monospace"> Serial=
.println("send any byte and I'll tell you everything I can about it");</fon=
t></div><div><font face=3D"courier new, monospace"> Serial.println();=
</font></div><div><font face=3D"courier new, monospace">}</font></div><div>=
<font face=3D"courier new, monospace"><br></font></div><div><font face=3D"c=
ourier new, monospace">void loop() {</font></div><div><font face=3D"courier=
new, monospace"> // get any incoming bytes:</font></div><div><font f=
ace=3D"courier new, monospace"> if (mySerial.available() > 0) {</f=
ont></div><div><font face=3D"courier new, monospace"> int this=
Char =3D mySerial.read();</font></div><div><font face=3D"courier new, monos=
pace"><br></font></div><div><font face=3D"courier new, monospace"> &n=
bsp; // say what was sent:</font></div><div><font face=3D"courier new, mono=
space"> Serial.print("You sent me: \'");</font></div><div><fon=
t face=3D"courier new, monospace"> Serial.write(thisChar);</fo=
nt></div><div><font face=3D"courier new, monospace"> Serial.pr=
int("\' ASCII Value: ");</font></div><div><font face=3D"courier new, =
monospace"> Serial.print(thisChar);</font></div><div><font fac=
e=3D"courier new, monospace"> Serial.print(" ");=
</font></div><div><font face=3D"courier new, monospace"><br></font></div><d=
iv><font face=3D"courier new, monospace"> // Analyze what was =
sent:</font></div><div><font face=3D"courier new, monospace"> =
if(isAlpha(thisChar)) {</font></div><div><font face=3D"courier new, monospa=
ce"> Serial.println("it's alphabetic");</font></div><di=
v><font face=3D"courier new, monospace"> }</font></div><div><f=
ont face=3D"courier new, monospace"> if(isControl(thisChar)) {=
</font></div><div><font face=3D"courier new, monospace">  =
; Serial.println("it's a control character");</font></div><div><font face=
=3D"courier new, monospace"> }</font></div><div><font face=3D"=
courier new, monospace"> if(isDigit(thisChar)) {</font></div><=
div><font face=3D"courier new, monospace"> Serial.print=
ln("it's a numeric digit");</font></div><div><font face=3D"courier new, mon=
ospace"> }</font></div><div><font face=3D"courier new, monospa=
ce"> }</font></div><div><font face=3D"courier new, monospace">}</font=
></div></div><div><br></div><div><br></div><div><br></div><div>And then I f=
ound some code from the book "Beginning Arduino" that fitted my purpose nic=
ely.</div><div><br></div><div><div><font face=3D"courier new, monospace">//=
Project 10 - Serial controlled RGB Lamp</font></div><div><font face=3D"cou=
rier new, monospace">#include <SoftwareSerial.h></font></div><div><fo=
nt face=3D"courier new, monospace">SoftwareSerial mySerial(2, 3); // RX, TX=
</font></div><div><font face=3D"courier new, monospace"><br></font></div><d=
iv><font face=3D"courier new, monospace">char buffer[18];</font></div><div>=
<font face=3D"courier new, monospace">int red, green, blue;</font></div><di=
v><font face=3D"courier new, monospace">int RedPin =3D 9;</font></div><div>=
<font face=3D"courier new, monospace">int GreenPin =3D 10;</font></div><div=
><font face=3D"courier new, monospace">int BluePin =3D 11;</font></div><div=
><font face=3D"courier new, monospace"><br></font></div><div><font face=3D"=
courier new, monospace">void setup()</font></div><div><font face=3D"courier=
new, monospace">{</font></div><div><font face=3D"courier new, monospace">&=
nbsp; Serial.begin(9600);</font></div><div><font face=3D"courier new, monos=
pace"> Serial.flush();</font></div><div><font face=3D"courier new, mo=
nospace"> mySerial.begin(9600);</font></div><div><font face=3D"courie=
r new, monospace"> pinMode(RedPin, OUTPUT);</font></div><div><font fa=
ce=3D"courier new, monospace"> pinMode(GreenPin, OUTPUT);</font></div=
><div><font face=3D"courier new, monospace"> pinMode(BluePin, OUTPUT)=
;</font></div><div><font face=3D"courier new, monospace">}</font></div><div=
><font face=3D"courier new, monospace"><br></font></div><div><font face=3D"=
courier new, monospace">void loop()</font></div><div><font face=3D"courier =
new, monospace">{</font></div><div><font face=3D"courier new, monospace">&n=
bsp; if (mySerial.available() > 0) {</font></div><div><font face=3D"cour=
ier new, monospace"> int index=3D0;</font></div><div><font fac=
e=3D"courier new, monospace"> delay(100); // let the buffer fi=
ll up</font></div><div><font face=3D"courier new, monospace"> =
int numChar =3D mySerial.available();</font></div><div><font face=3D"courie=
r new, monospace"> if (numChar>15) {</font></div><div><font=
face=3D"courier new, monospace"> numChar=3D15;</font><=
/div><div><font face=3D"courier new, monospace"> }</font></div=
><div><font face=3D"courier new, monospace"> while (numChar--)=
{</font></div><div><font face=3D"courier new, monospace"> &nb=
sp; buffer[index++] =3D mySerial.read();</font></div><div><font face=3D"cou=
rier new, monospace"> }</font></div><div><font face=3D"=
courier new, monospace"> splitString(buffer);</font></div><div=
><font face=3D"courier new, monospace"> }</font></div><div><font face=
=3D"courier new, monospace">}</font></div><div><font face=3D"courier new, m=
onospace"><br></font></div><div><font face=3D"courier new, monospace">void =
splitString(char* data) {</font></div><div><font face=3D"courier new, monos=
pace"> Serial.print("Data entered: ");</font></div><div><font face=3D=
"courier new, monospace"> Serial.println(data);</font></div><div><fon=
t face=3D"courier new, monospace"> char* parameter;</font></div><div>=
<font face=3D"courier new, monospace"> parameter =3D strtok (data, " =
,");</font></div><div><font face=3D"courier new, monospace"> while (p=
arameter !=3D NULL) {</font></div><div><font face=3D"courier new, monospace=
"> setLED(parameter);</font></div><div><font face=3D"courier n=
ew, monospace"> parameter =3D strtok (NULL, " ,");</font></div=
><div><font face=3D"courier new, monospace"> }</font></div><div><font=
face=3D"courier new, monospace"> // Clear the text and serial buffer=
s</font></div><div><font face=3D"courier new, monospace"> for (int x=
=3D0; x<16; x++) {</font></div><div><font face=3D"courier new, monospace=
"> buffer[x]=3D'\0';</font></div><div><font face=3D"courier ne=
w, monospace"> }</font></div><div><font face=3D"courier new, monospac=
e"> Serial.flush();</font></div><div><font face=3D"courier new, monos=
pace">}</font></div><div><font face=3D"courier new, monospace"><br></font><=
/div><div><font face=3D"courier new, monospace">void setLED(char* data) {</=
font></div><div><font face=3D"courier new, monospace"> if ((data[0] =
=3D=3D 'r') || (data[0] =3D=3D 'R')) {</font></div><div><font face=3D"couri=
er new, monospace"> int Ans =3D strtol(data+1, NULL, 10);</fon=
t></div><div><font face=3D"courier new, monospace"> Ans =3D co=
nstrain(Ans,0,255);</font></div><div><font face=3D"courier new, monospace">=
analogWrite(RedPin, Ans);<br></font></div><div><font face=3D"=
courier new, monospace"> Serial.print("Red is set to: ");</fon=
t></div><div><font face=3D"courier new, monospace"> Serial.pri=
ntln(Ans);</font></div><div><font face=3D"courier new, monospace"> &n=
bsp; }</font></div><div><font face=3D"courier new, monospace"> if ((d=
ata[0] =3D=3D 'g') || (data[0] =3D=3D 'G')) {</font></div><div><font face=
=3D"courier new, monospace"> int Ans =3D strtol(data+1, NULL, =
10);</font></div><div><font face=3D"courier new, monospace"> A=
ns =3D constrain(Ans,0,255);</font></div><div><font face=3D"courier new, mo=
nospace"> analogWrite(GreenPin, Ans);<br></font></div><div><fo=
nt face=3D"courier new, monospace"> Serial.print("Green is set=
to: ");</font></div><div><font face=3D"courier new, monospace"> &nbs=
p; Serial.println(Ans);</font></div><div><font face=3D"courier new, monospa=
ce"> }</font></div><div><font face=3D"courier new, monospace"> =
if ((data[0] =3D=3D 'b') || (data[0] =3D=3D 'B')) {</font></div><div><font =
face=3D"courier new, monospace"> int Ans =3D strtol(data+1, NU=
LL, 10);</font></div><div><font face=3D"courier new, monospace"> &nbs=
p; Ans =3D constrain(Ans,0,255);</font></div><div><font face=3D"courier new=
, monospace"> analogWrite(BluePin, Ans);<br></font></div><div>=
<font face=3D"courier new, monospace"> Serial.print("Blue is s=
et to: ");</font></div><div><font face=3D"courier new, monospace"> &n=
bsp; Serial.println(Ans);</font></div><div><font face=3D"courier new, monos=
pace"> }</font></div><div><font face=3D"courier new, monospace">}</fo=
nt></div></div><div><br></div><div>And now I have a RGB controlled lamp wit=
hout using the Amarino library that is using the hardcoded serial port.</di=
v><div><br></div><div>/Mats</div>
------=_Part_1372_4150663.1352636251547--
------=_Part_1371_30621343.1352636251546--