This consists of code to receive the characters transmitted via zigbee and display them on shiftbrite RGB LEDs with color properties.

Dependencies:   ADXL345 mbed

Files at this revision

API Documentation at this revision

Comitter:
abarve9
Date:
Fri Dec 07 07:41:04 2012 +0000
Commit message:
This consists of code to receive the characters transmitted via zigbee and display them on shiftbrite RGB LEDs with color properties.

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 b4494ee6461c ADXL345.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ADXL345.lib	Fri Dec 07 07:41:04 2012 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/aberk/code/ADXL345/#bd8f0f20f433
diff -r 000000000000 -r b4494ee6461c main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Dec 07 07:41:04 2012 +0000
@@ -0,0 +1,430 @@
+#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) {
+                        green = 0;
+                        red = 500;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+
+                    if(led7 == 1) {
+                        green = 0;
+                        red = 500;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+
+                    if(led6 == 1) {
+                        green = 0;
+                        red = 500;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+
+                    if(led5 == 1) {
+                        green = 500;
+                        red = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+
+                    if(led4 == 1) {
+                        green = 500;
+                        red = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+
+                    if(led3 == 1) {
+                        green = 500;
+                        red = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+
+                    if(led2 == 1) {
+                        green = 0;
+                        red = 0;
+                        blue = 500;
+                        RGB_LED(red,green,blue);
+                    } else {
+
+                        red = 0;
+                        green = 0;
+                        blue = 0;
+                        RGB_LED(red,green,blue);
+
+                    }
+
+                    if(led1 == 1) {
+                        green = 0;
+                        red = 0;
+                        blue = 500;
+                        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 b4494ee6461c mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Dec 07 07:41:04 2012 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/b60934f96c0c
\ No newline at end of file