蓝牙自己杆实现起来其实非常简单
主要是利用Consumer Devices发送音量键
无论是android还是ios都可以使用,免驱动,免装APP
我刚开始弄的时候在网上找了很多贴子
讲怎么做自拍杆的不多
后来看了MICROCHIP的一个贴子才发现这东西原来这么简单
蓝牙HID和USB HID的使用方法相同
如果你玩过USB HID这个贴子基本就不用看了
如果你能用SensorTile实现蓝牙键盘了
想实现自拍杆只需改改描述符和Report发送的数据就可以
用SensorTile实现键盘的代码可以参考我的这个贴子,二楼
http://bbs.eeworld.com.cn/thread-521965-1-1.html
在hid_profile_application.c 里加一段SELFIESTICK相关的描述符代码
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 | #if defined(SELFIESTICK_IP) { 0x05, 0x0c, // USAGE_PAGE (Consumer Devices) 0x09, 0x01, // USAGE (Consumer Control) 0xa1, 0x01, // COLLECTION (Application) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x09, 0xe9, // USAGE (Volume Up) 0x09, 0xea, // USAGE (Volume Down) 0x09, 0x30, // USAGE (Power) 0x75, 0x01, // REPORT_SIZE (1) 0x95, 0x02, // REPORT_COUNT (2) 0x81, 0x06, // INPUT (Data,Var,Rel) 0x09, 0xe2, // USAGE (Mute) 0x95, 0x01, // REPORT_COUNT (1) 0x81, 0x06, // INPUT (Data,Var,Rel) 0x95, 0x05, // REPORT_COUNT (5) 0x81, 0x07, // INPUT (Cnst,Var,Rel) 0xc0 // END_COLLECTION }; |
在static int HID_Application_Process(void)函数里把Volume Up发送出去
1 2 3 4 5 6 | #if defined(SELFIESTICK_IP) APPL_MESG_DBG(profiledbgfile,"Sending data...\n"); uint8_t ipRepVal[REPORT_IP_LEN_0] = {0}; ipRepVal[0] = 1 << 0;//USAGE (Volume Up) // ipRepVal[0] = 1 << 2;//USAGE (Power) HidDevice_Update_Input_Report(0,0,REPORT_IP_LEN_0,ipRepVal); |
代码粗糙了一些,手机连接到SensorTile音量就会一直加
如果开启相机就会一直拍照
如果你想实现更多的功能可以把按键或者传感器加进来
单击,双击,撞击,转动,甚至使用麦克风做声音识别都可以