本帖最后由 wetnt 于 2014-1-10 22:44 编辑
现在流行“蓝牙手表”,各种手表满天飞,……
哈哈,我也DIY一个!当然现在还是原型,没能真正成为手表!有些思路和大家探讨探讨……
“马”上……
看看整体的接线图:蓝牙+Microduino+MAX7219 8X8 点阵模块!
其实很简单,就是 手机蓝牙向 —— 蓝牙模块发送串口数据,Microduino 解析串口数据,点亮 MAX7219 8X8 点阵!Microduino仅仅负责解析串口,没有复杂的处理,核心的处理都是手机端完成的!
Microduino接线图,Microduino-FT232R主要负责供电!再加上一块 Microduino-BM 、锂电就完美了!
Microduino真是为堆叠而生的,地线接口还是比较少,如果再有一块 Microduino-BT,再封装一个Microduino规格的MAX7219 8X8 点阵模块,大家就都可以DIY自己的个性蓝牙手表了。
再看看手机端软件:BOBOKing 蓝牙手表V1.0,安卓手机软件专门用来发送点阵数据,而且可以手动绘制,随时随地发送自定义内容,还可以循环播放,可以给妹子惊喜哦!
附上arduino代码和手机APP软件:
- /*
- name: @ 海云飞/BOBOKing
- email: [email][email protected][/email]
- date: 2014.01.10
- */
- /*
- pin 12 is connected to the DataIn
- pin 11 is connected to the CLK
- pin 10 is connected to LOAD
- */
- #include "LedControl.h"
- LedControl lc1 = LedControl(12,11,10,1);
- //=======================================================================================================================
- byte DgitTab68[10][8]={
- {0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00}, //0
- {0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00}, //1
- {0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00}, //2
- {0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00}, //3
- {0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00}, //4
- {0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00}, //5
- {0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00}, //6
- {0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00}, //7
- {0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00}, //8
- {0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00} //9
- };
- byte DigitTab48[10][4]={
- {0x3e,0x41,0x41,0x3e}, //0
- {0x21,0x7f,0x01,0x00}, //1
- {0x27,0x45,0x45,0x39}, //2
- {0x22,0x49,0x49,0x36}, //3
- {0x1c,0x24,0x7f,0x04}, //4
- {0x72,0x51,0x51,0x4e}, //5
- {0x3e,0x49,0x49,0x26}, //6
- {0x40,0x40,0x4f,0x70}, //7
- {0x36,0x49,0x49,0x36}, //8
- {0x32,0x49,0x49,0x3e} //9
- };
- //高8*6宽 ASCII码
- //采用"字模提取软件V2.2"
- //提取方式:纵向取模,字节倒序
- //制作:微控设计网-DC 手工制作6*8点阵字库
- //2005.8.20. 02:10 microcontrol dc
- uint8_t ASCII86[][6]=
- {
- {0x00,0x00,0x00,0x00,0x00,0x00},//空
- {0x00,0x00,0x5F,0x00,0x00,0x00},//!
- {0x00,0x07,0x00,0x07,0x00,0x00},//"
- {0x14,0x7F,0x14,0x7F,0x14,0x00},//#
- {0x24,0x2A,0x7F,0x2A,0x12,0x00},//$
- {0x23,0x13,0x08,0x64,0x62,0x00},//%
- {0x36,0x49,0x56,0x20,0x50,0x00},//&
- {0x00,0x08,0x07,0x03,0x00,0x00},//'
- {0x00,0x1C,0x22,0x41,0x00,0x00},//(
- {0x00,0x41,0x22,0x1C,0x00,0x00},//)
- {0x24,0x18,0x7E,0x18,0x24,0x00},//*
- {0x08,0x08,0x3E,0x08,0x08,0x00},//+
- {0x00,0x80,0x70,0x30,0x00,0x00},//,
- {0x08,0x08,0x08,0x08,0x08,0x00},//-
- {0x00,0x00,0x60,0x60,0x00,0x00},//.
- {0x20,0x10,0x08,0x04,0x02,0x00},///
- {0x3E,0x41,0x49,0x41,0x3E,0x00},//0
- {0x00,0x42,0x7F,0x40,0x00,0x00},//1
- {0x72,0x49,0x49,0x49,0x46,0x00},//2
- {0x21,0x41,0x49,0x4D,0x32,0x00},//3
- {0x18,0x14,0x12,0x7F,0x10,0x00},//4
- {0x27,0x45,0x45,0x45,0x38,0x00},//5
- {0x3C,0x4A,0x49,0x49,0x31,0x00},//6
- {0x41,0x21,0x11,0x09,0x07,0x00},//7
- {0x36,0x49,0x49,0x49,0x36,0x00},//8
- {0x46,0x49,0x49,0x29,0x16,0x00},//9
- {0x00,0x00,0x14,0x00,0x00,0x00},//:
- {0x00,0x40,0x34,0x00,0x00,0x00},//;
- {0x00,0x08,0x14,0x22,0x41,0x00},//<
- {0x14,0x14,0x14,0x14,0x14,0x00},//=
- {0x00,0x41,0x22,0x14,0x08,0x00},//>
- {0x02,0x01,0x59,0x09,0x06,0x00},//?
- {0x3E,0x41,0x5D,0x59,0x4E,0x00},//@
- {0x7C,0x12,0x11,0x12,0x7C,0x00},//A
- {0x7F,0x49,0x49,0x49,0x36,0x00},//B
- {0x3E,0x41,0x41,0x41,0x22,0x00},//C
- {0x7F,0x41,0x41,0x41,0x3E,0x00},//D
- {0x7F,0x49,0x49,0x49,0x41,0x00},//E
- {0x7F,0x09,0x09,0x09,0x01,0x00},//F
- {0x3E,0x41,0x41,0x51,0x73,0x00},//G
- {0x7F,0x08,0x08,0x08,0x7F,0x00},//H
- {0x00,0x41,0x7F,0x41,0x00,0x00},//I
- {0x20,0x40,0x41,0x3F,0x01,0x00},//J
- {0x7F,0x08,0x14,0x22,0x41,0x00},//K
- {0x7F,0x40,0x40,0x40,0x40,0x00},//L
- {0x7F,0x02,0x1C,0x02,0x7F,0x00},//M
- {0x7F,0x04,0x08,0x10,0x7F,0x00},//N
- {0x3E,0x41,0x41,0x41,0x3E,0x00},//O
- {0x7F,0x09,0x09,0x09,0x06,0x00},//P
- {0x3E,0x41,0x51,0x21,0x5E,0x00},//Q
- {0x7F,0x09,0x19,0x29,0x46,0x00},//R
- {0x26,0x49,0x49,0x49,0x32,0x00},//S
- {0x03,0x01,0x7F,0x01,0x03,0x00},//T
- {0x3F,0x40,0x40,0x40,0x3F,0x00},//U
- {0x1F,0x20,0x40,0x20,0x1F,0x00},//V
- {0x3F,0x40,0x38,0x40,0x3F,0x00},//W
- {0x63,0x14,0x08,0x14,0x63,0x00},//X
- {0x03,0x04,0x78,0x04,0x03,0x00},//Y
- {0x61,0x59,0x49,0x4D,0x43,0x00},//Z
- {0x00,0x7F,0x41,0x41,0x41,0x00},//[
- {0x02,0x04,0x08,0x10,0x20,0x00},//""
- {0x04,0x02,0x01,0x02,0x04,0x00},//^
- {0x40,0x40,0x40,0x40,0x46,0x00},//_
- {0x00,0x03,0x07,0x08,0x00,0x00},//、
- {0x20,0x54,0x54,0x78,0x40,0x00},//a
- {0x7F,0x28,0x44,0x44,0x38,0x00},//b
- {0x38,0x44,0x44,0x44,0x28,0x00},//c
- {0x38,0x44,0x44,0x28,0x7F,0x00},//d
- {0x38,0x54,0x54,0x54,0x18,0x00},//e
- {0x00,0x08,0x7E,0x09,0x02,0x00},//f
- {0x38,0xA4,0xA4,0x9C,0x78,0x00},//g
- {0x7F,0x08,0x04,0x04,0x78,0x00},//h
- {0x00,0x44,0x7D,0x40,0x00,0x00},//i
- {0x20,0x40,0x40,0x3D,0x00,0x00},//j
- {0x7F,0x10,0x28,0x44,0x00,0x00},//k
- {0x00,0x41,0x7F,0x40,0x00,0x00},//l
- {0x7C,0x04,0x78,0x04,0x78,0x00},//m
- {0x7C,0x08,0x04,0x04,0x78,0x00},//n
- {0x38,0x44,0x44,0x44,0x38,0x00},//o
- {0xFC,0x18,0x24,0x24,0x18,0x00},//p
- {0x18,0x24,0x24,0x18,0xFC,0x00},//q
- {0x7C,0x08,0x04,0x04,0x08,0x00},//r
- {0x48,0x54,0x54,0x54,0x24,0x00},//s
- {0x04,0x04,0x3F,0x44,0x24,0x00},//t
- {0x3C,0x40,0x40,0x20,0x7C,0x00},//u
- {0x1C,0x20,0x40,0x20,0x1C,0x00},//v
- {0x3C,0x40,0x20,0x40,0x3C,0x00},//w
- {0x44,0x28,0x10,0x28,0x44,0x00},//x
- {0x4C,0x90,0x90,0x90,0x7C,0x00},//y
- {0x44,0x64,0x54,0x4C,0x44,0x00},//z
- {0x00,0x08,0x36,0x41,0x00,0x00},//{
- {0x00,0x00,0x77,0x00,0x00,0x00},//|
- {0x00,0x41,0x36,0x08,0x00,0x00},//}
- {0x02,0x01,0x02,0x04,0x02,0x00}//~
- };
- //=======================================================================================================================
- byte C[8]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
- byte I[8]={ 0x00,0x63,0x63,0x7f,0x7f,0x63,0x63,0x00 };
- byte L[8]={ 0x38,0x44,0x42,0x21,0x21,0x42,0x44,0x38 };
- byte U[8]={ 0x00,0x7e,0x7f,0x03,0x03,0x7f,0x7e,0x00 };
- //=======================================================================================================================
- unsigned long delaytime=1200;
- unsigned long SYSTime = 0;
- uint8_t READXXX[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
- //=====================================================
- void setup() {
- //--------------------------------------
- lc1.shutdown(0,false);
- lc1.setIntensity(0,8);
- lc1.clearDisplay(0);
- //--------------------------------------
- Serial.begin(115200);
- SYSTime = millis();
- //--------------------------------------
- }
- //=====================================================
- void loop() {
- //ILoveYou();
- SerialRead();
- WriteChar8(READXXX);
- // ILoveYou2();
- }
- //=====================================================
- void SerialRead(){
- if (Serial.available() > 0) {
- //--------------------------------
- READXXX[0] = Serial.read();delay(2);
- READXXX[1] = Serial.read();delay(2);
- READXXX[2] = Serial.read();delay(2);
- READXXX[3] = Serial.read();delay(2);
- READXXX[4] = Serial.read();delay(2);
- READXXX[5] = Serial.read();delay(2);
- READXXX[6] = Serial.read();delay(2);
- READXXX[7] = Serial.read();delay(2);
- //--------------------------------
- while (Serial.available() > 0)
- {
- char(Serial.read());delay(2);
- }
- //--------------------------------
- }
- }
- void ILoveYou() {
- //---------------------------------------------
- WriteChar8(C); delay(delaytime);
- WriteChar8(I); delay(delaytime);
- WriteChar8(L); delay(delaytime);
- WriteChar8(U); delay(delaytime);
- //---------------------------------------------
- }
- void ILoveYou2() {
- for(int i=0;i<86;i++) {
- //---------------------------------------------
- WriteChar6(ASCII86[i]); delay(delaytime);
- //WriteChar4A(DigitTab48[i]);
- //WriteChar4B(DigitTab48[i]);
- //WriteChar8(ASCII[i]); delay(delaytime);
- //---------------------------------------------
- }
- //WriteChar8(AscTab[2]); delay(delaytime);
- }
- //=====================================================
- void WriteChar8(byte X[8]) {
- for(int i=0;i<8;i++) {
- lc1.setRow(0,7-i,X[i]);
- }
- }
- void WriteChar6(byte X[6]) {
- lc1.setRow(0,0,0x00);
- for(int i=0;i<6;i++) {
- lc1.setRow(0,i+1,X[i]);
- }
- lc1.setRow(0,7,0x00);
- }
- void WriteChar4A(byte X[4]) {
- for(int i=0;i<4;i++) {
- lc1.setRow(0,7-i,X[i]);
- }
- }
- void WriteChar4B(byte X[4]) {
- for(int i=0;i<4;i++) {
- lc1.setRow(0,3-i,X[i]);
- }
- }
- //=====================================================
复制代码
BOBOKing 蓝牙手表V1.0: |