Android手机Bluetooth与Microduino~Bluetooth串口传输数据
室友送了一个Microduino Bluetooth2.1版本的,还送了Microduino—OLED显示屏,于是想法是通过Android手机Bluetooth与Microduino Bluetooth实现串口数据传输,将数据通过OLED显示屏显示出来。在此还有个背景:前期做了一个8*8真彩点阵,在Colorduino上找到了一些资料,另外想增加Android Bluetooth手机直接控制RGB点阵,因此通过Microduino Bluetooth2.1与Android Bluetooth手机之间数据传输做个测试,方便设计8*8RGB点阵。经过一个上午,Android手机控制程序已经做好,调试OK,接下来设计8*8RGB点阵驱动,希望能够与老外那样可以用手机控制8*8RGB点阵。附Microduino程序:
#include "U8glib.h"
String comdata = "";//显示的字符串
String;//判断clean缓存字符串
staticunsigned long k,m;
int pinRx = 0;
int pinTx = 1;
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
// HW SPI Com: CS = 10, A0 = 9 (Hardware Pins areSCK = 13 and MOSI = 11)
static unsigned char u8g_logo_bits[] U8G_PROGMEM = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0xE0,
0x03,0x00,0x00,0x00,0x00,0x7E,0x00,0xF0,0x01,0x00,0x00,0x00,
0x00,0xFE,0xF9,0xF7,0x07,0x00,0x00,0x00,0x00,0x3C,0x00,0xF8,
0x03,0x00,0x00,0x00,0x00,0xFC,0xF9,0xE1,0x03,0x00,0x00,0x00,
0x00,0x38,0x00,0xF0,0x01,0x00,0x00,0x00,0x00,0xFC,0xFF,0x01,
0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFC,0xEF,0xF9,0x8F,0xD7,0x73,0xF1,0xC1,0x3B,0x9F,0xFF,
0xFF,0x1E,0x3E,0x00,0x00,0xBC,0xEF,0xC1,0xE1,0x9F,0xFF,0xDD,
0xE3,0x3F,0xCC,0xE1,0xF0,0xBF,0x7B,0x00,0x00,0x3C,0xF7,0xE1,
0xE1,0x9F,0xFF,0xC6,0xF7,0x3E,0x8E,0xF3,0xF0,0xFF,0xF8,0x00,
0x00,0x3C,0xF3,0xE1,0xF1,0x93,0xFF,0xE6,0xF7,0x3C,0x8F,0xF7,
0xF0,0xFF,0xFC,0x00,0x00,0x7C,0xF2,0xE1,0xF1,0x83,0x87,0xFE,
0xF7,0x39,0xFF,0xF7,0xF0,0xFF,0xFF,0x00,0x00,0x7C,0xF0,0xE3,
0xF3,0xA3,0x03,0xFE,0xF7,0x3F,0xFF,0xF7,0x71,0xFC,0xFF,0x00,
0x00,0x7C,0xF8,0xE3,0xF3,0xBF,0x03,0xFE,0xE3,0x3F,0xFF,0xF3,
0x71,0xDC,0x7F,0x00,0x00,0x7E,0xFC,0xE7,0xE3,0xBF,0x03,0xFC,
0xE3,0x3F,0xFE,0xF3,0x71,0x9C,0x7F,0x00,0x00,0xC1,0x03,0xF8,
0xCF,0xE7,0x0F,0xF0,0x00,0x7F,0xFC,0xFC,0xFF,0x3E,0x1E,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };//Microduino
static unsigned char u8g_logo_bits1[] U8G_PROGMEM = {
0x00,0x40,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x03,0x00,0x00,0xC0,0x07,0x00,
0x00,0xC0,0x0F,0x00,0x00,0xC0,0x1F,0x00,0x00,0xC0,0x3F,0x00,0x00,0xC0,0x7F,0x00,
0xC0,0xC1,0xFB,0x00,0xE0,0xC3,0xE3,0x03,0xC0,0xC7,0xF3,0x03,0x80,0xCF,0xFB,0x01,
0x00,0xDF,0x7F,0x00,0x00,0xFE,0x3F,0x00,0x00,0xF8,0x1F,0x00,0x00,0xF0,0x0F,0x00,
0x00,0xE0,0x03,0x00,0x00,0xF0,0x07,0x00,0x00,0xFC,0x1F,0x00,0x00,0xFE,0x3F,0x00,
0x00,0xDF,0x7F,0x00,0x80,0xCF,0xFB,0x00,0xE0,0xC7,0xF3,0x01,0xE0,0xC1,0xE3,0x03,
0xC0,0xC0,0xF3,0x03,0x00,0xC0,0xFF,0x00,0x00,0xC0,0x7F,0x00,0x00,0xC0,0x1F,0x00,
0x00,0xC0,0x0F,0x00,0x00,0xC0,0x03,0x00,0x00,0xC0,0x01,0x00,0x00,0x40,0x00,0x00,/*"C:\Users\ylb\Desktop\bluetooth1.bmp",0*/
};//Microduino
static unsigned char u8g_logo_bits2[] U8G_PROGMEM = {
0x00,0x04,0x60,0x00,0x00,0x0C,0x20,0x00,0x00,0xEC,0x37,0x00,0x00,0xF8,0x1F,0x00,
0x00,0xFE,0x7F,0x00,0x00,0xFF,0xFF,0x00,0x80,0xF7,0xEF,0x01,0x80,0xFF,0xFF,0x01,
0x80,0xFF,0xFF,0x03,0x80,0xFF,0xFF,0x03,0x98,0xFF,0xFF,0x3B,0xBC,0xFF,0xFF,0x7B,
0xBE,0xFF,0xFF,0x7B,0xBE,0xFF,0xFF,0x7B,0xBE,0xFF,0xFF,0x7B,0xBE,0xFF,0xFF,0x7B,
0xBE,0xFF,0xFF,0x7B,0xBE,0xFF,0xFF,0x7B,0xBE,0xFF,0xFF,0x7B,0xBE,0xFF,0xFF,0x7B,
0xBE,0xFF,0xFF,0x7B,0xBC,0xFF,0xFF,0x3B,0x98,0xFF,0xFF,0x13,0x80,0xFF,0xFF,0x03,
0x80,0xFF,0xFF,0x01,0x00,0xFF,0xFF,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3E,0x00,
0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x78,0x3E,0x00,0x00,0x10,0x08,0x00,/*"C:\Users\ylb\Desktop\android.bmp",0*/};//Microduino
static unsigned char u8g_logo_bits3[] U8G_PROGMEM = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"C:\Users\ylb\Desktop\android.bmp",0*/};//Microduino
void setup()
{
Serial.begin(115200);
pinMode(pinTx,OUTPUT);
pinMode(pinRx,INPUT);
while(!Serial)
{
}
}
void draw(void) {
u8g.setFont(u8g_font_7x14);
u8g.drawXBMP( 0, 0, 128, 18, u8g_logo_bits);//显示Microdiuno
u8g.drawXBMP( 96,18, 32, 32, u8g_logo_bits2);//显示Android符号
u8g.setPrintPos(0, 64);
u8g.print(comdata);
switch(k) {
case 1: u8g.drawXBMP( 0,18, 32, 32, u8g_logo_bits1);//显示蓝牙符号
case 2: u8g.drawXBMP( 0,18, 32, 32, u8g_logo_bits1);//显示蓝牙符号
case 3: u8g.drawXBMP( 0,18, 32, 32, u8g_logo_bits3);//显示蓝牙符号
case 4: u8g.drawXBMP( 0,18, 32, 32, u8g_logo_bits3);//显示蓝牙符号
}
}
void loop()
{
k++;
if (k>4)
k = 0;
delay(60);
while (Serial.available() > 0)//判断串口是否有输入
{
comdata = ""; //清空显示字符
onedata += char(Serial.read()); //读取字符
comdata += onedata; //同上
delay(2); //等待串口缓存
}
Serial.println(comdata);
Serial.println(onedata);
if(onedata=="clean") //清屏
comdata = "";
;//缓存字符串清空
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
delay(100);
}
附上视频:
http://v.youku.com/v_show/id_XNjIwNjM3ODAw.html
附上图片:
看起好屌啊 这个厉害的!太棒了! 感谢linux和蓝牙协议吧~因为蓝牙可以直接支持串口。。。要是换成wifi就有的折腾了…… friskit 发表于 2013-10-14 23:55 static/image/common/back.gif
感谢linux和蓝牙协议吧~因为蓝牙可以直接支持串口。。。要是换成wifi就有的折腾了……
恩恩。正道~~~~~~
页:
[1]