This consists of code to display characters received from the transmitter and displays them on the shiftbrites. The color can be chosen dynamically.

Dependencies:   ADXL345 mbed

Files at this revision

API Documentation at this revision

Comitter:
abarve9
Date:
Fri Dec 07 16:20:17 2012 +0000
Commit message:
This consists of code to display characters received from the transmitter on the shiftbrite LEDs. The color of display can be chosen dynamically.

Changed in this revision

ADXL345.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 26a9f2b8a0c7 ADXL345.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ADXL345.lib	Fri Dec 07 16:20:17 2012 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/aberk/code/ADXL345/#bd8f0f20f433
diff -r 000000000000 -r 26a9f2b8a0c7 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Dec 07 16:20:17 2012 +0000
@@ -0,0 +1,543 @@
+#include "ADXL345.h"
+#include "mbed.h"
+#include "iostream"
+#include "stdio.h"
+#include "stdlib.h"
+#include "string"
+
+using namespace std;
+
+PortOut ledport(Port1, 0xFFFFFFFF);
+ADXL345 accelerometer(p5, p6, p7, p8);
+//Serial pc(USBTX, USBRX);
+//---shiftbrite
+DigitalOut latch(p15);
+DigitalOut enable(p16);
+SPI spi(p11, p12, p13);
+
+DigitalOut led8(p28);
+DigitalOut led7(p27);
+DigitalOut led6(p26);
+DigitalOut led5(p25);
+DigitalOut led4(p24);
+DigitalOut led3(p23);
+DigitalOut led2(p22);
+DigitalOut led1(p21);
+
+// ------------------------- Zigbee -------------
+
+Serial xbee2(p9, p10);
+DigitalOut rst1(p17);
+Serial pc1(USBTX, USBRX);
+DigitalOut myled(LED2);
+
+//----RGB Led function
+
+void RGB_LED(int red, int green, int blue)
+{
+    unsigned int low_color=0;
+    unsigned int high_color=0;
+    high_color=(blue<<4)|((red&0x3C0)>>6);
+    low_color=(((red&0x3F)<<10)|(green));
+    spi.write(high_color);
+    spi.write(low_color);
+    latch=1;
+    latch=0;
+}
+
+int main()
+{
+    int count=0;
+    int readings[3] = {0, 0, 0};
+    //int del = 0;
+    int16_t sum = 0;
+    int16_t xval[50];
+    int i = 0;
+    char text[30];
+    int len,len1;
+    len1 = 0;
+    len = 0;
+
+    //---------SHift brite
+
+    int red=0;
+    int green=0;
+    int blue=0;
+    spi.format(16,0);
+    spi.frequency(500000);
+    enable=0;
+    latch=0;
+
+    // --------- Zigbee
+
+    char character;
+    rst1 = 0;   //Set reset pin to 0
+    myled = 0;
+    wait_ms(1);
+    rst1 = 1;   //Set reset pin to 1
+    wait_ms(1);
+
+    char buffer[20];
+    int global = 0;
+
+//--- Zigbeeee
+
+    const char font[0x60][5] = {
+
+        {0x00,0x00,0x00,0x00,0x00},     // ASCII -  32 space
+        {0x00,0x00,0xF9,0x00,0x00},     // ASCII -  33 !
+        {0x00,0xE0,0x00,0xE0,0x00},     // ASCII -  34 "
+        {0x24,0x7E,0x24,0x7E,0x24},     // ASCII -  35 #
+        {0x34,0x4A,0xFF,0x49,0x26},     // ASCII -  36 $
+        {0x22,0x04,0x08,0x10,0x22},     // ASCII -  37 %
+        {0x26,0x59,0x4D,0x52,0x25},     // ASCII -  38 &
+        {0x00,0x00,0xE0,0x00,0x00},     // ASCII -  39 '
+        {0x00,0x3C,0x42,0x81,0x00},     // ASCII -  40 (
+        {0x00,0x81,0x42,0x3C,0x00},     // ASCII -  41 )
+        {0x28,0x30,0xE0,0x30,0x28},     // ASCII -  42 *
+        {0x08,0x08,0x3E,0x08,0x08},     // ASCII -  43 +
+        {0x00,0x01,0x02,0x00,0x00},     // ASCII -  44 ,
+        {0x08,0x08,0x08,0x08,0x08},     // ASCII -  45 -
+        {0x00,0x00,0x01,0x00,0x00},     // ASCII -  46 .
+        {0x02,0x04,0x08,0x10,0x20},     // ASCII -  47 /
+        {0x7E,0x81,0x81,0x81,0x7E},     // ASCII -  48 0
+        {0x00,0x21,0xFF,0x01,0x00},     // ASCII -  49 1
+        {0x41,0x83,0x85,0x89,0x71},     // ASCII -  50 2
+        {0x42,0x91,0x91,0x91,0x6E},     // ASCII -  51 3
+        {0xF0,0x10,0x10,0x10,0xFF},     // ASCII -  52 4
+        {0xF2,0x91,0x91,0x91,0x8E},     // ASCII -  53 5
+        {0x3E,0x51,0x91,0x91,0x8E},     // ASCII -  54 6
+        {0x87,0x88,0x90,0xA0,0xC0},     // ASCII -  55 7
+        {0x76,0x89,0x89,0x89,0x76},     // ASCII -  56 8
+        {0x62,0x91,0x91,0x91,0x7e},     // ASCII -  57 9
+        {0x00,0x00,0x24,0x00,0x00},     // ASCII -  58 :
+        {0x00,0x01,0x12,0x00,0x00},     // ASCII -  59 ;
+        {0x00,0x08,0x14,0x22,0x41},     // ASCII -  60 <
+        {0x14,0x14,0x14,0x14,0x14},     // ASCII -  61 =
+        {0x00,0x41,0x22,0x14,0x08},     // ASCII -  62 >
+        {0x40,0x80,0x8D,0x90,0x60},     // ASCII -  63 ?
+        {0x7E,0x81,0xBD,0xA5,0x78},     // ASCII -  64 @
+        {0x3F,0x48,0x88,0x48,0x3F},     // ASCII -  65 A
+        {0xFF,0x91,0x91,0x99,0x66},     // ASCII -  66 B
+        {0x3C,0x42,0x81,0x81,0x42},     // ASCII -  67 C
+        {0xFF,0x81,0x81,0x42,0x3C},     // ASCII -  68 D
+        {0xFF,0x91,0x91,0x91,0x81},     // ASCII -  69 E
+        {0xFF,0x90,0x90,0x90,0x80},     // ASCII -  70 F
+        {0x3E,0x41,0x8F,0x88,0x4F},     // ASCII -  71 G
+        {0xFF,0x10,0x10,0x10,0xFF},     // ASCII -  72 H
+        {0x00,0x81,0xFF,0x81,0x00},     // ASCII -  73 I
+        {0x06,0x01,0x81,0xFE,0x80},     // ASCII -  74 J
+        {0xFF,0x18,0x24,0x42,0x81},     // ASCII -  75 K
+        {0xFF,0x01,0x01,0x01,0x01},     // ASCII -  76 L
+        {0xFF,0x40,0x30,0x40,0xFF},     // ASCII -  77 M
+        {0xFF,0x40,0x20,0x10,0xFF},     // ASCII -  78 N
+        {0x7E,0x81,0x81,0x81,0x7E},     // ASCII -  79 O
+        {0xFF,0x90,0x90,0x90,0x60},     // ASCII -  80 P
+        {0x7E,0x81,0x85,0x82,0x7D},     // ASCII -  81 Q
+        {0xFF,0x98,0x94,0x92,0x61},     // ASCII -  82 R
+        {0x72,0x89,0x89,0x89,0x46},     // ASCII -  83 S
+        {0x80,0x80,0xFF,0x80,0x80},     // ASCII -  84 T
+        {0xFE,0x01,0x01,0x01,0xFE},     // ASCII -  85 U
+        {0xFC,0x02,0x01,0x02,0xFC},     // ASCII -  86 V
+        {0xFF,0x02,0x1C,0x02,0xFF},     // ASCII -  87 W
+        {0xC3,0x24,0x18,0x24,0xC3},     // ASCII -  88 X
+        {0xC0,0x20,0x1F,0x20,0xC0},     // ASCII -  89 Y
+        {0x87,0x89,0x91,0xA1,0xC1},     // ASCII -  90 Z
+        {0x00,0xFF,0x81,0x81,0x00},     // ASCII -  91 [
+        {0x20,0x10,0x08,0x04,0x02},     // ASCII -  92 '\'
+        {0x00,0x81,0x81,0xFF,0x00},     // ASCII -  93 ]
+        {0x20,0x40,0x80,0x40,0x20},     // ASCII -  94 ^
+        {0x01,0x01,0x01,0x01,0x01},     // ASCII -  95 _
+        {0x00,0x80,0x40,0x20,0x00},     // ASCII -  96 `
+        {0x26,0x29,0x29,0x1F,0x01},     // ASCII -  97 a
+        {0xFF,0x11,0x11,0x11,0x0E},     // ASCII -  98 b
+        {0x0E,0x11,0x11,0x11,0x11},     // ASCII -  99 c
+        {0x0E,0x11,0x11,0x11,0xFF},     // ASCII - 500 d
+        {0x0E,0x15,0x15,0x15,0x0D},     // ASCII - 101 e
+        {0x10,0x10,0x7F,0x90,0x90},     // ASCII - 102 f
+        {0x08,0x15,0x15,0x15,0x0E},     // ASCII - 103 g
+        {0xFF,0x08,0x08,0x08,0x07},     // ASCII - 104 h
+        {0x00,0x00,0x9F,0x00,0x00},     // ASCII - 105 i
+        {0x02,0x01,0x01,0x9F,0x00},     // ASCII - 106 j
+        {0xFF,0x04,0x0A,0x11,0x00},     // ASCII - 107 k
+        {0x00,0x01,0xFF,0x01,0x00},     // ASCII - 108 l
+        {0x1F,0x10,0x0F,0x10,0x0F},     // ASCII - 109 m
+        {0x10,0x0F,0x10,0x10,0x0F},     // ASCII - 110 n
+        {0x0E,0x11,0x11,0x11,0x0E},     // ASCII - 111 o
+        {0x1F,0x14,0x14,0x14,0x08},     // ASCII - 112 p
+        {0x08,0x14,0x14,0x14,0x1F},     // ASCII - 113 q
+        {0x1F,0x08,0x10,0x10,0x08},     // ASCII - 114 r
+        {0x09,0x15,0x15,0x15,0x12},     // ASCII - 115 s
+        {0x10,0x10,0x7F,0x11,0x12},     // ASCII - 116 t
+        {0x1F,0x01,0x01,0x1F,0x01},     // ASCII - 117 u
+        {0x1C,0x02,0x01,0x02,0x1C},     // ASCII - 118 v
+        {0x1E,0x01,0x0F,0x01,0x1E},     // ASCII - 119 w
+        {0x11,0x0A,0x04,0x0A,0x11},     // ASCII - 120 x
+        {0x11,0x0A,0x04,0x08,0x10},     // ASCII - 121 y
+        {0x11,0x13,0x15,0x19,0x11},     // ASCII - 122 z
+        {0x18,0x66,0x81,0x81,0x00},     // ASCII - 123 {
+        {0x00,0x00,0xFF,0x00,0x00},     // ASCII - 124 |
+        {0x00,0x81,0x81,0x66,0x18},     // ASCII - 125 }
+        {0x0C,0x10,0x08,0x04,0x18},     // ASCII - 126 ~
+    };
+
+    char currentchar = 0;
+    int LED_MASK = 0xFFFFFFFF;
+
+
+    //pc.printf("Starting ADXL345 test...\r\n");
+//   pc.printf("Device ID is: 0x%02x\r\n", accelerometer.getDevId());
+    wait(3);
+
+    //Go into standby mode to configure the device.
+    accelerometer.setPowerControl(0x00);
+
+    //Full resolution, +/-16g, 4mg/LSB.
+    accelerometer.setDataFormatControl(0x0B);
+
+    //3.2kHz data rate.
+    accelerometer.setDataRate(ADXL345_3200HZ);
+
+    //Measurement mode.
+    accelerometer.setPowerControl(0x08);
+
+    while (1) {
+        global=0;
+
+        while(1) {
+            // test = xbee2.readable();
+
+            if(xbee2.readable()) {
+                character =  xbee2.getc();
+
+                if(character == 13) {
+
+                    buffer[global] = '\0';
+                    break;
+                } else {
+                    buffer[global]= character;
+                    global++;
+
+                }
+            }
+
+        }
+
+        pc1.printf("\n\rbuffer = %s\n\r" ,buffer);
+        //pc1.printf(" \n\rBuffer = %s", buffer);
+        len1 = strlen(buffer);
+
+        for( int m =0; m < (len1 + 2); m++) {
+
+            text[m] = 0x20;
+        }
+
+        for( int m =(len1 + 2); m <( 2*len1 + 2); m++) {
+
+            text[m] = buffer[m - (len1 +2)];
+        }
+
+        text[2*len1 + 2] = '\0';
+        len = strlen(text);
+        for(int p =0; p <len; p++) {
+            pc1.printf("%c", text[p]);
+        }
+        pc1.printf("\n\rstrlen(text) = %d", len);
+        float waitvalue = 0.08 / ((6*len));
+
+
+
+        while(!(xbee2.readable())) {
+            red = 0;
+            green = 0;
+            blue = 0;
+
+
+            do {
+                accelerometer.getOutput(readings);
+                if(xbee2.readable())
+                    break;
+            } while((int16_t)readings[1] < 50);
+            i = 0;
+
+            while(text[i] != '\0') {
+
+                /*
+                led8 = 0;
+                led7 = 0;
+                led6 = 0;
+                led5 = 0;
+                led4 = 0;
+                led3 = 0;
+                led2 = 0;
+                led1 = 0; */
+                for( int m=0; m < 8; m++) {
+                    red = 0;
+                    green = 0;
+                    blue = 0;
+                    RGB_LED(red,green,blue);
+                }
+                wait(waitvalue);
+                currentchar = text[i];
+
+                for( int m =0; m <5; m++) {
+                    char mal = font[currentchar - 0x20][m];
+                    led8 = mal & 0x80;
+                    led7 = mal & 0x40;
+                    led6 = mal & 0x20;
+                    led5 = mal & 0x10;
+                    led4 = mal & 0x08;
+                    led3 = mal & 0x04;
+                    led2 = mal & 0x02;
+                    led1 = mal & 0x01;
+                    if(led8 == 1) {
+                        if( i == (len1+2)) {
+                            green = 200;
+                            red = 0;
+                            blue = 0;
+                        } else if ( i == (len1+3)) {
+                            green = 0;
+                            red = 0;
+                            blue = 200;
+                        } else if ( i == (len1 + 4)) {
+                            green = 200;
+                            red = 200;
+                            blue = 0;
+                        } else {
+                            green = 0;
+                            red = 200;
+                            blue = 0;
+                        }
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+
+                    if(led7 == 1) {
+                        if( i == (len1+2)) {
+                            green = 200;
+                            red = 0;
+                            blue = 0;
+                        } else if ( i == (len1+3)) {
+                            green = 0;
+                            red = 0;
+                            blue = 200;
+                        } else if ( i == (len1 + 4)) {
+                            green = 200;
+                            red = 200;
+                            blue = 0;
+                        } else {
+                            green = 0;
+                            red = 200;
+                            blue = 0;
+                        }
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+
+                    if(led6 == 1) {
+                        if( i == (len1+2)) {
+                            green = 200;
+                            red = 0;
+                            blue = 0;
+                        } else if ( i == (len1+3)) {
+                            green = 0;
+                            red = 0;
+                            blue = 200;
+                        } else if ( i == (len1 + 4)) {
+                            green = 200;
+                            red = 200;
+                            blue = 0;
+                        } else {
+                            green = 0;
+                            red = 200;
+                            blue = 0;
+                        }
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+
+                    if(led5 == 1) {
+                        if( i == (len1+2)) {
+                            green = 200;
+                            red = 0;
+                            blue = 0;
+                        } else if ( i == (len1+3)) {
+                            green = 0;
+                            red = 0;
+                            blue = 200;
+                        } else if ( i == (len1 + 4)) {
+                            green = 200;
+                            red = 200;
+                            blue = 0;
+                        } else {
+                            green = 0;
+                            red = 200;
+                            blue = 0;
+                        }
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+
+                    if(led4 == 1) {
+                        if( i == (len1+2)) {
+                            green = 200;
+                            red = 0;
+                            blue = 0;
+                        } else if ( i == (len1+3)) {
+                            green = 0;
+                            red = 0;
+                            blue = 200;
+                        } else if ( i == (len1 + 4)) {
+                            green = 200;
+                            red = 200;
+                            blue = 0;
+                        } else {
+                            green = 0;
+                            red = 200;
+                            blue = 0;
+                        }
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+
+                    if(led3 == 1) {
+                        if( i == (len1+2)) {
+                            green = 200;
+                            red = 0;
+                            blue = 0;
+                        } else if ( i == (len1+3)) {
+                            green = 0;
+                            red = 0;
+                            blue = 200;
+                        } else if ( i == (len1 + 4)) {
+                            green = 200;
+                            red = 200;
+                            blue = 0;
+                        } else {
+                            green = 0;
+                            red = 200;
+                            blue = 0;
+                        }
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+
+                    if(led2 == 1) {
+                        if( i == (len1+2)) {
+                            green = 200;
+                            red = 0;
+                            blue = 0;
+                        } else if ( i == (len1+3)) {
+                            green = 0;
+                            red = 0;
+                            blue = 200;
+                        } else if ( i == (len1 + 4)) {
+                            green = 200;
+                            red = 200;
+                            blue = 0;
+                        } else {
+                            green = 0;
+                            red = 200;
+                            blue = 0;
+                        }
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+
+                    if(led1 == 1) {
+                        if( i == (len1+2)) {
+                            green = 200;
+                            red = 0;
+                            blue = 0;
+                        } else if ( i == (len1+3)) {
+                            green = 0;
+                            red = 0;
+                            blue = 200;
+                        } else if ( i == (len1 + 4)) {
+                            green = 200;
+                            red = 200;
+                            blue = 0;
+                        } else {
+                            green = 0;
+                            red = 200;
+                            blue = 0;
+                        }
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+                    wait(waitvalue);
+
+                }
+                /*led8 = 0;
+                led7 = 0;
+                led6 = 0;
+                led5 = 0;
+                led4 = 0;
+                led3 = 0;
+                led2 = 0;
+                led1 = 0;*/
+                for( int j=0; j< 8; j++) {
+                    red = 0;
+                    green = 0;
+                    blue = 0;
+                    RGB_LED(red,green,blue);
+                }
+                wait(waitvalue);
+                i++;
+            }
+            do {
+                accelerometer.getOutput(readings);
+                if(xbee2.readable())
+                    break;
+            } while((int16_t)readings[1] > -50);
+        }
+    }
+}
diff -r 000000000000 -r 26a9f2b8a0c7 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Dec 07 16:20:17 2012 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/b60934f96c0c
\ No newline at end of file