A short test program for all things m3pi and BtBee.

Dependencies:   btbee m3pi_ng mbed

Fork of m3pi_btTest by Nikolas Goldin

Committer:
ngoldin
Date:
Thu May 16 13:36:46 2013 +0000
Revision:
4:31939848b5ba
Parent:
3:545c4c50dc0f
Child:
5:2e5fd80518c5
threw out sensor stuff + added comments

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ngoldin 0:546e224d2f88 1 #include "mbed.h"
ngoldin 1:c1845f088b5d 2 #include "m3pi_ng.h"
ngoldin 3:545c4c50dc0f 3 #include "btbee.h"
ngoldin 1:c1845f088b5d 4
ngoldin 1:c1845f088b5d 5 m3pi m3pi;
ngoldin 3:545c4c50dc0f 6 btbee btbee;
ngoldin 0:546e224d2f88 7
ngoldin 1:c1845f088b5d 8 DigitalOut mbed_led[] = {(LED1), (LED2),(LED3), (LED4)};
ngoldin 1:c1845f088b5d 9 DigitalOut m3pi_led[] = {(p13), (p14), (p15), (p16), (p17), (p18), (p19), (p20)};
ngoldin 1:c1845f088b5d 10 DigitalIn m3pi_pb(p21);
ngoldin 4:31939848b5ba 11
ngoldin 1:c1845f088b5d 12 Timer t1;
ngoldin 2:35d1143053d3 13
ngoldin 2:35d1143053d3 14
ngoldin 1:c1845f088b5d 15 int main()
ngoldin 1:c1845f088b5d 16 {
ngoldin 2:35d1143053d3 17 // initialization stuff ////////////////////////////////////////////////////////////////////////////////////////////////////
ngoldin 1:c1845f088b5d 18 m3pi.locate(0,1);
ngoldin 3:545c4c50dc0f 19 btbee.reset();
ngoldin 2:35d1143053d3 20 for (int i = 0; i <4; i++) {
ngoldin 2:35d1143053d3 21 mbed_led[i] = 0;
ngoldin 2:35d1143053d3 22 }
ngoldin 2:35d1143053d3 23 for (int i = 0; i <8; i++) {
ngoldin 2:35d1143053d3 24 m3pi_led[i]=0;
ngoldin 2:35d1143053d3 25 }
ngoldin 1:c1845f088b5d 26 m3pi_pb.mode(PullUp); // expected would be 1 when pb is pressed, 0 when not, opposite is the case
ngoldin 3:545c4c50dc0f 27 // NOTE on baud rate: the baud rate to be used has to be set on the btBee beforehand. this uses the at mode which is activated by hardware switch.
ngoldin 3:545c4c50dc0f 28 // only use the hw switch while powered off. use the configure_btbee program to write to it.
ngoldin 3:545c4c50dc0f 29
ngoldin 1:c1845f088b5d 30 //btbee.baud(9600); // this is BtBee default for regular commands
ngoldin 3:545c4c50dc0f 31 btbee.baud(115200); // this is BtBee regular command set baud rate
ngoldin 1:c1845f088b5d 32 //btbee.format(); // the default should be fine
ngoldin 3:545c4c50dc0f 33 // end initialization stuff ////////////////////////////////////////////////////////////////////////////////////////////////
ngoldin 2:35d1143053d3 34
ngoldin 4:31939848b5ba 35 // let me play you the song of my people...
ngoldin 1:c1845f088b5d 36 // V=volume max is 15::O5=octave5::G16=G16th note::R24=rest24th note...a rest is needed between any two note that are the same
ngoldin 1:c1845f088b5d 37 //char dixie[]= {'V','1','5','O','5','G','1','6','E','1','6','C','8','R','2','4','C','8','R','2','4','C','1','6','D','1','6','E','1','6','F','1','6','G','8','R','2','4','G','8','R','2','4','G','8','E','1','6'};
ngoldin 1:c1845f088b5d 38 //the number of characters in the array
ngoldin 1:c1845f088b5d 39 //int len=49;
ngoldin 1:c1845f088b5d 40 //m3pi.playtune(dixie,len);
ngoldin 1:c1845f088b5d 41
ngoldin 1:c1845f088b5d 42
ngoldin 4:31939848b5ba 43 // wait for the user to push P21, should be pressed when the bt link is established (green led "link")
ngoldin 3:545c4c50dc0f 44 while(m3pi_pb) {
ngoldin 3:545c4c50dc0f 45 m3pi_led[0]=!m3pi_led[0];
ngoldin 3:545c4c50dc0f 46 wait(0.1);
ngoldin 1:c1845f088b5d 47 }
ngoldin 2:35d1143053d3 48
ngoldin 4:31939848b5ba 49 int iline=1;
ngoldin 4:31939848b5ba 50 int write = 1; // this could also be a boolean
ngoldin 4:31939848b5ba 51 char arr_read[30]; // this should be long enough to store any reply coming in over bt.
ngoldin 4:31939848b5ba 52 int chars_read; // number of chars read in a bt reply
ngoldin 4:31939848b5ba 53
ngoldin 1:c1845f088b5d 54 while (true) {
ngoldin 4:31939848b5ba 55
ngoldin 4:31939848b5ba 56 // this writes "Line 001\n" to "Line 005\n" and then "end\n" to the btbee
ngoldin 3:545c4c50dc0f 57 if (btbee.writeable() && write ) {
ngoldin 4:31939848b5ba 58 if (iline==6) {
ngoldin 3:545c4c50dc0f 59 btbee.printf("end\n");
ngoldin 3:545c4c50dc0f 60 write=1;
ngoldin 4:31939848b5ba 61 }//if
ngoldin 3:545c4c50dc0f 62 else {
ngoldin 4:31939848b5ba 63 btbee.printf("Line %0.3d \n",iline);
ngoldin 3:545c4c50dc0f 64 m3pi_led[0]=0;
ngoldin 3:545c4c50dc0f 65 m3pi.locate(0,0);
ngoldin 4:31939848b5ba 66 m3pi.printf("Sent %0.3d",iline);
ngoldin 4:31939848b5ba 67 iline++;
ngoldin 4:31939848b5ba 68 }//else
ngoldin 4:31939848b5ba 69 }//if_write
ngoldin 4:31939848b5ba 70
ngoldin 4:31939848b5ba 71 // check for answers after each write /not write
ngoldin 1:c1845f088b5d 72 while (btbee.readable()) {
ngoldin 3:545c4c50dc0f 73 m3pi_led[7]=1;
ngoldin 3:545c4c50dc0f 74 btbee.read_all(arr_read, 30, &chars_read );
ngoldin 3:545c4c50dc0f 75 m3pi_led[6]=1;
ngoldin 3:545c4c50dc0f 76 m3pi.locate(0,1);
ngoldin 3:545c4c50dc0f 77 m3pi.print(arr_read,chars_read);
ngoldin 3:545c4c50dc0f 78 m3pi_led[5]=1;
ngoldin 4:31939848b5ba 79 }//while_readable
ngoldin 3:545c4c50dc0f 80 wait(0.1);
ngoldin 4:31939848b5ba 81 }//while true
ngoldin 4:31939848b5ba 82
ngoldin 4:31939848b5ba 83 }//main
ngoldin 1:c1845f088b5d 84
ngoldin 1:c1845f088b5d 85
ngoldin 1:c1845f088b5d 86